]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
Squashed 'dts/upstream/' changes from 3347eecf3408..9b6ba2666d63
authorTom Rini <trini@konsulko.com>
Tue, 24 Dec 2024 18:03:04 +0000 (12:03 -0600)
committerTom Rini <trini@konsulko.com>
Tue, 24 Dec 2024 18:03:04 +0000 (12:03 -0600)
9b6ba2666d63 Merge tag 'v6.12-rc7-dts-raw'
24e60fb60d9c Merge tag 'net-6.12-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
338017c72eb3 Merge tag 'arm-fixes-6.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
111bbc7cbd2b Merge tag 'v6.12-rc6-dts-raw'
a3470c477ea5 Merge tag 'phy-fixes-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
11c61b0e93ca Merge tag 'char-misc-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
d812638eef3b dt-bindings: net: xlnx,axi-ethernet: Correct phy-mode property value
b5de435b8395 Merge tag 'drm-fixes-2024-11-02' of https://gitlab.freedesktop.org/drm/kernel
475c1e5fdf7d Merge tag 'qcom-arm64-fixes-for-6.12-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into HEAD
aaa206ba62ad Merge tag 'qcom-arm64-fixes-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into HEAD
60b23eceee2d Merge tag 'scmi-fixes-6.12-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into HEAD
c645e67e3bff Merge tag 'riscv-soc-fixes-for-v6.12-rc6' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into HEAD
f2aa6a047513 Merge tag 'v6.12-rockchip-dtsfixes1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into HEAD
30117e8aa895 Merge tag 'riscv-sophgo-dt-fixes-for-v6.12-rc1' of https://github.com/sophgo/linux into HEAD
14bab7ca1016 Merge tag 'imx-fixes-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into HEAD
85e83c6427fa Merge tag 'mediatek-drm-fixes-20241028' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-fixes
b27b5e015be6 Merge tag 'sound-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
fe4d475bfb92 ASoC: dt-bindings: rockchip,rk3308-codec: add port property
e2b9e9486c64 Merge tag 'iio-fixes-for-6.12b' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
1c4937f2c854 dt-bindings: firmware: arm,scmi: Add missing vendor string
ef7b1f06441d Merge tag 'v6.12-rc5-dts-raw'
146e18b6f724 Merge tag 'sound-6.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
9bcb447f9886 riscv: dts: Replace deprecated snps,nr-gpios property for snps,dw-apb-gpio-port devices
094d5de32029 arm64: dts: rockchip: Correct GPIO polarity on brcm BT nodes
798aefb9ecc1 arm64: dts: rockchip: Drop invalid clock-names from es8388 codec nodes
bcbec9bc899f ARM: dts: rockchip: Fix the realtek audio codec on rk3036-kylin
58fcbb87822c ARM: dts: rockchip: Fix the spi controller on rk3036
199583690a60 ARM: dts: rockchip: drop grf reference from rk3036 hdmi
8893c637ed2e ARM: dts: rockchip: fix rk3036 acodec node
f21c7bf76b50 arm64: dts: rockchip: remove orphaned pinctrl-names from pinephone pro
83a836abbeb3 arm64: dts: qcom: x1e80100: fix PCIe5 interconnect
ff05e21231d2 arm64: dts: qcom: x1e80100: fix PCIe4 interconnect
1e3ac94fd98e dt-bindings: iio: adc: ad7380: fix ad7380-4 reference supply
02201f7c6103 arm64: dts: qcom: x1e80100: Fix up BAR spaces
c0823dcfd27a arm64: dts: qcom: x1e80100-qcp: fix nvme regulator boot glitch
1ab64e633fb5 arm64: dts: qcom: x1e80100-microsoft-romulus: fix nvme regulator boot glitch
156417cf5af9 arm64: dts: qcom: x1e80100-yoga-slim7x: fix nvme regulator boot glitch
21cf64fe1af4 arm64: dts: qcom: x1e80100-vivobook-s15: fix nvme regulator boot glitch
5b9cd8d991aa arm64: dts: qcom: x1e80100-crd: fix nvme regulator boot glitch
3b9ef321c3c1 arm64: dts: qcom: x1e78100-t14s: fix nvme regulator boot glitch
97a2947ac31a dt-bindings: display: mediatek: split: add subschema property constraints
66b452adc3d5 dt-bindings: display: mediatek: dpi: correct power-domains property
843a90e2622f riscv: dts: starfive: Update ethernet phy0 delay parameter values for Star64
05e87d03215e arm64: dts: qcom: x1e80100-crd Rename "Twitter" to "Tweeter"
2d864e7c11a7 arm64: dts: imx8mp-phyboard-pollux: Set Video PLL1 frequency to 506.8 MHz
8a8739e46acb arm64: dts: imx8mp: correct sdhc ipg clk
29f81d0f3dee dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Fix X1E80100 resets entries
779943da7446 Merge tag 'v6.12-rc4-dts-raw'
e58e3f3bf62d Merge tag 'char-misc-6.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
bef891665274 Merge tag 'arm-fixes-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
a69bd3f1596d Merge tag 'net-6.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
9248d76aea3b riscv: dts: starfive: disable unused csi/camss nodes
4985161b4495 dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: add missing x1e80100 pipediv2 clocks
17b42dab865d arm64: dts: imx8mp-skov-revb-mi1010ait-1cp1: Assign "media_isp" clock rate
c591d346faac arm64: dts: qcom: x1e80100: Fix PCIe 6a lanes description
5d190d186797 arm64: dts: imx8: Fix lvds0 device tree
4f9ddc110d10 arm64: dts: imx8ulp: correct the flexspi compatible string
e6a052b90efc arm64: dts: imx8-ss-vpu: Fix imx8qm VPU IRQs
12b53d8dfe73 dt-bindings: net: brcm,unimac-mdio: Add bcm6846-mdio
1fc95f2cebca Merge tag 'mvebu-fixes-6.12-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into arm/fixes
c5057b3fb9e2 Merge tag 'v6.12-rc3-dts-raw'
bff355a419a2 arm64: dts: qcom: sm8450 fix PIPE clock specification for pcie1
25a6e15f33f2 arm64: dts: qcom: x1e80100: Add Broadcast_AND region in LLCC block
6ce0d71f2f1e Merge tag 'iio-fixes-for-6.12a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-linus
cf465168c1df Merge tag 'devicetree-fixes-for-6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
b178ff388025 Merge tag 'arm-soc/for-6.12/devicetree-fixes' of https://github.com/Broadcom/stblinux into arm/fixes
51b0d8f89621 arm64: dts: rockchip: remove num-slots property from rk3328-nanopi-r2s-plus
c9ef90f4404a arm64: dts: rockchip: Fix LED triggers on rk3308-roc-cc
c68abaf08ec0 arm64: dts: rockchip: Remove #cooling-cells from fan on Theobroma lion
5046025d8a71 arm64: dts: rockchip: Remove undocumented supports-emmc property
457c45fc411d arm64: dts: rockchip: Fix bluetooth properties on Rock960 boards
6546c4501166 arm64: dts: rockchip: Fix bluetooth properties on rk3566 box demo
5fe0d8b83aff arm64: dts: rockchip: Drop regulator-init-microvolt from two boards
035ef0b462e5 arm64: dts: rockchip: fix i2c2 pinctrl-names property on anbernic-rg353p/v
ddb4f2849b53 ARM: dts: bcm2837-rpi-cm3-io3: Fix HDMI hpd-gpio pin
2717ed73575a arm64: dts: rockchip: Fix reset-gpios property on brcm BT nodes
ff7520430056 arm64: dts: rockchip: Fix wakeup prop names on PineNote BT node
bd351810f270 arm64: dts: rockchip: Remove hdmi's 2nd interrupt on rk3328
f0538f7edcf5 dt-bindings: interrupt-controller: fsl,ls-extirq: workaround wrong interrupt-map number
e419c60fee49 dt-bindings: misc: fsl,qoriq-mc: remove ref for msi-parent
2bf0ad8ae1d7 ASoC: dt-bindings: davinci-mcasp: Fix interrupt properties
34a1e993efc6 arm64: dts: marvell: cn9130-sr-som: fix cp0 mdio pin numbers
fd4b7754f9b0 Merge tag 'v6.12-rc2-dts-raw'
b0bbc36d4f7e arm64: dts: qcom: x1e80100: fix PCIe5 PHY clocks
336247669ee6 arm64: dts: qcom: x1e80100: fix PCIe4 and PCIe6a PHY clocks
1aa8c9bb7e1a Merge tag 'sound-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
dbfa6848a6d8 Merge tag 'net-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
b89c7c1c0ed7 dt-bindings: net: xlnx,axi-ethernet: Add missing reg minItems
1e9c13738bee qrb4210-rb2: add HDMI audio playback support
2633c577e8b4 ASoC: dt-bindings: davinci-mcasp: Fix interrupts property
d91ab7149935 ASoC: dt-bindings: qcom,sm8250: add qrb4210-rb2-sndcard
36555df7296e dt-bindings: display: elgin,jg10309-01: Add own binding
8affa93e7ba3 ASoC: dt-bindings: renesas,rsnd: correct reg-names for R-Car Gen1
765d3a0efe3f Merge branch 'build'
1c8358218018 Make sure that upstream overlays can also be built and, thus, checked.
ab48771a47f9 arm64: dts: rockchip: Designate Turing RK1's system power controller
05b0851c5421 arm64: dts: rockchip: Start cooling maps numbering from zero on ROCK 5B
50c2e7506179 arm64: dts: rockchip: Move L3 cache outside CPUs in RK3588(S) SoC dtsi
3e0fe26f80d9 arm64: dts: rockchip: Fix rt5651 compatible value on rk3399-sapphire-excavator
dfc982e89471 arm64: dts: rockchip: Fix rt5651 compatible value on rk3399-eaidk-610
165a55c18dca dt-bindings: iio: dac: adi,ad56xx: Fix duplicate compatible strings
824a3b462175 Merge tag 'v6.12-rc1-dts-raw'
a10ddd35e8d7 Merge tag 'mailbox-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox
a290ef5757fb Merge tag 'loongarch-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
acdca8569da1 Merge tag 'soc-ep93xx-dt-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
722604408a3f Merge tag 'char-misc-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
18db146dd1ac Merge tag 'tty-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
14d3c1afb25e Merge tag 'usb-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
1a7e72e06bb1 Merge tag 'hid-for-linus-2024092601' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
58b42ce0fdc0 dt-bindings: gpio: ep9301: Add missing "#interrupt-cells" to examples
0f368ee29951 Merge tag 'rtc-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
1ed862352aa3 dt-bindings: input: Revert "dt-bindings: input: Goodix SPI HID Touchscreen"
145c866630c5 Merge tag 'input-for-v6.12-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
909b8062de6c Merge tag 'hwlock-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
8ab0314016f8 Merge tag 'rproc-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
0a3ce3c0ce2c Merge tag 'riscv-for-linus-6.12-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
19a2390509c0 Merge tag 'media/v6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
910594ef34be Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
ad60f92e4ed2 Merge tag 'i2c-for-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
3e3a8a00a7b9 Merge tag 'leds-next-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds
5b7edb7ee57d Merge tag 'mfd-next-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
da20bb975a81 Merge tag 'dmaengine-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine
4fb39c828b14 Merge tag 'phy-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
ecc4037e9b36 Merge tag 'linux-watchdog-6.12-rc1' of git://www.linux-watchdog.org/linux-watchdog
46fb89dd0e0e Merge tag 'pinctrl-v6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
7c655c972087 Merge tag 'pci-v6.12-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
501d9fb88d0c dt-bindings: mfd: qcom,tcsr: Add compatible for sa8775p
247cf94da399 dt-bindings: mfd: syscon: Add rk3576 QoS register compatible
f9749261302e dt-bindings: mfd: adp5585: Add parsing of hogs
6d50efee6578 dt-bindings: mailbox: qcom-ipcc: Document QCS8300 IPCC
eaecc9d38689 dt-bindings: mailbox: qcom-ipcc: document the support for SA8255p
93b78c08b3fd dt-bindings: mailbox: mtk,adsp-mbox: Add compatible for MT8188
a6cd34ed82b2 Merge branches 'clk-devm', 'clk-samsung', 'clk-rockchip' and 'clk-qcom' into clk-next
e7541d0bf713 Merge branches 'clk-amlogic', 'clk-microchip' and 'clk-imx' into clk-next
fb6e043f02b5 Merge branches 'clk-assigned-rates', 'clk-renesas' and 'clk-scmi' into clk-next
67ee0e44e8b3 Merge branches 'clk-kunit', 'clk-mediatek', 'clk-cleanup' and 'clk-bindings' into clk-next
84a5cfc562e5 Merge tag 'i2c-host-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-mergewindow
833184659373 Merge branch 'pci/controller/xilinx'
d2ced8c94301 Merge branch 'pci/controller/rcar-gen4'
205eb060fff6 Merge branch 'pci/controller/qcom'
c2e95de12ee5 Merge branch 'pci/controller/mediatek-gen3'
b47ac6afd055 Merge branch 'pci/controller/j721e'
8c1f2f943286 Merge branch 'pci/controller/imx6'
5418a924c01b Merge branch 'pci/controller/brcmstb'
e4313eff5d0a Merge tag 'drm-next-2024-09-19' of https://gitlab.freedesktop.org/drm/kernel
930cd997b460 Merge tag 'ata-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux
551f0c8a62fc Merge tag 'hid-for-linus-2024091602' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
a8ba6bce9e53 Merge tag 'platform-drivers-x86-v6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
4be289d4c2ba Merge tag 'devicetree-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
d248da427469 dt-bindings: watchdog: Add rockchip,rk3576-wdt compatible
b26c4522aa44 Merge tag 'iommu-updates-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux
716936629579 Merge tag 'hwmon-for-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
b6e3a1d63e34 Merge tag 'pmdomain-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm
efb34d1dea37 dt-bindings: rtc: microcrystal,rv3028: add #clock-cells property
1a02a6c46436 Merge tag 'gpio-updates-for-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
24cdb8b878e0 Merge tag 'pwm/for-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux
49b0907b4ed3 Merge tag 'mmc-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
c9ddac1be7b5 Merge tag 'mtd/for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
885b1489fea6 Merge tag 'for-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply
e3bc65b6add2 Merge tag 'sound-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
a97b2d236867 Merge tag 'irq-core-2024-09-16' into loongarch-next
0f81cded2e67 dt-bindings: watchdog: Add Cirrus EP93x
0da48b2eb4d8 dt-bindings: watchdog: stm32-iwdg: Document interrupt and wakeup properties
bdca23f2fa0c Merge tag 'soc-drivers-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
d8c79017824d Merge tag 'soc-dt-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
01e4d4fec9c3 Merge tag 'spi-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
76bd3554bda7 Merge tag 'regulator-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
900e0757784e Merge tag 'timers-core-2024-09-16' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
b37c8288ab1d Merge tag 'irq-core-2024-09-16' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
c297f09c7768 dt-bindings: pwm: amlogic: Add new bindings for meson A1 PWM
271ac3da5df1 dt-bindings: pwm: amlogic: Add optional power-domains
127dff8d7e4d dt-bindings: pwm: allwinner,sun4i-a10-pwm: add top-level constraints
cb1e57ede6bf Merge tag 'ib-mfd-gpio-pwm-v6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
e0fafe72293f Merge tag 'thermal-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
c46abe7a5b55 Merge tag 'pm-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
462ec6c9eac3 Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
4b530fadd6b1 Merge tag 'v6.12-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
d687f0847c29 Merge patch series "Svvptc extension to remove preventive sfence.vma"
93b528e451d0 dt-bindings: riscv: Add Svvptc ISA extension description
b23cdeef48a0 Merge tag 'asoc-v6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
1ef028beb01c Merge tag 'for-net-next-2024-09-12' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
c7d500e333fb dt-bindings: PCI: qcom: Allow 'vddpe-3v3-supply' again
4291ac45f4c8 dt-bindings: cpu: Drop duplicate nvidia,tegra186-ccplex-cluster.yaml
073ae1c72587 dt-bindings: clock: mediatek: Drop duplicate mediatek,mt6795-sys-clock.yaml
1b1a69e3b9fc dt-bindings: clk: vc5: Make SD/OE pin configuration properties not required
55009bd21771 dt-bindings: watchdog: qcom-wdt: document support on SA8255p
1dcaec715509 dt-bindings: interrupt-controller: fsl,irqsteer: Document fsl,imx8qm-irqsteer
06dc06f581cc dt-bindings: interrupt-controller: arm,gic: add ESPI and EPPI specifiers
4decf529f330 dt-bindings: dma: Add lpc32xx DMA mux binding
a611e93bd60a dt-bindings: trivial-devices: Drop duplicate "maxim,max1237"
49998ce31a2c dt-bindings: trivial-devices: Drop duplicate LM75 compatible devices
523d816267ed dt-bindings: trivial-devices: Deprecate "ad,ad7414"
01015bf05f56 dt-bindings: trivial-devices: Drop incorrect and duplicate at24 compatibles
744ac8722848 dt-bindings: wakeup-source: update reference to m8921-keypad.yaml
2785c93c54d3 dt-bindings: interrupt-controller: qcom-pdc: document support for SA8255p
a35df54e2740 dt-bindings: Fix various typos
907b2a96f5d6 Merge branch 'for-6.12/elan' into for-linus
73e23ce2eb91 dt-bindings: PCI: imx6q-pcie: Add reg-name "dbi2" and "atu" for i.MX8M PCIe Endpoint
3181557bfb35 dt-bindings: PCI: altera: msi: Convert to YAML
a5d323627372 Merge branches 'fixes', 'arm/smmu', 'intel/vt-d', 'amd/amd-vi' and 'core' into next
ffb2958667ec dt-bindings: crypto: qcom,prng: document support for SA8255p
ab8ac375cbeb Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
1b83609678bb ARM: dts: ep93xx: Add EDB9302 DT
f302e2e1b477 ARM: dts: ep93xx: add ts7250 board
1e9c658963df ARM: dts: add Cirrus EP93XX SoC .dtsi
3c459eb41b14 ASoC: dt-bindings: ep93xx: Document Audio Port support
f148e83fbc9e ASoC: dt-bindings: ep93xx: Document DMA support
d2a933bf379e dt-bindings: input: Add Cirrus EP93xx keypad
b88ef70bb269 dt-bindings: ata: Add Cirrus EP93xx
d8f9a8112b7a dt-bindings: mtd: Add ts7200 nand-controller
cf88d7b544a9 dt-bindings: net: Add Cirrus EP93xx
69f5a3e77e61 dt-bindings: spi: Add Cirrus EP93xx
71af244dd2ee dt-bindings: pwm: Add Cirrus EP93xx
c3098375ef8a dt-bindings: dma: Add Cirrus EP93xx
58e8ebd25512 dt-bindings: soc: Add Cirrus EP93xx
f3621332088e Merge tag 'sunxi-dt-for-6.12-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
83b40a4f79dd dt-bindings: arm-smmu: Add compatible for QCS8300 SoC
8e67b38290b8 spi: Merge up fixes
5918c35b30a5 arm64: dts: ti: k3-am625-beagleplay: Add bootloader-backdoor-gpios to cc1352p7
8cbb766f7bec dt-bindings: net: ti,cc1352p7: Add bootloader-backdoor-gpios
b3de46f4359c dt-bindings: net: add Microchip's LAN865X 10BASE-T1S MACPHY
80e8cd87e3d4 dt-bindings: rtc: Drop non-trivial duplicate compatibles
b5686c6a1df1 dt-bindings: vendor-prefixes: Add DFRobot.
7f9e17cb47c0 dt-bindings: rtc: Add support for SD2405AL.
e644439c5946 dt-bindings: rtc: sprd,sc2731-rtc: convert to YAML
381b11908221 Merge branches 'pm-sleep', 'pm-opp' and 'pm-tools'
3cc1af326837 ASoC: dt-bindings: microchip,sama7g5-spdifrx: Add common DAI reference
86e87e065dd4 ASoC: dt-bindings: renesas,rsnd: add post-init-providers property
ad505259b552 Merge tag 'v6.12-rockchip-drivers-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/drivers
5729a2e63be8 arm64: dts: allwinner: h5: NanoPi NEO Plus2: Use regulators for pio
c8517e7610b1 Merge tag 'arm-soc/for-6.12/devicetree-arm64' of https://github.com/Broadcom/stblinux into soc/dt
72b4d342087c Merge tag 'v6.11-next-dts64' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt
4ddb72237975 Merge tag 'aspeed-6.12-devicetree' of https://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc into soc/dt
d249965a2300 Merge tag 'v6.12-rockchip-dts32-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
059ef8a3f43b Merge tag 'v6.12-rockchip-dts64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
ee71693d8832 Merge tag 'arm-soc/for-6.12/devicetree' of https://github.com/Broadcom/stblinux into soc/dt
432c3b3e6f2b Merge tag 'dt-cleanup-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt
47d6295b835c Merge tag 'dt64-cleanup-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt
14ebf16b855f Merge v6.11-rc7 into drm-next
d5bacb2f969f net: amlogic,meson-dwmac: Fix "amlogic,tx-delay-ns" schema
395197237476 dt-bindings: bluetooth: bring the HW description closer to reality for wcn6855
747945495869 dt-bindings: net: bluetooth: Add support for Amlogic Bluetooth
93ab94ed1bf0 Merge branch 'linus' into timers/core
910513aa3177 dt-bindings: watchdog: renesas,wdt: Document RZ/V2H(P) SoC
92b03f0021df dt-bindings: clock, reset: fix top-comment indentation rk3576 headers
5b98ed9562f1 dt-bindings: i2c: i2c-sprd: convert to YAML
1f4fbcafd136 dt-bindings: i2c: add support for tsd,mule-i2c-mux
f4e58292dcb0 dt-bindings: i2c: i2c-rk3x: Add rk3576 compatible
e6c017d8dd31 dt-bindings: i2c: aspeed: drop redundant multi-master
0a9ee565d63f dt-bindings: i2c: qcom,i2c-cci: add missing clocks constraint in if:then:
0af874d44f97 dt-bindings: i2c: nvidia,tegra20-i2c: define power-domains top-level
a72f3daa0247 dt-bindings: i2c: nvidia,tegra20-i2c: restrict also clocks in if:then:
fdd8013bc0f0 dt-bindings: i2c: nvidia,tegra20-i2c: combine same if:then: clauses
0951a6a78628 dt-bindings: i2c: renesas,riic: Document the R9A08G045 support
f7b428f8a98b arm64: dts: mediatek: add audio support for mt8365-evk
0de9f0608b09 arm64: dts: mediatek: add afe support for mt8365 SoC
189b3b938063 arm64: dts: mediatek: mt8186-corsola: Disable DPI display interface
610ac8574c47 arm64: dts: mediatek: mt8186: Add svs node
52a2cd68ab8b arm64: dts: mediatek: mt8186: Add power domain for DPI
adae6ff21479 arm64: dts: mediatek: mt8195: Correct clock order for dp_intf*
1eae66ef2c13 arm64: dts: mt8183: add dpi node to mt8183
bb488fb2d610 dt-bindings: PCI: imx6q-pcie: Add i.MX8Q PCIe compatible string
56142e434ebc dt-bindings: mtd: ti, gpmc-nand: support partitions node
9e3d1b7a9019 Merge 6.11-rc7 into usb-next
34abf6396b8f Merge 6.11-rc7 into char-misc-next
963af65c3fea Merge tag 'extcon-next-for-6.12' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-next
98410ac4cf8c Merge tag 'iio-for-6.12b' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
0d8d83e8b014 arm64: dts: allwinner: h5: NanoPi Neo Plus2: Fix regulators
1a2dbb3559e8 dt-bindings: iio: adc: Add AXP717 compatible
d2bbf82908dc Merge tag 'drm-msm-next-2024-09-02' of https://gitlab.freedesktop.org/drm/msm into drm-next
9ad8e5cea91e regulator: Add AXP717 boost support
6364a3039067 dt-bindings: mfd: x-powers,axp152: add boost regulator
4145a08dfb6e Merge tag 'opp-updates-6.12' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/vireshk/pm
0756dd3e01a1 Merge tag 'icc-6.12-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next
48ef55ed5e6b dt-bindings: timer: rockchip: Add rk3576 compatible
2cb35bc12d6d dt-bindings: arm-smmu: document the support on SA8255p
d98dc8c45271 dt-bindings/perf: Add Arm NI-700 PMU
960964f50686 Merge tag 'mediatek-drm-next-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-next
f7cbf097108a dt-bindings: input: convert rotary-encoder to yaml
fd25de5d1fff Merge branch 'ib/6.11-rc6-matrix-keypad-spitz' into next
72112d96b44c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
4acb2e47c700 arm64: dts: rockchip: add CAN0 and CAN1 interfaces to mecsbc board
e8435e929308 arm64: dts: rockchip: add CAN-FD controller nodes to rk3568
48f453f9b472 Merge tag 'sunxi-dt-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
579d781f1dcf Merge branch 'clk-imx-old' into clk-imx
a633f713e6f2 dt-bindings: incomplete-devices: And another batch of compatibles
487b883b3423 arm64: dts: nuvoton: ma35d1: Add uart pinctrl settings
e023c440d2ee arm64: dts: nuvoton: ma35d1: Add pinctrl and gpio nodes
5de59ba458ce arm64: dts: nuvoton: Add syscon to the system-management node
2e77fa477505 dt-bindings: spi: nxp-fspi: add imx8ulp support
5b74d0869109 Merge tag 'hwmon-for-v6.11-rc7' into review-hans
57ee35a089ed Merge tag 'amlogic-drivers-for-v6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/drivers
a4dabd3a86de ARM: dts: Fix undocumented LM75 compatible nodes
8a2241529db9 Merge tag 'amlogic-arm64-dt-for-v6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt
ec88102448f1 Merge tag 'qcom-drivers-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
b087d2a961fa Merge tag 'at91-soc-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/drivers
b701b248016f Merge tag 'reset-for-v6.12' of git://git.pengutronix.de/pza/linux into soc/drivers
5c8e7e15f2dc Merge tag 'linux-can-next-for-6.12-20240904-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
f76efea5cd25 dt-bindings: lcdif: Document the dmas/dma-names properties
ca3b9a570344 dt-bindings: watchdog: nxp,lpc1850-wdt: Convert bindings to dtschema
8229ddcc6d9e dt-bindings: watchdog: convert ziirave-wdt.txt to yaml
3f86481d15f1 dt-bindings: input: qcom,pm8xxx-vib: Document PM6150 compatible
179d87d6848c Merge tag 'amlogic-arm-dt-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt
c0d1571f04dd arm64: dts: toshiba: Fix pl011 and pl022 clocks
1944d8ee1a39 Merge tag 'qcom-arm64-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
bcb60c8ee23c Merge tag 'qcom-arm32-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
b2b82bc26074 Merge tag 'stm32-dt-for-v6.12-1' of https://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into soc/dt
0c47b7c83c1d Merge tag 'omap-for-v6.12/dt-signed' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/dt
ccb4133b1a49 Merge tag 'imx-dt64-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
c731a93bca99 Merge tag 'imx-dt-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
dabe766cd633 Merge tag 'imx-bindings-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
14d822ea06ac Merge tag 'riscv-sophgo-dt-for-6.12' of https://github.com/sophgo/linux into soc/dt
1623bda6b8fc Merge tag 'ti-k3-dt-for-v6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt
0391ecfbd8b0 dt-bindings: mmc: Add support for rk3576 eMMC
9fd2838204a7 Merge tag 'renesas-dts-for-v6.12-tag2' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
71c03a01d0d1 ARM: dts: stm32: Use SAI to generate bit and frame clock on STM32MP15xx DHCOM PDK2
ac455dc60d5f ARM: dts: stm32: Switch bitclock/frame-master to flag on STM32MP15xx DHCOM PDK2
8d5ba16e3d71 ARM: dts: stm32: Sort properties in audio endpoints on STM32MP15xx DHCOM PDK2
457129448b09 ARM: dts: stm32: Add MECIO1 and MECT1S board variants
62adb3b41c66 dt-bindings: arm: stm32: Add compatible strings for Protonic boards
c9b3356bcc2f ARM: dts: stm32: stm32mp151a-prtt1l: Fix QSPI configuration
1173bb473faa ARM: dts: stm32: Describe PHY LEDs in DH STM32MP13xx DHCOR DHSBC board DT
be0ef5915493 ARM: dts: stm32: Add missing gpio options for sdmmc2_d47_pins_d
d8f8cce93bea ARM: dts: stm32: Add ethernet MAC nvmem cells to DH STM32MP13xx DHCOR DHSBC board
5a1f8832fcb1 ARM: dts: stm32: Disable PHY clock output on DH STM32MP13xx DHCOR DHSBC board
216e88a00530 ARM: dts: stm32: Keep MDIO bus in AF across suspend DH STM32MP13xx DHCOR DHSBC board
5f96712c6f69 dt-bindings: pwm: renesas,tpu: Add r8a779h0 support
d179feacacfe dt-bindings: pwm: renesas,pwm-rcar: Add r8a779h0 support
81923003e3a9 arm64: dts: amlogic: gxlx-s905l-p271: drop saradc gxlx compatible
92b978ba406b Merge tag 'wireless-next-2024-09-04' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
56446bfd3157 arm64: dts: qcom: msm8939: revert use of APCS mbox for RPM
13350f1ba02d arm64: dts: rockchip: remove duplicate nodes from dts for ROCK 4SE
7d294942f2d3 arm64: dts: rockchip: Add GameForce Ace
60163624a565 dt-bindings: arm: rockchip: Add GameForce Ace
1c22de7985e3 arm64: dts: rockchip: rk3588s fix sdio pins to pull up
30612c038ca1 dt-bindings: apple,aic: Document A7-A11 compatibles
486e7fcb863f arm64: dts: rockchip: Add RGA2 support to rk3588
0ad8dc478093 arm64: dts: rockchip: Add missing tshut props to tsadc on quartz64-b
7ba62d8b4cb0 arm64: dts: rockchip: Add Hardkernel ODROID-M2
a40a4e8e4f1c dt-bindings: arm: rockchip: Add Hardkernel ODROID-M2
9223e9d7ea36 arm64: dts: rockchip: drop hp-pin-name property from audio card on nanopc-t6
e1e615c567dc dt-bindings: extcon: convert extcon-usb-gpio.txt to yaml format
7f773959f1ec dt-bindings: extcon: ptn5150: add child node port
bde640bf7cf1 dt-bindings: PCI: altera: Convert to YAML
db918fcdf3f5 dt-bindings: opp: operating-points-v2-ti-cpu: Update maintainers
70f8793837ff dt-bindings: PCI: qcom,pcie-sc7280: Update bindings adding eight interrupts
d770081064fc dt-bindings: perf: arm-cmn: Add CMN S3
16c898a31879 dt-bindings: PCI: layerscape-pci: Change property 'fsl,pcie-scfg' type
bc1fb870606a dt-bindings: PCI: layerscape-pci: Add deprecated property 'num-viewport'
cce4c0d03ab7 arm64: dts: allwinner: a64: Add GPU thermal trips to the SoC dtsi
5883db2317e5 arm64: dts: allwinner: h700: Add charger for Anbernic RG35XX
b625da91b609 dt-bindings: PCI: layerscape-pci: Replace fsl,lx2160a-pcie with fsl,lx2160ar2-pcie
0e2df6bce1f0 dt-bindings: PCI: socionext,uniphier-pcie-ep: Add top-level constraints
e86828421765 dt-bindings: PCI: renesas,pci-rcar-gen2: Add top-level constraints
4863016c8f0a dt-bindings: PCI: hisilicon,kirin-pcie: Add top-level constraints
9aa816d2f16f dt-bindings: PCI: brcm,stb-pcie: Add 7712 SoC description
6e546db437a3 dt-bindings: PCI: brcm,stb-pcie: Use maxItems for reset controllers
a01a87808edc dt-bindings: PCI: brcm,stb-pcie: Change brcmstb maintainer and cleanup
63ba513825e0 arm64: dts: imx: rename gpio hog as <gpio name>-hog
02fbdda758cf arm64: dts: imx8mp-var-som-symphony: Add Variscite Symphony board and VAR-SOM-MX8MP SoM
1f1d889cedc5 arm64: dts: imx8mm-var-som: drop unused top-level compatible
d8932a91c6a2 arm64: dts: ls1088ardb: add new RTC PCF2131 support
f6f10594a16b arm64: dts: colibri-imx8x: Cleanup comments
019dfb9bb53e arm64: dts: colibri-imx8x: Add 50mhz clock for eth
4c8be2b8bbf0 arm64: dts: colibri-imx8x: Add adma_pwm
7b6331c049fb arm64: dts: colibri-imx8x: Add vpu support
84555c13a1ce arm64: dts: colibri-imx8x: Add USB3803 HUB
f38e9d1358ad arm64: dts: colibri-imx8x: Add PMIC thermal zone
065f440c7da7 arm64: dts: colibri-imx8x: Add sound card
7940a0ba62f2 arm64: dts: colibri-imx8x: Add fxl6408 gpio expander
8c5ea97c03a2 arm64: dts: colibri-imx8x: Add analog inputs
6f1da566c293 arm64: dts: colibri-imx8x: Add usb support
1311b41e329c arm64: dts: imx8qm-mek: add usb 3.0 and related type C nodes
1fb4c58403f1 arm64: dts: imx8qm-mek: add i2c in mipi[0,1] subsystem
971db378a7c0 arm64: dts: imx8qm-mek: add pwm and i2c in lvds subsystem
9d12eacd1bc1 arm64: dts: imx8qm-mek: add cm4 remote-proc and related memory region
6d35111a2d75 arm64: dts: imx8qm: add mipi subsystem
3a7adb0d7a99 arm64: dts: imx8: add basic mipi subsystem
3b816c11a492 arm64: dts: imx8qm: add lvds subsystem
d94093a747f7 arm64: dts: imx8: add basic lvds0 and lvds1 subsystem
27361f0220a7 arm64: dts: imx95: Add NETCMIX block control support
b565c04facdd arm64: dts: freescale: rename gw7905 to gw75xx
aaf45e470cf4 arm64: dts: imx93-11x11-evk: Add PWM backlight for "LVDS" connector
bf23c13c67bb arm64: dts: imx8mp-phyboard-pollux-rdk: Add support for PCIe
39cdd6174870 arm64: dts: imx8mp-evk: Add native HDMI output
ac60e279225e arm64: dts: imx8m: update spdif sound card node properties
31c4dd8188d4 arm64: dts: imx8mp-beacon: Enable DW HDMI Bridge
e9a6930bc0a2 arm64: dts: imx8mm-beacon-kit: add DVDD-supply and DOVDD-supply
9eeec9d9d8d4 arm64: dts: s32v234: remove fallback compatible string arm,cortex-a9-gic
f58560a5ccc7 arm64: dts: fsl-ls1088a-ten64: change to low case hex value
c3f58fa4417b arm64: dts: imx8mp-venice: add vddl and vana for sensor@10
309e50af8372 arm64: dts: fsl-lx2160a-tqmlx2160a: change "vcc" to "vdd" for hub*
f1f7e3f2b0f2 arm64: dts: imx8mm-venice-gw7902(3): add #address-cells for gsc@20
771ce3cd2443 arm64: dts: fsl-ls1028: add missed supply for wm8904
41ef8443afe7 arm64: dts: layerscape: rename mdio-mux-emi to mdio-mux@<addr>
f6a7840b1f26 arm64: dts: fsl-ls1012a-frdm: move clock-sc16is7xx under root node
ea09b5324543 arm64: dts: fsl-ls1043a: move "fsl,ls1043a-qdma" ahead "fsl,ls1021a-qdma"
65b7b459bde1 arm64: dts: imx8-ss-img: remove undocument slot for jpeg
0b036c49a6fd arm64: dts: freescale: imx93-tqma9352: set SION for cmd and data pad of USDHC
452e82fad6cf arm64: dts: freescale: imx93-tqma9352-mba93xxca: add GPIO line names
025c26c9f770 arm64: dts: freescale: imx93-tqma9352-mba93xxca: Add ethernet aliases
54d5725ed166 arm64: dts: freescale: imx93-tqma9352-mba93xxca: add missing pad configurations
8e7aadbef289 arm64: dts: freescale: imx93-tqma9352-mba93xxca: improve pad configuration
c079f6aa2067 arm64: dts: freescale: imx93-tqma9352-mba93xxca: add RTC / temp sensor IRQ
c1214c1c3043 arm64: dts: freescale: imx93-tqma9352-mba93xxla: add GPIO line names
4fe3aefa703b arm64: dts: freescale: imx93-tqma9352-mba93xxla: Add ethernet aliases
78a7347d8fac arm64: dts: freescale: imx93-tqma9352-mba93xxla: add missing pad configurations
58d39e8b2559 arm64: dts: freescale: imx93-tqma9352-mba93xxla: add irq for temp sensor
c48745e448e4 arm64: dts: freescale: imx93-tqma9352-mba93xxla: enable LPSPI6 interface
71cb60986ba9 arm64: dts: freescale: imx93-tqma9352-mba93xxla: improve pad configuration
90fc791ccb30 arm64: dts: freescale: imx93-tqma9352: add eMMC regulators
c34e9494ac56 arm64: dts: freescale: imx93-tqma9352: Add PMIC node
34236a616de0 arm64: dts: imx8mm: Update Data Modul i.MX8M Mini eDM SBC DT to rev.A01
919a7882215e arm64: dts: imx8mp: Enable HDMI to Data Modul i.MX8M Plus eDM SBC
dd5d3af55eea arm64: dts: imx8mp: Add DT nodes for the two ISPs
7ce07ca6a6e2 arm64: dts: imx8mm-phygate-tauri-l: add rtc aux-voltage-chargeable
38852ff7feee arm64: dts: imx8mm-phyboard-polis: add rtc aux-voltage-chargeable
52407e4bff58 arm64: dts: imx8mp-phyboard-pollux: add rtc aux-voltage-chargeable
e27dd8e31a78 arm64: dts: imx8mp-phyboard-pollux: Add usb3_phy1 regulator reference
c58a1b82b321 arm64: dts: imx8mp-phyboard-pollux: Add VCC_5V_SW regulator
1bfaaded0f3d arm64: dts: imx8mp-phyboard-pollux: Assign regulator to EEPROM node
2639411b9ed8 arm64: dts: imx8mp-phyboard-pollux: Add SD-Card vqmmc supply
d3e0b293f0f7 arm64: dts: imx8mp-phycore: Assign regulator to EEPROM node
dce2717b5328 arm64: dts: imx8mp-phycore: Add VDD_IO regulator
a9118809a792 arm64: dts: imx8mp: Clarify csis clock frequency
028cd2f7876e arm64: dts: Add support for Kontron i.MX93 OSM-S SoM and BL carrier board
6270af0fcbe1 dt-bindings: can: rockchip_canfd: add rockchip CAN-FD controller
4d894206f98f ARM: dts: rockchip: Add pwm node for RV1126
9b70bb24a538 ARM: dts: rockchip: Add i2s0 node for RV1126
65581a9ca07d ARM: dts: rockchip: Add i2c3 node for RV1126
d8d71fb477f7 Fixes for the audio setup on the rk3588-nanopc-t6
7e4eb96561e4 dt-bindings: arm: rockchip: Add rk3576 compatible string to pmu.yaml
9e6e88e5cca4 dt-bindings: power: supply: axp20x: Add AXP717 compatible
10ceb3e9dbd9 dt-bindings: power: supply: axp20x: Add AXP717 compatible
d0cd6161ff69 dt-bindings: PCI: rcar-gen4-pci-ep: Add R-Car V4M compatible
a8400f74f5e6 dt-bindings: PCI: rcar-gen4-pci-host: Add R-Car V4M compatible
a3cf6f0180d0 dt-bindings: iio: aw96103: Add bindings for aw96103/aw96105 sensor
de9be6449a88 dt-bindings: net: wireless: convert marvel-8xxx.txt to yaml format
941c9114f73d dt-bindings: iio: adc: sophgo,cv1800b-saradc: Add Sophgo CV1800B SARADC
51b4b73b97ce dt-bindings: iio: magnetometer: Add ak09118
610acebbcb49 dt-bindings: mfd: mediatek: Add codec property for MT6357 PMIC
7f5d05b8d216 ASoC: dt-bindings: mediatek,mt8365-mt6357: Add audio sound card document
4e4b33f3b202 ASoC: dt-bindings: mediatek,mt8365-afe: Add audio afe document
4212c9b345b1 spi: dt-bindings: Add rockchip,rk3576-spi compatible
3770a63d214b dt-bindings: PCI: mediatek-gen3: Add support for Airoha EN7581
345c74fb75d4 dt-bindings: mmc: sdhci-atmel: Convert to json schema
dd57e9643217 dt-bindings: mmc: Add support for rk3576 dw-mshc
f633f7d01490 ASoC: dt-bindings: realtek,rt5616: Document audio graph port
5e8dfcc2607f ASoC: dt-bindings: realtek,rt5616: document mclk clock
833155588bdd dt-bindings: HID: i2c-hid: elan: Introduce Elan ekth6a12nay
cf29093ff39e Merge tag 'v6.12-rockchip-dts32-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
640ae1e1dacf Merge tag 'v6.12-rockchip-dts64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
0871b431c0e4 Merge tag 'at91-dt-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/dt
51c6ba4d40f6 Merge tag 'tegra-for-6.12-arm64-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
44173085d014 Merge tag 'tegra-for-6.12-arm-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
47cde27f81ac Merge tag 'tegra-for-6.12-dt-bindings' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
5241ad9f26c3 Merge tag 'juno-update-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/dt
5fb5ac3480bb Merge tag 'samsung-dt64-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
f1e89840bc1e Merge tag 'renesas-dts-for-v6.12-tag1' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
7ed51efc6e0d Merge tag 'renesas-dt-bindings-for-v6.12-tag1' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
ea01532a3ae6 Merge tag 'thead-dt-for-v6.12' of https://github.com/pdp7/linux into soc/dt
dd11025ff7a3 dt-bindings: nvmem: sfp: add ref to nvmem-deprecated-cells.yaml
458f61f5313b dt-bindings: nvmem: st,stm32-romem: add missing "unevaluatedProperties" on child nodes
fcb640444b5c dt-bindings: nvmem: convert U-Boot env to a layout
5df93fc0d53b dt-bindings: nvmem: imx-ocotp: support i.MX95
c42f39cedeec dt-bindings: misc: qcom,fastrpc: document new domain ID
1d64c34cb9f3 dt-bindings: misc: qcom,fastrpc: increase the max number of iommus
17980f57edec Merge tag 'at24-updates-for-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-mergewindow
d2e3967b0afa Merge tag 'iio-for-6.12a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-testing
9aa8c1a7577d dt-bindings: pinctrl: qcom: add missing type to GPIO hogs
b5944604b426 dt-bindings: arm: fsl: Add Variscite Symphony board and VAR-SOM-MX8MP SoM
7af9720cb0b5 ARM: dts: imx28-lwe: Remove saif[01] definitions
f9f7e741094a ARM: dts: imx28-lwe: Reduce maximal SPI frequency
a65e6a67aa59 ARM: dts: imx28-lwe: Fix partitions definitions
b98ec3758140 ARM: dts: imx6qdl: align pin config nodes with bindings
b7fc85edae4f ARM: dts: imx6sl: align pin config nodes with bindings
95e32ad3bf7b ARM: dts: imx6ul: align pin config nodes with bindings
7056217fdf07 ARM: dts: imx6ul-tx6ul: drop empty pinctrl placeholder
f08b3057394b ARM: dts: imx28-tx28: Fix the fsl,saif-master usage
ff2205db20d0 ARM: dts: imx6ull-seeed-npi: fix fsl,pins property in tscgrp pinctrl
3b7df425351d ARM: dts: imx6ul-geam: fix fsl,pins property in tscgrp pinctrl
894051e2803e ARM: dts: imx23/8: Rename apbh and apbx nodes
50012176de18 arm64: dts: renesas: r8a779h0: Add family fallback for CSISP IP
0a83fb9c2181 arm64: dts: renesas: r8a779a0: Add family fallback for CSISP IP
ff5ab2727977 arm64: dts: renesas: r8a779g0: Add family fallback for CSISP IP
379c31adee9a arm64: dts: renesas: r8a779h0: Add family fallback for VIN IP
99cddc679b99 arm64: dts: renesas: r8a779a0: Add family fallback for VIN IP
6ffc04da6439 arm64: dts: renesas: r8a779g0: Add family fallback for VIN IP
6c01d58ad2de dt-bindings: phy: mxs-usb-phy: add nxp,sim property
9f3a02e75bbe Merge tag 'soc_fsl-6.12-2' of https://github.com/chleroy/linux into soc/drivers
307077e22040 dt-bindings: arm: fsl: drop usage of VAR-SOM-MX8MM SoM compatible alone
cc9786586362 dt-bindings: soc: fsl: cpm_qe: Add QUICC Engine (QE) QMC controller
7c415ee200d4 dt-bindings: soc: fsl: cpm_qe: Add QUICC Engine (QE) TSA controller
17ef302ceb8b Merge 6.11-rc6 into usb-next
1cf355a6c782 dt-bindings: thermal: tsens: document support on SA8255p
235ef0119c74 dt-bindings: thermal: amlogic,thermal: add optional power-domains
b1de4f2c7d83 dt-bindings: gpio: simplify GPIO hog nodes schema
783de5612c1b dt-bindings: gpio: fcs,fxl6408: add missing type to GPIO hogs
0d6a4489faf9 Merge tag 'scmi-updates-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/drivers
e03afc0f6d76 Revert "dt-bindings: reset: mobileye,eyeq5-reset: add bindings"
961a55253a3d dt-bindings: reset: Add Amlogic T7 reset controller
f2714b5112f8 Merge tag 'v6.12-rockchip-drivers-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/drivers
419b9571a065 Merge tag 'memory-controller-drv-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into soc/drivers
50b39597079b Merge tag 'samsung-drivers-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/drivers
64b399907431 dt-bindings: reset: socionext,uniphier-glue-reset: add top-level constraints
97fd537d4265 arm64: dts: renesas: r9a09g057h44-rzv2h-evk: Enable watchdog
05e922593f35 arm64: dts: renesas: r9a09g057h44-rzv2h-evk: Enable OSTM, I2C, and SDHI
a7c0469954d9 arm64: dts: renesas: r9a09g057: Add WDT0-WDT3 nodes
04efe7a61e31 arm64: dts: renesas: r9a09g057: Add SDHI0-SDHI2 nodes
081c7ebd5117 arm64: dts: renesas: r9a09g057: Add RIIC0-RIIC8 nodes
0f24f2591741 arm64: dts: renesas: r9a09g057: Add OSTM0-OSTM7 nodes
cf3039921ea4 arm64: dts: renesas: Add initial DTS for RZ/V2H EVK board
e84827b572d2 arm64: dts: renesas: Add initial SoC DTSI for RZ/V2H(P) SoC
46af463768ab Merge tag 'renesas-r9a09g057-dt-binding-defs-tag' into renesas-dts-for-v6.12
a0d20c602658 dt-bindings: soc: renesas: Document RZ/V2H EVK board
b780366cde3e dt-bindings: clock: renesas: Document RZ/V2H(P) SoC CPG
637bf48145b8 arm64: dts: amlogic: add clock and clock-names to sound cards
dfdada015d23 arm64: dts: amlogic: c3: fix dtbcheck warning
bf56bb59af0a dt-bindings: riscv: Add Sipeed LicheeRV Nano board compatibles
53932f7ee453 dt-bindings: interrupt-controller: Add SOPHGO SG2002 plic
c3ec98a4485c riscv: dts: sophgo: Add mcu device for Milk-V Pioneer
3b3dbd4768fb riscv: sophgo: dts: add gpio controllers for SG2042 SoC
06ca7dca8adb riscv: sophgo: dts: add mmc controllers for SG2042 SoC
48c8c6dff3b9 riscv: dts: sophgo: Add i2c device support for sg2042
d3a429542f6b riscv: dts: sophgo: Use common "interrupt-parent" for all peripherals for sg2042
e2e29a4a0e7f riscv: dts: sophgo: Add sdhci0 configuration for Huashan Pi
82cff8630279 riscv: dts: sophgo: cv18xx: add DMA controller
8f94b86f8790 dt-bindings: arm: fsl: rename gw7905 to gw75xx
803d55957a25 ARM: dts: imx6qdl-mba6b: remove doubled entry for I2C1 pinmux
fcf1c7a1ef2b ARM: dts: imx6qdl-mba6: improve compatible for LM75 temp sensor
0c087d4a4e82 ARM: dts: imx6qdl-tqma6: improve compatible for LM75 temp sensor
46d993ec69ba ARM: dts: imx6qdl-tqma6: move i2c3 pinmux to imx6qdl-tqma6b
ff06bcd556cb dt-bindings: display/msm: hdmi: add qcom,hdmi-tx-8998
755904f477bd dt-bindings: phy: add qcom,hdmi-phy-8998
663262924428 arm64: dts: ti: k3-j722s-evm: Enable Inter-Processor Communication
71c4b3ce37e2 arm64: dts: ti: k3-j722s-main: Add R5F and C7x remote processor nodes
c943d76b4c74 arm64: dts: ti: k3-am68-sk-som: Update Partition info for OSPI Flash
23b22e680c7d arm64: dts: ti: Add k3-am67a-beagley-ai
824be4a970d0 dt-bindings: arm: ti: Add BeagleY-AI
304200a901f9 arm64: dts: ti: iot2050: Declare Ethernet PHY leds
11de91263d22 arm64: dts: ti: k3-am65: Add ESM nodes
68c34567b630 arm64: dts: ti: k3-am64: Add more ESM interrupt sources
1409ab969e50 arm64: dts: ti: k3-am62a: Add ESM nodes
644613277dda arm64: dts: ti: k3-am62: Add comments to ESM nodes
bb0a98687d3a arm64: dts: ti: k3-am62p: Fix ESM interrupt sources
b354d57f1723 arm64: dts: ti: k3-am62p: Remove 'reserved' status for ESM
5358ca0f17da arm64: dts: ti: k3-j721s2-evm-gesi-exp-board: Rename gpio-hog node name
85f22eb39288 arm64: dts: ti: k3-am642-evm-nand: Rename pinctrl node and gpio-hog names
44217cc8b8b0 arm64: dts: ti: k3-am654-idk: Fix dtbs_check warning in ICSSG dmas
2b44202ca059 arm64: dts: ti: k3-j784s4: Include entire FSS region in ranges
7acf34029a08 arm64: dts: ti: k3-j721s2: Include entire FSS region in ranges
23579c03e163 arm64: dts: ti: k3-j721e: Include entire FSS region in ranges
0ad687bb7319 arm64: dts: ti: k3-am65: Include entire FSS region in ranges
5a4735e176cb arm64: dts: ti: k3-am64: add USB fallback compatible to J721E
9a1e740983be ARM: dts: imx7d-sdb: align pin config nodes with bindings
b3ed0a30471f ARM: dts: imx7: align pin config nodes with bindings
871e432449e9 ARM: dts: imx7d-zii-rmu2: fix Ethernet PHY pinctrl property
652ee8ca8ffa dt-bindings: PCI: qcom,pcie-sm8450: Add 'global' interrupt
aad6e6005277 dt-bindings: PCI: pci-ep: Document 'linux,pci-domain' property
27c07034be38 dt-bindings: PCI: pci-ep: Update Maintainers
1e7020ce7791 ARM: dts: imx6: update spdif sound card node properties
372f1ab45835 dt-bindings: PCI: ti,j721e-pci-host: Add ACSPCIE proxy control property
368cf85b7873 dt-bindings: PCI: xilinx-xdma: Add schemas for Xilinx QDMA PCIe Root Port Bridge
4a16d22b4f9e ARM: dts: imx28-apx4devkit: Fix the regulator description
ad81560ac0da dt-bindings: arm: fsl: Add Kontron i.MX93 OSM-S based boards
94f2fea1780f dt-bindings: arm: fsl: correct spelling of TQ-Systems
875f78a15f79 dt-bindings: arm: fsl: add fsl-ls2081a-rdb board
8ec656acd9b6 ARM: dts: microchip: sama7g5: Fix RTT clock
4c2a3ee5da6e dt-bindings: media: imx335: Add reset-gpios to the DT example
730d2c112f18 media: dt-bindings: Add OmniVision OG01A1B image sensor
11e5f399aaef arm64: dts: qcom: x1e80100: Fix PHY for DP2
c2c548665c81 arm64: dts: qcom: qcm6490-idp: Add SD Card node
1767f8e69eb1 arm64: dts: qcom: x1e80100: Add orientation-switch to all USB+DP QMP PHYs
bf98eed075c2 arm64: dts: qcom: Add X1E78100 ThinkPad T14s Gen 6
264a3a1d80d8 dt-bindings: arm: qcom: Add Lenovo ThinkPad T14s Gen 6
e74f70887a57 Revert "arm64: dts: qcom: msm8939-longcheer-l9100: Add rear flash"
5f2f4f723fa9 dt-bindings: input: touchscreen: Use generic node name
9b752876c658 dt-bindings: can: convert microchip,mcp251x.txt to yaml
b35b06606ab1 dt-bindings: can: renesas,rcar-canfd: Document R-Car V4M support
2ad2e27d9bfa arm64: zynqmp: Add PCIe phys property for ZCU102
be1802f54fbf dt-bindings: display: mediatek: dpi: Add power domains
c740729d5ed3 dt-bindings: crypto: fsl,sec-v4.0: add second register space for rtic
4661a66ce4a0 dt-bindings: mfd: syscon: Add ti,j784s4-acspcie-proxy-ctrl compatible
04ac19d3a2d7 arm64: dts: amlogic: add C3 AW419 board
615440deb796 arm64: dts: amlogic: add some device nodes for C3
d1005bc07604 dt-bindings: clock: fix C3 PLL input parameter
c7f8ca42588e dt-bindings: phy: renesas,usb2-phy: Document RZ/G3S phy bindings
dfc9d521463c Merge tag 'drm-misc-next-2024-08-29' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
f03a11244704 arm64: dts: rockchip: drop unsupported regulator-property from NanoPC-T6
d80f2679e7ef arm64: dts: rockchip: drop unsupported regulator property from NanoPC-T6
bb1d83d6d154 arm64: dts: rockchip: use correct fcs,suspend-voltage-selector on NanoPC-T6
dddb75f954f8 dt-bindings: hwmon: Convert ltc2978.txt to yaml
f1a84830dbd0 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
01a92d05a6ef dt-bindings: phy: nuvoton,ma35-usb2-phy: add new bindings
1e1c98308274 dt-bindings: phy: socionext,uniphier: add top-level constraints
836a6d84f0a1 dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the X1E80100 QMP PCIe PHY Gen4 x4
0c7b878bae92 ASoC: dt-bindings: amlogic-sound-cards: document
19a573bd7c1b ARM: dts: rockchip: Do not describe unexisting DAC device on rv1108-elgin-r1
fb92f494c231 dt-bindings: dma: fsl,imx-dma: Document the DMA clocks
6fdcc9efa6d3 dt-bindings: dma: Add Loongson-1 APB DMA
92c15b9bd12f dt-bindings: dmaengine: zynqmp_dma: Add a new compatible string
a6ddb47a2098 arm64: tegra: Add thermal nodes to AGX Orin SKU8
15704765cd56 arm64: tegra: Move BPMP nodes to AGX Orin module
f33e5c87cd14 arm64: tegra: Move padctl supply nodes to AGX Orin module
ff4246e457b7 arm64: tegra: Move AGX Orin nodes to correct location
58527f4695e4 arm64: tegra: Combine IGX Orin board files
255e5d2971fb arm64: tegra: Combine AGX Orin board files
8552d4211195 arm64: tegra: Add common nodes to AGX Orin module
8bd8597a0a6d ARM: tegra: Wire up two front panel LEDs on TrimSlice
ff519b8ef76d arm64: tegra: Wire up WiFi on Jetson TX1 module
00adb43ae1dd arm64: tegra: Wire up Bluetooth on Jetson TX1 module
77abea29704d arm64: tegra: Wire up power sensors on Jetson TX1 DevKit
b38ce73e7e71 arm64: tegra: Add p3767 PCIe C4 EP details
f35343a75e68 arm64: tegra: Add Tegra234 PCIe C4 EP definition
5dd089a76f46 arm64: tegra: Add wp-gpio for P2597's external card slot
913b78e9ab29 arm64: tegra: Fix gpio for P2597 vmmc regulator
533aa13b4d7e dt-bindings: arm: tegra: Document Nyan, all revisions in kernel tree
1808af73af9c ARM: tegra: tf701t: Configure USB
df9991682d4b ARM: tegra: tf701t: Use dedicated backlight regulator
e89bd9aa0af9 ARM: tegra: tf701t: Re-group GPIO keys
6dc9e9e5ec10 ARM: tegra: tf701t: Bind WIFI SDIO and EMMC
d9276fbec90c ARM: tegra: tf701t: Complete sound bindings
7c9c57c6a480 ARM: tegra: tf701t: Adjust sensors nodes
1d7f378a77ab ARM: tegra: tf701t: Add Bluetooth node
b90a799f01f6 ARM: tegra: tf701t: Add HDMI bindings
5b25e43599f0 ARM: tegra: tf701t: Correct and complete PMIC and PMC bindings
e631002961fa ARM: tegra: tf701t: Bind VDE device
fc69477d24eb ARM: tegra: tf701t: Use unimomentary pinmux setup
0ab6a7932c8b arm64: dts: rockchip: add Mask Rom key on NanoPC-T6
1a52d6ab54e2 arm64: dts: rockchip: enable USB-C on NanoPC-T6
79642aca4c38 arm64: dts: rockchip: enable GPU on NanoPC-T6
b21c9096d8aa arm64: dts: rockchip: add IR-receiver to NanoPC-T6
7588da65fdf0 arm64: dts: rockchip: add SPI flash on NanoPC-T6
f4a834fbc8cd arm64: dts: rockchip: add NanoPC-T6 LTS
697963b1c223 arm64: dts: rockchip: move NanoPC-T6 parts to DTS
e8b52bdfe5a1 arm64: dts: rockchip: prepare NanoPC-T6 for LTS board
575cca90e500 dt-bindings: arm: rockchip: Add NanoPC-T6 LTS
fb1daa751de6 ASoC: dt-bindings: cirrus,cs4271: Convert to dtschema
3bb526265976 dt-bindings: trivial-devices: Document elgin,jg10309-01
1f18faa52af2 arm64: dts: renesas: r9a07g043u11-smarc: Enable DU
003b1cc9c454 arm64: dts: renesas: rzg2lc-smarc: Enable HDMI audio
f465663b62d4 arm64: dts: renesas: rzg2l-smarc: Enable HDMI audio
6f1c891c4923 dt-bindings: clock, reset: Add support for rk3576
4c39cdd85090 dt-bindings: clock: rockchip,rk3588-cru: drop unneeded assigned-clocks
77f0c68bc35e dt-bindings: clock: add RMII clock selection
fb6d4b8f11b7 dt-bindings: clock: add i.MX95 NETCMIX block control
48eb72503893 dt-bindings: input: pure gpio support for adp5588
c2886da1dbe0 dt-bindings: firmware: Add i.MX95 SCMI Extension protocol
5945a13e2126 dt-bindings: clock: rockchip: remove CLK_NR_CLKS and CLKPMU_NR_CLKS
3dc72c95197d ASoC: dt-bindings: Convert mxs-saif.txt to fsl,saif.yaml (imx28 saif)
4d516d34873a ASoC: dt-bindings: amlogic,gx-sound-card: document clocks property
d86dfc6fa6b3 ASoC: dt-bindings: amlogic,axg-sound-card: document clocks property
ea182e00a295 arm64: dts: ti: k3-am62a: Add E5010 JPEG Encoder
88ab1d7fc332 arm64: dts: ti: k3-j722s-evm: Add support for multiple CAN instances
3cfaf0650ba5 arm64: dts: ti: k3-j722s-evm: Describe main_uart5
c59d971fc757 arm64: dts: ti: k3-am62p5-sk: Remove CTS/RTS from wkup_uart0 pinctrl
8beebb0e9d09 arm64: dts: ti: k3-am69-sk: Change timer nodes status to reserved
538a1b5e8210 arm64: dts: ti: k3-j784s4-evm: Change timer nodes status to reserved
195e948fdf56 arm64: dts: ti: k3-am68-sk-som: Change timer nodes status to reserved
d2228e0d28dc arm64: dts: ti: k3-j721s2-som-p0: Change timer nodes status to reserved
a8756a4a303e arm64: dts: ti: k3-j721e-sk: Change timer nodes status to reserved
3969fd6f8143 arm64: dts: ti: k3-j721e-som-p0: Change timer nodes status to reserved
3cd0a686d510 arm64: dts: ti: k3-j7200-som-p0: Change timer nodes status to reserved
741915246a92 arm64: dts: ti: iot2050: Add overlays for M.2 used by firmware
4b4872feb66a arm64: dts: ti: iot2050: Disable lock-step for all iot2050 boards
dc07279d1bab arm64: dts: ti: k3-am69-sk: Switch MAIN R5F clusters to Split-mode
f627362129b5 arm64: dts: ti: k3-j784s4-evm: Switch MAIN R5F clusters to Split-mode
8174754e2777 arm64: dts: ti: k3-am68-sk-som: Switch MAIN R5F clusters to Split-mode
6233bc489871 arm64: dts: ti: k3-j721s2-som-p0: Switch MAIN R5F clusters to Split-mode
fca5e38e5beb arm64: dts: ti: k3-j721e-sk: Switch MAIN R5F clusters to Split-mode
3774bb9e8cb2 arm64: dts: ti: k3-j721e-som-p0: Switch MAIN R5F clusters to Split-mode
a66d77186b40 arm64: dts: ti: k3-j7200-som-p0: Switch MAIN R5F cluster to Split-mode
133554ec025d arm64: dts: ti: k3-am64*: Disable ethernet by default at SoC level
66a063eb12dc arm64: dts: ti: k3-j784s4-main: Align watchdog clocks
8a698e068513 arm64: dts: ti: k3-j721e-beagleboneai64: Fix reversed C6x carveout locations
87f69fcb34f4 arm64: dts: ti: k3-j721e-sk: Fix reversed C6x carveout locations
84933142c746 dt-bindings: clock: st,stm32mp1-rcc: add top-level constraints
2cec871cf0e5 dt-bindings: clock: cirrus,lochnagar: add top-level constraints
7a202168fd42 dt-bindings: clock: baikal,bt1-ccu-div: add top-level constraints
e1942d3a455b dt-bindings: display: panel: document BOE TV101WUM-LL2 DSI Display Panel
a1037126d228 arm64: dts: rockchip: disable display subsystem only for Radxa E25
0f12b8475909 arm64: dts: rockchip: enable PCIe on M.2 E key for Radxa ROCK 5A
26c8acdd8a05 arm64: dts: rockchip: remove unnecessary properties for Radxa ROCK 5A
5571896b4e6e arm64: dts: rockchip: add dts for LCKFB Taishan Pi RK3566
c118154d729d dt-bindings: arm: rockchip: Add LCKFB Taishan Pi RK3566
37c4b1b721c1 dt-bindings: vendor-prefixes: Add Shenzhen JLC Technology Group LCKFB
f811548e758b arm64: dts: rockchip: Add Hardkernel ODROID-M1S
262f03ff0de7 dt-bindings: arm: rockchip: Add Hardkernel ODROID-M1S
e7259a2c4a6f arm64: dts: rockchip: Correct vendor prefix for Hardkernel ODROID-M1
b96459471da3 dt-bindings: arm: rockchip: Correct vendor for Hardkernel ODROID-M1
f8d8485565e0 dt-bindings: dma: fsl-mxs-dma: Add compatible string "fsl,imx8qxp-dma-apbh"
e92f3a042104 arm64: dts: rockchip: Enable RK809 audio codec for Radxa ROCK 4C+
cefad227bef1 arm64: dts: rockchip: Add VPU121 support for RK3588
4088a0a8f2b1 arm64: dts: rockchip: Add VEPU121 to RK3588
2b4f54ff1c10 Merge tag 'tags/next-media-renesas-20240825' of git://git.kernel.org/pub/scm/linux/kernel/git/pinchartl/linux.git
0670259a5b48 ARM: dts: rockchip: Add vpu nodes for RK3128
8dd9fbe69d9d media: dt-bindings: rockchip-vpu: Add RK3588 VPU121
ffdb85e90b99 media: dt-bindings: rk3568-vepu: Add RK3588 VEPU121
d37df4ff1f86 dt-bindings: media: rockchip,vpu: Document RK3128 compatible
f815b2c771ff ARM: dts: imx7-mba7: improve compatible for LM75 temp sensor
2828805972bd ARM: dts: imx7-mba7: add iio-hwmon support
6118e9ca836b arm64: dts: mba8mx: Add Ethernet PHY IRQ support
c3afb05f919e arm64: dts: layerscape: remove unused num-viewport
f124bec51003 dt-bindings: net: dsa: microchip: Add KSZ8895/KSZ8864 switch support
33160d94827c dt-bindings: net: Add support for rk3576 dwmac
09ca1164bd52 dt-bindings: power: supply: axp20x-battery: Add monitored-battery
e61630b7ce41 dt-bindings: power: supply: axp20x: Add input-current-limit-microamp
eb8f117bd7b7 dt-bindings: hwmon: Add Sophgo SG2042 external hardware monitor support
7ac31d67de1b dt-bindings: hwmon: Add maxim max31790
1780f646640c arm64: tegra: Correct location of power-sensors for IGX Orin
40302c84e250 arm64: tegra: enable same UARTs for Orin NX/Nano
571ac9883e16 arm64: tegra: Add DMA properties for Tegra234 UARTA
1e62b4cbe532 Merge v6.11-rc5 into drm-next
8bfccae67ae2 dt-bindings: power: supply: sc27xx-fg: add low voltage alarm IRQ
5a803b998501 ARM: dts: aspeed: catalina: Update io expander line names
ccdacfed167b ARM: dts: aspeed: catalina: Add pdb cpld io expander
9fcf5dcb0038 dt-bindings: pse: tps23881: add reset-gpios
f5026a99cdf1 dt-bindings: input: touchscreen: convert ads7846.txt to yaml
680c3c61bba3 dt-bindings: soc: ti: pruss: Add documentation for PA_STATS support
0e4b82c23b4e arm64: dts: qcom: Add support for X1-based Surface Laptop 7 devices
e9cc1f78ccf5 arm64: dts: qcom: x1e80100: Add UART2
3b413f608cc1 arm64: dts: qcom: x1e80100-pmics: Add PMC8380C PWM
821294ca606d dt-bindings: arm: qcom: Add Surface Laptop 7 devices
8b0177e6026d Merge branch 'dt/linus' into dt/next
8160d7d6d952 dt-bindings: media: s5p-mfc: Remove s5p-mfc.txt binding
3cf45f597910 dt-bindings: mmc: renesas,sdhi: add top-level constraints
2cff83df147e dt-bindings: mmc: renesas,sdhi: Remove duplicate compatible and add clock checks
3c17599646cb dt-bindings: mmc: sdhci-of-dwcmhsc: Add Sophgo SG2042 support
1fc70c359444 dt-bindings: mmc: renesas,sdhi: Document RZ/V2H(P) support
c7910caf5fbd dt-bindings: mmc: nuvoton,ma35d1-sdhci: Document MA35D1 SDHCI controller
d2704d998d9e dt-bindings: display: renesas,rzg2l-du: Document RZ/G2UL DU bindings
cc10764efd6d Merge branch 'ib-sophgo-pintrl' into devel
5977e4de3444 dt-bindings: pinctrl: Add pinctrl for Sophgo CV1800 series SoC.
0f03ea82a3db Merge tag 'renesas-pinctrl-for-v6.12-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
572673ab5e4c Merge branch 'icc-sm8350' into icc-next
7ea2aa417811 Merge branch 'icc-misc' into icc-next
51be62a4d428 dt-bindings: interconnect: qcom: Do not require reg for sc8180x virt NoCs
cf1b1eda8ae5 dt-bindings: interconnect: qcom-bwmon: Document SA8775p bwmon compatibles
aeb13be6f7ec media: dt-bindings: qcom,sc7280-venus: Allow one IOMMU entry
3be8a2f72a45 arm64: dts: ti: k3-am642-evm: Silence schema warning
0c47c7cfad1d arm64: dts: ti: k3-am654-idk: Add Support for MCAN
090fde9349aa arm64: dts: ti: k3-am65: Add simple-mfd compatible to SerDes control nodes
1b1172800499 dt-bindings: soc: ti: am654-serdes-ctrl: Add simple-mfd to compatible items
a486ccd617ec arm64: dts: ti: am642-phyboard-electra: Add PRU-ICSSG nodes
4706c4c79e25 arm64: dts: ti: k3-am62: Enable CPU freq throttling on thermal alert
17ad44e108b8 arm64: dts: ti: k3-j722s: Add gpio-reserved-ranges for main_gpio1
664f709d5526 arm64: dts: ti: k3-am62p: Add gpio-reserved-ranges for main_gpio1
d7188138b16c arm64: dts: ti: k3-am68-sk-base-board: Add clklb pin mux for mmc1
4ea47ec07f5b arm64: dts: ti: k3-am642-tqma64xxl-mbax4xxl: add PRU Ethernet support
a47b53c95878 arm64: dts: ti: k3-j784s4-evm: Use 4 lanes for PCIe0 on EVM
67f9afc7d8f2 ARM: dts: microchip: sam9x60: Fix rtc/rtt clocks
29575ba64770 dt-bindings: pinctrl: Convert Atmel PIO3 pinctrl to json-schema
7fcc691a5f3c ARM: dts: microchip: sam9x60: Remove additional compatible string from GPIO node
3f7e6ac5daf6 ARM: dts: microchip: Remove additional compatible string from PIO3 pinctrl nodes
9fcd36a3ed2b ARM: dts: microchip: change to simple-mfd from simple-bus for PIO3 pinumux controller
8c0856186974 dt-bindings: interconnect: qcom: msm8953: Fix 'See also' in description
3fa2386623a6 dt-bindings: interconnect: qcom: msm8939: Fix example
9d43ef08bcb2 dt-bindings: interconnect: qcom,sm8350: drop DISP nodes
e154eeb6c809 dt-bindings: interconnect: qcom: Add Qualcomm MSM8937 NoC
bb46d236e4e3 dt-bindings: interconnect: qcom: Add Qualcomm MSM8976 NoC
ac751c5b79a9 dt-bindings: pinctrl: Add rk3576 pinctrl support
0636c7b0d923 dt-bindings: interconnect: qcom,rpmh: correct sm8150 camnoc
10ac8abeaefc dt-bindings: media: renesas,vin: Add binding for V4M
94f8ad2de3a5 dt-bindings: media: renesas,vin: Add Gen4 family fallback
a5dce60a3a5a arm64: dts: renesas: r9a07g043u: Add DU node
2552f429e1b3 arm64: dts: renesas: white-hawk-cpu-common: Enable PCIe Host ch0
2e2ff96497da arm64: dts: renesas: r8a779g0: Add PCIe Host and Endpoint nodes
b8a9195f73d1 arm64: dts: renesas: rzg3s-smarc-som: Enable I2C1 node
39431ef4f896 arm64: dts: renesas: rzg3s-smarc: Enable I2C0 node
b6b2d1cb160e arm64: dts: renesas: r9a08g045: Add I2C nodes
47be1637d37c arm64: dts: renesas: r9a07g043u: Add VSPD node
9378e71eb3f0 arm64: dts: renesas: r9a07g043u: Add FCPVD node
d660ea71df76 dt-bindings: clock: renesas,cpg-clocks: Add top-level constraints
855a5721891b arm64: dts: renesas: r9a07g044: Correct GICD and GICR sizes
cb5e39b2cf63 arm64: dts: renesas: r9a07g054: Correct GICD and GICR sizes
cdd0b9663be5 arm64: dts: renesas: r9a07g043u: Correct GICD and GICR sizes
cf32f3eafb2d arm64: dts: renesas: r9a08g045: Correct GICD and GICR sizes
8a79628acb10 arm64: dts: renesas: r9a07g0{43,44,54}: Move regulator-vbus device node
8dc0353bd88e arm64: dts: renesas: white-hawk-single: Wire-up Ethernet TSN
cd691f804afa arm64: dts: renesas: r8a779g0: R-Car Ethernet TSN support
bd556a384a8a dt-bindings: soc: rockchip: Add rk3576 syscon compatibles
d1db8cfd5618 dt-bindings: power: rockchip: Document RK3308 IO voltage domains
d521f2d8d58e arm64: dts: exynosautov920: add initial CMU clock nodes in ExynosAuto v920
d015d09f5428 Merge branch 'for-v6.12/clk-dt-bindings' into next/dt64
d254971c7bba dt-bindings: clock: add ExynosAuto v920 SoC CMU bindings
7de4bbc176fd Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
ae4928db3a27 dt-bindings: pci: xilinx-nwl: Add phys property
040e5f6ebf1c dt-bindings: leds: Convert leds-lm3692x to YAML format
ff66803dd73c dt-bindings: usb: add layerscape super speed usb support
919df9322897 Documentation: msm-hsusb.txt: remove
680cd4ac2964 dt-bindings: usb: qcom,dwc3: Document X1E80100 MP controller
c73eff2ddeab arm64: dts: exynosautov9: Add dpum SysMMU
9588a9d029f9 Merge branch 'for-v6.12/clk-dt-bindings' into next/dt64
17229832fbd9 ARM: dts: aspeed: harma: Remove pca9546
849f6e23584a ARM: dts: aspeed: harma: Fix spi-gpio dtb_check warnings
ea688e2b7002 ARM: dts: aspeed: harma: Enable mctp controller
afdc502af76f ARM: dts: aspeed: harma: Add temperature device
2524b6b58f24 ARM: dts: aspeed: harma: Add fru device
a46d0a6e21b3 ARM: dts: aspeed: harma: Remove multi-host property
7898198338a0 ARM: dts: aspeed: harma: Add power monitor xdp710
6185f80995de ARM: dts: aspeed: harma: Add ina238
fd832425a89a ARM: dts: aspeed: harma: Add sgpio name
0b08d57d7a70 ARM: dts: aspeed: harma: Add VR devices
c8d041273cb4 ARM: dts: aspeed: harma: Revise hsc chip
16d2dd25d402 ARM: dts: aspeed-g6: Drop cells properties from ethernet nodes
18413c2322da ARM: dts: aspeed-g6: Use generic 'ethernet' for ftgmac100 nodes
bd70ebfaa1fb ARM: dts: aspeed: Clean up AST2500 pinctrl properties
74b8164eeba0 ARM: dts: aspeed: Remove undocumented XDMA nodes
48c9e406693c ARM: dts: aspeed: Specify required properties for sram node
9438b4144043 ARM: dts: aspeed: Specify correct generic compatible for CVIC
11d5f5244172 ARM: dts: aspeed: Fix coprocessor interrupt controller node name
96898f729e6c ARM: dts: aspeed: mtmitchell: Add LEDs
5cfa79f3245e ARM: dts: aspeed: mtmitchell: Enable i2c10 and i2c15
f27fbdb8f4ad ARM: dts: aspeed: mtmitchell: Add Riser cards
99863f6135df ARM: dts: aspeed: mtmitchell: Add I2C temperature sensor alias ports
a612bc9641af ARM: dts: aspeed: mtjade, mtmitchell: Add OCP temperature sensors
4ecc0f4e4ad0 ARM: dts: aspeed: catalina: add Meta Catalina BMC
8644157021fc dt-bindings: arm: aspeed: add Meta Catalina board
f975de3b10fd ARM: dts: aspeed: minerva: add host0-ready pin
9919d0e2d70c ARM: dts: aspeed: minerva: Add spi-gpio
2b496a8c5759 ARM: dts: aspeed: minerva: add ltc4287 device
4f44601e0e07 ARM: dts: aspeed: minerva: remove unused power device
63b9d371ba24 ARM: dts: aspeed: minerva: Switch the i2c bus number
c988f3708b1c ARM: dts: aspeed: minerva: revise sgpio line name
dffdbebf77ce ARM: dts: aspeed: minerva: add power monitor xdp710
2d416b005f27 ARM: dts: aspeed: minerva: add tmp75 sensor
b5ac04bc76f3 ARM: dts: aspeed: minerva: enable ehci0 for USB
705be70e6dbd ARM: dts: aspeed: minerva: add linename of two pins
e05df63727be ARM: dts: aspeed: minerva: Add adc sensors for fan board
8201afe60c49 ARM: dts: aspeed: minerva: Define the LEDs node name
74ef91ee0121 ARM: dts: aspeed: minerva: remove unused bus and device
2759a31832a1 ARM: dts: aspeed: minerva: enable mdio3
e2698860a43c ARM: dts: aspeed: minerva: change RTC reference
832cbf2c0936 ARM: dts: aspeed: minerva: add eeprom on i2c bus
0a7e6e1c1390 ARM: dts: aspeed: minerva: change aliases for uart
f60007c2c1d3 ARM: dts: aspeed: minerva: change the address of tmp75
abb41c2ebf98 dt-bindings: iio: st,stm32-adc: add top-level constraints
7fe3517c1d45 dt-bindings: remoteproc: k3-m4f: Add K3 AM64x SoCs
16edfa9d2dda arm64: dts: qcom: sm8150-mtp: drop incorrect amd,imageon
3861ed3a8e4f dt-bindings: memory-controllers: renesas,rpc-if: add top-level constraints
f82b9085b891 dt-bindings: net: socionext,uniphier-ave4: add top-level constraints
e8e314643a43 dt-bindings: net: renesas,etheravb: add top-level constraints
472b00aa8ffd dt-bindings: net: mediatek,net: add top-level constraints
8dde158d6b27 dt-bindings: net: mediatek,net: narrow interrupts per variants
0753b8670878 arm64: qcom: sa8775p: Add ADSP and CDSP0 fastrpc nodes
7e18ee7332cf arm64: dts: qcom: x1e80100: Add USB Multiport controller
d7de09502ade ASoC: dt-bindings: Convert tpa6130a2.txt to yaml
6588ef516273 dt-bindings: interrupt-controller: convert bcm2836-l1-intc to yaml
75dd4a840d4e dt-bindings: timer: convert bcm2835-system-timer bindings to YAML
6c16778ef9a7 ARM: dts: bcm-mobile: Split out nodes used by both BCM21664 and BCM23550
97f5d64e7b09 dt-bindings: arm: amlogic: meson-gx-ao-secure: support more SoCs
b9ef7a8f91ca arm64: dts: amlogic: a4: add ao secure node
381c18914d70 arm64: dts: amlogic: t7: add ao secure node
250302554ad1 arm64: dts: amlogic: c3: add ao secure node
c99ffdf6c32e arm64: dts: amlogic: s4: add ao secure node
24d056d49b03 arm64: dts: amlogic: add watchdog node for A4 SoCs
4c41b5648509 arm64: dts: amlogic: enable some device nodes for S4
69f753b6b780 arm64: dts: amlogic: a5: add power domain controller node
5dba4370f591 ASoC: dt-bindings: samsung,odroid: drop stale clocks
4f3821f38039 dt-bindings: power: Add support for RK3576 SoC
6f986f780006 arm64: dts: renesas: gray-hawk-single: Add CAN-FD support
3a60da1bca36 arm64: dts: renesas: r8a779h0: Add CAN-FD node
8f37e3243afd ARM: dts: aspeed: System1: Updates to BMC board
c1e326902e9d ARM: dts: aspeed: convert ASRock SPC621D8HM3 NVMEM content to layout syntax
a4070b88f4e5 ARM: dts: aspeed: Add IBM P11 Fuji BMC system
e8b742211944 ARM: dts: aspeed: Add IBM P11 Blueridge 4U BMC system
6682aebfd979 ARM: dts: aspeed: Add IBM P11 Blueridge BMC system
b802d8fc3fa6 ARM: dts: aspeed: Add IBM P11 FSI devices
8cd40537213c dt-bindings: arm: aspeed: add IBM P11 BMC boards
a4fc7371abcb ASoC: dt-bindings: serial-midi: reference serial-peripheral-props.yaml
3f951906a8ac dt-bindings: bluetooth: reference serial-peripheral-props.yaml
364baab32a05 dt-bindings: gnss: reference serial-peripheral-props.yaml
6bf86b41291d dt-bindings: bluetooth: move Bluetooth bindings to dedicated directory
00832d666d0f dt-bindings: serial: add common properties schema for UART children
86552913184c dt-bindings: serial: add missing "additionalProperties" on child nodes
50931a934b6b dt-bindings: arc: convert archs-pct.txt to yaml
639897659b2d dt-bindings: display: panel-simple-lvds-dual-ports: use unevaluatedProperties
89414912b68e dt-bindings: board: convert fsl-board.txt to yaml
3805783b992a dt-bindings: samsung: exynos-usi: add missing constraints
f65493e6d58f dt-bindings: input: Goodix SPI HID Touchscreen
aaa75b6d423b ASoC: Intel: Remove skylake driver
3aacdd9f21b4 dt-bindings: input: touchscreen: convert colibri-vf50-ts.txt to yaml
f27a100e7e73 dt-bindings: display: panel-simple: Add On Tat Industrial Company KD50G21-40NT-A1
e945d7d8ef9b dt-bindings: display: st7701: Add Anbernic RG28XX panel
d1e0c084618f dt-bindings: display: simple: Document support for Innolux G070ACE-LH3
c2e02875b500 dt-bindings: platform: Add Surface System Aggregator Module
b06f6e3a388e dt-bindings: serial: Allow embedded-controller as child node
8f1270c3b9a5 ASoC: dt-bindings: convert tlv320aic31xx.txt to yaml
59b0f3f71940 dt-binding: ptp: fsl,ptp: add pci1957,ee02 compatible string for fsl,enetc-ptp
26795f80b938 Merge tag 'ib-mfd-gpio-pwm-v6.12' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/lee/mfd into gpio/for-next
e1178c5a621f ARM: dts: microchip: sama5d29_curiosity: Add reg_5v to supply PMIC nodes
252881e0417b ARM: dts: microchip: at91-sama5d27_wlsom1: Add reg_5v to supply PMIC nodes
d7fdc4c97f8d ARM: dts: microchip: at91-sama5d2_icp: Add reg_5v to supply PMIC nodes
4cfdc8493fb7 ARM: dts: microchip: at91-sama7g54_curiosity: Add reg_5v to supply PMIC nodes
896c200dcf80 ARM: dts: microchip: at91-sama7g5ek: Add reg_5v to supply PMIC nodes
7ab51dc288b4 Merge 6.11-rc4 into tty-next
6a80a17f7ec3 Merge 6.11-rc4 into usb-next
f7348b032779 dt-bindings: firmware: arm,scmi: Introduce property max-rx-timeout-ms
65b42326edf7 dt-bindings: iio: humidity: add ENS210 sensor family
452ee3eab6b8 dt-bindings: net: mdio: change nodename match pattern
1012a8b3f6fe dt-bindings: net: dsa: microchip: add microchip,pme-active-high flag
45802bb362a6 dt-bindings: leds: Document "netdev" trigger
9e0e4f9a599d arm64: dts: qcom: sa8775p: fix the fastrpc label
f20bfb84b686 arm64: dts: rockchip: add wolfvision pf5 visualizer display
809304ba6b25 ASoC: dt-bindings: qcom,lpass-wsa-macro: correct clocks on SM8250
bb9074c18a01 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
3cb856f6662b arm64: dts: qcom: ipq5332: Add icc provider ability to gcc
00a71b4889d3 Merge branch '20240730054817.1915652-2-quic_varada@quicinc.com' into arm64-for-6.12
081efd8a0232 dt-bindings: usb: qcom,dwc3: Update ipq5332 clock details
483cc2f2c14d Merge branch '20240730054817.1915652-2-quic_varada@quicinc.com' into clk-for-6.12
7e37672b02da dt-bindings: interconnect: Add Qualcomm IPQ5332 support
235d29ae0de7 arm64: dts: qcom: sm8250: move lpass codec macros to use clks directly
5690281df380 arm64: dts: qcom: msm8998: Add disabled support for LPASS iommu for Q6
df345e32d1d1 Merge branch '20240814-lpass-v1-1-a5bb8f9dfa8b@freebox.fr' into arm64-for-6.12
612f2789ffab Merge branch '20240814-lpass-v1-1-a5bb8f9dfa8b@freebox.fr' into clk-for-6.12
6e85c519f972 dt-bindings: clock: gcc-msm8998: Add Q6 and LPASS clocks definitions
60c4be11a00c dt-bindings: soc: qcom: qcom,pmic-glink: Document SM7325 compatible
e36990acf81e dt-bindings: arm: qcom,ids: Add IDs for SM7325 family
e4ec14b1ddd9 arm64: dts: rockchip: drop obsolete reset-names from rk356x rng node
552ab016b681 dt-bindings: clock: qcom: Add GPLL9 support on gcc-sc8180x
a62230ef4a99 dt-bindings: clock: qcom: Drop required-opps in required on SM8650 camcc
e950f20e8d59 dt-bindings: clock: qcom: Drop required-opps in required on sm8650 videocc
59f6bd276f49 dt-bindings: clock: qcom,qcs404-turingcc: convert to dtschema
1c6f8c9c6fbf dt-bindings: clock: Add x1e80100 LPASSCC reset controller
d3af59f29638 dt-bindings: clock: Add x1e80100 LPASS AUDIOCC reset controller
0b01690f2492 dt-bindings: clock: qcom,a53pll: Add msm8226-a7pll compatible
ed66586498f0 dt-bindings: clock: qcom,a53pll: Allow opp-table subnode
0b3109708caf arm64: dts: rockchip: add product-data eeproms to QNAP TS433
767beb8eaaee dt-bindings: soc: fsl: cpm_qe: convert network.txt to yaml
58a8cba3103a dt-bindings: arm: Update Corstone-1000 maintainers
c9bf98827964 arm64: dts: rockchip: Add DTS for FriendlyARM NanoPi R2S Plus
8a1bfcf34398 dt-bindings: arm: rockchip: Add NanoPi R2S Plus
a49d8ed780b0 dt-bindings: arm: qcom,ids: add SoC ID for QCS8275/QCS8300
01f3141f3e40 dt-bindings: soc: qcom: smd-rpm: add generic compatibles
7b32557a214e arm64: dts: qcom: msm8976: Add restart node
1a01b3c0e7a2 arm64: dts: qcom: sa8775p: add CPU idle states
2fcc2c66909c arm64: dts: qcom: x1e80100-yoga: Update panel bindings
6debec87a578 arm64: dts: qcom: msm8916-samsung-gt58: Enable the touchkeys
3341edcfe5b1 arm64: dts: qcom: sc8280xp-x13s: Enable RGB sensor
6646f5b64ada arm64: dts: qcom: sa8775p-ride: enable remoteprocs
08fc75712caa arm64: dts: qcom: sa8775p: add ADSP, CDSP and GPDSP nodes
ede81a7c6726 dt-bindings: mailbox: qcom-ipcc: Add GPDSP0 and GPDSP1 clients
d7592bed5db7 arm64: dts: qcom: msm8916-samsung-j3ltetw: Add initial device tree
ff8f421711c1 dt-bindings: qcom: Document samsung,j3ltetw
e104107feffc arm64: dts: qcom: sm8350: add refgen regulator
9650e95b08fb arm64: dts: qcom: sm8350: add MDSS registers interconnect
7863bd81d5a3 arm64: dts: qcom: sm7125-xiaomi-common: Add reset-gpios for ufs_mem_hc
66910ffe7fa0 arm64: dts: qcom: sa8775p: Add CPU and LLCC BWMON
1a1a19ff9efa arm64: dts: qcom: msm8939-longcheer-l9100: Add rear flash
5b0bf4134ca9 arm64: dts: qcom: add generic compat string to RPM glink channels
e0c04a1df01c ARM: dts: qcom: add generic compat string to RPM glink channels
9d6f63060f9b dt-bindings: remoteproc: qcom,sm8550-pas: document the SDX75 PAS
e6f582699fc1 ARM: dts: qcom: msm8226-microsoft-common: Add inertial sensors
5a332227bc8a arm64: dts: qcom: sdx75-idp: enable MPSS remoteproc node
7847f137cbfc arm64: dts: qcom: sdx75: Add remoteproc node
ea5ff1e09b71 arm64: dts: qcom: sdx75: update reserved memory regions for mpss
14fdac8ab227 arm64: dts: qcom: sa8295p-adp: Enable the four USB Type-A ports
aa2a2af819dd arm64: dts: x1e80100-qcp: fix wsa soundwire port mapping
b7af2379cb5c arm64: dts: x1e80100-crd: fix wsa soundwire port mapping
4d98b69574f7 arm64: dts: qcom: x1e80100: add soundwire controller resets
965f4fa4d989 ARM: dts: qcom: msm8226: Convert APCS usages to mbox interface
85d2c52009cb ARM: dts: qcom: msm8226: Hook up CPU cooling
58b2d14c5378 ARM: dts: qcom: msm8226: Add CPU frequency scaling support
4fc88924f669 arm64: dts: qcom: sm8650: add description of CCI controllers
2b64e477fadd arm64: dts: qcom: sm8550: add description of CCI controllers
d5984bccde16 arm64: dts: qcom: sm4450: add camera, display and gpu clock controller
14a1071eb937 Merge branch '20240611133752.2192401-1-quic_ajipan@quicinc.com' into arm64-for-6.12
ab0770535043 Merge branch '20240611133752.2192401-1-quic_ajipan@quicinc.com' into clk-for-6.12
444b45d9285e dt-bindings: clock: qcom: add GPUCC clocks on SM4450
819ce4d74b64 dt-bindings: clock: qcom: add CAMCC clocks on SM4450
a989c25f6073 dt-bindings: clock: qcom: add DISPCC clocks on SM4450
c208a906213a dt-bindings: spi: add PIC64GX SPI/QSPI compatibility to MPFS SPI/QSPI bindings
0534c0ace0fd regulator: dt-bindings: qcom,qca6390-pmu: document the swctrl-gpios property
f5efc1740fe5 regulator: dt-bindings: qcom,qca6390-pmu: document WCN6855
79b6d722bf2e regulator: dt-bindings: qcom,qca6390-pmu: fix the description for bt-enable-gpios
cf1c89de48bc dt-bindings: rtc: stm32: describe pinmux nodes
1b8af6159f69 dt-bindings: serial: 8250_omap: Add wakeup-source property
039245e6ecdd dt-bindings: net: fsl,qoriq-mc-dpmac: using unevaluatedProperties
9aa85d6ba84a ARM: dts: bcm2837/bcm2712: adjust local intc node names
6960af7e071f dt-bindings: net: convert maxim,ds26522.txt to yaml format
0f60d0501cfc dt-bindings: misc: aspeed,ast2400-cvic: Convert to DT schema
f72639bb56c0 dt-bindings: interrupt-controller: aspeed,ast2400-vic: Convert to DT schema
cd3603105dc2 dt-bindings: timer: nxp,lpc3220-timer: Convert to dtschema
137777b4b218 dt-bindings: timer: fsl,ftm-timer: Convert to dtschema
e388209a372d spi: dt-bindings: convert spi-sc18is602.txt to yaml format
c1f35eb94488 dt-bindings: watchdog: ti,davinci-wdt: convert to dtschema
8a43a32c796a dt-bindings: timer: ti,davinci-timer: convert to dtschema
26d0f22ee593 dt-bindings: remoteproc: xlnx,zynqmp-r5fss: Add missing "additionalProperties" on child nodes
65f6261175a6 Add input voltage suppliers for PMIC MCP16502
d0a15bd2277c arm64: dts: qcom: sc8180x: Enable the power key
f8129524ec31 regulator: dt-bindings: microchip,mcp16502: Add voltage input supply documentation
19161b901b5f arm64: dts: freescale: imx8mp-phyboard-pollux: Add and enable TPM
0ecfa6e22c6b arm64: dts: imx93: add lpi2c1 and st lsm6dso node
7bbdd29672ae arm64: dts: imx93-tqma9352-mba93: Fix USB hub node name
59634ab7bd03 arm64: dts: imx8mm/n-beacon-kit: Fix the order of ADV7535 reg entries
038d3dcbe407 ARM: dts: imx1/imx27: Use dma-controller as node name
a3d3ab8013cc arm64: dts: imx8mp-venice-gw74xx-imx219: remove compatible in overlay file
82dde3e9acf6 arm64: dts: imx8mp-data-modul-edm-sbc: remove #clock-cells for sai3
9fc4d0072868 arm64: dts: imx8mm-venice-gw7901: add #address(size)-cells for gsc@20
9ca77404f1fb arm64: dts: fsl-ls208xa: move reboot node under syscon
46949308e10d arm64: dts: fsl-ls1028a: remove undocumented 'little-endian' for dspi node
b4e19fc06bee arm64: dts: imx8mp-verdin: add HDMI audio support
8c194a97e541 arm64: dts: imx95: add flexcan[1..5] support
fb3473293288 arm64: dts: imx95: add DDR Perf Monitor node
0c8adfcfe013 arm64: dts: fsl,ls2085a: remove fsl,ls2085a-pcie
bddc9e10c2ef arm64: dts: layerscape: remove undocumented fsl,ls-pcie-ep
d7ceece431d2 arm64: dts: fsl-ls1046a: remove big-endian at memory-controller
585c14aba307 arm64: dts: layerscape: remove big-endian for mmc nodes
afebcda23a85 arm64: dts: layerscape: add msi-cell = <1> for gic its
9e174c2facff arm64: dts: fsl-ls1028a: add fsl,ls1028-reset for syscon
3eaa8ffdee68 arm64: dts: fsl-ls1043a: change uqe to uqe-bus and remove #address-cells
cbd259402571 arm64: dts: layerscape: use common pcs-handle property
682087230738 arm64: dts: layerscape: rename rcpm as wakeup-control from power-control
35b7ecb8b0b0 arm64: dts: layerscape: rename aux-bus to bus
6026852bd07f arm64: dts: imx8mp-verdin: drop limit to sdio wi-fi frequency to 100 mhz
864837cca1e7 arm64: dts: imx93: add cache info
5405cc2d3009 arm64: dts: imx8-ss-dma: enable dma support for lpspi
69797581de48 arm64: dts: imx93-11x11-evk: Add audio XCVR sound card
c2153a1f4f37 arm64: dts: imx93-11x11-evk: Add PDM microphone sound card support
498ec19172ad arm64: dts: imx93-11x11-evk: add bt-sco sound card support
5039f36a9e93 arm64: dts: imx93: Add #sound-dai-cells property
7a5e2fdf6435 arm64: dts: imx8mm-emtop-baseboard: Add Ethernet Support
12d3f06efd98 arm64: dts: s32g: add the pinctrl node
f6eefcc5c776 arm64: dts: freescale: imx93-tqma9352: improve pad configuration
c3d07039de68 dt-bindings: hwlock: sprd-hwspinlock: convert to YAML
05d95dcc0243 dt-bindings: fsl: fsl,rcpm: fix unevaluated fsl,rcpm-wakeup property
4caebe308a74 dt-bindings: trivial-devices: add isil,isl69260
394ab4eb8db9 dt-bindings: clock: mediatek: Convert MediaTek clock syscons to schema
135ed81570df dt-bindings: Move Mediatek clock controllers to "clock" directory
5c5e58fe1d86 dt-bindings: clock: mediatek,apmixedsys: Fix "mediatek,mt6779-apmixed" compatible
e14f5320858c Merge 6.11-rc3 into usb-next
163a61a0fcbd dt-bindings: input: touchscreen: convert ad7879 to yaml format
ff50aa0c8c8c Merge 6.11-rc3 into tty-next
c61fea5ca484 dt-bindings: ata: Add i.MX8QM AHCI compatible string
ca02b20938be arm64: dts: imx8mm-tqma8mqml-mba8mx: Increase frequency for i2c busses
28aa12212487 ARM: dts: imx53-qsb-hdmi: Merge display0 node
559a8deafd90 ARM: dts: imx53-qsb-hdmi: Do not disable TVE
ba7498491f7f arm64: dts: imx8-ss-dma: Fix adc0 closing brace location
3ea813348a45 arm64: dts: imx8-ss-dma: add #address-cells and #size-cells to LPI2C nodes
2ae92a7fa213 arm64: dts: sprd: move/add SPDX license to top of the file
90d97aa72075 arm64: dts: sprd: reorder clock-names after clocks
add551e14642 arm64: dts: sprd: rename SDHCI and fuel gauge nodes to match bindings
7556d7dfabe1 ARM: dts: nuvoton: wpcm450: align LED and GPIO keys node name with bindings
4cbdc11836b0 arm: dts: realview: Add/drop missing/spurious unit-addreses
fd4fa389ae7d arm64: dts: apm: storm: Rename menetphy@3 to ethernet-phy@3
d208787b711f arm64: dts: imx8: remove non-existent DACs
ca4a4e3abd74 arm64: dts: imx8mp-phyboard-pollux: Disable write-protect on SD card
679006e9850f arm64: dts: freescale: imx8mp-phycore: Add no-eth overlay
867e7e55aa5a dt-bindings: eeprom: at24: Add compatible for Giantec GT24C04A
9fa5d103780f arm64: dts: exynosautov9: add dpum clock DT nodes
82088f93f79b dt-bindings: clock: exynosautov9: add dpum clock
b14cf719eff8 arm64: dts: s32g: Disable usdhc write-protect
ec42a38c1dfc arm64: dts: rockchip: drop dr_mode for Radxa ZERO 3W/3E
b1e7a5efc8e4 arm64: dts: rockchip: Raise Pinebook Pro's panel backlight PWM frequency
0942585b2a5d dt-bindings: gpio: gpio-davinci: Add the gpio-reserved-ranges property
dc6316da2373 arm64: dts: rockchip: Add support for rk3588 based Cool Pi CM5 GenBook
f5cd7183d823 dt-bindings: arm: rockchip: Add Cool Pi CM5 GenBook
aa00ba4dcc93 arm64: dts: rockchip: add rfkill node for M.2 E wifi on orangepi-5-plus
451c0f05b2cc arm64: dts: rockchip: add DT entry for RNG to RK356x
4c7657b868f7 dt-bindings: iio: adc: Add rockchip,rk3576-saradc string
3c3ab7b65a89 dt-bindings: iio: ad4695: fix common-mode-channel
b3ebe86aa71f dt-bindings: iio: add vref support to sd modulator
216065cbbfe7 dt-bindings: iio: add backend support to sd modulator
1daad23bf5fc dt-bindings: iio: dfsdm: move to backend framework
343bac120ca6 dt-bindings: iio: asahi-kasei,ak8975: drop incorrect AK09116 compatible
78f8b1df23fc dt-bindings: rng: Add Rockchip RK3568 TRNG
7ea6c5962ec1 dt-bindings: PCI: host-generic-pci: Drop minItems and maxItems of ranges
3368ccb698a5 dt-bindings: firmware: arm,scmi: Add support for system power protocol
dcfc03e205d1 media: dt-bindings: media: renesas,fcp: Document RZ/G2UL FCPVD bindings
ebada5624163 media: dt-bindings: media: renesas,vsp1: Document RZ/G2UL VSPD bindings
ce9f118d64ef dt-bindings: media: amlogic,gx-vdec: add the GXLX SoC family and update GXL
3f9dee931e38 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
e4201b1f2a2d Merge tag 'drm-misc-next-2024-08-01' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
a661249306bd riscv: dts: thead: change TH1520 SPI node to use clock controller
c9dca436cd26 riscv: dts: thead: add clock to TH1520 gpio nodes
88c8bce5bde4 riscv: dts: thead: update TH1520 dma and timer nodes to use clock controller
53912694de7c riscv: dts: thead: change TH1520 mmc nodes to use clock controller
f102628b3f80 riscv: dts: thead: change TH1520 uart nodes to use clock controller
85f85429b535 riscv: dts: thead: Add TH1520 AP_SUBSYS clock controller
446d76e55107 dt-bindings: memory-controllers: fsl,imx-weim: Fix "fsl,weim-cs-timing" schema
4a5446aa5c65 dt-bindings: clock: exynos7885: Add indices for USB clocks
cb8e24d3216e dt-bindings: clock: exynos7885: Add CMU_TOP PLL MUX indices
2fd8a12627b0 dt-bindings: clock: exynos7885: Fix duplicated binding
ca6b7849cd40 ARM: dts: microchip: at91: align LED node name with bindings
5b470d52ca6d ARM: dts: microchip: sam9x60: Move i2c address/size to dtsi
f509fcb1fb82 arm64: dts: rockchip: actually enable pmu-io-domains on qnap-ts433
256874b3b1f9 regulator: dt-bindings: mediatek,mt6397-regulator: convert to YAML
b27360316b2f dt-bindings: clock: at91: Allow PLLs to be exported and referenced in DT
9c66eef92194 dt-bindings: clocks: atmel,at91rm9200-pmc: add sam9x7 clock controller
6b5f9de73bae dt-bindings: clocks: atmel,at91sam9x5-sckc: add sam9x7
ffcfad9eed6d dt-bindings: atmel-sysreg: add sam9x7
d1a273645f05 ARM: dts: microchip: at91-sama7g5ek: add EEPROMs
3f4f869042d5 arm64: dts: ti: k3-j7200-som-p0: Update mux-controller node name
acf3148ae5df arm64: dts: ti: k3-j721s2-som-p0: Update mux-controller node name
337ffc1a6399 dt-bindings: soc: fsl: add missed compatible string fsl,ls*-isc
276eaa99cd4a dt-bindings: soc: fsl: Convert rcpm to yaml format
943155c40b5d arm64: dts: mediatek: mt8186-corsola: Update ADSP reserved memory region
0fa6d86e21ea arm64: dts: mediatek: mt8183: Remove clock from mfg_async power domain
47ca0a9c4b77 arm64: dts: mt8183-kukui: clean up regulator tree
aa47b0bb09fb arm64: dts: mediatek: mt7981: add SPI controllers
875fc5eda9ad arm64: dts: mediatek: mt8183-kukui: Disable unused efuse at 8000000
f5294f44bde3 arm64: dts: mediatek: mt8188: add default thermal zones
c02b36c04085 arm64: dts: mediatek: mt8188: add lvts definitions
a1c6f2c2f3cd arm64: dts: mediatek: mt8186: add default thermal zones
182a578e1b77 arm64: dts: mediatek: mt8186: add lvts definitions
a4684da3d324 dt-bindings: fsl-qdma: allow compatible string fallback to fsl,ls1021a-qdma
bdd3969b1a67 dt-bindings: dma: mv-xor-v2: Convert to dtschema
29815c362539 dt-bindings: dma: rz-dmac: Document RZ/G3S SoC
e0bbe061fd53 arm64: dts: rockchip: Simplify network PHY connection on qnap-ts433
4971f7d1a2e1 dt-bindings: phy: rockchip,rk3588-hdptx-phy: Add #clock-cells
3d66b1089f5c dt-bindings: can: fsl,flexcan: move fsl,imx95-flexcan standalone
f074249711d1 dt-bindings: can: fsl,flexcan: add common 'can-transceiver' for fsl,flexcan
810d4f2cd57c arm64: dts: imx8mm-venice-gw72xx-0x: Remove compatible from dtso
61939845a6e5 arm64: dts: imx8mm-phygate-tauri-l: Remove compatible from dtso
2752a00d8b59 arm64: dts: imx95-19x19-evk: add pwm fan control
2f29a8ca3c98 arm64: dts: imx95: add thermal_zone label
e634f022a31e arm64: dts: imx95-19x19-evk: add flexspi and child node
e69ac3fb5401 arm64: dts: imx95: add flexspi node
4fceb264dc8a arm64: dts: imx95-19x19-evk: Add audio related nodes
a0c430451540 arm64: dts: imx95: add sai[1..6], xcvr and micfill
ed8cc1312daa arm64: dts: imx95: add edma[1..3] nodes
e03c9fc13045 dt-bindings: pinctrl: npcm8xx: remove non-existent groups and functions
44fb8e072777 dt-bindings: pinctrl: qcom,apq8084-pinctrl: convert to dtschema
4b4292f3c3bc dt-bindings: pinctrl: qcom,ipq4019-pinctrl: convert to dtschema
539d6e7119c5 dt-bindings: pinctrl: qcom,ipq8064-pinctrl: convert to dtschema
8b9ada33c4a0 dt-bindings: pinctrl: qcom,apq8064-pinctrl: convert to dtschema
d1000f0ef19d ARM: dts: imx6sx-udoo-neo: Properly configure ENET_REF
e80eef92e829 arm64: dts: imx93: support i.MX93-14x14-EVK board
dc0e4466ca31 dt-bindings: arm: fsl: add i.MX93 14x14 EVK board
be74b0316da3 arm64: dts: imx93: drop duplicated properties
316a14336dd5 arm64: dts: imx95: add p2a reply channel
12e20d64312d dt-bindings: net: dsa: mediatek,mt7530: Add airoha,en7581-switch
82aec85ab51a dt-bindings: pincfg-node: Add "input-schmitt-microvolt" property
4133522fb241 Revert "dt-bindings: pinctrl: mobileye,eyeq5-pinctrl: add bindings"
c9a08bc4a6c4 dt-bindings: iio: adc: ad7380: add single-ended compatible parts
a62d35e43818 Merge tag 'spi-mosi-config' into togreg
cc5500655f43 dt-bindings: iio: adf4377: add adf4378 support
dbcd60d18a50 dt-bindings: iio: light: stk33xx: add compatible for stk3013
1bcaff188652 dt-bindings: iio: pressure: Add Sensirion SDP500
0a15a6adf88b dt-bindings: iio: adc: add binding for pac1921
5f92ced01feb dt-bindings: iio: light: ROHM BH1745
ec760f8cdd3a dt-bindings: iio: adc: ad7192: Add clock provider
3d6e921ef60b dt-bindings: iio: adc: ad7192: Update clock config
1b10f1039ea0 dt-bindings: iio: magnetometer: bmc150: Document mount-matrix
bc7b7e833774 dt-bindings: iio: kionix,kxcjk1013: Document KX022-1020
b8aa75f0822f dt-bindings: iio: adc: add AD4695 and similar ADCs
d09e52163ff9 dt-bindings: iio: dac: Add adi,ltc2672.yaml
3159e661132e dt-bindings: iio: dac: Add adi,ltc2664.yaml
7dd7d1519473 dt-bindings: iio: dac: Generalize DAC common properties
97dec0eec9a2 dt-bindings: iio: accel: add ADXL380
3a1b4d493637 dt-bindings: iio: light: ltrf216a: Document LTR-308 support
da891109350a dt-bindings: iio: BU27034 => BU27034ANUC
d126f8ece723 dt-bindings: pinctrl: renesas: Document RZ/G2M v3.0 (r8a774a3) PFC support
12328159da56 dt-bindings: clock: renesas: Document RZ/V2H(P) SoC CPG
b058cc48a286 dt-bindings: clock: renesas,cpg-mssr: Document RZ/G2M v3.0 (r8a774a3) clock
9592e9f442d5 arm64: dts: renesas: r9a08g045: Add DMAC node
702892c734d8 arm64: dts: renesas: rzg2ul: Set Ethernet PVDD to 1.8V
61aad6358e8e arm64: dts: renesas: rzg2lc: Set Ethernet PVDD to 1.8V
c535103b52a1 arm64: dts: renesas: rzg2l: Set Ethernet PVDD to 1.8V
250ac41d6258 arm64: dts: renesas: rzg2ul: Enable Ethernet TXC output
20ab7b4fdb8b arm64: dts: renesas: rzg2lc: Enable Ethernet TXC output
11cbf7bc3124 arm64: dts: renesas: rzg2l: Enable Ethernet TXC output
07e7ce941a1c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
a6a3a0741880 arm64: dts: allwinner: h700: Add Anbernic RG35XX-SP
43c3a035746a arm64: dts: allwinner: h616: Change RG35XX Series from r_rsb to r_i2c
1665557aa57c arm64: dts: allwinner: h616: Add r_i2c pinctrl nodes
cd379512a263 dt-bindings: arm: sunxi: Add Anbernic RG35XXSP
90232ba8fe09 dt-bindings: mfd: Add Analog Devices ADP5585
d9d53f48f45e dt-bindings: leds: sc2731-bltc: Convert to YAML
4926f32e08c6 dt-bindings: leds: pca995x: Add new nxp,pca9956b compatible
26de092ec373 arm64: dts: qcom: sm8650-qrd: use the PMU to power up bluetooth
44665c06bc35 Merge branch '20240717-dispcc-sm8550-fixes-v2-7-5c4a3128c40b@linaro.org' into arm64-for-6.12
e10c33431ec2 Merge branch '20240717-dispcc-sm8550-fixes-v2-7-5c4a3128c40b@linaro.org' into clk-for-6.12
58def9ddf027 dt-bindings: clock: qcom,sm8650-dispcc: replace with symlink
43d1e98390ce arm64: dts: qcom: msm8916-samsung-fortuna: Add touch keys
e963b28801df arm64: dts: qcom: sa8775p: Add capacity and DPC properties
eebee1c5d60e arm64: dts: qcom: pm8950: Add resin node
2676b9bab413 arm64: dts: qcom: Add camera clock controller for sm8150
e66171bfa730 Merge branch '20240731062916.2680823-7-quic_skakitap@quicinc.com' into arm64-for-6.12
50f919225472 Merge branch '20240731062916.2680823-7-quic_skakitap@quicinc.com' into clk-for-6.12
3437e439ed8d dt-bindings: clock: qcom: Add SM8150 camera clock controller
73384e01cb13 arm64: dts: qcom: sc8180x-lenovo-flex-5g: Enable USB multiport controller
b4905632d222 arm64: dts: qcom: sc8180x-primus: Enable the two MP USB ports
99c43a48ae10 arm64: dts: qcom: sc8180x: Add USB MP controller and phys
44728537b7b6 arm64: dts: qcom: sc8180x: Align USB nodes with binding
513454a0bd1f arm64: dts: qcom: sc8180x-pmics: Add second PMC8180 GPIO
a8301f6588d3 Merge branch '20240730-sc8180x-usb-mp-v2-1-a7dc4265b553@quicinc.com' into arm64-for-6.12
e71f2d29f8db dt-bindings: clock: qcom: Add missing USB MP resets
2c2614449c5f arm64: dts: qcom: sm6115-pro1x: Enable ATH10K WLAN
7424f69b8983 arm64: dts: qcom: sm6115-pro1x: Enable remoteprocs
5c987cbd78fd arm64: dts: qcom: sm6115-pro1x: Enable RGB LED
4bfda507fd8d arm64: dts: qcom: sm6115-pro1x: Add PMI632 Type-C property
09abbcb1a08b arm64: dts: qcom: sm6115-pro1x: Hook up USB3 SS
26bfc23e1b33 arm64: dts: qcom: sm6115-pro1x: Enable MDSS and GPU
11ebe80ff5f0 arm64: dts: qcom: sm6115-pro1x: Enable SD card slot
4809c17ca111 arm64: dts: qcom: sm6115-pro1x: Add Caps Lock LED
27a81d116e51 arm64: dts: qcom: sm6115-pro1x: Add Goodix Touchscreen
23c761c5315c arm64: dts: qcom: sm6115-pro1x: Add PCA9534 IO Expander
c65bac74d099 arm64: dts: qcom: sm6115-pro1x: Add Hall Switch and Camera Button
7613b5f0f05b riscv: dts: thead: add basic spi node
7dd3df583f63 dt-bindings: clock: nxp,lpc3220-usb-clk: Convert bindings to dtschema
3903ada4a963 dt-bindings: clock: nxp,lpc3220-clk: Convert bindings to DT schema
a8f6a3ba13c2 dt-bindings: hwmon: adt7475: Deprecate adi,pwm-active-state
4e3d1bb0d5a5 dt-bindings: hwmon: Add adt7475 fan/pwm properties
770a1a510d0d arm64: dts: fvp: Set stdout-path to serial0 in the chosen node
581bca23d02f dt-bindings: clock: exynos850: Add TMU clock
0a3d301f750d dt-bindings: phy: drop obsolete qcom,usb-8x16-phy bindings
a11a0b806a95 dt-bindings: phy: hisilicon,hi3798cv200-combphy: Convert to DT schema
48ba2876e2fa dt-bindings: phy: qcom,sata-phy: convert to dtschema
a44cdbb15cb7 dt-bindings: serial: renesas: Document RZ/G2M v3.0 (r8a774a3) scif
6fb966295842 dt-bindings: serial: atmel,at91-usart: add compatible for sam9x7.
1b5749e2f426 arm64: dts: mediatek: mt7981: add UART controllers
38c6b53e9499 dt-bindings: serial: mediatek,uart: add MT7981
2e01fbebd132 dt-bindings: serial: samsung: fix maxItems for gs101
bcd3df4ecd4a dt-bindings: serial: samsung: avoid duplicating permitted clock-names
b5f4c2b8f685 dt-bindings: net: dsa: vsc73xx: add {rx,tx}-internal-delay-ps
ea681ed0a0d2 dt-bindings: usb: qcom,dwc3: Update ipq5332 clock details
78245dbec561 dt-bindings: usb: ti,j721e-usb: fix compatible list
d5c2196c9283 dt-bindings: usb: qcom,dwc3: Update ipq5332 interrupt info
6378c9f792d4 arm64: dts: mediatek: mt8195: Assign USB 3.0 PHY to xhci1 by default
06698c7749ac arm64: dts: mediatek: mt8395-nio-12l: Mark USB 3.0 on xhci1 as disabled
4dc282c52cc1 arm64: dts: mediatek: mt8195-cherry: Mark USB 3.0 on xhci1 as disabled
70b65574c139 dt-bindings: gpio: nxp,lpc3220-gpio: Convert to dtschema
c208083853ba ARM: dts: ti: omap: am335x-wega: Fix audio clock provider
c848b2c1bedf ARM: dts: ti: omap: am335x-regor: Fix RS485 settings
728cf66aedc3 ARM: dts: omap: am335x-bone: convert NVMEM content to layout syntax
a8ffba83fa7a ARM: dts: am335x-bone-common: Increase MDIO reset deassert time
a48586f8b6c4 arm64: dts: qcom: msm8939-wingtech-wt82918: Add Lenovo Vibe K5 devices
1791e240cc96 arm64: dts: qcom: msm8916-wingtech-wt865x8: Add Lenovo A6000/A6010
360b1b7ac7a1 dt-bindings: arm: qcom: Add msm8916/39 based Lenovo devices
bbc9a0df5a29 arm64: dts: qcom: msm8992-lg-h815: Initial support for LG G4 (H815)
656fae7323e9 dt-bindings: arm: qcom: Add LG G4 (h815)
502e9337df06 arm64: dts: qcom: msm8939-longcheer-l9100: Add rear flash
1446df5706ec arm64: dts: mediatek: mt8195: Add SCP phandle to MDP3 DMA controller
5e7e9ceced60 arm64: dts: qcom: msm8916-samsung-rossa: Add touchscreen
6f04f36d44d8 arm64: dts: qcom: x1e80100: add rpmh-stats node
58f4f7f56f3f arm64: dts: qcom: msm8916-longcheer-l8910: Add rear flash
f8192558d510 arm64: dts: qcom: x1e80100-crd: enable SDX65 modem
c96daf925103 arm64: dts: qcom: x1e80100: add PCIe5 nodes
aad21d43dcd8 Merge branch 'arm64-fixes-for-6.11' into HEAD
7dc0fa044d13 arm64: dts: mediatek: mt8183-kukui-jacuzzi: Simplify DSI endpoint replacement
9324a00befb7 arm64: dts: mediatek: mt8195-cherry: Remove keyboard-backlight node
f66202153368 arm64: dts: mediatek: cherry: Specify pull resistance for RSEL GPIOs
1335492cfd57 arm64: dts: mediatek: Add ADC node on MT6357, MT6358, MT6359 PMICs
66e0b8283c61 arm64: dts: mediatek: mt8186: Fix supported-hw mask for GPU OPPs
aaf1ec99c011 dt-bindings: reset: renesas: Document RZ/G2M v3.0 (r8a774a3) reset module
60c1dfafaf5e arm64: dts: renesas: r8a779h0: Add PWM device nodes
56deed4ea4c4 arm64: dts: rockchip: Move RK3399 OPPs to dtsi files for SoC variants
9b4d4c02b576 arm64: dts: rockchip: add 2 pmu_io_domain supplies for Qnap-TS433
e324a9e8ea08 arm64: dts: rockchip: enable gpu on Qnap-TS433
48951cb08599 arm64: dts: rockchip: add missing pmic information on Qnap-TS433
2f0afd1a3cbf arm64: dts: rockchip: define cpu-supply on the Qnap-TS433
f0b858c75138 arm64: dts: rockchip: add gpio-keys to Qnap-TS433
d33949501abd arm64: dts: rockchip: enable the tsadc on the Qnap-TS433
5a11b1bb40ac arm64: dts: rockchip: add hdd leds to Qnap-TS433
cb5381576440 arm64: dts: rockchip: add board-aliases for Qnap-TS433
dfa45bbda057 arm64: dts: rockchip: enable sata1+2 on Qnap-TS433
1e1af2af2192 arm64: dts: rockchip: add stdout path on Qnap-TS433
bb745ef13efb arm64: dts: rockchip: enable usb ports on Qnap-TS433
aaa5b1c4bd8f arm64: dts: rockchip: enable uart0 on Qnap-TS433
7d8f260e65cc arm64: dts: rockchip: enable second PCIe controller on the Qnap-TS433
59939b4343db arm64: dts: rockchip: add PCIe supply regulator to Qnap-TS433
8927e1535bb8 dt-bindings: vendor-prefixes: Add "test" vendor for KUnit and friends
903727c3c8eb ARM: dts: broadcom: bcm21664: Move chosen node into Garnet DTS
1d551b337a38 ARM: dts: broadcom: convert NVMEM content to layout syntax
492fe1430cb8 dt-bindings: soc: bcm: document brcm,bcm2711-avs-monitor
db8b0ad17d64 arm64: dts: broadcom: Add minimal support for Raspberry Pi 5
4c28b5c0f3f0 dt-bindings: hwmon: Document TI TPS546D24
6e8b6021c9c5 dt-bindings: bus: qcom,ebi2: convert to dtschema
7b1d4a7b0a57 dt-bindings: iio: proximity: Add TYHX HX9023S
3c491d03c06d dt-bindings: vendor-prefixes: add tyhx
a3219886d457 dt-bindings: iio: adc: adi,ad7606: add conditions
44cb4e7c9a66 dt-bindings: iio: adc: adi,ad7606: fix example
ad06687a1cf2 dt-bindings: iio: adc: adi,ad7606: add supply properties
b20ff22f259a dt-bindings: iio: adc: adi,ad7606: improve descriptions
6630533a55ae dt-bindings: iio: adc: adi,ad7606: normalize textwidth
aea2c9dc93f5 dt-bindings: adc: ad9467: support new parts
6d8b81da06e0 arm64: dts: rockchip: Add sdmmc/sdio/emmc reset controls for RK3328
59944c15350a arm64: dts: rockchip: Add sdmmc_ext for RK3328
8fe619858776 ARM: dts: rockchip: use constant for HCLK_SFC on rk3128
fecd20a17814 arm64: dts: rockchip: Enable UHS-I SDR-50 for Lunzn FastRhino R66S
36ab7ce934f5 arm64: dts: rockchip: remove useless tx/rx_delay for Lunzn Fastrhino R68S
e1b8ebac87ab arm64: dts: rockchip: use generic Ethernet PHY reset bindings for Lunzn Fastrhino R68S
36f5a6dc0ff4 arm64: dts: rockchip: Correct the Pinebook Pro battery design capacity
cae99799bf21 arm64: dts: rockchip: add Firefly JD4 baseboard with Core-PX30-JD4 SoM
f3bc0f584049 arm64: dts: rockchip: add Firefly Core-PX30-JD4 SoM
deca0d635033 dt-bindings: arm: rockchip: Add Firefly Core-PX30-JD4 on baseboard
052f7c4dc45c Marvell HW overlay support for Cadence xSPI
9d7bf0b85116 Add HDMI Audio support
a2fdbc51224e Add support for AD4000 series of ADCs
df1d8efde8b2 dt-bindings: clock: axg-audio: add earcrx clock ids
d5bea92671f4 arm64: dts: exynos: gs101: add syscon-poweroff and syscon-reboot nodes
a82a0ec09b0a arm64: dts: exynos: exynos7885-jackpotlte: Correct RAM amount to 4GB
e33779ec354c dt-bindings: power: renesas: Document RZ/G2M v3.0 (r8a774a3) SYSC binding
404812a4614b dt-bindings: soc: renesas: Document RZ/G2M v3.0 (r8a774a3) SoC
689ee04f5679 arm64: dts: renesas: gray-hawk-single: Add GP LEDs
fd699aaaeab6 arm64: dts: renesas: gray-hawk-single: Add push switches
1e3dc6ae2290 arm64: dts: renesas: r8a779h0: Add missing iommus properties
82899e101ef5 arm64: dts: renesas: r8a779g0: Add missing iommus properties
d93381bafae0 arm64: dts: renesas: r8a779a0: Add missing iommus properties
f0e788f1f8da arm64: dts: renesas: r8a77980: Add missing iommus properties
430de64fb859 arm64: dts: renesas: r8a77970: Add missing iommus property
09c3b2305df4 arm64: dts: renesas: r8a77965: Add missing iommus properties
db30bc2fe3b3 arm64: dts: renesas: r8a77961: Add missing iommus properties
ea43c8d34322 arm64: dts: renesas: r8a77960: Add missing iommus properties
250f0a07d280 arm64: dts: renesas: r8a774e1: Add missing iommus properties
6ad240d2455c arm64: dts: renesas: r8a774c0: Add missing iommus properties
9c7221471dd1 arm64: dts: renesas: r8a774b1: Add missing iommus properties
612e47464719 arm64: dts: renesas: r8a774a1: Add missing iommus properties
c1b60210c392 arm64: dts: renesas: gray-hawk-single: Add Sound support
0b42a83b9adf Merge drm/drm-next into drm-misc-next
0db13eb32edc arm64: dts: qcom: sc8280xp-x13s: clean up PCIe2a pinctrl node
57abf83e5239 arm64: dts: qcom: sc8280xp-x13s: disable PCIe perst pull downs
3051a29f4b36 arm64: dts: qcom: sc8280xp-crd: clean up PCIe2a pinctrl node
abb627308873 arm64: dts: qcom: sc8280xp-crd: disable PCIe perst pull downs
d046abb24b16 arm64: dts: qcom: sm8550-hdk: add the Wifi node
03ca0c5704fd arm64: dts: qcom: msm8916-samsung-grandmax: Add touchscreen
78936ba55942 ARM: dts: qcom: {a,i}pq8064: correct clock-names in sata node
1d8e10488407 arm64: dts: qcom: msm8939-samsung-a7: rename pwm node to conform to dtschema
e13ee0b2172f arm64: dts: qcom: sm8550-qrd: use the PMU to power up bluetooth
88ee9c628bd4 arm64: dts: qcom: sm8650-hdk: use the PMU to power up bluetooth
48d5aeea177a ARM: dts: qcom: apq8064: drop reg-names on sata-phy node
2c283de878f2 ARM: dts: qcom: msm8974pro-samsung-klte: Add pstore node
17b53d8c8223 ARM: dts: qcom: ipq4019: adhere to pinctrl dtschema
d0c45ab8a662 ARM: dts: qcom: ipq8064: adhere to pinctrl dtschema
11a12f6fc7a9 ARM: dts: qcom: apq8064: adhere to pinctrl dtschema
1c623307e87b ARM: dts: qcom: asus,nexus7-flo: remove duplicate pinctrl handle in i2c nodes
1a6d6def3521 ARM: dts: qcom: apq8064-pins: correct error in drive-strength property
b4ac5f6587b9 arm64: dts: qcom: sa8775p: Mark APPS and PCIe SMMUs as DMA coherent
d998c5e74edc ARM: dts: qcom: pma8084: add pon node
f1285216f36a arm64: dts: qcom: pmi8950: Remove address from lpg node
3f641a2b3070 arm64: dts: qcom: pmi8994: Add label to wled node
73f787d57df6 arm64: dts: qcom: sa8775p: Add interconnects for ethernet
d3ef63f453e4 arm64: dts: qcom: x1e80100-crd: Add LID switch
2cc0178a8d23 spi: dt-bindings: mediatek,spi-mt65xx: add compatible for MT7981
5aa42c6a55c5 dt-bindings: iio: adc: Add AD4000
a004f6e85da9 spi: dt-bindings: cadence: Add Marvell overlay bindings documentation for Cadence XSPI
7c80d8e35035 ASoC: dt-bindings: dlg,da7213: Convert to json-schema
2bf959483648 ASoC: dt-bindings: qcom,apq8016-sbc-sndcard: move to separate binding
2a02f8c9706c ASoC: dt-bindings: fsl,imx-audio-es8328: Convert to dtschema
e93a42b439a4 ASoC: dt-bindings: ti,pcm512x: Convert to dtschema
177cd704fa06 ASoC: dt-bindings: renesas,rz-ssi: Document port property
43126174bd72 dt-bindings: ata: qcom,apq8064-ahci: add to dtschema
45173980516e dt-bindings: ata: qcom,ipq806x-ahci: use dtschema
cb17a4d004d0 arm64: dts: qcom: x1e80100: Disable SMB2360_2 by default
a402926ac92e arm64: dts: qcom: x1e80100: Fix up hex style
264ef825c53b dt-bindings: display: panel: Document Densitron DMT028VGHMCMI-1D TFT on ILI9806E DSI TCON
54e263416dfa dt-bindings: display: bridge: tc358867: Document default DP preemphasis
eef34e94eba5 dt-bindings: input: zinitix: Document touch-keys support
870a80df20f6 Merge tag 'v6.10' into next
f862bd1f991e dt-bindings: display: panel: Add compatible for starry-er88577
96dc7feb52cf ARM: dts: amlogic: meson8b-ec100: align GPIO keys node name with bindings
7e4093fb7b8c dt-bindings: display: panel: Add compatible for melfas lmfbx101117480
eed908e7b0c4 dt-bindings: display: himax-hx8394: Add Microchip AC40T08A MIPI Display panel
f299fa0b8567 dt-bindings: clock: imx8mp: Add #reset-cells property

git-subtree-dir: dts/upstream
git-subtree-split: 9b6ba2666d63ba15a83f8601f92ade2375265841

1222 files changed:
Bindings/arc/archs-pct.txt [deleted file]
Bindings/arc/snps,archs-pct.yaml [new file with mode: 0644]
Bindings/arm/amlogic/amlogic,meson-gx-ao-secure.yaml
Bindings/arm/arm,coresight-dummy-source.yaml
Bindings/arm/arm,corstone1000.yaml
Bindings/arm/aspeed/aspeed.yaml
Bindings/arm/atmel-sysregs.txt
Bindings/arm/cirrus/cirrus,ep9301.yaml [new file with mode: 0644]
Bindings/arm/fsl.yaml
Bindings/arm/mediatek/mediatek,bdpsys.txt [deleted file]
Bindings/arm/mediatek/mediatek,camsys.txt [deleted file]
Bindings/arm/mediatek/mediatek,imgsys.txt [deleted file]
Bindings/arm/mediatek/mediatek,ipesys.txt [deleted file]
Bindings/arm/mediatek/mediatek,ipu.txt [deleted file]
Bindings/arm/mediatek/mediatek,jpgdecsys.txt [deleted file]
Bindings/arm/mediatek/mediatek,mcucfg.txt [deleted file]
Bindings/arm/mediatek/mediatek,mfgcfg.txt [deleted file]
Bindings/arm/mediatek/mediatek,mipi0a.txt [deleted file]
Bindings/arm/mediatek/mediatek,vcodecsys.txt [deleted file]
Bindings/arm/mediatek/mediatek,vdecsys.txt [deleted file]
Bindings/arm/mediatek/mediatek,vencltsys.txt [deleted file]
Bindings/arm/mediatek/mediatek,vencsys.txt [deleted file]
Bindings/arm/qcom.yaml
Bindings/arm/rockchip.yaml
Bindings/arm/rockchip/pmu.yaml
Bindings/arm/stm32/stm32.yaml
Bindings/arm/sunxi.yaml
Bindings/arm/tegra.yaml
Bindings/arm/ti/k3.yaml
Bindings/ata/ahci-platform.yaml
Bindings/ata/cirrus,ep9312-pata.yaml [new file with mode: 0644]
Bindings/ata/imx-sata.yaml
Bindings/ata/qcom-sata.txt [deleted file]
Bindings/board/fsl,bcsr.yaml [new file with mode: 0644]
Bindings/board/fsl,fpga-qixis-i2c.yaml [new file with mode: 0644]
Bindings/board/fsl,fpga-qixis.yaml [new file with mode: 0644]
Bindings/board/fsl-board.txt [deleted file]
Bindings/bus/qcom,ebi2.txt [deleted file]
Bindings/bus/qcom,ebi2.yaml [new file with mode: 0644]
Bindings/clock/amlogic,c3-pll-clkc.yaml
Bindings/clock/atmel,at91rm9200-pmc.yaml
Bindings/clock/atmel,at91sam9x5-sckc.yaml
Bindings/clock/baikal,bt1-ccu-div.yaml
Bindings/clock/cirrus,lochnagar.yaml
Bindings/clock/idt,versaclock5.yaml
Bindings/clock/imx8mp-audiomix.yaml
Bindings/clock/mediatek,apmixedsys.yaml
Bindings/clock/mediatek,infracfg.yaml [moved from Bindings/arm/mediatek/mediatek,infracfg.yaml with 96% similarity]
Bindings/clock/mediatek,mt6795-sys-clock.yaml [deleted file]
Bindings/clock/mediatek,mt8186-clock.yaml [moved from Bindings/arm/mediatek/mediatek,mt8186-clock.yaml with 94% similarity]
Bindings/clock/mediatek,mt8186-sys-clock.yaml [moved from Bindings/arm/mediatek/mediatek,mt8186-sys-clock.yaml with 94% similarity]
Bindings/clock/mediatek,mt8192-clock.yaml [moved from Bindings/arm/mediatek/mediatek,mt8192-clock.yaml with 98% similarity]
Bindings/clock/mediatek,mt8192-sys-clock.yaml [moved from Bindings/arm/mediatek/mediatek,mt8192-sys-clock.yaml with 94% similarity]
Bindings/clock/mediatek,mt8195-clock.yaml [moved from Bindings/arm/mediatek/mediatek,mt8195-clock.yaml with 98% similarity]
Bindings/clock/mediatek,mt8195-sys-clock.yaml [moved from Bindings/arm/mediatek/mediatek,mt8195-sys-clock.yaml with 95% similarity]
Bindings/clock/mediatek,pericfg.yaml [moved from Bindings/arm/mediatek/mediatek,pericfg.yaml with 96% similarity]
Bindings/clock/mediatek,syscon.yaml [new file with mode: 0644]
Bindings/clock/nxp,imx95-blk-ctl.yaml
Bindings/clock/nxp,lpc3220-clk.txt [deleted file]
Bindings/clock/nxp,lpc3220-clk.yaml [new file with mode: 0644]
Bindings/clock/nxp,lpc3220-usb-clk.txt [deleted file]
Bindings/clock/nxp,lpc3220-usb-clk.yaml [new file with mode: 0644]
Bindings/clock/qcom,a53pll.yaml
Bindings/clock/qcom,ipq5332-gcc.yaml
Bindings/clock/qcom,qcs404-turingcc.yaml [new file with mode: 0644]
Bindings/clock/qcom,rpmcc.yaml
Bindings/clock/qcom,sc8280xp-lpasscc.yaml
Bindings/clock/qcom,sm4450-camcc.yaml [new file with mode: 0644]
Bindings/clock/qcom,sm4450-dispcc.yaml [new file with mode: 0644]
Bindings/clock/qcom,sm8150-camcc.yaml [new file with mode: 0644]
Bindings/clock/qcom,sm8450-camcc.yaml
Bindings/clock/qcom,sm8450-gpucc.yaml
Bindings/clock/qcom,sm8450-videocc.yaml
Bindings/clock/qcom,turingcc.txt [deleted file]
Bindings/clock/renesas,cpg-clocks.yaml
Bindings/clock/renesas,cpg-mssr.yaml
Bindings/clock/renesas,rzv2h-cpg.yaml [new file with mode: 0644]
Bindings/clock/rockchip,rk3576-cru.yaml [new file with mode: 0644]
Bindings/clock/rockchip,rk3588-cru.yaml
Bindings/clock/samsung,exynosautov9-clock.yaml
Bindings/clock/samsung,exynosautov920-clock.yaml [new file with mode: 0644]
Bindings/clock/st,stm32mp1-rcc.yaml
Bindings/cpu/idle-states.yaml
Bindings/cpu/nvidia,tegra186-ccplex-cluster.yaml [deleted file]
Bindings/crypto/fsl,sec-v4.0.yaml
Bindings/crypto/qcom,prng.yaml
Bindings/display/bridge/toshiba,tc358767.yaml
Bindings/display/elgin,jg10309-01.yaml [new file with mode: 0644]
Bindings/display/fsl,lcdif.yaml
Bindings/display/lvds.yaml
Bindings/display/mediatek/mediatek,dpi.yaml
Bindings/display/mediatek/mediatek,split.yaml
Bindings/display/msm/hdmi.yaml
Bindings/display/panel/boe,th101mb31ig002-28a.yaml
Bindings/display/panel/boe,tv101wum-ll2.yaml [new file with mode: 0644]
Bindings/display/panel/himax,hx8394.yaml
Bindings/display/panel/ilitek,ili9806e.yaml
Bindings/display/panel/jadard,jd9365da-h3.yaml
Bindings/display/panel/panel-simple-lvds-dual-ports.yaml
Bindings/display/panel/panel-simple.yaml
Bindings/display/panel/sitronix,st7701.yaml
Bindings/display/renesas,rzg2l-du.yaml
Bindings/dma/cirrus,ep9301-dma-m2m.yaml [new file with mode: 0644]
Bindings/dma/cirrus,ep9301-dma-m2p.yaml [new file with mode: 0644]
Bindings/dma/fsl,imx-dma.yaml
Bindings/dma/fsl,mxs-dma.yaml
Bindings/dma/fsl-qdma.yaml
Bindings/dma/loongson,ls1b-apbdma.yaml [new file with mode: 0644]
Bindings/dma/marvell,xor-v2.yaml [new file with mode: 0644]
Bindings/dma/mv-xor-v2.txt [deleted file]
Bindings/dma/nxp,lpc3220-dmamux.yaml [new file with mode: 0644]
Bindings/dma/renesas,rz-dmac.yaml
Bindings/dma/ti-dma-crossbar.txt
Bindings/dma/xilinx/xlnx,zynqmp-dma-1.0.yaml
Bindings/eeprom/at24.yaml
Bindings/extcon/extcon-ptn5150.yaml
Bindings/extcon/extcon-usb-gpio.txt [deleted file]
Bindings/extcon/linux,extcon-usb-gpio.yaml [new file with mode: 0644]
Bindings/firmware/arm,scmi.yaml
Bindings/firmware/nxp,imx95-scmi.yaml [new file with mode: 0644]
Bindings/gnss/brcm,bcm4751.yaml
Bindings/gnss/gnss-common.yaml
Bindings/gnss/mediatek.yaml
Bindings/gnss/sirfstar.yaml
Bindings/gnss/u-blox,neo-6m.yaml
Bindings/gpio/fairchild,74hc595.yaml
Bindings/gpio/fcs,fxl6408.yaml
Bindings/gpio/fsl-imx-gpio.yaml
Bindings/gpio/gpio-davinci.yaml
Bindings/gpio/gpio-ep9301.yaml
Bindings/gpio/gpio-pca95xx.yaml
Bindings/gpio/gpio_lpc32xx.txt [deleted file]
Bindings/gpio/microchip,mpfs-gpio.yaml
Bindings/gpio/nxp,lpc3220-gpio.yaml [new file with mode: 0644]
Bindings/gpio/socionext,uniphier-gpio.yaml
Bindings/hwlock/sprd,hwspinlock-r3p0.yaml [new file with mode: 0644]
Bindings/hwlock/sprd-hwspinlock.txt [deleted file]
Bindings/hwmon/adt7475.yaml
Bindings/hwmon/lltc,ltc2978.yaml [new file with mode: 0644]
Bindings/hwmon/ltc2978.txt [deleted file]
Bindings/hwmon/maxim,max31790.yaml [new file with mode: 0644]
Bindings/hwmon/sophgo,sg2042-hwmon-mcu.yaml [new file with mode: 0644]
Bindings/i2c/aspeed,i2c.yaml
Bindings/i2c/i2c-rk3x.yaml
Bindings/i2c/i2c-sprd.txt [deleted file]
Bindings/i2c/nvidia,tegra20-i2c.yaml
Bindings/i2c/qcom,i2c-cci.yaml
Bindings/i2c/renesas,riic.yaml
Bindings/i2c/sprd,sc9860-i2c.yaml [new file with mode: 0644]
Bindings/i2c/tsd,mule-i2c-mux.yaml [new file with mode: 0644]
Bindings/iio/accel/adi,adxl380.yaml [new file with mode: 0644]
Bindings/iio/accel/kionix,kxcjk1013.yaml
Bindings/iio/accel/lis302.txt
Bindings/iio/adc/adi,ad4000.yaml [new file with mode: 0644]
Bindings/iio/adc/adi,ad4695.yaml [new file with mode: 0644]
Bindings/iio/adc/adi,ad7192.yaml
Bindings/iio/adc/adi,ad7380.yaml
Bindings/iio/adc/adi,ad7606.yaml
Bindings/iio/adc/adi,ad9467.yaml
Bindings/iio/adc/microchip,pac1921.yaml [new file with mode: 0644]
Bindings/iio/adc/rockchip-saradc.yaml
Bindings/iio/adc/sigma-delta-modulator.yaml
Bindings/iio/adc/sophgo,cv1800b-saradc.yaml [new file with mode: 0644]
Bindings/iio/adc/st,stm32-adc.yaml
Bindings/iio/adc/st,stm32-dfsdm-adc.yaml
Bindings/iio/adc/x-powers,axp209-adc.yaml
Bindings/iio/dac/adi,ad5686.yaml
Bindings/iio/dac/adi,ad5696.yaml
Bindings/iio/dac/adi,ltc2664.yaml [new file with mode: 0644]
Bindings/iio/dac/adi,ltc2672.yaml [new file with mode: 0644]
Bindings/iio/dac/dac.yaml [new file with mode: 0644]
Bindings/iio/frequency/adi,adf4377.yaml
Bindings/iio/humidity/sciosense,ens210.yaml [new file with mode: 0644]
Bindings/iio/light/liteon,ltrf216a.yaml
Bindings/iio/light/rohm,bh1745.yaml [new file with mode: 0644]
Bindings/iio/light/rohm,bu27034anuc.yaml [moved from Bindings/iio/light/rohm,bu27034.yaml with 66% similarity]
Bindings/iio/light/stk33xx.yaml
Bindings/iio/magnetometer/asahi-kasei,ak8975.yaml
Bindings/iio/magnetometer/bosch,bmc150_magn.yaml
Bindings/iio/pressure/sensirion,sdp500.yaml [new file with mode: 0644]
Bindings/iio/proximity/awinic,aw96103.yaml [new file with mode: 0644]
Bindings/iio/proximity/tyhx,hx9023s.yaml [new file with mode: 0644]
Bindings/incomplete-devices.yaml
Bindings/input/adi,adp5588.yaml
Bindings/input/cirrus,ep9307-keypad.yaml [new file with mode: 0644]
Bindings/input/elan,ekth6915.yaml
Bindings/input/qcom,pm8xxx-vib.yaml
Bindings/input/rotary-encoder.txt [deleted file]
Bindings/input/rotary-encoder.yaml [new file with mode: 0644]
Bindings/input/touchscreen/ad7879.txt [deleted file]
Bindings/input/touchscreen/adi,ad7879.yaml [new file with mode: 0644]
Bindings/input/touchscreen/ads7846.txt [deleted file]
Bindings/input/touchscreen/azoteq,iqs7211.yaml
Bindings/input/touchscreen/colibri-vf50-ts.txt [deleted file]
Bindings/input/touchscreen/edt-ft5x06.yaml
Bindings/input/touchscreen/goodix.yaml
Bindings/input/touchscreen/ti,ads7843.yaml [new file with mode: 0644]
Bindings/input/touchscreen/toradex,vf50-touchscreen.yaml [new file with mode: 0644]
Bindings/input/touchscreen/zinitix,bt400.yaml
Bindings/interconnect/qcom,msm8939.yaml
Bindings/interconnect/qcom,msm8953.yaml
Bindings/interconnect/qcom,msm8998-bwmon.yaml
Bindings/interconnect/qcom,rpmh.yaml
Bindings/interrupt-controller/apple,aic.yaml
Bindings/interrupt-controller/arm,gic-v3.yaml
Bindings/interrupt-controller/aspeed,ast2400-vic.txt [deleted file]
Bindings/interrupt-controller/aspeed,ast2400-vic.yaml [new file with mode: 0644]
Bindings/interrupt-controller/brcm,bcm2836-l1-intc.txt [deleted file]
Bindings/interrupt-controller/brcm,bcm2836-l1-intc.yaml [new file with mode: 0644]
Bindings/interrupt-controller/fsl,irqsteer.yaml
Bindings/interrupt-controller/fsl,ls-extirq.yaml
Bindings/interrupt-controller/qcom,pdc.yaml
Bindings/interrupt-controller/sifive,plic-1.0.0.yaml
Bindings/iommu/arm,smmu.yaml
Bindings/leds/awinic,aw200xx.yaml
Bindings/leds/common.yaml
Bindings/leds/leds-lm3692x.txt [deleted file]
Bindings/leds/leds-sc27xx-bltc.txt [deleted file]
Bindings/leds/nxp,pca995x.yaml
Bindings/leds/sprd,sc2731-bltc.yaml [new file with mode: 0644]
Bindings/leds/ti.lm36922.yaml [new file with mode: 0644]
Bindings/mailbox/brcm,iproc-flexrm-mbox.txt
Bindings/mailbox/mtk,adsp-mbox.yaml
Bindings/mailbox/qcom-ipcc.yaml
Bindings/media/amlogic,gx-vdec.yaml
Bindings/media/i2c/ovti,og01a1b.yaml [new file with mode: 0644]
Bindings/media/i2c/sony,imx335.yaml
Bindings/media/i2c/thine,thp7312.yaml
Bindings/media/qcom,sc7280-venus.yaml
Bindings/media/renesas,fcp.yaml
Bindings/media/renesas,vin.yaml
Bindings/media/renesas,vsp1.yaml
Bindings/media/rockchip,rk3568-vepu.yaml
Bindings/media/rockchip-vpu.yaml
Bindings/media/s5p-mfc.txt [deleted file]
Bindings/media/samsung,exynos4210-fimc.yaml
Bindings/memory-controllers/fsl/fsl,imx-weim.yaml
Bindings/memory-controllers/renesas,rpc-if.yaml
Bindings/mfd/adi,adp5585.yaml [new file with mode: 0644]
Bindings/mfd/mediatek,mt6357.yaml
Bindings/mfd/qcom,tcsr.yaml
Bindings/mfd/rohm,bd96801-pmic.yaml
Bindings/mfd/samsung,s2mps11.yaml
Bindings/mfd/syscon.yaml
Bindings/mfd/twl6040.txt
Bindings/mfd/x-powers,axp152.yaml
Bindings/misc/aspeed,ast2400-cvic.yaml [new file with mode: 0644]
Bindings/misc/aspeed,cvic.txt [deleted file]
Bindings/misc/fsl,qoriq-mc.yaml
Bindings/misc/qcom,fastrpc.yaml
Bindings/mmc/atmel,sama5d2-sdhci.yaml [new file with mode: 0644]
Bindings/mmc/nuvoton,ma35d1-sdhci.yaml [new file with mode: 0644]
Bindings/mmc/renesas,sdhi.yaml
Bindings/mmc/rockchip-dw-mshc.yaml
Bindings/mmc/sdhci-atmel.txt [deleted file]
Bindings/mmc/snps,dwcmshc-sdhci.yaml
Bindings/mtd/technologic,nand.yaml [new file with mode: 0644]
Bindings/mtd/ti,gpmc-nand.yaml
Bindings/net/amlogic,meson-dwmac.yaml
Bindings/net/bluetooth/amlogic,w155s2-bt.yaml [new file with mode: 0644]
Bindings/net/bluetooth/brcm,bluetooth.yaml [moved from Bindings/net/broadcom-bluetooth.yaml with 90% similarity]
Bindings/net/bluetooth/marvell,88w8897.yaml [moved from Bindings/net/marvell-bluetooth.yaml with 83% similarity]
Bindings/net/bluetooth/mediatek,bluetooth.txt [moved from Bindings/net/mediatek-bluetooth.txt with 100% similarity]
Bindings/net/bluetooth/nokia,h4p-bluetooth.txt [moved from Bindings/net/nokia-bluetooth.txt with 100% similarity]
Bindings/net/bluetooth/qualcomm-bluetooth.yaml
Bindings/net/bluetooth/realtek,bluetooth.yaml [moved from Bindings/net/realtek-bluetooth.yaml with 92% similarity]
Bindings/net/bluetooth/ti,bluetooth.yaml [moved from Bindings/net/ti,bluetooth.yaml with 94% similarity]
Bindings/net/brcm,unimac-mdio.yaml
Bindings/net/can/fsl,flexcan.yaml
Bindings/net/can/microchip,mcp2510.yaml [new file with mode: 0644]
Bindings/net/can/microchip,mcp251x.txt [deleted file]
Bindings/net/can/renesas,rcar-canfd.yaml
Bindings/net/can/rockchip,rk3568v2-canfd.yaml [new file with mode: 0644]
Bindings/net/cirrus,ep9301-eth.yaml [new file with mode: 0644]
Bindings/net/dsa/mediatek,mt7530.yaml
Bindings/net/dsa/microchip,ksz.yaml
Bindings/net/dsa/vitesse,vsc73xx.yaml
Bindings/net/fsl,cpm-enet.yaml [new file with mode: 0644]
Bindings/net/fsl,cpm-mdio.yaml [new file with mode: 0644]
Bindings/net/fsl,qoriq-mc-dpmac.yaml
Bindings/net/maxim,ds26522.txt [deleted file]
Bindings/net/maxim,ds26522.yaml [new file with mode: 0644]
Bindings/net/mdio.yaml
Bindings/net/mediatek,net.yaml
Bindings/net/microchip,lan8650.yaml [new file with mode: 0644]
Bindings/net/pse-pd/ti,tps23881.yaml
Bindings/net/renesas,etheravb.yaml
Bindings/net/rockchip-dwmac.yaml
Bindings/net/snps,dwmac.yaml
Bindings/net/socionext,uniphier-ave4.yaml
Bindings/net/ti,cc1352p7.yaml
Bindings/net/wireless/marvell,sd8787.yaml [new file with mode: 0644]
Bindings/net/wireless/marvell-8xxx.txt [deleted file]
Bindings/net/xlnx,axi-ethernet.yaml
Bindings/nvmem/fsl,layerscape-sfp.yaml
Bindings/nvmem/imx-ocotp.yaml
Bindings/nvmem/layouts/nvmem-layout.yaml
Bindings/nvmem/layouts/u-boot,env.yaml [moved from Bindings/nvmem/u-boot,env.yaml with 75% similarity]
Bindings/nvmem/st,stm32-romem.yaml
Bindings/opp/operating-points-v2-ti-cpu.yaml
Bindings/pci/altera-pcie-msi.txt [deleted file]
Bindings/pci/altera-pcie.txt [deleted file]
Bindings/pci/altr,msi-controller.yaml [new file with mode: 0644]
Bindings/pci/altr,pcie-root-port.yaml [new file with mode: 0644]
Bindings/pci/brcm,stb-pcie.yaml
Bindings/pci/fsl,imx6q-pcie-ep.yaml
Bindings/pci/fsl,imx6q-pcie.yaml
Bindings/pci/fsl,layerscape-pcie.yaml
Bindings/pci/hisilicon,kirin-pcie.yaml
Bindings/pci/host-generic-pci.yaml
Bindings/pci/mediatek-pcie-gen3.yaml
Bindings/pci/pci-ep.yaml
Bindings/pci/qcom,pcie-common.yaml
Bindings/pci/qcom,pcie-ep.yaml
Bindings/pci/qcom,pcie-sc7280.yaml
Bindings/pci/qcom,pcie-sc8280xp.yaml
Bindings/pci/qcom,pcie-sm8450.yaml
Bindings/pci/qcom,pcie.yaml
Bindings/pci/rcar-gen4-pci-ep.yaml
Bindings/pci/rcar-gen4-pci-host.yaml
Bindings/pci/renesas,pci-rcar-gen2.yaml
Bindings/pci/socionext,uniphier-pcie-ep.yaml
Bindings/pci/ti,j721e-pci-host.yaml
Bindings/pci/xlnx,nwl-pcie.yaml
Bindings/pci/xlnx,xdma-host.yaml
Bindings/perf/arm,cmn.yaml
Bindings/perf/arm,ni.yaml [new file with mode: 0644]
Bindings/phy/apm-xgene-phy.txt
Bindings/phy/fsl,mxs-usbphy.yaml
Bindings/phy/hisilicon,hi3798cv200-combphy.yaml [new file with mode: 0644]
Bindings/phy/mediatek,mt7988-xfi-tphy.yaml
Bindings/phy/mediatek,tphy.yaml
Bindings/phy/nuvoton,ma35d1-usb2-phy.yaml [new file with mode: 0644]
Bindings/phy/phy-hi3798cv200-combphy.txt [deleted file]
Bindings/phy/qcom,hdmi-phy-qmp.yaml
Bindings/phy/qcom,sata-phy.yaml [new file with mode: 0644]
Bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
Bindings/phy/qcom,snps-eusb2-repeater.yaml
Bindings/phy/qcom,usb-8x16-phy.txt [deleted file]
Bindings/phy/qcom-apq8064-sata-phy.txt [deleted file]
Bindings/phy/qcom-ipq806x-sata-phy.txt [deleted file]
Bindings/phy/renesas,usb2-phy.yaml
Bindings/phy/rockchip,rk3588-hdptx-phy.yaml
Bindings/phy/socionext,uniphier-ahci-phy.yaml
Bindings/phy/socionext,uniphier-pcie-phy.yaml
Bindings/phy/socionext,uniphier-usb3hs-phy.yaml
Bindings/phy/socionext,uniphier-usb3ss-phy.yaml
Bindings/pinctrl/atmel,at91-pinctrl.txt [deleted file]
Bindings/pinctrl/atmel,at91rm9200-pinctrl.yaml [new file with mode: 0644]
Bindings/pinctrl/mobileye,eyeq5-pinctrl.yaml [deleted file]
Bindings/pinctrl/nuvoton,npcm845-pinctrl.yaml
Bindings/pinctrl/pincfg-node.yaml
Bindings/pinctrl/qcom,apq8064-pinctrl.txt [deleted file]
Bindings/pinctrl/qcom,apq8064-pinctrl.yaml [new file with mode: 0644]
Bindings/pinctrl/qcom,apq8084-pinctrl.txt [deleted file]
Bindings/pinctrl/qcom,apq8084-pinctrl.yaml [new file with mode: 0644]
Bindings/pinctrl/qcom,ipq4019-pinctrl.txt [deleted file]
Bindings/pinctrl/qcom,ipq4019-pinctrl.yaml [new file with mode: 0644]
Bindings/pinctrl/qcom,ipq8064-pinctrl.txt [deleted file]
Bindings/pinctrl/qcom,ipq8064-pinctrl.yaml [new file with mode: 0644]
Bindings/pinctrl/qcom,pmic-gpio.yaml
Bindings/pinctrl/qcom,sdm845-pinctrl.yaml
Bindings/pinctrl/renesas,pfc.yaml
Bindings/pinctrl/rockchip,pinctrl.yaml
Bindings/pinctrl/sophgo,cv1800-pinctrl.yaml [new file with mode: 0644]
Bindings/pinctrl/st,stm32-pinctrl.yaml
Bindings/platform/microsoft,surface-sam.yaml [new file with mode: 0644]
Bindings/power/renesas,rcar-sysc.yaml
Bindings/power/rockchip,power-controller.yaml
Bindings/power/rockchip-io-domain.yaml
Bindings/power/supply/sc27xx-fg.yaml
Bindings/power/supply/x-powers,axp20x-battery-power-supply.yaml
Bindings/power/supply/x-powers,axp20x-usb-power-supply.yaml
Bindings/power/wakeup-source.txt
Bindings/ptp/fsl,ptp.yaml
Bindings/pwm/allwinner,sun4i-a10-pwm.yaml
Bindings/pwm/cirrus,ep9301-pwm.yaml [new file with mode: 0644]
Bindings/pwm/pwm-amlogic.yaml
Bindings/pwm/renesas,pwm-rcar.yaml
Bindings/pwm/renesas,tpu-pwm.yaml
Bindings/regulator/mediatek,mt6397-regulator.yaml [new file with mode: 0644]
Bindings/regulator/microchip,mcp16502.yaml
Bindings/regulator/mt6397-regulator.txt [deleted file]
Bindings/regulator/qcom,qca6390-pmu.yaml
Bindings/remoteproc/mtk,scp.yaml
Bindings/remoteproc/qcom,glink-rpm-edge.yaml
Bindings/remoteproc/qcom,rpm-proc.yaml
Bindings/remoteproc/qcom,sm8550-pas.yaml
Bindings/remoteproc/ti,k3-m4f-rproc.yaml [new file with mode: 0644]
Bindings/remoteproc/xlnx,zynqmp-r5fss.yaml
Bindings/reset/amlogic,meson-reset.yaml
Bindings/reset/mobileye,eyeq5-reset.yaml [deleted file]
Bindings/reset/renesas,rst.yaml
Bindings/reset/socionext,uniphier-glue-reset.yaml
Bindings/riscv/extensions.yaml
Bindings/riscv/sophgo.yaml
Bindings/rng/rockchip,rk3568-rng.yaml [new file with mode: 0644]
Bindings/rtc/fsl,ls-ftm-alarm.yaml
Bindings/rtc/microcrystal,rv3028.yaml
Bindings/rtc/sprd,sc2731-rtc.yaml [new file with mode: 0644]
Bindings/rtc/sprd,sc27xx-rtc.txt [deleted file]
Bindings/rtc/st,stm32-rtc.yaml
Bindings/rtc/trivial-rtc.yaml
Bindings/serial/8250_omap.yaml
Bindings/serial/atmel,at91-usart.yaml
Bindings/serial/mediatek,uart.yaml
Bindings/serial/nvidia,tegra20-hsuart.yaml
Bindings/serial/renesas,scif.yaml
Bindings/serial/samsung_uart.yaml
Bindings/serial/serial-peripheral-props.yaml [new file with mode: 0644]
Bindings/serial/serial.yaml
Bindings/soc/bcm/brcm,bcm2711-avs-monitor.yaml [new file with mode: 0644]
Bindings/soc/cirrus/cirrus,ep9301-syscon.yaml [new file with mode: 0644]
Bindings/soc/fsl/cpm_qe/fsl,qe-tsa.yaml [new file with mode: 0644]
Bindings/soc/fsl/cpm_qe/fsl,qe-ucc-qmc.yaml [new file with mode: 0644]
Bindings/soc/fsl/cpm_qe/fsl,ucc-hdlc.yaml [new file with mode: 0644]
Bindings/soc/fsl/cpm_qe/network.txt [deleted file]
Bindings/soc/fsl/fsl,layerscape-scfg.yaml
Bindings/soc/fsl/fsl,rcpm.yaml [new file with mode: 0644]
Bindings/soc/fsl/rcpm.txt [deleted file]
Bindings/soc/qcom/qcom,pmic-glink.yaml
Bindings/soc/qcom/qcom,smd-rpm.yaml
Bindings/soc/qcom/qcom,smd.yaml
Bindings/soc/renesas/renesas.yaml
Bindings/soc/rockchip/grf.yaml
Bindings/soc/samsung/exynos-usi.yaml
Bindings/soc/ti/ti,am654-serdes-ctrl.yaml
Bindings/soc/ti/ti,pruss.yaml
Bindings/sound/amlogic,axg-sound-card.yaml
Bindings/sound/amlogic,gx-sound-card.yaml
Bindings/sound/cirrus,cs4271.yaml [new file with mode: 0644]
Bindings/sound/cirrus,ep9301-i2s.yaml
Bindings/sound/cs4271.txt [deleted file]
Bindings/sound/da7213.txt [deleted file]
Bindings/sound/davinci-mcasp-audio.yaml
Bindings/sound/dlg,da7213.yaml [new file with mode: 0644]
Bindings/sound/everest,es8326.yaml
Bindings/sound/fsl,imx-audio-es8328.yaml [new file with mode: 0644]
Bindings/sound/fsl,saif.yaml [new file with mode: 0644]
Bindings/sound/imx-audio-es8328.txt [deleted file]
Bindings/sound/mediatek,mt8365-afe.yaml [new file with mode: 0644]
Bindings/sound/mediatek,mt8365-mt6357.yaml [new file with mode: 0644]
Bindings/sound/microchip,sama7g5-spdifrx.yaml
Bindings/sound/mxs-saif.txt [deleted file]
Bindings/sound/pcm512x.txt [deleted file]
Bindings/sound/qcom,apq8016-sbc-sndcard.yaml [new file with mode: 0644]
Bindings/sound/qcom,lpass-wsa-macro.yaml
Bindings/sound/qcom,sm8250.yaml
Bindings/sound/realtek,rt5616.yaml
Bindings/sound/renesas,rsnd.yaml
Bindings/sound/renesas,rz-ssi.yaml
Bindings/sound/rockchip,rk3308-codec.yaml
Bindings/sound/samsung,odroid.yaml
Bindings/sound/serial-midi.yaml
Bindings/sound/st,sta350.txt
Bindings/sound/ti,pcm512x.yaml [new file with mode: 0644]
Bindings/sound/ti,tlv320dac3100.yaml [new file with mode: 0644]
Bindings/sound/ti,tpa6130a2.yaml [new file with mode: 0644]
Bindings/sound/tlv320aic31xx.txt [deleted file]
Bindings/sound/tpa6130a2.txt [deleted file]
Bindings/spi/cdns,xspi.yaml
Bindings/spi/cirrus,ep9301-spi.yaml [new file with mode: 0644]
Bindings/spi/mediatek,spi-mt65xx.yaml
Bindings/spi/microchip,mpfs-spi.yaml
Bindings/spi/nxp,sc18is.yaml [new file with mode: 0644]
Bindings/spi/spi-nxp-fspi.yaml
Bindings/spi/spi-rockchip.yaml
Bindings/spi/spi-sc18is602.txt [deleted file]
Bindings/thermal/amlogic,thermal.yaml
Bindings/thermal/qcom-tsens.yaml
Bindings/timer/brcm,bcm2835-system-timer.txt [deleted file]
Bindings/timer/brcm,bcm2835-system-timer.yaml [new file with mode: 0644]
Bindings/timer/fsl,ftm-timer.txt [deleted file]
Bindings/timer/fsl,ftm-timer.yaml [new file with mode: 0644]
Bindings/timer/nxp,lpc3220-timer.txt [deleted file]
Bindings/timer/nxp,lpc3220-timer.yaml [new file with mode: 0644]
Bindings/timer/rockchip,rk-timer.yaml
Bindings/timer/ti,da830-timer.yaml [new file with mode: 0644]
Bindings/timer/ti,davinci-timer.txt [deleted file]
Bindings/trivial-devices.yaml
Bindings/usb/fsl,ls1028a.yaml [new file with mode: 0644]
Bindings/usb/msm-hsusb.txt [deleted file]
Bindings/usb/qcom,dwc3.yaml
Bindings/usb/ti,j721e-usb.yaml
Bindings/vendor-prefixes.yaml
Bindings/watchdog/cirrus,ep9301-wdt.yaml [new file with mode: 0644]
Bindings/watchdog/davinci-wdt.txt [deleted file]
Bindings/watchdog/lpc18xx-wdt.txt [deleted file]
Bindings/watchdog/nxp,lpc1850-wwdt.yaml [new file with mode: 0644]
Bindings/watchdog/qcom-wdt.yaml
Bindings/watchdog/renesas,wdt.yaml
Bindings/watchdog/snps,dw-wdt.yaml
Bindings/watchdog/st,stm32-iwdg.yaml
Bindings/watchdog/ti,davinci-wdt.yaml [new file with mode: 0644]
Bindings/watchdog/zii,rave-wdt.yaml [new file with mode: 0644]
Bindings/watchdog/ziirave-wdt.txt [deleted file]
Makefile
include/dt-bindings/arm/qcom,ids.h
include/dt-bindings/clock/at91.h
include/dt-bindings/clock/axg-audio-clkc.h
include/dt-bindings/clock/cirrus,ep9301-syscon.h [new file with mode: 0644]
include/dt-bindings/clock/exynos7885.h
include/dt-bindings/clock/exynos850.h
include/dt-bindings/clock/nxp,imx95-clock.h
include/dt-bindings/clock/px30-cru.h
include/dt-bindings/clock/qcom,gcc-msm8998.h
include/dt-bindings/clock/qcom,gcc-sc8180x.h
include/dt-bindings/clock/qcom,sm4450-camcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm4450-dispcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm4450-gpucc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm8150-camcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm8650-dispcc.h
include/dt-bindings/clock/renesas,r9a09g057-cpg.h [new file with mode: 0644]
include/dt-bindings/clock/rk3036-cru.h
include/dt-bindings/clock/rk3228-cru.h
include/dt-bindings/clock/rk3288-cru.h
include/dt-bindings/clock/rk3308-cru.h
include/dt-bindings/clock/rk3328-cru.h
include/dt-bindings/clock/rk3368-cru.h
include/dt-bindings/clock/rk3399-cru.h
include/dt-bindings/clock/rockchip,rk3576-cru.h [new file with mode: 0644]
include/dt-bindings/clock/samsung,exynosautov9.h
include/dt-bindings/clock/samsung,exynosautov920.h [new file with mode: 0644]
include/dt-bindings/iio/adi,ad4695.h [new file with mode: 0644]
include/dt-bindings/interconnect/qcom,ipq5332.h [new file with mode: 0644]
include/dt-bindings/interconnect/qcom,msm8937.h [new file with mode: 0644]
include/dt-bindings/interconnect/qcom,msm8976.h [new file with mode: 0644]
include/dt-bindings/interconnect/qcom,sm8350.h
include/dt-bindings/interrupt-controller/arm-gic.h
include/dt-bindings/mailbox/qcom-ipcc.h
include/dt-bindings/pinctrl/pinctrl-cv1800b.h [new file with mode: 0644]
include/dt-bindings/pinctrl/pinctrl-cv1812h.h [new file with mode: 0644]
include/dt-bindings/pinctrl/pinctrl-cv18xx.h [new file with mode: 0644]
include/dt-bindings/pinctrl/pinctrl-sg2000.h [new file with mode: 0644]
include/dt-bindings/pinctrl/pinctrl-sg2002.h [new file with mode: 0644]
include/dt-bindings/power/rockchip,rk3576-power.h [new file with mode: 0644]
include/dt-bindings/reset/rockchip,rk3576-cru.h [new file with mode: 0644]
include/dt-bindings/soc/qe-fsl,tsa.h [new file with mode: 0644]
src/arm/amlogic/meson8b-ec100.dts
src/arm/arm/arm-realview-eb-mp.dtsi
src/arm/arm/arm-realview-pb11mp.dts
src/arm/arm/arm-realview-pba8.dts
src/arm/arm/arm-realview-pbx-a9.dts
src/arm/aspeed/aspeed-bmc-ampere-mtjade.dts
src/arm/aspeed/aspeed-bmc-ampere-mtmitchell.dts
src/arm/aspeed/aspeed-bmc-arm-stardragon4800-rep2.dts
src/arm/aspeed/aspeed-bmc-asrock-spc621d8hm3.dts
src/arm/aspeed/aspeed-bmc-asrock-x570d4u.dts
src/arm/aspeed/aspeed-bmc-facebook-catalina.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-bmc-facebook-greatlakes.dts
src/arm/aspeed/aspeed-bmc-facebook-harma.dts
src/arm/aspeed/aspeed-bmc-facebook-minerva.dts
src/arm/aspeed/aspeed-bmc-ibm-blueridge-4u.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-bmc-ibm-blueridge.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-bmc-ibm-bonnell.dts
src/arm/aspeed/aspeed-bmc-ibm-everest.dts
src/arm/aspeed/aspeed-bmc-ibm-fuji.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-bmc-ibm-rainier.dts
src/arm/aspeed/aspeed-bmc-ibm-system1.dts
src/arm/aspeed/aspeed-bmc-inspur-fp5280g2.dts
src/arm/aspeed/aspeed-bmc-inspur-on5263m5.dts
src/arm/aspeed/aspeed-bmc-intel-s2600wf.dts
src/arm/aspeed/aspeed-bmc-opp-lanyang.dts
src/arm/aspeed/aspeed-bmc-opp-nicole.dts
src/arm/aspeed/aspeed-bmc-opp-romulus.dts
src/arm/aspeed/aspeed-bmc-opp-swift.dts
src/arm/aspeed/aspeed-bmc-opp-tacoma.dts
src/arm/aspeed/aspeed-bmc-opp-witherspoon.dts
src/arm/aspeed/aspeed-bmc-opp-zaius.dts
src/arm/aspeed/aspeed-bmc-supermicro-x11spi.dts
src/arm/aspeed/aspeed-g4.dtsi
src/arm/aspeed/aspeed-g5.dtsi
src/arm/aspeed/aspeed-g6.dtsi
src/arm/aspeed/ibm-power11-quad.dtsi [new file with mode: 0644]
src/arm/broadcom/bcm21664-garnet.dts
src/arm/broadcom/bcm21664.dtsi
src/arm/broadcom/bcm2166x-common.dtsi [new file with mode: 0644]
src/arm/broadcom/bcm23550.dtsi
src/arm/broadcom/bcm2837-rpi-cm3-io3.dts
src/arm/broadcom/bcm2837.dtsi
src/arm/broadcom/bcm53016-meraki-mr32.dts
src/arm/broadcom/bcm958625-meraki-mx6x-common.dtsi
src/arm/cirrus/ep93xx-bk3.dts [new file with mode: 0644]
src/arm/cirrus/ep93xx-edb9302.dts [new file with mode: 0644]
src/arm/cirrus/ep93xx-ts7250.dts [new file with mode: 0644]
src/arm/cirrus/ep93xx.dtsi [new file with mode: 0644]
src/arm/intel/socfpga/socfpga_cyclone5_vining_fpga.dts
src/arm/marvell/armada-385-clearfog-gtr.dtsi
src/arm/microchip/at91-sam9x60_curiosity.dts
src/arm/microchip/at91-sam9x60ek.dts
src/arm/microchip/at91-sama5d27_wlsom1.dtsi
src/arm/microchip/at91-sama5d29_curiosity.dts
src/arm/microchip/at91-sama5d2_icp.dts
src/arm/microchip/at91-sama7g54_curiosity.dts
src/arm/microchip/at91-sama7g5ek.dts
src/arm/microchip/at91rm9200.dtsi
src/arm/microchip/at91sam9260.dtsi
src/arm/microchip/at91sam9261.dtsi
src/arm/microchip/at91sam9263.dtsi
src/arm/microchip/at91sam9g20ek_2mmc.dts
src/arm/microchip/at91sam9g25-gardena-smart-gateway.dts
src/arm/microchip/at91sam9g45.dtsi
src/arm/microchip/at91sam9n12.dtsi
src/arm/microchip/at91sam9n12ek.dts
src/arm/microchip/at91sam9rl.dtsi
src/arm/microchip/at91sam9x5.dtsi
src/arm/microchip/at91sam9x5cm.dtsi
src/arm/microchip/sam9x60.dtsi
src/arm/microchip/sama5d3.dtsi
src/arm/microchip/sama5d4.dtsi
src/arm/microchip/sama7g5.dtsi
src/arm/nuvoton/nuvoton-npcm730-kudo.dts
src/arm/nuvoton/nuvoton-npcm750-evb.dts
src/arm/nuvoton/nuvoton-wpcm450-supermicro-x9sci-ln4f.dts
src/arm/nvidia/tegra114-asus-tf701t.dts
src/arm/nvidia/tegra20-trimslice.dts
src/arm/nxp/imx/imx1.dtsi
src/arm/nxp/imx/imx27.dtsi
src/arm/nxp/imx/imx53-mba53.dts
src/arm/nxp/imx/imx53-qsb-hdmi.dtso
src/arm/nxp/imx/imx53-tqma53.dtsi
src/arm/nxp/imx/imx6q-cm-fx6.dts
src/arm/nxp/imx/imx6q-prti6q.dts
src/arm/nxp/imx/imx6q-tbs2910.dts
src/arm/nxp/imx/imx6qdl-apalis.dtsi
src/arm/nxp/imx/imx6qdl-apf6dev.dtsi
src/arm/nxp/imx/imx6qdl-aristainetos2.dtsi
src/arm/nxp/imx/imx6qdl-colibri.dtsi
src/arm/nxp/imx/imx6qdl-cubox-i.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-gw553x.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-gw5910.dtsi
src/arm/nxp/imx/imx6qdl-gw5912.dtsi
src/arm/nxp/imx/imx6qdl-hummingboard.dtsi
src/arm/nxp/imx/imx6qdl-icore-rqs.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-tqma6.dtsi
src/arm/nxp/imx/imx6qdl-tqma6a.dtsi
src/arm/nxp/imx/imx6qdl-tqma6b.dtsi
src/arm/nxp/imx/imx6qdl-tx6.dtsi
src/arm/nxp/imx/imx6qdl-var-dart.dtsi
src/arm/nxp/imx/imx6qdl-var-som.dtsi
src/arm/nxp/imx/imx6qdl-wandboard.dtsi
src/arm/nxp/imx/imx6sl-evk.dts
src/arm/nxp/imx/imx6sl-warp.dts
src/arm/nxp/imx/imx6sx-sabreauto.dts
src/arm/nxp/imx/imx6sx-sdb.dtsi
src/arm/nxp/imx/imx6sx-udoo-neo.dtsi
src/arm/nxp/imx/imx6ul-14x14-evk.dtsi
src/arm/nxp/imx/imx6ul-ccimx6ulsbcexpress.dts
src/arm/nxp/imx/imx6ul-ccimx6ulsbcpro.dts
src/arm/nxp/imx/imx6ul-ccimx6ulsom.dtsi
src/arm/nxp/imx/imx6ul-geam.dts
src/arm/nxp/imx/imx6ul-isiot.dtsi
src/arm/nxp/imx/imx6ul-kontron-bl-common.dtsi
src/arm/nxp/imx/imx6ul-liteboard.dts
src/arm/nxp/imx/imx6ul-phytec-segin-peb-wlbt-05.dtsi
src/arm/nxp/imx/imx6ul-phytec-segin.dtsi
src/arm/nxp/imx/imx6ul-tqma6ul-common.dtsi
src/arm/nxp/imx/imx6ul-tx6ul-mainboard.dts
src/arm/nxp/imx/imx6ul-tx6ul.dtsi
src/arm/nxp/imx/imx6ull-myir-mys-6ulx.dtsi
src/arm/nxp/imx/imx6ull-seeed-npi-dev-board.dtsi
src/arm/nxp/imx/imx6ull-seeed-npi.dtsi
src/arm/nxp/imx/imx6ulz-bsh-smm-m2.dts
src/arm/nxp/imx/imx7-colibri.dtsi
src/arm/nxp/imx/imx7-mba7.dtsi
src/arm/nxp/imx/imx7d-nitrogen7.dts
src/arm/nxp/imx/imx7d-pico.dtsi
src/arm/nxp/imx/imx7d-remarkable2.dts
src/arm/nxp/imx/imx7d-sdb-reva.dts
src/arm/nxp/imx/imx7d-sdb.dts
src/arm/nxp/imx/imx7d-zii-rmu2.dts
src/arm/nxp/imx/imx7s-warp.dts
src/arm/nxp/imx/mba6ulx.dtsi
src/arm/nxp/lpc/lpc4357-ea4357-devkit.dts
src/arm/nxp/lpc/lpc4357-myd-lpc4357.dts
src/arm/nxp/mxs/imx23-evk.dts
src/arm/nxp/mxs/imx23-olinuxino.dts
src/arm/nxp/mxs/imx23-sansa.dts
src/arm/nxp/mxs/imx23-stmp378x_devb.dts
src/arm/nxp/mxs/imx23-xfi3.dts
src/arm/nxp/mxs/imx23.dtsi
src/arm/nxp/mxs/imx28-apx4devkit.dts
src/arm/nxp/mxs/imx28-cfa10037.dts
src/arm/nxp/mxs/imx28-lwe.dtsi
src/arm/nxp/mxs/imx28-tx28.dts
src/arm/nxp/mxs/imx28.dtsi
src/arm/qcom/pma8084.dtsi
src/arm/qcom/qcom-apq8064-asus-nexus7-flo.dts
src/arm/qcom/qcom-apq8064-cm-qs600.dts
src/arm/qcom/qcom-apq8064-ifc6410.dts
src/arm/qcom/qcom-apq8064-pins.dtsi
src/arm/qcom/qcom-apq8064-sony-xperia-lagan-yuga.dts
src/arm/qcom/qcom-apq8064.dtsi
src/arm/qcom/qcom-apq8084.dtsi
src/arm/qcom/qcom-ipq4018-ap120c-ac.dtsi
src/arm/qcom/qcom-ipq4018-jalapeno.dts
src/arm/qcom/qcom-ipq4019-ap.dk01.1.dtsi
src/arm/qcom/qcom-ipq4019-ap.dk04.1.dtsi
src/arm/qcom/qcom-ipq4019-ap.dk07.1-c1.dts
src/arm/qcom/qcom-ipq4019-ap.dk07.1-c2.dts
src/arm/qcom/qcom-ipq4019-ap.dk07.1.dtsi
src/arm/qcom/qcom-ipq8064-ap148.dts
src/arm/qcom/qcom-ipq8064-rb3011.dts
src/arm/qcom/qcom-ipq8064.dtsi
src/arm/qcom/qcom-msm8226-microsoft-common.dtsi
src/arm/qcom/qcom-msm8226-microsoft-moneypenny.dts
src/arm/qcom/qcom-msm8226.dtsi
src/arm/qcom/qcom-msm8926-microsoft-tesla.dts
src/arm/qcom/qcom-msm8974.dtsi
src/arm/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
src/arm/rockchip/rk3036-kylin.dts
src/arm/rockchip/rk3036.dtsi
src/arm/rockchip/rk3128.dtsi
src/arm/rockchip/rv1108-elgin-r1.dts
src/arm/rockchip/rv1126-pinctrl.dtsi
src/arm/rockchip/rv1126.dtsi
src/arm/st/stm32mp13-pinctrl.dtsi
src/arm/st/stm32mp135f-dhcor-dhsbc.dts
src/arm/st/stm32mp15-pinctrl.dtsi
src/arm/st/stm32mp151a-prtt1a.dts
src/arm/st/stm32mp151a-prtt1c.dts
src/arm/st/stm32mp151a-prtt1l.dtsi
src/arm/st/stm32mp151a-prtt1s.dts
src/arm/st/stm32mp151c-mecio1r0.dts [new file with mode: 0644]
src/arm/st/stm32mp151c-mect1s.dts [new file with mode: 0644]
src/arm/st/stm32mp153c-mecio1r1.dts [new file with mode: 0644]
src/arm/st/stm32mp15x-mecio1-io.dtsi [new file with mode: 0644]
src/arm/st/stm32mp15xx-dhcom-pdk2.dtsi
src/arm/ti/omap/am335x-bone-common.dtsi
src/arm/ti/omap/am335x-boneblue.dts
src/arm/ti/omap/am335x-nano.dts
src/arm/ti/omap/am335x-regor.dtsi
src/arm/ti/omap/am335x-wega.dtsi
src/arm/xilinx/zynq-zturn-common.dtsi
src/arm64/allwinner/sun50i-a64.dtsi
src/arm64/allwinner/sun50i-h5-nanopi-neo-plus2.dts
src/arm64/allwinner/sun50i-h616.dtsi
src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-sp.dts [new file with mode: 0644]
src/arm64/amlogic/amlogic-a4-common.dtsi
src/arm64/amlogic/amlogic-a5.dtsi
src/arm64/amlogic/amlogic-c3-c302x-aw409.dts
src/arm64/amlogic/amlogic-c3-c308l-aw419.dts [new file with mode: 0644]
src/arm64/amlogic/amlogic-c3.dtsi
src/arm64/amlogic/amlogic-t7.dtsi
src/arm64/amlogic/meson-axg-s400.dts
src/arm64/amlogic/meson-g12a-fbx8am.dts
src/arm64/amlogic/meson-g12a-radxa-zero.dts
src/arm64/amlogic/meson-g12a-sei510.dts
src/arm64/amlogic/meson-g12a-u200.dts
src/arm64/amlogic/meson-g12a-x96-max.dts
src/arm64/amlogic/meson-g12b-bananapi-cm4-cm4io.dts
src/arm64/amlogic/meson-g12b-bananapi-cm4-mnt-reform2.dts
src/arm64/amlogic/meson-g12b-bananapi.dtsi
src/arm64/amlogic/meson-g12b-dreambox.dtsi
src/arm64/amlogic/meson-g12b-gsking-x.dts
src/arm64/amlogic/meson-g12b-gtking-pro.dts
src/arm64/amlogic/meson-g12b-gtking.dts
src/arm64/amlogic/meson-g12b-odroid-go-ultra.dts
src/arm64/amlogic/meson-g12b-odroid-n2.dtsi
src/arm64/amlogic/meson-g12b-odroid-n2l.dts
src/arm64/amlogic/meson-g12b-radxa-zero2.dts
src/arm64/amlogic/meson-g12b-ugoos-am6.dts
src/arm64/amlogic/meson-gx-libretech-pc.dtsi
src/arm64/amlogic/meson-gx-p23x-q20x.dtsi
src/arm64/amlogic/meson-gxbb-kii-pro.dts
src/arm64/amlogic/meson-gxbb-nanopi-k2.dts
src/arm64/amlogic/meson-gxbb-nexbox-a95x.dts
src/arm64/amlogic/meson-gxbb-odroidc2.dts
src/arm64/amlogic/meson-gxbb-p200.dts
src/arm64/amlogic/meson-gxbb-p201.dts
src/arm64/amlogic/meson-gxbb-vega-s95.dtsi
src/arm64/amlogic/meson-gxbb-wetek-hub.dts
src/arm64/amlogic/meson-gxbb-wetek-play2.dts
src/arm64/amlogic/meson-gxl-s805x-libretech-ac.dts
src/arm64/amlogic/meson-gxl-s805x-p241.dts
src/arm64/amlogic/meson-gxl-s905x-khadas-vim.dts
src/arm64/amlogic/meson-gxl-s905x-libretech-cc-v2.dts
src/arm64/amlogic/meson-gxl-s905x-libretech-cc.dts
src/arm64/amlogic/meson-gxl-s905x-p212.dts
src/arm64/amlogic/meson-gxl-s905x-vero4k.dts
src/arm64/amlogic/meson-gxlx-s905l-p271.dts
src/arm64/amlogic/meson-gxm-khadas-vim2.dts
src/arm64/amlogic/meson-gxm-nexbox-a1.dts
src/arm64/amlogic/meson-gxm-rbox-pro.dts
src/arm64/amlogic/meson-khadas-vim3.dtsi
src/arm64/amlogic/meson-libretech-cottonwood.dtsi
src/arm64/amlogic/meson-s4-s805x2-aq222.dts
src/arm64/amlogic/meson-s4.dtsi
src/arm64/amlogic/meson-sm1-a95xf3-air-gbit.dts
src/arm64/amlogic/meson-sm1-a95xf3-air.dts
src/arm64/amlogic/meson-sm1-bananapi-m2-pro.dts
src/arm64/amlogic/meson-sm1-bananapi-m5.dts
src/arm64/amlogic/meson-sm1-h96-max.dts
src/arm64/amlogic/meson-sm1-odroid.dtsi
src/arm64/amlogic/meson-sm1-sei610.dts
src/arm64/amlogic/meson-sm1-x96-air-gbit.dts
src/arm64/amlogic/meson-sm1-x96-air.dts
src/arm64/apm/apm-storm.dtsi
src/arm64/arm/foundation-v8.dtsi
src/arm64/arm/fvp-base-revc.dts
src/arm64/arm/rtsm_ve-aemv8a.dts
src/arm64/broadcom/bcm2712-rpi-5-b.dts [new file with mode: 0644]
src/arm64/broadcom/bcm2712.dtsi [new file with mode: 0644]
src/arm64/exynos/exynos7885-jackpotlte.dts
src/arm64/exynos/exynosautov9.dtsi
src/arm64/exynos/exynosautov920.dtsi
src/arm64/exynos/google/gs101.dtsi
src/arm64/freescale/fsl-ls1012a-frdm.dts
src/arm64/freescale/fsl-ls1012a.dtsi
src/arm64/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts
src/arm64/freescale/fsl-ls1028a.dtsi
src/arm64/freescale/fsl-ls1043-post.dtsi
src/arm64/freescale/fsl-ls1043a-qds.dts
src/arm64/freescale/fsl-ls1043a.dtsi
src/arm64/freescale/fsl-ls1046-post.dtsi
src/arm64/freescale/fsl-ls1046a-qds.dts
src/arm64/freescale/fsl-ls1046a.dtsi
src/arm64/freescale/fsl-ls1088a-rdb.dts
src/arm64/freescale/fsl-ls1088a-ten64.dts
src/arm64/freescale/fsl-ls1088a.dtsi
src/arm64/freescale/fsl-ls208xa-qds.dtsi
src/arm64/freescale/fsl-ls208xa.dtsi
src/arm64/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a.dts
src/arm64/freescale/fsl-lx2160a.dtsi
src/arm64/freescale/imx8-ss-dma.dtsi
src/arm64/freescale/imx8-ss-img.dtsi
src/arm64/freescale/imx8-ss-lvds0.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8-ss-lvds1.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8-ss-mipi0.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8-ss-mipi1.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8-ss-vpu.dtsi
src/arm64/freescale/imx8dx-colibri.dtsi
src/arm64/freescale/imx8dxl-evk.dts
src/arm64/freescale/imx8mm-beacon-baseboard.dtsi
src/arm64/freescale/imx8mm-beacon-kit.dts
src/arm64/freescale/imx8mm-data-modul-edm-sbc.dts
src/arm64/freescale/imx8mm-emtop-baseboard.dts
src/arm64/freescale/imx8mm-evk.dtsi
src/arm64/freescale/imx8mm-phyboard-polis-rdk.dts
src/arm64/freescale/imx8mm-phygate-tauri-l-rs232-rs232.dtso
src/arm64/freescale/imx8mm-phygate-tauri-l-rs232-rs485.dtso
src/arm64/freescale/imx8mm-phygate-tauri-l-rs232-rts-cts.dtso
src/arm64/freescale/imx8mm-phygate-tauri-l.dts
src/arm64/freescale/imx8mm-tqma8mqml.dtsi
src/arm64/freescale/imx8mm-var-som.dtsi
src/arm64/freescale/imx8mm-venice-gw72xx-0x-imx219.dtso
src/arm64/freescale/imx8mm-venice-gw72xx-0x-rs232-rts.dtso
src/arm64/freescale/imx8mm-venice-gw72xx-0x-rs422.dtso
src/arm64/freescale/imx8mm-venice-gw72xx-0x-rs485.dtso
src/arm64/freescale/imx8mm-venice-gw73xx-0x-imx219.dtso
src/arm64/freescale/imx8mm-venice-gw73xx-0x-rs232-rts.dtso
src/arm64/freescale/imx8mm-venice-gw73xx-0x-rs422.dtso
src/arm64/freescale/imx8mm-venice-gw73xx-0x-rs485.dtso
src/arm64/freescale/imx8mm-venice-gw75xx-0x.dts [moved from src/arm64/freescale/imx8mm-venice-gw7905-0x.dts with 67% similarity]
src/arm64/freescale/imx8mm-venice-gw75xx.dtsi [moved from src/arm64/freescale/imx8mm-venice-gw7905.dtsi with 100% similarity]
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/imx8mn-beacon-baseboard.dtsi
src/arm64/freescale/imx8mn-beacon-kit.dts
src/arm64/freescale/imx8mn-evk.dtsi
src/arm64/freescale/imx8mn-venice-gw7902.dts
src/arm64/freescale/imx8mp-beacon-kit.dts
src/arm64/freescale/imx8mp-data-modul-edm-sbc.dts
src/arm64/freescale/imx8mp-evk.dts
src/arm64/freescale/imx8mp-phyboard-pollux-rdk.dts
src/arm64/freescale/imx8mp-phycore-no-eth.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mp-phycore-som.dtsi
src/arm64/freescale/imx8mp-skov-revb-mi1010ait-1cp1.dts
src/arm64/freescale/imx8mp-var-som-symphony.dts [new file with mode: 0644]
src/arm64/freescale/imx8mp-var-som.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8mp-venice-gw74xx-imx219.dtso
src/arm64/freescale/imx8mp-venice-gw75xx-2x.dts [moved from src/arm64/freescale/imx8mp-venice-gw7905-2x.dts with 67% similarity]
src/arm64/freescale/imx8mp-venice-gw75xx.dtsi [moved from src/arm64/freescale/imx8mp-venice-gw7905.dtsi with 100% similarity]
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-wifi.dtsi
src/arm64/freescale/imx8mp-verdin-yavia.dtsi
src/arm64/freescale/imx8mp-verdin.dtsi
src/arm64/freescale/imx8mp.dtsi
src/arm64/freescale/imx8mq-evk.dts
src/arm64/freescale/imx8qm-mek.dts
src/arm64/freescale/imx8qm-ss-lvds.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8qm-ss-mipi.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8qm.dtsi
src/arm64/freescale/imx8qxp-ss-vpu.dtsi
src/arm64/freescale/imx8ulp.dtsi
src/arm64/freescale/imx8x-colibri-aster.dtsi
src/arm64/freescale/imx8x-colibri-eval-v3.dtsi
src/arm64/freescale/imx8x-colibri-iris.dtsi
src/arm64/freescale/imx8x-colibri.dtsi
src/arm64/freescale/imx93-11x11-evk.dts
src/arm64/freescale/imx93-14x14-evk.dts [new file with mode: 0644]
src/arm64/freescale/imx93-9x9-qsb.dts
src/arm64/freescale/imx93-kontron-bl-osm-s.dts [new file with mode: 0644]
src/arm64/freescale/imx93-kontron-osm-s.dtsi [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
src/arm64/freescale/imx95.dtsi
src/arm64/freescale/mba8mx.dtsi
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/s32g2.dtsi
src/arm64/freescale/s32g274a-evb.dts
src/arm64/freescale/s32g274a-rdb2.dts
src/arm64/freescale/s32g3.dtsi
src/arm64/freescale/s32g399a-rdb3.dts
src/arm64/freescale/s32v234.dtsi
src/arm64/marvell/cn9130-sr-som.dtsi
src/arm64/mediatek/mt6357.dtsi
src/arm64/mediatek/mt6358.dtsi
src/arm64/mediatek/mt6359.dtsi
src/arm64/mediatek/mt7981b.dtsi
src/arm64/mediatek/mt8183-kukui-jacuzzi.dtsi
src/arm64/mediatek/mt8183-kukui.dtsi
src/arm64/mediatek/mt8183.dtsi
src/arm64/mediatek/mt8186-corsola.dtsi
src/arm64/mediatek/mt8186.dtsi
src/arm64/mediatek/mt8188.dtsi
src/arm64/mediatek/mt8195-cherry-dojo-r1.dts
src/arm64/mediatek/mt8195-cherry-tomato-r2.dts
src/arm64/mediatek/mt8195-cherry-tomato-r3.dts
src/arm64/mediatek/mt8195-cherry.dtsi
src/arm64/mediatek/mt8195.dtsi
src/arm64/mediatek/mt8365-evk.dts
src/arm64/mediatek/mt8365.dtsi
src/arm64/mediatek/mt8395-genio-1200-evk.dts
src/arm64/mediatek/mt8395-kontron-3-5-sbc-i1200.dts
src/arm64/mediatek/mt8395-radxa-nio-12l.dts
src/arm64/nuvoton/ma35d1-iot-512m.dts
src/arm64/nuvoton/ma35d1-som-256m.dts
src/arm64/nuvoton/ma35d1.dtsi
src/arm64/nvidia/tegra210-p2180.dtsi
src/arm64/nvidia/tegra210-p2597.dtsi
src/arm64/nvidia/tegra234-p3701-0000.dtsi
src/arm64/nvidia/tegra234-p3701-0008.dtsi
src/arm64/nvidia/tegra234-p3701.dtsi
src/arm64/nvidia/tegra234-p3737-0000+p3701-0000.dts
src/arm64/nvidia/tegra234-p3737-0000.dtsi [deleted file]
src/arm64/nvidia/tegra234-p3740-0002+p3701-0008.dts
src/arm64/nvidia/tegra234-p3740-0002.dtsi [deleted file]
src/arm64/nvidia/tegra234-p3768-0000+p3767-0000.dts
src/arm64/nvidia/tegra234-p3768-0000+p3767.dtsi
src/arm64/nvidia/tegra234.dtsi
src/arm64/qcom/ipq5332.dtsi
src/arm64/qcom/ipq6018.dtsi
src/arm64/qcom/ipq9574.dtsi
src/arm64/qcom/msm8916-longcheer-l8910.dts
src/arm64/qcom/msm8916-samsung-fortuna-common.dtsi
src/arm64/qcom/msm8916-samsung-grandmax.dts
src/arm64/qcom/msm8916-samsung-gt58.dts
src/arm64/qcom/msm8916-samsung-j3-common.dtsi [new file with mode: 0644]
src/arm64/qcom/msm8916-samsung-j3ltetw.dts [new file with mode: 0644]
src/arm64/qcom/msm8916-samsung-rossa.dts
src/arm64/qcom/msm8916-wingtech-wt86518.dts [new file with mode: 0644]
src/arm64/qcom/msm8916-wingtech-wt86528.dts [new file with mode: 0644]
src/arm64/qcom/msm8916-wingtech-wt865x8.dtsi [new file with mode: 0644]
src/arm64/qcom/msm8916.dtsi
src/arm64/qcom/msm8929-pm8916.dtsi [new file with mode: 0644]
src/arm64/qcom/msm8929-wingtech-wt82918hd.dts [new file with mode: 0644]
src/arm64/qcom/msm8929.dtsi [new file with mode: 0644]
src/arm64/qcom/msm8939-longcheer-l9100.dts
src/arm64/qcom/msm8939-samsung-a7.dts
src/arm64/qcom/msm8939-wingtech-wt82918.dts [new file with mode: 0644]
src/arm64/qcom/msm8939-wingtech-wt82918.dtsi [new file with mode: 0644]
src/arm64/qcom/msm8939-wingtech-wt82918hd.dts [new file with mode: 0644]
src/arm64/qcom/msm8939.dtsi
src/arm64/qcom/msm8953.dtsi
src/arm64/qcom/msm8976.dtsi
src/arm64/qcom/msm8992-lg-h815.dts [new file with mode: 0644]
src/arm64/qcom/msm8994.dtsi
src/arm64/qcom/msm8996.dtsi
src/arm64/qcom/msm8998.dtsi
src/arm64/qcom/pm8950.dtsi
src/arm64/qcom/pmi8950.dtsi
src/arm64/qcom/pmi8994.dtsi
src/arm64/qcom/qcm2290.dtsi
src/arm64/qcom/qcm6490-idp.dts
src/arm64/qcom/qcs404.dtsi
src/arm64/qcom/sa8155p.dtsi
src/arm64/qcom/sa8295p-adp.dts
src/arm64/qcom/sa8775p-ride.dtsi
src/arm64/qcom/sa8775p.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/sdm630.dtsi
src/arm64/qcom/sdx75-idp.dts
src/arm64/qcom/sdx75.dtsi
src/arm64/qcom/sm4450.dtsi
src/arm64/qcom/sm6115-fxtec-pro1x.dts
src/arm64/qcom/sm6115.dtsi
src/arm64/qcom/sm6125.dtsi
src/arm64/qcom/sm6375.dtsi
src/arm64/qcom/sm7125-xiaomi-common.dtsi
src/arm64/qcom/sm8150-mtp.dts
src/arm64/qcom/sm8150.dtsi
src/arm64/qcom/sm8250.dtsi
src/arm64/qcom/sm8350.dtsi
src/arm64/qcom/sm8450.dtsi
src/arm64/qcom/sm8550-hdk.dts
src/arm64/qcom/sm8550-qrd.dts
src/arm64/qcom/sm8550.dtsi
src/arm64/qcom/sm8650-hdk.dts
src/arm64/qcom/sm8650-qrd.dts
src/arm64/qcom/sm8650.dtsi
src/arm64/qcom/x1e78100-lenovo-thinkpad-t14s.dts [new file with mode: 0644]
src/arm64/qcom/x1e80100-asus-vivobook-s15.dts
src/arm64/qcom/x1e80100-crd.dts
src/arm64/qcom/x1e80100-lenovo-yoga-slim7x.dts
src/arm64/qcom/x1e80100-microsoft-romulus.dtsi [new file with mode: 0644]
src/arm64/qcom/x1e80100-microsoft-romulus13.dts [new file with mode: 0644]
src/arm64/qcom/x1e80100-microsoft-romulus15.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/r8a774a1.dtsi
src/arm64/renesas/r8a774b1.dtsi
src/arm64/renesas/r8a774c0.dtsi
src/arm64/renesas/r8a774e1.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.dtsi
src/arm64/renesas/r8a779a0.dtsi
src/arm64/renesas/r8a779g0.dtsi
src/arm64/renesas/r8a779g2-white-hawk-single.dts
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/r9a07g043u11-smarc-du-adv7513.dtso [new file with mode: 0644]
src/arm64/renesas/r9a07g044.dtsi
src/arm64/renesas/r9a07g044c2-smarc.dts
src/arm64/renesas/r9a07g054.dtsi
src/arm64/renesas/r9a08g045.dtsi
src/arm64/renesas/r9a09g057.dtsi [new file with mode: 0644]
src/arm64/renesas/r9a09g057h44-rzv2h-evk.dts [new file with mode: 0644]
src/arm64/renesas/rz-smarc-common.dtsi
src/arm64/renesas/rz-smarc-du-adv7513.dtsi [new file with mode: 0644]
src/arm64/renesas/rzg2l-smarc-pinfunction.dtsi
src/arm64/renesas/rzg2l-smarc-som.dtsi
src/arm64/renesas/rzg2l-smarc.dtsi
src/arm64/renesas/rzg2lc-smarc-som.dtsi
src/arm64/renesas/rzg2lc-smarc.dtsi
src/arm64/renesas/rzg2ul-smarc-som.dtsi
src/arm64/renesas/rzg3s-smarc-som.dtsi
src/arm64/renesas/rzg3s-smarc.dtsi
src/arm64/renesas/white-hawk-cpu-common.dtsi
src/arm64/rockchip/px30-firefly-jd4-core-mb.dts [new file with mode: 0644]
src/arm64/rockchip/px30-firefly-jd4-core.dtsi [new file with mode: 0644]
src/arm64/rockchip/px30-ringneck.dtsi
src/arm64/rockchip/rk3308-roc-cc.dts
src/arm64/rockchip/rk3328-nanopi-r2s-plus.dts [new file with mode: 0644]
src/arm64/rockchip/rk3328.dtsi
src/arm64/rockchip/rk3368-lion.dtsi
src/arm64/rockchip/rk3399-base.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3399-eaidk-610.dts
src/arm64/rockchip/rk3399-evb.dts
src/arm64/rockchip/rk3399-firefly.dts
src/arm64/rockchip/rk3399-gru.dtsi
src/arm64/rockchip/rk3399-hugsun-x99.dts
src/arm64/rockchip/rk3399-khadas-edge.dtsi
src/arm64/rockchip/rk3399-kobol-helios64.dts
src/arm64/rockchip/rk3399-leez-p710.dts
src/arm64/rockchip/rk3399-nanopi4.dtsi
src/arm64/rockchip/rk3399-op1.dtsi [moved from src/arm64/rockchip/rk3399-op1-opp.dtsi with 99% similarity]
src/arm64/rockchip/rk3399-opp.dtsi [deleted file]
src/arm64/rockchip/rk3399-orangepi.dts
src/arm64/rockchip/rk3399-pinebook-pro.dts
src/arm64/rockchip/rk3399-pinephone-pro.dts
src/arm64/rockchip/rk3399-puma.dtsi
src/arm64/rockchip/rk3399-roc-pc-plus.dts
src/arm64/rockchip/rk3399-roc-pc.dtsi
src/arm64/rockchip/rk3399-rock-4c-plus.dts
src/arm64/rockchip/rk3399-rock-4se.dts
src/arm64/rockchip/rk3399-rock-pi-4.dtsi
src/arm64/rockchip/rk3399-rock-pi-4a-plus.dts
src/arm64/rockchip/rk3399-rock-pi-4a.dts
src/arm64/rockchip/rk3399-rock-pi-4b-plus.dts
src/arm64/rockchip/rk3399-rock-pi-4b.dts
src/arm64/rockchip/rk3399-rock-pi-4c.dts
src/arm64/rockchip/rk3399-rock960.dtsi
src/arm64/rockchip/rk3399-rockpro64.dtsi
src/arm64/rockchip/rk3399-sapphire-excavator.dts
src/arm64/rockchip/rk3399-sapphire.dtsi
src/arm64/rockchip/rk3399-t.dtsi [moved from src/arm64/rockchip/rk3399-t-opp.dtsi with 98% similarity]
src/arm64/rockchip/rk3399.dtsi
src/arm64/rockchip/rk3399pro-rock-pi-n10.dts
src/arm64/rockchip/rk3566-anbernic-rg353p.dts
src/arm64/rockchip/rk3566-anbernic-rg353v.dts
src/arm64/rockchip/rk3566-box-demo.dts
src/arm64/rockchip/rk3566-lckfb-tspi.dts [new file with mode: 0644]
src/arm64/rockchip/rk3566-lubancat-1.dts
src/arm64/rockchip/rk3566-odroid-m1s.dts [new file with mode: 0644]
src/arm64/rockchip/rk3566-pinenote.dtsi
src/arm64/rockchip/rk3566-quartz64-b.dts
src/arm64/rockchip/rk3566-radxa-cm3.dtsi
src/arm64/rockchip/rk3566-radxa-zero-3.dtsi
src/arm64/rockchip/rk3568-fastrhino-r66s.dts
src/arm64/rockchip/rk3568-fastrhino-r68s.dts
src/arm64/rockchip/rk3568-lubancat-2.dts
src/arm64/rockchip/rk3568-mecsbc.dts
src/arm64/rockchip/rk3568-odroid-m1.dts
src/arm64/rockchip/rk3568-qnap-ts433.dts
src/arm64/rockchip/rk3568-radxa-cm3i.dtsi
src/arm64/rockchip/rk3568-radxa-e25.dts
src/arm64/rockchip/rk3568-roc-pc.dts
src/arm64/rockchip/rk3568-wolfvision-pf5-display-vz.dtso [new file with mode: 0644]
src/arm64/rockchip/rk3568-wolfvision-pf5-display.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3568.dtsi
src/arm64/rockchip/rk356x.dtsi
src/arm64/rockchip/rk3588-base-pinctrl.dtsi
src/arm64/rockchip/rk3588-base.dtsi
src/arm64/rockchip/rk3588-coolpi-cm5-genbook.dts [new file with mode: 0644]
src/arm64/rockchip/rk3588-nanopc-t6-lts.dts [new file with mode: 0644]
src/arm64/rockchip/rk3588-nanopc-t6.dts
src/arm64/rockchip/rk3588-nanopc-t6.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3588-orangepi-5-plus.dts
src/arm64/rockchip/rk3588-quartzpro64.dts
src/arm64/rockchip/rk3588-rock-5b.dts
src/arm64/rockchip/rk3588-toybrick-x0.dts
src/arm64/rockchip/rk3588-turing-rk1.dtsi
src/arm64/rockchip/rk3588s-gameforce-ace.dts [new file with mode: 0644]
src/arm64/rockchip/rk3588s-indiedroid-nova.dts
src/arm64/rockchip/rk3588s-odroid-m2.dts [new file with mode: 0644]
src/arm64/rockchip/rk3588s-rock-5a.dts
src/arm64/sprd/sc2731.dtsi
src/arm64/sprd/sc9836-openphone.dts
src/arm64/sprd/sc9836.dtsi
src/arm64/sprd/sc9860.dtsi
src/arm64/sprd/sc9863a.dtsi
src/arm64/sprd/sharkl64.dtsi
src/arm64/sprd/sp9860g-1h10.dts
src/arm64/sprd/ums512.dtsi
src/arm64/sprd/whale2.dtsi
src/arm64/ti/k3-am62-main.dtsi
src/arm64/ti/k3-am62-mcu.dtsi
src/arm64/ti/k3-am62-thermal.dtsi
src/arm64/ti/k3-am625-beagleplay.dts
src/arm64/ti/k3-am625.dtsi
src/arm64/ti/k3-am62a-main.dtsi
src/arm64/ti/k3-am62a-mcu.dtsi
src/arm64/ti/k3-am62a.dtsi
src/arm64/ti/k3-am62p-j722s-common-main.dtsi
src/arm64/ti/k3-am62p-j722s-common-mcu.dtsi
src/arm64/ti/k3-am62p-main.dtsi
src/arm64/ti/k3-am62p5-sk.dts
src/arm64/ti/k3-am64-main.dtsi
src/arm64/ti/k3-am64-mcu.dtsi
src/arm64/ti/k3-am64-phycore-som.dtsi
src/arm64/ti/k3-am642-evm-nand.dtso
src/arm64/ti/k3-am642-evm.dts
src/arm64/ti/k3-am642-phyboard-electra-rdk.dts
src/arm64/ti/k3-am642-sk.dts
src/arm64/ti/k3-am642-sr-som.dtsi
src/arm64/ti/k3-am642-tqma64xxl-mbax4xxl.dts
src/arm64/ti/k3-am65-iot2050-common-pg2.dtsi
src/arm64/ti/k3-am65-iot2050-common.dtsi
src/arm64/ti/k3-am65-main.dtsi
src/arm64/ti/k3-am65-mcu.dtsi
src/arm64/ti/k3-am65.dtsi
src/arm64/ti/k3-am6528-iot2050-basic.dts
src/arm64/ti/k3-am654-idk.dtso
src/arm64/ti/k3-am6548-iot2050-advanced-m2-bkey-ekey-pcie.dtso [new file with mode: 0644]
src/arm64/ti/k3-am6548-iot2050-advanced-m2-bkey-usb3.dtso [new file with mode: 0644]
src/arm64/ti/k3-am67a-beagley-ai.dts [new file with mode: 0644]
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-j7200-som-p0.dtsi
src/arm64/ti/k3-j721e-beagleboneai64.dts
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-j721e.dtsi
src/arm64/ti/k3-j721s2-evm-gesi-exp-board.dtso
src/arm64/ti/k3-j721s2-mcu-wakeup.dtsi
src/arm64/ti/k3-j721s2-som-p0.dtsi
src/arm64/ti/k3-j721s2.dtsi
src/arm64/ti/k3-j722s-evm.dts
src/arm64/ti/k3-j722s-main.dtsi
src/arm64/ti/k3-j784s4-evm.dts
src/arm64/ti/k3-j784s4-main.dtsi
src/arm64/ti/k3-j784s4-mcu-wakeup.dtsi
src/arm64/ti/k3-j784s4.dtsi
src/arm64/toshiba/tmpv7708.dtsi
src/arm64/xilinx/zynqmp-zcu102-revA.dts
src/riscv/sophgo/cv1812h-huashan-pi.dts
src/riscv/sophgo/cv18xx.dtsi
src/riscv/sophgo/sg2042-milkv-pioneer.dts
src/riscv/sophgo/sg2042.dtsi
src/riscv/starfive/jh7110-common.dtsi
src/riscv/starfive/jh7110-pine64-star64.dts
src/riscv/thead/th1520-beaglev-ahead.dts
src/riscv/thead/th1520-lichee-module-4a.dtsi
src/riscv/thead/th1520-lichee-pi-4a.dts
src/riscv/thead/th1520.dtsi

diff --git a/Bindings/arc/archs-pct.txt b/Bindings/arc/archs-pct.txt
deleted file mode 100644 (file)
index e4b9dce..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-* ARC HS Performance Counters
-
-The ARC HS can be configured with a pipeline performance monitor for counting
-CPU and cache events like cache misses and hits. Like conventional PCT there
-are 100+ hardware conditions dynamically mapped to up to 32 counters.
-It also supports overflow interrupts.
-
-Required properties:
-
-- compatible : should contain
-       "snps,archs-pct"
-
-Example:
-
-pmu {
-        compatible = "snps,archs-pct";
-};
diff --git a/Bindings/arc/snps,archs-pct.yaml b/Bindings/arc/snps,archs-pct.yaml
new file mode 100644 (file)
index 0000000..532f758
--- /dev/null
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arc/snps,archs-pct.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ARC HS Performance Counters
+
+maintainers:
+  - Aryabhatta Dey <aryabhattadey35@gmail.com>
+
+description:
+  The ARC HS can be configured with a pipeline performance monitor for counting
+  CPU and cache events like cache misses and hits. Like conventional PCT there
+  are 100+ hardware conditions dynamically mapped to up to 32 counters.
+  It also supports overflow interrupts.
+
+properties:
+  compatible:
+    const: snps,archs-pct
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+
+additionalProperties: false
index 7dff32f373cb93cf55ca665d2ddfcecb942d7fff..b4f6695a6015283c6f5470c62492a31287aa4c48 100644 (file)
@@ -25,10 +25,18 @@ select:
 
 properties:
   compatible:
-    items:
-      - const: amlogic,meson-gx-ao-secure
-      - const: syscon
-
+    oneOf:
+      - items:
+          - const: amlogic,meson-gx-ao-secure
+          - const: syscon
+      - items:
+          - enum:
+              - amlogic,a4-ao-secure
+              - amlogic,c3-ao-secure
+              - amlogic,s4-ao-secure
+              - amlogic,t7-ao-secure
+          - const: amlogic,meson-gx-ao-secure
+          - const: syscon
   reg:
     maxItems: 1
 
index d50a60368e279a3ec52a77635851ca11d2ac5582..04a8c37b4aff557f47ee31bf3faa3c082b764ecb 100644 (file)
@@ -17,7 +17,7 @@ description: |
   The Coresight dummy source component is for the specific coresight source
   devices kernel don't have permission to access or configure. For some SOCs,
   there would be Coresight source trace components on sub-processor which
-  are conneted to AP processor via debug bus. For these devices, a dummy driver
+  are connected to AP processor via debug bus. For these devices, a dummy driver
   is needed to register them as Coresight source devices, so that paths can be
   created in the driver. It provides Coresight API for operations on dummy
   source devices, such as enabling and disabling them. It also provides the
index 693f3fe7be60ff1df0f907918a7a5176fe82ba6b..cff1cdaadb13cc62072568159e7ca85354da085f 100644 (file)
@@ -7,8 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: ARM Corstone1000
 
 maintainers:
-  - Vishnu Banavath <vishnu.banavath@arm.com>
-  - Rui Miguel Silva <rui.silva@linaro.org>
+  - Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+  - Hugues Kamba Mpiana <hugues.kambampiana@arm.com>
 
 description: |+
   ARM's Corstone1000 includes pre-verified Corstone SSE-710 subsystem that
index 95113df178cc5569d86079e6c4d2e92501a470e0..2f92b8ab08fa2c005aa85ee98e5ecc395bc39a17 100644 (file)
@@ -79,6 +79,7 @@ properties:
               - aspeed,ast2600-evb-a1
               - asus,x4tf-bmc
               - facebook,bletchley-bmc
+              - facebook,catalina-bmc
               - facebook,cloudripper-bmc
               - facebook,elbert-bmc
               - facebook,fuji-bmc
@@ -86,7 +87,9 @@ properties:
               - facebook,harma-bmc
               - facebook,minerva-cmc
               - facebook,yosemite4-bmc
+              - ibm,blueridge-bmc
               - ibm,everest-bmc
+              - ibm,fuji-bmc
               - ibm,rainier-bmc
               - ibm,system1-bmc
               - ibm,tacoma-bmc
index 7374beb5a6132100929c97345a8806314b40864a..76e2b79782502e2f313a818f3279a6a540e1cf82 100644 (file)
@@ -11,7 +11,8 @@ PIT Timer required properties:
   shared across all System Controller members.
 
 PIT64B Timer required properties:
-- compatible: Should be "microchip,sam9x60-pit64b"
+- compatible: Should be "microchip,sam9x60-pit64b" or
+                       "microchip,sam9x7-pit64b", "microchip,sam9x60-pit64b"
 - reg: Should contain registers location and length
 - interrupts: Should contain interrupt for PIT64B timer
 - clocks: Should contain the available clock sources for PIT64B timer.
@@ -31,7 +32,8 @@ RAMC SDRAM/DDR Controller required properties:
                        "atmel,at91sam9g45-ddramc",
                        "atmel,sama5d3-ddramc",
                        "microchip,sam9x60-ddramc",
-                       "microchip,sama7g5-uddrc"
+                       "microchip,sama7g5-uddrc",
+                       "microchip,sam9x7-ddramc", "atmel,sama5d3-ddramc".
 - reg: Should contain registers location and length
 
 Examples:
diff --git a/Bindings/arm/cirrus/cirrus,ep9301.yaml b/Bindings/arm/cirrus/cirrus,ep9301.yaml
new file mode 100644 (file)
index 0000000..170aad5
--- /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/arm/cirrus/cirrus,ep9301.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic EP93xx platforms
+
+description:
+  The EP93xx SoC is a ARMv4T-based with 200 MHz ARM9 CPU.
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+properties:
+  $nodename:
+    const: '/'
+  compatible:
+    oneOf:
+      - description: The TS-7250 is a compact, full-featured Single Board
+          Computer (SBC) based upon the Cirrus EP9302 ARM9 CPU
+        items:
+          - const: technologic,ts7250
+          - const: cirrus,ep9301
+
+      - description: The Liebherr BK3 is a derivate from ts7250 board
+        items:
+          - const: liebherr,bk3
+          - const: cirrus,ep9301
+
+      - description: EDB302 is an evaluation board by Cirrus Logic,
+          based on a Cirrus Logic EP9302 CPU
+        items:
+          - const: cirrus,edb9302
+          - const: cirrus,ep9301
+
+additionalProperties: true
index 80747d79418a00224efa74c3fe74c7fcf1439dbc..b39a7e031177e6921e77dd4dc4fb59a4b93437f3 100644 (file)
@@ -809,19 +809,19 @@ properties:
           - const: kontron,sl-imx6ull   # Kontron SL i.MX6ULL SoM
           - const: fsl,imx6ull
 
-      - description: TQ Systems TQMa6ULLx SoM on MBa6ULx board
+      - description: TQ-Systems TQMa6ULLx SoM on MBa6ULx board
         items:
           - enum:
-              - tq,imx6ull-tqma6ull2-mba6ulx
-          - const: tq,imx6ull-tqma6ull2      # MCIMX6Y2
+              - tq,imx6ull-tqma6ull2-mba6ulx # TQMa6ULL socketable SoM with MCIMX6Y2 on MBa6ULx EVK
+          - const: tq,imx6ull-tqma6ull2      # TQMa6ULL socketable SoM with MCIMX6Y2
           - const: fsl,imx6ull
 
-      - description: TQ Systems TQMa6ULLxL SoM on MBa6ULx[L] board
+      - description: TQ-Systems TQMa6ULLxL SoM on MBa6ULx[L] board
         items:
           - enum:
-              - tq,imx6ull-tqma6ull2l-mba6ulx # using LGA adapter
-              - tq,imx6ull-tqma6ull2l-mba6ulxl
-          - const: tq,imx6ull-tqma6ull2l      # MCIMX6Y2, LGA SoM variant
+              - tq,imx6ull-tqma6ull2l-mba6ulx  # TQMa6ULLxL LGA SoM with socketable Adapter on MBa6ULx EVK
+              - tq,imx6ull-tqma6ull2l-mba6ulxl # TQMa6ULLxL LGA SoM on MBa6ULxL gateway board
+          - const: tq,imx6ull-tqma6ull2l       # TQMa6ULLxL LGA SoM with MCIMX6Y2
           - const: fsl,imx6ull
 
       - description: Seeed Stuido i.MX6ULL SoM on dev boards
@@ -939,8 +939,8 @@ properties:
               - fsl,imx8mm-ddr4-evk       # i.MX8MM DDR4 EVK Board
               - fsl,imx8mm-evk            # i.MX8MM EVK Board
               - fsl,imx8mm-evkb           # i.MX8MM EVKB Board
+              - gateworks,imx8mm-gw75xx-0x # i.MX8MM Gateworks Board
               - gateworks,imx8mm-gw7904
-              - gateworks,imx8mm-gw7905-0x # i.MX8MM Gateworks Board
               - gw,imx8mm-gw71xx-0x       # i.MX8MM Gateworks Development Kit
               - gw,imx8mm-gw72xx-0x       # i.MX8MM Gateworks Development Kit
               - gw,imx8mm-gw73xx-0x       # i.MX8MM Gateworks Development Kit
@@ -953,7 +953,6 @@ properties:
               - toradex,verdin-imx8mm     # Verdin iMX8M Mini Modules
               - toradex,verdin-imx8mm-nonwifi  # Verdin iMX8M Mini Modules without Wi-Fi / BT
               - toradex,verdin-imx8mm-wifi  # Verdin iMX8M Mini Wi-Fi / BT Modules
-              - variscite,var-som-mx8mm   # i.MX8MM Variscite VAR-SOM-MX8MM module
               - prt,prt8mm                # i.MX8MM Protonic PRT8MM Board
           - const: fsl,imx8mm
 
@@ -1082,7 +1081,7 @@ properties:
               - gateworks,imx8mp-gw72xx-2x # i.MX8MP Gateworks Board
               - gateworks,imx8mp-gw73xx-2x # i.MX8MP Gateworks Board
               - gateworks,imx8mp-gw74xx   # i.MX8MP Gateworks Board
-              - gateworks,imx8mp-gw7905-2x # i.MX8MP Gateworks Board
+              - gateworks,imx8mp-gw75xx-2x # i.MX8MP Gateworks Board
               - skov,imx8mp-skov-revb-hdmi # SKOV i.MX8MP climate control without panel
               - skov,imx8mp-skov-revb-lt6 # SKOV i.MX8MP climate control with 7” panel
               - skov,imx8mp-skov-revb-mi1010ait-1cp1 # SKOV i.MX8MP climate control with 10.1" panel
@@ -1168,6 +1167,12 @@ properties:
           - const: tq,imx8mp-tqma8mpql            # TQ-Systems GmbH i.MX8MP TQMa8MPQL SOM
           - const: fsl,imx8mp
 
+      - description: Variscite VAR-SOM-MX8M Plus based boards
+        items:
+          - const: variscite,var-som-mx8mp-symphony
+          - const: variscite,var-som-mx8mp
+          - const: fsl,imx8mp
+
       - description: i.MX8MQ based Boards
         items:
           - enum:
@@ -1293,6 +1298,7 @@ properties:
           - enum:
               - fsl,imx93-9x9-qsb         # i.MX93 9x9 QSB Board
               - fsl,imx93-11x11-evk       # i.MX93 11x11 EVK Board
+              - fsl,imx93-14x14-evk       # i.MX93 14x14 EVK Board
           - const: fsl,imx93
 
       - description: i.MX95 based Boards
@@ -1344,6 +1350,12 @@ properties:
           - const: variscite,var-som-mx93
           - const: fsl,imx93
 
+      - description: Kontron OSM-S i.MX93 SoM based boards
+        items:
+          - const: kontron,imx93-bl-osm-s # Kontron BL i.MX93 OSM-S board
+          - const: kontron,imx93-osm-s    # Kontron OSM-S i.MX93 SoM
+          - const: fsl,imx93
+
       - description:
           Freescale Vybrid Platform Device Tree Bindings
 
@@ -1523,6 +1535,12 @@ properties:
               - fsl,ls2080a-rdb
           - const: fsl,ls2080a
 
+      - description: LS2081A based Boards
+        items:
+          - enum:
+              - fsl,ls2081a-rdb
+          - const: fsl,ls2081a
+
       - description: LS2088A based Boards
         items:
           - enum:
diff --git a/Bindings/arm/mediatek/mediatek,bdpsys.txt b/Bindings/arm/mediatek/mediatek,bdpsys.txt
deleted file mode 100644 (file)
index 149567a..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-Mediatek bdpsys controller
-============================
-
-The Mediatek bdpsys controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be:
-       - "mediatek,mt2701-bdpsys", "syscon"
-       - "mediatek,mt2712-bdpsys", "syscon"
-       - "mediatek,mt7623-bdpsys", "mediatek,mt2701-bdpsys", "syscon"
-- #clock-cells: Must be 1
-
-The bdpsys controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-bdpsys: clock-controller@1c000000 {
-       compatible = "mediatek,mt2701-bdpsys", "syscon";
-       reg = <0 0x1c000000 0 0x1000>;
-       #clock-cells = <1>;
-};
diff --git a/Bindings/arm/mediatek/mediatek,camsys.txt b/Bindings/arm/mediatek/mediatek,camsys.txt
deleted file mode 100644 (file)
index a0ce820..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-MediaTek CAMSYS controller
-============================
-
-The MediaTek camsys controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be one of:
-       - "mediatek,mt6765-camsys", "syscon"
-       - "mediatek,mt6779-camsys", "syscon"
-       - "mediatek,mt8183-camsys", "syscon"
-- #clock-cells: Must be 1
-
-The camsys controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-camsys: camsys@1a000000  {
-       compatible = "mediatek,mt8183-camsys", "syscon";
-       reg = <0 0x1a000000  0 0x1000>;
-       #clock-cells = <1>;
-};
diff --git a/Bindings/arm/mediatek/mediatek,imgsys.txt b/Bindings/arm/mediatek/mediatek,imgsys.txt
deleted file mode 100644 (file)
index dce4c92..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Mediatek imgsys controller
-============================
-
-The Mediatek imgsys controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be one of:
-       - "mediatek,mt2701-imgsys", "syscon"
-       - "mediatek,mt2712-imgsys", "syscon"
-       - "mediatek,mt6765-imgsys", "syscon"
-       - "mediatek,mt6779-imgsys", "syscon"
-       - "mediatek,mt6797-imgsys", "syscon"
-       - "mediatek,mt7623-imgsys", "mediatek,mt2701-imgsys", "syscon"
-       - "mediatek,mt8167-imgsys", "syscon"
-       - "mediatek,mt8173-imgsys", "syscon"
-       - "mediatek,mt8183-imgsys", "syscon"
-- #clock-cells: Must be 1
-
-The imgsys controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-imgsys: clock-controller@15000000 {
-       compatible = "mediatek,mt8173-imgsys", "syscon";
-       reg = <0 0x15000000 0 0x1000>;
-       #clock-cells = <1>;
-};
diff --git a/Bindings/arm/mediatek/mediatek,ipesys.txt b/Bindings/arm/mediatek/mediatek,ipesys.txt
deleted file mode 100644 (file)
index 2ce889b..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-Mediatek ipesys controller
-============================
-
-The Mediatek ipesys controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be one of:
-       - "mediatek,mt6779-ipesys", "syscon"
-- #clock-cells: Must be 1
-
-The ipesys controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-ipesys: clock-controller@1b000000 {
-       compatible = "mediatek,mt6779-ipesys", "syscon";
-       reg = <0 0x1b000000 0 0x1000>;
-       #clock-cells = <1>;
-};
diff --git a/Bindings/arm/mediatek/mediatek,ipu.txt b/Bindings/arm/mediatek/mediatek,ipu.txt
deleted file mode 100644 (file)
index aabc8c5..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-Mediatek IPU controller
-============================
-
-The Mediatek ipu controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be one of:
-       - "mediatek,mt8183-ipu_conn", "syscon"
-       - "mediatek,mt8183-ipu_adl", "syscon"
-       - "mediatek,mt8183-ipu_core0", "syscon"
-       - "mediatek,mt8183-ipu_core1", "syscon"
-- #clock-cells: Must be 1
-
-The ipu controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-ipu_conn: syscon@19000000 {
-       compatible = "mediatek,mt8183-ipu_conn", "syscon";
-       reg = <0 0x19000000 0 0x1000>;
-       #clock-cells = <1>;
-};
-
-ipu_adl: syscon@19010000 {
-       compatible = "mediatek,mt8183-ipu_adl", "syscon";
-       reg = <0 0x19010000 0 0x1000>;
-       #clock-cells = <1>;
-};
-
-ipu_core0: syscon@19180000 {
-       compatible = "mediatek,mt8183-ipu_core0", "syscon";
-       reg = <0 0x19180000 0 0x1000>;
-       #clock-cells = <1>;
-};
-
-ipu_core1: syscon@19280000 {
-       compatible = "mediatek,mt8183-ipu_core1", "syscon";
-       reg = <0 0x19280000 0 0x1000>;
-       #clock-cells = <1>;
-};
diff --git a/Bindings/arm/mediatek/mediatek,jpgdecsys.txt b/Bindings/arm/mediatek/mediatek,jpgdecsys.txt
deleted file mode 100644 (file)
index 2df799c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-Mediatek jpgdecsys controller
-============================
-
-The Mediatek jpgdecsys controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be:
-       - "mediatek,mt2712-jpgdecsys", "syscon"
-- #clock-cells: Must be 1
-
-The jpgdecsys controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-jpgdecsys: syscon@19000000 {
-       compatible = "mediatek,mt2712-jpgdecsys", "syscon";
-       reg = <0 0x19000000 0 0x1000>;
-       #clock-cells = <1>;
-};
diff --git a/Bindings/arm/mediatek/mediatek,mcucfg.txt b/Bindings/arm/mediatek/mediatek,mcucfg.txt
deleted file mode 100644 (file)
index 2b882b7..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-Mediatek mcucfg controller
-============================
-
-The Mediatek mcucfg controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be one of:
-       - "mediatek,mt2712-mcucfg", "syscon"
-       - "mediatek,mt8183-mcucfg", "syscon"
-- #clock-cells: Must be 1
-
-The mcucfg controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-mcucfg: syscon@10220000 {
-       compatible = "mediatek,mt2712-mcucfg", "syscon";
-       reg = <0 0x10220000 0 0x1000>;
-       #clock-cells = <1>;
-};
diff --git a/Bindings/arm/mediatek/mediatek,mfgcfg.txt b/Bindings/arm/mediatek/mediatek,mfgcfg.txt
deleted file mode 100644 (file)
index 054424f..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Mediatek mfgcfg controller
-============================
-
-The Mediatek mfgcfg controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be one of:
-       - "mediatek,mt2712-mfgcfg", "syscon"
-       - "mediatek,mt6779-mfgcfg", "syscon"
-       - "mediatek,mt8167-mfgcfg", "syscon"
-       - "mediatek,mt8183-mfgcfg", "syscon"
-- #clock-cells: Must be 1
-
-The mfgcfg controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-mfgcfg: syscon@13000000 {
-       compatible = "mediatek,mt2712-mfgcfg", "syscon";
-       reg = <0 0x13000000 0 0x1000>;
-       #clock-cells = <1>;
-};
diff --git a/Bindings/arm/mediatek/mediatek,mipi0a.txt b/Bindings/arm/mediatek/mediatek,mipi0a.txt
deleted file mode 100644 (file)
index 1c67194..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-Mediatek mipi0a (mipi_rx_ana_csi0a) controller
-============================
-
-The Mediatek mipi0a controller provides various clocks
-to the system.
-
-Required Properties:
-
-- compatible: Should be one of:
-       - "mediatek,mt6765-mipi0a", "syscon"
-- #clock-cells: Must be 1
-
-The mipi0a controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-The mipi0a controller also uses the common power domain from
-Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
-The available power domains are defined in dt-bindings/power/mt*-power.h.
-
-Example:
-
-mipi0a: clock-controller@11c10000 {
-       compatible = "mediatek,mt6765-mipi0a", "syscon";
-       reg = <0 0x11c10000 0 0x1000>;
-       power-domains = <&scpsys MT6765_POWER_DOMAIN_CAM>;
-       #clock-cells = <1>;
-};
diff --git a/Bindings/arm/mediatek/mediatek,vcodecsys.txt b/Bindings/arm/mediatek/mediatek,vcodecsys.txt
deleted file mode 100644 (file)
index f090147..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-Mediatek vcodecsys controller
-============================
-
-The Mediatek vcodecsys controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be one of:
-       - "mediatek,mt6765-vcodecsys", "syscon"
-- #clock-cells: Must be 1
-
-The vcodecsys controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-The vcodecsys controller also uses the common power domain from
-Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
-The available power domains are defined in dt-bindings/power/mt*-power.h.
-
-Example:
-
-venc_gcon: clock-controller@17000000 {
-       compatible = "mediatek,mt6765-vcodecsys", "syscon";
-       reg = <0 0x17000000 0 0x10000>;
-       power-domains = <&scpsys MT6765_POWER_DOMAIN_VCODEC>;
-       #clock-cells = <1>;
-};
diff --git a/Bindings/arm/mediatek/mediatek,vdecsys.txt b/Bindings/arm/mediatek/mediatek,vdecsys.txt
deleted file mode 100644 (file)
index 9819516..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-Mediatek vdecsys controller
-============================
-
-The Mediatek vdecsys controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be one of:
-       - "mediatek,mt2701-vdecsys", "syscon"
-       - "mediatek,mt2712-vdecsys", "syscon"
-       - "mediatek,mt6779-vdecsys", "syscon"
-       - "mediatek,mt6797-vdecsys", "syscon"
-       - "mediatek,mt7623-vdecsys", "mediatek,mt2701-vdecsys", "syscon"
-       - "mediatek,mt8167-vdecsys", "syscon"
-       - "mediatek,mt8173-vdecsys", "syscon"
-       - "mediatek,mt8183-vdecsys", "syscon"
-- #clock-cells: Must be 1
-
-The vdecsys controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-vdecsys: clock-controller@16000000 {
-       compatible = "mediatek,mt8173-vdecsys", "syscon";
-       reg = <0 0x16000000 0 0x1000>;
-       #clock-cells = <1>;
-};
diff --git a/Bindings/arm/mediatek/mediatek,vencltsys.txt b/Bindings/arm/mediatek/mediatek,vencltsys.txt
deleted file mode 100644 (file)
index 3cc299f..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-Mediatek vencltsys controller
-============================
-
-The Mediatek vencltsys controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be:
-       - "mediatek,mt8173-vencltsys", "syscon"
-- #clock-cells: Must be 1
-
-The vencltsys controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-vencltsys: clock-controller@19000000 {
-       compatible = "mediatek,mt8173-vencltsys", "syscon";
-       reg = <0 0x19000000 0 0x1000>;
-       #clock-cells = <1>;
-};
diff --git a/Bindings/arm/mediatek/mediatek,vencsys.txt b/Bindings/arm/mediatek/mediatek,vencsys.txt
deleted file mode 100644 (file)
index 6a6a14e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-Mediatek vencsys controller
-============================
-
-The Mediatek vencsys controller provides various clocks to the system.
-
-Required Properties:
-
-- compatible: Should be one of:
-       - "mediatek,mt2712-vencsys", "syscon"
-       - "mediatek,mt6779-vencsys", "syscon"
-       - "mediatek,mt6797-vencsys", "syscon"
-       - "mediatek,mt8173-vencsys", "syscon"
-       - "mediatek,mt8183-vencsys", "syscon"
-- #clock-cells: Must be 1
-
-The vencsys controller uses the common clk binding from
-Documentation/devicetree/bindings/clock/clock-bindings.txt
-The available clocks are defined in dt-bindings/clock/mt*-clk.h.
-
-Example:
-
-vencsys: clock-controller@18000000 {
-       compatible = "mediatek,mt8173-vencsys", "syscon";
-       reg = <0 0x18000000 0 0x1000>;
-       #clock-cells = <1>;
-};
index f08e13b611728f9024c5aba8aa71d7a463c3d4ea..5cb54d69af0b7206e0f6a66023a203b8d7087696 100644 (file)
@@ -155,6 +155,11 @@ properties:
           - const: qcom,msm8926
           - const: qcom,msm8226
 
+      - items:
+          - enum:
+              - wingtech,wt82918hd
+          - const: qcom,msm8929
+
       - items:
           - enum:
               - huawei,kiwi
@@ -162,6 +167,8 @@ properties:
               - samsung,a7
               - sony,kanuti-tulip
               - square,apq8039-t2
+              - wingtech,wt82918
+              - wingtech,wt82918hdhw39
           - const: qcom,msm8939
 
       - items:
@@ -228,12 +235,15 @@ properties:
               - samsung,grandprimelte
               - samsung,gt510
               - samsung,gt58
+              - samsung,j3ltetw
               - samsung,j5
               - samsung,j5x
               - samsung,rossa
               - samsung,serranove
               - thwc,uf896
               - thwc,ufi001c
+              - wingtech,wt86518
+              - wingtech,wt86528
               - wingtech,wt88047
               - yiming,uz801-v3
           - const: qcom,msm8916
@@ -250,6 +260,7 @@ properties:
       - items:
           - enum:
               - lg,bullhead
+              - lg,h815
               - microsoft,talkman
               - xiaomi,libra
           - const: qcom,msm8992
@@ -1038,10 +1049,18 @@ properties:
               - qcom,sm8650-qrd
           - const: qcom,sm8650
 
+      - items:
+          - enum:
+              - lenovo,thinkpad-t14s
+          - const: qcom,x1e78100
+          - const: qcom,x1e80100
+
       - items:
           - enum:
               - asus,vivobook-s15
               - lenovo,yoga-slim7x
+              - microsoft,romulus13
+              - microsoft,romulus15
               - qcom,x1e80100-crd
               - qcom,x1e80100-qcp
           - const: qcom,x1e80100
index 1ef09fbfdfaf507026461945f29ab93bdc6d893b..687823e58c2257c2e648066a8e8c1e64f6611472 100644 (file)
@@ -96,6 +96,13 @@ properties:
           - const: coolpi,pi-cm5
           - const: rockchip,rk3588
 
+      - description: Cool Pi CM5 GenBook
+        items:
+          - enum:
+              - coolpi,pi-cm5-genbook
+          - const: coolpi,pi-cm5
+          - const: rockchip,rk3588
+
       - description: Cool Pi 4 Model B
         items:
           - const: coolpi,pi-4b
@@ -148,6 +155,12 @@ properties:
           - const: engicam,px30-core
           - const: rockchip,px30
 
+      - description: Firefly Core-PX30-JD4 on MB-JD4-PX30 baseboard
+        items:
+          - const: firefly,px30-jd4-core-mb
+          - const: firefly,px30-jd4-core
+          - const: rockchip,px30
+
       - description: Firefly Firefly-RK3288
         items:
           - enum:
@@ -216,6 +229,7 @@ properties:
               - friendlyarm,nanopi-r2c
               - friendlyarm,nanopi-r2c-plus
               - friendlyarm,nanopi-r2s
+              - friendlyarm,nanopi-r2s-plus
           - const: rockchip,rk3328
 
       - description: FriendlyElec NanoPi4 series boards
@@ -243,9 +257,11 @@ properties:
               - friendlyarm,nanopi-r6s
           - const: rockchip,rk3588s
 
-      - description: FriendlyElec NanoPC T6
+      - description: FriendlyElec NanoPC T6 series boards
         items:
-          - const: friendlyarm,nanopc-t6
+          - enum:
+              - friendlyarm,nanopc-t6
+              - friendlyarm,nanopc-t6-lts
           - const: rockchip,rk3588
 
       - description: FriendlyElec CM3588-based boards
@@ -255,6 +271,11 @@ properties:
           - const: friendlyarm,cm3588
           - const: rockchip,rk3588
 
+      - description: GameForce Ace
+        items:
+          - const: gameforce,ace
+          - const: rockchip,rk3588s
+
       - description: GameForce Chi
         items:
           - const: gameforce,chi
@@ -581,9 +602,19 @@ properties:
 
       - description: Hardkernel Odroid M1
         items:
-          - const: rockchip,rk3568-odroid-m1
+          - const: hardkernel,odroid-m1
           - const: rockchip,rk3568
 
+      - description: Hardkernel Odroid M1S
+        items:
+          - const: hardkernel,odroid-m1s
+          - const: rockchip,rk3566
+
+      - description: Hardkernel Odroid M2
+        items:
+          - const: hardkernel,odroid-m2
+          - const: rockchip,rk3588s
+
       - description: Hugsun X99 TV Box
         items:
           - const: hugsun,x99
@@ -622,6 +653,11 @@ properties:
           - const: leez,p710
           - const: rockchip,rk3399
 
+      - description: LCKFB Taishan Pi RK3566
+        items:
+          - const: lckfb,tspi-rk3566
+          - const: rockchip,rk3566
+
       - description: Lunzn FastRhino R66S / R68S
         items:
           - enum:
index b79c81cd9f0e65f04e46690f3192502a8437e34e..932f981265ccbffd160fe22ffd8791949cd7a0af 100644 (file)
@@ -26,6 +26,7 @@ select:
           - rockchip,rk3368-pmu
           - rockchip,rk3399-pmu
           - rockchip,rk3568-pmu
+          - rockchip,rk3576-pmu
           - rockchip,rk3588-pmu
           - rockchip,rv1126-pmu
 
@@ -43,6 +44,7 @@ properties:
           - rockchip,rk3368-pmu
           - rockchip,rk3399-pmu
           - rockchip,rk3568-pmu
+          - rockchip,rk3576-pmu
           - rockchip,rk3588-pmu
           - rockchip,rv1126-pmu
       - const: syscon
index 58099949e8f3aa57d1572c005d3732c4cc037e18..703d4b574398d2768924df8d4bd844e486aa5abf 100644 (file)
@@ -54,6 +54,8 @@ properties:
       - description: ST STM32MP151 based Boards
         items:
           - enum:
+              - prt,mecio1r0 # Protonic MECIO1r0
+              - prt,mect1s   # Protonic MECT1S
               - prt,prtt1a   # Protonic PRTT1A
               - prt,prtt1c   # Protonic PRTT1C
               - prt,prtt1s   # Protonic PRTT1S
@@ -71,6 +73,12 @@ properties:
           - const: dh,stm32mp151a-dhcor-som
           - const: st,stm32mp151
 
+      - description: ST STM32MP153 based Boards
+        items:
+          - enum:
+              - prt,mecio1r1   # Protonic MECIO1r1
+          - const: st,stm32mp153
+
       - description: DH STM32MP153 DHCOM SoM based Boards
         items:
           - const: dh,stm32mp153c-dhcom-drc02
index 09dc6f4249866a7cf5ae13cb86326497586ab47a..4aa15f3668e037c09b095d5b06f5803fa563a67b 100644 (file)
@@ -61,14 +61,19 @@ properties:
           - const: anbernic,rg35xx-2024
           - const: allwinner,sun50i-h700
 
+      - description: Anbernic RG35XX H
+        items:
+          - const: anbernic,rg35xx-h
+          - const: allwinner,sun50i-h700
+
       - description: Anbernic RG35XX Plus
         items:
           - const: anbernic,rg35xx-plus
           - const: allwinner,sun50i-h700
 
-      - description: Anbernic RG35XX H
+      - description: Anbernic RG35XX SP
         items:
-          - const: anbernic,rg35xx-h
+          - const: anbernic,rg35xx-sp
           - const: allwinner,sun50i-h700
 
       - description: Amarula A64 Relic
index 8fb4923517d00cd6d8a4f27d70fbaa7dadd63500..2889fd0e65921d957f66c405aaf5f9fc59f4105f 100644 (file)
@@ -127,6 +127,48 @@ properties:
               - nvidia,norrin
           - const: nvidia,tegra132
           - const: nvidia,tegra124
+      - items:
+          - const: google,nyan-blaze-rev10
+          - const: google,nyan-blaze-rev9
+          - const: google,nyan-blaze-rev8
+          - const: google,nyan-blaze-rev7
+          - const: google,nyan-blaze-rev6
+          - const: google,nyan-blaze-rev5
+          - const: google,nyan-blaze-rev4
+          - const: google,nyan-blaze-rev3
+          - const: google,nyan-blaze-rev2
+          - const: google,nyan-blaze-rev1
+          - const: google,nyan-blaze-rev0
+          - const: google,nyan-blaze
+          - const: google,nyan
+          - const: nvidia,tegra124
+      - items:
+          - const: google,nyan-big-rev10
+          - const: google,nyan-big-rev9
+          - const: google,nyan-big-rev8
+          - const: google,nyan-big-rev7
+          - const: google,nyan-big-rev6
+          - const: google,nyan-big-rev5
+          - const: google,nyan-big-rev4
+          - const: google,nyan-big-rev3
+          - const: google,nyan-big-rev2
+          - const: google,nyan-big-rev1
+          - const: google,nyan-big-rev0
+          - const: google,nyan-big
+          - const: google,nyan
+          - const: nvidia,tegra124
+      - items:
+          - const: google,nyan-big-rev7
+          - const: google,nyan-big-rev6
+          - const: google,nyan-big-rev5
+          - const: google,nyan-big-rev4
+          - const: google,nyan-big-rev3
+          - const: google,nyan-big-rev2
+          - const: google,nyan-big-rev1
+          - const: google,nyan-big-rev0
+          - const: google,nyan-big
+          - const: google,nyan
+          - const: nvidia,tegra124
       - items:
           - enum:
               - nvidia,darcy
index 4d9c5fbb4c265ee4e44c4fc70c545b901f7ae50d..5df99e361c2158d9fbc189a31e19d85e9b7ec9cc 100644 (file)
@@ -140,6 +140,7 @@ properties:
       - description: K3 J722S SoC and Boards
         items:
           - enum:
+              - beagle,am67a-beagley-ai
               - ti,j722s-evm
           - const: ti,j722s
 
index 358617115bb8ecebdf15ca6d806d0b10956ce190..ef19468e3022510bfc054d2ffe84e511e275405a 100644 (file)
@@ -30,6 +30,8 @@ select:
           - marvell,armada-3700-ahci
           - marvell,armada-8k-ahci
           - marvell,berlin2q-ahci
+          - qcom,apq8064-ahci
+          - qcom,ipq806x-ahci
           - socionext,uniphier-pro4-ahci
           - socionext,uniphier-pxs2-ahci
           - socionext,uniphier-pxs3-ahci
@@ -45,6 +47,8 @@ properties:
               - marvell,armada-8k-ahci
               - marvell,berlin2-ahci
               - marvell,berlin2q-ahci
+              - qcom,apq8064-ahci
+              - qcom,ipq806x-ahci
               - socionext,uniphier-pro4-ahci
               - socionext,uniphier-pxs2-ahci
               - socionext,uniphier-pxs3-ahci
@@ -64,11 +68,11 @@ properties:
 
   clocks:
     minItems: 1
-    maxItems: 3
+    maxItems: 5
 
   clock-names:
     minItems: 1
-    maxItems: 3
+    maxItems: 5
 
   interrupts:
     maxItems: 1
@@ -97,6 +101,31 @@ required:
 
 allOf:
   - $ref: ahci-common.yaml#
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,apq8064-ahci
+              - qcom,ipq806x-ahci
+    then:
+      properties:
+        clocks:
+          minItems: 5
+        clock-names:
+          items:
+            - const: slave_iface
+            - const: iface
+            - const: core
+            - const: rxoob
+            - const: pmalive
+      required:
+        - phys
+        - phy-names
+        - clocks
+        - clock-names
+
   - if:
       properties:
         compatible:
diff --git a/Bindings/ata/cirrus,ep9312-pata.yaml b/Bindings/ata/cirrus,ep9312-pata.yaml
new file mode 100644 (file)
index 0000000..8130923
--- /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/ata/cirrus,ep9312-pata.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic EP9312 PATA controller
+
+maintainers:
+  - Damien Le Moal <dlemoal@kernel.org>
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9312-pata
+      - items:
+          - const: cirrus,ep9315-pata
+          - const: cirrus,ep9312-pata
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    ide@800a0000 {
+        compatible = "cirrus,ep9312-pata";
+        reg = <0x800a0000 0x38>;
+        interrupt-parent = <&vic1>;
+        interrupts = <8>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&ide_default_pins>;
+    };
index 68ffb97ddc9b2f230b3c755dc7f8b01e5f2dc0fc..f4eb3550a0960ca096edd5c7b25bf1174e2c354f 100644 (file)
@@ -19,6 +19,7 @@ properties:
       - fsl,imx53-ahci
       - fsl,imx6q-ahci
       - fsl,imx6qp-ahci
+      - fsl,imx8qm-ahci
 
   reg:
     maxItems: 1
@@ -27,12 +28,14 @@ properties:
     maxItems: 1
 
   clocks:
+    minItems: 2
     items:
       - description: sata clock
       - description: sata reference clock
       - description: ahb clock
 
   clock-names:
+    minItems: 2
     items:
       - const: sata
       - const: sata_ref
@@ -58,6 +61,25 @@ properties:
     $ref: /schemas/types.yaml#/definitions/flag
     description: if present, disable spread-spectrum clocking on the SATA link.
 
+  phys:
+    items:
+      - description: phandle to SATA PHY.
+          Since "REXT" pin is only present for first lane of i.MX8QM PHY, it's
+          calibration result will be stored, passed through second lane, and
+          shared with all three lanes PHY. The first two lanes PHY are used as
+          calibration PHYs, although only the third lane PHY is used by SATA.
+      - description: phandle to the first lane PHY of i.MX8QM.
+      - description: phandle to the second lane PHY of i.MX8QM.
+
+  phy-names:
+    items:
+      - const: sata-phy
+      - const: cali-phy0
+      - const: cali-phy1
+
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
@@ -65,6 +87,31 @@ required:
   - clocks
   - clock-names
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx53-ahci
+              - fsl,imx6q-ahci
+              - fsl,imx6qp-ahci
+    then:
+      properties:
+        clock-names:
+          minItems: 3
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx8qm-ahci
+    then:
+      properties:
+        clock-names:
+          minItems: 2
+
 additionalProperties: false
 
 examples:
diff --git a/Bindings/ata/qcom-sata.txt b/Bindings/ata/qcom-sata.txt
deleted file mode 100644 (file)
index 094de91..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-* Qualcomm AHCI SATA Controller
-
-SATA nodes are defined to describe on-chip Serial ATA controllers.
-Each SATA controller should have its own node.
-
-Required properties:
-- compatible           : compatible list, must contain "generic-ahci"
-- interrupts           : <interrupt mapping for SATA IRQ>
-- reg                  : <registers mapping>
-- phys                 : Must contain exactly one entry as specified
-                         in phy-bindings.txt
-- phy-names            : Must be "sata-phy"
-
-Required properties for "qcom,ipq806x-ahci" compatible:
-- clocks               : Must contain an entry for each entry in clock-names.
-- clock-names          : Shall be:
-                               "slave_iface" - Fabric port AHB clock for SATA
-                               "iface" - AHB clock
-                               "core" - core clock
-                               "rxoob" - RX out-of-band clock
-                               "pmalive" - Power Module Alive clock
-- assigned-clocks      : Shall be:
-                               SATA_RXOOB_CLK
-                               SATA_PMALIVE_CLK
-- assigned-clock-rates : Shall be:
-                               100Mhz (100000000) for SATA_RXOOB_CLK
-                               100Mhz (100000000) for SATA_PMALIVE_CLK
-
-Example:
-       sata@29000000 {
-               compatible = "qcom,ipq806x-ahci", "generic-ahci";
-               reg = <0x29000000 0x180>;
-
-               interrupts = <0 209 0x0>;
-
-               clocks = <&gcc SFAB_SATA_S_H_CLK>,
-                        <&gcc SATA_H_CLK>,
-                        <&gcc SATA_A_CLK>,
-                        <&gcc SATA_RXOOB_CLK>,
-                        <&gcc SATA_PMALIVE_CLK>;
-               clock-names = "slave_iface", "iface", "core",
-                               "rxoob", "pmalive";
-               assigned-clocks = <&gcc SATA_RXOOB_CLK>, <&gcc SATA_PMALIVE_CLK>;
-               assigned-clock-rates = <100000000>, <100000000>;
-
-               phys = <&sata_phy>;
-               phy-names = "sata-phy";
-       };
diff --git a/Bindings/board/fsl,bcsr.yaml b/Bindings/board/fsl,bcsr.yaml
new file mode 100644 (file)
index 0000000..df3dd83
--- /dev/null
@@ -0,0 +1,32 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/board/fsl,bcsr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Board Control and Status
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    enum:
+      - fsl,mpc8360mds-bcsr
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    board@f8000000 {
+        compatible = "fsl,mpc8360mds-bcsr";
+        reg = <0xf8000000 0x8000>;
+    };
+
diff --git a/Bindings/board/fsl,fpga-qixis-i2c.yaml b/Bindings/board/fsl,fpga-qixis-i2c.yaml
new file mode 100644 (file)
index 0000000..28b3777
--- /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/board/fsl,fpga-qixis-i2c.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale on-board FPGA connected on I2C bus
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - fsl,bsc9132qds-fpga
+          - const: fsl,fpga-qixis-i2c
+      - items:
+          - enum:
+              - fsl,ls1028aqds-fpga
+              - fsl,lx2160aqds-fpga
+          - const: fsl,fpga-qixis-i2c
+          - const: simple-mfd
+
+  interrupts:
+    maxItems: 1
+
+  reg:
+    maxItems: 1
+
+  mux-controller:
+    $ref: /schemas/mux/reg-mux.yaml
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        board-control@66 {
+            compatible = "fsl,bsc9132qds-fpga", "fsl,fpga-qixis-i2c";
+            reg = <0x66>;
+        };
+    };
+
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        board-control@66 {
+            compatible = "fsl,ls1028aqds-fpga", "fsl,fpga-qixis-i2c",
+                         "simple-mfd";
+            reg = <0x66>;
+
+            mux-controller {
+                compatible = "reg-mux";
+                #mux-control-cells = <1>;
+                mux-reg-masks = <0x54 0xf0>; /* 0: reg 0x54, bits 7:4 */
+            };
+        };
+    };
+
diff --git a/Bindings/board/fsl,fpga-qixis.yaml b/Bindings/board/fsl,fpga-qixis.yaml
new file mode 100644 (file)
index 0000000..5a3cd43
--- /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/board/fsl,fpga-qixis.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale on-board FPGA/CPLD
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: fsl,p1022ds-fpga
+          - const: fsl,fpga-ngpixis
+      - items:
+          - enum:
+              - fsl,ls1088aqds-fpga
+              - fsl,ls1088ardb-fpga
+              - fsl,ls2080aqds-fpga
+              - fsl,ls2080ardb-fpga
+          - const: fsl,fpga-qixis
+      - items:
+          - enum:
+              - fsl,ls1043aqds-fpga
+              - fsl,ls1043ardb-fpga
+              - fsl,ls1046aqds-fpga
+              - fsl,ls1046ardb-fpga
+              - fsl,ls208xaqds-fpga
+          - const: fsl,fpga-qixis
+          - const: simple-mfd
+      - enum:
+          - fsl,ls1043ardb-cpld
+          - fsl,ls1046ardb-cpld
+          - fsl,t1040rdb-cpld
+          - fsl,t1042rdb-cpld
+          - fsl,t1042rdb_pi-cpld
+
+  interrupts:
+    maxItems: 1
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  ranges:
+    maxItems: 1
+
+patternProperties:
+  '^mdio-mux@[a-f0-9,]+$':
+    $ref: /schemas/net/mdio-mux-mmioreg.yaml
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    board-control@3 {
+        compatible = "fsl,p1022ds-fpga", "fsl,fpga-ngpixis";
+        reg = <3 0x30>;
+        interrupt-parent = <&mpic>;
+        interrupts = <8 IRQ_TYPE_LEVEL_LOW 0 0>;
+    };
+
+  - |
+    board-control@3 {
+        compatible = "fsl,ls2080ardb-fpga", "fsl,fpga-qixis";
+        reg = <0x3 0x10000>;
+    };
+
diff --git a/Bindings/board/fsl-board.txt b/Bindings/board/fsl-board.txt
deleted file mode 100644 (file)
index 9cde570..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-Freescale Reference Board Bindings
-
-This document describes device tree bindings for various devices that
-exist on some Freescale reference boards.
-
-* Board Control and Status (BCSR)
-
-Required properties:
-
- - compatible : Should be "fsl,<board>-bcsr"
- - reg : Offset and length of the register set for the device
-
-Example:
-
-       bcsr@f8000000 {
-               compatible = "fsl,mpc8360mds-bcsr";
-               reg = <f8000000 8000>;
-       };
-
-* Freescale on-board FPGA
-
-This is the memory-mapped registers for on board FPGA.
-
-Required properties:
-- compatible: should be a board-specific string followed by a string
-  indicating the type of FPGA.  Example:
-       "fsl,<board>-fpga", "fsl,fpga-pixis", or
-       "fsl,<board>-fpga", "fsl,fpga-qixis"
-- reg: should contain the address and the length of the FPGA register set.
-
-Optional properties:
-- interrupts: should specify event (wakeup) IRQ.
-
-Example (P1022DS):
-
-        board-control@3,0 {
-                compatible = "fsl,p1022ds-fpga", "fsl,fpga-ngpixis";
-                reg = <3 0 0x30>;
-                interrupt-parent = <&mpic>;
-                interrupts = <8 8 0 0>;
-        };
-
-Example (LS2080A-RDB):
-
-        cpld@3,0 {
-                compatible = "fsl,ls2080ardb-fpga", "fsl,fpga-qixis";
-                reg = <0x3 0 0x10000>;
-        };
-
-* Freescale on-board FPGA connected on I2C bus
-
-Some Freescale boards like BSC9132QDS have on board FPGA connected on
-the i2c bus.
-
-Required properties:
-- compatible: Should be a board-specific string followed by a string
-  indicating the type of FPGA.  Example:
-       "fsl,<board>-fpga", "fsl,fpga-qixis-i2c"
-- reg: Should contain the address of the FPGA
-
-Example:
-       fpga: fpga@66 {
-               compatible = "fsl,bsc9132qds-fpga", "fsl,fpga-qixis-i2c";
-               reg = <0x66>;
-       };
-
-* Freescale on-board CPLD
-
-Some Freescale boards like T1040RDB have an on board CPLD connected.
-
-Required properties:
-- compatible: Should be a board-specific string like "fsl,<board>-cpld"
-  Example:
-       "fsl,t1040rdb-cpld", "fsl,t1042rdb-cpld", "fsl,t1042rdb_pi-cpld"
-- reg: should describe CPLD registers
-
-Example:
-       cpld@3,0 {
-               compatible = "fsl,t1040rdb-cpld";
-               reg = <3 0 0x300>;
-       };
diff --git a/Bindings/bus/qcom,ebi2.txt b/Bindings/bus/qcom,ebi2.txt
deleted file mode 100644 (file)
index 5058aa2..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-Qualcomm External Bus Interface 2 (EBI2)
-
-The EBI2 contains two peripheral blocks: XMEM and LCDC. The XMEM handles any
-external memory (such as NAND or other memory-mapped peripherals) whereas
-LCDC handles LCD displays.
-
-As it says it connects devices to an external bus interface, meaning address
-lines (up to 9 address lines so can only address 1KiB external memory space),
-data lines (16 bits), OE (output enable), ADV (address valid, used on some
-NOR flash memories), WE (write enable). This on top of 6 different chip selects
-(CS0 thru CS5) so that in theory 6 different devices can be connected.
-
-Apparently this bus is clocked at 64MHz. It has dedicated pins on the package
-and the bus can only come out on these pins, however if some of the pins are
-unused they can be left unconnected or remuxed to be used as GPIO or in some
-cases other orthogonal functions as well.
-
-Also CS1 and CS2 has -A and -B signals. Why they have that is unclear to me.
-
-The chip selects have the following memory range assignments. This region of
-memory is referred to as "Chip Peripheral SS FPB0" and is 168MB big.
-
-Chip Select                     Physical address base
-CS0 GPIO134                     0x1a800000-0x1b000000 (8MB)
-CS1 GPIO39 (A) / GPIO123 (B)    0x1b000000-0x1b800000 (8MB)
-CS2 GPIO40 (A) / GPIO124 (B)    0x1b800000-0x1c000000 (8MB)
-CS3 GPIO133                     0x1d000000-0x25000000 (128 MB)
-CS4 GPIO132                     0x1c800000-0x1d000000 (8MB)
-CS5 GPIO131                     0x1c000000-0x1c800000 (8MB)
-
-The APQ8060 Qualcomm Application Processor User Guide, 80-N7150-14 Rev. A,
-August 6, 2012 contains some incomplete documentation of the EBI2.
-
-FIXME: the manual mentions "write precharge cycles" and "precharge cycles".
-We have not been able to figure out which bit fields these correspond to
-in the hardware, or what valid values exist. The current hypothesis is that
-this is something just used on the FAST chip selects and that the SLOW
-chip selects are understood fully. There is also a "byte device enable"
-flag somewhere for 8bit memories.
-
-FIXME: The chipselects have SLOW and FAST configuration registers. It's a bit
-unclear what this means, if they are mutually exclusive or can be used
-together, or if some chip selects are hardwired to be FAST and others are SLOW
-by design.
-
-The XMEM registers are totally undocumented but could be partially decoded
-because the Cypress AN49576 Antioch Westbridge apparently has suspiciously
-similar register layout, see: http://www.cypress.com/file/105771/download
-
-Required properties:
-- compatible: should be one of:
-  "qcom,msm8660-ebi2"
-  "qcom,apq8060-ebi2"
-- #address-cells: should be <2>: the first cell is the chipselect,
-  the second cell is the offset inside the memory range
-- #size-cells: should be <1>
-- ranges: should be set to:
-  ranges = <0 0x0 0x1a800000 0x00800000>,
-           <1 0x0 0x1b000000 0x00800000>,
-           <2 0x0 0x1b800000 0x00800000>,
-           <3 0x0 0x1d000000 0x08000000>,
-           <4 0x0 0x1c800000 0x00800000>,
-           <5 0x0 0x1c000000 0x00800000>;
-- reg: two ranges of registers: EBI2 config and XMEM config areas
-- reg-names: should be "ebi2", "xmem"
-- clocks: two clocks, EBI_2X and EBI
-- clock-names: should be "ebi2x", "ebi2"
-
-Optional subnodes:
-- Nodes inside the EBI2 will be considered device nodes.
-
-The following optional properties are properties that can be tagged onto
-any device subnode. We are assuming that there can be only ONE device per
-chipselect subnode, else the properties will become ambiguous.
-
-Optional properties arrays for SLOW chip selects:
-- qcom,xmem-recovery-cycles: recovery cycles is the time the memory continues to
-  drive the data bus after OE is de-asserted, in order to avoid contention on
-  the data bus. They are inserted when reading one CS and switching to another
-  CS or read followed by write on the same CS. Valid values 0 thru 15. Minimum
-  value is actually 1, so a value of 0 will still yield 1 recovery cycle.
-- qcom,xmem-write-hold-cycles: write hold cycles, these are extra cycles
-  inserted after every write minimum 1. The data out is driven from the time
-  WE is asserted until CS is asserted. With a hold of 1 (value = 0), the CS
-  stays active for 1 extra cycle etc. Valid values 0 thru 15.
-- qcom,xmem-write-delta-cycles: initial latency for write cycles inserted for
-  the first write to a page or burst memory. Valid values 0 thru 255.
-- qcom,xmem-read-delta-cycles: initial latency for read cycles inserted for the
-  first read to a page or burst memory. Valid values 0 thru 255.
-- qcom,xmem-write-wait-cycles: number of wait cycles for every write access, 0=1
-  cycle. Valid values 0 thru 15.
-- qcom,xmem-read-wait-cycles: number of wait cycles for every read access, 0=1
-  cycle. Valid values 0 thru 15.
-
-Optional properties arrays for FAST chip selects:
-- qcom,xmem-address-hold-enable: this is a boolean property stating that we
-  shall hold the address for an extra cycle to meet hold time requirements
-  with ADV assertion.
-- qcom,xmem-adv-to-oe-recovery-cycles: the number of cycles elapsed before an OE
-  assertion, with respect to the cycle where ADV (address valid) is asserted.
-  2 means 2 cycles between ADV and OE. Valid values 0, 1, 2 or 3.
-- qcom,xmem-read-hold-cycles: the length in cycles of the first segment of a
-  read transfer. For a single read transfer this will be the time from CS
-  assertion to OE assertion. Valid values 0 thru 15.
-
-
-Example:
-
-ebi2@1a100000 {
-       compatible = "qcom,apq8060-ebi2";
-       #address-cells = <2>;
-       #size-cells = <1>;
-       ranges = <0 0x0 0x1a800000 0x00800000>,
-                <1 0x0 0x1b000000 0x00800000>,
-                <2 0x0 0x1b800000 0x00800000>,
-                <3 0x0 0x1d000000 0x08000000>,
-                <4 0x0 0x1c800000 0x00800000>,
-                <5 0x0 0x1c000000 0x00800000>;
-       reg = <0x1a100000 0x1000>, <0x1a110000 0x1000>;
-       reg-names = "ebi2", "xmem";
-       clocks = <&gcc EBI2_2X_CLK>, <&gcc EBI2_CLK>;
-       clock-names = "ebi2x", "ebi2";
-       /* Make sure to set up the pin control for the EBI2 */
-       pinctrl-names = "default";
-       pinctrl-0 = <&foo_ebi2_pins>;
-
-       foo-ebi2@2,0 {
-               compatible = "foo";
-               reg = <2 0x0 0x100>;
-               (...)
-               qcom,xmem-recovery-cycles = <0>;
-               qcom,xmem-write-hold-cycles = <3>;
-               qcom,xmem-write-delta-cycles = <31>;
-               qcom,xmem-read-delta-cycles = <28>;
-               qcom,xmem-write-wait-cycles = <9>;
-               qcom,xmem-read-wait-cycles = <9>;
-       };
-};
diff --git a/Bindings/bus/qcom,ebi2.yaml b/Bindings/bus/qcom,ebi2.yaml
new file mode 100644 (file)
index 0000000..1b1fb35
--- /dev/null
@@ -0,0 +1,239 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bus/qcom,ebi2.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm External Bus Interface 2 (EBI2)
+
+description: |
+  The EBI2 contains two peripheral blocks: XMEM and LCDC. The XMEM handles any
+  external memory (such as NAND or other memory-mapped peripherals) whereas
+  LCDC handles LCD displays.
+
+  As it says it connects devices to an external bus interface, meaning address
+  lines (up to 9 address lines so can only address 1KiB external memory space),
+  data lines (16 bits), OE (output enable), ADV (address valid, used on some
+  NOR flash memories), WE (write enable). This on top of 6 different chip selects
+  (CS0 thru CS5) so that in theory 6 different devices can be connected.
+
+  Apparently this bus is clocked at 64MHz. It has dedicated pins on the package
+  and the bus can only come out on these pins, however if some of the pins are
+  unused they can be left unconnected or remuxed to be used as GPIO or in some
+  cases other orthogonal functions as well.
+
+  Also CS1 and CS2 has -A and -B signals. Why they have that is unclear to me.
+
+  The chip selects have the following memory range assignments. This region of
+  memory is referred to as "Chip Peripheral SS FPB0" and is 168MB big.
+
+  Chip Select                     Physical address base
+  CS0 GPIO134                     0x1a800000-0x1b000000 (8MB)
+  CS1 GPIO39 (A) / GPIO123 (B)    0x1b000000-0x1b800000 (8MB)
+  CS2 GPIO40 (A) / GPIO124 (B)    0x1b800000-0x1c000000 (8MB)
+  CS3 GPIO133                     0x1d000000-0x25000000 (128 MB)
+  CS4 GPIO132                     0x1c800000-0x1d000000 (8MB)
+  CS5 GPIO131                     0x1c000000-0x1c800000 (8MB)
+
+  The APQ8060 Qualcomm Application Processor User Guide, 80-N7150-14 Rev. A,
+  August 6, 2012 contains some incomplete documentation of the EBI2.
+
+  FIXME: the manual mentions "write precharge cycles" and "precharge cycles".
+  We have not been able to figure out which bit fields these correspond to
+  in the hardware, or what valid values exist. The current hypothesis is that
+  this is something just used on the FAST chip selects and that the SLOW
+  chip selects are understood fully. There is also a "byte device enable"
+  flag somewhere for 8bit memories.
+
+  FIXME: The chipselects have SLOW and FAST configuration registers. It's a bit
+  unclear what this means, if they are mutually exclusive or can be used
+  together, or if some chip selects are hardwired to be FAST and others are SLOW
+  by design.
+
+  The XMEM registers are totally undocumented but could be partially decoded
+  because the Cypress AN49576 Antioch Westbridge apparently has suspiciously
+  similar register layout, see: http://www.cypress.com/file/105771/download
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - qcom,apq8060-ebi2
+      - qcom,msm8660-ebi2
+
+  reg:
+    items:
+      - description: EBI2 config region
+      - description: XMEM config region
+
+  reg-names:
+    items:
+      - const: ebi2
+      - const: xmem
+
+  ranges: true
+
+  clocks:
+    items:
+      - description: EBI_2X clock
+      - description: EBI clock
+
+  clock-names:
+    items:
+      - const: ebi2x
+      - const: ebi2
+
+  '#address-cells':
+    const: 2
+
+  '#size-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - ranges
+  - clocks
+  - clock-names
+  - '#address-cells'
+  - '#size-cells'
+
+patternProperties:
+  "^.*@[0-5],[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+    properties:
+      reg:
+        maxItems: 1
+
+      # SLOW chip selects
+      qcom,xmem-recovery-cycles:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description: >
+          The time the memory continues to drive the data bus after OE
+          is de-asserted, in order to avoid contention on the data bus.
+          They are inserted when reading one CS and switching to another
+          CS or read followed by write on the same CS. Minimum value is
+          actually 1, so a value of 0 will still yield 1 recovery cycle.
+        minimum: 0
+        maximum: 15
+
+      qcom,xmem-write-hold-cycles:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description: >
+          The extra cycles inserted after every write minimum 1. The
+          data out is driven from the time WE is asserted until CS is
+          asserted. With a hold of 1 (value = 0), the CS stays active
+          for 1 extra cycle, etc.
+        minimum: 0
+        maximum: 15
+
+      qcom,xmem-write-delta-cycles:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description: >
+          The initial latency for write cycles inserted for the first
+          write to a page or burst memory.
+        minimum: 0
+        maximum: 255
+
+      qcom,xmem-read-delta-cycles:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description: >
+          The initial latency for read cycles inserted for the first
+          read to a page or burst memory.
+        minimum: 0
+        maximum: 255
+
+      qcom,xmem-write-wait-cycles:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description: >
+          The number of wait cycles for every write access.
+        minimum: 0
+        maximum: 15
+
+      qcom,xmem-read-wait-cycles:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description: >
+          The number of wait cycles for every read access.
+        minimum: 0
+        maximum: 15
+
+
+      # FAST chip selects
+      qcom,xmem-address-hold-enable:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description: >
+          Holds the address for an extra cycle to meet hold time
+          requirements with ADV assertion, when set to 1.
+        enum: [ 0, 1 ]
+
+      qcom,xmem-adv-to-oe-recovery-cycles:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description: >
+          The number of cycles elapsed before an OE assertion, with
+          respect to the cycle where ADV (address valid) is asserted.
+        minimum: 0
+        maximum: 3
+
+      qcom,xmem-read-hold-cycles:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description: >
+          The length in cycles of the first segment of a read transfer.
+          For a single read transfer this will be the time from CS
+          assertion to OE assertion.
+        minimum: 0
+        maximum: 15
+
+    required:
+      - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-msm8660.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    external-bus@1a100000 {
+        compatible = "qcom,msm8660-ebi2";
+        reg = <0x1a100000 0x1000>, <0x1a110000 0x1000>;
+        reg-names = "ebi2", "xmem";
+        ranges = <0 0x0 0x1a800000 0x00800000>,
+                 <1 0x0 0x1b000000 0x00800000>,
+                 <2 0x0 0x1b800000 0x00800000>,
+                 <3 0x0 0x1d000000 0x08000000>,
+                 <4 0x0 0x1c800000 0x00800000>,
+                 <5 0x0 0x1c000000 0x00800000>;
+
+        clocks = <&gcc EBI2_2X_CLK>, <&gcc EBI2_CLK>;
+        clock-names = "ebi2x", "ebi2";
+
+        #address-cells = <2>;
+        #size-cells = <1>;
+
+        ethernet@2,0 {
+            compatible = "smsc,lan9221", "smsc,lan9115";
+            reg = <2 0x0 0x100>;
+
+            interrupts-extended = <&pm8058_gpio 7 IRQ_TYPE_EDGE_FALLING>,
+                                  <&tlmm 29 IRQ_TYPE_EDGE_RISING>;
+            reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
+
+            phy-mode = "mii";
+            reg-io-width = <2>;
+            smsc,force-external-phy;
+            smsc,irq-push-pull;
+
+            /* SLOW chipselect config */
+            qcom,xmem-recovery-cycles = <0>;
+            qcom,xmem-write-hold-cycles = <3>;
+            qcom,xmem-write-delta-cycles = <31>;
+            qcom,xmem-read-delta-cycles = <28>;
+            qcom,xmem-write-wait-cycles = <9>;
+            qcom,xmem-read-wait-cycles = <9>;
+        };
+    };
index 43de3c6fc1cffe0477e60a7d466035486f472189..700865cc9792a0c5b48adee831211215a57fa035 100644 (file)
@@ -24,11 +24,13 @@ properties:
     items:
       - description: input top pll
       - description: input mclk pll
+      - description: input fix pll
 
   clock-names:
     items:
       - const: top
       - const: mclk
+      - const: fix
 
   "#clock-cells":
     const: 1
@@ -52,8 +54,9 @@ examples:
             compatible = "amlogic,c3-pll-clkc";
             reg = <0x0 0x8000 0x0 0x1a4>;
             clocks = <&scmi_clk 2>,
-                     <&scmi_clk 5>;
-            clock-names = "top", "mclk";
+                     <&scmi_clk 5>,
+                     <&scmi_clk 12>;
+            clock-names = "top", "mclk", "fix";
             #clock-cells = <1>;
         };
     };
index c1bdcd9058edf0fb4f49df1178fd87665714b63f..c9eb60776b4d4cd0819be2b461748c4fd9a7654f 100644 (file)
@@ -42,6 +42,7 @@ properties:
               - atmel,sama5d3-pmc
               - atmel,sama5d4-pmc
               - microchip,sam9x60-pmc
+              - microchip,sam9x7-pmc
               - microchip,sama7g5-pmc
           - const: syscon
 
@@ -88,6 +89,7 @@ allOf:
           contains:
             enum:
               - microchip,sam9x60-pmc
+              - microchip,sam9x7-pmc
               - microchip,sama7g5-pmc
     then:
       properties:
index 7be29877e6d27f614d2685d24fd29df7d9b7f198..c2283cd07f05438ebff4462e3be5dcd7f854171f 100644 (file)
@@ -18,7 +18,9 @@ properties:
           - atmel,sama5d4-sckc
           - microchip,sam9x60-sckc
       - items:
-          - const: microchip,sama7g5-sckc
+          - enum:
+              - microchip,sam9x7-sckc
+              - microchip,sama7g5-sckc
           - const: microchip,sam9x60-sckc
 
   reg:
index bd4cefbb1244d48183fae6b999c856bca6e2de78..30252c95700c3923c03b4c178297d89856fb39b2 100644 (file)
@@ -134,9 +134,13 @@ properties:
   "#reset-cells":
     const: 1
 
-  clocks: true
+  clocks:
+    minItems: 3
+    maxItems: 4
 
-  clock-names: true
+  clock-names:
+    minItems: 3
+    maxItems: 4
 
 additionalProperties: false
 
index 59de125647ecb57a63de6d850c59e811689d410c..ccff74eda9fb9371456c1b3413afbb2b38207532 100644 (file)
@@ -67,9 +67,9 @@ properties:
     minItems: 1
     maxItems: 19
 
-  clocks: true
-  assigned-clocks: true
-  assigned-clock-parents: true
+  clocks:
+    minItems: 1
+    maxItems: 19
 
 additionalProperties: false
 
index a2c6eea9871d534d0da58b2a01e007dbe2ce337b..8b400da05fbefe4fe775b4939b1abc5ec7c511e6 100644 (file)
@@ -126,8 +126,6 @@ required:
   - compatible
   - reg
   - '#clock-cells'
-  - idt,shutdown
-  - idt,output-enable-active
 
 allOf:
   - if:
index 0a6dc1a6e122f7cc62c5cc1e5aebc580bc26e036..6588a17a7d9a5d874796ab2f62634e084d3929ef 100644 (file)
@@ -44,6 +44,9 @@ properties:
       ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mp-clock.h
       for the full list of i.MX8MP IMX8MP_CLK_AUDIOMIX_ clock IDs.
 
+  '#reset-cells':
+    const: 1
+
 required:
   - compatible
   - reg
index 685535846cbb7faf3f75dfde739e7a58332c36ed..db5f48e4dd157f429bc01e38b869712d12e05000 100644 (file)
@@ -35,7 +35,7 @@ properties:
               - mediatek,mt2701-apmixedsys
               - mediatek,mt2712-apmixedsys
               - mediatek,mt6765-apmixedsys
-              - mediatek,mt6779-apmixedsys
+              - mediatek,mt6779-apmixed
               - mediatek,mt6795-apmixedsys
               - mediatek,mt7629-apmixedsys
               - mediatek,mt8167-apmixedsys
similarity index 96%
rename from Bindings/arm/mediatek/mediatek,infracfg.yaml
rename to Bindings/clock/mediatek,infracfg.yaml
index 230b5188a88dbe5b0b042e14331989e234e56b2a..252c46d316ee55e99c14839f88936f2b6c1add16 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/arm/mediatek/mediatek,infracfg.yaml#
+$id: http://devicetree.org/schemas/clock/mediatek,infracfg.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: MediaTek Infrastructure System Configuration Controller
diff --git a/Bindings/clock/mediatek,mt6795-sys-clock.yaml b/Bindings/clock/mediatek,mt6795-sys-clock.yaml
deleted file mode 100644 (file)
index 378b761..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/clock/mediatek,mt6795-sys-clock.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: MediaTek System Clock Controller for MT6795
-
-maintainers:
-  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
-  - Chun-Jie Chen <chun-jie.chen@mediatek.com>
-
-description:
-  The Mediatek system clock controller provides various clocks and system
-  configuration like reset and bus protection on MT6795.
-
-properties:
-  compatible:
-    items:
-      - enum:
-          - mediatek,mt6795-apmixedsys
-          - mediatek,mt6795-infracfg
-          - mediatek,mt6795-pericfg
-          - mediatek,mt6795-topckgen
-      - const: syscon
-
-  reg:
-    maxItems: 1
-
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-required:
-  - compatible
-  - reg
-  - '#clock-cells'
-
-additionalProperties: false
-
-examples:
-  - |
-    soc {
-        #address-cells = <2>;
-        #size-cells = <2>;
-
-        topckgen: clock-controller@10000000 {
-            compatible = "mediatek,mt6795-topckgen", "syscon";
-            reg = <0 0x10000000 0 0x1000>;
-            #clock-cells = <1>;
-        };
-    };
similarity index 94%
rename from Bindings/arm/mediatek/mediatek,mt8186-clock.yaml
rename to Bindings/clock/mediatek,mt8186-clock.yaml
index 7cd14b163abe3542a5810f685997f6fd090aca2b..f4e58bfa504fb231473a1a50a507763da9d4eaad 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt8186-clock.yaml#
+$id: http://devicetree.org/schemas/clock/mediatek,mt8186-clock.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: MediaTek Functional Clock Controller for MT8186
similarity index 94%
rename from Bindings/arm/mediatek/mediatek,mt8186-sys-clock.yaml
rename to Bindings/clock/mediatek,mt8186-sys-clock.yaml
index 64c76941669077ba30c34ebd18521ed7935e3cb7..1c446fbc5108c16f770fb3a2b3991d7b815bb223 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt8186-sys-clock.yaml#
+$id: http://devicetree.org/schemas/clock/mediatek,mt8186-sys-clock.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: MediaTek System Clock Controller for MT8186
similarity index 98%
rename from Bindings/arm/mediatek/mediatek,mt8192-clock.yaml
rename to Bindings/clock/mediatek,mt8192-clock.yaml
index dff4c8e8fd4b0fbef903676bf13f6d2cebbec541..b8d690e28bdc9c3bf1f04031ae7ee30c7fc71af2 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt8192-clock.yaml#
+$id: http://devicetree.org/schemas/clock/mediatek,mt8192-clock.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: MediaTek Functional Clock Controller for MT8192
similarity index 94%
rename from Bindings/arm/mediatek/mediatek,mt8192-sys-clock.yaml
rename to Bindings/clock/mediatek,mt8192-sys-clock.yaml
index 8d608fddf3f9ee559e79924befcc62cec652686e..bf8c9aacdf1e73946e9bb345f197238663a3aef6 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt8192-sys-clock.yaml#
+$id: http://devicetree.org/schemas/clock/mediatek,mt8192-sys-clock.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: MediaTek System Clock Controller for MT8192
similarity index 98%
rename from Bindings/arm/mediatek/mediatek,mt8195-clock.yaml
rename to Bindings/clock/mediatek,mt8195-clock.yaml
index d17164b0b13ef2408fa492849187d454b6fd0e21..fcc963aff087637eb9cdc49611e4f51d8359c1c2 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt8195-clock.yaml#
+$id: http://devicetree.org/schemas/clock/mediatek,mt8195-clock.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: MediaTek Functional Clock Controller for MT8195
similarity index 95%
rename from Bindings/arm/mediatek/mediatek,mt8195-sys-clock.yaml
rename to Bindings/clock/mediatek,mt8195-sys-clock.yaml
index 066c9b3d6ac97801e169c75b85205b94ac40c604..69f096eb168d190f72db3fd1cc3d49547770b891 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt8195-sys-clock.yaml#
+$id: http://devicetree.org/schemas/clock/mediatek,mt8195-sys-clock.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: MediaTek System Clock Controller for MT8195
similarity index 96%
rename from Bindings/arm/mediatek/mediatek,pericfg.yaml
rename to Bindings/clock/mediatek,pericfg.yaml
index 33c94c491828e22042e88b691d128d6baaf6583a..2f06baecfd233417538cf4eec931c859a687cc64 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/arm/mediatek/mediatek,pericfg.yaml#
+$id: http://devicetree.org/schemas/clock/mediatek,pericfg.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: MediaTek Peripheral Configuration Controller
diff --git a/Bindings/clock/mediatek,syscon.yaml b/Bindings/clock/mediatek,syscon.yaml
new file mode 100644 (file)
index 0000000..10483e2
--- /dev/null
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/mediatek,syscon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Clock controller syscon's
+
+maintainers:
+  - Matthias Brugger <matthias.bgg@gmail.com>
+  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+
+description:
+  The MediaTek clock controller syscon's provide various clocks to the system.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - mediatek,mt2701-bdpsys
+              - mediatek,mt2701-imgsys
+              - mediatek,mt2701-vdecsys
+              - mediatek,mt2712-bdpsys
+              - mediatek,mt2712-imgsys
+              - mediatek,mt2712-jpgdecsys
+              - mediatek,mt2712-mcucfg
+              - mediatek,mt2712-mfgcfg
+              - mediatek,mt2712-vdecsys
+              - mediatek,mt2712-vencsys
+              - mediatek,mt6765-camsys
+              - mediatek,mt6765-imgsys
+              - mediatek,mt6765-mipi0a
+              - mediatek,mt6765-vcodecsys
+              - mediatek,mt6779-camsys
+              - mediatek,mt6779-imgsys
+              - mediatek,mt6779-ipesys
+              - mediatek,mt6779-mfgcfg
+              - mediatek,mt6779-vdecsys
+              - mediatek,mt6779-vencsys
+              - mediatek,mt6797-imgsys
+              - mediatek,mt6797-vdecsys
+              - mediatek,mt6797-vencsys
+              - mediatek,mt8167-imgsys
+              - mediatek,mt8167-mfgcfg
+              - mediatek,mt8167-vdecsys
+              - mediatek,mt8173-imgsys
+              - mediatek,mt8173-vdecsys
+              - mediatek,mt8173-vencltsys
+              - mediatek,mt8173-vencsys
+              - mediatek,mt8183-camsys
+              - mediatek,mt8183-imgsys
+              - mediatek,mt8183-ipu_conn
+              - mediatek,mt8183-ipu_adl
+              - mediatek,mt8183-ipu_core0
+              - mediatek,mt8183-ipu_core1
+              - mediatek,mt8183-mcucfg
+              - mediatek,mt8183-mfgcfg
+              - mediatek,mt8183-vdecsys
+              - mediatek,mt8183-vencsys
+          - const: syscon
+      - items:
+          - const: mediatek,mt7623-bdpsys
+          - const: mediatek,mt2701-bdpsys
+          - const: syscon
+      - items:
+          - const: mediatek,mt7623-imgsys
+          - const: mediatek,mt2701-imgsys
+          - const: syscon
+      - items:
+          - const: mediatek,mt7623-vdecsys
+          - const: mediatek,mt2701-vdecsys
+          - const: syscon
+
+  reg:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+required:
+  - compatible
+  - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@11220000 {
+        compatible = "mediatek,mt2701-bdpsys", "syscon";
+        reg = <0x11220000 0x2000>;
+        #clock-cells = <1>;
+    };
index 2dffc02dcd8b5e84e4e116fde415a1a5c2d9d55b..5dc360b2ea4b76501837b83721743c1eb63331ef 100644 (file)
@@ -16,6 +16,7 @@ properties:
           - nxp,imx95-lvds-csr
           - nxp,imx95-display-csr
           - nxp,imx95-camera-csr
+          - nxp,imx95-netcmix-blk-ctrl
           - nxp,imx95-vpu-csr
       - const: syscon
 
diff --git a/Bindings/clock/nxp,lpc3220-clk.txt b/Bindings/clock/nxp,lpc3220-clk.txt
deleted file mode 100644 (file)
index 20cbca3..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-NXP LPC32xx Clock Controller
-
-Required properties:
-- compatible: should be "nxp,lpc3220-clk"
-- reg:  should contain clock controller registers location and length
-- #clock-cells: must be 1, the cell holds id of a clock provided by the
-  clock controller
-- clocks: phandles of external oscillators, the list must contain one
-  32768 Hz oscillator and may have one optional high frequency oscillator
-- clock-names: list of external oscillator clock names, must contain
-  "xtal_32k" and may have optional "xtal"
-
-Examples:
-
-       /* System Control Block */
-       scb {
-               compatible = "simple-bus";
-               ranges = <0x0 0x040004000 0x00001000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               clk: clock-controller@0 {
-                       compatible = "nxp,lpc3220-clk";
-                       reg = <0x00 0x114>;
-                       #clock-cells = <1>;
-
-                       clocks = <&xtal_32k>, <&xtal>;
-                       clock-names = "xtal_32k", "xtal";
-               };
-       };
diff --git a/Bindings/clock/nxp,lpc3220-clk.yaml b/Bindings/clock/nxp,lpc3220-clk.yaml
new file mode 100644 (file)
index 0000000..16f7961
--- /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/clock/nxp,lpc3220-clk.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP LPC32xx Clock Controller
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+properties:
+  compatible:
+    const: nxp,lpc3220-clk
+
+  reg:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+  clocks:
+    minItems: 1
+    items:
+      - description: External 32768 Hz oscillator.
+      - description: Optional high frequency oscillator.
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: xtal_32k
+      - const: xtal
+
+required:
+  - compatible
+  - reg
+  - '#clock-cells'
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@0 {
+        compatible = "nxp,lpc3220-clk";
+        reg = <0x00 0x114>;
+        #clock-cells = <1>;
+        clocks = <&xtal_32k>, <&xtal>;
+        clock-names = "xtal_32k", "xtal";
+    };
diff --git a/Bindings/clock/nxp,lpc3220-usb-clk.txt b/Bindings/clock/nxp,lpc3220-usb-clk.txt
deleted file mode 100644 (file)
index 0aa2494..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-NXP LPC32xx USB Clock Controller
-
-Required properties:
-- compatible: should be "nxp,lpc3220-usb-clk"
-- reg:  should contain clock controller registers location and length
-- #clock-cells: must be 1, the cell holds id of a clock provided by the
-  USB clock controller
-
-Examples:
-
-       usb {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "simple-bus";
-               ranges = <0x0 0x31020000 0x00001000>;
-
-               usbclk: clock-controller@f00 {
-                       compatible = "nxp,lpc3220-usb-clk";
-                       reg = <0xf00 0x100>;
-                       #clock-cells = <1>;
-               };
-       };
diff --git a/Bindings/clock/nxp,lpc3220-usb-clk.yaml b/Bindings/clock/nxp,lpc3220-usb-clk.yaml
new file mode 100644 (file)
index 0000000..10361d2
--- /dev/null
@@ -0,0 +1,35 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/nxp,lpc3220-usb-clk.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP LPC32xx USB Clock Controller
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+properties:
+  compatible:
+    const: nxp,lpc3220-usb-clk
+
+  reg:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@f00 {
+        compatible = "nxp,lpc3220-usb-clk";
+        reg = <0xf00 0x100>;
+        #clock-cells = <1>;
+    };
index 5ca927a8b1d538a130421b51859fb59f1108bd18..47ceab641a4c7c51ad1ad24ee30a88cb92bc8a86 100644 (file)
@@ -21,6 +21,7 @@ properties:
       - qcom,ipq6018-a53pll
       - qcom,ipq8074-a53pll
       - qcom,ipq9574-a73pll
+      - qcom,msm8226-a7pll
       - qcom,msm8916-a53pll
       - qcom,msm8939-a53pll
 
@@ -40,6 +41,9 @@ properties:
 
   operating-points-v2: true
 
+  opp-table:
+    type: object
+
 required:
   - compatible
   - reg
index adc30d84fa8f0b7e5835b293fb178db89e84c55a..9193de681de2e788217c68c761a870db1c7cf85e 100644 (file)
@@ -31,6 +31,8 @@ properties:
       - description: USB PCIE wrapper pipe clock source
 
   '#power-domain-cells': false
+  '#interconnect-cells':
+    const: 1
 
 required:
   - compatible
diff --git a/Bindings/clock/qcom,qcs404-turingcc.yaml b/Bindings/clock/qcom,qcs404-turingcc.yaml
new file mode 100644 (file)
index 0000000..033e010
--- /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/clock/qcom,qcs404-turingcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Turing Clock & Reset Controller on QCS404
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+
+properties:
+  compatible:
+    const: qcom,qcs404-turingcc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - '#clock-cells'
+  - '#reset-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-qcs404.h>
+    clock-controller@800000 {
+        compatible = "qcom,qcs404-turingcc";
+        reg = <0x00800000 0x30000>;
+        clocks = <&gcc GCC_CDSP_CFG_AHB_CLK>;
+
+        #clock-cells = <1>;
+        #reset-cells = <1>;
+    };
index 3665dd30604a2fe3efadace76aa0a3bd4b0828c1..02fcffe93f1aa86305140bdc090f21a5503f9119 100644 (file)
@@ -139,7 +139,7 @@ examples:
   - |
     rpm {
         rpm-requests {
-            compatible = "qcom,rpm-msm8916";
+            compatible = "qcom,rpm-msm8916", "qcom,smd-rpm";
             qcom,smd-channels = "rpm_requests";
 
             clock-controller {
index 3326dcd6766c3407aeb7d3028bc95e5392653066..273d66e245c5fdc3611a8b0254c2c6434e14cd5e 100644 (file)
@@ -18,9 +18,16 @@ description: |
 
 properties:
   compatible:
-    enum:
-      - qcom,sc8280xp-lpassaudiocc
-      - qcom,sc8280xp-lpasscc
+    oneOf:
+      - enum:
+          - qcom,sc8280xp-lpassaudiocc
+          - qcom,sc8280xp-lpasscc
+      - items:
+          - const: qcom,x1e80100-lpassaudiocc
+          - const: qcom,sc8280xp-lpassaudiocc
+      - items:
+          - const: qcom,x1e80100-lpasscc
+          - const: qcom,sc8280xp-lpasscc
 
   reg:
     maxItems: 1
diff --git a/Bindings/clock/qcom,sm4450-camcc.yaml b/Bindings/clock/qcom,sm4450-camcc.yaml
new file mode 100644 (file)
index 0000000..f54ce86
--- /dev/null
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,sm4450-camcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Camera Clock & Reset Controller on SM4450
+
+maintainers:
+  - Ajit Pandey <quic_ajipan@quicinc.com>
+  - Taniya Das <quic_tdas@quicinc.com>
+
+description: |
+  Qualcomm camera clock control module provides the clocks, resets and power
+  domains on SM4450
+
+  See also:: include/dt-bindings/clock/qcom,sm4450-camcc.h
+
+properties:
+  compatible:
+    const: qcom,sm4450-camcc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Camera AHB clock source from GCC
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+  '#power-domain-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - '#clock-cells'
+  - '#reset-cells'
+  - '#power-domain-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/clock/qcom,sm4450-gcc.h>
+    clock-controller@ade0000 {
+      compatible = "qcom,sm4450-camcc";
+      reg = <0x0ade0000 0x20000>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>,
+               <&gcc GCC_CAMERA_AHB_CLK>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+...
diff --git a/Bindings/clock/qcom,sm4450-dispcc.yaml b/Bindings/clock/qcom,sm4450-dispcc.yaml
new file mode 100644 (file)
index 0000000..2aa0535
--- /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/clock/qcom,sm4450-dispcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Display Clock & Reset Controller on SM4450
+
+maintainers:
+  - Ajit Pandey <quic_ajipan@quicinc.com>
+  - Taniya Das <quic_tdas@quicinc.com>
+
+description: |
+  Qualcomm display clock control module provides the clocks, resets and power
+  domains on SM4450
+
+  See also:: include/dt-bindings/clock/qcom,sm4450-dispcc.h
+
+properties:
+  compatible:
+    const: qcom,sm4450-dispcc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Board active XO source
+      - description: Display AHB clock source from GCC
+      - description: sleep clock source
+      - description: Byte clock from DSI PHY0
+      - description: Pixel clock from DSI PHY0
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+  '#power-domain-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - '#clock-cells'
+  - '#reset-cells'
+  - '#power-domain-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/clock/qcom,sm4450-gcc.h>
+    clock-controller@af00000 {
+      compatible = "qcom,sm4450-dispcc";
+      reg = <0x0af00000 0x20000>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>,
+               <&rpmhcc RPMH_CXO_CLK_A>,
+               <&gcc GCC_DISP_AHB_CLK>,
+               <&sleep_clk>,
+               <&dsi0_phy_pll_out_byteclk>,
+               <&dsi0_phy_pll_out_dsiclk>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+...
diff --git a/Bindings/clock/qcom,sm8150-camcc.yaml b/Bindings/clock/qcom,sm8150-camcc.yaml
new file mode 100644 (file)
index 0000000..5e9f62d
--- /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,sm8150-camcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Camera Clock & Reset Controller on SM8150
+
+maintainers:
+  - Satya Priya Kakitapalli <quic_skakitap@quicinc.com>
+
+description: |
+  Qualcomm camera clock control module provides the clocks, resets and
+  power domains on SM8150.
+
+  See also:: include/dt-bindings/clock/qcom,sm8150-camcc.h
+
+properties:
+  compatible:
+    const: qcom,sm8150-camcc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Camera AHB clock from GCC
+
+  power-domains:
+    maxItems: 1
+    description:
+      A phandle and PM domain specifier for the MMCX power domain.
+
+  required-opps:
+    maxItems: 1
+    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
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-sm8150.h>
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/power/qcom-rpmpd.h>
+    clock-controller@ad00000 {
+      compatible = "qcom,sm8150-camcc";
+      reg = <0x0ad00000 0x10000>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>,
+               <&gcc GCC_CAMERA_AHB_CLK>;
+      power-domains = <&rpmhpd SM8150_MMCX>;
+      required-opps = <&rpmhpd_opp_low_svs>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+...
index f58edfc10f4c764548e466602d43d5f7a081b60e..26afbbe655112f853dfbd247fb4e3f33135d7bf0 100644 (file)
@@ -21,9 +21,6 @@ description: |
     include/dt-bindings/clock/qcom,sm8650-camcc.h
     include/dt-bindings/clock/qcom,x1e80100-camcc.h
 
-allOf:
-  - $ref: qcom,gcc.yaml#
-
 properties:
   compatible:
     enum:
@@ -57,7 +54,21 @@ required:
   - compatible
   - clocks
   - power-domains
-  - required-opps
+
+allOf:
+  - $ref: qcom,gcc.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sc8280xp-camcc
+              - qcom,sm8450-camcc
+              - qcom,sm8550-camcc
+              - qcom,x1e80100-camcc
+    then:
+      required:
+        - required-opps
 
 unevaluatedProperties: false
 
index d10bb002906e9f55f1f1dedc570f5e835181a504..2d2c59aa8c6b099e6e0a65500f57945686e465f7 100644 (file)
@@ -14,6 +14,7 @@ description: |
   domains on Qualcomm SoCs.
 
   See also::
+    include/dt-bindings/clock/qcom,sm4450-gpucc.h
     include/dt-bindings/clock/qcom,sm8450-gpucc.h
     include/dt-bindings/clock/qcom,sm8550-gpucc.h
     include/dt-bindings/reset/qcom,sm8450-gpucc.h
@@ -23,6 +24,7 @@ description: |
 properties:
   compatible:
     enum:
+      - qcom,sm4450-gpucc
       - qcom,sm8450-gpucc
       - qcom,sm8550-gpucc
       - qcom,sm8650-gpucc
index b2792b4bb554d651a7b4579f4ee540f352ce8a73..9829ba28fe0ed33438ce784de41b011255fec09f 100644 (file)
@@ -44,11 +44,20 @@ required:
   - compatible
   - clocks
   - power-domains
-  - required-opps
   - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sm8450-videocc
+              - qcom,sm8550-videocc
+    then:
+      required:
+        - required-opps
 
 unevaluatedProperties: false
 
diff --git a/Bindings/clock/qcom,turingcc.txt b/Bindings/clock/qcom,turingcc.txt
deleted file mode 100644 (file)
index 126517d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-Qualcomm Turing Clock & Reset Controller Binding
-------------------------------------------------
-
-Required properties :
-- compatible: shall contain "qcom,qcs404-turingcc".
-- reg: shall contain base register location and length.
-- clocks: ahb clock for the TuringCC
-- #clock-cells: from common clock binding, shall contain 1.
-- #reset-cells: from common reset binding, shall contain 1.
-
-Example:
-       turingcc: clock-controller@800000 {
-               compatible = "qcom,qcs404-turingcc";
-               reg = <0x00800000 0x30000>;
-               clocks = <&gcc GCC_CDSP_CFG_AHB_CLK>;
-
-               #clock-cells = <1>;
-               #reset-cells = <1>;
-       };
index 9185d101737e4d30c0a13955c98dcfc4d2629ff5..a0e09b7002f071b6bfde21d9f467ed73f57a8ffd 100644 (file)
@@ -32,12 +32,16 @@ properties:
   reg:
     maxItems: 1
 
-  clocks: true
+  clocks:
+    minItems: 1
+    maxItems: 3
 
   '#clock-cells':
     const: 1
 
-  clock-output-names: true
+  clock-output-names:
+    minItems: 3
+    maxItems: 17
 
   renesas,mode:
     description: Board-specific settings of the MD_CK* bits on R-Mobile A1
index 084259d30232aa6814483fd901aab357d95c5474..77ce3615c65ace67888c4ee5384ecc3f5088cb6a 100644 (file)
@@ -31,6 +31,7 @@ properties:
       - renesas,r8a7745-cpg-mssr  # RZ/G1E
       - renesas,r8a77470-cpg-mssr # RZ/G1C
       - renesas,r8a774a1-cpg-mssr # RZ/G2M
+      - renesas,r8a774a3-cpg-mssr # RZ/G2M v3.0
       - renesas,r8a774b1-cpg-mssr # RZ/G2N
       - renesas,r8a774c0-cpg-mssr # RZ/G2E
       - renesas,r8a774e1-cpg-mssr # RZ/G2H
diff --git a/Bindings/clock/renesas,rzv2h-cpg.yaml b/Bindings/clock/renesas,rzv2h-cpg.yaml
new file mode 100644 (file)
index 0000000..926c503
--- /dev/null
@@ -0,0 +1,80 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/renesas,rzv2h-cpg.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas RZ/V2H(P) Clock Pulse Generator (CPG)
+
+maintainers:
+  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
+
+description:
+  On Renesas RZ/V2H(P) SoCs, the CPG (Clock Pulse Generator) handles generation
+  and control of clock signals for the IP modules, generation and control of resets,
+  and control over booting, low power consumption and power supply domains.
+
+properties:
+  compatible:
+    const: renesas,r9a09g057-cpg
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: AUDIO_EXTAL clock input
+      - description: RTXIN clock input
+      - description: QEXTAL clock input
+
+  clock-names:
+    items:
+      - const: audio_extal
+      - const: rtxin
+      - const: qextal
+
+  '#clock-cells':
+    description: |
+      - For CPG core clocks, the two clock specifier cells must be "CPG_CORE"
+        and a core clock reference, as defined in
+        <dt-bindings/clock/renesas,r9a09g057-cpg.h>,
+      - For module clocks, the two clock specifier cells must be "CPG_MOD" and
+        a module number.  The module number is calculated as the CLKON register
+        offset index multiplied by 16, plus the actual bit in the register
+        used to turn the CLK ON. For example, for CGC_GIC_0_GICCLK, the
+        calculation is (1 * 16 + 3) = 0x13.
+    const: 2
+
+  '#power-domain-cells':
+    const: 0
+
+  '#reset-cells':
+    description:
+      The single reset specifier cell must be the reset number. The reset number
+      is calculated as the reset register offset index multiplied by 16, plus the
+      actual bit in the register used to reset the specific IP block. For example,
+      for SYS_0_PRESETN, the calculation is (3 * 16 + 0) = 0x30.
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#clock-cells'
+  - '#power-domain-cells'
+  - '#reset-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@10420000 {
+        compatible = "renesas,r9a09g057-cpg";
+        reg = <0x10420000 0x10000>;
+        clocks = <&audio_extal_clk>, <&rtxin_clk>, <&qextal_clk>;
+        clock-names = "audio_extal", "rtxin", "qextal";
+        #clock-cells = <2>;
+        #power-domain-cells = <0>;
+        #reset-cells = <1>;
+    };
diff --git a/Bindings/clock/rockchip,rk3576-cru.yaml b/Bindings/clock/rockchip,rk3576-cru.yaml
new file mode 100644 (file)
index 0000000..9c9b360
--- /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/clock/rockchip,rk3576-cru.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip rk3576 Family Clock and Reset Control Module
+
+maintainers:
+  - Elaine Zhang <zhangqing@rock-chips.com>
+  - Heiko Stuebner <heiko@sntech.de>
+  - Detlev Casanova <detlev.casanova@collabora.com>
+
+description:
+  The RK3576 clock controller generates the clock and also implements a reset
+  controller for SoC peripherals. For example it provides SCLK_UART2 and
+  PCLK_UART2, as well as SRST_P_UART2 and SRST_S_UART2 for the second UART
+  module.
+
+properties:
+  compatible:
+    const: rockchip,rk3576-cru
+
+  reg:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 1
+
+  "#reset-cells":
+    const: 1
+
+  clocks:
+    maxItems: 2
+
+  clock-names:
+    items:
+      - const: xin24m
+      - const: xin32k
+
+required:
+  - compatible
+  - reg
+  - "#clock-cells"
+  - "#reset-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@27200000 {
+      compatible = "rockchip,rk3576-cru";
+      reg = <0xfd7c0000 0x5c000>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+    };
index 74cd3f3f229ab49df4b73b83302f5368d30e9da4..4ff175c4992b68e4089606d64d5879166967eb41 100644 (file)
@@ -42,10 +42,6 @@ properties:
       - const: xin24m
       - const: xin32k
 
-  assigned-clocks: true
-
-  assigned-clock-rates: true
-
   rockchip,grf:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: >
index 55c4f94a14d182d2a4a2a78d80a7c78e884732ea..32f39e543b3620c72defa8d45dd3ccbc24a6f54e 100644 (file)
@@ -35,6 +35,7 @@ properties:
       - samsung,exynosautov9-cmu-top
       - samsung,exynosautov9-cmu-busmc
       - samsung,exynosautov9-cmu-core
+      - samsung,exynosautov9-cmu-dpum
       - samsung,exynosautov9-cmu-fsys0
       - samsung,exynosautov9-cmu-fsys1
       - samsung,exynosautov9-cmu-fsys2
@@ -109,6 +110,24 @@ allOf:
             - const: oscclk
             - const: dout_clkcmu_core_bus
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynosautov9-cmu-dpum
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (26 MHz)
+            - description: DPU Main bus clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: bus
+
   - if:
       properties:
         compatible:
diff --git a/Bindings/clock/samsung,exynosautov920-clock.yaml b/Bindings/clock/samsung,exynosautov920-clock.yaml
new file mode 100644 (file)
index 0000000..3330b27
--- /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/clock/samsung,exynosautov920-clock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung ExynosAuto v920 SoC clock controller
+
+maintainers:
+  - Sunyeal Hong <sunyeal.hong@samsung.com>
+  - Chanwoo Choi <cw00.choi@samsung.com>
+  - Krzysztof Kozlowski <krzk@kernel.org>
+  - Sylwester Nawrocki <s.nawrocki@samsung.com>
+
+description: |
+  ExynosAuto v920 clock controller is comprised of several CMU units, generating
+  clocks for different domains. Those CMU units are modeled as separate device
+  tree nodes, and might depend on each other. Root clocks in that clock tree are
+  two external clocks:: OSCCLK/XTCXO (38.4 MHz) and RTCCLK/XrtcXTI (32768 Hz).
+  The external OSCCLK must be defined as fixed-rate clock in dts.
+
+  CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
+  dividers; all other clocks of function blocks (other CMUs) are usually
+  derived from CMU_TOP.
+
+  Each clock is assigned an identifier and client nodes can use this identifier
+  to specify the clock which they consume. All clocks available for usage
+  in clock consumer nodes are defined as preprocessor macros in
+  'include/dt-bindings/clock/samsung,exynosautov920.h' header.
+
+properties:
+  compatible:
+    enum:
+      - samsung,exynosautov920-cmu-top
+      - samsung,exynosautov920-cmu-peric0
+      - samsung,exynosautov920-cmu-peric1
+      - samsung,exynosautov920-cmu-misc
+      - samsung,exynosautov920-cmu-hsi0
+      - samsung,exynosautov920-cmu-hsi1
+
+  clocks:
+    minItems: 1
+    maxItems: 4
+
+  clock-names:
+    minItems: 1
+    maxItems: 4
+
+  "#clock-cells":
+    const: 1
+
+  reg:
+    maxItems: 1
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynosautov920-cmu-top
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (38.4 MHz)
+
+        clock-names:
+          items:
+            - const: oscclk
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - samsung,exynosautov920-cmu-peric0
+              - samsung,exynosautov920-cmu-peric1
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (38.4 MHz)
+            - description: CMU_PERICn NOC clock (from CMU_TOP)
+            - description: CMU_PERICn IP clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: noc
+            - const: ip
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - samsung,exynosautov920-cmu-misc
+            - samsung,exynosautov920-cmu-hsi0
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (38.4 MHz)
+            - description: CMU_MISC/CMU_HSI0 NOC clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: noc
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynosautov920-cmu-hsi1
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (38.4 MHz)
+            - description: CMU_HSI1 NOC clock (from CMU_TOP)
+            - description: CMU_HSI1 USBDRD clock (from CMU_TOP)
+            - description: CMU_HSI1 MMC_CARD clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: noc
+            - const: usbdrd
+            - const: mmc_card
+
+required:
+  - compatible
+  - "#clock-cells"
+  - clocks
+  - clock-names
+  - reg
+
+additionalProperties: false
+
+examples:
+  # Clock controller node for CMU_PERIC0
+  - |
+    #include <dt-bindings/clock/samsung,exynosautov920.h>
+
+    cmu_peric0: clock-controller@10800000 {
+        compatible = "samsung,exynosautov920-cmu-peric0";
+        reg = <0x10800000 0x8000>;
+        #clock-cells = <1>;
+
+        clocks = <&xtcxo>,
+                 <&cmu_top DOUT_CLKCMU_PERIC0_NOC>,
+                 <&cmu_top DOUT_CLKCMU_PERIC0_IP>;
+        clock-names = "oscclk",
+                      "noc",
+                      "ip";
+    };
+
+...
index 5194be0b410e42be7b7e35fab6cca257d5e16f9f..9b3aaae546cb08cc0bb314a7e037080abac2699f 100644 (file)
@@ -60,8 +60,14 @@ properties:
           - st,stm32mp1-rcc
           - st,stm32mp13-rcc
       - const: syscon
-  clocks: true
-  clock-names: true
+
+  clocks:
+    minItems: 1
+    maxItems: 5
+
+  clock-names:
+    minItems: 1
+    maxItems: 5
 
   reg:
     maxItems: 1
index 239480ef7c30d3b50445612b0c56be728c40512c..385b0a511652c53ff40b3f064f6fc6f068295bb1 100644 (file)
@@ -385,7 +385,7 @@ patternProperties:
 
           This property is required in idle state nodes of device tree meant
           for RISC-V systems. For more details on the suspend_type parameter
-          refer the SBI specifiation v0.3 (or higher) [7].
+          refer the SBI specification v0.3 (or higher) [7].
 
       local-timer-stop:
         description:
diff --git a/Bindings/cpu/nvidia,tegra186-ccplex-cluster.yaml b/Bindings/cpu/nvidia,tegra186-ccplex-cluster.yaml
deleted file mode 100644 (file)
index 16a4489..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/cpu/nvidia,tegra186-ccplex-cluster.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: NVIDIA Tegra186 CCPLEX Cluster
-
-maintainers:
-  - Thierry Reding <thierry.reding@gmail.com>
-  - Jon Hunter <jonathanh@nvidia.com>
-
-properties:
-  compatible:
-    const: nvidia,tegra186-ccplex-cluster
-
-  reg:
-    maxItems: 1
-
-  nvidia,bpmp:
-    description: phandle to the BPMP used to query CPU frequency tables
-    $ref: /schemas/types.yaml#/definitions/phandle
-
-additionalProperties: false
-
-required:
-  - compatible
-  - reg
-  - nvidia,bpmp
-
-examples:
-  - |
-    ccplex@e000000 {
-        compatible = "nvidia,tegra186-ccplex-cluster";
-        reg = <0x0e000000 0x400000>;
-        nvidia,bpmp = <&bpmp>;
-    };
index 0a9ed2848b7c632bb34929e680767ab64180762e..9c8c9991f29ad6e4056f23aa3a3014c600d612bb 100644 (file)
@@ -137,7 +137,10 @@ patternProperties:
           - const: fsl,sec-v4.0-rtic
 
       reg:
-        maxItems: 1
+        items:
+          - description: RTIC control and status register space.
+          - description: RTIC recoverable error indication register space.
+        minItems: 1
 
       ranges:
         maxItems: 1
index 89c88004b41bf517a1933f08c28f5c1bdece6e4b..048b769a73c028966e81d64cf13b2b418a5e4949 100644 (file)
@@ -17,6 +17,7 @@ properties:
           - qcom,prng-ee  # 8996 and later using EE
       - items:
           - enum:
+              - qcom,sa8255p-trng
               - qcom,sa8775p-trng
               - qcom,sc7280-trng
               - qcom,sm8450-trng
index 2ad0cd6dd49e067bc6b519862998e4f812412021..b78f64c9c5f44ec1cba3dbc149fb96a41fccc311 100644 (file)
@@ -92,12 +92,31 @@ properties:
             reference to a valid DPI output or input endpoint node.
 
       port@2:
-        $ref: /schemas/graph.yaml#/properties/port
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
         description: |
             eDP/DP output port. The remote endpoint phandle should be a
             reference to a valid eDP panel input endpoint node. This port is
             optional, treated as DP panel if not defined
 
+        properties:
+          endpoint:
+            $ref: /schemas/media/video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              toshiba,pre-emphasis:
+                description:
+                  Display port output Pre-Emphasis settings for both DP lanes.
+                $ref: /schemas/types.yaml#/definitions/uint8-array
+                minItems: 2
+                maxItems: 2
+                items:
+                  enum:
+                    - 0 # No pre-emphasis
+                    - 1 # 3.5dB pre-emphasis
+                    - 2 # 6dB pre-emphasis
+
     oneOf:
       - required:
           - port@0
diff --git a/Bindings/display/elgin,jg10309-01.yaml b/Bindings/display/elgin,jg10309-01.yaml
new file mode 100644 (file)
index 0000000..faca0cb
--- /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/display/elgin,jg10309-01.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Elgin JG10309-01 SPI-controlled display
+
+maintainers:
+  - Fabio Estevam <festevam@gmail.com>
+
+description: |
+  The Elgin JG10309-01 SPI-controlled display is used on the RV1108-Elgin-r1
+  board and is a custom display.
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    const: elgin,jg10309-01
+
+  reg:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 24000000
+
+  spi-cpha: true
+
+  spi-cpol: true
+
+required:
+  - compatible
+  - reg
+  - spi-cpha
+  - spi-cpol
+
+additionalProperties: false
+
+examples:
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        display@0 {
+            compatible = "elgin,jg10309-01";
+            reg = <0>;
+            spi-max-frequency = <24000000>;
+            spi-cpha;
+            spi-cpol;
+        };
+    };
index 0681fc49aa1b08b6e0ee6324aaedc67bca7090b2..8e3a98aeec32dd7751658fe3659606af827571ea 100644 (file)
@@ -50,6 +50,14 @@ properties:
       - const: disp_axi
     minItems: 1
 
+  dmas:
+    items:
+      - description: DMA specifier for the RX DMA channel.
+
+  dma-names:
+    items:
+      - const: rx
+
   interrupts:
     items:
       - description: LCDIF DMA interrupt
@@ -156,6 +164,18 @@ allOf:
         interrupts:
           maxItems: 1
 
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              enum:
+                - fsl,imx28-lcdif
+    then:
+      properties:
+        dmas: false
+        dma-names: false
+
 examples:
   - |
     #include <dt-bindings/clock/imx6sx-clock.h>
index 224db4932011d7a7d8373e5454bb5bbf789d0487..b74efbea3be2914f3921a405bf9ff9da5a7a916b 100644 (file)
@@ -16,7 +16,7 @@ maintainers:
 description:
   This binding extends the data mapping defined in lvds-data-mapping.yaml.
   It supports reversing the bit order on the formats defined there in order
-  to accomodate for even more specialized data formats, since a variety of
+  to accommodate for even more specialized data formats, since a variety of
   data formats and layouts is used to drive LVDS displays.
 
 properties:
index 5ca7679d542764529e8967724029b4318e8ca213..497c0eb4ed0b5e2f57f60859f56a1a42fed4f40d 100644 (file)
@@ -62,6 +62,19 @@ properties:
       - const: default
       - const: sleep
 
+  power-domains:
+    description: |
+      The MediaTek DPI module is typically associated with one of the
+      following multimedia power domains:
+        POWER_DOMAIN_DISPLAY
+        POWER_DOMAIN_VDOSYS
+        POWER_DOMAIN_MM
+      The specific power domain used varies depending on the SoC design.
+
+      It is recommended to explicitly add the appropriate power domain
+      property to the DPI node in the device tree.
+    maxItems: 1
+
   port:
     $ref: /schemas/graph.yaml#/properties/port
     description:
index e4affc854f3dd264f8e76e568ac00630fff5a8e2..4b6ff546757e62352e9415f0b8a6b178fbbf6dce 100644 (file)
@@ -38,6 +38,7 @@ properties:
     description: A phandle and PM domain specifier as defined by bindings of
       the power controller specified by phandle. See
       Documentation/devicetree/bindings/power/power-domain.yaml for details.
+    maxItems: 1
 
   mediatek,gce-client-reg:
     description:
@@ -57,6 +58,9 @@ properties:
   clocks:
     items:
       - description: SPLIT Clock
+      - description: Used for interfacing with the HDMI RX signal source.
+      - description: Paired with receiving HDMI RX metadata.
+    minItems: 1
 
 required:
   - compatible
@@ -72,9 +76,24 @@ allOf:
             const: mediatek,mt8195-mdp3-split
 
     then:
+      properties:
+        clocks:
+          minItems: 3
+
       required:
         - mediatek,gce-client-reg
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: mediatek,mt8173-disp-split
+
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+
 additionalProperties: false
 
 examples:
index 47e97669821c354a1f7291e4e6a5cdf22e70d778..d4a2033afea8d4e4f83c9859f8840d30ae9d53f8 100644 (file)
@@ -19,14 +19,15 @@ properties:
       - qcom,hdmi-tx-8974
       - qcom,hdmi-tx-8994
       - qcom,hdmi-tx-8996
+      - qcom,hdmi-tx-8998
 
   clocks:
     minItems: 1
-    maxItems: 5
+    maxItems: 8
 
   clock-names:
     minItems: 1
-    maxItems: 5
+    maxItems: 8
 
   reg:
     minItems: 1
@@ -142,6 +143,7 @@ allOf:
       properties:
         clocks:
           minItems: 5
+          maxItems: 5
         clock-names:
           items:
             - const: mdp_core
@@ -151,6 +153,28 @@ allOf:
             - const: extp
         hdmi-mux-supplies: false
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,hdmi-tx-8998
+    then:
+      properties:
+        clocks:
+          minItems: 8
+          maxItems: 8
+        clock-names:
+          items:
+            - const: mdp_core
+            - const: iface
+            - const: core
+            - const: alt_iface
+            - const: extp
+            - const: bus
+            - const: mnoc
+            - const: iface_mmss
+
 additionalProperties: false
 
 examples:
index 5eaccce13c216ffe210f408068a637f54d17f213..6a82bd1ec763c2082795ee658f0f5162517a9428 100644 (file)
@@ -9,20 +9,20 @@ title: BOE TH101MB31IG002-28A WXGA DSI Display Panel
 maintainers:
   - Manuel Traut <manut@mecka.net>
 
-allOf:
-  - $ref: panel-common.yaml#
-
 properties:
   compatible:
     enum:
         # BOE TH101MB31IG002-28A 10.1" WXGA TFT LCD panel
       - boe,th101mb31ig002-28a
+        # The Starry-er88577 is a 10.1" WXGA TFT-LCD panel
+      - starry,er88577
 
   reg:
     maxItems: 1
 
   backlight: true
   enable-gpios: true
+  reset-gpios: true
   power-supply: true
   port: true
   rotation: true
@@ -33,6 +33,20 @@ required:
   - enable-gpios
   - power-supply
 
+allOf:
+  - $ref: panel-common.yaml#
+  - if:
+      properties:
+        compatible:
+          # The Starry-er88577 is a 10.1" WXGA TFT-LCD panel
+          const: starry,er88577
+    then:
+      properties:
+        reset-gpios: false
+    else:
+      required:
+        - reset-gpios
+
 additionalProperties: false
 
 examples:
@@ -47,6 +61,7 @@ examples:
             reg = <0>;
             backlight = <&backlight_lcd0>;
             enable-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
+            reset-gpios = <&gpio 55 GPIO_ACTIVE_LOW>;
             rotation = <90>;
             power-supply = <&vcc_3v3>;
             port {
diff --git a/Bindings/display/panel/boe,tv101wum-ll2.yaml b/Bindings/display/panel/boe,tv101wum-ll2.yaml
new file mode 100644 (file)
index 0000000..dced98e
--- /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/boe,tv101wum-ll2.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: BOE TV101WUM-LL2 DSI Display Panel
+
+maintainers:
+  - Neil Armstrong <neil.armstrong@linaro.org>
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    const: boe,tv101wum-ll2
+
+  reg:
+    maxItems: 1
+    description: DSI virtual channel
+
+  backlight: true
+  reset-gpios: true
+  vsp-supply: true
+  vsn-supply: true
+  port: true
+  rotation: true
+
+required:
+  - compatible
+  - reg
+  - reset-gpios
+  - vsp-supply
+  - vsn-supply
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    dsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        panel@0 {
+            compatible = "boe,tv101wum-ll2";
+            reg = <0>;
+
+            vsn-supply = <&vsn_lcd>;
+            vsp-supply = <&vsp_lcd>;
+
+            reset-gpios = <&pio 45 GPIO_ACTIVE_LOW>;
+
+            port {
+                panel_in: endpoint {
+                    remote-endpoint = <&dsi_out>;
+                };
+            };
+        };
+    };
+
+...
index 644387e4fb6f9f6ac876f50d181e30ac009d3470..75ccabff308bfa0d27d4cba9f2c8ce86dba225c6 100644 (file)
@@ -15,14 +15,12 @@ description:
   such as the HannStar HSD060BHW4 720x1440 TFT LCD panel connected with
   a MIPI-DSI video interface.
 
-allOf:
-  - $ref: panel-common.yaml#
-
 properties:
   compatible:
     items:
       - enum:
           - hannstar,hsd060bhw4
+          - microchip,ac40t08a-mipi-panel
           - powkiddy,x55-panel
       - const: himax,hx8394
 
@@ -46,7 +44,6 @@ properties:
 required:
   - compatible
   - reg
-  - reset-gpios
   - backlight
   - port
   - vcc-supply
@@ -54,6 +51,18 @@ required:
 
 additionalProperties: false
 
+allOf:
+  - $ref: panel-common.yaml#
+  - if:
+      not:
+        properties:
+          compatible:
+            enum:
+              - microchip,ac40t08a-mipi-panel
+    then:
+      required:
+        - reset-gpios
+
 examples:
   - |
     #include <dt-bindings/gpio/gpio.h>
index cfd7cc9c872574da2a36cd16b93f6952f7c6561b..f803075794854468f29b3ab102eef969dd621cbb 100644 (file)
@@ -16,6 +16,7 @@ properties:
   compatible:
     items:
       - enum:
+          - densitron,dmt028vghmcmi-1d
           - ortustech,com35h3p70ulc
       - const: ilitek,ili9806e
 
index 3d5bede98cf1d951eb85cbb1ab8eb6e085e633df..b8783eba3ddc62e92cd1e1453f7fd2f0da016447 100644 (file)
@@ -18,6 +18,7 @@ properties:
       - enum:
           - chongzhou,cz101b4001
           - kingdisplay,kd101ne3-40ti
+          - melfas,lmfbx101117480
           - radxa,display-10hd-ad001
           - radxa,display-8hd-ad002
       - const: jadard,jd9365da-h3
index e78160d1aa24c4f8910b0001d3e7bbb2dc815eef..10ed4b57232b9b38590efd5e5d197ca91517e98c 100644 (file)
@@ -84,11 +84,7 @@ properties:
       - port@0
       - port@1
 
-  backlight: true
-  enable-gpios: true
-  power-supply: true
-
-additionalProperties: false
+unevaluatedProperties: false
 
 required:
   - compatible
index 8a87e0100dcb21c5a6c94e03351889c91909ace8..b89e3979057911ab9e669e97e71c16578d9e0150 100644 (file)
@@ -158,6 +158,8 @@ properties:
       - innolux,at070tn92
         # Innolux G070ACE-L01 7" WVGA (800x480) TFT LCD panel
       - innolux,g070ace-l01
+        # Innolux G070ACE-LH3 7" WVGA (800x480) TFT LCD panel with WLED backlight
+      - innolux,g070ace-lh3
         # Innolux G070Y2-L01 7" WVGA (800x480) TFT LCD panel
       - innolux,g070y2-l01
         # Innolux G070Y2-T02 7" WVGA (800x480) TFT LCD TTL panel
@@ -222,6 +224,8 @@ properties:
       - okaya,rs800480t-7x0gp
         # Olimex 4.3" TFT LCD panel
       - olimex,lcd-olinuxino-43-ts
+        # On Tat Industrial Company 5" DPI TFT panel.
+      - ontat,kd50g21-40nt-a1
         # On Tat Industrial Company 7" DPI TFT panel.
       - ontat,yx700wv03
         # OrtusTech COM37H3M05DTC Blanview 3.7" VGA portrait TFT-LCD panel
index b348f5bf0a980942bc1164a79e33a36e9424b455..b07f3eca669bffc6000bd919c808372165809929 100644 (file)
@@ -20,21 +20,19 @@ description: |
   Densitron DMT028VGHMCMI-1A is 480x640, 2-lane MIPI DSI LCD panel
   which has built-in ST7701 chip.
 
-allOf:
-  - $ref: panel-common.yaml#
-
 properties:
   compatible:
     items:
       - enum:
           - anbernic,rg-arc-panel
+          - anbernic,rg28xx-panel
           - densitron,dmt028vghmcmi-1a
           - elida,kd50t048a
           - techstar,ts8550b
       - const: sitronix,st7701
 
   reg:
-    description: DSI virtual channel used by that screen
+    description: DSI / SPI channel used by that screen
     maxItems: 1
 
   VCC-supply:
@@ -43,6 +41,13 @@ properties:
   IOVCC-supply:
     description: I/O system regulator
 
+  dc-gpios:
+    maxItems: 1
+    description:
+      Controller data/command selection (D/CX) in 4-line SPI mode.
+      If not set, the controller is in 3-line SPI mode.
+      Disallowed for DSI.
+
   port: true
   reset-gpios: true
   rotation: true
@@ -57,7 +62,38 @@ required:
   - port
   - reset-gpios
 
-additionalProperties: false
+allOf:
+  - $ref: panel-common.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            # SPI connected panels
+            enum:
+              - anbernic,rg28xx-panel
+    then:
+      $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+  - if:
+      properties:
+        compatible:
+          not:
+            contains:
+              # DSI or SPI without D/CX pin
+              enum:
+                - anbernic,rg-arc-panel
+                - anbernic,rg28xx-panel
+                - densitron,dmt028vghmcmi-1a
+                - elida,kd50t048a
+                - techstar,ts8550b
+    then:
+      required:
+        - dc-gpios
+    else:
+      properties:
+        dc-gpios: false
+
+unevaluatedProperties: false
 
 examples:
   - |
@@ -82,3 +118,26 @@ examples:
             };
         };
     };
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        panel@0 {
+            compatible = "anbernic,rg28xx-panel", "sitronix,st7701";
+            reg = <0>;
+            spi-max-frequency = <3125000>;
+            VCC-supply = <&reg_lcd>;
+            IOVCC-supply = <&reg_lcd>;
+            reset-gpios = <&pio 8 14 GPIO_ACTIVE_HIGH>; /* LCD-RST: PI14 */
+            backlight = <&backlight>;
+
+            port {
+                panel_in_rgb: endpoint {
+                    remote-endpoint = <&tcon_lcd0_out_lcd>;
+                };
+            };
+        };
+    };
index 08e5b9478051a3f3af3ee50ba7356b674df50d2d..95e3d5e74b8761dd84a576b46f23b77bcfa92b31 100644 (file)
@@ -18,6 +18,7 @@ properties:
   compatible:
     oneOf:
       - enum:
+          - renesas,r9a07g043u-du # RZ/G2UL
           - renesas,r9a07g044-du # RZ/G2{L,LC}
       - items:
           - enum:
@@ -60,9 +61,6 @@ properties:
         $ref: /schemas/graph.yaml#/properties/port
         unevaluatedProperties: false
 
-    required:
-      - port@0
-
     unevaluatedProperties: false
 
   renesas,vsps:
@@ -88,6 +86,34 @@ required:
 
 additionalProperties: false
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a07g043u-du
+    then:
+      properties:
+        ports:
+          properties:
+            port@0:
+              description: DPI
+
+          required:
+            - port@0
+    else:
+      properties:
+        ports:
+          properties:
+            port@0:
+              description: DSI
+            port@1:
+              description: DPI
+
+          required:
+            - port@0
+            - port@1
+
 examples:
   # RZ/G2L DU
   - |
diff --git a/Bindings/dma/cirrus,ep9301-dma-m2m.yaml b/Bindings/dma/cirrus,ep9301-dma-m2m.yaml
new file mode 100644 (file)
index 0000000..871b76d
--- /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/dma/cirrus,ep9301-dma-m2m.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic ep93xx SoC DMA controller
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: dma-controller.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9301-dma-m2m
+      - items:
+          - enum:
+              - cirrus,ep9302-dma-m2m
+              - cirrus,ep9307-dma-m2m
+              - cirrus,ep9312-dma-m2m
+              - cirrus,ep9315-dma-m2m
+          - const: cirrus,ep9301-dma-m2m
+
+  reg:
+    items:
+      - description: m2m0 channel registers
+      - description: m2m1 channel registers
+
+  clocks:
+    items:
+      - description: m2m0 channel gate clock
+      - description: m2m1 channel gate clock
+
+  clock-names:
+    items:
+      - const: m2m0
+      - const: m2m1
+
+  interrupts:
+    items:
+      - description: m2m0 channel interrupt
+      - description: m2m1 channel interrupt
+
+  '#dma-cells':
+    const: 2
+    description: |
+      The first cell is the unique device channel number as indicated by this
+      table for ep93xx:
+
+      10: SPI controller
+      11: IDE controller
+
+      The second cell is the DMA direction line number:
+
+      1: Memory to device
+      2: Device to memory
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
+    dma-controller@80000100 {
+        compatible = "cirrus,ep9301-dma-m2m";
+        reg = <0x80000100 0x0040>,
+              <0x80000140 0x0040>;
+        clocks = <&syscon EP93XX_CLK_M2M0>,
+                 <&syscon EP93XX_CLK_M2M1>;
+        clock-names = "m2m0", "m2m1";
+        interrupt-parent = <&vic0>;
+        interrupts = <17>, <18>;
+        #dma-cells = <2>;
+    };
diff --git a/Bindings/dma/cirrus,ep9301-dma-m2p.yaml b/Bindings/dma/cirrus,ep9301-dma-m2p.yaml
new file mode 100644 (file)
index 0000000..d14c315
--- /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/dma/cirrus,ep9301-dma-m2p.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic ep93xx SoC M2P DMA controller
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: dma-controller.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9301-dma-m2p
+      - items:
+          - enum:
+              - cirrus,ep9302-dma-m2p
+              - cirrus,ep9307-dma-m2p
+              - cirrus,ep9312-dma-m2p
+              - cirrus,ep9315-dma-m2p
+          - const: cirrus,ep9301-dma-m2p
+
+  reg:
+    items:
+      - description: m2p0 channel registers
+      - description: m2p1 channel registers
+      - description: m2p2 channel registers
+      - description: m2p3 channel registers
+      - description: m2p4 channel registers
+      - description: m2p5 channel registers
+      - description: m2p6 channel registers
+      - description: m2p7 channel registers
+      - description: m2p8 channel registers
+      - description: m2p9 channel registers
+
+  clocks:
+    items:
+      - description: m2p0 channel gate clock
+      - description: m2p1 channel gate clock
+      - description: m2p2 channel gate clock
+      - description: m2p3 channel gate clock
+      - description: m2p4 channel gate clock
+      - description: m2p5 channel gate clock
+      - description: m2p6 channel gate clock
+      - description: m2p7 channel gate clock
+      - description: m2p8 channel gate clock
+      - description: m2p9 channel gate clock
+
+  clock-names:
+    items:
+      - const: m2p0
+      - const: m2p1
+      - const: m2p2
+      - const: m2p3
+      - const: m2p4
+      - const: m2p5
+      - const: m2p6
+      - const: m2p7
+      - const: m2p8
+      - const: m2p9
+
+  interrupts:
+    items:
+      - description: m2p0 channel interrupt
+      - description: m2p1 channel interrupt
+      - description: m2p2 channel interrupt
+      - description: m2p3 channel interrupt
+      - description: m2p4 channel interrupt
+      - description: m2p5 channel interrupt
+      - description: m2p6 channel interrupt
+      - description: m2p7 channel interrupt
+      - description: m2p8 channel interrupt
+      - description: m2p9 channel interrupt
+
+  '#dma-cells':
+    const: 2
+    description: |
+      The first cell is the unique device channel number as indicated by this
+      table for ep93xx:
+
+      0: I2S channel 1
+      1: I2S channel 2 (unused)
+      2: AC97 channel 1 (unused)
+      3: AC97 channel 2 (unused)
+      4: AC97 channel 3 (unused)
+      5: I2S channel 3 (unused)
+      6: UART1 (unused)
+      7: UART2 (unused)
+      8: UART3 (unused)
+      9: IRDA (unused)
+
+      The second cell is the DMA direction line number:
+
+      1: Memory to device
+      2: Device to memory
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
+    dma-controller@80000000 {
+        compatible = "cirrus,ep9301-dma-m2p";
+        reg = <0x80000000 0x0040>,
+              <0x80000040 0x0040>,
+              <0x80000080 0x0040>,
+              <0x800000c0 0x0040>,
+              <0x80000240 0x0040>,
+              <0x80000200 0x0040>,
+              <0x800002c0 0x0040>,
+              <0x80000280 0x0040>,
+              <0x80000340 0x0040>,
+              <0x80000300 0x0040>;
+        clocks = <&syscon EP93XX_CLK_M2P0>,
+                 <&syscon EP93XX_CLK_M2P1>,
+                 <&syscon EP93XX_CLK_M2P2>,
+                 <&syscon EP93XX_CLK_M2P3>,
+                 <&syscon EP93XX_CLK_M2P4>,
+                 <&syscon EP93XX_CLK_M2P5>,
+                 <&syscon EP93XX_CLK_M2P6>,
+                 <&syscon EP93XX_CLK_M2P7>,
+                 <&syscon EP93XX_CLK_M2P8>,
+                 <&syscon EP93XX_CLK_M2P9>;
+        clock-names = "m2p0", "m2p1",
+                      "m2p2", "m2p3",
+                      "m2p4", "m2p5",
+                      "m2p6", "m2p7",
+                      "m2p8", "m2p9";
+        interrupt-parent = <&vic0>;
+        interrupts = <7>, <8>, <9>, <10>, <11>, <12>, <13>, <14>, <15>, <16>;
+        #dma-cells = <2>;
+    };
index 902a11f65be22cae989e0c3bc0e796bcc856944e..75957f9fb58b572733d5db8572cb9c8858fac92c 100644 (file)
@@ -28,6 +28,14 @@ properties:
       - description: DMA Error interrupt
     minItems: 1
 
+  clocks:
+    maxItems: 2
+
+  clock-names:
+    items:
+      - const: ipg
+      - const: ahb
+
   "#dma-cells":
     const: 1
 
@@ -42,15 +50,21 @@ required:
   - reg
   - interrupts
   - "#dma-cells"
+  - clocks
+  - clock-names
 
 additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/clock/imx27-clock.h>
+
     dma-controller@10001000 {
       compatible = "fsl,imx27-dma";
       reg = <0x10001000 0x1000>;
       interrupts = <32 33>;
       #dma-cells = <1>;
       dma-channels = <16>;
+      clocks = <&clks IMX27_CLK_DMA_IPG_GATE>, <&clks IMX27_CLK_DMA_AHB_GATE>;
+      clock-names = "ipg", "ahb";
     };
index add9c77e8b52af7eb3d56ce3e1449743f826cef2..a17cf2360dd4ac5561be811ebaddb7b184e709cd 100644 (file)
@@ -11,6 +11,17 @@ maintainers:
 
 allOf:
   - $ref: dma-controller.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: fsl,imx8qxp-dma-apbh
+    then:
+      required:
+        - power-domains
+    else:
+      properties:
+        power-domains: false
 
 properties:
   compatible:
@@ -20,6 +31,7 @@ properties:
               - fsl,imx6q-dma-apbh
               - fsl,imx6sx-dma-apbh
               - fsl,imx7d-dma-apbh
+              - fsl,imx8qxp-dma-apbh
           - const: fsl,imx28-dma-apbh
       - enum:
           - fsl,imx23-dma-apbh
@@ -42,6 +54,9 @@ properties:
   dma-channels:
     enum: [4, 8, 16]
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
index 1b9ebdbe528a1ba6126b94784819a759d2e32ce9..9401b1f6300d4418e741b331bcb8c628e85cf2df 100644 (file)
@@ -11,11 +11,14 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - fsl,ls1021a-qdma
-      - fsl,ls1028a-qdma
-      - fsl,ls1043a-qdma
-      - fsl,ls1046a-qdma
+    oneOf:
+      - const: fsl,ls1021a-qdma
+      - items:
+          - enum:
+              - fsl,ls1028a-qdma
+              - fsl,ls1043a-qdma
+              - fsl,ls1046a-qdma
+          - const: fsl,ls1021a-qdma
 
   reg:
     items:
diff --git a/Bindings/dma/loongson,ls1b-apbdma.yaml b/Bindings/dma/loongson,ls1b-apbdma.yaml
new file mode 100644 (file)
index 0000000..4c7d2fb
--- /dev/null
@@ -0,0 +1,65 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/dma/loongson,ls1b-apbdma.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Loongson-1 APB DMA Controller
+
+maintainers:
+  - Keguang Zhang <keguang.zhang@gmail.com>
+
+description:
+  Loongson-1 APB DMA controller provides 3 independent channels for
+  peripherals such as NAND, audio playback and capture.
+
+properties:
+  compatible:
+    oneOf:
+      - const: loongson,ls1b-apbdma
+      - items:
+          - enum:
+              - loongson,ls1a-apbdma
+              - loongson,ls1c-apbdma
+          - const: loongson,ls1b-apbdma
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: NAND interrupt
+      - description: Audio playback interrupt
+      - description: Audio capture interrupt
+
+  interrupt-names:
+    items:
+      - const: ch0
+      - const: ch1
+      - const: ch2
+
+  '#dma-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-names
+  - '#dma-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    dma-controller@1fd01160 {
+        compatible = "loongson,ls1b-apbdma";
+        reg = <0x1fd01160 0x4>;
+        interrupt-parent = <&intc0>;
+        interrupts = <13 IRQ_TYPE_EDGE_RISING>,
+                     <14 IRQ_TYPE_EDGE_RISING>,
+                     <15 IRQ_TYPE_EDGE_RISING>;
+        interrupt-names = "ch0", "ch1", "ch2";
+        #dma-cells = <1>;
+    };
diff --git a/Bindings/dma/marvell,xor-v2.yaml b/Bindings/dma/marvell,xor-v2.yaml
new file mode 100644 (file)
index 0000000..646b4e7
--- /dev/null
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/dma/marvell,xor-v2.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Marvell XOR v2 engines
+
+maintainers:
+  - Andrew Lunn <andrew@lunn.ch>
+
+properties:
+  compatible:
+    oneOf:
+      - const: marvell,xor-v2
+      - items:
+          - enum:
+              - marvell,armada-7k-xor
+          - const: marvell,xor-v2
+
+  reg:
+    items:
+      - description: DMA registers
+      - description: global registers
+
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: core
+      - const: reg
+
+  msi-parent:
+    description:
+      Phandle to the MSI-capable interrupt controller used for
+      interrupts.
+    maxItems: 1
+
+  dma-coherent: true
+
+required:
+  - compatible
+  - reg
+  - msi-parent
+  - dma-coherent
+
+additionalProperties: false
+
+examples:
+  - |
+    xor0@6a0000 {
+        compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
+        reg = <0x6a0000 0x1000>, <0x6b0000 0x1000>;
+        clocks = <&ap_clk 0>, <&ap_clk 1>;
+        clock-names = "core", "reg";
+        msi-parent = <&gic_v2m0>;
+        dma-coherent;
+    };
diff --git a/Bindings/dma/mv-xor-v2.txt b/Bindings/dma/mv-xor-v2.txt
deleted file mode 100644 (file)
index 9c38bbe..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-* Marvell XOR v2 engines
-
-Required properties:
-- compatible: one of the following values:
-    "marvell,armada-7k-xor"
-    "marvell,xor-v2"
-- reg: Should contain registers location and length (two sets)
-    the first set is the DMA registers
-    the second set is the global registers
-- msi-parent: Phandle to the MSI-capable interrupt controller used for
-  interrupts.
-
-Optional properties:
-- clocks: Optional reference to the clocks used by the XOR engine.
-- clock-names: mandatory if there is a second clock, in this case the
-   name must be "core" for the first clock and "reg" for the second
-   one
-
-
-Example:
-
-       xor0@400000 {
-               compatible = "marvell,xor-v2";
-               reg = <0x400000 0x1000>,
-                     <0x410000 0x1000>;
-               msi-parent = <&gic_v2m0>;
-               dma-coherent;
-       };
diff --git a/Bindings/dma/nxp,lpc3220-dmamux.yaml b/Bindings/dma/nxp,lpc3220-dmamux.yaml
new file mode 100644 (file)
index 0000000..32f2087
--- /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/dma/nxp,lpc3220-dmamux.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: DMA multiplexer for LPC32XX SoC (DMA request router)
+
+maintainers:
+  - J.M.B. Downing <jonathan.downing@nautel.com>
+  - Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
+
+allOf:
+  - $ref: dma-router.yaml#
+
+properties:
+  compatible:
+    const: nxp,lpc3220-dmamux
+
+  reg:
+    maxItems: 1
+
+  dma-masters:
+    description: phandle to a dma node compatible with arm,pl080
+    maxItems: 1
+
+  "#dma-cells":
+    const: 3
+    description: |
+      First two cells same as for device pointed in dma-masters.
+      Third cell represents mux value for the request.
+
+required:
+  - compatible
+  - reg
+  - dma-masters
+
+additionalProperties: false
+
+examples:
+  - |
+    dma-router@7c {
+      compatible = "nxp,lpc3220-dmamux";
+      reg = <0x7c 0x8>;
+      dma-masters = <&dma>;
+      #dma-cells = <3>;
+    };
+
+...
index a42b6a26a6d3f25874186faad8ce91995857f1a2..ca24cf48769f6dccc5ae4c946ac344fa691303b7 100644 (file)
@@ -19,6 +19,7 @@ properties:
           - renesas,r9a07g043-dmac # RZ/G2UL and RZ/Five
           - renesas,r9a07g044-dmac # RZ/G2{L,LC}
           - renesas,r9a07g054-dmac # RZ/V2L
+          - renesas,r9a08g045-dmac # RZ/G3S
       - const: renesas,rz-dmac
 
   reg:
index 47e477cce6d24d41430fbd192a64cbd6ef2593c0..1f9831540c97913f7a691660fc2eae9e0d17a3fd 100644 (file)
@@ -20,7 +20,7 @@ Optional properties:
                memcpy channels in eDMA.
 
 Notes:
-When requesting channel via ti,dra7-dma-crossbar, the DMA clinet must request
+When requesting channel via ti,dra7-dma-crossbar, the DMA client must request
 the DMA event number as crossbar ID (input to the DMA crossbar).
 
 For ti,am335x-edma-crossbar: the meaning of parameters of dmas for clients:
index 769ce23aaac27518cfad1bc8eaed4da280580013..ac3198953b8e5966fcd09c44ac4455695c5fb48f 100644 (file)
@@ -24,7 +24,9 @@ properties:
     const: 1
 
   compatible:
-    const: xlnx,zynqmp-dma-1.0
+    enum:
+      - amd,versal2-dma-1.0
+      - xlnx,zynqmp-dma-1.0
 
   reg:
     description: memory map for gdma/adma module access
index e396e47b2f13cb0e57bffceaabee255658ad2a5e..b6239ec3512b34153a8d6c2a51f889045cf0d1f9 100644 (file)
@@ -116,6 +116,7 @@ properties:
           - const: atmel,24c02
       - items:
           - enum:
+              - giantec,gt24c04a
               - onnn,cat24c04
               - onnn,cat24c05
               - rohm,br24g04
index d5cfa32ea52dd5858801e86da488f6d845b9ab54..072b3c0c5fd037eda4c52c941bbc87462571a348 100644 (file)
@@ -37,6 +37,11 @@ properties:
       GPIO pin (output) used to control VBUS. If skipped, no such control
       takes place.
 
+  port:
+    $ref: /schemas/graph.yaml#/properties/port
+    description:
+      A port node to link the usb controller for the dual role switch.
+
 required:
   - compatible
   - interrupts
@@ -58,5 +63,11 @@ examples:
             interrupt-parent = <&msmgpio>;
             interrupts = <78 IRQ_TYPE_LEVEL_HIGH>;
             vbus-gpios = <&msmgpio 148 GPIO_ACTIVE_HIGH>;
+
+            port {
+                endpoint {
+                    remote-endpoint = <&usb1_drd_sw>;
+                };
+            };
         };
     };
diff --git a/Bindings/extcon/extcon-usb-gpio.txt b/Bindings/extcon/extcon-usb-gpio.txt
deleted file mode 100644 (file)
index dfc14f7..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-USB GPIO Extcon device
-
-This is a virtual device used to generate USB cable states from the USB ID pin
-connected to a GPIO pin.
-
-Required properties:
-- compatible: Should be "linux,extcon-usb-gpio"
-
-Either one of id-gpio or vbus-gpio must be present. Both can be present as well.
-- id-gpio: gpio for USB ID pin. See gpio binding.
-- vbus-gpio: gpio for USB VBUS pin.
-
-Example: Examples of extcon-usb-gpio node in dra7-evm.dts as listed below:
-       extcon_usb1 {
-               compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&gpio6 1 GPIO_ACTIVE_HIGH>;
-       }
-
-       &omap_dwc3_1 {
-               extcon = <&extcon_usb1>;
-       };
diff --git a/Bindings/extcon/linux,extcon-usb-gpio.yaml b/Bindings/extcon/linux,extcon-usb-gpio.yaml
new file mode 100644 (file)
index 0000000..8856107
--- /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/extcon/linux,extcon-usb-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: USB GPIO Extcon device
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  This is a virtual device used to generate USB cable states from the USB ID pin
+  connected to a GPIO pin.
+
+properties:
+  compatible:
+    const: linux,extcon-usb-gpio
+
+  id-gpios:
+    description: gpio for USB ID pin. See gpio binding.
+  vbus-gpios:
+    description: gpio for USB VBUS pin.
+
+required:
+  - compatible
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    extcon_usb1 {
+        compatible = "linux,extcon-usb-gpio";
+        id-gpios = <&gpio6 1 GPIO_ACTIVE_HIGH>;
+    };
index 4d823f3b1f0e900c29f5999c7a2372166dcdd2a3..ff7a6f12cd00f5ed2cbef04cbfbbc12be1adb327 100644 (file)
@@ -22,6 +22,9 @@ description: |
 
   [0] https://developer.arm.com/documentation/den0056/latest
 
+anyOf:
+  - $ref: /schemas/firmware/nxp,imx95-scmi.yaml
+
 properties:
   $nodename:
     const: scmi
@@ -121,6 +124,13 @@ properties:
       atomic mode of operation, even if requested.
     default: 0
 
+  arm,max-rx-timeout-ms:
+    description:
+      An optional time value, expressed in milliseconds, representing the
+      transport maximum timeout value for the receive channel. The value should
+      be a non-zero value if set.
+    minimum: 1
+
   arm,smc-id:
     $ref: /schemas/types.yaml#/definitions/uint32
     description:
@@ -145,6 +155,14 @@ properties:
     required:
       - '#power-domain-cells'
 
+  protocol@12:
+    $ref: '#/$defs/protocol-node'
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        const: 0x12
+
   protocol@13:
     $ref: '#/$defs/protocol-node'
     unevaluatedProperties: false
@@ -284,7 +302,7 @@ properties:
     required:
       - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 $defs:
   protocol-node:
diff --git a/Bindings/firmware/nxp,imx95-scmi.yaml b/Bindings/firmware/nxp,imx95-scmi.yaml
new file mode 100644 (file)
index 0000000..1a95010
--- /dev/null
@@ -0,0 +1,43 @@
+# 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.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: i.MX95 System Control and Management Interface(SCMI) Vendor Protocols Extension
+
+maintainers:
+  - Peng Fan <peng.fan@nxp.com>
+
+properties:
+  protocol@81:
+    $ref: '/schemas/firmware/arm,scmi.yaml#/$defs/protocol-node'
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        const: 0x81
+
+  protocol@84:
+    $ref: '/schemas/firmware/arm,scmi.yaml#/$defs/protocol-node'
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        const: 0x84
+
+      nxp,ctrl-ids:
+        description:
+          Each entry consists of 2 integers, represents the ctrl id and the value
+        items:
+          items:
+            - description: the ctrl id index
+              enum: [0, 1, 2, 3, 4, 5, 6, 7, 0x8000, 0x8001, 0x8002, 0x8003,
+                     0x8004, 0x8005, 0x8006, 0x8007]
+            - description: the value assigned to the ctrl id
+        minItems: 1
+        maxItems: 16
+        $ref: /schemas/types.yaml#/definitions/uint32-matrix
+
+additionalProperties: true
index c21549e0fba6421b2c49a141e0d1d3c787716f13..089166089498d10739bc0cefec7de091fcb34d46 100644 (file)
@@ -18,6 +18,7 @@ description:
 
 allOf:
   - $ref: gnss-common.yaml#
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
 
 properties:
   compatible:
index 963b926e30a7040c32499a5ca93fabb02d0d2f0e..d4430d2d6855c9f0548ecf94d3c9d25c4220b725 100644 (file)
@@ -35,11 +35,6 @@ properties:
       GPIO line, this is used.
     maxItems: 1
 
-  current-speed:
-    description: The baudrate in bits per second of the device as it comes
-      online, current active speed.
-    $ref: /schemas/types.yaml#/definitions/uint32
-
 additionalProperties: true
 
 examples:
index c0eb35beb2ef39a45cc778dabe31afd1a0ddb1d4..2b9e5be4ebf3021da450c054909d69b015c0dd34 100644 (file)
@@ -15,6 +15,7 @@ description:
 
 allOf:
   - $ref: gnss-common.yaml#
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
 
 properties:
   compatible:
index 0bbe684d82e105a642ecf2a517f4d8b99ebf437c..7e5da89a5ad718cd6bdf226d0dd7957c26fbbc94 100644 (file)
@@ -21,6 +21,7 @@ description:
 
 allOf:
   - $ref: gnss-common.yaml#
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
 
 properties:
   compatible:
index cd80668182b608aebaad460f63c558e6387d7076..7d4b6d49e5eea2201ac05ba6d54b1c1721172f26 100644 (file)
@@ -8,6 +8,7 @@ title: U-blox GNSS Receiver
 
 allOf:
   - $ref: gnss-common.yaml#
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
 
 maintainers:
   - Johan Hovold <johan@kernel.org>
index c0ad70e66f760c30dbdb25f06935d246685b8f2b..e8bc9f018edb1253d700945f006e19598efb299a 100644 (file)
@@ -36,19 +36,8 @@ properties:
 patternProperties:
   "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$":
     type: object
-
-    properties:
-      gpio-hog: true
-      gpios: true
-      output-high: true
-      output-low: true
-      line-name: true
-
     required:
       - gpio-hog
-      - gpios
-
-    additionalProperties: false
 
 required:
   - compatible
index 65b6970e42fb156b5e5a2457f3954c200f617782..b74fa81e7d05bbb0001c3bfc7e201b13445ae7f8 100644 (file)
@@ -28,6 +28,7 @@ properties:
 
 patternProperties:
   "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$":
+    type: object
     required:
       - gpio-hog
 
index e1fc8bb6d379ab565f9837e0080d04b9d6e01703..6b06609c649ed805f646489de5463249a028dddd 100644 (file)
@@ -85,19 +85,8 @@ properties:
 patternProperties:
   "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$":
     type: object
-    properties:
-      gpio-hog: true
-      gpios: true
-      input: true
-      output-high: true
-      output-low: true
-      line-name: true
-
     required:
       - gpio-hog
-      - gpios
-
-    additionalProperties: false
 
 required:
   - compatible
index 10e56cf306dbab5829fa9941d9b257c5bcc18a78..1434d08f8b741fa8451def20a26d1e7d3c3e8414 100644 (file)
@@ -32,6 +32,8 @@ properties:
 
   gpio-ranges: true
 
+  gpio-reserved-ranges: true
+
   gpio-line-names:
     description: strings describing the names of each gpio line.
     minItems: 1
index daadfb4926c319636e84a62099bac3b7c845bade..3a1079d6ee200c59a7ff6117e5e8863123634f2a 100644 (file)
@@ -73,9 +73,10 @@ examples:
       reg-names = "data", "dir", "intr";
       gpio-controller;
       #gpio-cells = <2>;
-        interrupt-controller;
-        interrupt-parent = <&vic1>;
-        interrupts = <27>;
+      interrupt-controller;
+      #interrupt-cells = <2>;
+      interrupt-parent = <&vic1>;
+      interrupts = <27>;
     };
 
     gpio@80840004 {
@@ -87,6 +88,7 @@ examples:
       gpio-controller;
       #gpio-cells = <2>;
       interrupt-controller;
+      #interrupt-cells = <2>;
       interrupt-parent = <&vic1>;
       interrupts = <27>;
     };
@@ -127,6 +129,7 @@ examples:
       gpio-controller;
       #gpio-cells = <2>;
       interrupt-controller;
+      #interrupt-cells = <2>;
       interrupts-extended = <&vic0 19>, <&vic0 20>,
                             <&vic0 21>, <&vic0 22>,
                             <&vic1 15>, <&vic1 16>,
index 51e8390d6b32b3225195d5875b1a263fd8c305fb..7b1eb08fa055cc75fc8c2f4efb0efe0e8a123c1d 100644 (file)
@@ -107,19 +107,8 @@ properties:
 patternProperties:
   "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$":
     type: object
-    properties:
-      gpio-hog: true
-      gpios: true
-      input: true
-      output-high: true
-      output-low: true
-      line-name: true
-
     required:
       - gpio-hog
-      - gpios
-
-    additionalProperties: false
 
 required:
   - compatible
diff --git a/Bindings/gpio/gpio_lpc32xx.txt b/Bindings/gpio/gpio_lpc32xx.txt
deleted file mode 100644 (file)
index 4981936..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-NXP LPC32xx SoC GPIO controller
-
-Required properties:
-- compatible: must be "nxp,lpc3220-gpio"
-- reg: Physical base address and length of the controller's registers.
-- gpio-controller: Marks the device node as a GPIO controller.
-- #gpio-cells: Should be 3:
-   1) bank:
-      0: GPIO P0
-      1: GPIO P1
-      2: GPIO P2
-      3: GPIO P3
-      4: GPI P3
-      5: GPO P3
-   2) pin number
-   3) optional parameters:
-      - bit 0 specifies polarity (0 for normal, 1 for inverted)
-- reg: Index of the GPIO group
-
-Example:
-
-       gpio: gpio@40028000 {
-               compatible = "nxp,lpc3220-gpio";
-               reg = <0x40028000 0x1000>;
-               gpio-controller;
-               #gpio-cells = <3>; /* bank, pin, flags */
-       };
-
-       leds {
-               compatible = "gpio-leds";
-
-               led0 {
-                       gpios = <&gpio 5 1 1>; /* GPO_P3 1, active low */
-                       linux,default-trigger = "heartbeat";
-                       default-state = "off";
-               };
-
-               led1 {
-                       gpios = <&gpio 5 14 1>; /* GPO_P3 14, active low */
-                       linux,default-trigger = "timer";
-                       default-state = "off";
-               };
-       };
index d61569b3f15b2aae13fe3790fa780f885a863559..d78da7dd2a56680911b69577b14b13b8426bf278 100644 (file)
@@ -49,20 +49,8 @@ properties:
 patternProperties:
   "^.+-hog(-[0-9]+)?$":
     type: object
-
-    additionalProperties: false
-
-    properties:
-      gpio-hog: true
-      gpios: true
-      input: true
-      output-high: true
-      output-low: true
-      line-name: true
-
     required:
       - gpio-hog
-      - gpios
 
 allOf:
   - if:
diff --git a/Bindings/gpio/nxp,lpc3220-gpio.yaml b/Bindings/gpio/nxp,lpc3220-gpio.yaml
new file mode 100644 (file)
index 0000000..25b5494
--- /dev/null
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/nxp,lpc3220-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP LPC3220 SoC GPIO controller
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+properties:
+  compatible:
+    const: nxp,lpc3220-gpio
+
+  reg:
+    maxItems: 1
+
+  gpio-controller: true
+
+  '#gpio-cells':
+    const: 3
+    description: |
+      1) bank:
+        0: GPIO P0
+        1: GPIO P1
+        2: GPIO P2
+        3: GPIO P3
+        4: GPI P3
+        5: GPO P3
+      2) pin number
+      3) flags:
+        - bit 0 specifies polarity (0 for normal, 1 for inverted)
+
+required:
+  - compatible
+  - reg
+  - gpio-controller
+  - '#gpio-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    gpio@40028000 {
+        compatible = "nxp,lpc3220-gpio";
+        reg = <0x40028000 0x1000>;
+        gpio-controller;
+        #gpio-cells = <3>; /* bank, pin, flags */
+    };
index 228fa27ffdc33d9510890a59cd720dd62127b69a..36f5a06104713d6cdbdf23f594bd99c881cbf572 100644 (file)
@@ -55,19 +55,8 @@ properties:
 patternProperties:
   "^.+-hog(-[0-9]+)?$":
     type: object
-    properties:
-      gpio-hog: true
-      gpios: true
-      input: true
-      output-high: true
-      output-low: true
-      line-name: true
-
     required:
       - gpio-hog
-      - gpios
-
-    additionalProperties: false
 
 required:
   - compatible
diff --git a/Bindings/hwlock/sprd,hwspinlock-r3p0.yaml b/Bindings/hwlock/sprd,hwspinlock-r3p0.yaml
new file mode 100644 (file)
index 0000000..abe11df
--- /dev/null
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwlock/sprd,hwspinlock-r3p0.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Spreadtrum hardware spinlock
+
+maintainers:
+  - Orson Zhai <orsonzhai@gmail.com>
+  - Baolin Wang <baolin.wang7@gmail.com>
+  - Chunyan Zhang <zhang.lyra@gmail.com>
+
+properties:
+  compatible:
+    const: sprd,hwspinlock-r3p0
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: enable
+
+  '#hwlock-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#hwlock-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/sprd,sc9860-clk.h>
+
+    hwlock@40500000 {
+      compatible = "sprd,hwspinlock-r3p0";
+      reg = <0x40500000 0x1000>;
+      clocks = <&aon_gate CLK_SPLK_EB>;
+      clock-names = "enable";
+      #hwlock-cells = <1>;
+    };
+...
diff --git a/Bindings/hwlock/sprd-hwspinlock.txt b/Bindings/hwlock/sprd-hwspinlock.txt
deleted file mode 100644 (file)
index 581db9d..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-SPRD Hardware Spinlock Device Binding
--------------------------------------
-
-Required properties :
-- compatible : should be "sprd,hwspinlock-r3p0".
-- reg : the register address of hwspinlock.
-- #hwlock-cells : hwlock users only use the hwlock id to represent a specific
-       hwlock, so the number of cells should be <1> here.
-- clock-names : Must contain "enable".
-- clocks : Must contain a phandle entry for the clock in clock-names, see the
-       common clock bindings.
-
-Please look at the generic hwlock binding for usage information for consumers,
-"Documentation/devicetree/bindings/hwlock/hwlock.txt"
-
-Example of hwlock provider:
-       hwspinlock@40500000 {
-               compatible  = "sprd,hwspinlock-r3p0";
-               reg = <0 0x40500000 0 0x1000>;
-               #hwlock-cells = <1>;
-               clock-names = "enable";
-               clocks = <&clk_aon_apb_gates0 22>;
-       };
index 051c976ab711f6a0473b54f9468d3c908e9ba97a..79e8d62fa3b3dd9495b1d707f76f13d352f13a86 100644 (file)
@@ -45,12 +45,31 @@ properties:
       the pwm uses a logic low output for 100% duty cycle. If set to 1 the pwm
       uses a logic high output for 100% duty cycle.
     $ref: /schemas/types.yaml#/definitions/uint32-array
+    deprecated: true
     minItems: 3
     maxItems: 3
     items:
       enum: [0, 1]
       default: 1
 
+  "#pwm-cells":
+    const: 4
+    description: |
+      Number of cells in a PWM specifier.
+      - 0: The PWM channel
+      - 1: The PWM period in nanoseconds
+           - 90909091 (11 Hz)
+           - 71428571 (14 Hz)
+           - 45454545 (22 Hz)
+           - 34482759 (29 Hz)
+           - 28571429 (35 Hz)
+           - 22727273 (44 Hz)
+           - 17241379 (58 Hz)
+           - 11363636 (88 Hz)
+           - 44444 (22 kHz)
+      - 2: PWM flags 0 or PWM_POLARITY_INVERTED
+      - 3: The default PWM duty cycle in nanoseconds
+
 patternProperties:
   "^adi,bypass-attenuator-in[0-4]$":
     description: |
@@ -81,6 +100,10 @@ patternProperties:
       - smbalert#
       - gpio
 
+  "^fan-[0-9]+$":
+    $ref: fan-common.yaml#
+    unevaluatedProperties: false
+
 required:
   - compatible
   - reg
@@ -89,17 +112,27 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/pwm/pwm.h>
     i2c {
       #address-cells = <1>;
       #size-cells = <0>;
 
-      hwmon@2e {
+      pwm: hwmon@2e {
         compatible = "adi,adt7476";
         reg = <0x2e>;
         adi,bypass-attenuator-in0 = <1>;
         adi,bypass-attenuator-in1 = <0>;
-        adi,pwm-active-state = <1 0 1>;
         adi,pin10-function = "smbalert#";
         adi,pin14-function = "tach4";
+        #pwm-cells = <4>;
+
+        /* PWMs at 22.5 kHz frequency, 50% duty*/
+        fan-0 {
+          pwms = <&pwm 0 44444 0 22222>;
+        };
+
+        fan-1 {
+          pwms = <&pwm 2 44444 0 22222>;
+        };
       };
     };
diff --git a/Bindings/hwmon/lltc,ltc2978.yaml b/Bindings/hwmon/lltc,ltc2978.yaml
new file mode 100644 (file)
index 0000000..1f98da3
--- /dev/null
@@ -0,0 +1,94 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/lltc,ltc2978.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Octal Digital Power-supply monitor/supervisor/sequencer/margin controller.
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    enum:
+      - lltc,ltc2972
+      - lltc,ltc2974
+      - lltc,ltc2975
+      - lltc,ltc2977
+      - lltc,ltc2978
+      - lltc,ltc2979
+      - lltc,ltc2980
+      - lltc,ltc3880
+      - lltc,ltc3882
+      - lltc,ltc3883
+      - lltc,ltc3884
+      - lltc,ltc3886
+      - lltc,ltc3887
+      - lltc,ltc3889
+      - lltc,ltc7880
+      - lltc,ltm2987
+      - lltc,ltm4664
+      - lltc,ltm4675
+      - lltc,ltm4676
+      - lltc,ltm4677
+      - lltc,ltm4678
+      - lltc,ltm4680
+      - lltc,ltm4686
+      - lltc,ltm4700
+
+  reg:
+    maxItems: 1
+
+  regulators:
+    type: object
+    description: |
+      list of regulators provided by this controller.
+      Valid names of regulators depend on number of supplies supported per device:
+      * ltc2972 vout0 - vout1
+      * ltc2974, ltc2975 : vout0 - vout3
+      * ltc2977, ltc2979, ltc2980, ltm2987 : vout0 - vout7
+      * ltc2978 : vout0 - vout7
+      * ltc3880, ltc3882, ltc3884, ltc3886, ltc3887, ltc3889 : vout0 - vout1
+      * ltc7880 : vout0 - vout1
+      * ltc3883 : vout0
+      * ltm4664 : vout0 - vout1
+      * ltm4675, ltm4676, ltm4677, ltm4678 : vout0 - vout1
+      * ltm4680, ltm4686 : vout0 - vout1
+      * ltm4700 : vout0 - vout1
+
+    patternProperties:
+      "^vout[0-7]$":
+        $ref: /schemas/regulator/regulator.yaml#
+        type: object
+        unevaluatedProperties: false
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        regulator@5e {
+            compatible = "lltc,ltc2978";
+            reg = <0x5e>;
+
+            regulators {
+                vout0 {
+                     regulator-name = "FPGA-2.5V";
+                };
+                vout2 {
+                     regulator-name = "FPGA-1.5V";
+                };
+            };
+        };
+    };
+
diff --git a/Bindings/hwmon/ltc2978.txt b/Bindings/hwmon/ltc2978.txt
deleted file mode 100644 (file)
index 4e7f621..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-ltc2978
-
-Required properties:
-- compatible: should contain one of:
-  * "lltc,ltc2972"
-  * "lltc,ltc2974"
-  * "lltc,ltc2975"
-  * "lltc,ltc2977"
-  * "lltc,ltc2978"
-  * "lltc,ltc2979"
-  * "lltc,ltc2980"
-  * "lltc,ltc3880"
-  * "lltc,ltc3882"
-  * "lltc,ltc3883"
-  * "lltc,ltc3884"
-  * "lltc,ltc3886"
-  * "lltc,ltc3887"
-  * "lltc,ltc3889"
-  * "lltc,ltc7880"
-  * "lltc,ltm2987"
-  * "lltc,ltm4664"
-  * "lltc,ltm4675"
-  * "lltc,ltm4676"
-  * "lltc,ltm4677"
-  * "lltc,ltm4678"
-  * "lltc,ltm4680"
-  * "lltc,ltm4686"
-  * "lltc,ltm4700"
-- reg: I2C slave address
-
-Optional properties:
-- regulators: A node that houses a sub-node for each regulator controlled by
-  the device. Each sub-node is identified using the node's name, with valid
-  values listed below. The content of each sub-node is defined by the
-  standard binding for regulators; see regulator.txt.
-
-Valid names of regulators depend on number of supplies supported per device:
-  * ltc2972 vout0 - vout1
-  * ltc2974, ltc2975 : vout0 - vout3
-  * ltc2977, ltc2979, ltc2980, ltm2987 : vout0 - vout7
-  * ltc2978 : vout0 - vout7
-  * ltc3880, ltc3882, ltc3884, ltc3886, ltc3887, ltc3889 : vout0 - vout1
-  * ltc7880 : vout0 - vout1
-  * ltc3883 : vout0
-  * ltm4664 : vout0 - vout1
-  * ltm4675, ltm4676, ltm4677, ltm4678 : vout0 - vout1
-  * ltm4680, ltm4686 : vout0 - vout1
-  * ltm4700 : vout0 - vout1
-
-Example:
-ltc2978@5e {
-       compatible = "lltc,ltc2978";
-       reg = <0x5e>;
-       regulators {
-               vout0 {
-                       regulator-name = "FPGA-2.5V";
-               };
-               vout2 {
-                       regulator-name = "FPGA-1.5V";
-               };
-       };
-};
diff --git a/Bindings/hwmon/maxim,max31790.yaml b/Bindings/hwmon/maxim,max31790.yaml
new file mode 100644 (file)
index 0000000..b1ff496
--- /dev/null
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/maxim,max31790.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: The Maxim MAX31790 Fan Controller
+
+maintainers:
+  - Guenter Roeck <linux@roeck-us.net>
+  - Chanh Nguyen <chanh@os.amperecomputing.com>
+
+description: >
+  The MAX31790 controls the speeds of up to six fans using six
+  independent PWM outputs. The desired fan speeds (or PWM duty cycles)
+  are written through the I2C interface.
+
+  Datasheets:
+    https://datasheets.maximintegrated.com/en/ds/MAX31790.pdf
+
+properties:
+  compatible:
+    const: maxim,max31790
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  "#pwm-cells":
+    const: 1
+
+patternProperties:
+  "^fan-[0-9]+$":
+    $ref: fan-common.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      pwm_provider: fan-controller@20 {
+        compatible = "maxim,max31790";
+        reg = <0x20>;
+        clocks = <&sys_clk>;
+        resets = <&reset 0>;
+        #pwm-cells = <1>;
+
+        fan-0 {
+          pwms = <&pwm_provider 1>;
+        };
+
+        fan-1 {
+          pwms = <&pwm_provider 2>;
+        };
+      };
+    };
+
diff --git a/Bindings/hwmon/sophgo,sg2042-hwmon-mcu.yaml b/Bindings/hwmon/sophgo,sg2042-hwmon-mcu.yaml
new file mode 100644 (file)
index 0000000..f0667ac
--- /dev/null
@@ -0,0 +1,43 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/sophgo,sg2042-hwmon-mcu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sophgo SG2042 onboard MCU support
+
+maintainers:
+  - Inochi Amaoto <inochiama@outlook.com>
+
+properties:
+  compatible:
+    const: sophgo,sg2042-hwmon-mcu
+
+  reg:
+    maxItems: 1
+
+  "#thermal-sensor-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - "#thermal-sensor-cells"
+
+allOf:
+  - $ref: /schemas/thermal/thermal-sensor.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        hwmon@17 {
+            compatible = "sophgo,sg2042-hwmon-mcu";
+            reg = <0x17>;
+            #thermal-sensor-cells = <1>;
+        };
+    };
index 6df27b47b922c5c019586b24283cc806f26fbbcf..5b9bd2feda3b73a6c1826fb70f6721edae3c058e 100644 (file)
@@ -44,11 +44,6 @@ properties:
     description: frequency of the bus clock in Hz defaults to 100 kHz when not
       specified
 
-  multi-master:
-    type: boolean
-    description:
-      states that there is another master active on this bus
-
 required:
   - reg
   - compatible
index 82b9d6682297b941c23c2c6f51495bccd5fc4652..a9dae5b52f28656944b0c7e528fb7d62091ec804 100644 (file)
@@ -38,6 +38,7 @@ properties:
               - rockchip,rk3308-i2c
               - rockchip,rk3328-i2c
               - rockchip,rk3568-i2c
+              - rockchip,rk3576-i2c
               - rockchip,rk3588-i2c
               - rockchip,rv1126-i2c
           - const: rockchip,rk3399-i2c
diff --git a/Bindings/i2c/i2c-sprd.txt b/Bindings/i2c/i2c-sprd.txt
deleted file mode 100644 (file)
index 7b6b3b8..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-I2C for Spreadtrum platforms
-
-Required properties:
-- compatible: Should be "sprd,sc9860-i2c".
-- reg: Specify the physical base address of the controller and length
-  of memory mapped region.
-- interrupts: Should contain I2C interrupt.
-- clock-names: Should contain following entries:
-  "i2c" for I2C clock,
-  "source" for I2C source (parent) clock,
-  "enable" for I2C module enable clock.
-- clocks: Should contain a clock specifier for each entry in clock-names.
-- clock-frequency: Contains desired I2C bus clock frequency in Hz.
-- #address-cells: Should be 1 to describe address cells for I2C device address.
-- #size-cells: Should be 0 means no size cell for I2C device address.
-
-Optional properties:
-- Child nodes conforming to I2C bus binding
-
-Examples:
-i2c0: i2c@70500000 {
-       compatible = "sprd,sc9860-i2c";
-       reg = <0 0x70500000 0 0x1000>;
-       interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
-       clock-names = "i2c", "source", "enable";
-       clocks = <&clk_i2c3>, <&ext_26m>, <&clk_ap_apb_gates 11>;
-       clock-frequency = <400000>;
-       #address-cells = <1>;
-       #size-cells = <0>;
-};
-
index 92fbc1a2671ad775a4939299858fdb4c24c354fb..b57ae6963e62988f008f036c5d3f4c81f68c1530 100644 (file)
@@ -103,6 +103,9 @@ properties:
     items:
       - const: i2c
 
+  power-domains:
+    maxItems: 1
+
   dmas:
     items:
       - description: DMA channel for the reception FIFO
@@ -124,6 +127,8 @@ allOf:
               - nvidia,tegra30-i2c
     then:
       properties:
+        clocks:
+          minItems: 2
         clock-names:
           items:
             - const: div-clk
@@ -133,20 +138,13 @@ allOf:
       properties:
         compatible:
           contains:
-            const: nvidia,tegra114-i2c
-    then:
-      properties:
-        clock-names:
-          items:
-            - const: div-clk
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            const: nvidia,tegra210-i2c
+            enum:
+              - nvidia,tegra114-i2c
+              - nvidia,tegra210-i2c
     then:
       properties:
+        clocks:
+          maxItems: 1
         clock-names:
           items:
             - const: div-clk
@@ -158,6 +156,8 @@ allOf:
             const: nvidia,tegra210-i2c-vi
     then:
       properties:
+        clocks:
+          minItems: 2
         clock-names:
           items:
             - const: div-clk
@@ -165,6 +165,9 @@ allOf:
         power-domains:
           items:
             - description: phandle to the VENC power domain
+    else:
+      properties:
+        power-domains: false
 
 unevaluatedProperties: false
 
index c33ae7b63b84f23fe1f53a092b169396e7e444b0..7dab3852c7f87f7369d302a6ce0df9b9abcd7810 100644 (file)
@@ -130,6 +130,7 @@ allOf:
     then:
       properties:
         clocks:
+          minItems: 4
           maxItems: 4
         clock-names:
           items:
index 7993fe463c4c3fafcfefa57ecff3935a838e8d06..505a8ec922668efaf14af1742f7ba8e396227509 100644 (file)
@@ -25,6 +25,10 @@ properties:
               - renesas,riic-r9a07g054  # RZ/V2L
           - const: renesas,riic-rz      # RZ/A or RZ/G2L
 
+      - items:
+          - const: renesas,riic-r9a08g045   # RZ/G3S
+          - const: renesas,riic-r9a09g057   # RZ/V2H(P)
+
       - const: renesas,riic-r9a09g057   # RZ/V2H(P)
 
   reg:
diff --git a/Bindings/i2c/sprd,sc9860-i2c.yaml b/Bindings/i2c/sprd,sc9860-i2c.yaml
new file mode 100644 (file)
index 0000000..ec0d39e
--- /dev/null
@@ -0,0 +1,65 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/i2c/sprd,sc9860-i2c.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Spreadtrum SC9860 I2C controller
+
+maintainers:
+  - Orson Zhai <orsonzhai@gmail.com>
+  - Baolin Wang <baolin.wang7@gmail.com>
+  - Chunyan Zhang <zhang.lyra@gmail.com>
+
+allOf:
+  - $ref: /schemas/i2c/i2c-controller.yaml#
+
+properties:
+  compatible:
+    const: sprd,sc9860-i2c
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: I2C clock
+      - description: I2C source (parent) clock
+      - description: I2C module enable clock
+
+  clock-names:
+    items:
+      - const: i2c
+      - const: source
+      - const: enable
+
+  clock-frequency: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+  - clock-frequency
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c@70500000 {
+      compatible = "sprd,sc9860-i2c";
+      reg = <0x70500000 0x1000>;
+      interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+      clocks = <&clk_i2c3>, <&ext_26m>, <&clk_ap_apb_gates 11>;
+      clock-names = "i2c", "source", "enable";
+      clock-frequency = <400000>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+    };
diff --git a/Bindings/i2c/tsd,mule-i2c-mux.yaml b/Bindings/i2c/tsd,mule-i2c-mux.yaml
new file mode 100644 (file)
index 0000000..28139b6
--- /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/i2c/tsd,mule-i2c-mux.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Theobroma Systems Mule I2C multiplexer
+
+maintainers:
+  - Farouk Bouabid <farouk.bouabid@cherry.de>
+  - Quentin Schulz <quentin.schulz@cherry.de>
+
+description: |
+  Theobroma Systems Mule is an MCU that emulates a set of I2C devices, among
+  which devices that are reachable through an I2C-mux. The devices on the mux
+  can be selected by writing the appropriate device number to an I2C config
+  register.
+
+
+      +--------------------------------------------------+
+      | Mule                                             |
+  0x18|    +---------------+                             |
+  -------->|Config register|----+                        |
+      |    +---------------+    |                        |
+      |                         V_                       |
+      |                        |  \          +--------+  |
+      |                        |   \-------->| dev #0 |  |
+      |                        |   |         +--------+  |
+  0x6f|                        | M |-------->| dev #1 |  |
+  ---------------------------->| U |         +--------+  |
+      |                        | X |-------->| dev #2 |  |
+      |                        |   |         +--------+  |
+      |                        |   /-------->| dev #3 |  |
+      |                        |__/          +--------+  |
+      +--------------------------------------------------+
+
+
+allOf:
+  - $ref: /schemas/i2c/i2c-mux.yaml#
+
+properties:
+  compatible:
+    const: tsd,mule-i2c-mux
+
+required:
+  - compatible
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c-mux {
+        compatible = "tsd,mule-i2c-mux";
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        i2c@0 {
+            reg = <0x0>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            rtc@6f {
+                compatible = "isil,isl1208";
+                reg = <0x6f>;
+            };
+        };
+    };
+...
+
diff --git a/Bindings/iio/accel/adi,adxl380.yaml b/Bindings/iio/accel/adi,adxl380.yaml
new file mode 100644 (file)
index 0000000..f1ff5ff
--- /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/iio/accel/adi,adxl380.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices ADXL380/382 3-Axis Digital Accelerometer
+
+maintainers:
+  - Ramona Gradinariu <ramona.gradinariu@analog.com>
+  - Antoniu Miclaus <antoniu.miclaus@analog.com>
+
+description: |
+  The ADXL380/ADXL382 is a low noise density, low power, 3-axis
+  accelerometer with selectable measurement ranges. The ADXL380
+  supports the ±4 g, ±8 g, and ±16 g ranges, and the ADXL382 supports
+  ±15 g, ±30 g, and ±60 g ranges.
+
+  https://www.analog.com/en/products/adxl380.html
+
+properties:
+  compatible:
+    enum:
+      - adi,adxl380
+      - adi,adxl382
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    minItems: 1
+    maxItems: 2
+
+  interrupt-names:
+    minItems: 1
+    items:
+      - enum: [INT0, INT1]
+      - const: INT1
+
+  vddio-supply: true
+
+  vsupply-supply: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-names
+  - vddio-supply
+  - vsupply-supply
+
+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>;
+
+      accelerometer@54 {
+        compatible = "adi,adxl380";
+        reg = <0x54>;
+        vddio-supply = <&vddio>;
+        vsupply-supply = <&vsupply>;
+        interrupt-parent = <&gpio>;
+        interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "INT0";
+      };
+    };
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      accelerometer@0 {
+        compatible = "adi,adxl380";
+        reg = <0>;
+        spi-max-frequency = <8000000>;
+        vddio-supply = <&vddio>;
+        vsupply-supply = <&vsupply>;
+        interrupt-parent = <&gpio>;
+        interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "INT0";
+      };
+    };
index 6ddb03f61bd9c1c4f8b3c90118b9e434c66a049c..951a3a2ba8fc6ea44ab1613abfaf1f271b1dbbe2 100644 (file)
@@ -16,6 +16,7 @@ properties:
       - kionix,kxcj91008
       - kionix,kxtj21009
       - kionix,kxtf9
+      - kionix,kx022-1020
       - kionix,kx023-1025
 
   reg:
index 764e28ec1a0a8ff3d13e41a55d1a13f3f1fbcfcb..457539647f36ffe9d17a01fb752e6b1cb5f2e951 100644 (file)
@@ -36,7 +36,7 @@ Optional properties for all bus drivers:
  - st,irq{1,2}-disable:                disable IRQ 1/2
  - st,irq{1,2}-ff-wu-1:                raise IRQ 1/2 on FF_WU_1 condition
  - st,irq{1,2}-ff-wu-2:                raise IRQ 1/2 on FF_WU_2 condition
- - st,irq{1,2}-data-ready:     raise IRQ 1/2 on data ready contition
+ - st,irq{1,2}-data-ready:     raise IRQ 1/2 on data ready condition
  - st,irq{1,2}-click:          raise IRQ 1/2 on click condition
  - st,irq-open-drain:          consider IRQ lines open-drain
  - st,irq-active-low:          make IRQ lines active low
diff --git a/Bindings/iio/adc/adi,ad4000.yaml b/Bindings/iio/adc/adi,ad4000.yaml
new file mode 100644 (file)
index 0000000..e413a9d
--- /dev/null
@@ -0,0 +1,197 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/adi,ad4000.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AD4000 and similar Analog to Digital Converters
+
+maintainers:
+  - Marcelo Schmitt <marcelo.schmitt@analog.com>
+
+description: |
+  Analog Devices AD4000 family of Analog to Digital Converters with SPI support.
+  Specifications can be found at:
+    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4000-4004-4008.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4001-4005.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4002-4006-4010.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4003-4007-4011.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4020-4021-4022.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4001.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4003.pdf
+
+$ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: adi,ad4000
+      - items:
+          - enum:
+              - adi,ad4004
+              - adi,ad4008
+          - const: adi,ad4000
+
+      - const: adi,ad4001
+      - items:
+          - enum:
+              - adi,ad4005
+          - const: adi,ad4001
+
+      - const: adi,ad4002
+      - items:
+          - enum:
+              - adi,ad4006
+              - adi,ad4010
+          - const: adi,ad4002
+
+      - const: adi,ad4003
+      - items:
+          - enum:
+              - adi,ad4007
+              - adi,ad4011
+          - const: adi,ad4003
+
+      - const: adi,ad4020
+      - items:
+          - enum:
+              - adi,ad4021
+              - adi,ad4022
+          - const: adi,ad4020
+
+      - const: adi,adaq4001
+
+      - const: adi,adaq4003
+
+  reg:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 102040816 # for VIO > 2.7 V, 81300813 for VIO > 1.7 V
+
+  adi,sdi-pin:
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [ high, low, cs, sdi ]
+    default: sdi
+    description:
+      Describes how the ADC SDI pin is wired. A value of "sdi" indicates that
+      the ADC SDI is connected to host SDO. "high" indicates that the ADC SDI
+      pin is hard-wired to logic high (VIO). "low" indicates that it is
+      hard-wired low (GND). "cs" indicates that the ADC SDI pin is connected to
+      the host CS line.
+
+  '#daisy-chained-devices': true
+
+  vdd-supply:
+    description: A 1.8V supply that powers the chip (VDD).
+
+  vio-supply:
+    description:
+      A 1.8V to 5.5V supply for the digital inputs and outputs (VIO).
+
+  ref-supply:
+    description:
+      A 2.5 to 5V supply for the external reference voltage (REF).
+
+  cnv-gpios:
+    description:
+      When provided, this property indicates the GPIO that is connected to the
+      CNV pin.
+    maxItems: 1
+
+  adi,high-z-input:
+    type: boolean
+    description:
+      High-Z mode allows the amplifier and RC filter in front of the ADC to be
+      chosen based on the signal bandwidth of interest, rather than the settling
+      requirements of the switched capacitor SAR ADC inputs.
+
+  adi,gain-milli:
+    description: |
+      The hardware gain applied to the ADC input (in milli units).
+      The gain provided by the ADC input scaler is defined by the hardware
+      connections between chip pins OUT+, R1K-, R1K1-, R1K+, R1K1+, and OUT-.
+      If not present, default to 1000 (no actual gain applied).
+    $ref: /schemas/types.yaml#/definitions/uint16
+    enum: [454, 909, 1000, 1900]
+    default: 1000
+
+  interrupts:
+    description:
+      The SDO pin can also function as a busy indicator. This node should be
+      connected to an interrupt that is triggered when the SDO line goes low
+      while the SDI line is high and the CNV line is low ("3-wire" mode) or the
+      SDI line is low and the CNV line is high ("4-wire" mode); or when the SDO
+      line goes high while the SDI and CNV lines are high (chain mode),
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+  - vio-supply
+  - ref-supply
+
+allOf:
+  # The configuration register can only be accessed if SDI is connected to MOSI
+  - if:
+      required:
+        - adi,sdi-pin
+    then:
+      properties:
+        adi,high-z-input: false
+  # chain mode has lower SCLK max rate
+  - if:
+      required:
+        - '#daisy-chained-devices'
+    then:
+      properties:
+        spi-max-frequency:
+          maximum: 50000000 # for VIO > 2.7 V, 40000000 for VIO > 1.7 V
+  # Gain property only applies to ADAQ devices
+  - if:
+      properties:
+        compatible:
+          not:
+            contains:
+              enum:
+                - adi,adaq4001
+                - adi,adaq4003
+    then:
+      properties:
+        adi,gain-milli: false
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        adc@0 {
+            compatible = "adi,ad4020";
+            reg = <0>;
+            spi-max-frequency = <71000000>;
+            vdd-supply = <&supply_1_8V>;
+            vio-supply = <&supply_1_8V>;
+            ref-supply = <&supply_5V>;
+            adi,sdi-pin = "cs";
+            cnv-gpios = <&gpio0 88 GPIO_ACTIVE_HIGH>;
+        };
+    };
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        adc@0 {
+            compatible = "adi,adaq4003";
+            reg = <0>;
+            spi-max-frequency = <80000000>;
+            vdd-supply = <&supply_1_8V>;
+            vio-supply = <&supply_1_8V>;
+            ref-supply = <&supply_5V>;
+            adi,high-z-input;
+            adi,gain-milli = /bits/ 16 <454>;
+        };
+    };
diff --git a/Bindings/iio/adc/adi,ad4695.yaml b/Bindings/iio/adc/adi,ad4695.yaml
new file mode 100644 (file)
index 0000000..310f046
--- /dev/null
@@ -0,0 +1,254 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/adi,ad4695.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices Easy Drive Multiplexed SAR Analog to Digital Converters
+
+maintainers:
+  - Michael Hennerich <Michael.Hennerich@analog.com>
+  - Nuno Sá <nuno.sa@analog.com>
+
+description: |
+  A family of similar multi-channel analog to digital converters with SPI bus.
+
+  * https://www.analog.com/en/products/ad4695.html
+  * https://www.analog.com/en/products/ad4696.html
+  * https://www.analog.com/en/products/ad4697.html
+  * https://www.analog.com/en/products/ad4698.html
+
+$ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    enum:
+      - adi,ad4695
+      - adi,ad4696
+      - adi,ad4697
+      - adi,ad4698
+
+  reg:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 80000000
+
+  spi-cpol: true
+  spi-cpha: true
+
+  spi-rx-bus-width:
+    minimum: 1
+    maximum: 4
+
+  avdd-supply:
+    description: Analog power supply.
+
+  vio-supply:
+    description: I/O pin power supply.
+
+  ldo-in-supply:
+    description: Internal LDO Input. Mutually exclusive with vdd-supply.
+
+  vdd-supply:
+    description: Core power supply. Mutually exclusive with ldo-in-supply.
+
+  ref-supply:
+    description:
+      External reference voltage. Mutually exclusive with refin-supply.
+
+  refin-supply:
+    description:
+      Internal reference buffer input. Mutually exclusive with ref-supply.
+
+  com-supply:
+    description: Common voltage supply for pseudo-differential analog inputs.
+
+  adi,no-ref-current-limit:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      When this flag is present, the REF Overvoltage Reduced Current protection
+      is disabled.
+
+  adi,no-ref-high-z:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Enable this flag if the ref-supply requires Reference Input High-Z Mode
+      to be disabled for proper operation.
+
+  cnv-gpios:
+    description: The Convert Input (CNV). If omitted, CNV is tied to SPI CS.
+    maxItems: 1
+
+  reset-gpios:
+    description: The Reset Input (RESET). Should be configured GPIO_ACTIVE_LOW.
+    maxItems: 1
+
+  interrupts:
+    minItems: 1
+    items:
+      - description: Signal coming from the BSY_ALT_GP0 pin (ALERT or BUSY).
+      - description: Signal coming from the GP2 pin (ALERT).
+      - description: Signal coming from the GP3 pin (BUSY).
+
+  interrupt-names:
+    minItems: 1
+    items:
+      - const: gp0
+      - const: gp2
+      - const: gp3
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+    description: |
+      The first cell is the GPn number: 0 to 3.
+      The second cell takes standard GPIO flags.
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^in(?:[13579]|1[135])-supply$":
+    description:
+      Optional voltage supply for odd numbered channels when they are used as
+      the negative input for a pseudo-differential channel.
+
+  "^channel@[0-9a-f]$":
+    type: object
+    $ref: adc.yaml
+    unevaluatedProperties: false
+    description:
+      Describes each individual channel. In addition the properties defined
+      below, bipolar from adc.yaml is also supported.
+
+    properties:
+      reg:
+        maximum: 15
+
+      common-mode-channel:
+        description:
+          Describes the common mode channel for single channels. 0xFF is REFGND
+          and OxFE is COM. Macros are available for these values in
+          dt-bindings/iio/adi,ad4695.h. Values 1 to 15 correspond to INx inputs.
+          Only odd numbered INx inputs can be used as common mode channels.
+        enum: [1, 3, 5, 7, 9, 11, 13, 15, 0xFE, 0xFF]
+        default: 0xFF
+
+      adi,no-high-z:
+        $ref: /schemas/types.yaml#/definitions/flag
+        description:
+          Enable this flag if the input pin requires the Analog Input High-Z
+          Mode to be disabled for proper operation.
+
+    required:
+      - reg
+
+    allOf:
+      # bipolar mode can't be used with REFGND
+      - if:
+          properties:
+            common-mode-channel:
+              const: 0xFF
+        then:
+          properties:
+            bipolar: false
+
+required:
+  - compatible
+  - reg
+  - avdd-supply
+  - vio-supply
+
+allOf:
+  - oneOf:
+      - required:
+          - ldo-in-supply
+      - required:
+          - vdd-supply
+
+  - oneOf:
+      - required:
+          - ref-supply
+      - required:
+          - refin-supply
+
+  # the internal reference buffer always requires high-z mode
+  - if:
+      required:
+        - refin-supply
+    then:
+      properties:
+        adi,no-ref-high-z: false
+
+  # limit channels for 8-channel chips
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,ad4697
+              - adi,ad4698
+    then:
+      patternProperties:
+        "^in(?:9|1[135])-supply$": false
+        "^channel@[0-7]$":
+          properties:
+            reg:
+              maximum: 7
+            common-mode-channel:
+              enum: [1, 3, 5, 7, 0xFE, 0xFF]
+        "^channel@[8-9a-f]$": false
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/iio/adi,ad4695.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@0 {
+            compatible = "adi,ad4695";
+            reg = <0>;
+            spi-cpol;
+            spi-cpha;
+            spi-max-frequency = <80000000>;
+            avdd-supply = <&power_supply>;
+            ldo-in-supply = <&power_supply>;
+            vio-supply = <&io_supply>;
+            refin-supply = <&supply_5V>;
+            com-supply = <&supply_2V5>;
+            in3-supply = <&supply_2V5>;
+            reset-gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            /* Pseudo-differential channel between IN0 and REFGND. */
+            channel@0 {
+                reg = <0>;
+            };
+
+            /* Pseudo-differential channel between IN1 and COM. */
+            channel@1 {
+                reg = <1>;
+                common-mode-channel = <AD4695_COMMON_MODE_COM>;
+                bipolar;
+            };
+
+            /* Pseudo-differential channel between IN2 and IN3. */
+            channel@2 {
+                reg = <2>;
+                common-mode-channel = <3>;
+                bipolar;
+            };
+        };
+    };
index 190889c7b62ae287875264b088946ba12ccda100..66dd1c549bd3c01dd76565a5479b2a6d76acad2a 100644 (file)
@@ -39,11 +39,21 @@ properties:
 
   clocks:
     maxItems: 1
-    description: phandle to the master clock (mclk)
+    description:
+      Optionally, either a crystal can be attached externally between MCLK1 and
+      MCLK2 pins, or an external CMOS-compatible clock can drive the MCLK2
+      pin. If absent, internal 4.92MHz clock is used, which can be made
+      available on MCLK2 pin.
 
   clock-names:
-    items:
-      - const: mclk
+    enum:
+      - xtal
+      - mclk
+
+  "#clock-cells":
+    const: 0
+    description:
+      If present when internal clock is used, configured as clock provider.
 
   interrupts:
     maxItems: 1
@@ -134,8 +144,6 @@ patternProperties:
 required:
   - compatible
   - reg
-  - clocks
-  - clock-names
   - interrupts
   - dvdd-supply
   - avdd-supply
@@ -156,6 +164,18 @@ allOf:
     then:
       patternProperties:
         "^channel@[0-9a-f]+$": false
+  - if:
+      anyOf:
+        - required:
+            - clocks
+        - required:
+            - clock-names
+    then:
+      properties:
+        "#clock-cells": false
+      required:
+        - clocks
+        - clock-names
 
 unevaluatedProperties: false
 
@@ -201,8 +221,7 @@ examples:
             spi-max-frequency = <1000000>;
             spi-cpol;
             spi-cpha;
-            clocks = <&ad7192_mclk>;
-            clock-names = "mclk";
+            #clock-cells = <0>;
             interrupts = <25 0x2>;
             interrupt-parent = <&gpio>;
             aincom-supply = <&aincom>;
index 899b777017ce3bff47d3e23651392d0216b480fe..0065d650882489e21b952bb9fb25f1e3a070ee68 100644 (file)
@@ -15,10 +15,17 @@ description: |
   * 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/ad7386.html
+  * https://www.analog.com/en/products/ad7387.html
+  * https://www.analog.com/en/products/ad7388.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
+  * https://www.analog.com/en/products/ad7386-4.html
+  * https://www.analog.com/en/products/ad7387-4.html
+  * https://www.analog.com/en/products/ad7388-4.html
+
 
 $ref: /schemas/spi/spi-peripheral-props.yaml#
 
@@ -29,10 +36,16 @@ properties:
       - adi,ad7381
       - adi,ad7383
       - adi,ad7384
+      - adi,ad7386
+      - adi,ad7387
+      - adi,ad7388
       - adi,ad7380-4
       - adi,ad7381-4
       - adi,ad7383-4
       - adi,ad7384-4
+      - adi,ad7386-4
+      - adi,ad7387-4
+      - adi,ad7388-4
 
   reg:
     maxItems: 1
@@ -54,6 +67,10 @@ properties:
       A 2.5V to 3.3V supply for the external reference voltage. When omitted,
       the internal 2.5V reference is used.
 
+  refin-supply:
+    description:
+      A 2.5V to 3.3V supply for external reference voltage, for ad7380-4 only.
+
   aina-supply:
     description:
       The common mode voltage supply for the AINA- pin on pseudo-differential
@@ -122,6 +139,23 @@ allOf:
         ainc-supply: false
         aind-supply: false
 
+  # ad7380-4 uses refin-supply as external reference.
+  # All other chips from ad738x family use refio as optional external reference.
+  # When refio-supply is omitted, internal reference is used.
+  - if:
+      properties:
+        compatible:
+          enum:
+            - adi,ad7380-4
+    then:
+      properties:
+        refio-supply: false
+      required:
+        - refin-supply
+    else:
+      properties:
+        refin-supply: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/irq.h>
index 00fdaed11cbd187b311459980ecc9ecf3d4267af..69408cae3db9603b27c7c4d1b93f548d5a9dd40c 100644 (file)
@@ -35,65 +35,83 @@ properties:
 
   avcc-supply: true
 
+  vdrive-supply:
+    description:
+      Determines the voltage level at which the interface logic pins will
+      operate.
+
+  refin-supply:
+    description:
+      The voltage supply for optional external reference voltage.
+
   interrupts:
+    description:
+      The BUSY pin falling edge indicates that the conversion is over, and thus
+      new data is available.
     maxItems: 1
 
   adi,conversion-start-gpios:
     description:
-      Must be the device tree identifier of the CONVST pin.
-      This logic input is used to initiate conversions on the analog
-      input channels. As the line is active high, it should be marked
-      GPIO_ACTIVE_HIGH.
-    maxItems: 1
+      Must be the device tree identifier of the CONVST pin(s). This logic input
+      is used to initiate conversions on the analog input channels. As the line
+      is active high, it should be marked GPIO_ACTIVE_HIGH.
+    minItems: 1
+    maxItems: 2
 
   reset-gpios:
     description:
-      Must be the device tree identifier of the RESET pin. If specified,
-      it will be asserted during driver probe. As the line is active high,
-      it should be marked GPIO_ACTIVE_HIGH.
+      Must be the device tree identifier of the RESET pin. If specified, it will
+      be asserted during driver probe. On the AD7606x, as the line is active
+      high, it should be marked GPIO_ACTIVE_HIGH. On the AD7616, as the line is
+      active low, it should be marked GPIO_ACTIVE_LOW.
     maxItems: 1
 
   standby-gpios:
     description:
-      Must be the device tree identifier of the STBY pin. This pin is used
-      to place the AD7606 into one of two power-down modes, Standby mode or
+      Must be the device tree identifier of the STBY pin. This pin is used to
+      place the AD7606 into one of two power-down modes, Standby mode or
       Shutdown mode. As the line is active low, it should be marked
       GPIO_ACTIVE_LOW.
     maxItems: 1
 
   adi,first-data-gpios:
     description:
-      Must be the device tree identifier of the FRSTDATA pin.
-      The FRSTDATA output indicates when the first channel, V1, is
-      being read back on either the parallel, byte or serial interface.
-      As the line is active high, it should be marked GPIO_ACTIVE_HIGH.
+      Must be the device tree identifier of the FRSTDATA pin. The FRSTDATA
+      output indicates when the first channel, V1, is being read back on either
+      the parallel, byte or serial interface. As the line is active high, it
+      should be marked GPIO_ACTIVE_HIGH.
     maxItems: 1
 
   adi,range-gpios:
     description:
-      Must be the device tree identifier of the RANGE pin. The polarity on
-      this pin determines the input range of the analog input channels. If
-      this pin is tied to a logic high, the analog input range is ±10V for
-      all channels. If this pin is tied to a logic low, the analog input range
+      Must be the device tree identifier of the RANGE pin. The state on this
+      pin determines the input range of the analog input channels. If this pin
+      is tied to a logic high, the analog input range is ±10V for all channels.
+      On the AD760X, if this pin is tied to a logic low, the analog input range
       is ±5V for all channels. As the line is active high, it should be marked
-      GPIO_ACTIVE_HIGH.
-    maxItems: 1
+      GPIO_ACTIVE_HIGH. On the AD7616, there are 2 pins, and if the 2 pins are
+      tied to a logic high, software mode is enabled, otherwise one of the 3
+      possible range values is selected.
+    minItems: 1
+    maxItems: 2
 
   adi,oversampling-ratio-gpios:
     description:
-      Must be the device tree identifier of the over-sampling
-      mode pins. As the line is active high, it should be marked
-      GPIO_ACTIVE_HIGH.
+      Must be the device tree identifier of the over-sampling mode pins. As the
+      line is active high, it should be marked GPIO_ACTIVE_HIGH. On the AD7606X
+      parts that support it, if all 3 pins are tied to a logic high, software
+      mode is enabled.
     maxItems: 3
 
   adi,sw-mode:
     description:
-      Software mode of operation, so far available only for ad7616 and ad7606b.
-      It is enabled when all three oversampling mode pins are connected to
-      high level. The device is configured by the corresponding registers. If the
-      adi,oversampling-ratio-gpios property is defined, then the driver will set the
-      oversampling gpios to high. Otherwise, it is assumed that the pins are hardwired
-      to VDD.
+      Software mode of operation, so far available only for AD7616 and AD7606B.
+      It is enabled when all three oversampling mode pins are connected to high
+      level for the AD7606B, or both the range selection are connected to high
+      level for the AD7616. The device is configured by the corresponding
+      registers. If the adi,oversampling-ratio-gpios property is defined, then
+      the driver will set the oversampling gpios to high. Otherwise, it is
+      assumed that the pins are hardwired to VDD.
     type: boolean
 
 required:
@@ -101,12 +119,57 @@ required:
   - reg
   - spi-cpha
   - avcc-supply
+  - vdrive-supply
   - interrupts
   - adi,conversion-start-gpios
 
 allOf:
   - $ref: /schemas/spi/spi-peripheral-props.yaml#
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: adi,ad7616
+    then:
+      properties:
+        adi,first-data-gpios: false
+        standby-gpios: false
+        adi,range-gpios:
+          maxItems: 2
+    else:
+      properties:
+        adi,range-gpios:
+          maxItems: 1
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,ad7605-4
+              - adi,ad7616
+    then:
+      properties:
+        adi,oversampling-ratio-gpios: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,ad7605-4
+              - adi,ad7606-4
+              - adi,ad7606-6
+              - adi,ad7606-8
+    then:
+      properties:
+        adi,sw-mode: false
+    else:
+      properties:
+        adi,conversion-start-gpios:
+          maxItems: 1
+
 unevaluatedProperties: false
 
 examples:
@@ -125,6 +188,7 @@ examples:
             spi-cpha;
 
             avcc-supply = <&adc_vref>;
+            vdrive-supply = <&vdd_supply>;
 
             interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
             interrupt-parent = <&gpio>;
@@ -136,7 +200,6 @@ examples:
                                            <&gpio 23 GPIO_ACTIVE_HIGH>,
                                            <&gpio 26 GPIO_ACTIVE_HIGH>;
             standby-gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
-            adi,sw-mode;
         };
     };
 ...
index eecd5fbab695810bbfff243852f640f14feda001..2606c0c5dfc61fd65cd0fb2015b3f659c2fc9e07 100644 (file)
@@ -28,6 +28,9 @@ properties:
       - adi,ad9265
       - adi,ad9434
       - adi,ad9467
+      - adi,ad9643
+      - adi,ad9649
+      - adi,ad9652
 
   reg:
     maxItems: 1
diff --git a/Bindings/iio/adc/microchip,pac1921.yaml b/Bindings/iio/adc/microchip,pac1921.yaml
new file mode 100644 (file)
index 0000000..12e56b1
--- /dev/null
@@ -0,0 +1,71 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/microchip,pac1921.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip PAC1921 High-Side Power/Current Monitor with Anaog Output
+
+maintainers:
+  - Matteo Martelli <matteomartelli3@gmail.com>
+
+description: |
+  The PAC1921 is a power/current monitoring device with an analog output
+  and I2C/SMBus interface.
+
+  Datasheet can be found here:
+  https://ww1.microchip.com/downloads/en/DeviceDoc/PAC1921-Data-Sheet-DS20005293E.pdf
+
+properties:
+  compatible:
+    const: microchip,pac1921
+
+  reg:
+    maxItems: 1
+
+  vdd-supply: true
+
+  "#io-channel-cells":
+    const: 1
+
+  shunt-resistor-micro-ohms:
+    description:
+      Value in micro Ohms of the shunt resistor connected between
+      the SENSE+ and SENSE- inputs, across which the current is measured.
+      Value is needed to compute the scaling of the measured current.
+
+  label:
+    description: Unique name to identify which device this is.
+
+  read-integrate-gpios:
+    description:
+      READ/INT input pin to control the current state of the device, either in
+      the INTEGRATE state when driven high, or in the READ state when driven low.
+      When not connected the pin is floating and it can be overridden by the
+      INT_EN register bit after asserting the READ/INT_OVR register bit.
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+  - shunt-resistor-micro-ohms
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@4c {
+            compatible = "microchip,pac1921";
+            reg = <0x4c>;
+            vdd-supply = <&vdd>;
+            #io-channel-cells = <1>;
+            label = "vbat";
+            shunt-resistor-micro-ohms = <10000>;
+        };
+    };
+...
index aa24b841393c0223c818723def339ba2f10d2aab..fd93ed3991e059e43952810af42c59330b739e4a 100644 (file)
@@ -16,6 +16,9 @@ properties:
       - const: rockchip,rk3066-tsadc
       - const: rockchip,rk3399-saradc
       - const: rockchip,rk3588-saradc
+      - items:
+          - const: rockchip,rk3576-saradc
+          - const: rockchip,rk3588-saradc
       - items:
           - enum:
               - rockchip,px30-saradc
index cab0d425eaa4269bb6aed1accf4d536c9dc6373e..c3a116427dc3be79cfca3d2b93c4eaef7d0f0425 100644 (file)
@@ -18,18 +18,39 @@ properties:
       - sd-modulator
       - ads1201
 
+  '#io-backend-cells':
+    const: 0
+
   '#io-channel-cells':
     const: 0
 
+  vref-supply:
+    description: Phandle to the vref input analog reference voltage.
+
+dependencies:
+  vref-supply: [ '#io-backend-cells' ]
+
 required:
   - compatible
-  - '#io-channel-cells'
+
+anyOf:
+  - required: ['#io-backend-cells']
+  - required: ['#io-channel-cells']
 
 additionalProperties: false
 
 examples:
   - |
-    ads1202: adc {
+    // Backend binding example. SD modulator configured as an IIO backend device
+    ads1201_0: adc {
+      compatible = "sd-modulator";
+      vref-supply = <&vdd_adc>;
+      #io-backend-cells = <0>;
+    };
+
+  - |
+    // Legacy binding example. SD modulator configured as an IIO channel provider
+    ads1201_1: adc {
       compatible = "sd-modulator";
       #io-channel-cells = <0>;
     };
diff --git a/Bindings/iio/adc/sophgo,cv1800b-saradc.yaml b/Bindings/iio/adc/sophgo,cv1800b-saradc.yaml
new file mode 100644 (file)
index 0000000..f652b98
--- /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/iio/adc/sophgo,cv1800b-saradc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title:
+  Sophgo CV1800B SoC 3 channels Successive Approximation Analog to
+  Digital Converters
+
+maintainers:
+  - Thomas Bonnefille <thomas.bonnefille@bootlin.com>
+
+description:
+  Datasheet at https://github.com/sophgo/sophgo-doc/releases
+
+properties:
+  compatible:
+    const: sophgo,cv1800b-saradc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  "^channel@[0-2]$":
+    $ref: adc.yaml
+
+    properties:
+      reg:
+        items:
+          - minimum: 0
+            maximum: 2
+
+    required:
+      - reg
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - '#address-cells'
+  - '#size-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/sophgo,cv1800.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    adc@30f0000 {
+        compatible = "sophgo,cv1800b-saradc";
+        reg = <0x030f0000 0x1000>;
+        clocks = <&clk CLK_SARADC>;
+        interrupts = <100 IRQ_TYPE_LEVEL_HIGH>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        channel@0 {
+            reg = <0>;
+        };
+
+        channel@1 {
+            reg = <1>;
+        };
+
+        channel@2 {
+            reg = <2>;
+        };
+    };
index ec34c48d48782b9a72b714a37d7264c57c501f74..ef9dcc365eab5653531f4f355884471666d59eb0 100644 (file)
@@ -54,7 +54,9 @@ properties:
           It's not present on stm32f4.
           It's required on stm32h7 and stm32mp1.
 
-  clock-names: true
+  clock-names:
+    minItems: 1
+    maxItems: 2
 
   st,max-clk-rate-hz:
     description:
index 2722edab1d9a19c1520b7b5baf255246283a889a..c24ac98bbb3d49cd8e411e30882dbbd0c2f050de 100644 (file)
@@ -102,9 +102,11 @@ patternProperties:
         items:
           minimum: 0
           maximum: 7
+        deprecated: true
 
       st,adc-channel-names:
         description: List of single-ended channel names.
+        deprecated: true
 
       st,filter-order:
         description: |
@@ -118,6 +120,12 @@ patternProperties:
       "#io-channel-cells":
         const: 1
 
+      '#address-cells':
+        const: 1
+
+      '#size-cells':
+        const: 0
+
       st,adc-channel-types:
         description: |
           Single-ended channel input type.
@@ -128,6 +136,7 @@ patternProperties:
         items:
           enum: [ SPI_R, SPI_F, MANCH_R, MANCH_F ]
         $ref: /schemas/types.yaml#/definitions/non-unique-string-array
+        deprecated: true
 
       st,adc-channel-clk-src:
         description: |
@@ -139,6 +148,7 @@ patternProperties:
         items:
           enum: [ CLKIN, CLKOUT, CLKOUT_F, CLKOUT_R ]
         $ref: /schemas/types.yaml#/definitions/non-unique-string-array
+        deprecated: true
 
       st,adc-alt-channel:
         description:
@@ -147,6 +157,7 @@ patternProperties:
           If not set, channel n is connected to SPI input n.
           If set, channel n is connected to SPI input n + 1.
         type: boolean
+        deprecated: true
 
       st,filter0-sync:
         description:
@@ -165,11 +176,60 @@ patternProperties:
       - compatible
       - reg
       - interrupts
-      - st,adc-channels
-      - st,adc-channel-names
       - st,filter-order
       - "#io-channel-cells"
 
+    patternProperties:
+      "^channel@[0-7]$":
+        type: object
+        $ref: adc.yaml
+        unevaluatedProperties: false
+        description: Represents the external channels which are connected to the DFSDM.
+
+        properties:
+          reg:
+            maximum: 7
+
+          label:
+            description:
+              Unique name to identify which channel this is.
+
+          st,adc-channel-type:
+            description: |
+              Single-ended channel input type.
+              - "SPI_R": SPI with data on rising edge (default)
+              - "SPI_F": SPI with data on falling edge
+              - "MANCH_R": manchester codec, rising edge = logic 0, falling edge = logic 1
+              - "MANCH_F": manchester codec, rising edge = logic 1, falling edge = logic 0
+            $ref: /schemas/types.yaml#/definitions/string
+            enum: [ SPI_R, SPI_F, MANCH_R, MANCH_F ]
+
+          st,adc-channel-clk-src:
+            description: |
+              Conversion clock source.
+              - "CLKIN": external SPI clock (CLKIN x)
+              - "CLKOUT": internal SPI clock (CLKOUT) (default)
+              - "CLKOUT_F": internal SPI clock divided by 2 (falling edge).
+              - "CLKOUT_R": internal SPI clock divided by 2 (rising edge).
+            $ref: /schemas/types.yaml#/definitions/string
+            enum: [ CLKIN, CLKOUT, CLKOUT_F, CLKOUT_R ]
+
+          st,adc-alt-channel:
+            description:
+              Must be defined if two sigma delta modulators are
+              connected on same SPI input.
+              If not set, channel n is connected to SPI input n.
+              If set, channel n is connected to SPI input n + 1.
+            type: boolean
+
+          io-backends:
+            description:
+              Used to pipe external sigma delta modulator or internal ADC backend to DFSDM channel.
+            maxItems: 1
+
+        required:
+          - reg
+
     allOf:
       - if:
           properties:
@@ -199,9 +259,19 @@ patternProperties:
               description:
                 From common IIO binding. Used to pipe external sigma delta
                 modulator or internal ADC output to DFSDM channel.
+              deprecated: true
 
-          required:
-            - io-channels
+          if:
+            required:
+              - st,adc-channels
+          then:
+            required:
+              - io-channels
+
+          patternProperties:
+            "^channel@[0-7]$":
+              required:
+                - io-backends
 
       - if:
           properties:
@@ -298,6 +368,7 @@ examples:
       #address-cells = <1>;
       #size-cells = <0>;
 
+      // Example 1: Audio use case with generic binding
       dfsdm0: filter@0 {
         compatible = "st,stm32-dfsdm-dmic";
         reg = <0>;
@@ -305,12 +376,18 @@ examples:
         dmas = <&dmamux1 101 0x400 0x01>;
         dma-names = "rx";
         #io-channel-cells = <1>;
-        st,adc-channels = <1>;
-        st,adc-channel-names = "dmic0";
-        st,adc-channel-types = "SPI_R";
-        st,adc-channel-clk-src = "CLKOUT";
+        #address-cells = <1>;
+        #size-cells = <0>;
         st,filter-order = <5>;
 
+        channel@1 {
+          reg = <1>;
+          label = "dmic0";
+          st,adc-channel-type = "SPI_R";
+          st,adc-channel-clk-src = "CLKOUT";
+          st,adc-alt-channel;
+        };
+
         asoc_pdm0: dfsdm-dai {
           compatible = "st,stm32h7-dfsdm-dai";
           #sound-dai-cells = <0>;
@@ -318,19 +395,34 @@ examples:
         };
       };
 
-      dfsdm_pdm1: filter@1 {
+      // Example 2: Analog use case with generic binding
+      dfsdm1: filter@1 {
         compatible = "st,stm32-dfsdm-adc";
         reg = <1>;
         interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
         dmas = <&dmamux1 102 0x400 0x01>;
         dma-names = "rx";
-        #io-channel-cells = <1>;
-        st,adc-channels = <2 3>;
-        st,adc-channel-names = "in2", "in3";
-        st,adc-channel-types = "SPI_R", "SPI_R";
-        st,adc-channel-clk-src = "CLKOUT_F", "CLKOUT_F";
-        io-channels = <&sd_adc2 &sd_adc3>;
         st,filter-order = <1>;
+        #io-channel-cells = <1>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        channel@2 {
+          reg = <2>;
+          label = "in2";
+          st,adc-channel-type = "SPI_F";
+          st,adc-channel-clk-src = "CLKOUT";
+          st,adc-alt-channel;
+          io-backends = <&sd_adc2>;
+        };
+
+        channel@3 {
+          reg = <3>;
+          label = "in3";
+          st,adc-channel-type = "SPI_R";
+          st,adc-channel-clk-src = "CLKOUT";
+          io-backends = <&sd_adc3>;
+        };
       };
     };
 
index d40689f233f220ea17add4c61c7679928fba6b5e..1caa896fce821ae382d78edeb2fe41339bcdc8a3 100644 (file)
@@ -37,6 +37,17 @@ description: |
    3 | batt_dischrg_i
    4 | ts_v
 
+  AXP717
+  ------
+   0 | batt_v
+   1 | ts_v
+   2 | vbus_v
+   3 | vsys_v
+   4 | pmic_temp
+   5 | batt_chrg_i
+   6 | vmid_v
+   7 | bkup_batt_v
+
   AXP813
   ------
    0 | pmic_temp
@@ -52,6 +63,7 @@ properties:
     oneOf:
       - const: x-powers,axp209-adc
       - const: x-powers,axp221-adc
+      - const: x-powers,axp717-adc
       - const: x-powers,axp813-adc
 
       - items:
index b4400c52bec3a1803430ac6d5fd520a890fda34e..713f535bb33aea14f916112a4a831dbf5ddba6ea 100644 (file)
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/iio/dac/adi,ad5686.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Analog Devices AD5360 and similar DACs
+title: Analog Devices AD5360 and similar SPI DACs
 
 maintainers:
   - Michael Hennerich <michael.hennerich@analog.com>
@@ -12,41 +12,22 @@ maintainers:
 
 properties:
   compatible:
-    oneOf:
-      - description: SPI devices
-        enum:
-          - adi,ad5310r
-          - adi,ad5672r
-          - adi,ad5674r
-          - adi,ad5676
-          - adi,ad5676r
-          - adi,ad5679r
-          - adi,ad5681r
-          - adi,ad5682r
-          - adi,ad5683
-          - adi,ad5683r
-          - adi,ad5684
-          - adi,ad5684r
-          - adi,ad5685r
-          - adi,ad5686
-          - adi,ad5686r
-      - description: I2C devices
-        enum:
-          - adi,ad5311r
-          - adi,ad5337r
-          - adi,ad5338r
-          - adi,ad5671r
-          - adi,ad5675r
-          - adi,ad5691r
-          - adi,ad5692r
-          - adi,ad5693
-          - adi,ad5693r
-          - adi,ad5694
-          - adi,ad5694r
-          - adi,ad5695r
-          - adi,ad5696
-          - adi,ad5696r
-
+    enum:
+      - adi,ad5310r
+      - adi,ad5672r
+      - adi,ad5674r
+      - adi,ad5676
+      - adi,ad5676r
+      - adi,ad5679r
+      - adi,ad5681r
+      - adi,ad5682r
+      - adi,ad5683
+      - adi,ad5683r
+      - adi,ad5684
+      - adi,ad5684r
+      - adi,ad5685r
+      - adi,ad5686
+      - adi,ad5686r
 
   reg:
     maxItems: 1
index 56b0cda0f30ab88cdec6064d9c31ab6c3bb6e5db..b5a88b03dc2f0befc5e602b28e8eca305323b54b 100644 (file)
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/iio/dac/adi,ad5696.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Analog Devices AD5696 and similar multi-channel DACs
+title: Analog Devices AD5696 and similar I2C multi-channel DACs
 
 maintainers:
   - Michael Auchter <michael.auchter@ni.com>
@@ -16,6 +16,7 @@ properties:
   compatible:
     enum:
       - adi,ad5311r
+      - adi,ad5337r
       - adi,ad5338r
       - adi,ad5671r
       - adi,ad5675r
diff --git a/Bindings/iio/dac/adi,ltc2664.yaml b/Bindings/iio/dac/adi,ltc2664.yaml
new file mode 100644 (file)
index 0000000..3349085
--- /dev/null
@@ -0,0 +1,181 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/adi,ltc2664.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices LTC2664 DAC
+
+maintainers:
+  - Michael Hennerich <michael.hennerich@analog.com>
+  - Kim Seer Paller <kimseer.paller@analog.com>
+
+description: |
+  Analog Devices LTC2664 4 channel, 12-/16-Bit, +-10V DAC
+  https://www.analog.com/media/en/technical-documentation/data-sheets/2664fa.pdf
+
+properties:
+  compatible:
+    enum:
+      - adi,ltc2664
+
+  reg:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 50000000
+
+  vcc-supply:
+    description: Analog Supply Voltage Input.
+
+  v-pos-supply:
+    description: Positive Supply Voltage Input.
+
+  v-neg-supply:
+    description: Negative Supply Voltage Input.
+
+  iovcc-supply:
+    description: Digital Input/Output Supply Voltage.
+
+  ref-supply:
+    description:
+      Reference Input/Output. The voltage at the REF pin sets the full-scale
+      range of all channels. If not provided the internal reference is used and
+      also provided on the VREF pin.
+
+  reset-gpios:
+    description:
+      Active-low Asynchronous Clear Input. A logic low at this level-triggered
+      input clears the part to the reset code and range determined by the
+      hardwired option chosen using the MSPAN pins. The control registers are
+      cleared to zero.
+    maxItems: 1
+
+  adi,manual-span-operation-config:
+    description:
+      This property must mimic the MSPAN pin configurations. By tying the MSPAN
+      pins (MSP2, MSP1 and MSP0) to GND and/or VCC, any output range can be
+      hardware-configured with different mid-scale or zero-scale reset options.
+      The hardware configuration is latched during power on reset for proper
+      operation.
+        0 - MPS2=GND, MPS1=GND, MSP0=GND (+-10V, reset to 0V)
+        1 - MPS2=GND, MPS1=GND, MSP0=VCC (+-5V, reset to 0V)
+        2 - MPS2=GND, MPS1=VCC, MSP0=GND (+-2.5V, reset to 0V)
+        3 - MPS2=GND, MPS1=VCC, MSP0=VCC (0V to 10, reset to 0V)
+        4 - MPS2=VCC, MPS1=GND, MSP0=GND (0V to 10V, reset to 5V)
+        5 - MPS2=VCC, MPS1=GND, MSP0=VCC (0V to 5V, reset to 0V)
+        6 - MPS2=VCC, MPS1=VCC, MSP0=GND (0V to 5V, reset to 2.5V)
+        7 - MPS2=VCC, MPS1=VCC, MSP0=VCC (0V to 5V, reset to 0V, enables SoftSpan)
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1, 2, 3, 4, 5, 6, 7]
+    default: 7
+
+  io-channels:
+    description:
+      ADC channel to monitor voltages and temperature at the MUXOUT pin.
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  "^channel@[0-3]$":
+    $ref: dac.yaml
+    type: object
+    additionalProperties: false
+
+    properties:
+      reg:
+        description: The channel number representing the DAC output channel.
+        maximum: 3
+
+      adi,toggle-mode:
+        description:
+          Set the channel as a toggle enabled channel. Toggle operation enables
+          fast switching of a DAC output between two different DAC codes without
+          any SPI transaction.
+        type: boolean
+
+      output-range-microvolt:
+        description:
+          This property is only allowed when SoftSpan is enabled. If not present,
+          [0, 5000000] is the default output range.
+        oneOf:
+          - items:
+              - const: 0
+              - enum: [5000000, 10000000]
+          - items:
+              - const: -5000000
+              - const: 5000000
+          - items:
+              - const: -10000000
+              - const: 10000000
+          - items:
+              - const: -2500000
+              - const: 2500000
+
+    required:
+      - reg
+
+    allOf:
+      - if:
+          not:
+            properties:
+              adi,manual-span-operation-config:
+                const: 7
+        then:
+          patternProperties:
+            "^channel@[0-3]$":
+              properties:
+                output-range-microvolt: false
+
+required:
+  - compatible
+  - reg
+  - spi-max-frequency
+  - vcc-supply
+  - iovcc-supply
+  - v-pos-supply
+  - v-neg-supply
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+additionalProperties: false
+
+examples:
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        dac@0 {
+            compatible = "adi,ltc2664";
+            reg = <0>;
+            spi-max-frequency = <10000000>;
+
+            vcc-supply = <&vcc>;
+            iovcc-supply = <&vcc>;
+            ref-supply = <&vref>;
+            v-pos-supply = <&vpos>;
+            v-neg-supply = <&vneg>;
+
+            io-channels = <&adc 0>;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+            channel@0 {
+                reg = <0>;
+                adi,toggle-mode;
+                output-range-microvolt = <(-10000000) 10000000>;
+            };
+
+            channel@1 {
+                reg = <1>;
+                output-range-microvolt= <0 10000000>;
+            };
+        };
+    };
+...
diff --git a/Bindings/iio/dac/adi,ltc2672.yaml b/Bindings/iio/dac/adi,ltc2672.yaml
new file mode 100644 (file)
index 0000000..c8c434c
--- /dev/null
@@ -0,0 +1,160 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/adi,ltc2672.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices LTC2672 DAC
+
+maintainers:
+  - Michael Hennerich <michael.hennerich@analog.com>
+  - Kim Seer Paller <kimseer.paller@analog.com>
+
+description: |
+  Analog Devices LTC2672 5 channel, 12-/16-Bit, 300mA DAC
+  https://www.analog.com/media/en/technical-documentation/data-sheets/ltc2672.pdf
+
+properties:
+  compatible:
+    enum:
+      - adi,ltc2672
+
+  reg:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 50000000
+
+  vcc-supply:
+    description: Analog Supply Voltage Input.
+
+  v-neg-supply:
+    description: Negative Supply Voltage Input.
+
+  vdd0-supply:
+    description: Positive Supply Voltage Input for DAC OUT0.
+
+  vdd1-supply:
+    description: Positive Supply Voltage Input for DAC OUT1.
+
+  vdd2-supply:
+    description: Positive Supply Voltage Input for DAC OUT2.
+
+  vdd3-supply:
+    description: Positive Supply Voltage Input for DAC OUT3.
+
+  vdd4-supply:
+    description: Positive Supply Voltage Input for DAC OUT4.
+
+  iovcc-supply:
+    description: Digital Input/Output Supply Voltage.
+
+  ref-supply:
+    description:
+      Reference Input/Output. The voltage at the REF pin sets the full-scale
+      range of all channels. If not provided the internal reference is used and
+      also provided on the VREF pin.
+
+  reset-gpios:
+    description:
+      Active Low Asynchronous Clear Input. A logic low at this level triggered
+      input clears the device to the default reset code and output range, which
+      is zero-scale with the outputs off. The control registers are cleared to
+      zero.
+    maxItems: 1
+
+  adi,rfsadj-ohms:
+    description:
+      If FSADJ is tied to VCC, an internal RFSADJ (20 kΩ) is selected, which
+      results in nominal output ranges. When an external resistor of 19 kΩ to
+      41 kΩ can be used instead by connecting the resistor between FSADJ and GND
+      it controls the scaling of the ranges, and the internal resistor is
+      automatically disconnected.
+    minimum: 19000
+    maximum: 41000
+    default: 20000
+
+  io-channels:
+    description:
+      ADC channel to monitor voltages and currents at the MUX pin.
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  "^channel@[0-4]$":
+    $ref: dac.yaml
+    type: object
+    additionalProperties: false
+
+    properties:
+      reg:
+        description: The channel number representing the DAC output channel.
+        maximum: 4
+
+      adi,toggle-mode:
+        description:
+          Set the channel as a toggle enabled channel. Toggle operation enables
+          fast switching of a DAC output between two different DAC codes without
+          any SPI transaction.
+        type: boolean
+
+      output-range-microamp:
+        items:
+          - const: 0
+          - enum: [3125000, 6250000, 12500000, 25000000, 50000000, 100000000,
+                   200000000, 300000000]
+
+    required:
+      - reg
+      - output-range-microamp
+
+required:
+  - compatible
+  - reg
+  - spi-max-frequency
+  - vcc-supply
+  - iovcc-supply
+  - v-neg-supply
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+additionalProperties: false
+
+examples:
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        dac@0 {
+            compatible = "adi,ltc2672";
+            reg = <0>;
+            spi-max-frequency = <10000000>;
+
+            vcc-supply = <&vcc>;
+            iovcc-supply = <&vcc>;
+            ref-supply = <&vref>;
+            v-neg-supply = <&vneg>;
+
+            io-channels = <&adc 0>;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+            channel@0 {
+                reg = <0>;
+                adi,toggle-mode;
+                output-range-microamp = <0 3125000>;
+            };
+
+            channel@1 {
+                reg = <1>;
+                output-range-microamp = <0 6250000>;
+            };
+        };
+    };
+...
diff --git a/Bindings/iio/dac/dac.yaml b/Bindings/iio/dac/dac.yaml
new file mode 100644 (file)
index 0000000..daa4072
--- /dev/null
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/dac.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IIO Common Properties for DAC Channels
+
+maintainers:
+  - Jonathan Cameron <jic23@kernel.org>
+
+description:
+  A few properties are defined in a common way for DAC channels.
+
+properties:
+  $nodename:
+    pattern: "^channel(@[0-9a-f]+)?$"
+    description:
+      A channel index should match reg.
+
+  reg:
+    maxItems: 1
+
+  label:
+    description: Unique name to identify which channel this is.
+
+  output-range-microamp:
+    maxItems: 2
+    minItems: 2
+    description:
+      Specify the channel output full scale range in microamperes.
+
+  output-range-microvolt:
+    maxItems: 2
+    minItems: 2
+    description:
+      Specify the channel output full scale range in microvolts.
+
+anyOf:
+  - oneOf:
+      - required:
+          - reg
+          - output-range-microamp
+      - required:
+          - reg
+          - output-range-microvolt
+  - required:
+      - reg
+
+additionalProperties: true
index aa6a3193b4e035d1a988325bb0d2599970a0d2d7..5f950ee9aec7613357dd7e00d028983d2f4a0ff4 100644 (file)
@@ -17,6 +17,7 @@ description: |
    applications.
 
    https://www.analog.com/en/products/adf4377.html
+   https://www.analog.com/en/products/adf4378.html
 
 properties:
   compatible:
@@ -73,6 +74,15 @@ required:
 
 allOf:
   - $ref: /schemas/spi/spi-peripheral-props.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,adf4378
+    then:
+      properties:
+        clk2-enable-gpios: false
 
 unevaluatedProperties: false
 
diff --git a/Bindings/iio/humidity/sciosense,ens210.yaml b/Bindings/iio/humidity/sciosense,ens210.yaml
new file mode 100644 (file)
index 0000000..ed0ea93
--- /dev/null
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/humidity/sciosense,ens210.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ScioSense ENS210 temperature and humidity sensor
+
+maintainers:
+  - Joshua Felmeden <jfelmeden@thegoodpenguin.co.uk>
+
+description: |
+  Temperature and Humidity sensor.
+
+  Datasheet:
+    https://www.sciosense.com/wp-content/uploads/2024/04/ENS21x-Datasheet.pdf
+    https://www.sciosense.com/wp-content/uploads/2023/12/ENS210-Datasheet.pdf
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - sciosense,ens210a
+              - sciosense,ens211
+              - sciosense,ens212
+              - sciosense,ens213a
+              - sciosense,ens215
+          - const: sciosense,ens210
+      - const: sciosense,ens210
+
+  reg:
+    maxItems: 1
+
+  vdd-supply: true
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       temperature-sensor@43 {
+           compatible = "sciosense,ens210";
+           reg = <0x43>;
+       };
+    };
+...
+
index 7de1b0e721ca294b04f7ee803a03aed8a9249640..877e955d4ebd1fabaf269c0e460ee84a86b14a4c 100644 (file)
@@ -14,7 +14,9 @@ description:
 
 properties:
   compatible:
-    const: liteon,ltrf216a
+    enum:
+      - liteon,ltr308
+      - liteon,ltrf216a
 
   reg:
     maxItems: 1
diff --git a/Bindings/iio/light/rohm,bh1745.yaml b/Bindings/iio/light/rohm,bh1745.yaml
new file mode 100644 (file)
index 0000000..4489679
--- /dev/null
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/light/rohm,bh1745.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ROHM BH1745 colour sensor
+
+maintainers:
+  - Mudit Sharma <muditsharma.info@gmail.com>
+
+description:
+  BH1745 is an I2C colour sensor with red, green, blue and clear
+  channels. It has a programmable active low interrupt pin.
+  Interrupt occurs when the signal from the selected interrupt
+  source channel crosses set interrupt threshold high/low level.
+
+properties:
+  compatible:
+    const: rohm,bh1745
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  vdd-supply: true
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        colour-sensor@38 {
+            compatible = "rohm,bh1745";
+            reg = <0x38>;
+            interrupt-parent = <&gpio>;
+            interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
+            vdd-supply = <&vdd>;
+        };
+    };
+
+...
similarity index 66%
rename from Bindings/iio/light/rohm,bu27034.yaml
rename to Bindings/iio/light/rohm,bu27034anuc.yaml
index 30a109a1bf3b472f803c187f367d6dfaabc82ee8..29c90ca5b25836f4c2c1a5a16b9024fc3c735afe 100644 (file)
@@ -1,23 +1,22 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/iio/light/rohm,bu27034.yaml#
+$id: http://devicetree.org/schemas/iio/light/rohm,bu27034anuc.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: ROHM BU27034 ambient light sensor
+title: ROHM BU27034ANUC ambient light sensor
 
 maintainers:
   - Matti Vaittinen <mazziesaccount@gmail.com>
 
 description: |
-  ROHM BU27034 is an ambient light sesnor with 3 channels and 3 photo diodes
+  ROHM BU27034ANUC is an ambient light sensor with 2 channels and 2 photo diodes
   capable of detecting a very wide range of illuminance. Typical application
   is adjusting LCD and backlight power of TVs and mobile phones.
-  https://fscdn.rohm.com/en/products/databook/datasheet/ic/sensor/light/bu27034nuc-e.pdf
 
 properties:
   compatible:
-    const: rohm,bu27034
+    const: rohm,bu27034anuc
 
   reg:
     maxItems: 1
@@ -37,7 +36,7 @@ examples:
       #size-cells = <0>;
 
       light-sensor@38 {
-        compatible = "rohm,bu27034";
+        compatible = "rohm,bu27034anuc";
         reg = <0x38>;
         vdd-supply = <&vdd>;
       };
index f6e22dc9814a25b0fc6ab1e102522f6cd3307c51..e4341fdced98ca2a281210449be2cf074a86c560 100644 (file)
@@ -18,10 +18,15 @@ allOf:
 
 properties:
   compatible:
-    enum:
-      - sensortek,stk3310
-      - sensortek,stk3311
-      - sensortek,stk3335
+    oneOf:
+      - enum:
+          - sensortek,stk3310
+          - sensortek,stk3311
+          - sensortek,stk3335
+      - items:
+          - enum:
+              - sensortek,stk3013
+          - const: sensortek,stk3310
 
   reg:
     maxItems: 1
index 9790f75fc669ef79ae1a692f2ad4dee6ffee294c..e8ca9a2340275cabf79077d7eb5c2681fa064ce8 100644 (file)
@@ -18,12 +18,15 @@ properties:
           - asahi-kasei,ak09911
           - asahi-kasei,ak09912
           - asahi-kasei,ak09916
+      - items:
+          # ak09918 is register compatible with ak09912.
+          - const: asahi-kasei,ak09918
+          - const: asahi-kasei,ak09912
       - enum:
           - ak8975
           - ak8963
           - ak09911
           - ak09912
-          - ak09916
         deprecated: true
 
   reg:
index 2867ab6bf9b081b614ca66252faf1e6db6fb5655..a3838ab0c524ac7c726c8d9ad827a4b93a0d385d 100644 (file)
@@ -36,6 +36,9 @@ properties:
   interrupts:
     maxItems: 1
 
+  mount-matrix:
+    description: an optional 3x3 mounting rotation matrix.
+
 additionalProperties: false
 
 required:
diff --git a/Bindings/iio/pressure/sensirion,sdp500.yaml b/Bindings/iio/pressure/sensirion,sdp500.yaml
new file mode 100644 (file)
index 0000000..813239f
--- /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/iio/pressure/sensirion,sdp500.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: sdp500/sdp510 pressure sensor with I2C bus interface
+
+maintainers:
+  - Petar Stoykov <petar.stoykov@prodrive-technologies.com>
+
+description: |
+  Pressure sensor from Sensirion with I2C bus interface.
+  There is no software difference between sdp500 and sdp510.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: sensirion,sdp510
+          - const: sensirion,sdp500
+      - const: sensirion,sdp500
+
+  reg:
+    maxItems: 1
+
+  vdd-supply: true
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+      pressure@40 {
+        compatible = "sensirion,sdp500";
+        reg = <0x40>;
+        vdd-supply = <&foo>;
+      };
+    };
diff --git a/Bindings/iio/proximity/awinic,aw96103.yaml b/Bindings/iio/proximity/awinic,aw96103.yaml
new file mode 100644 (file)
index 0000000..7a83cec
--- /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/iio/proximity/awinic,aw96103.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Awinic's AW96103 capacitive proximity sensor and similar
+
+maintainers:
+  - Wang Shuaijie <wangshuaijie@awinic.com>
+
+description: |
+  Awinic's AW96103/AW96105 proximity sensor.
+  The specific absorption rate (SAR) is a metric that measures
+  the degree of absorption of electromagnetic radiation emitted by
+  wireless devices, such as mobile phones and tablets, by human tissue.
+  In mobile phone applications, the proximity sensor is primarily
+  used to detect the proximity of the human body to the phone. When the
+  phone approaches the human body, it will actively reduce the transmit
+  power of the antenna to keep the SAR within a safe range. Therefore,
+  we also refer to the proximity sensor as a SAR sensor.
+
+properties:
+  compatible:
+    enum:
+      - awinic,aw96103
+      - awinic,aw96105
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description:
+      Generated by the device to announce that a close/far
+      proximity event has happened.
+    maxItems: 1
+
+  vcc-supply: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - vcc-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        proximity@12 {
+            compatible = "awinic,aw96103";
+            reg = <0x12>;
+            interrupt-parent = <&gpio>;
+            interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
+            vcc-supply = <&pp1800_prox>;
+        };
+    };
diff --git a/Bindings/iio/proximity/tyhx,hx9023s.yaml b/Bindings/iio/proximity/tyhx,hx9023s.yaml
new file mode 100644 (file)
index 0000000..64ce8bc
--- /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/iio/proximity/tyhx,hx9023s.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TYHX HX9023S capacitive proximity sensor
+
+maintainers:
+  - Yasin Lee <yasin.lee.x@gmail.com>
+
+description: |
+  TYHX HX9023S proximity sensor. Datasheet can be found here:
+    http://www.tianyihexin.com/ueditor/php/upload/file/20240614/1718336303992081.pdf
+
+properties:
+  compatible:
+    const: tyhx,hx9023s
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description:
+      Generated by device to announce preceding read request has finished
+      and data is available or that a close/far proximity event has happened.
+    maxItems: 1
+
+  vdd-supply: true
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^channel@[0-4]$":
+    $ref: /schemas/iio/adc/adc.yaml
+    type: object
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        minimum: 0
+        maximum: 4
+        description: The channel number.
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+      proximity@2a {
+        compatible = "tyhx,hx9023s";
+        reg = <0x2a>;
+        interrupt-parent = <&pio>;
+        interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
+        vdd-supply = <&pp1800_prox>;
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        channel@0 {
+          reg = <0>;
+          single-channel = <0>;
+        };
+        channel@1 {
+          reg = <1>;
+          single-channel = <1>;
+        };
+        channel@2 {
+          reg = <2>;
+          single-channel = <2>;
+        };
+        channel@3 {
+          reg = <3>;
+          diff-channels = <1 0>;
+        };
+        channel@4 {
+          reg = <4>;
+          diff-channels = <2 0>;
+        };
+      };
+    };
index cfc1d39441b160b37326a04821e67f55f8f4f195..4bb6c0141e9f73ced06adb21b180ab0e4a533833 100644 (file)
@@ -35,40 +35,184 @@ properties:
 
       - description: Legacy compatibles used on Macintosh devices
         enum:
+          - AAPL,3500
+          - AAPL,7500
+          - AAPL,8500
+          - AAPL,9500
+          - AAPL,accelerometer_1
+          - AAPL,e411
+          - AAPL,Gossamer
+          - AAPL,PowerBook1998
+          - AAPL,ShinerESB
           - adm1030
+          - amd-0137
+          - B5221
           - bmac+
+          - burgundy
+          - cobalt
+          - cy28508
+          - daca
+          - fcu
+          - gatwick
+          - gmac
+          - heathrow
+          - heathrow-ata
           - heathrow-media-bay
+          - i2sbus
+          - i2s-modem
+          - iMac
+          - K2-GMAC
+          - k2-i2c
+          - K2-Keylargo
+          - K2-UATA
+          - kauai-ata
+          - Keylargo
+          - keylargo-ata
           - keylargo-media-bay
           - lm87cimt
           - MAC,adm1030
           - MAC,ds1775
+          - MacRISC
+          - MacRISC2
+          - MacRISC3
+          - MacRISC4
           - max6690
+          - ohare
           - ohare-media-bay
           - ohare-swim3
+          - PowerBook1,1
+          - PowerBook2,1
+          - PowerBook2,2
+          - PowerBook3,1
+          - PowerBook3,2
+          - PowerBook3,3
+          - PowerBook3,4
+          - PowerBook3,5
+          - PowerBook4,1
+          - PowerBook4,2
+          - PowerBook4,3
+          - PowerBook5,1
+          - PowerBook5,2
+          - PowerBook5,3
+          - PowerBook5,4
+          - PowerBook5,5
+          - PowerBook5,6
+          - PowerBook5,7
+          - PowerBook5,8
+          - PowerBook5,9
+          - PowerBook6,3
+          - PowerBook6,5
+          - PowerBook6,7
+          - PowerMac10,1
+          - PowerMac10,2
+          - PowerMac1,1
+          - PowerMac11,2
+          - PowerMac12,1
+          - PowerMac2,1
+          - PowerMac2,2
+          - PowerMac3,1
+          - PowerMac3,4
+          - PowerMac3,5
+          - PowerMac3,6
+          - PowerMac4,1
+          - PowerMac4,2
+          - PowerMac4,4
+          - PowerMac4,5
+          - PowerMac7,2
+          - PowerMac7,3
+          - PowerMac8,1
+          - PowerMac8,2
+          - PowerMac9,1
+          - paddington
+          - RackMac1,1
+          - RackMac1,2
+          - RackMac3,1
+          - screamer
+          - shasta-ata
+          - sms
+          - smu-rpm-fans
           - smu-sat
+          - smu-sensors
+          - snapper
           - swim3
+          - tumbler
+          - u3-agp
+          - u3-dart
+          - u3-ht
+          - u4-dart
+          - u4-pcie
+          - U4-pcie
+          - uni-n-i2c
+          - uni-north
 
       - description: Legacy compatibles used on other PowerPC devices
         enum:
+          - 1682m-gizmo
+          - 1682m-gpio
           - 1682m-rng
+          - 1682m-sdc
+          - amcc,ppc440epx-rng
+          - amcc,ppc460ex-bcsr
+          - amcc,ppc460ex-crypto
+          - amcc,ppc460ex-rng
+          - amcc,ppc460sx-crypto
+          - amcc,ppc4xx-crypto
+          - amcc,sata-460ex
+          - CBEA,platform-open-pic
+          - CBEA,platform-spider-pic
+          - direct-mapped
+          - display
+          - gpio-mdio
+          - hawk-bridge
+          - hawk-pci
+          - IBM,CBEA
           - IBM,lhca
           - IBM,lhea
           - IBM,lhea-ethernet
+          - ibm,axon-msic
+          - Momentum,Apache
+          - Momentum,Maple
+          - mai-logic,articia-s
+          - mpc10x-pci
           - mpc5200b-fec-phy
           - mpc5200-serial
           - mpc5200-sram
+          - nintendo,flipper
+          - nintendo,flipper-exi
+          - nintendo,flipper-pi
+          - nintendo,flipper-pic
+          - nintendo,hollywood
+          - nintendo,hollywood-pic
+          - nintendo,latte-exi
+          - nintendo,latte-srnprot
           - ohci-be
           - ohci-bigendian
           - ohci-le
+          - PA6T-1682M
+          - pasemi,1682m-iob
+          - pasemi,localbus
+          - pasemi,localbus-nand
+          - pasemi,nemo
+          - pasemi,pwrficient
+          - pasemi,pwrficient-rng
+          - pasemi,rootbus
+          - pasemi,sdc
+          - soc
+          - sony,ps3
+          - sti,platform-spider-pic
 
       - description: Legacy compatibles used on SPARC devices
         enum:
           - bq4802
           - ds1287
+          - i2cpcf,8584
           - isa-m5819p
           - isa-m5823p
           - m5819
+          - qcn
           - sab82532
+          - su
+          - sun4v
           - SUNW,bbc-beep
           - SUNW,bbc-i2c
           - SUNW,CS4231
@@ -96,9 +240,13 @@ properties:
           - compat1
           - compat2
           - compat3
+          - gpio-mockup
+          - gpio-simulator
+          - gpio-virtuser
           - linux,spi-loopback-test
           - mailbox-test
           - regulator-virtual-consumer
+          - test-device
 
       - description:
           Devices on MIPS platform, without any DTS users.  These are
index 26ea66834ae24922cf828caec440a071c867e41e..336bc352579a272ee155db6d83f8c6c2127d0398 100644 (file)
@@ -49,7 +49,10 @@ properties:
   interrupt-controller:
     description:
       This property applies if either keypad,num-rows lower than 8 or
-      keypad,num-columns lower than 10.
+      keypad,num-columns lower than 10. This property is optional if
+      keypad,num-rows or keypad,num-columns are not specified as the
+      device is then configured to be used purely for gpio during which
+      interrupts may or may not be utilized.
 
   '#interrupt-cells':
     const: 2
@@ -65,13 +68,23 @@ properties:
     minItems: 1
     maxItems: 2
 
+dependencies:
+  keypad,num-rows:
+    - linux,keymap
+    - keypad,num-columns
+  keypad,num-columns:
+    - linux,keymap
+    - keypad,num-rows
+  linux,keymap:
+    - keypad,num-rows
+    - keypad,num-columns
+    - interrupts
+  interrupt-controller:
+    - interrupts
+
 required:
   - compatible
   - reg
-  - interrupts
-  - keypad,num-rows
-  - keypad,num-columns
-  - linux,keymap
 
 unevaluatedProperties: false
 
@@ -108,4 +121,19 @@ examples:
             >;
         };
     };
+
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        gpio@34 {
+            compatible = "adi,adp5588";
+            reg = <0x34>;
+
+            #gpio-cells = <2>;
+            gpio-controller;
+        };
+    };
+
 ...
diff --git a/Bindings/input/cirrus,ep9307-keypad.yaml b/Bindings/input/cirrus,ep9307-keypad.yaml
new file mode 100644 (file)
index 0000000..a0d2460
--- /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/input/cirrus,ep9307-keypad.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus ep93xx keypad
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+
+allOf:
+  - $ref: /schemas/input/matrix-keymap.yaml#
+
+description:
+  The KPP is designed to interface with a keypad matrix with 2-point contact
+  or 3-point contact keys. The KPP is designed to simplify the software task
+  of scanning a keypad matrix. The KPP is capable of detecting, debouncing,
+  and decoding one or multiple keys pressed simultaneously on a keypad.
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9307-keypad
+      - items:
+          - enum:
+              - cirrus,ep9312-keypad
+              - cirrus,ep9315-keypad
+          - const: cirrus,ep9307-keypad
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  debounce-delay-ms:
+    description: |
+          Time in microseconds that key must be pressed or
+          released for state change interrupt to trigger.
+
+  cirrus,prescale:
+    description: row/column counter pre-scaler load value
+    $ref: /schemas/types.yaml#/definitions/uint16
+    maximum: 1023
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - linux,keymap
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/input/input.h>
+    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
+    keypad@800f0000 {
+        compatible = "cirrus,ep9307-keypad";
+        reg = <0x800f0000 0x0c>;
+        interrupt-parent = <&vic0>;
+        interrupts = <29>;
+        clocks = <&eclk EP93XX_CLK_KEYPAD>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&keypad_default_pins>;
+        linux,keymap = <KEY_UP>,
+                       <KEY_DOWN>,
+                       <KEY_VOLUMEDOWN>,
+                       <KEY_HOME>,
+                       <KEY_RIGHT>,
+                       <KEY_LEFT>,
+                       <KEY_ENTER>,
+                       <KEY_VOLUMEUP>,
+                       <KEY_F6>,
+                       <KEY_F8>,
+                       <KEY_F9>,
+                       <KEY_F10>,
+                       <KEY_F1>,
+                       <KEY_F2>,
+                       <KEY_F3>,
+                       <KEY_POWER>;
+    };
index a62916d07a08c74e519a262063556521f7f616af..cb3e1801b0d3f5c9bf53f21c750f50252a625b38 100644 (file)
@@ -23,7 +23,9 @@ properties:
           - enum:
               - elan,ekth5015m
           - const: elan,ekth6915
-      - const: elan,ekth6915
+      - enum:
+          - elan,ekth6915
+          - elan,ekth6a12nay
 
   reg:
     const: 0x10
index 2025d6a5423e285d868f1ccd752b404f33f35342..76a286ec59594739791a9efc7b991e6a4154fd05 100644 (file)
@@ -19,6 +19,7 @@ properties:
           - qcom,pmi632-vib
       - items:
           - enum:
+              - qcom,pm6150-vib
               - qcom,pm7250b-vib
               - qcom,pm7325b-vib
               - qcom,pm7550ba-vib
diff --git a/Bindings/input/rotary-encoder.txt b/Bindings/input/rotary-encoder.txt
deleted file mode 100644 (file)
index a644408..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-Rotary encoder DT bindings
-
-Required properties:
-- gpios: a spec for at least two GPIOs to be used, most significant first
-
-Optional properties:
-- linux,axis: the input subsystem axis to map to this rotary encoder.
-  Defaults to 0 (ABS_X / REL_X)
-- rotary-encoder,steps: Number of steps in a full turnaround of the
-  encoder. Only relevant for absolute axis. Defaults to 24 which is a
-  typical value for such devices.
-- rotary-encoder,relative-axis: register a relative axis rather than an
-  absolute one. Relative axis will only generate +1/-1 events on the input
-  device, hence no steps need to be passed.
-- rotary-encoder,rollover: Automatic rollover when the rotary value becomes
-  greater than the specified steps or smaller than 0. For absolute axis only.
-- rotary-encoder,steps-per-period: Number of steps (stable states) per period.
-  The values have the following meaning:
-  1: Full-period mode (default)
-  2: Half-period mode
-  4: Quarter-period mode
-- wakeup-source: Boolean, rotary encoder can wake up the system.
-- rotary-encoder,encoding: String, the method used to encode steps.
-  Supported are "gray" (the default and more common) and "binary".
-
-Deprecated properties:
-- rotary-encoder,half-period: Makes the driver work on half-period mode.
-  This property is deprecated. Instead, a 'steps-per-period ' value should
-  be used, such as "rotary-encoder,steps-per-period = <2>".
-
-See Documentation/input/devices/rotary-encoder.rst for more information.
-
-Example:
-
-               rotary@0 {
-                       compatible = "rotary-encoder";
-                       gpios = <&gpio 19 1>, <&gpio 20 0>; /* GPIO19 is inverted */
-                       linux,axis = <0>; /* REL_X */
-                       rotary-encoder,encoding = "gray";
-                       rotary-encoder,relative-axis;
-               };
-
-               rotary@1 {
-                       compatible = "rotary-encoder";
-                       gpios = <&gpio 21 0>, <&gpio 22 0>;
-                       linux,axis = <1>; /* ABS_Y */
-                       rotary-encoder,steps = <24>;
-                       rotary-encoder,encoding = "binary";
-                       rotary-encoder,rollover;
-               };
diff --git a/Bindings/input/rotary-encoder.yaml b/Bindings/input/rotary-encoder.yaml
new file mode 100644 (file)
index 0000000..e315aab
--- /dev/null
@@ -0,0 +1,90 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/rotary-encoder.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rotary encoder
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  See Documentation/input/devices/rotary-encoder.rst for more information.
+
+properties:
+  compatible:
+    const: rotary-encoder
+
+  gpios:
+    minItems: 2
+
+  linux,axis:
+    default: 0
+    description:
+      the input subsystem axis to map to this rotary encoder.
+      Defaults to 0 (ABS_X / REL_X)
+
+  rotary-encoder,steps:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 24
+    description:
+      Number of steps in a full turnaround of the
+      encoder. Only relevant for absolute axis. Defaults to 24 which is a
+      typical value for such devices.
+
+  rotary-encoder,relative-axis:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      register a relative axis rather than an
+      absolute one. Relative axis will only generate +1/-1 events on the input
+      device, hence no steps need to be passed.
+
+  rotary-encoder,rollover:
+    $ref: /schemas/types.yaml#/definitions/int32
+    description:
+      Automatic rollover when the rotary value becomes
+      greater than the specified steps or smaller than 0. For absolute axis only.
+
+  rotary-encoder,steps-per-period:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 1
+    enum: [1, 2, 4]
+    description: |
+      Number of steps (stable states) per period.
+      The values have the following meaning:
+      1: Full-period mode (default)
+      2: Half-period mode
+      4: Quarter-period mode
+
+  wakeup-source: true
+
+  rotary-encoder,encoding:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: the method used to encode steps.
+    enum: [gray, binary]
+
+  rotary-encoder,half-period:
+    $ref: /schemas/types.yaml#/definitions/flag
+    deprecated: true
+    description:
+      Makes the driver work on half-period mode.
+      This property is deprecated. Instead, a 'steps-per-period ' value should
+      be used, such as "rotary-encoder,steps-per-period = <2>".
+
+required:
+  - compatible
+  - gpios
+
+additionalProperties: false
+
+examples:
+  - |
+    rotary {
+        compatible = "rotary-encoder";
+        gpios = <&gpio 19 1>, <&gpio 20 0>; /* GPIO19 is inverted */
+        linux,axis = <0>; /* REL_X */
+        rotary-encoder,encoding = "gray";
+        rotary-encoder,relative-axis;
+    };
+
diff --git a/Bindings/input/touchscreen/ad7879.txt b/Bindings/input/touchscreen/ad7879.txt
deleted file mode 100644 (file)
index afa38dc..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-* Analog Devices AD7879(-1)/AD7889(-1) touchscreen interface (SPI/I2C)
-
-Required properties:
-- compatible                   : for SPI slave, use "adi,ad7879"
-                                 for I2C slave, use "adi,ad7879-1"
-- reg                          : SPI chipselect/I2C slave address
-                                 See spi-bus.txt for more SPI slave properties
-- interrupts                   : touch controller interrupt
-- touchscreen-max-pressure     : maximum reported pressure
-- adi,resistance-plate-x       : total resistance of X-plate (for pressure
-                                 calculation)
-Optional properties:
-- touchscreen-swapped-x-y      : X and Y axis are swapped (boolean)
-- adi,first-conversion-delay   : 0-12: In 128us steps (starting with 128us)
-                                 13  : 2.560ms
-                                 14  : 3.584ms
-                                 15  : 4.096ms
-                                 This property has to be a '/bits/ 8' value
-- adi,acquisition-time         : 0: 2us
-                                 1: 4us
-                                 2: 8us
-                                 3: 16us
-                                 This property has to be a '/bits/ 8' value
-- adi,median-filter-size       : 0: disabled
-                                 1: 4 measurements
-                                 2: 8 measurements
-                                 3: 16 measurements
-                                 This property has to be a '/bits/ 8' value
-- adi,averaging                        : 0: 2 middle values (1 if median disabled)
-                                 1: 4 middle values
-                                 2: 8 middle values
-                                 3: 16 values
-                                 This property has to be a '/bits/ 8' value
-- adi,conversion-interval:     : 0    : convert one time only
-                                 1-255: 515us + val * 35us (up to 9.440ms)
-                                 This property has to be a '/bits/ 8' value
-- gpio-controller              : Switch AUX/VBAT/GPIO pin to GPIO mode
-
-Example:
-
-       touchscreen0@2c {
-               compatible = "adi,ad7879-1";
-               reg = <0x2c>;
-               interrupt-parent = <&gpio1>;
-               interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
-               touchscreen-max-pressure = <4096>;
-               adi,resistance-plate-x = <120>;
-               adi,first-conversion-delay = /bits/ 8 <3>;
-               adi,acquisition-time = /bits/ 8 <1>;
-               adi,median-filter-size = /bits/ 8 <2>;
-               adi,averaging = /bits/ 8 <1>;
-               adi,conversion-interval = /bits/ 8 <255>;
-       };
-
-       touchscreen1@1 {
-               compatible = "adi,ad7879";
-               spi-max-frequency = <5000000>;
-               reg = <1>;
-               spi-cpol;
-               spi-cpha;
-               gpio-controller;
-               interrupt-parent = <&gpio1>;
-               interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
-               touchscreen-max-pressure = <4096>;
-               adi,resistance-plate-x = <120>;
-               adi,first-conversion-delay = /bits/ 8 <3>;
-               adi,acquisition-time = /bits/ 8 <1>;
-               adi,median-filter-size = /bits/ 8 <2>;
-               adi,averaging = /bits/ 8 <1>;
-               adi,conversion-interval = /bits/ 8 <255>;
-       };
diff --git a/Bindings/input/touchscreen/adi,ad7879.yaml b/Bindings/input/touchscreen/adi,ad7879.yaml
new file mode 100644 (file)
index 0000000..caa5fa3
--- /dev/null
@@ -0,0 +1,150 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/touchscreen/adi,ad7879.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AD7879(-1)/AD7889(-1) touchscreen interface (SPI/I2C)
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    description: |
+      for SPI slave, use "adi,ad7879"
+      for I2C slave, use "adi,ad7879-1"
+    enum:
+      - adi,ad7879
+      - adi,ad7879-1
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  touchscreen-max-pressure:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: maximum reported pressure
+
+  adi,resistance-plate-x:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: total resistance of X-plate (for pressure calculation)
+
+  touchscreen-swapped-x-y:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: X and Y axis are swapped (boolean)
+
+  adi,first-conversion-delay:
+    $ref: /schemas/types.yaml#/definitions/uint8
+    default: 0
+    minimum: 0
+    maximum: 15
+    description: |
+      0-12: In 128us steps (starting with 128us)
+      13  : 2.560ms
+      14  : 3.584ms
+      15  : 4.096ms
+      This property has to be a '/bits/ 8' value
+
+  adi,acquisition-time:
+    $ref: /schemas/types.yaml#/definitions/uint8
+    default: 0
+    enum: [0, 1, 2, 3]
+    description: |
+      0: 2us
+      1: 4us
+      2: 8us
+      3: 16us
+      This property has to be a '/bits/ 8' value
+
+  adi,median-filter-size:
+    $ref: /schemas/types.yaml#/definitions/uint8
+    default: 0
+    enum: [0, 1, 2, 3]
+    description: |
+      0: disabled
+      1: 4 measurements
+      2: 8 measurements
+      3: 16 measurements
+      This property has to be a '/bits/ 8' value
+
+  adi,averaging:
+    $ref: /schemas/types.yaml#/definitions/uint8
+    default: 0
+    enum: [0, 1, 2, 3]
+    description: |
+      0: 2 middle values (1 if median disabled)
+      1: 4 middle values
+      2: 8 middle values
+      3: 16 values
+      This property has to be a '/bits/ 8' value
+
+  adi,conversion-interval:
+    $ref: /schemas/types.yaml#/definitions/uint8
+    default: 0
+    description: |
+      0    : convert one time only
+      1-255: 515us + val * 35us (up to 9.440ms)
+      This property has to be a '/bits/ 8' value
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 1
+
+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>;
+
+        touchscreen0@2c {
+            compatible = "adi,ad7879-1";
+            reg = <0x2c>;
+            interrupt-parent = <&gpio1>;
+            interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
+            touchscreen-max-pressure = <4096>;
+            adi,resistance-plate-x = <120>;
+            adi,first-conversion-delay = /bits/ 8 <3>;
+            adi,acquisition-time = /bits/ 8 <1>;
+            adi,median-filter-size = /bits/ 8 <2>;
+            adi,averaging = /bits/ 8 <1>;
+            adi,conversion-interval = /bits/ 8 <255>;
+        };
+    };
+
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        touchscreen1@1 {
+            compatible = "adi,ad7879";
+            reg = <1>;
+            spi-max-frequency = <5000000>;
+            gpio-controller;
+            #gpio-cells = <1>;
+            interrupt-parent = <&gpio1>;
+            interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
+            touchscreen-max-pressure = <4096>;
+            adi,resistance-plate-x = <120>;
+            adi,first-conversion-delay = /bits/ 8 <3>;
+            adi,acquisition-time = /bits/ 8 <1>;
+            adi,median-filter-size = /bits/ 8 <2>;
+            adi,averaging = /bits/ 8 <1>;
+            adi,conversion-interval = /bits/ 8 <255>;
+        };
+    };
diff --git a/Bindings/input/touchscreen/ads7846.txt b/Bindings/input/touchscreen/ads7846.txt
deleted file mode 100644 (file)
index 399c877..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-Device tree bindings for TI's ADS7843, ADS7845, ADS7846, ADS7873, TSC2046
-SPI driven touch screen controllers.
-
-The node for this driver must be a child node of a SPI controller, hence
-all mandatory properties described in
-
-       Documentation/devicetree/bindings/spi/spi-bus.txt
-
-must be specified.
-
-Additional required properties:
-
-       compatible              Must be one of the following, depending on the
-                               model:
-                                       "ti,tsc2046"
-                                       "ti,ads7843"
-                                       "ti,ads7845"
-                                       "ti,ads7846"
-                                       "ti,ads7873"
-
-       interrupts              An interrupt node describing the IRQ line the chip's
-                               !PENIRQ pin is connected to.
-       vcc-supply              A regulator node for the supply voltage.
-
-
-Optional properties:
-
-       ti,vref-delay-usecs             vref supply delay in usecs, 0 for
-                                       external vref (u16).
-       ti,vref-mv                      The VREF voltage, in millivolts (u16).
-                                       Set to 0 to use internal references
-                                       (ADS7846).
-       ti,keep-vref-on                 set to keep vref on for differential
-                                       measurements as well
-       ti,settle-delay-usec            Settling time of the analog signals;
-                                       a function of Vcc and the capacitance
-                                       on the X/Y drivers.  If set to non-zero,
-                                       two samples are taken with settle_delay
-                                       us apart, and the second one is used.
-                                       ~150 uSec with 0.01uF caps (u16).
-       ti,penirq-recheck-delay-usecs   If set to non-zero, after samples are
-                                       taken this delay is applied and penirq
-                                       is rechecked, to help avoid false
-                                       events.  This value is affected by the
-                                       material used to build the touch layer
-                                       (u16).
-       ti,x-plate-ohms                 Resistance of the X-plate,
-                                       in Ohms (u16).
-       ti,y-plate-ohms                 Resistance of the Y-plate,
-                                       in Ohms (u16).
-       ti,x-min                        Minimum value on the X axis (u16).
-       ti,y-min                        Minimum value on the Y axis (u16).
-       ti,debounce-tol                 Tolerance used for filtering (u16).
-       ti,debounce-rep                 Additional consecutive good readings
-                                       required after the first two (u16).
-       ti,pendown-gpio-debounce        Platform specific debounce time for the
-                                       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].
-       touchscreen-size-y              General touchscreen binding, see [1].
-       touchscreen-max-pressure        General touchscreen binding, see [1].
-       touchscreen-min-pressure        General touchscreen binding, see [1].
-       touchscreen-average-samples     General touchscreen binding, see [1].
-       touchscreen-inverted-x          General touchscreen binding, see [1].
-       touchscreen-inverted-y          General touchscreen binding, see [1].
-       touchscreen-swapped-x-y         General touchscreen binding, see [1].
-
-[1] All general touchscreen properties are described in
-    Documentation/devicetree/bindings/input/touchscreen/touchscreen.txt.
-
-Deprecated properties:
-
-       ti,swap-xy                      swap x and y axis
-       ti,x-max                        Maximum value on the X axis (u16).
-       ti,y-max                        Maximum value on the Y axis (u16).
-       ti,pressure-min                 Minimum reported pressure value
-                                       (threshold) - u16.
-       ti,pressure-max                 Maximum reported pressure value (u16).
-       ti,debounce-max                 Max number of additional readings per
-                                       sample (u16).
-
-Example for a TSC2046 chip connected to an McSPI controller of an OMAP SoC::
-
-       spi_controller {
-               tsc2046@0 {
-                       reg = <0>;      /* CS0 */
-                       compatible = "ti,tsc2046";
-                       interrupt-parent = <&gpio1>;
-                       interrupts = <8 0>;     /* BOOT6 / GPIO 8 */
-                       spi-max-frequency = <1000000>;
-                       pendown-gpio = <&gpio1 8 0>;
-                       vcc-supply = <&reg_vcc3>;
-
-                       ti,x-min = /bits/ 16 <0>;
-                       ti,x-max = /bits/ 16 <8000>;
-                       ti,y-min = /bits/ 16 <0>;
-                       ti,y-max = /bits/ 16 <4800>;
-                       ti,x-plate-ohms = /bits/ 16 <40>;
-                       ti,pressure-max = /bits/ 16 <255>;
-
-                       wakeup-source;
-               };
-       };
index 8cf371b99f19cd55d16cbd3639ae1ca43f0780b0..e4dbbafb377990cf037a5c88b5e0af9d47234bf4 100644 (file)
@@ -666,7 +666,7 @@ examples:
             #address-cells = <1>;
             #size-cells = <0>;
 
-            touch@56 {
+            touchscreen@56 {
                     compatible = "azoteq,iqs7210a";
                     reg = <0x56>;
                     irq-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
@@ -704,7 +704,7 @@ examples:
             #address-cells = <1>;
             #size-cells = <0>;
 
-            touch@56 {
+            touchscreen@56 {
                     compatible = "azoteq,iqs7211e";
                     reg = <0x56>;
                     irq-gpios = <&gpio 4 (GPIO_ACTIVE_LOW |
diff --git a/Bindings/input/touchscreen/colibri-vf50-ts.txt b/Bindings/input/touchscreen/colibri-vf50-ts.txt
deleted file mode 100644 (file)
index ca30435..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-* Toradex Colibri VF50 Touchscreen driver
-
-Required Properties:
-- compatible must be toradex,vf50-touchscreen
-- io-channels: adc channels being used by the Colibri VF50 module
-    IIO ADC for Y-, X-, Y+, X+ connections
-- xp-gpios: FET gate driver for input of X+
-- xm-gpios: FET gate driver for input of X-
-- yp-gpios: FET gate driver for input of Y+
-- ym-gpios: FET gate driver for input of Y-
-- interrupts: pen irq interrupt for touch detection, signal from X plate
-- pinctrl-names: "idle", "default"
-- pinctrl-0: pinctrl node for pen/touch detection, pinctrl must provide
-    pull-up resistor on X+, X-.
-- pinctrl-1: pinctrl node for X/Y and pressure measurement (ADC) state pinmux
-- vf50-ts-min-pressure: pressure level at which to stop measuring X/Y values
-
-Example:
-
-       touchctrl: vf50_touchctrl {
-               compatible = "toradex,vf50-touchscreen";
-               io-channels = <&adc1 0>,<&adc0 0>,
-                               <&adc0 1>,<&adc1 2>;
-               xp-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
-               xm-gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>;
-               yp-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
-               ym-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
-               interrupt-parent = <&gpio0>;
-               interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
-               pinctrl-names = "idle","default";
-               pinctrl-0 = <&pinctrl_touchctrl_idle>, <&pinctrl_touchctrl_gpios>;
-               pinctrl-1 = <&pinctrl_touchctrl_default>, <&pinctrl_touchctrl_gpios>;
-               vf50-ts-min-pressure = <200>;
-       };
index 51d48d4130d380d053f85f97f6a0428e483891b3..70a922e213f2a62e3d0bd403e24ed9c3ccffd2d5 100644 (file)
@@ -126,7 +126,7 @@ examples:
     i2c {
       #address-cells = <1>;
       #size-cells = <0>;
-      edt-ft5x06@38 {
+      touchscreen@38 {
         compatible = "edt,edt-ft5406";
         reg = <0x38>;
         interrupt-parent = <&gpio2>;
index 2a2d86cfd1048781a66d71ec8a8d60cc298e4f5b..eb4992f708b70fef93bd4b59b9565123f7c6ad5d 100644 (file)
@@ -69,7 +69,7 @@ examples:
     i2c {
       #address-cells = <1>;
       #size-cells = <0>;
-      gt928@5d {
+      touchscreen@5d {
         compatible = "goodix,gt928";
         reg = <0x5d>;
         interrupt-parent = <&gpio>;
diff --git a/Bindings/input/touchscreen/ti,ads7843.yaml b/Bindings/input/touchscreen/ti,ads7843.yaml
new file mode 100644 (file)
index 0000000..6049217
--- /dev/null
@@ -0,0 +1,183 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/touchscreen/ti,ads7843.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI's SPI driven touch screen controllers
+
+maintainers:
+  - Alexander Stein <alexander.stein@ew.tq-group.com>
+  - Dmitry Torokhov <dmitry.torokhov@gmail.com>
+  - Marek Vasut <marex@denx.de>
+
+description:
+  TI's ADS7843, ADS7845, ADS7846, ADS7873, TSC2046 SPI driven touch screen
+  controllers.
+
+properties:
+  compatible:
+    enum:
+      - ti,ads7843
+      - ti,ads7845
+      - ti,ads7846
+      - ti,ads7873
+      - ti,tsc2046
+
+  interrupts:
+    maxItems: 1
+
+  pendown-gpio:
+    maxItems: 1
+    description:
+      GPIO handle describing the pin the !PENIRQ line is connected to.
+
+  vcc-supply:
+    description:
+      A regulator node for the supply voltage.
+
+  wakeup-source: true
+
+  ti,debounce-max:
+    deprecated: true
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Max number of additional readings per sample.
+
+  ti,debounce-rep:
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Additional consecutive good readings required after the first two.
+
+  ti,debounce-tol:
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Tolerance used for filtering.
+
+  ti,hsync-gpios:
+    maxItems: 1
+    description:
+      GPIO line to poll for hsync.
+
+  ti,keep-vref-on:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Set to keep Vref on for differential measurements as well.
+
+  ti,pendown-gpio-debounce:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Platform specific debounce time for the pendown-gpio.
+
+  ti,penirq-recheck-delay-usecs:
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      If set to non-zero, after samples are taken this delay is applied and
+      penirq is rechecked, to help avoid false events.  This value is
+      affected by the material used to build the touch layer.
+
+  ti,pressure-max:
+    deprecated: true
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Maximum reported pressure value.
+
+  ti,pressure-min:
+    deprecated: true
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Minimum reported pressure value (threshold).
+
+  ti,settle-delay-usec:
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Settling time of the analog signals; a function of Vcc and the
+      capacitance on the X/Y drivers.  If set to non-zero, two samples are
+      taken with settle_delay us apart, and the second one is used. ~150
+      uSec with 0.01uF caps.
+
+  ti,swap-xy:
+    deprecated: true
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Swap x and y axis.
+
+  ti,vref-delay-usecs:
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Vref supply delay in usecs, 0 for external Vref.
+
+  ti,vref-mv:
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      The VREF voltage, in millivolts.
+      Set to 0 to use internal references (ADS7846).
+
+  ti,x-plate-ohms:
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Resistance of the X-plate, in Ohms.
+
+  ti,x-max:
+    deprecated: true
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Maximum value on the X axis.
+
+  ti,x-min:
+    deprecated: true
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Minimum value on the X axis.
+
+  ti,y-plate-ohms:
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Resistance of the Y-plate, in Ohms.
+
+  ti,y-max:
+    deprecated: true
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Maximum value on the Y axis.
+
+  ti,y-min:
+    deprecated: true
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description:
+      Minimum value on the Y axis.
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: touchscreen.yaml#
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    spi{
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        touchscreen@0 {
+           compatible = "ti,tsc2046";
+           reg = <0>;  /* CS0 */
+           interrupt-parent = <&gpio1>;
+           interrupts = <8 0>; /* BOOT6 / GPIO 8 */
+           pendown-gpio = <&gpio1 8 0>;
+           spi-max-frequency = <1000000>;
+           vcc-supply = <&reg_vcc3>;
+           wakeup-source;
+
+           ti,pressure-max = /bits/ 16 <255>;
+           ti,x-max = /bits/ 16 <8000>;
+           ti,x-min = /bits/ 16 <0>;
+           ti,x-plate-ohms = /bits/ 16 <40>;
+           ti,y-max = /bits/ 16 <4800>;
+           ti,y-min = /bits/ 16 <0>;
+       };
+    };
diff --git a/Bindings/input/touchscreen/toradex,vf50-touchscreen.yaml b/Bindings/input/touchscreen/toradex,vf50-touchscreen.yaml
new file mode 100644 (file)
index 0000000..5094c51
--- /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/input/touchscreen/toradex,vf50-touchscreen.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Toradex Colibri VF50 Touchscreen
+
+maintainers:
+  - Dmitry Torokhov <dmitry.torokhov@gmail.com>
+  - Sanchayan Maity <maitysanchayan@gmail.com>
+
+properties:
+  compatible:
+    const: toradex,vf50-touchscreen
+
+  interrupts:
+    maxItems: 1
+
+  io-channels:
+    maxItems: 4
+    description:
+      adc channels being used by the Colibri VF50 module
+      IIO ADC for Y-, X-, Y+, X+ connections
+
+  xp-gpios:
+    description: FET gate driver for input of X+
+
+  xm-gpios:
+    description: FET gate driver for input of X-
+
+  yp-gpios:
+    description: FET gate driver for input of Y+
+
+  ym-gpios:
+    description: FET gate driver for input of Y-
+
+  vf50-ts-min-pressure:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 50
+    maximum: 2000
+    description: pressure level at which to stop measuring X/Y values
+
+required:
+  - compatible
+  - io-channels
+  - xp-gpios
+  - xm-gpios
+  - yp-gpios
+  - ym-gpios
+  - interrupts
+  - vf50-ts-min-pressure
+
+allOf:
+  - $ref: touchscreen.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    touchscreen {
+        compatible = "toradex,vf50-touchscreen";
+        interrupt-parent = <&gpio0>;
+        interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
+        io-channels = <&adc1 0>, <&adc0 0>, <&adc0 1>, <&adc1 2>;
+        xp-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
+        xm-gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>;
+        yp-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
+        ym-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
+        pinctrl-names = "idle", "default";
+        pinctrl-0 = <&pinctrl_touchctrl_idle>, <&pinctrl_touchctrl_gpios>;
+        pinctrl-1 = <&pinctrl_touchctrl_default>, <&pinctrl_touchctrl_gpios>;
+        vf50-ts-min-pressure = <200>;
+    };
index b1507463a03e99574fd8a8304108d63fde0f0714..3f663ce3e44ece912acbbe56b1feef4abfac6236 100644 (file)
@@ -16,6 +16,7 @@ maintainers:
 
 allOf:
   - $ref: touchscreen.yaml#
+  - $ref: ../input.yaml#
 
 properties:
   $nodename:
@@ -79,6 +80,15 @@ properties:
     $ref: /schemas/types.yaml#/definitions/uint32
     enum: [1, 2]
 
+  linux,keycodes:
+    description:
+      This property specifies an array of keycodes assigned to the
+      touch-keys that can be present in some touchscreen configurations.
+      If the touch-keys are enabled, controller firmware will assign some
+      touch sense lines to those keys.
+    minItems: 1
+    maxItems: 8
+
   touchscreen-size-x: true
   touchscreen-size-y: true
   touchscreen-fuzz-x: true
index fd15ab5014fb5829981299eda2a17a132ed2f9bc..4b08be72bbd7da76a7fcb61dfa8ee83677c5f5db 100644 (file)
@@ -4,14 +4,14 @@
 $id: http://devicetree.org/schemas/interconnect/qcom,msm8939.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Qualcomm MSM8939 Network-On-Chip interconnect
+title: Qualcomm MSM8937/MSM8939/MSM8976 Network-On-Chip interconnect
 
 maintainers:
   - Konrad Dybcio <konradybcio@kernel.org>
 
-description: |
-  The Qualcomm MSM8939 interconnect providers support adjusting the
-  bandwidth requirements between the various NoC fabrics.
+description:
+  The Qualcomm MSM8937/MSM8939/MSM8976 interconnect providers support
+  adjusting the bandwidth requirements between the various NoC fabrics.
 
 allOf:
   - $ref: qcom,rpm-common.yaml#
@@ -19,9 +19,15 @@ allOf:
 properties:
   compatible:
     enum:
+      - qcom,msm8937-bimc
+      - qcom,msm8937-pcnoc
+      - qcom,msm8937-snoc
       - qcom,msm8939-bimc
       - qcom,msm8939-pcnoc
       - qcom,msm8939-snoc
+      - qcom,msm8976-bimc
+      - qcom,msm8976-pcnoc
+      - qcom,msm8976-snoc
 
   reg:
     maxItems: 1
@@ -39,7 +45,10 @@ patternProperties:
 
     properties:
       compatible:
-        const: qcom,msm8939-snoc-mm
+        enum:
+          - qcom,msm8937-snoc-mm
+          - qcom,msm8939-snoc-mm
+          - qcom,msm8976-snoc-mm
 
     required:
       - compatible
@@ -60,12 +69,6 @@ examples:
         compatible = "qcom,msm8939-snoc";
         reg = <0x00580000 0x14000>;
         #interconnect-cells = <1>;
-    };
-
-    bimc: interconnect@400000 {
-        compatible = "qcom,msm8939-bimc";
-        reg = <0x00400000 0x62000>;
-        #interconnect-cells = <1>;
 
           snoc_mm: interconnect-snoc {
               compatible = "qcom,msm8939-snoc-mm";
index 732e9fa001a4c7da8cf605c9e5b9b3ffcec0d937..343ff62d7b65be0e2a8548c2ea96dde459b5fa24 100644 (file)
@@ -13,8 +13,7 @@ description: |
   The Qualcomm MSM8953 interconnect providers support adjusting the
   bandwidth requirements between the various NoC fabrics.
 
-  See also:
-  - dt-bindings/interconnect/qcom,msm8953.h
+  See also: include/dt-bindings/interconnect/qcom,msm8953.h
 
 properties:
   compatible:
index 2cd1f5590fd9bb6f30aa67010d6818a3bec8a10f..189f5900ee50d6e7ed742893e78de9cb2930c67b 100644 (file)
@@ -26,6 +26,7 @@ properties:
       - items:
           - enum:
               - qcom,qcm2290-cpu-bwmon
+              - qcom,sa8775p-cpu-bwmon
               - qcom,sc7180-cpu-bwmon
               - qcom,sc7280-cpu-bwmon
               - qcom,sc8280xp-cpu-bwmon
@@ -39,6 +40,7 @@ properties:
           - const: qcom,sdm845-bwmon    # BWMON v4, unified register space
       - items:
           - enum:
+              - qcom,sa8775p-llcc-bwmon
               - qcom,sc7180-llcc-bwmon
               - qcom,sc8280xp-llcc-bwmon
               - qcom,sm6350-cpu-bwmon
index 9318b845ec359bda726df0280ae338605a06f2cf..1b9164dc162f35e061a9e9048b33c0752548c05a 100644 (file)
@@ -71,7 +71,7 @@ properties:
       - qcom,sdx65-system-noc
       - qcom,sm8150-aggre1-noc
       - qcom,sm8150-aggre2-noc
-      - qcom,sm8150-camnoc-noc
+      - qcom,sm8150-camnoc-virt
       - qcom,sm8150-compute-noc
       - qcom,sm8150-config-noc
       - qcom,sm8150-dc-noc
@@ -113,6 +113,9 @@ allOf:
         properties:
           compatible:
             enum:
+              - qcom,sc8180x-camnoc-virt
+              - qcom,sc8180x-mc-virt
+              - qcom,sc8180x-qup-virt
               - qcom,sdx65-mc-virt
               - qcom,sm8250-qup-virt
     then:
index 698588e9aa869c188bd9cd84e468025811d7552e..4be9b596a7904bfb846e3798a5774dd735524a4b 100644 (file)
@@ -31,13 +31,25 @@ description: |
   This device also represents the FIQ interrupt sources on platforms using AIC,
   which do not go through a discrete interrupt controller.
 
+  IPIs may be performed via MMIO registers on all variants of AIC. Starting
+  from A11, system registers may also be used for "fast" IPIs. Starting from
+  M1, even faster IPIs within the same cluster may be achieved by writing to
+  a "local" fast IPI register as opposed to using the "global" fast IPI
+  register.
+
 allOf:
   - $ref: /schemas/interrupt-controller.yaml#
 
 properties:
   compatible:
     items:
-      - const: apple,t8103-aic
+      - enum:
+          - apple,s5l8960x-aic
+          - apple,t7000-aic
+          - apple,s8000-aic
+          - apple,t8010-aic
+          - apple,t8015-aic
+          - apple,t8103-aic
       - const: apple,aic
 
   interrupt-controller: true
index 0f4a062c9d6fe32259d9349ec4fab4e08f77a5dd..5f051c666cbe5ff86e243893ab414242ef35d3c9 100644 (file)
@@ -60,7 +60,7 @@ properties:
       The 4th cell is a phandle to a node describing a set of CPUs this
       interrupt is affine to. The interrupt must be a PPI, and the node
       pointed must be a subnode of the "ppi-partitions" subnode. For
-      interrupt types other than PPI or PPIs that are not partitionned,
+      interrupt types other than PPI or PPIs that are not partitioned,
       this cell must be zero. See the "ppi-partitions" node description
       below.
 
diff --git a/Bindings/interrupt-controller/aspeed,ast2400-vic.txt b/Bindings/interrupt-controller/aspeed,ast2400-vic.txt
deleted file mode 100644 (file)
index e3fea07..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-Aspeed Vectored Interrupt Controller
-
-These bindings are for the Aspeed interrupt controller. The AST2400 and
-AST2500 SoC families include a legacy register layout before a re-designed
-layout, but the bindings do not prescribe the use of one or the other.
-
-Required properties:
-
-- compatible : "aspeed,ast2400-vic"
-               "aspeed,ast2500-vic"
-
-- interrupt-controller : Identifies the node as an interrupt controller
-- #interrupt-cells : Specifies the number of cells needed to encode an
-  interrupt source. The value shall be 1.
-
-Example:
-
- vic: interrupt-controller@1e6c0080 {
-      compatible = "aspeed,ast2400-vic";
-      interrupt-controller;
-      #interrupt-cells = <1>;
-      reg = <0x1e6c0080 0x80>;
- };
diff --git a/Bindings/interrupt-controller/aspeed,ast2400-vic.yaml b/Bindings/interrupt-controller/aspeed,ast2400-vic.yaml
new file mode 100644 (file)
index 0000000..73e8b9a
--- /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/interrupt-controller/aspeed,ast2400-vic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Aspeed Vectored Interrupt Controller
+
+maintainers:
+  - Andrew Jeffery <andrew@codeconstruct.com.au>
+
+description:
+  The AST2400 and AST2500 SoC families include a legacy register layout before
+  a redesigned layout, but the bindings do not prescribe the use of one or the
+  other.
+
+properties:
+  compatible:
+    enum:
+      - aspeed,ast2400-vic
+      - aspeed,ast2500-vic
+
+  reg:
+    maxItems: 1
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    const: 1
+    description:
+      Specifies the number of cells needed to encode an interrupt source. It
+      must be 1 as the VIC has no configuration options for interrupt sources.
+      The single cell defines the interrupt number.
+
+  valid-sources:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    maxItems: 2
+    description:
+      A bitmap of supported sources for the implementation.
+
+required:
+  - compatible
+  - reg
+  - interrupt-controller
+  - "#interrupt-cells"
+
+allOf:
+  - $ref: /schemas/interrupt-controller.yaml
+
+additionalProperties: false
+
+examples:
+  - |
+    interrupt-controller@1e6c0080 {
+         compatible = "aspeed,ast2400-vic";
+         reg = <0x1e6c0080 0x80>;
+         interrupt-controller;
+         #interrupt-cells = <1>;
+         valid-sources = <0xffffffff 0x0007ffff>;
+    };
+
+...
diff --git a/Bindings/interrupt-controller/brcm,bcm2836-l1-intc.txt b/Bindings/interrupt-controller/brcm,bcm2836-l1-intc.txt
deleted file mode 100644 (file)
index 8ced169..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-BCM2836 per-CPU interrupt controller
-
-The BCM2836 has a per-cpu interrupt controller for the timer, PMU
-events, and SMP IPIs.  One of the CPUs may receive interrupts for the
-peripheral (GPU) events, which chain to the BCM2835-style interrupt
-controller.
-
-Required properties:
-
-- compatible:          Should be "brcm,bcm2836-l1-intc"
-- reg:                 Specifies base physical address and size of the
-                         registers
-- interrupt-controller:        Identifies the node as an interrupt controller
-- #interrupt-cells:    Specifies the number of cells needed to encode an
-                         interrupt source. The value shall be 2
-
-Please refer to interrupts.txt in this directory for details of the common
-Interrupt Controllers bindings used by client devices.
-
-The interrupt sources are as follows:
-
-0: CNTPSIRQ
-1: CNTPNSIRQ
-2: CNTHPIRQ
-3: CNTVIRQ
-8: GPU_FAST
-9: PMU_FAST
-
-Example:
-
-local_intc: local_intc {
-       compatible = "brcm,bcm2836-l1-intc";
-       reg = <0x40000000 0x100>;
-       interrupt-controller;
-       #interrupt-cells = <2>;
-       interrupt-parent = <&local_intc>;
-};
diff --git a/Bindings/interrupt-controller/brcm,bcm2836-l1-intc.yaml b/Bindings/interrupt-controller/brcm,bcm2836-l1-intc.yaml
new file mode 100644 (file)
index 0000000..5fda626
--- /dev/null
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/brcm,bcm2836-l1-intc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: BCM2836 per-CPU interrupt controller
+
+maintainers:
+  - Stefan Wahren <wahrenst@gmx.net>
+  - Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
+
+description:
+  The BCM2836 has a per-cpu interrupt controller for the timer, PMU
+  events, and SMP IPIs. One of the CPUs may receive interrupts for the
+  peripheral (GPU) events, which chain to the BCM2835-style interrupt
+  controller.
+
+allOf:
+  - $ref: /schemas/interrupt-controller.yaml#
+
+properties:
+  compatible:
+    const: brcm,bcm2836-l1-intc
+
+  reg:
+    maxItems: 1
+
+  interrupt-controller: true
+
+  '#interrupt-cells':
+    const: 2
+
+required:
+  - compatible
+  - reg
+  - interrupt-controller
+  - '#interrupt-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    local_intc: interrupt-controller@40000000 {
+        compatible = "brcm,bcm2836-l1-intc";
+        reg = <0x40000000 0x100>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        interrupt-parent = <&local_intc>;
+    };
+...
index aae676ba30edc5af20f71e3ed4a926ca7f4699fb..6076ddf56bb5af487c0c278dae2ca684f4eb1d8b 100644 (file)
@@ -17,6 +17,7 @@ properties:
           - enum:
               - fsl,imx8m-irqsteer
               - fsl,imx8mp-irqsteer
+              - fsl,imx8qm-irqsteer
               - fsl,imx8qxp-irqsteer
           - const: fsl,imx-irqsteer
 
@@ -83,6 +84,7 @@ allOf:
           contains:
             enum:
               - fsl,imx8mp-irqsteer
+              - fsl,imx8qm-irqsteer
               - fsl,imx8qxp-irqsteer
     then:
       required:
index 199b34fdbefc4398a937f9b9b58f2108f222f96b..7ff4efc4758ab71cc413adfe4e3d2dd3cc2f1bce 100644 (file)
@@ -82,9 +82,6 @@ allOf:
             enum:
               - fsl,ls1043a-extirq
               - fsl,ls1046a-extirq
-              - fsl,ls1088a-extirq
-              - fsl,ls2080a-extirq
-              - fsl,lx2160a-extirq
     then:
       properties:
         interrupt-map:
@@ -95,6 +92,29 @@ allOf:
             - const: 0xf
             - const: 0
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,ls1088a-extirq
+              - fsl,ls2080a-extirq
+              - fsl,lx2160a-extirq
+# The driver(drivers/irqchip/irq-ls-extirq.c) have not use standard DT
+# function to parser interrupt-map. So it doesn't consider '#address-size'
+# in parent interrupt controller, such as GIC.
+#
+# When dt-binding verify interrupt-map, item data matrix is spitted at
+# incorrect position. Remove interrupt-map restriction because it always
+# wrong.
+
+    then:
+      properties:
+        interrupt-map-mask:
+          items:
+            - const: 0xf
+            - const: 0
+
 additionalProperties: false
 
 examples:
index 985fa10abb99495e2fff66ef4210c677ee98a345..b1ea08a41bb0c369985c5f2d5b4c4644367a88dd 100644 (file)
@@ -27,6 +27,7 @@ properties:
     items:
       - enum:
           - qcom,qdu1000-pdc
+          - qcom,sa8255p-pdc
           - qcom,sa8775p-pdc
           - qcom,sc7180-pdc
           - qcom,sc7280-pdc
index 709b2211276bd996ae0b5ca15f5bb8ad7efd759a..7e1451f9786a8b5c0c2322569e5391fa3ac46daf 100644 (file)
@@ -67,6 +67,7 @@ properties:
               - allwinner,sun20i-d1-plic
               - sophgo,cv1800b-plic
               - sophgo,cv1812h-plic
+              - sophgo,sg2002-plic
               - sophgo,sg2042-plic
               - thead,th1520-plic
           - const: thead,c900-plic
index 280b4e49f2191972c86dfafd1d553d17d9f77c21..92d350b8e01a83f30ba81ba4f35107e16a2d2378 100644 (file)
@@ -36,7 +36,9 @@ properties:
         items:
           - enum:
               - qcom,qcm2290-smmu-500
+              - qcom,qcs8300-smmu-500
               - qcom,qdu1000-smmu-500
+              - qcom,sa8255p-smmu-500
               - qcom,sa8775p-smmu-500
               - qcom,sc7180-smmu-500
               - qcom,sc7280-smmu-500
@@ -84,6 +86,7 @@ properties:
         items:
           - enum:
               - qcom,qcm2290-smmu-500
+              - qcom,sa8255p-smmu-500
               - qcom,sa8775p-smmu-500
               - qcom,sc7280-smmu-500
               - qcom,sc8180x-smmu-500
@@ -552,7 +555,9 @@ allOf:
               - cavium,smmu-v2
               - marvell,ap806-smmu-500
               - nvidia,smmu-500
+              - qcom,qcs8300-smmu-500
               - qcom,qdu1000-smmu-500
+              - qcom,sa8255p-smmu-500
               - qcom,sc7180-smmu-500
               - qcom,sdm670-smmu-500
               - qcom,sdm845-smmu-500
index 54d6d1f08e2489d91d104a89df31cbc31e823f2c..17e971903ee9111761f763de65bed54df91a969e 100644 (file)
@@ -66,7 +66,7 @@ patternProperties:
             IMAXled = 160000 * (592 / 600.5) * (1 / max-current-switch-number)
           And the minimum output current formula:
             IMINled = 3300 * (592 / 600.5) * (1 / max-current-switch-number)
-          where max-current-switch-number is determinated by led configuration
+          where max-current-switch-number is determined by led configuration
           and depends on how leds are physically connected to the led driver.
 
 allOf:
index 8a3c2398b10ce041c6762257d3863a2d5e91fed3..bf9a101e4d42068fbc3ccf14b348176b49c3b353 100644 (file)
@@ -113,6 +113,8 @@ properties:
             # LED indicates NAND memory activity (deprecated),
             # in new implementations use "mtd"
           - nand-disk
+            # LED indicates network activity
+          - netdev
             # No trigger assigned to the LED. This is the default mode
             # if trigger is absent
           - none
diff --git a/Bindings/leds/leds-lm3692x.txt b/Bindings/leds/leds-lm3692x.txt
deleted file mode 100644 (file)
index b1103d9..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-* Texas Instruments - LM3692x Highly Efficient White LED Driver
-
-The LM3692x is an ultra-compact, highly efficient,
-white-LED driver designed for LCD display backlighting.
-
-The main difference between the LM36922 and LM36923 is the number of
-LED strings it supports.  The LM36922 supports two strings while the LM36923
-supports three strings.
-
-Required properties:
-       - compatible:
-               "ti,lm36922"
-               "ti,lm36923"
-       - reg :  I2C slave address
-       - #address-cells : 1
-       - #size-cells : 0
-
-Optional properties:
-       - enable-gpios : gpio pin to enable/disable the device.
-       - vled-supply : LED supply
-       - ti,ovp-microvolt: Overvoltage protection in
-           micro-volt, can be 17000000, 21000000, 25000000 or
-           29000000. If ti,ovp-microvolt is not specified it
-           defaults to 29000000.
-
-Required child properties:
-       - reg : 0 - Will enable all LED sync paths
-               1 - Will enable the LED1 sync
-               2 - Will enable the LED2 sync
-               3 - Will enable the LED3 sync (LM36923 only)
-
-Optional child properties:
-       - function : see Documentation/devicetree/bindings/leds/common.txt
-       - color : see Documentation/devicetree/bindings/leds/common.txt
-       - label : see Documentation/devicetree/bindings/leds/common.txt (deprecated)
-       - linux,default-trigger :
-          see Documentation/devicetree/bindings/leds/common.txt
-       - led-max-microamp :
-          see Documentation/devicetree/bindings/leds/common.txt
-
-Example:
-
-#include <dt-bindings/leds/common.h>
-
-led-controller@36 {
-       compatible = "ti,lm3692x";
-       reg = <0x36>;
-       #address-cells = <1>;
-       #size-cells = <0>;
-
-       enable-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-       vled-supply = <&vbatt>;
-       ti,ovp-microvolt = <29000000>;
-
-       led@0 {
-               reg = <0>;
-               function = LED_FUNCTION_BACKLIGHT;
-               color = <LED_COLOR_ID_WHITE>;
-               linux,default-trigger = "backlight";
-               led-max-microamp = <20000>;
-       };
-}
-
-For more product information please see the link below:
-https://www.ti.com/lit/ds/snvsa29/snvsa29.pdf
diff --git a/Bindings/leds/leds-sc27xx-bltc.txt b/Bindings/leds/leds-sc27xx-bltc.txt
deleted file mode 100644 (file)
index df2b4e1..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-LEDs connected to Spreadtrum SC27XX PMIC breathing light controller
-
-The SC27xx breathing light controller supports to 3 outputs:
-red LED, green LED and blue LED. Each LED can work at normal
-PWM mode or breath light mode.
-
-Required properties:
-- compatible: Should be "sprd,sc2731-bltc".
-- #address-cells: Must be 1.
-- #size-cells: Must be 0.
-- reg: Specify the controller address.
-
-Required child properties:
-- reg: Port this LED is connected to.
-
-Optional child properties:
-- function: See Documentation/devicetree/bindings/leds/common.txt.
-- color: See Documentation/devicetree/bindings/leds/common.txt.
-- label: See Documentation/devicetree/bindings/leds/common.txt (deprecated).
-
-Examples:
-
-led-controller@200 {
-       compatible = "sprd,sc2731-bltc";
-       #address-cells = <1>;
-       #size-cells = <0>;
-       reg = <0x200>;
-
-       led@0 {
-               color = <LED_COLOR_ID_RED>;
-               reg = <0x0>;
-       };
-
-       led@1 {
-               color = <LED_COLOR_ID_GREEN>;
-               reg = <0x1>;
-       };
-
-       led@2 {
-               color = <LED_COLOR_ID_BLUE>;
-               reg = <0x2>;
-       };
-};
index 654915c1f687f3bfe08229410575eeff5376ceea..ab8c90cbadb5ca52a07b7a3d90e0f7235bc3bc0d 100644 (file)
@@ -11,19 +11,21 @@ maintainers:
   - Marek Vasut <marex@denx.de>
 
 description:
-  The NXP PCA9952/PCA9955B are programmable LED controllers connected via I2C
-  that can drive 16 separate lines. Each of them can be individually switched
+  The NXP PCA995x family are programmable LED controllers connected via I2C
+  that can drive separate lines. Each of them can be individually switched
   on and off, and brightness can be controlled via individual PWM.
 
   Datasheets are available at
   https://www.nxp.com/docs/en/data-sheet/PCA9952_PCA9955.pdf
   https://www.nxp.com/docs/en/data-sheet/PCA9955B.pdf
+  https://www.nxp.com/docs/en/data-sheet/PCA9956B.pdf
 
 properties:
   compatible:
     enum:
       - nxp,pca9952
       - nxp,pca9955b
+      - nxp,pca9956b
 
   reg:
     maxItems: 1
diff --git a/Bindings/leds/sprd,sc2731-bltc.yaml b/Bindings/leds/sprd,sc2731-bltc.yaml
new file mode 100644 (file)
index 0000000..5853410
--- /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/leds/sprd,sc2731-bltc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Spreadtrum SC2731 PMIC breathing light controller
+
+maintainers:
+  - Orson Zhai <orsonzhai@gmail.com>
+  - Baolin Wang <baolin.wang7@gmail.com>
+  - Chunyan Zhang <zhang.lyra@gmail.com>
+
+description: |
+  The SC2731 breathing light controller supports up to 3 outputs:
+  red LED, green LED and blue LED. Each LED can work at normal PWM mode
+  or breath light mode.
+
+properties:
+  compatible:
+    const: sprd,sc2731-bltc
+
+  reg:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  "^led@[0-2]$":
+    type: object
+    $ref: common.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        minimum: 0
+        maximum: 2
+
+    required:
+      - reg
+
+required:
+  - compatible
+  - reg
+  - '#address-cells'
+  - '#size-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/leds/common.h>
+
+    pmic {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      led-controller@200 {
+        compatible = "sprd,sc2731-bltc";
+        reg = <0x200>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        led@0 {
+          reg = <0x0>;
+          color = <LED_COLOR_ID_RED>;
+        };
+
+        led@1 {
+          reg = <0x1>;
+          color = <LED_COLOR_ID_GREEN>;
+        };
+
+        led@2 {
+          reg = <0x2>;
+          color = <LED_COLOR_ID_BLUE>;
+        };
+      };
+    };
+...
diff --git a/Bindings/leds/ti.lm36922.yaml b/Bindings/leds/ti.lm36922.yaml
new file mode 100644 (file)
index 0000000..8ffbc6b
--- /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/leds/ti.lm36922.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments - LM3692x Highly Efficient White LED Driver
+
+maintainers:
+  - Dan Murphy <dmurphy@ti.com>
+
+description: |
+  The LM3692x is an ultra-compact, highly efficient,
+  white-LED driver designed for LCD display backlighting.
+
+  The main difference between the LM36922 and LM36923 is the number of
+  LED strings it supports. The LM36922 supports two strings while the LM36923
+  supports three strings.
+
+  For more product information please see the link below:
+  https://www.ti.com/lit/ds/snvsa29/snvsa29.pdf
+
+properties:
+  compatible:
+    enum:
+      - ti,lm36922
+      - ti,lm36923
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+  enable-gpios:
+    description: gpio pin to enable/disable the device.
+
+  vled-supply:
+    description: LED supply
+
+  ti,ovp-microvolt:
+    description: Overvoltage protection.
+    default: 29000000
+    enum: [17000000, 21000000, 25000000, 29000000]
+
+patternProperties:
+  '^led@[0-3]$':
+    type: object
+    $ref: common.yaml
+    properties:
+      reg:
+        enum: [0, 1, 2, 3]
+        description: |
+          0 - Will enable all LED sync paths
+          1 - Will enable the LED1 sync
+          2 - Will enable the LED2 sync
+          3 - Will enable the LED3 sync (LM36923 only)
+
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,lm36922
+    then:
+      properties:
+        led@3: false
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/leds/common.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        led-controller@36 {
+            compatible = "ti,lm36922";
+            reg = <0x36>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            enable-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
+            vled-supply = <&vbatt>;
+            ti,ovp-microvolt = <29000000>;
+
+            led@0 {
+                reg = <0>;
+                function = LED_FUNCTION_BACKLIGHT;
+                color = <LED_COLOR_ID_WHITE>;
+                linux,default-trigger = "backlight";
+                led-max-microamp = <20000>;
+            };
+        };
+    };
+
index c80065a1eb97863ffd79417826e0bfa940219568..bf0c998b8603025ec229e2d11ac5d1983402a205 100644 (file)
@@ -24,7 +24,7 @@ Required properties:
                number of completion messages for which FlexRM will inject
                one MSI interrupt to CPU.
 
-               The 3nd cell contains MSI timer value representing time for
+               The 3rd cell contains MSI timer value representing time for
                which FlexRM will wait to accumulate N completion messages
                where N is the value specified by 2nd cell above. If FlexRM
                does not get required number of completion messages in time
index 72c1d9e82c897cc1848cc58cece8298640d4603d..8a1369df4ecb22353e51304ddc98545ea906d5fa 100644 (file)
@@ -17,9 +17,15 @@ description: |
 
 properties:
   compatible:
-    enum:
-      - mediatek,mt8195-adsp-mbox
-      - mediatek,mt8186-adsp-mbox
+    oneOf:
+      - enum:
+          - mediatek,mt8186-adsp-mbox
+          - mediatek,mt8195-adsp-mbox
+      - items:
+          - enum:
+              - mediatek,mt8188-adsp-mbox
+          - const: mediatek,mt8186-adsp-mbox
+
 
   "#mbox-cells":
     const: 0
index 05e4e1d51713a612d3d0f02758e8bfd0500c7460..2d66770ed3612fd4bf9e28c334b273033e13684f 100644 (file)
@@ -24,7 +24,9 @@ properties:
   compatible:
     items:
       - enum:
+          - qcom,qcs8300-ipcc
           - qcom,qdu1000-ipcc
+          - qcom,sa8255p-ipcc
           - qcom,sa8775p-ipcc
           - qcom,sc7280-ipcc
           - qcom,sc8280xp-ipcc
index 55930f6107c9c5462267fedcc88a6428b8e5ac34..47dce75aeae65ae52637db9df7316b704b38e99e 100644 (file)
@@ -31,7 +31,8 @@ properties:
       - items:
           - enum:
               - amlogic,gxbb-vdec # GXBB (S905)
-              - amlogic,gxl-vdec # GXL (S905X, S905D)
+              - amlogic,gxl-vdec # GXL (S905D, S905W, S905X, S905Y)
+              - amlogic,gxlx-vdec # GXLX (S905L)
               - amlogic,gxm-vdec # GXM (S912)
           - const: amlogic,gx-vdec
       - enum:
diff --git a/Bindings/media/i2c/ovti,og01a1b.yaml b/Bindings/media/i2c/ovti,og01a1b.yaml
new file mode 100644 (file)
index 0000000..ca57c01
--- /dev/null
@@ -0,0 +1,107 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (c) 2023-2024 Linaro Ltd.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/ovti,og01a1b.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: OmniVision OG01A1B Image Sensor
+
+maintainers:
+  - Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
+
+description:
+  The OmniVision OG01A1B is black and white CMOS 1.3 Megapixel (1280x1024)
+  image sensor controlled over an I2C-compatible SCCB bus.
+  The sensor transmits images on a MIPI CSI-2 output interface with one or
+  two data lanes.
+
+allOf:
+  - $ref: /schemas/media/video-interface-devices.yaml#
+
+properties:
+  compatible:
+    const: ovti,og01a1b
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  reset-gpios:
+    description: Active low GPIO connected to XSHUTDOWN pad of the sensor.
+    maxItems: 1
+
+  strobe-gpios:
+    description: Input GPIO connected to strobe pad of the sensor.
+    maxItems: 1
+
+  avdd-supply:
+    description: Analogue circuit voltage supply.
+
+  dovdd-supply:
+    description: I/O circuit voltage supply.
+
+  dvdd-supply:
+    description: Digital circuit voltage supply.
+
+  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:
+            minItems: 1
+            maxItems: 2
+            items:
+              enum: [1, 2]
+
+          link-frequencies: true
+
+        required:
+          - data-lanes
+          - link-frequencies
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - port
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        sensor@60 {
+            compatible = "ovti,og01a1b";
+            reg = <0x60>;
+            clocks = <&clk 0>;
+            reset-gpios = <&gpio 117 GPIO_ACTIVE_LOW>;
+            avdd-supply = <&vreg_3v3>;
+            dovdd-supply = <&vreg_1p8>;
+            dvdd-supply = <&vreg_1p2>;
+
+            port {
+                og01a1b_ep: endpoint {
+                    remote-endpoint = <&csiphy_ep>;
+                    data-lanes = <1 2>;
+                    link-frequencies = /bits/ 64 <500000000>;
+                };
+            };
+        };
+    };
+...
index 106c36ee966db02d11bd27daaecbbce5696ac94f..77bf3a4ee89db3b5d16149470c0380ef8f1aeac1 100644 (file)
@@ -75,6 +75,8 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/gpio/gpio.h>
+
     i2c {
         #address-cells = <1>;
         #size-cells = <0>;
@@ -92,6 +94,8 @@ examples:
             ovdd-supply = <&camera_vddo_1v8>;
             dvdd-supply = <&camera_vddd_1v2>;
 
+            reset-gpios = <&gpio 50 GPIO_ACTIVE_LOW>;
+
             port {
                 imx335: endpoint {
                     remote-endpoint = <&cam>;
index 1978fbb77a6ce5a33e9a7675434f1345b2b3c89f..535acf2b88a90831744e1a11dd14e75ab34e2355 100644 (file)
@@ -16,7 +16,7 @@ description:
   can be connected to CMOS image sensors from various vendors, supporting both
   MIPI CSI-2 and parallel interfaces. It can also output on either MIPI CSI-2
   or parallel. The hardware is capable of transmitting and receiving MIPI
-  interlaved data strams with data types or multiple virtual channel
+  interleaved data streams with data types or multiple virtual channel
   identifiers.
 
 allOf:
index 8f9b6433aeb8c130b8895916d3a53c9a836a3eac..10c334e6b3dcf25967fa438f8e6e5035448af1b9 100644 (file)
@@ -43,6 +43,7 @@ properties:
       - const: vcodec_bus
 
   iommus:
+    minItems: 1
     maxItems: 2
 
   interconnects:
index c6abe719881b8557b431beeee11d9bff2b08623e..f94dacd962782287390cb3d2a151f1d180046549 100644 (file)
@@ -27,6 +27,7 @@ properties:
           - renesas,fcpf # FCP for FDP
       - items:
           - enum:
+              - renesas,r9a07g043u-fcpvd # RZ/G2UL
               - renesas,r9a07g044-fcpvd # RZ/G2{L,LC}
               - renesas,r9a07g054-fcpvd # RZ/V2L
           - const: renesas,fcpv         # Generic FCP for VSP fallback
@@ -62,6 +63,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - renesas,r9a07g043u-fcpvd
               - renesas,r9a07g044-fcpvd
               - renesas,r9a07g054-fcpvd
     then:
index 5539d0f8e74d2e827cd78ccf1860de2f770e9c51..cf54176f4fbd6f48a397575c8ebc05b3878cb02b 100644 (file)
@@ -52,8 +52,12 @@ properties:
               - renesas,vin-r8a77980 # R-Car V3H
               - renesas,vin-r8a77990 # R-Car E3
               - renesas,vin-r8a77995 # R-Car D3
+      - items:
+          - enum:
               - renesas,vin-r8a779a0 # R-Car V3U
               - renesas,vin-r8a779g0 # R-Car V4H
+              - renesas,vin-r8a779h0 # R-Car V4M
+          - const: renesas,rcar-gen4-vin # Generic R-Car Gen4
 
   reg:
     maxItems: 1
index 3265e922647c762f60b63d88e3d1f618b87baacf..1a03e67462a4fee110f304e85b6eb8d3020d3a3b 100644 (file)
@@ -23,6 +23,7 @@ properties:
           - renesas,vsp2 # R-Car Gen3 and RZ/G2
       - items:
           - enum:
+              - renesas,r9a07g043u-vsp2   # RZ/G2UL
               - renesas,r9a07g054-vsp2    # RZ/V2L
           - const: renesas,r9a07g044-vsp2 # RZ/G2L fallback
 
index 9d90d8d0565a1561d808280f487129bc7968a37c..947ad699cc5e7f0dc72fe3cadb45f97c6569bc47 100644 (file)
@@ -17,6 +17,7 @@ properties:
   compatible:
     enum:
       - rockchip,rk3568-vepu
+      - rockchip,rk3588-vepu121
 
   reg:
     maxItems: 1
index c57e1f488895b3b99a6c2596f81c0a3c49c6c1cf..719aeb2dc593426c3339b52cae1b7f75c38520c1 100644 (file)
@@ -26,11 +26,16 @@ properties:
           - rockchip,rk3568-vpu
           - rockchip,rk3588-av1-vpu
       - items:
-          - const: rockchip,rk3188-vpu
+          - enum:
+              - rockchip,rk3128-vpu
+              - rockchip,rk3188-vpu
           - const: rockchip,rk3066-vpu
       - items:
           - const: rockchip,rk3228-vpu
           - const: rockchip,rk3399-vpu
+      - items:
+          - const: rockchip,rk3588-vpu121
+          - const: rockchip,rk3568-vpu
 
   reg:
     maxItems: 1
diff --git a/Bindings/media/s5p-mfc.txt b/Bindings/media/s5p-mfc.txt
deleted file mode 100644 (file)
index e69de29..0000000
index 271d0577a83c718858ab478bc6dd61b9a4f67777..2ba27b230559b4cae37ee0e3e3adc55f4b47395c 100644 (file)
@@ -77,7 +77,7 @@ properties:
     $ref: /schemas/types.yaml#/definitions/uint32-array
     maxItems: 2
     description: |
-      An array specyfing minimum image size in pixels at the FIMC input and
+      An array specifying minimum image size in pixels at the FIMC input and
       output DMA, in the first and second cell respectively.  Default value
       is <16 16>.
 
index 3f40ca5b13f6600406c14a1723d2149a6c0cf329..ce4ec94a561cef59118048c1f6b8252d8fd8753e 100644 (file)
@@ -134,9 +134,8 @@ allOf:
           properties:
             fsl,weim-cs-timing:
               items:
-                items:
-                  - description: CSxU
-                  - description: CSxL
+                - description: CSxU
+                - description: CSxL
   - if:
       properties:
         compatible:
@@ -151,10 +150,9 @@ allOf:
           properties:
             fsl,weim-cs-timing:
               items:
-                items:
-                  - description: CSCRxU
-                  - description: CSCRxL
-                  - description: CSCRxA
+                - description: CSCRxU
+                - description: CSCRxL
+                - description: CSCRxA
   - if:
       properties:
         compatible:
@@ -171,13 +169,12 @@ allOf:
           properties:
             fsl,weim-cs-timing:
               items:
-                items:
-                  - description: CSxGCR1
-                  - description: CSxGCR2
-                  - description: CSxRCR1
-                  - description: CSxRCR2
-                  - description: CSxWCR1
-                  - description: CSxWCR2
+                - description: CSxGCR1
+                - description: CSxGCR2
+                - description: CSxRCR1
+                - description: CSxRCR2
+                - description: CSxWCR1
+                - description: CSxWCR2
 
 additionalProperties: false
 
index d7745dd53b51ce471e360fcc55f9cbb51af9007c..4f4bc953e31a05e658a6b5de13424490e438bfdd 100644 (file)
@@ -67,7 +67,9 @@ properties:
       - const: dirmap
       - const: wbuf
 
-  clocks: true
+  clocks:
+    minItems: 1
+    maxItems: 2
 
   interrupts:
     maxItems: 1
diff --git a/Bindings/mfd/adi,adp5585.yaml b/Bindings/mfd/adi,adp5585.yaml
new file mode 100644 (file)
index 0000000..ee2272f
--- /dev/null
@@ -0,0 +1,99 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/adi,adp5585.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices ADP5585 Keypad Decoder and I/O Expansion
+
+maintainers:
+  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+
+description:
+  The ADP5585 is a 10/11 input/output port expander with a built in keypad
+  matrix decoder, programmable logic, reset generator, and PWM generator.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - adi,adp5585-00  # Default
+          - adi,adp5585-01  # 11 GPIOs
+          - adi,adp5585-02  # No pull-up resistors by default on special pins
+          - adi,adp5585-03  # Alternate I2C address
+          - adi,adp5585-04  # Pull-down resistors on all pins by default
+      - const: adi,adp5585
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  vdd-supply: true
+
+  gpio-controller: true
+
+  '#gpio-cells':
+    const: 2
+
+  gpio-reserved-ranges: true
+
+  "#pwm-cells":
+    const: 3
+
+patternProperties:
+  "-hog(-[0-9]+)?$":
+    type: object
+
+    required:
+      - gpio-hog
+
+required:
+  - compatible
+  - reg
+  - gpio-controller
+  - "#gpio-cells"
+  - "#pwm-cells"
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: adi,adp5585-01
+    then:
+      properties:
+        gpio-reserved-ranges: false
+    else:
+      properties:
+        gpio-reserved-ranges:
+          maxItems: 1
+          items:
+            items:
+              - const: 5
+              - const: 1
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        io-expander@34 {
+            compatible = "adi,adp5585-00", "adi,adp5585";
+            reg = <0x34>;
+
+            vdd-supply = <&reg_3v3>;
+
+            gpio-controller;
+            #gpio-cells = <2>;
+            gpio-reserved-ranges = <5 1>;
+
+            #pwm-cells = <3>;
+        };
+    };
+
+...
index 37423c2e0fdfa32d955092d448a4068751ffa319..b67fbe0e7a63dd5ae68d977bbb838a9e61c82ef5 100644 (file)
@@ -37,6 +37,24 @@ properties:
   "#interrupt-cells":
     const: 2
 
+  mediatek,hp-pull-down:
+    description:
+      Earphone driver positive output stage short to
+      the audio reference ground.
+    type: boolean
+
+  mediatek,micbias0-microvolt:
+    description: Selects MIC Bias 0 output voltage.
+    enum: [1700000, 1800000, 1900000, 2000000,
+           2100000, 2500000, 2600000, 2700000]
+    default: 1700000
+
+  mediatek,micbias1-microvolt:
+    description: Selects MIC Bias 1 output voltage.
+    enum: [1700000, 1800000, 1900000, 2000000,
+           2100000, 2500000, 2600000, 2700000]
+    default: 1700000
+
   regulators:
     type: object
     $ref: /schemas/regulator/mediatek,mt6357-regulator.yaml
@@ -83,6 +101,9 @@ examples:
             interrupt-controller;
             #interrupt-cells = <2>;
 
+            mediatek,micbias0-microvolt = <1700000>;
+            mediatek,micbias1-microvolt = <1700000>;
+
             regulators {
                 mt6357_vproc_reg: buck-vproc {
                     regulator-name = "vproc";
index c6bd14ec5aa0fc28533c3cf98f764eeee4b62400..7d0b0b40315051e659d9b3717a4def2ca5ff658a 100644 (file)
@@ -21,6 +21,7 @@ properties:
           - qcom,msm8998-tcsr
           - qcom,qcm2290-tcsr
           - qcom,qcs404-tcsr
+          - qcom,sa8775p-tcsr
           - qcom,sc7180-tcsr
           - qcom,sc7280-tcsr
           - qcom,sc8280xp-tcsr
index d381125a0a152aa22be1648f8e2d664541cbb45e..efee3de0d9ad29f357efaf5ee49e34b2b284ce7a 100644 (file)
@@ -25,7 +25,7 @@ properties:
     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
+      In many systems this will shut down the SoC controlling 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
index bc8b5940b1c5c42750582ff1c694315658c31a97..a4be642de33ce6b987fe011adfe4f6b938c20c19 100644 (file)
@@ -53,7 +53,7 @@ properties:
   samsung,s2mps11-wrstbi-ground:
     description: |
       Indicates that WRSTBI pin of PMIC is pulled down. When the system is
-      suspended it will always go down thus triggerring unwanted buck warm
+      suspended it will always go down thus triggering unwanted buck warm
       reset (setting buck voltages to default values).
     type: boolean
 
index 9dc594ea365452c3b7005e3ee9a6941d56dded08..cc9b17ad69f23d7b9202e845110e5a870b3a4aa8 100644 (file)
@@ -103,6 +103,7 @@ select:
           - rockchip,rk3368-qos
           - rockchip,rk3399-qos
           - rockchip,rk3568-qos
+          - rockchip,rk3576-qos
           - rockchip,rk3588-qos
           - rockchip,rv1126-qos
           - st,spear1340-misc
@@ -113,6 +114,7 @@ select:
           - ti,am625-dss-oldi-io-ctrl
           - ti,am62p-cpsw-mac-efuse
           - ti,am654-dss-oldi-io-ctrl
+          - ti,j784s4-acspcie-proxy-ctrl
           - ti,j784s4-pcie-ctrl
           - ti,keystone-pllctrl
   required:
@@ -198,6 +200,7 @@ properties:
           - rockchip,rk3368-qos
           - rockchip,rk3399-qos
           - rockchip,rk3568-qos
+          - rockchip,rk3576-qos
           - rockchip,rk3588-qos
           - rockchip,rv1126-qos
           - st,spear1340-misc
index 06e9dd7a0d96aa7e33cff239076bccce008074ac..dfd8683ede0cf93c8f967ae567533f5a234718c4 100644 (file)
@@ -2,7 +2,7 @@ Texas Instruments TWL6040 family
 
 The TWL6040s are 8-channel high quality low-power audio codecs providing audio,
 vibra and GPO functionality on OMAP4+ platforms.
-They are connected ot the host processor via i2c for commands, McPDM for audio
+They are connected to the host processor via i2c for commands, McPDM for audio
 data and commands.
 
 Required properties:
index b8e8db0d58e9c33bacfe588001e375c290b7fcad..14ab367fc887158d82b0f2a53c13f3ae64924592 100644 (file)
@@ -274,7 +274,7 @@ properties:
           Defines the work frequency of DC-DC in kHz.
 
     patternProperties:
-      "^(([a-f])?ldo[0-9]|dcdc[0-7a-e]|ldo(_|-)io(0|1)|(dc1)?sw|rtc(_|-)ldo|cpusldo|drivevbus|dc5ldo)$":
+      "^(([a-f])?ldo[0-9]|dcdc[0-7a-e]|ldo(_|-)io(0|1)|(dc1)?sw|rtc(_|-)ldo|cpusldo|drivevbus|dc5ldo|boost)$":
         $ref: /schemas/regulator/regulator.yaml#
         type: object
         unevaluatedProperties: false
diff --git a/Bindings/misc/aspeed,ast2400-cvic.yaml b/Bindings/misc/aspeed,ast2400-cvic.yaml
new file mode 100644 (file)
index 0000000..accf1a7
--- /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/misc/aspeed,ast2400-cvic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Aspeed Coprocessor Vectored Interrupt Controller
+
+maintainers:
+  - Andrew Jeffery <andrew@codeconstruct.com.au>
+
+description:
+  The Aspeed AST2400 and AST2500 SoCs have a controller that provides interrupts
+  to the ColdFire coprocessor. It's not a normal interrupt controller and it
+  would be rather inconvenient to create an interrupt tree for it, as it
+  somewhat shares some of the same sources as the main ARM interrupt controller
+  but with different numbers.
+
+  The AST2500 also supports a software generated interrupt.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - aspeed,ast2400-cvic
+          - aspeed,ast2500-cvic
+      - const: aspeed,cvic
+
+  reg:
+    maxItems: 1
+
+  valid-sources:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    maxItems: 1
+    description:
+      A bitmap of supported sources for the implementation.
+
+  copro-sw-interrupts:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 1
+    maxItems: 32
+    description:
+      A list of interrupt numbers that can be used as software interrupts from
+      the ARM to the coprocessor.
+
+required:
+  - compatible
+  - reg
+  - valid-sources
+
+additionalProperties: false
+
+examples:
+  - |
+    interrupt-controller@1e6c2000 {
+        compatible = "aspeed,ast2500-cvic", "aspeed,cvic";
+        reg = <0x1e6c2000 0x80>;
+        valid-sources = <0xffffffff>;
+        copro-sw-interrupts = <1>;
+    };
diff --git a/Bindings/misc/aspeed,cvic.txt b/Bindings/misc/aspeed,cvic.txt
deleted file mode 100644 (file)
index d62c783..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-* ASPEED AST2400 and AST2500 coprocessor interrupt controller
-
-This file describes the bindings for the interrupt controller present
-in the AST2400 and AST2500 BMC SoCs which provides interrupt to the
-ColdFire coprocessor.
-
-It is not a normal interrupt controller and it would be rather
-inconvenient to create an interrupt tree for it as it somewhat shares
-some of the same sources as the main ARM interrupt controller but with
-different numbers.
-
-The AST2500 supports a SW generated interrupt
-
-Required properties:
-- reg: address and length of the register for the device.
-- compatible: "aspeed,cvic" and one of:
-               "aspeed,ast2400-cvic"
-             or
-               "aspeed,ast2500-cvic"
-
-- valid-sources: One cell, bitmap of supported sources for the implementation
-
-Optional properties;
-- copro-sw-interrupts: List of interrupt numbers that can be used as
-                      SW interrupts from the ARM to the coprocessor.
-                      (AST2500 only)
-
-Example:
-
-       cvic: copro-interrupt-controller@1e6c2000 {
-               compatible = "aspeed,ast2500-cvic";
-               valid-sources = <0xffffffff>;
-               copro-sw-interrupts = <1>;
-               reg = <0x1e6c2000 0x80>;
-       };
index 01b00d89a992100ab22845668fcaa697d864d39e..df45ff56d4445559700b636c6ec74fb470f38079 100644 (file)
@@ -113,7 +113,7 @@ properties:
 
   msi-parent:
     deprecated: true
-    $ref: /schemas/types.yaml#/definitions/phandle
+    maxItems: 1
     description:
       Describes the MSI controller node handling message
       interrupts for the MC. When there is no translation
index c27a8f33d8d76913084be32ed4886d678fca7aeb..0840a3d925130bd0bdd2afcc2908e431b523c4be 100644 (file)
@@ -26,6 +26,7 @@ properties:
       - mdsp
       - sdsp
       - cdsp
+      - cdsp1
 
   memory-region:
     maxItems: 1
@@ -81,7 +82,7 @@ patternProperties:
 
       iommus:
         minItems: 1
-        maxItems: 3
+        maxItems: 10
 
       qcom,nsessions:
         $ref: /schemas/types.yaml#/definitions/uint32
diff --git a/Bindings/mmc/atmel,sama5d2-sdhci.yaml b/Bindings/mmc/atmel,sama5d2-sdhci.yaml
new file mode 100644 (file)
index 0000000..8c8ade8
--- /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/mmc/atmel,sama5d2-sdhci.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Atmel SDHCI controller
+
+maintainers:
+  - Aubin Constans <aubin.constans@microchip.com>
+  - Nicolas Ferre <nicolas.ferre@microchip.com>
+
+description:
+  Bindings for the SDHCI controller found in Atmel/Microchip SoCs.
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - atmel,sama5d2-sdhci
+          - microchip,sam9x60-sdhci
+      - items:
+          - enum:
+              - microchip,sam9x7-sdhci
+              - microchip,sama7g5-sdhci
+          - const: microchip,sam9x60-sdhci
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: hclock
+      - description: multclk
+      - description: baseclk
+    minItems: 2
+
+  clock-names:
+    items:
+      - const: hclock
+      - const: multclk
+      - const: baseclk
+    minItems: 2
+
+  microchip,sdcal-inverted:
+    type: boolean
+    description:
+      When present, polarity on the SDCAL SoC pin is inverted. The default
+      polarity for this signal is described in the datasheet. For instance on
+      SAMA5D2, the pin is usually tied to the GND with a resistor and a
+      capacitor (see "SDMMC I/O Calibration" chapter).
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+allOf:
+  - $ref: sdhci-common.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - atmel,sama5d2-sdhci
+    then:
+      properties:
+        clocks:
+          minItems: 3
+        clock-names:
+          minItems: 3
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/clock/at91.h>
+    mmc@a0000000 {
+        compatible = "atmel,sama5d2-sdhci";
+        reg = <0xa0000000 0x300>;
+        interrupts = <31 IRQ_TYPE_LEVEL_HIGH 0>;
+        clocks = <&sdmmc0_hclk>, <&sdmmc0_gclk>, <&main>;
+        clock-names = "hclock", "multclk", "baseclk";
+        assigned-clocks = <&sdmmc0_gclk>;
+        assigned-clock-rates = <480000000>;
+    };
diff --git a/Bindings/mmc/nuvoton,ma35d1-sdhci.yaml b/Bindings/mmc/nuvoton,ma35d1-sdhci.yaml
new file mode 100644 (file)
index 0000000..4d78714
--- /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/mmc/nuvoton,ma35d1-sdhci.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Nuvoton MA35D1 SD/SDIO/MMC Controller
+
+maintainers:
+  - Shan-Chun Hung <shanchun1218@gmail.com>
+
+allOf:
+  - $ref: sdhci-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - nuvoton,ma35d1-sdhci
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  pinctrl-names:
+    minItems: 1
+    items:
+      - const: default
+      - const: state_uhs
+
+  pinctrl-0:
+    description:
+      Should contain default/high speed pin ctrl.
+    maxItems: 1
+
+  pinctrl-1:
+    description:
+      Should contain uhs mode pin ctrl.
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  nuvoton,sys:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: phandle to access GCR (Global Control Register) registers.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - pinctrl-names
+  - pinctrl-0
+  - resets
+  - nuvoton,sys
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/nuvoton,ma35d1-clk.h>
+    #include <dt-bindings/reset/nuvoton,ma35d1-reset.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+        mmc@40190000 {
+            compatible = "nuvoton,ma35d1-sdhci";
+            reg = <0x0 0x40190000 0x0 0x2000>;
+            interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+            clocks = <&clk SDH1_GATE>;
+            pinctrl-names = "default", "state_uhs";
+            pinctrl-0 = <&pinctrl_sdhci1>;
+            pinctrl-1 = <&pinctrl_sdhci1_uhs>;
+            resets = <&sys MA35D1_RESET_SDH1>;
+            nuvoton,sys = <&sys>;
+            vqmmc-supply = <&sdhci1_vqmmc_regulator>;
+            bus-width = <8>;
+            max-frequency = <200000000>;
+        };
+    };
index 3d0e61e59856b992ab45878e8535df0bdaf3d5b2..af378b9ff3f426163a3f396e1a8bfe23b2052cec 100644 (file)
@@ -18,6 +18,7 @@ properties:
           - renesas,sdhi-r7s9210 # SH-Mobile AG5
           - renesas,sdhi-r8a73a4 # R-Mobile APE6
           - renesas,sdhi-r8a7740 # R-Mobile A1
+          - renesas,sdhi-r9a09g057 # RZ/V2H(P)
           - renesas,sdhi-sh73a0  # R-Mobile APE6
       - items:
           - enum:
@@ -75,9 +76,13 @@ properties:
     minItems: 1
     maxItems: 3
 
-  clocks: true
+  clocks:
+    minItems: 1
+    maxItems: 4
 
-  clock-names: true
+  clock-names:
+    minItems: 1
+    maxItems: 4
 
   dmas:
     minItems: 4
@@ -118,7 +123,9 @@ allOf:
       properties:
         compatible:
           contains:
-            const: renesas,rzg2l-sdhi
+            enum:
+              - renesas,sdhi-r9a09g057
+              - renesas,rzg2l-sdhi
     then:
       properties:
         clocks:
index 211cd0b0bc5f342340e66f841a620e891658e456..06df1269f2476e47149278393049ed6936761bf2 100644 (file)
@@ -43,6 +43,8 @@ properties:
               - rockchip,rv1108-dw-mshc
               - rockchip,rv1126-dw-mshc
           - const: rockchip,rk3288-dw-mshc
+      # for Rockchip RK3576 with phase tuning inside the controller
+      - const: rockchip,rk3576-dw-mshc
 
   reg:
     maxItems: 1
diff --git a/Bindings/mmc/sdhci-atmel.txt b/Bindings/mmc/sdhci-atmel.txt
deleted file mode 100644 (file)
index a9fb0a9..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-* Atmel SDHCI controller
-
-This file documents the differences between the core properties in
-Documentation/devicetree/bindings/mmc/mmc.txt and the properties used by the
-sdhci-of-at91 driver.
-
-Required properties:
-- compatible:          Must be "atmel,sama5d2-sdhci" or "microchip,sam9x60-sdhci"
-                       or "microchip,sam9x7-sdhci", "microchip,sam9x60-sdhci".
-- clocks:              Phandlers to the clocks.
-- clock-names:         Must be "hclock", "multclk", "baseclk" for
-                       "atmel,sama5d2-sdhci".
-                       Must be "hclock", "multclk" for "microchip,sam9x60-sdhci".
-                       Must be "hclock", "multclk" for "microchip,sam9x7-sdhci".
-
-Optional properties:
-- assigned-clocks:     The same with "multclk".
-- assigned-clock-rates The rate of "multclk" in order to not rely on the
-                       gck configuration set by previous components.
-- microchip,sdcal-inverted: when present, polarity on the SDCAL SoC pin is
-  inverted. The default polarity for this signal is described in the datasheet.
-  For instance on SAMA5D2, the pin is usually tied to the GND with a resistor
-  and a capacitor (see "SDMMC I/O Calibration" chapter).
-
-Example:
-
-mmc0: sdio-host@a0000000 {
-       compatible = "atmel,sama5d2-sdhci";
-       reg = <0xa0000000 0x300>;
-       interrupts = <31 IRQ_TYPE_LEVEL_HIGH 0>;
-       clocks = <&sdmmc0_hclk>, <&sdmmc0_gclk>, <&main>;
-       clock-names = "hclock", "multclk", "baseclk";
-       assigned-clocks = <&sdmmc0_gclk>;
-       assigned-clock-rates = <480000000>;
-};
index 4d3031d9965f333c2fc3712f4a76f6069899ffd2..c3d5e0230af1a68a305ffe5d3d3d4d00e991c289 100644 (file)
@@ -10,18 +10,20 @@ maintainers:
   - Ulf Hansson <ulf.hansson@linaro.org>
   - Jisheng Zhang <Jisheng.Zhang@synaptics.com>
 
-allOf:
-  - $ref: mmc-controller.yaml#
-
 properties:
   compatible:
-    enum:
-      - rockchip,rk3568-dwcmshc
-      - rockchip,rk3588-dwcmshc
-      - snps,dwcmshc-sdhci
-      - sophgo,cv1800b-dwcmshc
-      - sophgo,sg2002-dwcmshc
-      - thead,th1520-dwcmshc
+    oneOf:
+      - items:
+          - const: rockchip,rk3576-dwcmshc
+          - const: rockchip,rk3588-dwcmshc
+      - enum:
+          - rockchip,rk3568-dwcmshc
+          - rockchip,rk3588-dwcmshc
+          - snps,dwcmshc-sdhci
+          - sophgo,cv1800b-dwcmshc
+          - sophgo,sg2002-dwcmshc
+          - sophgo,sg2042-dwcmshc
+          - thead,th1520-dwcmshc
 
   reg:
     maxItems: 1
@@ -31,22 +33,14 @@ properties:
 
   clocks:
     minItems: 1
-    items:
-      - description: core clock
-      - description: bus clock for optional
-      - description: axi clock for rockchip specified
-      - description: block clock for rockchip specified
-      - description: timer clock for rockchip specified
-
+    maxItems: 5
 
   clock-names:
     minItems: 1
-    items:
-      - const: core
-      - const: bus
-      - const: axi
-      - const: block
-      - const: timer
+    maxItems: 5
+
+  power-domains:
+    maxItems: 1
 
   resets:
     maxItems: 5
@@ -63,7 +57,6 @@ properties:
     description: Specify the number of delay for tx sampling.
     $ref: /schemas/types.yaml#/definitions/uint8
 
-
 required:
   - compatible
   - reg
@@ -71,6 +64,60 @@ required:
   - clocks
   - clock-names
 
+allOf:
+  - $ref: mmc-controller.yaml#
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: sophgo,sg2042-dwcmshc
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: core clock
+            - description: bus clock
+            - description: timer clock
+        clock-names:
+          items:
+            - const: core
+            - const: bus
+            - const: timer
+    else:
+      properties:
+        clocks:
+          minItems: 1
+          items:
+            - description: core clock
+            - description: bus clock for optional
+            - description: axi clock for rockchip specified
+            - description: block clock for rockchip specified
+            - description: timer clock for rockchip specified
+        clock-names:
+          minItems: 1
+          items:
+            - const: core
+            - const: bus
+            - const: axi
+            - const: block
+            - const: timer
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3576-dwcmshc
+
+    then:
+      required:
+        - power-domains
+
+    else:
+      properties:
+        power-domains: false
+
 unevaluatedProperties: false
 
 examples:
diff --git a/Bindings/mtd/technologic,nand.yaml b/Bindings/mtd/technologic,nand.yaml
new file mode 100644 (file)
index 0000000..f9d87c4
--- /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/mtd/technologic,nand.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Technologic Systems NAND controller
+
+maintainers:
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: nand-controller.yaml
+
+properties:
+  compatible:
+    oneOf:
+      - const: technologic,ts7200-nand
+      - items:
+          - enum:
+              - technologic,ts7300-nand
+              - technologic,ts7260-nand
+              - technologic,ts7250-nand
+          - const: technologic,ts7200-nand
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    nand-controller@60000000 {
+        compatible = "technologic,ts7200-nand";
+        reg = <0x60000000 0x8000000>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+        nand@0 {
+           reg = <0>;
+        };
+    };
index 115682fa81b7b9eb520162037b0de63dfa33c833..00540302bcae6a269118116fde348d1de24f45ee 100644 (file)
@@ -61,12 +61,9 @@ properties:
       GPIO connection to R/B signal from NAND chip
     maxItems: 1
 
-patternProperties:
-  "@[0-9a-f]+$":
-    $ref: /schemas/mtd/partitions/partition.yaml
-
 allOf:
   - $ref: /schemas/memory-controllers/ti,gpmc-child.yaml
+  - $ref: mtd.yaml#
 
 required:
   - compatible
index ee7a65b528cdac79af1b2031d2d0bcc758fa2773..d1e2bca3c50343f659ba6eff63fdf1ff2148bbbe 100644 (file)
@@ -58,18 +58,18 @@ allOf:
             - const: timing-adjustment
 
         amlogic,tx-delay-ns:
-          $ref: /schemas/types.yaml#/definitions/uint32
+          enum: [0, 2, 4, 6]
+          default: 2
           description:
-            The internal RGMII TX clock delay (provided by this driver) in
-            nanoseconds. Allowed values are 0ns, 2ns, 4ns, 6ns.
-            When phy-mode is set to "rgmii" then the TX delay should be
-            explicitly configured. When not configured a fallback of 2ns is
-            used. When the phy-mode is set to either "rgmii-id" or "rgmii-txid"
-            the TX clock delay is already provided by the PHY. In that case
-            this property should be set to 0ns (which disables the TX clock
-            delay in the MAC to prevent the clock from going off because both
-            PHY and MAC are adding a delay).
-            Any configuration is ignored when the phy-mode is set to "rmii".
+            The internal RGMII TX clock delay (provided by this driver)
+            in nanoseconds. When phy-mode is set to "rgmii" then the TX
+            delay should be explicitly configured. When the phy-mode is
+            set to either "rgmii-id" or "rgmii-txid" the TX clock delay
+            is already provided by the PHY. In that case this property
+            should be set to 0ns (which disables the TX clock delay in
+            the MAC to prevent the clock from going off because both
+            PHY and MAC are adding a delay). Any configuration is
+            ignored when the phy-mode is set to "rmii".
 
         amlogic,rx-delay-ns:
           deprecated: true
diff --git a/Bindings/net/bluetooth/amlogic,w155s2-bt.yaml b/Bindings/net/bluetooth/amlogic,w155s2-bt.yaml
new file mode 100644 (file)
index 0000000..6fd7557
--- /dev/null
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2024 Amlogic, Inc. All rights reserved
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/bluetooth/amlogic,w155s2-bt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic Bluetooth chips
+
+description:
+  The W155S2 is an Amlogic Bluetooth and Wi-Fi combo chip. It works on
+  the standard H4 protocol via a 4-wire UART interface, with baud rates
+  up to 4 Mbps.
+
+maintainers:
+  - Yang Li <yang.li@amlogic.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - amlogic,w265s1-bt
+              - amlogic,w265p1-bt
+          - const: amlogic,w155s2-bt
+      - enum:
+          - amlogic,w155s2-bt
+          - amlogic,w265s2-bt
+
+  clocks:
+    maxItems: 1
+    description: clock provided to the controller (32.768KHz)
+
+  enable-gpios:
+    maxItems: 1
+
+  vddio-supply:
+    description: VDD_IO supply regulator handle
+
+  firmware-name:
+    maxItems: 1
+    description: specify the path of firmware bin to load
+
+required:
+  - compatible
+  - clocks
+  - enable-gpios
+  - vddio-supply
+  - firmware-name
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    bluetooth {
+        compatible = "amlogic,w155s2-bt";
+        clocks = <&extclk>;
+        enable-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
+        vddio-supply = <&wcn_3v3>;
+        firmware-name = "amlogic/aml_w155s2_bt_uart.bin";
+    };
+
similarity index 90%
rename from Bindings/net/broadcom-bluetooth.yaml
rename to Bindings/net/bluetooth/brcm,bluetooth.yaml
index 4a1bfc2b35849cf81a40fc44fa992805991d2bd9..3c410cadff230496cd4a0f1349c564a14abe8dbf 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/net/broadcom-bluetooth.yaml#
+$id: http://devicetree.org/schemas/net/bluetooth/brcm,bluetooth.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Broadcom Bluetooth Chips
@@ -119,29 +119,28 @@ properties:
     items:
       - const: host-wakeup
 
-  max-speed: true
-  current-speed: true
-
 required:
   - compatible
 
 dependencies:
   brcm,requires-autobaud-mode: [ shutdown-gpios ]
 
-if:
-  not:
-    properties:
-      compatible:
-        contains:
-          enum:
-            - brcm,bcm20702a1
-            - brcm,bcm4329-bt
-            - brcm,bcm4330-bt
-then:
-  properties:
-    reset-gpios: false
-
-additionalProperties: false
+allOf:
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              enum:
+                - brcm,bcm20702a1
+                - brcm,bcm4329-bt
+                - brcm,bcm4330-bt
+    then:
+      properties:
+        reset-gpios: false
+
+unevaluatedProperties: false
 
 examples:
   - |
similarity index 83%
rename from Bindings/net/marvell-bluetooth.yaml
rename to Bindings/net/bluetooth/marvell,88w8897.yaml
index 188a42ca6cebeafbf03ab5c0dd8791907baf7504..2fc36874deb74bd2fde1ec96e9e9ce1efafc10c9 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/net/marvell-bluetooth.yaml#
+$id: http://devicetree.org/schemas/net/bluetooth/marvell,88w8897.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Marvell Bluetooth chips
@@ -19,13 +19,13 @@ properties:
       - mrvl,88w8897
       - mrvl,88w8997
 
-  max-speed:
-    description: see Documentation/devicetree/bindings/serial/serial.yaml
+  max-speed: true
 
 required:
   - compatible
 
 allOf:
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
   - if:
       properties:
         compatible:
index 68c5ed1114178c7b21897ffdafbe8c1df58c0bdd..7bb68311c609d29dd0b97ac683c99f912d00c422 100644 (file)
@@ -72,7 +72,7 @@ properties:
     description: VDD_RFA_CMN supply regulator handle
 
   vddrfa0p8-supply:
-    description: VDD_RFA_0P8 suppply regulator handle
+    description: VDD_RFA_0P8 supply regulator handle
 
   vddrfa1p7-supply:
     description: VDD_RFA_1P7 supply regulator handle
@@ -98,8 +98,7 @@ properties:
   vddwlmx-supply:
     description: VDD_WLMX supply regulator handle
 
-  max-speed:
-    description: see Documentation/devicetree/bindings/serial/serial.yaml
+  max-speed: true
 
   firmware-name:
     description: specify the name of nvm firmware to load
@@ -118,6 +117,7 @@ additionalProperties: false
 
 allOf:
   - $ref: bluetooth-controller.yaml#
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
   - if:
       properties:
         compatible:
@@ -172,14 +172,14 @@ allOf:
               - qcom,wcn6855-bt
     then:
       required:
-        - enable-gpios
-        - swctrl-gpios
-        - vddio-supply
-        - vddbtcxmx-supply
         - vddrfacmn-supply
+        - vddaon-supply
+        - vddwlcx-supply
+        - vddwlmx-supply
+        - vddbtcmx-supply
         - vddrfa0p8-supply
         - vddrfa1p2-supply
-        - vddrfa1p7-supply
+        - vddrfa1p8-supply
   - if:
       properties:
         compatible:
similarity index 92%
rename from Bindings/net/realtek-bluetooth.yaml
rename to Bindings/net/bluetooth/realtek,bluetooth.yaml
index 043e118c605c834cf652ab50a3a6a0e6f954fec8..7d567122bac9bb4cc0b5469da2c7a37367d96ab5 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/net/realtek-bluetooth.yaml#
+$id: http://devicetree.org/schemas/net/bluetooth/realtek,bluetooth.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: RTL8723BS/RTL8723CS/RTL8821CS/RTL8822CS Bluetooth
@@ -46,6 +46,9 @@ properties:
 required:
   - compatible
 
+allOf:
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
+
 additionalProperties: false
 
 examples:
similarity index 94%
rename from Bindings/net/ti,bluetooth.yaml
rename to Bindings/net/bluetooth/ti,bluetooth.yaml
index 81616f9fb4935f96fb0385990ec8c0af0c4b3f65..290abc22e18aa179b39bd070f35988364dd20326 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/net/ti,bluetooth.yaml#
+$id: http://devicetree.org/schemas/net/bluetooth/ti,bluetooth.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Texas Instruments Bluetooth Chips
@@ -74,6 +74,9 @@ properties:
 required:
   - compatible
 
+allOf:
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
+
 additionalProperties: false
 
 examples:
index 23dfe0838dca487e4fa1a983aa7b95ef4e39ede6..63bee5b542f50135479bf42891fc97408d1543ee 100644 (file)
@@ -26,6 +26,7 @@ properties:
       - brcm,asp-v2.1-mdio
       - brcm,asp-v2.2-mdio
       - brcm,unimac-mdio
+      - brcm,bcm6846-mdio
 
   reg:
     minItems: 1
index f197d9b516bb2a5448b7eb4af3671604244f97c0..97dd1a7c5ed26bb7f1b2f78c326d91e2c299938a 100644 (file)
@@ -17,6 +17,7 @@ properties:
   compatible:
     oneOf:
       - enum:
+          - fsl,imx95-flexcan
           - fsl,imx93-flexcan
           - fsl,imx8qm-flexcan
           - fsl,imx8mp-flexcan
@@ -38,9 +39,6 @@ properties:
               - fsl,imx6ul-flexcan
               - fsl,imx6sx-flexcan
           - const: fsl,imx6q-flexcan
-      - items:
-          - const: fsl,imx95-flexcan
-          - const: fsl,imx93-flexcan
       - items:
           - enum:
               - fsl,ls1028ar1-flexcan
@@ -80,6 +78,10 @@ properties:
       node then controller is assumed to be little endian. If this property is
       present then controller is assumed to be big endian.
 
+  can-transceiver:
+    $ref: can-transceiver.yaml#
+    unevaluatedProperties: false
+
   fsl,stop-mode:
     description: |
       Register bits of stop mode control.
diff --git a/Bindings/net/can/microchip,mcp2510.yaml b/Bindings/net/can/microchip,mcp2510.yaml
new file mode 100644 (file)
index 0000000..db446dd
--- /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/can/microchip,mcp2510.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip MCP251X stand-alone CAN controller
+
+maintainers:
+  - Marc Kleine-Budde <mkl@pengutronix.de>
+
+properties:
+  compatible:
+    enum:
+      - microchip,mcp2510
+      - microchip,mcp2515
+      - microchip,mcp25625
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  vdd-supply:
+    description: Regulator that powers the CAN controller.
+
+  xceiver-supply:
+    description: Regulator that powers the CAN transceiver.
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - interrupts
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        can@1 {
+             compatible = "microchip,mcp2515";
+             reg = <1>;
+             clocks = <&clk24m>;
+             interrupt-parent = <&gpio4>;
+             interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
+             vdd-supply = <&reg5v0>;
+             xceiver-supply = <&reg5v0>;
+             gpio-controller;
+             #gpio-cells = <2>;
+        };
+    };
+
diff --git a/Bindings/net/can/microchip,mcp251x.txt b/Bindings/net/can/microchip,mcp251x.txt
deleted file mode 100644 (file)
index 381f8fb..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-* Microchip MCP251X stand-alone CAN controller device tree bindings
-
-Required properties:
- - compatible: Should be one of the following:
-   - "microchip,mcp2510" for MCP2510.
-   - "microchip,mcp2515" for MCP2515.
-   - "microchip,mcp25625" for MCP25625.
- - reg: SPI chip select.
- - clocks: The clock feeding the CAN controller.
- - interrupts: Should contain IRQ line for the CAN controller.
-
-Optional properties:
- - vdd-supply: Regulator that powers the CAN controller.
- - xceiver-supply: Regulator that powers the CAN transceiver.
- - 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 the gpio polarity.
-
-Example:
-       can0: can@1 {
-               compatible = "microchip,mcp2515";
-               reg = <1>;
-               clocks = <&clk24m>;
-               interrupt-parent = <&gpio4>;
-               interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
-               vdd-supply = <&reg5v0>;
-               xceiver-supply = <&reg5v0>;
-               gpio-controller;
-               #gpio-cells = <2>;
-       };
index d3f45d29fa0a550af93b2a206bcca0d4896f48d7..7c5ac5d2e880bbb8fa88f43cf5174939c8035e01 100644 (file)
@@ -32,6 +32,7 @@ properties:
           - enum:
               - renesas,r8a779a0-canfd     # R-Car V3U
               - renesas,r8a779g0-canfd     # R-Car V4H
+              - renesas,r8a779h0-canfd     # R-Car V4M
           - const: renesas,rcar-gen4-canfd # R-Car Gen4
 
       - items:
@@ -163,14 +164,23 @@ allOf:
           maxItems: 1
 
   - if:
-      not:
-        properties:
-          compatible:
-            contains:
-              const: renesas,rcar-gen4-canfd
+      properties:
+        compatible:
+          contains:
+            const: renesas,r8a779h0-canfd
     then:
       patternProperties:
-        "^channel[2-7]$": false
+        "^channel[5-7]$": false
+    else:
+      if:
+        not:
+          properties:
+            compatible:
+              contains:
+                const: renesas,rcar-gen4-canfd
+      then:
+        patternProperties:
+          "^channel[2-7]$": false
 
 unevaluatedProperties: false
 
diff --git a/Bindings/net/can/rockchip,rk3568v2-canfd.yaml b/Bindings/net/can/rockchip,rk3568v2-canfd.yaml
new file mode 100644 (file)
index 0000000..a077c03
--- /dev/null
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/can/rockchip,rk3568v2-canfd.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title:
+  Rockchip CAN-FD controller
+
+maintainers:
+  - Marc Kleine-Budde <mkl@pengutronix.de>
+
+allOf:
+  - $ref: can-controller.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: rockchip,rk3568v2-canfd
+      - items:
+          - const: rockchip,rk3568v3-canfd
+          - const: rockchip,rk3568v2-canfd
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 2
+
+  clock-names:
+    items:
+      - const: baud
+      - const: pclk
+
+  resets:
+    maxItems: 2
+
+  reset-names:
+    items:
+      - const: core
+      - const: apb
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - resets
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/rk3568-cru.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        can@fe570000 {
+            compatible = "rockchip,rk3568v2-canfd";
+            reg = <0x0 0xfe570000 0x0 0x1000>;
+            interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+            clocks = <&cru CLK_CAN0>, <&cru PCLK_CAN0>;
+            clock-names = "baud", "pclk";
+            resets = <&cru SRST_CAN0>, <&cru SRST_P_CAN0>;
+            reset-names = "core", "apb";
+        };
+    };
diff --git a/Bindings/net/cirrus,ep9301-eth.yaml b/Bindings/net/cirrus,ep9301-eth.yaml
new file mode 100644 (file)
index 0000000..ad09153
--- /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/net/cirrus,ep9301-eth.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: EP93xx SoC Ethernet Controller
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: ethernet-controller.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9301-eth
+      - items:
+          - enum:
+              - cirrus,ep9302-eth
+              - cirrus,ep9307-eth
+              - cirrus,ep9312-eth
+              - cirrus,ep9315-eth
+          - const: cirrus,ep9301-eth
+
+  reg:
+    items:
+      - description: The physical base address and size of IO range
+
+  interrupts:
+    items:
+      - description: Combined signal for various interrupt events
+
+  phy-handle: true
+
+  mdio:
+    $ref: mdio.yaml#
+    unevaluatedProperties: false
+    description: optional node for embedded MDIO controller
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - phy-handle
+
+additionalProperties: false
+
+examples:
+  - |
+    ethernet@80010000 {
+        compatible = "cirrus,ep9301-eth";
+        reg = <0x80010000 0x10000>;
+        interrupt-parent = <&vic1>;
+        interrupts = <7>;
+        phy-handle = <&phy0>;
+    };
index 7e405ad96eb27cd5398b1c640ad1c74a0bdfd13e..ea979bcae1d6ea3f790330faa7bd1a13d19bac95 100644 (file)
@@ -92,6 +92,10 @@ properties:
           Built-in switch of the MT7988 SoC
         const: mediatek,mt7988-switch
 
+      - description:
+          Built-in switch of the Airoha EN7581 SoC
+        const: airoha,en7581-switch
+
   reg:
     maxItems: 1
 
@@ -284,7 +288,9 @@ allOf:
   - if:
       properties:
         compatible:
-          const: mediatek,mt7988-switch
+          enum:
+            - mediatek,mt7988-switch
+            - airoha,en7581-switch
     then:
       $ref: "#/$defs/mt7530-dsa-port"
       properties:
index 52acc15ebcbf36c3341222f38bfe25095a090850..30c0c3e6f37a4a5c75cb7b05591f829c6741930c 100644 (file)
@@ -22,7 +22,9 @@ properties:
       - microchip,ksz8794
       - microchip,ksz8795
       - microchip,ksz8863
+      - microchip,ksz8864  # 4-port version of KSZ8895 family switch
       - microchip,ksz8873
+      - microchip,ksz8895  # 5-port version of KSZ8895 family switch
       - microchip,ksz9477
       - microchip,ksz9897
       - microchip,ksz9896
@@ -51,6 +53,11 @@ properties:
       Set if the output SYNCLKO clock should be disabled. Do not mix with
       microchip,synclko-125.
 
+  microchip,pme-active-high:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Indicates if the PME pin polarity is active-high.
+
   microchip,io-drive-strength-microamp:
     description:
       IO Pad Drive Strength
index b99d7a694b70ed38b4442c5e998b4cfac262f532..51cf574249becd4e4a95073301461acc571b39df 100644 (file)
@@ -52,6 +52,25 @@ properties:
 allOf:
   - $ref: dsa.yaml#/$defs/ethernet-ports
 
+patternProperties:
+  "^(ethernet-)?ports$":
+    additionalProperties: true
+    patternProperties:
+      "^(ethernet-)?port@6$":
+        allOf:
+          - if:
+              properties:
+                phy-mode:
+                  contains:
+                    enum:
+                      - rgmii
+            then:
+              properties:
+                rx-internal-delay-ps:
+                  $ref: "#/$defs/internal-delay-ps"
+                tx-internal-delay-ps:
+                  $ref: "#/$defs/internal-delay-ps"
+
 # 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.
@@ -67,6 +86,15 @@ required:
   - compatible
   - reg
 
+$defs:
+  internal-delay-ps:
+    description:
+      Disable tunable delay lines using 0 ps, or enable them and select
+      the phase between 1400 ps and 2000 ps in increments of 300 ps.
+    default: 2000
+    enum:
+      [0, 1400, 1700, 2000]
+
 unevaluatedProperties: false
 
 examples:
@@ -108,6 +136,8 @@ examples:
             reg = <6>;
             ethernet = <&gmac1>;
             phy-mode = "rgmii";
+            rx-internal-delay-ps = <0>;
+            tx-internal-delay-ps = <0>;
             fixed-link {
               speed = <1000>;
               full-duplex;
@@ -150,6 +180,8 @@ examples:
           ethernet-port@6 {
             reg = <6>;
             ethernet = <&enet0>;
+            rx-internal-delay-ps = <0>;
+            tx-internal-delay-ps = <0>;
             phy-mode = "rgmii";
             fixed-link {
               speed = <1000>;
diff --git a/Bindings/net/fsl,cpm-enet.yaml b/Bindings/net/fsl,cpm-enet.yaml
new file mode 100644 (file)
index 0000000..da83647
--- /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/net/fsl,cpm-enet.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Network for cpm enet
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - fsl,cpm1-scc-enet
+          - fsl,cpm2-scc-enet
+          - fsl,cpm1-fec-enet
+          - fsl,cpm2-fcc-enet
+          - fsl,qe-enet
+      - items:
+          - enum:
+              - fsl,mpc8272-fcc-enet
+          - const: fsl,cpm2-fcc-enet
+
+  reg:
+    minItems: 1
+    maxItems: 3
+
+  interrupts:
+    maxItems: 1
+
+  fsl,cpm-command:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: cpm command
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+allOf:
+  - $ref: ethernet-controller.yaml
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    ethernet@11300 {
+        compatible = "fsl,mpc8272-fcc-enet",
+                     "fsl,cpm2-fcc-enet";
+        reg = <0x11300 0x20 0x8400 0x100 0x11390 1>;
+        local-mac-address = [ 00 00 00 00 00 00 ];
+        interrupts = <20 8>;
+        interrupt-parent = <&pic>;
+        phy-handle = <&phy0>;
+        fsl,cpm-command = <0x12000300>;
+    };
+
diff --git a/Bindings/net/fsl,cpm-mdio.yaml b/Bindings/net/fsl,cpm-mdio.yaml
new file mode 100644 (file)
index 0000000..b1791a3
--- /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/net/fsl,cpm-mdio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale CPM MDIO Device
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - fsl,pq1-fec-mdio
+          - fsl,cpm2-mdio-bitbang
+      - items:
+          - const: fsl,mpc8272ads-mdio-bitbang
+          - const: fsl,mpc8272-mdio-bitbang
+          - const: fsl,cpm2-mdio-bitbang
+
+  reg:
+    maxItems: 1
+
+  fsl,mdio-pin:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: pin of port C controlling mdio data
+
+  fsl,mdc-pin:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: pin of port C controlling mdio clock
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: mdio.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    mdio@10d40 {
+        compatible = "fsl,mpc8272ads-mdio-bitbang",
+                     "fsl,mpc8272-mdio-bitbang",
+                     "fsl,cpm2-mdio-bitbang";
+        reg = <0x10d40 0x14>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+        fsl,mdio-pin = <12>;
+        fsl,mdc-pin = <13>;
+    };
+
index 42f9843d1868ac1177589e396527847e4b04e567..be8a2163b73edb1f74dd86bba37ebb2e2e520514 100644 (file)
@@ -24,20 +24,12 @@ properties:
     maxItems: 1
     description: The DPMAC number
 
-  phy-handle: true
-
-  phy-connection-type: true
-
-  phy-mode: true
-
   pcs-handle:
     maxItems: 1
     description:
       A reference to a node representing a PCS PHY device found on
       the internal MDIO bus.
 
-  managed: true
-
   phys:
     description: A reference to the SerDes lane(s)
     maxItems: 1
@@ -45,7 +37,7 @@ properties:
 required:
   - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/net/maxim,ds26522.txt b/Bindings/net/maxim,ds26522.txt
deleted file mode 100644 (file)
index ee8bb72..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-* Maxim (Dallas) DS26522 Dual T1/E1/J1 Transceiver
-
-Required properties:
-- compatible: Should contain "maxim,ds26522".
-- reg: SPI CS.
-- spi-max-frequency: SPI clock.
-
-Example:
-       slic@1 {
-               compatible = "maxim,ds26522";
-               reg = <1>;
-               spi-max-frequency = <2000000>; /* input clock */
-       };
diff --git a/Bindings/net/maxim,ds26522.yaml b/Bindings/net/maxim,ds26522.yaml
new file mode 100644 (file)
index 0000000..6c97eda
--- /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/maxim,ds26522.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim (Dallas) DS26522 Dual T1/E1/J1 Transceiver
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    items:
+      - const: maxim,ds26522
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        transceiver@1 {
+            compatible = "maxim,ds26522";
+            reg = <1>;
+            spi-max-frequency = <2000000>; /* input clock */
+        };
+    };
index a266ade918ca7cd72a4380c2f53ba9d65d97c92f..bed3987a8fbf61249037c343288d02b2227ce1d1 100644 (file)
@@ -19,7 +19,7 @@ description:
 
 properties:
   $nodename:
-    pattern: "^mdio(@.*)?"
+    pattern: '^mdio(-(bus|external))?(@.+|-([0-9]+))?$'
 
   "#address-cells":
     const: 1
index 686b5c2fae402c6457e8fd44354823710fdb5485..9e02fd80af835f00d8eabf17fc6876e45dc24e61 100644 (file)
@@ -30,8 +30,13 @@ properties:
   reg:
     maxItems: 1
 
-  clocks: true
-  clock-names: true
+  clocks:
+    minItems: 2
+    maxItems: 24
+
+  clock-names:
+    minItems: 2
+    maxItems: 24
 
   interrupts:
     minItems: 1
@@ -127,6 +132,7 @@ allOf:
     then:
       properties:
         interrupts:
+          minItems: 3
           maxItems: 3
 
         clocks:
@@ -183,6 +189,7 @@ allOf:
     then:
       properties:
         interrupts:
+          minItems: 3
           maxItems: 3
 
         clocks:
@@ -222,6 +229,7 @@ allOf:
     then:
       properties:
         interrupts:
+          minItems: 3
           maxItems: 3
 
         clocks:
diff --git a/Bindings/net/microchip,lan8650.yaml b/Bindings/net/microchip,lan8650.yaml
new file mode 100644 (file)
index 0000000..61e11d4
--- /dev/null
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/microchip,lan8650.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip LAN8650/1 10BASE-T1S MACPHY Ethernet Controllers
+
+maintainers:
+  - Parthiban Veerasooran <parthiban.veerasooran@microchip.com>
+
+description:
+  The LAN8650/1 combines a Media Access Controller (MAC) and an Ethernet
+  PHY to enable 10BASE‑T1S networks. The Ethernet Media Access Controller
+  (MAC) module implements a 10 Mbps half duplex Ethernet MAC, compatible
+  with the IEEE 802.3 standard and a 10BASE-T1S physical layer transceiver
+  integrated into the LAN8650/1. The communication between the Host and
+  the MAC-PHY is specified in the OPEN Alliance 10BASE-T1x MACPHY Serial
+  Interface (TC6).
+
+allOf:
+  - $ref: /schemas/net/ethernet-controller.yaml#
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: microchip,lan8650
+      - items:
+          - const: microchip,lan8651
+          - const: microchip,lan8650
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description:
+      Interrupt from MAC-PHY asserted in the event of Receive Chunks
+      Available, Transmit Chunk Credits Available and Extended Status
+      Event.
+    maxItems: 1
+
+  spi-max-frequency:
+    minimum: 15000000
+    maximum: 25000000
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - spi-max-frequency
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      ethernet@0 {
+        compatible = "microchip,lan8651", "microchip,lan8650";
+        reg = <0>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&eth0_pins>;
+        interrupt-parent = <&gpio>;
+        interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+        local-mac-address = [04 05 06 01 02 03];
+        spi-max-frequency = <15000000>;
+      };
+    };
index 6992d56832bf95c793ff6665b3626d228701c1a7..d08abcb012113a013d531c0607eb5156a2baad1f 100644 (file)
@@ -23,6 +23,9 @@ properties:
   '#pse-cells':
     const: 1
 
+  reset-gpios:
+    maxItems: 1
+
   channels:
     description: each set of 8 ports can be assigned to one physical
       channels or two for PoE4. This parameter describes the configuration
index 21a92f179093d9959fb51f263c7b0dd8e25605bc..1e00ef5b3acda5498aadcedb7dcbeff2410ca9d3 100644 (file)
@@ -62,15 +62,27 @@ properties:
               - renesas,r9a08g045-gbeth # RZ/G3S
           - const: renesas,rzg2l-gbeth  # RZ/{G2L,G2UL,V2L} family
 
-  reg: true
+  reg:
+    minItems: 1
+    items:
+      - description: MAC register block
+      - description: Stream buffer
 
-  interrupts: true
+  interrupts:
+    minItems: 1
+    maxItems: 29
 
-  interrupt-names: true
+  interrupt-names:
+    minItems: 1
+    maxItems: 29
 
-  clocks: true
+  clocks:
+    minItems: 1
+    maxItems: 3
 
-  clock-names: true
+  clock-names:
+    minItems: 1
+    maxItems: 3
 
   iommus:
     maxItems: 1
@@ -150,14 +162,11 @@ allOf:
     then:
       properties:
         reg:
-          items:
-            - description: MAC register block
-            - description: Stream buffer
+          minItems: 2
     else:
       properties:
         reg:
-          items:
-            - description: MAC register block
+          maxItems: 1
 
   - if:
       properties:
index 6bbe96e35250945ed3b5f80e850088592314db2a..f8a576611d6c10ea040392cbfd8af016b71ede2f 100644 (file)
@@ -25,6 +25,7 @@ select:
           - rockchip,rk3368-gmac
           - rockchip,rk3399-gmac
           - rockchip,rk3568-gmac
+          - rockchip,rk3576-gmac
           - rockchip,rk3588-gmac
           - rockchip,rv1108-gmac
           - rockchip,rv1126-gmac
@@ -52,6 +53,7 @@ properties:
       - items:
           - enum:
               - rockchip,rk3568-gmac
+              - rockchip,rk3576-gmac
               - rockchip,rk3588-gmac
               - rockchip,rv1126-gmac
           - const: snps,dwmac-4.20a
index 3eb65e63fdaec9def6b1b66b8f688964594a3626..4e2ba1bf788c9866e7ffa4ff6774ec1b49eacc67 100644 (file)
@@ -80,6 +80,7 @@ properties:
         - rockchip,rk3328-gmac
         - rockchip,rk3366-gmac
         - rockchip,rk3368-gmac
+        - rockchip,rk3576-gmac
         - rockchip,rk3588-gmac
         - rockchip,rk3399-gmac
         - rockchip,rv1108-gmac
index b0ebcef6801ce50f728b24e70251125d8e1d373c..4eb63b303cffc33caebb2e6a2b2f911cfa75f175 100644 (file)
@@ -41,13 +41,17 @@ properties:
     minItems: 1
     maxItems: 4
 
-  clock-names: true
+  clock-names:
+    minItems: 1
+    maxItems: 4
 
   resets:
     minItems: 1
     maxItems: 2
 
-  reset-names: true
+  reset-names:
+    minItems: 1
+    maxItems: 2
 
   socionext,syscon-phy-mode:
     $ref: /schemas/types.yaml#/definitions/phandle-array
index 3dde10de4630e626d8204bd0bbe6d17d84557282..4f425344154771dbf3ef7b26ad6e21d2e218cd6e 100644 (file)
@@ -29,6 +29,12 @@ properties:
   reset-gpios:
     maxItems: 1
 
+  bootloader-backdoor-gpios:
+    maxItems: 1
+    description: |
+      gpios to enable bootloader backdoor in cc1352p7 bootloader to allow
+      flashing new firmware.
+
   vdds-supply: true
 
 required:
@@ -46,6 +52,7 @@ examples:
         clocks = <&sclk_hf 0>, <&sclk_lf 25>;
         clock-names = "sclk_hf", "sclk_lf";
         reset-gpios = <&pio 35 GPIO_ACTIVE_LOW>;
+        bootloader-backdoor-gpios = <&pio 36 GPIO_ACTIVE_LOW>;
         vdds-supply = <&vdds>;
       };
     };
diff --git a/Bindings/net/wireless/marvell,sd8787.yaml b/Bindings/net/wireless/marvell,sd8787.yaml
new file mode 100644 (file)
index 0000000..1715b22
--- /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/net/wireless/marvell,sd8787.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Marvell 8787/8897/8978/8997 (sd8787/sd8897/sd8978/sd8997/pcie8997) SDIO/PCIE devices
+
+maintainers:
+  - Brian Norris <briannorris@chromium.org>
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  This node provides properties for describing the Marvell SDIO/PCIE wireless device.
+  The node is expected to be specified as a child node to the SDIO/PCIE controller that
+  connects the device to the system.
+
+properties:
+  compatible:
+    enum:
+      - marvell,sd8787
+      - marvell,sd8897
+      - marvell,sd8978
+      - marvell,sd8997
+      - nxp,iw416
+      - pci11ab,2b42
+      - pci1b4b,2b42
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  wakeup-source: true
+
+  marvell,caldata-txpwrlimit-2g:
+    $ref: /schemas/types.yaml#/definitions/uint8-array
+    description: Calibration data for the 2GHz band.
+    maxItems: 566
+
+  marvell,caldata-txpwrlimit-5g-sub0:
+    $ref: /schemas/types.yaml#/definitions/uint8-array
+    description: Calibration data for sub-band 0 in the 5GHz band.
+    maxItems: 502
+
+  marvell,caldata-txpwrlimit-5g-sub1:
+    $ref: /schemas/types.yaml#/definitions/uint8-array
+    description: Calibration data for sub-band 1 in the 5GHz band.
+    maxItems: 688
+
+  marvell,caldata-txpwrlimit-5g-sub2:
+    $ref: /schemas/types.yaml#/definitions/uint8-array
+    description: Calibration data for sub-band 2 in the 5GHz band.
+    maxItems: 750
+
+  marvell,caldata-txpwrlimit-5g-sub3:
+    $ref: /schemas/types.yaml#/definitions/uint8-array
+    description: Calibration data for sub-band 3 in the 5GHz band.
+    maxItems: 502
+
+  marvell,wakeup-pin:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Provides the pin number for the wakeup pin from the device's point of
+      view. The wakeup pin is used for the device to wake the host system
+      from sleep. This property is only necessary if the wakeup pin is
+      wired in a non-standard way, such that the default pin assignments
+      are invalid.
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    mmc {
+         #address-cells = <1>;
+         #size-cells = <0>;
+
+         wifi@1 {
+             compatible = "marvell,sd8897";
+             reg = <1>;
+             interrupt-parent = <&pio>;
+             interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
+             marvell,wakeup-pin = <3>;
+        };
+    };
+
diff --git a/Bindings/net/wireless/marvell-8xxx.txt b/Bindings/net/wireless/marvell-8xxx.txt
deleted file mode 100644 (file)
index cdc303c..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-Marvell 8787/8897/8978/8997 (sd8787/sd8897/sd8978/sd8997/pcie8997) SDIO/PCIE devices
-------
-
-This node provides properties for controlling the Marvell SDIO/PCIE wireless device.
-The node is expected to be specified as a child node to the SDIO/PCIE controller that
-connects the device to the system.
-
-Required properties:
-
-  - compatible : should be one of the following:
-       * "marvell,sd8787"
-       * "marvell,sd8897"
-       * "marvell,sd8978"
-       * "marvell,sd8997"
-       * "nxp,iw416"
-       * "pci11ab,2b42"
-       * "pci1b4b,2b42"
-
-Optional properties:
-
-  - marvell,caldata* : A series of properties with marvell,caldata prefix,
-                     represent calibration data downloaded to the device during
-                     initialization. This is an array of unsigned 8-bit values.
-                     the properties should follow below property name and
-                     corresponding array length:
-       "marvell,caldata-txpwrlimit-2g" (length = 566).
-       "marvell,caldata-txpwrlimit-5g-sub0" (length = 502).
-       "marvell,caldata-txpwrlimit-5g-sub1" (length = 688).
-       "marvell,caldata-txpwrlimit-5g-sub2" (length = 750).
-       "marvell,caldata-txpwrlimit-5g-sub3" (length = 502).
-  - marvell,wakeup-pin : a wakeup pin number of wifi chip which will be configured
-                     to firmware. Firmware will wakeup the host using this pin
-                     during suspend/resume.
-  - interrupts : interrupt pin number to the cpu. driver will request an irq based on
-                this interrupt number. during system suspend, the irq will be enabled
-                so that the wifi chip can wakeup host platform under certain condition.
-                during system resume, the irq will be disabled to make sure
-                unnecessary interrupt is not received.
-  - vmmc-supply: a phandle of a regulator, supplying VCC to the card
-  - mmc-pwrseq:  phandle to the MMC power sequence node. See "mmc-pwrseq-*"
-                for documentation of MMC power sequence bindings.
-
-Example:
-
-Tx power limit calibration data is configured in below example.
-The calibration data is an array of unsigned values, the length
-can vary between hw versions.
-IRQ pin 38 is used as system wakeup source interrupt. wakeup pin 3 is configured
-so that firmware can wakeup host using this device side pin.
-
-&mmc3 {
-       vmmc-supply = <&wlan_en_reg>;
-       mmc-pwrseq = <&wifi_pwrseq>;
-       bus-width = <4>;
-       cap-power-off-card;
-       keep-power-in-suspend;
-
-       #address-cells = <1>;
-       #size-cells = <0>;
-       mwifiex: wifi@1 {
-               compatible = "marvell,sd8897";
-               reg = <1>;
-               interrupt-parent = <&pio>;
-               interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
-
-               marvell,caldata_00_txpwrlimit_2g_cfg_set = /bits/ 8 <
-       0x01 0x00 0x06 0x00 0x08 0x02 0x89 0x01>;
-               marvell,wakeup-pin = <3>;
-       };
-};
index bbe89ea9590ceb53df4a0f589787c9990aec0219..fb02e579463c986d8d81dbb5f0f1c3b2469286f7 100644 (file)
@@ -34,6 +34,7 @@ properties:
       and length of the AXI DMA controller IO space, unless
       axistream-connected is specified, in which case the reg
       attribute of the node referenced by it is used.
+    minItems: 1
     maxItems: 2
 
   interrupts:
@@ -60,7 +61,7 @@ properties:
       - gmii
       - rgmii
       - sgmii
-      - 1000BaseX
+      - 1000base-x
 
   xlnx,phy-type:
     description:
@@ -181,7 +182,7 @@ examples:
         clock-names = "s_axi_lite_clk", "axis_clk", "ref_clk", "mgt_clk";
         clocks = <&axi_clk>, <&axi_clk>, <&pl_enet_ref_clk>, <&mgt_clk>;
         phy-mode = "mii";
-        reg = <0x00 0x40000000 0x00 0x40000>;
+        reg = <0x40000000 0x40000>;
         xlnx,rxcsum = <0x2>;
         xlnx,rxmem = <0x800>;
         xlnx,txcsum = <0x2>;
index 70fb2ad251037a2d935c68b0381acae5cfeb8ef3..1b20b49eee79237905d8a812c40c233c88e32371 100644 (file)
@@ -15,6 +15,7 @@ description: |
 
 allOf:
   - $ref: nvmem.yaml#
+  - $ref: nvmem-deprecated-cells.yaml
 
 properties:
   compatible:
index e21c06e9a741c84c2287013ed61ddbdb01f798cc..b2cb76cf9053a883a158acaf5eaa108895818afc 100644 (file)
@@ -14,7 +14,7 @@ maintainers:
 description: |
   This binding represents the on-chip eFuse OTP controller found on
   i.MX6Q/D, i.MX6DL/S, i.MX6SL, i.MX6SX, i.MX6UL, i.MX6ULL/ULZ, i.MX6SLL,
-  i.MX7D/S, i.MX7ULP, i.MX8MQ, i.MX8MM, i.MX8MN i.MX8MP and i.MX93 SoCs.
+  i.MX7D/S, i.MX7ULP, i.MX8MQ, i.MX8MM, i.MX8MN i.MX8MP and i.MX93/5 SoCs.
 
 allOf:
   - $ref: nvmem.yaml#
@@ -36,6 +36,7 @@ properties:
               - fsl,imx8mq-ocotp
               - fsl,imx8mm-ocotp
               - fsl,imx93-ocotp
+              - fsl,imx95-ocotp
           - const: syscon
       - items:
           - enum:
index 3b40f7880774694aec189213a932f8606ab81f0d..38250706065112c4b81299b9bed81a6e104b9c0a 100644 (file)
@@ -21,6 +21,7 @@ oneOf:
   - $ref: fixed-layout.yaml
   - $ref: kontron,sl28-vpd.yaml
   - $ref: onie,tlv-layout.yaml
+  - $ref: u-boot,env.yaml
 
 properties:
   compatible: true
similarity index 75%
rename from Bindings/nvmem/u-boot,env.yaml
rename to Bindings/nvmem/layouts/u-boot,env.yaml
index 9c36afc7084b023c2df7fdca47d699d424d67c75..56a8f55d4a096cae1e95642bc6b8a461ca097434 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/nvmem/u-boot,env.yaml#
+$id: http://devicetree.org/schemas/nvmem/layouts/u-boot,env.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: U-Boot environment variables
+title: U-Boot environment variables layout
 
 description: |
   U-Boot uses environment variables to store device parameters and
@@ -21,9 +21,6 @@ description: |
   This binding allows marking storage device (as containing env data) and
   specifying used format.
 
-  Right now only flash partition case is covered but it may be extended to e.g.
-  UBI volumes in the future.
-
   Variables can be defined as NVMEM device subnodes.
 
 maintainers:
@@ -42,6 +39,7 @@ properties:
         const: brcm,env
 
   reg:
+    description: Partition offset and size for env on top of MTD
     maxItems: 1
 
   bootcmd:
@@ -58,6 +56,17 @@ properties:
         description: The first argument is a MAC address offset.
         const: 1
 
+allOf:
+  - if:
+      properties:
+        $nodename:
+          not:
+            contains:
+              pattern: "^partition@[0-9a-f]+$"
+    then:
+      properties:
+        reg: false
+
 additionalProperties: false
 
 examples:
@@ -101,3 +110,23 @@ examples:
             };
         };
     };
+  - |
+    partition@0 {
+        reg = <0x0 0x100000>;
+        label = "ubi";
+        compatible = "linux,ubi";
+
+        volumes {
+            ubi-volume-u-boot-env {
+                volname = "env";
+
+                nvmem-layout {
+                    compatible = "u-boot,env";
+
+                    ethaddr {
+                        #nvmem-cell-cells = <1>;
+                    };
+                };
+            };
+        };
+    };
index 92bfe25f0571ebdc3d1df383be0a90ef7258eebb..3b2aa605a5515ce0b6d894808a9532d720f67dad 100644 (file)
@@ -17,6 +17,7 @@ maintainers:
 
 allOf:
   - $ref: nvmem.yaml#
+  - $ref: nvmem-deprecated-cells.yaml#
 
 properties:
   compatible:
@@ -32,6 +33,8 @@ properties:
 patternProperties:
   "^.*@[0-9a-f]+$":
     type: object
+    $ref: layouts/fixed-cell.yaml
+    unevaluatedProperties: false
 
     properties:
       st,non-secure-otp:
index 02d1d2c17129ee6396029a889b3b335c48d3c303..fd0c8d5c5f3e7eacecb74523e052c2cbb076ce20 100644 (file)
@@ -19,7 +19,7 @@ description:
   the hardware description for the scheme mentioned above.
 
 maintainers:
-  - Nishanth Menon <nm@ti.com>
+  - Dhruva Gole <d-gole@ti.com>
 
 allOf:
   - $ref: opp-v2-base.yaml#
diff --git a/Bindings/pci/altera-pcie-msi.txt b/Bindings/pci/altera-pcie-msi.txt
deleted file mode 100644 (file)
index 9514c32..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-* Altera PCIe MSI controller
-
-Required properties:
-- compatible:  should contain "altr,msi-1.0"
-- reg:         specifies the physical base address of the controller and
-               the length of the memory mapped region.
-- reg-names:   must include the following entries:
-               "csr": CSR registers
-               "vector_slave": vectors slave port region
-- interrupts:  specifies the interrupt source of the parent interrupt
-               controller. The format of the interrupt specifier depends on the
-               parent interrupt controller.
-- num-vectors: number of vectors, range 1 to 32.
-- msi-controller:      indicates that this is MSI controller node
-
-
-Example
-msi0: msi@0xFF200000 {
-       compatible = "altr,msi-1.0";
-       reg = <0xFF200000 0x00000010
-               0xFF200010 0x00000080>;
-       reg-names = "csr", "vector_slave";
-       interrupt-parent = <&hps_0_arm_gic_0>;
-       interrupts = <0 42 4>;
-       msi-controller;
-       num-vectors = <32>;
-};
diff --git a/Bindings/pci/altera-pcie.txt b/Bindings/pci/altera-pcie.txt
deleted file mode 100644 (file)
index 816b244..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-* Altera PCIe controller
-
-Required properties:
-- compatible : should contain "altr,pcie-root-port-1.0" or "altr,pcie-root-port-2.0"
-- reg:         a list of physical base address and length for TXS and CRA.
-               For "altr,pcie-root-port-2.0", additional HIP base address and length.
-- reg-names:   must include the following entries:
-               "Txs": TX slave port region
-               "Cra": Control register access region
-               "Hip": Hard IP region (if "altr,pcie-root-port-2.0")
-- interrupts:  specifies the interrupt source of the parent interrupt
-               controller.  The format of the interrupt specifier depends
-               on the parent interrupt controller.
-- device_type: must be "pci"
-- #address-cells:      set to <3>
-- #size-cells:         set to <2>
-- #interrupt-cells:    set to <1>
-- ranges:      describes the translation of addresses for root ports and
-               standard PCI regions.
-- interrupt-map-mask and interrupt-map: standard PCI properties to define the
-               mapping of the PCIe interface to interrupt numbers.
-
-Optional properties:
-- msi-parent:  Link to the hardware entity that serves as the MSI controller
-               for this PCIe controller.
-- bus-range:   PCI bus numbers covered
-
-Example
-       pcie_0: pcie@c00000000 {
-               compatible = "altr,pcie-root-port-1.0";
-               reg = <0xc0000000 0x20000000>,
-                       <0xff220000 0x00004000>;
-               reg-names = "Txs", "Cra";
-               interrupt-parent = <&hps_0_arm_gic_0>;
-               interrupts = <0 40 4>;
-               interrupt-controller;
-               #interrupt-cells = <1>;
-               bus-range = <0x0 0xFF>;
-               device_type = "pci";
-               msi-parent = <&msi_to_gic_gen_0>;
-               #address-cells = <3>;
-               #size-cells = <2>;
-               interrupt-map-mask = <0 0 0 7>;
-               interrupt-map = <0 0 0 1 &pcie_0 1>,
-                                   <0 0 0 2 &pcie_0 2>,
-                                   <0 0 0 3 &pcie_0 3>,
-                                   <0 0 0 4 &pcie_0 4>;
-               ranges = <0x82000000 0x00000000 0x00000000 0xc0000000 0x00000000 0x10000000
-                         0x82000000 0x00000000 0x10000000 0xd0000000 0x00000000 0x10000000>;
-       };
diff --git a/Bindings/pci/altr,msi-controller.yaml b/Bindings/pci/altr,msi-controller.yaml
new file mode 100644 (file)
index 0000000..9881486
--- /dev/null
@@ -0,0 +1,65 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright (C) 2015, 2024, Intel Corporation
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/altr,msi-controller.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Altera PCIe MSI controller
+
+maintainers:
+  - Matthew Gerlach <matthew.gerlach@linux.intel.com>
+
+properties:
+  compatible:
+    enum:
+      - altr,msi-1.0
+
+  reg:
+    items:
+      - description: CSR registers
+      - description: Vectors slave port region
+
+  reg-names:
+    items:
+      - const: csr
+      - const: vector_slave
+
+  interrupts:
+    maxItems: 1
+
+  msi-controller: true
+
+  num-vectors:
+    description: number of vectors
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 1
+    maximum: 32
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+  - msi-controller
+  - num-vectors
+
+allOf:
+  - $ref: /schemas/interrupt-controller/msi-controller.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    msi@ff200000 {
+        compatible = "altr,msi-1.0";
+        reg = <0xff200000 0x00000010>,
+              <0xff200010 0x00000080>;
+        reg-names = "csr", "vector_slave";
+        interrupt-parent = <&hps_0_arm_gic_0>;
+        interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+        msi-controller;
+        num-vectors = <32>;
+    };
diff --git a/Bindings/pci/altr,pcie-root-port.yaml b/Bindings/pci/altr,pcie-root-port.yaml
new file mode 100644 (file)
index 0000000..52533fc
--- /dev/null
@@ -0,0 +1,114 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright (C) 2015, 2019, 2024, Intel Corporation
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/altr,pcie-root-port.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Altera PCIe Root Port
+
+maintainers:
+  - Matthew Gerlach <matthew.gerlach@linux.intel.com>
+
+properties:
+  compatible:
+    enum:
+      - altr,pcie-root-port-1.0
+      - altr,pcie-root-port-2.0
+
+  reg:
+    items:
+      - description: TX slave port region
+      - description: Control register access region
+      - description: Hard IP region
+    minItems: 2
+
+  reg-names:
+    items:
+      - const: Txs
+      - const: Cra
+      - const: Hip
+    minItems: 2
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-controller: true
+
+  interrupt-map-mask:
+    items:
+      - const: 0
+      - const: 0
+      - const: 0
+      - const: 7
+
+  interrupt-map:
+    maxItems: 4
+
+  "#interrupt-cells":
+    const: 1
+
+  msi-parent: true
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+  - "#interrupt-cells"
+  - interrupt-controller
+  - interrupt-map
+  - interrupt-map-mask
+
+allOf:
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
+  - if:
+      properties:
+        compatible:
+          enum:
+            - altr,pcie-root-port-1.0
+    then:
+      properties:
+        reg:
+          maxItems: 2
+
+        reg-names:
+          maxItems: 2
+
+    else:
+      properties:
+        reg:
+          minItems: 3
+
+        reg-names:
+          minItems: 3
+
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    pcie_0: pcie@c00000000 {
+        compatible = "altr,pcie-root-port-1.0";
+        reg = <0xc0000000 0x20000000>,
+              <0xff220000 0x00004000>;
+        reg-names = "Txs", "Cra";
+        interrupt-parent = <&hps_0_arm_gic_0>;
+        interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-controller;
+        #interrupt-cells = <1>;
+        bus-range = <0x0 0xff>;
+        device_type = "pci";
+        msi-parent = <&msi_to_gic_gen_0>;
+        #address-cells = <3>;
+        #size-cells = <2>;
+        interrupt-map-mask = <0 0 0 7>;
+        interrupt-map = <0 0 0 1 &pcie_0 0 0 0 1>,
+                        <0 0 0 2 &pcie_0 0 0 0 2>,
+                        <0 0 0 3 &pcie_0 0 0 0 3>,
+                        <0 0 0 4 &pcie_0 0 0 0 4>;
+        ranges = <0x82000000 0x00000000 0x00000000 0xc0000000 0x00000000 0x10000000>,
+                 <0x82000000 0x00000000 0x10000000 0xd0000000 0x00000000 0x10000000>;
+    };
index 11f8ea33240cfd2df4b9cab4163659f6b98ff544..0925c520195ae3e0d2065dbe8ae5b9f99a0b1b93 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Brcmstb PCIe Host Controller
 
 maintainers:
-  - Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
+  - Jim Quinlan <james.quinlan@broadcom.com>
 
 properties:
   compatible:
@@ -16,11 +16,12 @@ properties:
           - brcm,bcm2711-pcie # The Raspberry Pi 4
           - brcm,bcm4908-pcie
           - brcm,bcm7211-pcie # Broadcom STB version of RPi4
-          - brcm,bcm7278-pcie # Broadcom 7278 Arm
           - brcm,bcm7216-pcie # Broadcom 7216 Arm
-          - brcm,bcm7445-pcie # Broadcom 7445 Arm
+          - brcm,bcm7278-pcie # Broadcom 7278 Arm
           - brcm,bcm7425-pcie # Broadcom 7425 MIPs
           - brcm,bcm7435-pcie # Broadcom 7435 MIPs
+          - brcm,bcm7445-pcie # Broadcom 7445 Arm
+          - brcm,bcm7712-pcie # Broadcom STB sibling of Rpi 5
 
   reg:
     maxItems: 1
@@ -95,6 +96,14 @@ properties:
       minItems: 1
       maxItems: 3
 
+  resets:
+    minItems: 1
+    maxItems: 3
+
+  reset-names:
+    minItems: 1
+    maxItems: 3
+
 required:
   - compatible
   - reg
@@ -118,8 +127,7 @@ allOf:
     then:
       properties:
         resets:
-          items:
-            - description: reset controller handling the PERST# signal
+          maxItems: 1
 
         reset-names:
           items:
@@ -136,12 +144,32 @@ allOf:
     then:
       properties:
         resets:
+          maxItems: 1
+
+        reset-names:
           items:
-            - description: phandle pointing to the RESCAL reset controller
+            - const: rescal
+
+      required:
+        - resets
+        - reset-names
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: brcm,bcm7712-pcie
+    then:
+      properties:
+        resets:
+          minItems: 3
+          maxItems: 3
 
         reset-names:
           items:
             - const: rescal
+            - const: bridge
+            - const: swinit
 
       required:
         - resets
index a06f75df8458ae6bdb18b7e688433bace5462ef4..84ca12e8b25be5c3b6b2a0d10bf03e686f5ec69f 100644 (file)
@@ -65,12 +65,14 @@ allOf:
     then:
       properties:
         reg:
-          minItems: 2
-          maxItems: 2
+          minItems: 4
+          maxItems: 4
         reg-names:
           items:
             - const: dbi
             - const: addr_space
+            - const: dbi2
+            - const: atu
 
   - if:
       properties:
@@ -129,8 +131,11 @@ examples:
 
     pcie_ep: pcie-ep@33800000 {
       compatible = "fsl,imx8mp-pcie-ep";
-      reg = <0x33800000 0x000400000>, <0x18000000 0x08000000>;
-      reg-names = "dbi", "addr_space";
+      reg = <0x33800000 0x100000>,
+            <0x18000000 0x8000000>,
+            <0x33900000 0x100000>,
+            <0x33b00000 0x100000>;
+      reg-names = "dbi", "addr_space", "dbi2", "atu";
       clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
                <&clk IMX8MP_CLK_HSIO_AXI>,
                <&clk IMX8MP_CLK_PCIE_ROOT>;
index 8b8d77b1154b5c69d719a54100b584a0ec199dda..1e05c560d79750f34e81cad2e028254f939d2f2c 100644 (file)
@@ -30,6 +30,7 @@ properties:
       - fsl,imx8mm-pcie
       - fsl,imx8mp-pcie
       - fsl,imx95-pcie
+      - fsl,imx8q-pcie
 
   clocks:
     minItems: 3
@@ -184,6 +185,21 @@ allOf:
             - const: pcie_bus
             - const: pcie_aux
 
+  - if:
+      properties:
+        compatible:
+          enum:
+            - fsl,imx8q-pcie
+    then:
+      properties:
+        clocks:
+          maxItems: 3
+        clock-names:
+          items:
+            - const: dbi
+            - const: mstr
+            - const: slv
+
 unevaluatedProperties: false
 
 examples:
index 793986c5af7ff37f3a06519678961e0093635d4e..be79712836c4443acfb40f1e73b23541d70415eb 100644 (file)
@@ -22,18 +22,20 @@ description:
 
 properties:
   compatible:
-    enum:
-      - fsl,ls1021a-pcie
-      - fsl,ls2080a-pcie
-      - fsl,ls2085a-pcie
-      - fsl,ls2088a-pcie
-      - fsl,ls1088a-pcie
-      - fsl,ls1046a-pcie
-      - fsl,ls1043a-pcie
-      - fsl,ls1012a-pcie
-      - fsl,ls1028a-pcie
-      - fsl,lx2160a-pcie
-
+    oneOf:
+      - enum:
+          - fsl,ls1012a-pcie
+          - fsl,ls1021a-pcie
+          - fsl,ls1028a-pcie
+          - fsl,ls1043a-pcie
+          - fsl,ls1046a-pcie
+          - fsl,ls1088a-pcie
+          - fsl,ls2080a-pcie
+          - fsl,ls2085a-pcie
+          - fsl,ls2088a-pcie
+      - items:
+          - const: fsl,lx2160ar2-pcie
+          - const: fsl,ls2088a-pcie
   reg:
     maxItems: 2
 
@@ -43,10 +45,15 @@ properties:
       - const: config
 
   fsl,pcie-scfg:
-    $ref: /schemas/types.yaml#/definitions/phandle
+    $ref: /schemas/types.yaml#/definitions/phandle-array
     description: A phandle to the SCFG device node. The second entry is the
       physical PCIe controller index starting from '0'. This is used to get
       SCFG PEXN registers.
+    items:
+      items:
+        - description: A phandle to the SCFG device node
+        - description: PCIe controller index starting from '0'
+    maxItems: 1
 
   big-endian:
     $ref: /schemas/types.yaml#/definitions/flag
@@ -67,6 +74,14 @@ properties:
     minItems: 1
     maxItems: 2
 
+  num-viewport:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    deprecated: true
+    description:
+      Number of outbound view ports configured in hardware. It's the same as
+      the number of outbound AT windows.
+    maximum: 256
+
 required:
   - compatible
   - reg
index c9f04999c9cf7da8190ee971f5c414b32b3b3d50..e863519f31617e2db208469100bf1fe9f649dff3 100644 (file)
@@ -37,7 +37,8 @@ properties:
     minItems: 3
     maxItems: 4
 
-  clocks: true
+  clocks:
+    maxItems: 5
 
   clock-names:
     items:
index bcfbaf5582cc9cb6c4d0e2108dcbc688c45b75c0..420d551e9af978d36f86b3ef69e4e4c041a1856d 100644 (file)
@@ -102,8 +102,6 @@ properties:
       As described in IEEE Std 1275-1994, but must provide at least a
       definition of non-prefetchable memory. One or both of prefetchable Memory
       and IO Space may also be provided.
-    minItems: 1
-    maxItems: 3
 
   dma-coherent: true
   iommu-map: true
index 76d742051f7346c16aeadbfeec72ad3f59c2a29a..898c1be2d6a435db70fedbccaaac37c5783e646a 100644 (file)
@@ -53,6 +53,7 @@ properties:
               - mediatek,mt8195-pcie
           - const: mediatek,mt8192-pcie
       - const: mediatek,mt8192-pcie
+      - const: airoha,en7581-pcie
 
   reg:
     maxItems: 1
@@ -76,20 +77,20 @@ properties:
 
   resets:
     minItems: 1
-    maxItems: 2
+    maxItems: 3
 
   reset-names:
     minItems: 1
-    maxItems: 2
+    maxItems: 3
     items:
-      enum: [ phy, mac ]
+      enum: [ phy, mac, phy-lane0, phy-lane1, phy-lane2 ]
 
   clocks:
-    minItems: 4
+    minItems: 1
     maxItems: 6
 
   clock-names:
-    minItems: 4
+    minItems: 1
     maxItems: 6
 
   assigned-clocks:
@@ -147,6 +148,9 @@ allOf:
           const: mediatek,mt8192-pcie
     then:
       properties:
+        clocks:
+          minItems: 4
+
         clock-names:
           items:
             - const: pl_250m
@@ -155,6 +159,15 @@ allOf:
             - const: tl_32k
             - const: peri_26m
             - const: top_133m
+
+        resets:
+          minItems: 1
+          maxItems: 2
+
+        reset-names:
+          minItems: 1
+          maxItems: 2
+
   - if:
       properties:
         compatible:
@@ -164,6 +177,9 @@ allOf:
               - mediatek,mt8195-pcie
     then:
       properties:
+        clocks:
+          minItems: 4
+
         clock-names:
           items:
             - const: pl_250m
@@ -172,6 +188,15 @@ allOf:
             - const: tl_32k
             - const: peri_26m
             - const: peri_mem
+
+        resets:
+          minItems: 1
+          maxItems: 2
+
+        reset-names:
+          minItems: 1
+          maxItems: 2
+
   - if:
       properties:
         compatible:
@@ -180,6 +205,9 @@ allOf:
               - mediatek,mt7986-pcie
     then:
       properties:
+        clocks:
+          minItems: 4
+
         clock-names:
           items:
             - const: pl_250m
@@ -187,6 +215,36 @@ allOf:
             - const: peri_26m
             - const: top_133m
 
+        resets:
+          minItems: 1
+          maxItems: 2
+
+        reset-names:
+          minItems: 1
+          maxItems: 2
+
+  - if:
+      properties:
+        compatible:
+          const: airoha,en7581-pcie
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+
+        clock-names:
+          items:
+            - const: sys-ck
+
+        resets:
+          minItems: 3
+
+        reset-names:
+          items:
+            - const: phy-lane0
+            - const: phy-lane1
+            - const: phy-lane2
+
 unevaluatedProperties: false
 
 examples:
index d1eef48252072a1b077903b19138eb7acf2081b7..f75000e3093db83b2d1665b48bcfdc239d07d7ab 100644 (file)
@@ -10,7 +10,8 @@ description: |
   Common properties for PCI Endpoint Controller Nodes.
 
 maintainers:
-  - Kishon Vijay Abraham I <kishon@ti.com>
+  - Kishon Vijay Abraham I <kishon@kernel.org>
+  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
 
 properties:
   $nodename:
@@ -41,6 +42,17 @@ properties:
     default: 1
     maximum: 16
 
+  linux,pci-domain:
+    description:
+      If present this property assigns a fixed PCI domain number to a PCI
+      Endpoint Controller, otherwise an unstable (across boots) unique number
+      will be assigned. It is required to either not set this property at all
+      or set it for all PCI endpoint controllers in the system, otherwise
+      potentially conflicting domain numbers may be assigned to endpoint
+      controllers. The domain number for each endpoint controller in the system
+      must be unique.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
 required:
   - compatible
 
index 0a39bbfcb28b08c12b130468108bd452c7320ec9..e18900c4157616084376ba32447a34a1f8fd9d36 100644 (file)
@@ -21,11 +21,11 @@ properties:
 
   interrupts:
     minItems: 1
-    maxItems: 8
+    maxItems: 9
 
   interrupt-names:
     minItems: 1
-    maxItems: 8
+    maxItems: 9
 
   iommu-map:
     minItems: 1
@@ -78,6 +78,9 @@ properties:
     description: GPIO controlled connection to WAKE# signal
     maxItems: 1
 
+  vddpe-3v3-supply:
+    description: PCIe endpoint power supply
+
 required:
   - reg
   - reg-names
index 46802f7d94826d76ce9d765300c076df5e2129c8..1226ee5d08d1ae909b07b0d78014618c4c74e9a8 100644 (file)
@@ -280,4 +280,5 @@ examples:
         phy-names = "pciephy";
         max-link-speed = <3>;
         num-lanes = <2>;
+        linux,pci-domain = <0>;
     };
index 634da24ec3ed097c07ba02b277f4994bc3764f35..76cb9fbfd476fb0412217c68bd8db44a51c7d236 100644 (file)
@@ -53,11 +53,19 @@ properties:
       - const: aggre1 # Aggre NoC PCIe1 AXI clock
 
   interrupts:
-    maxItems: 1
+    minItems: 8
+    maxItems: 8
 
   interrupt-names:
     items:
-      - const: msi
+      - const: msi0
+      - const: msi1
+      - const: msi2
+      - const: msi3
+      - const: msi4
+      - const: msi5
+      - const: msi6
+      - const: msi7
 
   resets:
     maxItems: 1
@@ -66,9 +74,6 @@ properties:
     items:
       - const: pci
 
-  vddpe-3v3-supply:
-    description: PCIe endpoint power supply
-
 allOf:
   - $ref: qcom,pcie-common.yaml#
 
@@ -137,8 +142,16 @@ examples:
 
             dma-coherent;
 
-            interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
-            interrupt-names = "msi";
+            interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "msi0", "msi1", "msi2", "msi3",
+                              "msi4", "msi5", "msi6", "msi7";
             #interrupt-cells = <1>;
             interrupt-map-mask = <0 0 0 0x7>;
             interrupt-map = <0 0 0 1 &intc 0 0 0 434 IRQ_TYPE_LEVEL_HIGH>,
index 25c9f13ae97723de5756bda2b711dd2e437ce3aa..15ba2385eb73c4e69d6de7dc09cf639bc800f7f2 100644 (file)
@@ -58,9 +58,6 @@ properties:
     items:
       - const: pci
 
-  vddpe-3v3-supply:
-    description: A phandle to the PCIe endpoint power supply
-
 required:
   - interconnects
   - interconnect-names
index d8c0afaa4b19227372f67d1e13d883f0a38cddad..46bd59eefadba15021bb3a67f4670bd00acdbea6 100644 (file)
@@ -55,8 +55,8 @@ properties:
       - const: aggre1 # Aggre NoC PCIe1 AXI clock
 
   interrupts:
-    minItems: 8
-    maxItems: 8
+    minItems: 9
+    maxItems: 9
 
   interrupt-names:
     items:
@@ -68,6 +68,7 @@ properties:
       - const: msi5
       - const: msi6
       - const: msi7
+      - const: global
 
   operating-points-v2: true
   opp-table:
@@ -149,9 +150,10 @@ examples:
                          <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
                          <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
                          <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
+                         <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
             interrupt-names = "msi0", "msi1", "msi2", "msi3",
-                              "msi4", "msi5", "msi6", "msi7";
+                              "msi4", "msi5", "msi6", "msi7", "global";
             #interrupt-cells = <1>;
             interrupt-map-mask = <0 0 0 0x7>;
             interrupt-map = <0 0 0 1 &intc 0 0 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
index f867746b1ae594a4f6b3cea171f245be866bdf53..ffabbac57fc1670024526a68193e67f4ec9f50ab 100644 (file)
@@ -91,6 +91,9 @@ properties:
   vdda_refclk-supply:
     description: A phandle to the core analog power supply for IC which generates reference clock
 
+  vddpe-3v3-supply:
+    description: A phandle to the PCIe endpoint power supply
+
   phys:
     maxItems: 1
 
index 91b81ac75592c4166612c60ba07120f85e1f966e..b23293314a6d0528405effe875e5831a06423891 100644 (file)
@@ -19,6 +19,7 @@ properties:
       - enum:
           - renesas,r8a779f0-pcie-ep      # R-Car S4-8
           - renesas,r8a779g0-pcie-ep      # R-Car V4H
+          - renesas,r8a779h0-pcie-ep      # R-Car V4M
       - const: renesas,rcar-gen4-pcie-ep  # R-Car Gen4
 
   reg:
index 955c664f1fbb2b0c08d4e00e22d7dd8e1d7ad2e3..bb3f843c59d910fc20d800b3921ae74ede9c129c 100644 (file)
@@ -19,6 +19,7 @@ properties:
       - enum:
           - renesas,r8a779f0-pcie      # R-Car S4-8
           - renesas,r8a779g0-pcie      # R-Car V4H
+          - renesas,r8a779h0-pcie      # R-Car V4M
       - const: renesas,rcar-gen4-pcie  # R-Car Gen4
 
   reg:
index b288cdb1ec70a53fb335bf6f35c00752f0efcfe7..065b7508d2888f7d0202128403e305372296f3e7 100644 (file)
@@ -42,9 +42,13 @@ properties:
   interrupts:
     maxItems: 1
 
-  clocks: true
+  clocks:
+    minItems: 1
+    maxItems: 3
 
-  clock-names: true
+  clock-names:
+    minItems: 1
+    maxItems: 3
 
   resets:
     maxItems: 1
index f0d8e486a07da7bcedc2f431e236a5a6c8217146..93f3d0f4bb94239f9fbfc1e3334b17fbab453169 100644 (file)
@@ -38,13 +38,17 @@ properties:
     minItems: 1
     maxItems: 2
 
-  clock-names: true
+  clock-names:
+    minItems: 1
+    maxItems: 2
 
   resets:
     minItems: 1
     maxItems: 2
 
-  reset-names: true
+  reset-names:
+    minItems: 1
+    maxItems: 2
 
   num-ib-windows:
     const: 16
index 15a2658ceeeff248c6794d9d4a308e017fc00b66..69b499c96c716dc8b05ad2d3b4ac6b7794717ac1 100644 (file)
@@ -38,6 +38,16 @@ properties:
       - const: reg
       - const: cfg
 
+  ti,syscon-acspcie-proxy-ctrl:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: Phandle to the ACSPCIE Proxy Control Register
+          - description: Bitmask corresponding to the PAD IO Buffer
+                         output enable fields (Active Low).
+    description: Specifier for enabling the ACSPCIE PAD outputs to drive
+                 the reference clock to the Endpoint device.
+
   ti,syscon-pcie-ctrl:
     $ref: /schemas/types.yaml#/definitions/phandle-array
     items:
index 9cad860c51a3352833c4673e538f46657cae9332..9de3c09efb6ea6de5a959b321958174029a5ff6b 100644 (file)
@@ -61,6 +61,11 @@ properties:
   interrupt-map:
     maxItems: 4
 
+  phys:
+    minItems: 1
+    maxItems: 4
+    description: One phy per logical lane, in order
+
   power-domains:
     maxItems: 1
 
@@ -110,6 +115,7 @@ examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
     #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/phy/phy.h>
     #include <dt-bindings/power/xlnx-zynqmp-power.h>
     soc {
         #address-cells = <2>;
@@ -138,6 +144,7 @@ examples:
                             <0x0 0x0 0x0 0x3 &pcie_intc 0x3>,
                             <0x0 0x0 0x0 0x4 &pcie_intc 0x4>;
             msi-parent = <&nwl_pcie>;
+            phys = <&psgtr 0 PHY_TYPE_PCIE 0 0>;
             power-domains = <&zynqmp_firmware PD_PCIE>;
             iommus = <&smmu 0x4d0>;
             pcie_intc: legacy-interrupt-controller {
index 2f59b3a73dd27f12df332a846c15ac3aa27c422a..f1efd919c3514f65113352e954a28285c1d589ff 100644 (file)
@@ -14,10 +14,21 @@ allOf:
 
 properties:
   compatible:
-    const: xlnx,xdma-host-3.00
+    enum:
+      - xlnx,xdma-host-3.00
+      - xlnx,qdma-host-3.00
 
   reg:
-    maxItems: 1
+    items:
+      - description: configuration region and XDMA bridge register.
+      - description: QDMA bridge register.
+    minItems: 1
+
+  reg-names:
+    items:
+      - const: cfg
+      - const: breg
+    minItems: 1
 
   ranges:
     maxItems: 2
@@ -76,6 +87,27 @@ required:
   - "#interrupt-cells"
   - interrupt-controller
 
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - xlnx,qdma-host-3.00
+then:
+  properties:
+    reg:
+      minItems: 2
+    reg-names:
+      minItems: 2
+  required:
+    - reg-names
+else:
+  properties:
+    reg:
+      maxItems: 1
+    reg-names:
+      maxItems: 1
+
 unevaluatedProperties: false
 
 examples:
index 2e51072e794a6782f4535eadf825e7217151c1cb..0e9d665584e65f021038460cb55d307994e520b2 100644 (file)
@@ -16,6 +16,7 @@ properties:
       - arm,cmn-600
       - arm,cmn-650
       - arm,cmn-700
+      - arm,cmn-s3
       - arm,ci-700
 
   reg:
diff --git a/Bindings/perf/arm,ni.yaml b/Bindings/perf/arm,ni.yaml
new file mode 100644 (file)
index 0000000..d66fffa
--- /dev/null
@@ -0,0 +1,30 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/perf/arm,ni.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Arm NI (Network-on-Chip Interconnect) Performance Monitors
+
+maintainers:
+  - Robin Murphy <robin.murphy@arm.com>
+
+properties:
+  compatible:
+    const: arm,ni-700
+
+  reg:
+    items:
+      - description: Complete configuration register space
+
+  interrupts:
+    minItems: 1
+    maxItems: 32
+    description: Overflow interrupts, one per clock domain, in order of domain ID
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
index e1bb12711fbf8266bccecde2cbac1cf39ea29b94..602cf952b92bf5da8cc54c0571ef1cc144f76ba0 100644 (file)
@@ -36,7 +36,7 @@ Optional properties:
                          3-tuple setting for each (up to 3) supported link
                          speed on the host. Range is 0 to 273000 in unit of
                          uV. Default is 0.
-- apm,tx-pre-cursor2   : 2st pre-cursor emphasis taps control. Two set of
+- apm,tx-pre-cursor2   : 2nd pre-cursor emphasis taps control. Two set of
                          3-tuple setting for each (up to 3) supported link
                          speed on the host. Range is 0 to 127400 in unit uV.
                          Default is 0x0.
index f4b1ca2fb56253f221e41ea54a576836aae58dae..ce665a2779b796b6a3af2c3f696cb59b1e97a336 100644 (file)
@@ -87,6 +87,12 @@ properties:
     maximum: 119
     default: 100
 
+  nxp,sim:
+    description:
+      The system integration module (SIM) provides system control and chip
+      configuration registers.
+    $ref: /schemas/types.yaml#/definitions/phandle
+
 required:
   - compatible
   - reg
@@ -110,6 +116,17 @@ allOf:
       required:
         - fsl,anatop
 
+  - if:
+      properties:
+        compatible:
+          const: fsl,imx7ulp-usbphy
+    then:
+      required:
+        - nxp,sim
+    else:
+      properties:
+        nxp,sim: false
+
 additionalProperties: false
 
 examples:
diff --git a/Bindings/phy/hisilicon,hi3798cv200-combphy.yaml b/Bindings/phy/hisilicon,hi3798cv200-combphy.yaml
new file mode 100644 (file)
index 0000000..8100196
--- /dev/null
@@ -0,0 +1,56 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/hisilicon,hi3798cv200-combphy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: HiSilicon STB PCIE/SATA/USB3 PHY
+
+maintainers:
+  - Shawn Guo <shawn.guo@linaro.org>
+
+properties:
+  compatible:
+    const: hisilicon,hi3798cv200-combphy
+
+  reg:
+    maxItems: 1
+
+  '#phy-cells':
+    description: The cell contains the PHY mode
+    const: 1
+
+  clocks:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  hisilicon,fixed-mode:
+    description: If the phy device doesn't support mode select but a fixed mode
+      setting, the property should be present to specify the particular mode.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [ 1, 2, 4]  # SATA, PCIE, USB3
+
+  hisilicon,mode-select-bits:
+    description: If the phy device support mode select, this property should be
+      present to specify the register bits in peripheral controller.
+    items:
+      - description: register_offset
+      - description: bit shift
+      - description: bit mask
+
+required:
+  - compatible
+  - reg
+  - '#phy-cells'
+  - clocks
+  - resets
+
+oneOf:
+  - required: ['hisilicon,fixed-mode']
+  - required: ['hisilicon,mode-select-bits']
+
+additionalProperties: false
+
+...
index cfb3ca97f87c68c1f0d20f21771216a8e819eb28..cc9d0d4eeeeb8f99194c9be0f218db1381f36dfd 100644 (file)
@@ -41,7 +41,7 @@ properties:
     description:
       One instance of the T-PHY on MT7988 suffers from a performance
       problem in 10GBase-R mode which needs a work-around in the driver.
-      This flag enables a work-around ajusting an analog phy setting and
+      This flag enables a work-around adjusting an analog phy setting and
       is required for XFI Port0 of the MT7988 SoC to be in compliance with
       the SFP specification.
 
index acba0720125ddd3d327df154a3f30c6e2e8608aa..423b7c4e62f2a9a5a81e3d5769a72c6b1e530e36 100644 (file)
@@ -240,7 +240,7 @@ patternProperties:
           The force mode is used to manually switch the shared phy mode between
           USB3 and PCIe, when USB3 phy type is selected by the consumer, and
           force-mode is set, will cause phy's power and pipe toggled and force
-          phy as USB3 mode which switched from default PCIe mode. But perfer to
+          phy as USB3 mode which switched from default PCIe mode. But prefer to
           use the property "mediatek,syscon-type" for newer SoCs that support it.
         type: boolean
 
diff --git a/Bindings/phy/nuvoton,ma35d1-usb2-phy.yaml b/Bindings/phy/nuvoton,ma35d1-usb2-phy.yaml
new file mode 100644 (file)
index 0000000..fff858c
--- /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/phy/nuvoton,ma35d1-usb2-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Nuvoton MA35D1 USB2 phy
+
+maintainers:
+  - Hui-Ping Chen <hpchen0nvt@gmail.com>
+
+properties:
+  compatible:
+    enum:
+      - nuvoton,ma35d1-usb2-phy
+
+  "#phy-cells":
+    const: 0
+
+  clocks:
+    maxItems: 1
+
+  nuvoton,sys:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      phandle to syscon for checking the PHY clock status.
+
+required:
+  - compatible
+  - "#phy-cells"
+  - clocks
+  - nuvoton,sys
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/nuvoton,ma35d1-clk.h>
+
+    usb_phy: usb-phy {
+        compatible = "nuvoton,ma35d1-usb2-phy";
+        clocks = <&clk USBD_GATE>;
+        nuvoton,sys = <&sys>;
+        #phy-cells = <0>;
+    };
diff --git a/Bindings/phy/phy-hi3798cv200-combphy.txt b/Bindings/phy/phy-hi3798cv200-combphy.txt
deleted file mode 100644 (file)
index 17b0c76..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-HiSilicon STB PCIE/SATA/USB3 PHY
-
-Required properties:
-- compatible: Should be "hisilicon,hi3798cv200-combphy"
-- reg: Should be the address space for COMBPHY configuration and state
-  registers in peripheral controller, e.g. PERI_COMBPHY0_CFG and
-  PERI_COMBPHY0_STATE for COMBPHY0 Hi3798CV200 SoC.
-- #phy-cells: Should be 1.  The cell number is used to select the phy mode
-  as defined in <dt-bindings/phy/phy.h>.
-- clocks: The phandle to clock provider and clock specifier pair.
-- resets: The phandle to reset controller and reset specifier pair.
-
-Refer to phy/phy-bindings.txt for the generic PHY binding properties.
-
-Optional properties:
-- hisilicon,fixed-mode: If the phy device doesn't support mode select
-  but a fixed mode setting, the property should be present to specify
-  the particular mode.
-- hisilicon,mode-select-bits: If the phy device support mode select,
-  this property should be present to specify the register bits in
-  peripheral controller, as a 3 integers tuple:
-  <register_offset bit_shift bit_mask>.
-
-Notes:
-- Between hisilicon,fixed-mode and hisilicon,mode-select-bits, one and only
-  one of them should be present.
-- The device node should be a child of peripheral controller that contains
-  COMBPHY configuration/state and PERI_CTRL register used to select PHY mode.
-  Refer to arm/hisilicon/hisilicon.txt for the parent peripheral controller
-  bindings.
-
-Examples:
-
-perictrl: peripheral-controller@8a20000 {
-       compatible = "hisilicon,hi3798cv200-perictrl", "syscon",
-                    "simple-mfd";
-       reg = <0x8a20000 0x1000>;
-       #address-cells = <1>;
-       #size-cells = <1>;
-       ranges = <0x0 0x8a20000 0x1000>;
-
-       combphy0: phy@850 {
-               compatible = "hisilicon,hi3798cv200-combphy";
-               reg = <0x850 0x8>;
-               #phy-cells = <1>;
-               clocks = <&crg HISTB_COMBPHY0_CLK>;
-               resets = <&crg 0x188 4>;
-               hisilicon,fixed-mode = <PHY_TYPE_USB3>;
-       };
-
-       combphy1: phy@858 {
-               compatible = "hisilicon,hi3798cv200-combphy";
-               reg = <0x858 0x8>;
-               #phy-cells = <1>;
-               clocks = <&crg HISTB_COMBPHY1_CLK>;
-               resets = <&crg 0x188 12>;
-               hisilicon,mode-select-bits = <0x0008 11 (0x3 << 11)>;
-       };
-};
index 83fe4b39b56f450fd3f45a37b05557e636488966..78607ee3e2e84f66ca36812b3d5850624494bf05 100644 (file)
@@ -14,6 +14,7 @@ properties:
   compatible:
     enum:
       - qcom,hdmi-phy-8996
+      - qcom,hdmi-phy-8998
 
   reg:
     maxItems: 6
diff --git a/Bindings/phy/qcom,sata-phy.yaml b/Bindings/phy/qcom,sata-phy.yaml
new file mode 100644 (file)
index 0000000..0bf18d3
--- /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/phy/qcom,sata-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SATA PHY Controller
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Konrad Dybcio <konrad.dybcio@linaro.org>
+
+description:
+  The Qualcomm SATA PHY describes on-chip SATA Physical layer controllers.
+
+properties:
+  compatible:
+    enum:
+      - qcom,ipq806x-sata-phy
+      - qcom,apq8064-sata-phy
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: cfg
+
+  '#phy-cells':
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#phy-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-ipq806x.h>
+    sata_phy: sata-phy@1b400000 {
+        compatible = "qcom,ipq806x-sata-phy";
+        reg = <0x1b400000 0x200>;
+
+        clocks = <&gcc SATA_PHY_CFG_CLK>;
+        clock-names = "cfg";
+
+        #phy-cells = <0>;
+    };
+
index 03dbd02cf9e79fa7c604ccea33551e642106514f..380a9222a51d86b5b9f936c9fcd7df9d1aaff451 100644 (file)
@@ -40,6 +40,7 @@ properties:
       - qcom,sm8650-qmp-gen4x2-pcie-phy
       - qcom,x1e80100-qmp-gen3x2-pcie-phy
       - qcom,x1e80100-qmp-gen4x2-pcie-phy
+      - qcom,x1e80100-qmp-gen4x4-pcie-phy
 
   reg:
     minItems: 1
@@ -118,6 +119,7 @@ allOf:
           contains:
             enum:
               - qcom,sc8280xp-qmp-gen3x4-pcie-phy
+              - qcom,x1e80100-qmp-gen4x4-pcie-phy
     then:
       properties:
         reg:
@@ -152,8 +154,6 @@ allOf:
               - qcom,sm8550-qmp-gen4x2-pcie-phy
               - qcom,sm8650-qmp-gen3x2-pcie-phy
               - qcom,sm8650-qmp-gen4x2-pcie-phy
-              - qcom,x1e80100-qmp-gen3x2-pcie-phy
-              - qcom,x1e80100-qmp-gen4x2-pcie-phy
     then:
       properties:
         clocks:
@@ -169,6 +169,9 @@ allOf:
               - qcom,sc8280xp-qmp-gen3x1-pcie-phy
               - qcom,sc8280xp-qmp-gen3x2-pcie-phy
               - qcom,sc8280xp-qmp-gen3x4-pcie-phy
+              - qcom,x1e80100-qmp-gen3x2-pcie-phy
+              - qcom,x1e80100-qmp-gen4x2-pcie-phy
+              - qcom,x1e80100-qmp-gen4x4-pcie-phy
     then:
       properties:
         clocks:
@@ -198,6 +201,7 @@ allOf:
               - qcom,sm8550-qmp-gen4x2-pcie-phy
               - qcom,sm8650-qmp-gen4x2-pcie-phy
               - qcom,x1e80100-qmp-gen4x2-pcie-phy
+              - qcom,x1e80100-qmp-gen4x4-pcie-phy
     then:
       properties:
         resets:
index 90d79491e2815402b8ec07fd453aad955b79abfd..d16a543a784887eabc69faae2233057c4554be31 100644 (file)
@@ -43,7 +43,7 @@ properties:
 
   qcom,tune-usb2-amplitude:
     $ref: /schemas/types.yaml#/definitions/uint8
-    description: High-Speed trasmit amplitude
+    description: High-Speed transmit amplitude
     minimum: 0
     maximum: 15
     default: 8
diff --git a/Bindings/phy/qcom,usb-8x16-phy.txt b/Bindings/phy/qcom,usb-8x16-phy.txt
deleted file mode 100644 (file)
index 2cb2168..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-Qualcomm's APQ8016/MSM8916 USB transceiver controller
-
-- compatible:
-    Usage: required
-    Value type: <string>
-    Definition: Should contain "qcom,usb-8x16-phy".
-
-- reg:
-    Usage: required
-    Value type: <prop-encoded-array>
-    Definition: USB PHY base address and length of the register map
-
-- clocks:
-    Usage: required
-    Value type: <prop-encoded-array>
-    Definition: See clock-bindings.txt section "consumers". List of
-                two clock specifiers for interface and core controller
-                clocks.
-
-- clock-names:
-    Usage: required
-    Value type: <string>
-    Definition: Must contain "iface" and "core" strings.
-
-- vddcx-supply:
-    Usage: required
-    Value type: <phandle>
-    Definition: phandle to the regulator VDCCX supply node.
-
-- v1p8-supply:
-    Usage: required
-    Value type: <phandle>
-    Definition: phandle to the regulator 1.8V supply node.
-
-- v3p3-supply:
-    Usage: required
-    Value type: <phandle>
-    Definition: phandle to the regulator 3.3V supply node.
-
-- resets:
-    Usage: required
-    Value type: <prop-encoded-array>
-    Definition: See reset.txt section "consumers". PHY reset specifier.
-
-- reset-names:
-    Usage: required
-    Value type: <string>
-    Definition: Must contain "phy" string.
-
-- switch-gpio:
-    Usage: optional
-    Value type: <prop-encoded-array>
-    Definition: Some boards are using Dual SPDT USB Switch, witch is
-                controlled by GPIO to de/multiplex D+/D- USB lines
-                between connectors.
-
-Example:
-       usb_phy: phy@78d9000 {
-               compatible = "qcom,usb-8x16-phy";
-               reg = <0x78d9000 0x400>;
-
-               vddcx-supply = <&pm8916_s1_corner>;
-               v1p8-supply = <&pm8916_l7>;
-               v3p3-supply = <&pm8916_l13>;
-
-               clocks = <&gcc GCC_USB_HS_AHB_CLK>,
-                            <&gcc GCC_USB_HS_SYSTEM_CLK>;
-               clock-names = "iface", "core";
-
-               resets = <&gcc GCC_USB2A_PHY_BCR>;
-               reset-names = "phy";
-
-               // D+/D- lines: 1 - Routed to HUB, 0 - Device connector
-               switch-gpio = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>;
-       };
-
diff --git a/Bindings/phy/qcom-apq8064-sata-phy.txt b/Bindings/phy/qcom-apq8064-sata-phy.txt
deleted file mode 100644 (file)
index 952f6c9..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-Qualcomm APQ8064 SATA PHY Controller
-------------------------------------
-
-SATA PHY nodes are defined to describe on-chip SATA Physical layer controllers.
-Each SATA PHY controller should have its own node.
-
-Required properties:
-- compatible: compatible list, contains "qcom,apq8064-sata-phy".
-- reg: offset and length of the SATA PHY register set;
-- #phy-cells: must be zero
-- clocks: a list of phandles and clock-specifier pairs, one for each entry in
-  clock-names.
-- clock-names: must be "cfg" for phy config clock.
-
-Example:
-       sata_phy: sata-phy@1b400000 {
-               compatible = "qcom,apq8064-sata-phy";
-               reg = <0x1b400000 0x200>;
-
-               clocks = <&gcc SATA_PHY_CFG_CLK>;
-               clock-names = "cfg";
-
-               #phy-cells = <0>;
-       };
diff --git a/Bindings/phy/qcom-ipq806x-sata-phy.txt b/Bindings/phy/qcom-ipq806x-sata-phy.txt
deleted file mode 100644 (file)
index 76bfbd0..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-Qualcomm IPQ806x SATA PHY Controller
-------------------------------------
-
-SATA PHY nodes are defined to describe on-chip SATA Physical layer controllers.
-Each SATA PHY controller should have its own node.
-
-Required properties:
-- compatible: compatible list, contains "qcom,ipq806x-sata-phy"
-- reg: offset and length of the SATA PHY register set;
-- #phy-cells: must be zero
-- clocks: must be exactly one entry
-- clock-names: must be "cfg"
-
-Example:
-       sata_phy: sata-phy@1b400000 {
-               compatible = "qcom,ipq806x-sata-phy";
-               reg = <0x1b400000 0x200>;
-
-               clocks = <&gcc SATA_PHY_CFG_CLK>;
-               clock-names = "cfg";
-
-               #phy-cells = <0>;
-       };
index f82649a55e91b97533570f4bc13007ead2e8c84b..af275cea3456bede41fe968da5bbca17b93dbe68 100644 (file)
@@ -13,7 +13,9 @@ properties:
   compatible:
     oneOf:
       - items:
-          - const: renesas,usb2-phy-r8a77470 # RZ/G1C
+          - enum:
+              - renesas,usb2-phy-r8a77470  # RZ/G1C
+              - renesas,usb2-phy-r9a08g045 # RZ/G3S
 
       - items:
           - enum:
index 54e822c715f3f4060afed91590f4fa24fa2999af..84fe59dbcf487c8471f2d27597a624000dac6256 100644 (file)
@@ -27,6 +27,9 @@ properties:
       - const: ref
       - const: apb
 
+  "#clock-cells":
+    const: 0
+
   "#phy-cells":
     const: 0
 
index de3cffc850bc96bb10609ab6cd2ff79a2e76c324..e34b875a1bb8ed6cfa8f7ae7d9276485ae4ab645 100644 (file)
@@ -30,13 +30,17 @@ properties:
     minItems: 1
     maxItems: 2
 
-  clock-names: true
+  clock-names:
+    minItems: 1
+    maxItems: 6
 
   resets:
     minItems: 2
     maxItems: 6
 
-  reset-names: true
+  reset-names:
+    minItems: 2
+    maxItems: 6
 
 allOf:
   - if:
index b3ed2f74a4145f3dffab8cbd747e75319c77085e..9fc0e87c508e50d8f57d07b996f4aace9cbd28b1 100644 (file)
@@ -31,13 +31,17 @@ properties:
     minItems: 1
     maxItems: 2
 
-  clock-names: true
+  clock-names:
+    minItems: 1
+    maxItems: 2
 
   resets:
     minItems: 1
     maxItems: 2
 
-  reset-names: true
+  reset-names:
+    minItems: 1
+    maxItems: 2
 
   socionext,syscon:
     $ref: /schemas/types.yaml#/definitions/phandle
index 2107d98ace1562b603af8e25ca2570a14924f61b..25c4159f86e486f693c021bbb36e807aaf436abc 100644 (file)
@@ -34,12 +34,15 @@ properties:
     minItems: 2
     maxItems: 3
 
-  clock-names: true
+  clock-names:
+    minItems: 2
+    maxItems: 3
 
   resets:
     maxItems: 2
 
-  reset-names: true
+  reset-names:
+    maxItems: 2
 
   vbus-supply:
     description: A phandle to the regulator for USB VBUS
index 8f5aa6238bf301a26cce62f29486af57d114728f..1f663e9901da752273e701a0c34f60f6d3b273a2 100644 (file)
@@ -35,12 +35,15 @@ properties:
     minItems: 2
     maxItems: 3
 
-  clock-names: true
+  clock-names:
+    minItems: 2
+    maxItems: 3
 
   resets:
     maxItems: 2
 
-  reset-names: true
+  reset-names:
+    maxItems: 2
 
   vbus-supply:
     description: A phandle to the regulator for USB VBUS, only for USB host
diff --git a/Bindings/pinctrl/atmel,at91-pinctrl.txt b/Bindings/pinctrl/atmel,at91-pinctrl.txt
deleted file mode 100644 (file)
index 0aa1a53..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-* Atmel AT91 Pinmux Controller
-
-The AT91 Pinmux Controller, enables the IC
-to share one PAD to several functional blocks. The sharing is done by
-multiplexing the PAD input/output signals. For each PAD there are up to
-8 muxing options (called periph modes). Since different modules require
-different PAD settings (like pull up, keeper, etc) the controller controls
-also the PAD settings parameters.
-
-Please refer to pinctrl-bindings.txt in this directory for details of the
-common pinctrl bindings used by client devices, including the meaning of the
-phrase "pin configuration node".
-
-Atmel AT91 pin configuration node is a node of a group of pins which can be
-used for a specific device or function. This node represents both mux and config
-of the pins in that group. The 'pins' selects the function mode(also named pin
-mode) this pin can work on and the 'config' configures various pad settings
-such as pull-up, multi drive, etc.
-
-Required properties for iomux controller:
-- compatible: "atmel,at91rm9200-pinctrl" or "atmel,at91sam9x5-pinctrl"
-               or "atmel,sama5d3-pinctrl" or "microchip,sam9x60-pinctrl"
-               or "microchip,sam9x7-pinctrl", "microchip,sam9x60-pinctrl"
-- atmel,mux-mask: array of mask (periph per bank) to describe if a pin can be
-  configured in this periph mode. All the periph and bank need to be describe.
-
-How to create such array:
-
-Each column will represent the possible peripheral of the pinctrl
-Each line will represent a pio bank
-
-Take an example on the 9260
-Peripheral: 2 ( A and B)
-Bank: 3 (A, B and C)
-=>
-
-  /*    A         B     */
-  0xffffffff 0xffc00c3b  /* pioA */
-  0xffffffff 0x7fff3ccf  /* pioB */
-  0xffffffff 0x007fffff  /* pioC */
-
-For each peripheral/bank we will describe in a u32 if a pin can be
-configured in it by putting 1 to the pin bit (1 << pin)
-
-Let's take the pioA on peripheral B
-From the datasheet Table 10-2.
-Peripheral B
-PA0    MCDB0
-PA1    MCCDB
-PA2
-PA3    MCDB3
-PA4    MCDB2
-PA5    MCDB1
-PA6
-PA7
-PA8
-PA9
-PA10   ETX2
-PA11   ETX3
-PA12
-PA13
-PA14
-PA15
-PA16
-PA17
-PA18
-PA19
-PA20
-PA21
-PA22   ETXER
-PA23   ETX2
-PA24   ETX3
-PA25   ERX2
-PA26   ERX3
-PA27   ERXCK
-PA28   ECRS
-PA29   ECOL
-PA30   RXD4
-PA31   TXD4
-
-=> 0xffc00c3b
-
-Required properties for pin configuration node:
-- atmel,pins: 4 integers array, represents a group of pins mux and config
-  setting. The format is atmel,pins = <PIN_BANK PIN_BANK_NUM PERIPH CONFIG>.
-  The PERIPH 0 means gpio, PERIPH 1 is periph A, PERIPH 2 is periph B...
-  PIN_BANK 0 is pioA, PIN_BANK 1 is pioB...
-
-Bits used for CONFIG:
-PULL_UP                (1 << 0): indicate this pin needs a pull up.
-MULTIDRIVE     (1 << 1): indicate this pin needs to be configured as multi-drive.
-                       Multi-drive is equivalent to open-drain type output.
-DEGLITCH       (1 << 2): indicate this pin needs deglitch.
-PULL_DOWN      (1 << 3): indicate this pin needs a pull down.
-DIS_SCHMIT     (1 << 4): indicate this pin needs to the disable schmitt trigger.
-DRIVE_STRENGTH (3 << 5): indicate the drive strength of the pin using the
-                       following values:
-                               00 - No change (reset state value kept)
-                               01 - Low
-                               10 - Medium
-                               11 - High
-OUTPUT         (1 << 7): indicate this pin need to be configured as an output.
-OUTPUT_VAL     (1 << 8): output val (1 = high, 0 = low)
-SLEWRATE       (1 << 9): slew rate of the pin: 0 = disable, 1 = enable
-DEBOUNCE       (1 << 16): indicate this pin needs debounce.
-DEBOUNCE_VAL   (0x3fff << 17): debounce value.
-
-NOTE:
-Some requirements for using atmel,at91rm9200-pinctrl binding:
-1. We have pin function node defined under at91 controller node to represent
-   what pinmux functions this SoC supports.
-2. The driver can use the function node's name and pin configuration node's
-   name describe the pin function and group hierarchy.
-   For example, Linux at91 pinctrl driver takes the function node's name
-   as the function name and pin configuration node's name as group name to
-   create the map table.
-3. Each pin configuration node should have a phandle, devices can set pins
-   configurations by referring to the phandle of that pin configuration node.
-4. The gpio controller must be describe in the pinctrl simple-bus.
-
-For each bank the required properties are:
-- compatible: "atmel,at91sam9x5-gpio" or "atmel,at91rm9200-gpio" or
-  "microchip,sam9x60-gpio"
-  or "microchip,sam9x7-gpio", "microchip,sam9x60-gpio", "atmel,at91rm9200-gpio"
-- reg: physical base address and length of the controller's registers
-- interrupts: interrupt outputs from the controller
-- interrupt-controller: marks the device node as an interrupt controller
-- #interrupt-cells: should be 2; refer to ../interrupt-controller/interrupts.txt
-  for more details.
-- gpio-controller
-- #gpio-cells: should be 2; the first cell is the GPIO number and the second
-  cell specifies GPIO flags as defined in <dt-bindings/gpio/gpio.h>.
-- clocks: bank clock
-
-Examples:
-
-pinctrl@fffff400 {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       ranges;
-       compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
-       reg = <0xfffff400 0x600>;
-
-       pioA: gpio@fffff400 {
-               compatible = "atmel,at91sam9x5-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>;
-       };
-
-       atmel,mux-mask = <
-             /*    A         B     */
-              0xffffffff 0xffc00c3b  /* pioA */
-              0xffffffff 0x7fff3ccf  /* pioB */
-              0xffffffff 0x007fffff  /* pioC */
-             >;
-
-       /* shared pinctrl settings */
-       dbgu {
-               pinctrl_dbgu: dbgu-0 {
-                       atmel,pins =
-                               <1 14 0x1 0x0   /* PB14 periph A */
-                                1 15 0x1 0x1>; /* PB15 periph A with pullup */
-               };
-       };
-};
-
-dbgu: serial@fffff200 {
-       compatible = "atmel,at91sam9260-usart";
-       reg = <0xfffff200 0x200>;
-       interrupts = <1 4 7>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_dbgu>;
-};
diff --git a/Bindings/pinctrl/atmel,at91rm9200-pinctrl.yaml b/Bindings/pinctrl/atmel,at91rm9200-pinctrl.yaml
new file mode 100644 (file)
index 0000000..1bb386b
--- /dev/null
@@ -0,0 +1,184 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/atmel,at91rm9200-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip PIO3 Pinmux Controller
+
+maintainers:
+  - Manikandan Muralidharan <manikandan.m@microchip.com>
+
+description:
+  The AT91 Pinmux Controller, enables the IC to share one PAD to several
+  functional blocks. The sharing is done by multiplexing the PAD input/output
+  signals. For each PAD there are up to 8 muxing options (called periph modes).
+  Since different modules require different PAD settings (like pull up, keeper,
+  etc) the controller controls also the PAD settings parameters.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - atmel,at91rm9200-pinctrl
+              - atmel,at91sam9x5-pinctrl
+              - atmel,sama5d3-pinctrl
+              - microchip,sam9x60-pinctrl
+          - const: simple-mfd
+      - items:
+          - enum:
+              - microchip,sam9x7-pinctrl
+          - const: microchip,sam9x60-pinctrl
+          - const: simple-mfd
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 1
+
+  ranges: true
+
+  atmel,mux-mask:
+    $ref: /schemas/types.yaml#/definitions/uint32-matrix
+    description: |
+      Array of mask (periph per bank) to describe if a pin can be
+      configured in this periph mode. All the periph and bank need to
+      be described.
+
+      #How to create such array:
+
+      Each column will represent the possible peripheral of the pinctrl
+      Each line will represent a pio bank
+
+      #Example:
+
+      In at91sam9260.dtsi,
+      Peripheral: 2 ( A and B)
+      Bank: 3 (A, B and C)
+
+      #    A          B
+      0xffffffff 0xffc00c3b  # pioA
+      0xffffffff 0x7fff3ccf  # pioB
+      0xffffffff 0x007fffff  # pioC
+
+      For each peripheral/bank we will describe in a u32 if a pin can be
+      configured in it by putting 1 to the pin bit (1 << pin)
+
+      Let's take the pioA on peripheral B whose value is 0xffc00c3b
+      From the datasheet Table 10-2.
+      Peripheral B
+      PA0     MCDB0
+      PA1     MCCDB
+      PA2
+      PA3     MCDB3
+      PA4     MCDB2
+      PA5     MCDB1
+      PA6
+      PA7
+      PA8
+      PA9
+      PA10    ETX2
+      PA11    ETX3
+      PA12
+      PA13
+      PA14
+      PA15
+      PA16
+      PA17
+      PA18
+      PA19
+      PA20
+      PA21
+      PA22    ETXER
+      PA23    ETX2
+      PA24    ETX3
+      PA25    ERX2
+      PA26    ERX3
+      PA27    ERXCK
+      PA28    ECRS
+      PA29    ECOL
+      PA30    RXD4
+      PA31    TXD4
+
+allOf:
+  - $ref: pinctrl.yaml#
+
+required:
+  - compatible
+  - ranges
+  - "#address-cells"
+  - "#size-cells"
+  - atmel,mux-mask
+
+patternProperties:
+  'gpio@[0-9a-f]+$':
+    $ref: /schemas/gpio/atmel,at91rm9200-gpio.yaml
+    unevaluatedProperties: false
+
+additionalProperties:
+  type: object
+  additionalProperties:
+    type: object
+    additionalProperties: false
+
+    properties:
+      atmel,pins:
+        $ref: /schemas/types.yaml#/definitions/uint32-matrix
+        description: |
+          Each entry consists of 4 integers and represents the pins
+          mux and config setting.The format is
+          atmel,pins = <PIN_BANK PIN_BANK_NUM PERIPH CONFIG>.
+          Supported pin number and mux varies for different SoCs, and
+          are defined in <include/dt-bindings/pinctrl/at91.h>.
+          items:
+            items:
+              - description:
+                  Pin bank
+              - description:
+                  Pin bank index
+              - description:
+                  Peripheral function
+              - description:
+                  Pad configuration
+
+examples:
+  - |
+     #include <dt-bindings/clock/at91.h>
+     #include <dt-bindings/interrupt-controller/irq.h>
+     #include <dt-bindings/pinctrl/at91.h>
+
+     pinctrl@fffff400 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "atmel,at91rm9200-pinctrl", "simple-mfd";
+       ranges = <0xfffff400 0xfffff400 0x600>;
+
+       atmel,mux-mask = <
+         /*    A         B     */
+         0xffffffff 0xffc00c3b  /* pioA */
+         0xffffffff 0x7fff3ccf  /* pioB */
+         0xffffffff 0x007fffff  /* pioC */
+         >;
+
+       dbgu {
+         pinctrl_dbgu: dbgu-0 {
+           atmel,pins =
+             <AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+              AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
+         };
+       };
+
+       pioA: 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/pinctrl/mobileye,eyeq5-pinctrl.yaml b/Bindings/pinctrl/mobileye,eyeq5-pinctrl.yaml
deleted file mode 100644 (file)
index 5f00604..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/pinctrl/mobileye,eyeq5-pinctrl.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Mobileye EyeQ5 pin controller
-
-description: >
-  The EyeQ5 pin controller handles the two pin banks of the system. It belongs
-  to a system-controller block called OLB.
-
-  Pin control is about bias (pull-down, pull-up), drive strength and muxing. Pin
-  muxing supports two functions for each pin: first is GPIO, second is
-  pin-dependent.
-
-  Pins and groups are bijective.
-
-maintainers:
-  - Grégory Clement <gregory.clement@bootlin.com>
-  - Théo Lebrun <theo.lebrun@bootlin.com>
-  - Vladimir Kondratiev <vladimir.kondratiev@mobileye.com>
-
-$ref: pinctrl.yaml#
-
-properties:
-  compatible:
-    enum:
-      - mobileye,eyeq5-pinctrl
-
-  reg:
-    maxItems: 1
-
-patternProperties:
-  "-pins?$":
-    type: object
-    description: Pin muxing configuration.
-    $ref: 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
-
-additionalProperties: false
index 814b9598edd183dc95cc223f93e3dab1b461fc90..8cd1f442240e68b6252e12aabbf5935faf65210c 100644 (file)
@@ -71,51 +71,49 @@ patternProperties:
           One or more groups of pins to mux to a certain function
         items:
           enum: [ iox1, iox2, smb1d, smb2d, lkgpo1, lkgpo2, ioxh, gspi,
-                  smb5b, smb5c, lkgpo0, pspi, jm1, jm2, smb4den, smb4b,
-                  smb4c, smb15, smb16, smb17, smb18, smb19, smb20, smb21,
-                  smb22, smb23, smb23b, smb4d, smb14, smb5, smb4, smb3,
-                  spi0cs1, spi0cs2, spi0cs3, spi1cs0, spi1cs1, spi1cs2,
-                  spi1cs3, spi1cs23, smb3c, smb3b, bmcuart0a, uart1, jtag2,
-                  bmcuart1, uart2, sg1mdio, bmcuart0b, r1err, r1md, r1oen,
-                  r2oen, rmii3, r3oen, smb3d, fanin0, fanin1, fanin2, fanin3,
-                  fanin4, fanin5, fanin6, fanin7, fanin8, fanin9, fanin10,
-                  fanin11, fanin12, fanin13, fanin14, fanin15, pwm0, pwm1, pwm2,
-                  pwm3, r2, r2err, r2md, r3rxer, ga20kbc, smb5d, lpc, espi, rg2,
-                  ddr, i3c0, i3c1, i3c2, i3c3, i3c4, i3c5, smb0, smb1, smb2,
-                  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, 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 ]
+                  smb5b, smb5c, lkgpo0, pspi, jm1, jm2, smb4b, smb4c, smb15,
+                  smb16, smb17, smb18, smb19, smb20, smb21, smb22, smb23,
+                  smb23b, smb4d, smb14, smb5, smb4, smb3, spi0cs1, spi0cs2,
+                  spi0cs3, spi1cs0, spi1cs1, spi1cs2, spi1cs3, spi1cs23, smb3c,
+                  smb3b, bmcuart0a, uart1, jtag2, bmcuart1, uart2, sg1mdio,
+                  bmcuart0b, r1err, r1md, r1oen, r2oen, rmii3, r3oen, smb3d,
+                  fanin0, fanin1, fanin2, fanin3, fanin4, fanin5, fanin6,
+                  fanin7, fanin8, fanin9, fanin10, fanin11, fanin12, fanin13,
+                  fanin14, fanin15, pwm0, pwm1, pwm2, pwm3, r2, r2err, r2md,
+                  r3rxer, ga20kbc, smb5d, lpc, espi, rg2, ddr, i3c0, i3c1,
+                  i3c2, i3c3, i3c4, i3c5, smb0, smb1, smb2, 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, 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:
           The function that a group of pins is muxed to
-        enum: [ iox1, iox2, smb1d, smb2d, lkgpo1, lkgpo2, ioxh, gspi,
-                smb5b, smb5c, lkgpo0, pspi, jm1, jm2, smb4den, smb4b,
-                smb4c, smb15, smb16, smb17, smb18, smb19, smb20, smb21,
-                smb22, smb23, smb23b, smb4d, smb14, smb5, smb4, smb3,
-                spi0cs1, spi0cs2, spi0cs3, spi1cs0, spi1cs1, spi1cs2,
-                spi1cs3, spi1cs23, smb3c, smb3b, bmcuart0a, uart1, jtag2,
-                bmcuart1, uart2, sg1mdio, bmcuart0b, r1err, r1md, r1oen,
-                r2oen, rmii3, r3oen, smb3d, fanin0, fanin1, fanin2, fanin3,
-                fanin4, fanin5, fanin6, fanin7, fanin8, fanin9, fanin10,
+        enum: [ iox1, iox2, smb1d, smb2d, lkgpo1, lkgpo2, ioxh, gspi, smb5b,
+                smb5c, lkgpo0, pspi, jm1, jm2, smb4b, smb4c, smb15, smb16,
+                smb17, smb18, smb19, smb20, smb21, smb22, smb23, smb23b, smb4d,
+                smb14, smb5, smb4, smb3, spi0cs1, spi0cs2, spi0cs3, spi1cs0,
+                spi1cs1, spi1cs2, spi1cs3, spi1cs23, smb3c, smb3b, bmcuart0a,
+                uart1, jtag2, bmcuart1, uart2, sg1mdio, bmcuart0b, r1err, r1md,
+                r1oen, r2oen, rmii3, r3oen, smb3d, fanin0, fanin1, fanin2,
+                fanin3, fanin4, fanin5, fanin6, fanin7, fanin8, fanin9, fanin10,
                 fanin11, fanin12, fanin13, fanin14, fanin15, pwm0, pwm1, pwm2,
                 pwm3, r2, r2err, r2md, r3rxer, ga20kbc, smb5d, lpc, espi, rg2,
                 ddr, i3c0, i3c1, i3c2, i3c3, i3c4, i3c5, smb0, smb1, smb2,
                 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, 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 ]
+                mmc8, mmc, mmcwp, mmccd, mmcrst, clkout, serirq, 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 d0af21a564b44fe18bad311e8299723c343b78e9..cbfcf215e571d9daecd5645f09894989ab93c386 100644 (file)
@@ -96,6 +96,9 @@ properties:
     type: boolean
     description: disable schmitt-trigger mode
 
+  input-schmitt-microvolt:
+    description: threshold strength for schmitt-trigger
+
   input-debounce:
     $ref: /schemas/types.yaml#/definitions/uint32-array
     description: Takes the debounce time in usec as argument or 0 to disable
diff --git a/Bindings/pinctrl/qcom,apq8064-pinctrl.txt b/Bindings/pinctrl/qcom,apq8064-pinctrl.txt
deleted file mode 100644 (file)
index 4e90ddd..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-Qualcomm APQ8064 TLMM block
-
-Required properties:
-- compatible: "qcom,apq8064-pinctrl"
-- reg: Should be the base address and length of the TLMM block.
-- interrupts: Should be the parent IRQ of the TLMM block.
-- interrupt-controller: Marks the device node as an interrupt controller.
-- #interrupt-cells: Should be two.
-- gpio-controller: Marks the device node as a GPIO controller.
-- #gpio-cells : Should be two.
-                The first cell is the gpio pin number and the
-                second cell is used for optional parameters.
-- gpio-ranges: see ../gpio/gpio.txt
-
-Optional properties:
-
-- gpio-reserved-ranges: see ../gpio/gpio.txt
-
-Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
-a general description of GPIO and interrupt bindings.
-
-Please refer to pinctrl-bindings.txt in this directory for details of the
-common pinctrl bindings used by client devices, including the meaning of the
-phrase "pin configuration node".
-
-Qualcomm's pin configuration nodes act as a container for an arbitrary number of
-subnodes. Each of these subnodes represents some desired configuration for a
-pin, a group, or a list of pins or groups. This configuration can include the
-mux function to select on those pin(s)/group(s), and various pin configuration
-parameters, such as pull-up, drive strength, etc.
-
-The name of each subnode is not important; all subnodes should be enumerated
-and processed purely based on their content.
-
-Each subnode only affects those parameters that are explicitly listed. In
-other words, a subnode that lists a mux function but no pin configuration
-parameters implies no information about any pin configuration parameters.
-Similarly, a pin subnode that describes a pullup parameter implies no
-information about e.g. the mux function.
-
-
-The following generic properties as defined in pinctrl-bindings.txt are valid
-to specify in a pin configuration subnode:
-
- pins, function, bias-disable, bias-pull-down, bias-pull-up, drive-strength,
- output-low, output-high.
-
-Non-empty subnodes must specify the 'pins' property.
-
-Valid values for pins are:
-  gpio0-gpio89
-
-Valid values for function are:
-  cam_mclk, codec_mic_i2s, codec_spkr_i2s, gp_clk_0a, gp_clk_0b, gp_clk_1a,
-  gp_clk_1b, gp_clk_2a, gp_clk_2b, gpio, gsbi1, gsbi2, gsbi3, gsbi4,
-  gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6,
-  gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1,
-  gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm,
-  riva_wlan, sdc2, sdc4, slimbus, spkr_i2s, tsif1, tsif2, usb2_hsic, ps_hold
-
-Example:
-
-       msmgpio: pinctrl@800000 {
-               compatible = "qcom,apq8064-pinctrl";
-               reg = <0x800000 0x4000>;
-
-               gpio-controller;
-               #gpio-cells = <2>;
-               interrupt-controller;
-               #interrupt-cells = <2>;
-               interrupts = <0 16 0x4>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&gsbi5_uart_default>;
-               gpio-ranges = <&msmgpio 0 0 90>;
-
-               gsbi5_uart_default: gsbi5_uart_default {
-                       mux {
-                               pins = "gpio51", "gpio52";
-                               function = "gsbi5";
-                       };
-
-                       tx {
-                               pins = "gpio51";
-                               drive-strength = <4>;
-                               bias-disable;
-                       };
-
-                       rx {
-                               pins = "gpio52";
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
-               };
-       };
diff --git a/Bindings/pinctrl/qcom,apq8064-pinctrl.yaml b/Bindings/pinctrl/qcom,apq8064-pinctrl.yaml
new file mode 100644 (file)
index 0000000..f251dcd
--- /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/pinctrl/qcom,apq8064-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. APQ8064 TLMM block
+
+maintainers:
+  - Bjorn Andersson <bjorn.andersson@linaro.org>
+
+description: |
+  Top Level Mode Multiplexer pin controller in Qualcomm APQ8064 SoC.
+
+allOf:
+  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
+
+properties:
+  compatible:
+    const: qcom,apq8064-pinctrl
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  gpio-reserved-ranges: true
+
+patternProperties:
+  "-state$":
+    oneOf:
+      - $ref: "#/$defs/qcom-apq8064-tlmm-state"
+      - patternProperties:
+          "-pins$":
+            $ref: "#/$defs/qcom-apq8064-tlmm-state"
+        additionalProperties: false
+
+$defs:
+  qcom-apq8064-tlmm-state:
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
+
+    properties:
+      pins:
+        description:
+          List of gpio pins affected by the properties specified in this
+          subnode.
+        items:
+          oneOf:
+            - pattern: "^gpio([0-9]|[1-8][0-9])$"
+            - enum: [ sdc1_clk, sdc1_cmd, sdc1_data, sdc3_clk, sdc3_cmd, sdc3_data ]
+        minItems: 1
+        maxItems: 36
+
+      function:
+        description:
+          Specify the alternative function to be configured for the specified
+          pins.
+        enum: [ cam_mclk, codec_mic_i2s, codec_spkr_i2s, gp_clk_0a,
+                gp_clk_0b, gp_clk_1a, gp_clk_1b, gp_clk_2a, gp_clk_2b,
+                gpio, gsbi1, gsbi2, gsbi3, gsbi4, gsbi4_cam_i2c,
+                gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3,
+                gsbi6, gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3,
+                gsbi7, gsbi7_spi_cs1, gsbi7_spi_cs2, gsbi7_spi_cs3,
+                gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm, riva_wlan,
+                sdc2, sdc4, slimbus, spkr_i2s, tsif1, tsif2, usb2_hsic,
+                ps_hold ]
+
+    required:
+      - pins
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    tlmm: pinctrl@800000 {
+        compatible = "qcom,apq8064-pinctrl";
+        reg = <0x800000 0x4000>;
+
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&tlmm 0 0 90>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+
+        uart-state {
+            rx-pins {
+                pins = "gpio52";
+                function = "gsbi5";
+                bias-pull-up;
+            };
+
+            tx-pins {
+                pins = "gpio51";
+                function = "gsbi5";
+                bias-disable;
+            };
+        };
+    };
diff --git a/Bindings/pinctrl/qcom,apq8084-pinctrl.txt b/Bindings/pinctrl/qcom,apq8084-pinctrl.txt
deleted file mode 100644 (file)
index c978239..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-Qualcomm APQ8084 TLMM block
-
-This binding describes the Top Level Mode Multiplexer block found in the
-MSM8960 platform.
-
-- compatible:
-       Usage: required
-       Value type: <string>
-       Definition: must be "qcom,apq8084-pinctrl"
-
-- reg:
-       Usage: required
-       Value type: <prop-encoded-array>
-       Definition: the base address and size of the TLMM register space.
-
-- interrupts:
-       Usage: required
-       Value type: <prop-encoded-array>
-       Definition: should specify the TLMM summary IRQ.
-
-- interrupt-controller:
-       Usage: required
-       Value type: <none>
-       Definition: identifies this node as an interrupt controller
-
-- #interrupt-cells:
-       Usage: required
-       Value type: <u32>
-       Definition: must be 2. Specifying the pin number and flags, as defined
-                   in <dt-bindings/interrupt-controller/irq.h>
-
-- gpio-controller:
-       Usage: required
-       Value type: <none>
-       Definition: identifies this node as a gpio controller
-
-- #gpio-cells:
-       Usage: required
-       Value type: <u32>
-       Definition: must be 2. Specifying the pin number and flags, as defined
-                   in <dt-bindings/gpio/gpio.h>
-
-- gpio-ranges:
-       Usage: required
-       Definition:  see ../gpio/gpio.txt
-
-- gpio-reserved-ranges:
-       Usage: optional
-       Definition: see ../gpio/gpio.txt
-
-Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
-a general description of GPIO and interrupt bindings.
-
-Please refer to pinctrl-bindings.txt in this directory for details of the
-common pinctrl bindings used by client devices, including the meaning of the
-phrase "pin configuration node".
-
-The pin configuration nodes act as a container for an arbitrary number of
-subnodes. Each of these subnodes represents some desired configuration for a
-pin, a group, or a list of pins or groups. This configuration can include the
-mux function to select on those pin(s)/group(s), and various pin configuration
-parameters, such as pull-up, drive strength, etc.
-
-
-PIN CONFIGURATION NODES:
-
-The name of each subnode is not important; all subnodes should be enumerated
-and processed purely based on their content.
-
-Each subnode only affects those parameters that are explicitly listed. In
-other words, a subnode that lists a mux function but no pin configuration
-parameters implies no information about any pin configuration parameters.
-Similarly, a pin subnode that describes a pullup parameter implies no
-information about e.g. the mux function.
-
-
-The following generic properties as defined in pinctrl-bindings.txt are valid
-to specify in a pin configuration subnode:
-
-- pins:
-       Usage: required
-       Value type: <string-array>
-       Definition: List of gpio pins affected by the properties specified in
-                   this subnode.  Valid pins are:
-                   gpio0-gpio146,
-                   sdc1_clk,
-                   sdc1_cmd,
-                   sdc1_data
-                   sdc2_clk,
-                   sdc2_cmd,
-                   sdc2_data
-
-- function:
-       Usage: required
-       Value type: <string>
-       Definition: Specify the alternative function to be configured for the
-                   specified pins. Functions are only valid for gpio pins.
-                   Valid values are:
-                   adsp_ext, audio_ref, blsp_i2c1, blsp_i2c2, blsp_i2c3,
-                   blsp_i2c4, blsp_i2c5, blsp_i2c6, blsp_i2c7, blsp_i2c8,
-                   blsp_i2c9, blsp_i2c10, blsp_i2c11, blsp_i2c12,
-                   blsp_spi1, blsp_spi2, blsp_spi3, blsp_spi4, blsp_spi5,
-                   blsp_spi6, blsp_spi7, blsp_spi8, blsp_spi9, blsp_spi10,
-                   blsp_spi11, blsp_spi12, blsp_uart1, blsp_uart2, blsp_uart3,
-                   blsp_uart4, blsp_uart5, blsp_uart6, blsp_uart7, blsp_uart8,
-                   blsp_uart9, blsp_uart10, blsp_uart11, blsp_uart12,
-                   blsp_uim1, blsp_uim2, blsp_uim3, blsp_uim4, blsp_uim5,
-                   blsp_uim6, blsp_uim7, blsp_uim8, blsp_uim9, blsp_uim10,
-                   blsp_uim11, blsp_uim12, cam_mclk0, cam_mclk1, cam_mclk2,
-                   cam_mclk3, cci_async, cci_async_in0, cci_i2c0, cci_i2c1,
-                   cci_timer0, cci_timer1, cci_timer2, cci_timer3, cci_timer4,
-                   edp_hpd, gcc_gp1, gcc_gp2, gcc_gp3, gcc_obt, gcc_vtt,i
-                   gp_mn, gp_pdm0, gp_pdm1, gp_pdm2, gp0_clk, gp1_clk, gpio,
-                   hdmi_cec, hdmi_ddc, hdmi_dtest, hdmi_hpd, hdmi_rcv, hsic,
-                   ldo_en, ldo_update, mdp_vsync, pci_e0, pci_e0_n, pci_e0_rst,
-                   pci_e1, pci_e1_rst, pci_e1_rst_n, pci_e1_clkreq_n, pri_mi2s,
-                   qua_mi2s, sata_act, sata_devsleep, sata_devsleep_n,
-                   sd_write, sdc_emmc_mode, sdc3, sdc4, sec_mi2s, slimbus,
-                   spdif_tx, spkr_i2s, spkr_i2s_ws, spss_geni, ter_mi2s, tsif1,
-                   tsif2, uim, uim_batt_alarm
-
-- bias-disable:
-       Usage: optional
-       Value type: <none>
-       Definition: The specified pins should be configured as no pull.
-
-- bias-pull-down:
-       Usage: optional
-       Value type: <none>
-       Definition: The specified pins should be configured as pull down.
-
-- bias-pull-up:
-       Usage: optional
-       Value type: <none>
-       Definition: The specified pins should be configured as pull up.
-
-- output-high:
-       Usage: optional
-       Value type: <none>
-       Definition: The specified pins are configured in output mode, driven
-                   high.
-                   Not valid for sdc pins.
-
-- output-low:
-       Usage: optional
-       Value type: <none>
-       Definition: The specified pins are configured in output mode, driven
-                   low.
-                   Not valid for sdc pins.
-
-- drive-strength:
-       Usage: optional
-       Value type: <u32>
-       Definition: Selects the drive strength for the specified pins, in mA.
-                   Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16
-
-Example:
-
-       tlmm: pinctrl@fd510000 {
-               compatible = "qcom,apq8084-pinctrl";
-               reg = <0xfd510000 0x4000>;
-
-               gpio-controller;
-               #gpio-cells = <2>;
-               gpio-ranges = <&tlmm 0 0 147>;
-               interrupt-controller;
-               #interrupt-cells = <2>;
-               interrupts = <0 208 0>;
-
-               uart2: uart2-default {
-                       mux {
-                               pins = "gpio4", "gpio5";
-                               function = "blsp_uart2";
-                       };
-
-                       tx {
-                               pins = "gpio4";
-                               drive-strength = <4>;
-                               bias-disable;
-                       };
-
-                       rx {
-                               pins = "gpio5";
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
-               };
-       };
diff --git a/Bindings/pinctrl/qcom,apq8084-pinctrl.yaml b/Bindings/pinctrl/qcom,apq8084-pinctrl.yaml
new file mode 100644 (file)
index 0000000..38877d8
--- /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/pinctrl/qcom,apq8084-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. APQ8084 TLMM block
+
+maintainers:
+  - Bjorn Andersson <bjorn.andersson@linaro.org>
+
+description: |
+  Top Level Mode Multiplexer pin controller in Qualcomm APQ8084 SoC.
+
+allOf:
+  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
+
+properties:
+  compatible:
+    const: qcom,apq8084-pinctrl
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  gpio-reserved-ranges: true
+
+patternProperties:
+  "-state$":
+    oneOf:
+      - $ref: "#/$defs/qcom-apq8084-tlmm-state"
+      - patternProperties:
+          "-pins$":
+            $ref: "#/$defs/qcom-apq8084-tlmm-state"
+        additionalProperties: false
+
+$defs:
+  qcom-apq8084-tlmm-state:
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
+
+    properties:
+      pins:
+        description:
+          List of gpio pins affected by the properties specified in this
+          subnode.
+        items:
+          oneOf:
+            - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-3][0-9]|14[0-6])$"
+            - enum: [ sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk, sdc2_cmd,
+                      sdc2_data ]
+        minItems: 1
+        maxItems: 36
+
+      function:
+        description:
+          Specify the alternative function to be configured for the specified
+          pins.
+        enum: [ adsp_ext, audio_ref, blsp_i2c1, blsp_i2c2, blsp_i2c3,
+                blsp_i2c4, blsp_i2c5, blsp_i2c6, blsp_i2c7, blsp_i2c8,
+                blsp_i2c9, blsp_i2c10, blsp_i2c11, blsp_i2c12,
+                blsp_spi1, blsp_spi1_cs1, blsp_spi1_cs2, blsp_spi1_cs3,
+                blsp_spi2, blsp_spi3, blsp_spi3_cs1, blsp_spi3_cs2,
+                blsp_spi3_cs3, blsp_spi4, blsp_spi5, blsp_spi6,
+                blsp_spi7, blsp_spi8, blsp_spi9, blsp_spi10,
+                blsp_spi10_cs1, blsp_spi10_cs2, blsp_spi10_cs3,
+                blsp_spi11, blsp_spi12, blsp_uart1, blsp_uart2,
+                blsp_uart3, blsp_uart4, blsp_uart5, blsp_uart6,
+                blsp_uart7, blsp_uart8, blsp_uart9, blsp_uart10,
+                blsp_uart11, blsp_uart12, blsp_uim1, blsp_uim2,
+                blsp_uim3, blsp_uim4, blsp_uim5, blsp_uim6, blsp_uim7,
+                blsp_uim8, blsp_uim9, blsp_uim10, blsp_uim11,
+                blsp_uim12, cam_mclk0, cam_mclk1, cam_mclk2, cam_mclk3,
+                cci_async, cci_async_in0, cci_i2c0, cci_i2c1,
+                cci_timer0, cci_timer1, cci_timer2, cci_timer3,
+                cci_timer4, edp_hpd, gcc_gp1, gcc_gp2, gcc_gp3,
+                gcc_obt, gcc_vtt, gp_mn, gp_pdm0, gp_pdm1, gp_pdm2,
+                gp0_clk, gp1_clk, gpio, hdmi_cec, hdmi_ddc, hdmi_dtest,
+                hdmi_hpd, hdmi_rcv, hsic, ldo_en, ldo_update,
+                mdp_vsync, pci_e0, pci_e0_n, pci_e0_rst, pci_e1,
+                pci_e1_rst, pci_e1_rst_n, pci_e1_clkreq_n, pri_mi2s,
+                qua_mi2s, sata_act, sata_devsleep, sata_devsleep_n,
+                sd_write, sdc_emmc_mode, sdc3, sdc4, sec_mi2s, slimbus,
+                spdif_tx, spkr_i2s, spkr_i2s_ws, spss_geni, ter_mi2s,
+                tsif1, tsif2, uim, uim_batt_alarm ]
+
+    required:
+      - pins
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    tlmm: pinctrl@fd510000 {
+        compatible = "qcom,apq8084-pinctrl";
+        reg = <0xfd510000 0x4000>;
+
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&tlmm 0 0 147>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+
+        uart-state {
+            rx-pins {
+                pins = "gpio5";
+                function = "blsp_uart2";
+                bias-pull-up;
+            };
+
+            tx-pins {
+                pins = "gpio4";
+                function = "blsp_uart2";
+                bias-disable;
+            };
+        };
+    };
diff --git a/Bindings/pinctrl/qcom,ipq4019-pinctrl.txt b/Bindings/pinctrl/qcom,ipq4019-pinctrl.txt
deleted file mode 100644 (file)
index 97858a7..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-Qualcomm Atheros IPQ4019 TLMM block
-
-This is the Top Level Mode Multiplexor block found on the Qualcomm IPQ8019
-platform, it provides pinctrl, pinmux, pinconf, and gpiolib facilities.
-
-Required properties:
-- compatible: "qcom,ipq4019-pinctrl"
-- reg: Should be the base address and length of the TLMM block.
-- interrupts: Should be the parent IRQ of the TLMM block.
-- interrupt-controller: Marks the device node as an interrupt controller.
-- #interrupt-cells: Should be two.
-- gpio-controller: Marks the device node as a GPIO controller.
-- #gpio-cells : Should be two.
-                The first cell is the gpio pin number and the
-                second cell is used for optional parameters.
-- gpio-ranges: see ../gpio/gpio.txt
-
-Optional properties:
-
-- gpio-reserved-ranges: see ../gpio/gpio.txt
-
-Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
-a general description of GPIO and interrupt bindings.
-
-Please refer to pinctrl-bindings.txt in this directory for details of the
-common pinctrl bindings used by client devices, including the meaning of the
-phrase "pin configuration node".
-
-The pin configuration nodes act as a container for an arbitrary number of
-subnodes. Each of these subnodes represents some desired configuration for a
-pin, a group, or a list of pins or groups. This configuration can include the
-mux function to select on those pin(s)/group(s), and various pin configuration
-parameters, such as pull-up, drive strength, etc.
-
-The name of each subnode is not important; all subnodes should be enumerated
-and processed purely based on their content.
-
-Each subnode only affects those parameters that are explicitly listed. In
-other words, a subnode that lists a mux function but no pin configuration
-parameters implies no information about any pin configuration parameters.
-Similarly, a pin subnode that describes a pullup parameter implies no
-information about e.g. the mux function.
-
-
-The following generic properties as defined in pinctrl-bindings.txt are valid
-to specify in a pin configuration subnode:
- pins, function, bias-disable, bias-pull-down, bias-pull-up, drive-open-drain,
- drive-strength.
-
-Non-empty subnodes must specify the 'pins' property.
-Note that not all properties are valid for all pins.
-
-
-Valid values for qcom,pins are:
-  gpio0-gpio99
-    Supports mux, bias and drive-strength
-
-Valid values for qcom,function are:
-aud_pin, audio_pwm, blsp_i2c0, blsp_i2c1, blsp_spi0, blsp_spi1, blsp_uart0,
-blsp_uart1, chip_rst, gpio, i2s_rx, i2s_spdif_in, i2s_spdif_out, i2s_td, i2s_tx,
-jtag, led0, led1, led2, led3, led4, led5, led6, led7, led8, led9, led10, led11,
-mdc, mdio, pcie, pmu, prng_rosc, qpic, rgmii, rmii, sdio, smart0, smart1,
-smart2, smart3, tm, wifi0, wifi1
-
-Example:
-
-       tlmm: pinctrl@1000000 {
-               compatible = "qcom,ipq4019-pinctrl";
-               reg = <0x1000000 0x300000>;
-
-               gpio-controller;
-               #gpio-cells = <2>;
-               gpio-ranges = <&tlmm 0 0 100>;
-               interrupt-controller;
-               #interrupt-cells = <2>;
-               interrupts = <0 208 0>;
-
-               serial_pins: serial_pinmux {
-                       mux {
-                               pins = "gpio60", "gpio61";
-                               function = "blsp_uart0";
-                               bias-disable;
-                       };
-               };
-       };
diff --git a/Bindings/pinctrl/qcom,ipq4019-pinctrl.yaml b/Bindings/pinctrl/qcom,ipq4019-pinctrl.yaml
new file mode 100644 (file)
index 0000000..cc5de9f
--- /dev/null
@@ -0,0 +1,103 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/qcom,ipq4019-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. IPQ4019 TLMM block
+
+maintainers:
+  - Bjorn Andersson <bjorn.andersson@linaro.org>
+
+description: |
+  Top Level Mode Multiplexer pin controller in Qualcomm IPQ4019 SoC.
+
+allOf:
+  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
+
+properties:
+  compatible:
+    const: qcom,ipq4019-pinctrl
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  gpio-reserved-ranges: true
+
+patternProperties:
+  "-state$":
+    oneOf:
+      - $ref: "#/$defs/qcom-ipq4019-tlmm-state"
+      - patternProperties:
+          "-pins$":
+            $ref: "#/$defs/qcom-ipq4019-tlmm-state"
+        additionalProperties: false
+
+  "-hog(-[0-9]+)?$":
+    type: object
+    required:
+      - gpio-hog
+
+$defs:
+  qcom-ipq4019-tlmm-state:
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
+
+    properties:
+      pins:
+        description:
+          List of gpio pins affected by the properties specified in this
+          subnode.
+        items:
+          pattern: "^gpio([0-9]|[1-9][0-9])$"
+        minItems: 1
+        maxItems: 36
+
+      function:
+        description:
+          Specify the alternative function to be configured for the specified
+          pins.
+        enum: [ aud_pin, audio_pwm, blsp_i2c0, blsp_i2c1, blsp_spi0,
+                blsp_spi1, blsp_uart0, blsp_uart1, chip_rst, gpio,
+                i2s_rx, i2s_spdif_in, i2s_spdif_out, i2s_td, i2s_tx,
+                jtag, led0, led1, led2, led3, led4, led5, led6, led7,
+                led8, led9, led10, led11, mdc, mdio, pcie, pmu,
+                prng_rosc, qpic, rgmii, rmii, sdio, smart0, smart1,
+                smart2, smart3, tm, wifi0, wifi1 ]
+
+    required:
+      - pins
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    tlmm: pinctrl@1000000 {
+        compatible = "qcom,ipq4019-pinctrl";
+        reg = <0x01000000 0x300000>;
+
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&tlmm 0 0 100>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+
+        uart-state {
+            pins = "gpio16", "gpio17";
+            function = "blsp_uart0";
+            bias-disable;
+        };
+    };
diff --git a/Bindings/pinctrl/qcom,ipq8064-pinctrl.txt b/Bindings/pinctrl/qcom,ipq8064-pinctrl.txt
deleted file mode 100644 (file)
index a7aaaa7..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-Qualcomm IPQ8064 TLMM block
-
-Required properties:
-- compatible: "qcom,ipq8064-pinctrl"
-- reg: Should be the base address and length of the TLMM block.
-- interrupts: Should be the parent IRQ of the TLMM block.
-- interrupt-controller: Marks the device node as an interrupt controller.
-- #interrupt-cells: Should be two.
-- gpio-controller: Marks the device node as a GPIO controller.
-- #gpio-cells : Should be two.
-                The first cell is the gpio pin number and the
-                second cell is used for optional parameters.
-- gpio-ranges: see ../gpio/gpio.txt
-
-Optional properties:
-
-- gpio-reserved-ranges: see ../gpio/gpio.txt
-
-Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
-a general description of GPIO and interrupt bindings.
-
-Please refer to pinctrl-bindings.txt in this directory for details of the
-common pinctrl bindings used by client devices, including the meaning of the
-phrase "pin configuration node".
-
-Qualcomm's pin configuration nodes act as a container for an arbitrary number of
-subnodes. Each of these subnodes represents some desired configuration for a
-pin, a group, or a list of pins or groups. This configuration can include the
-mux function to select on those pin(s)/group(s), and various pin configuration
-parameters, such as pull-up, drive strength, etc.
-
-The name of each subnode is not important; all subnodes should be enumerated
-and processed purely based on their content.
-
-Each subnode only affects those parameters that are explicitly listed. In
-other words, a subnode that lists a mux function but no pin configuration
-parameters implies no information about any pin configuration parameters.
-Similarly, a pin subnode that describes a pullup parameter implies no
-information about e.g. the mux function.
-
-
-The following generic properties as defined in pinctrl-bindings.txt are valid
-to specify in a pin configuration subnode:
-
- pins, function, bias-disable, bias-pull-down, bias-pull-up, drive-strength,
- output-low, output-high.
-
-Non-empty subnodes must specify the 'pins' property.
-
-Valid values for qcom,pins are:
-  gpio0-gpio68
-   Supports mux, bias, and drive-strength
-
-  sdc3_clk, sdc3_cmd, sdc3_data
-   Supports bias and drive-strength
-
-
-Valid values for function are:
-  mdio, mi2s, pdm, ssbi, spmi, audio_pcm, gpio, gsbi1, gsbi2, gsbi4, gsbi5,
-  gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, gsbi7, nss_spi, sdc1,
-  spdif, nand, tsif1, tsif2, usb_fs_n, usb_fs, usb2_hsic, rgmii2, sata,
-  pcie1_rst, pcie1_prsnt, pcie1_pwren_n, pcie1_pwren, pcie1_pwrflt,
-  pcie1_clk_req, pcie2_rst, pcie2_prsnt, pcie2_pwren_n, pcie2_pwren,
-  pcie2_pwrflt, pcie2_clk_req, pcie3_rst, pcie3_prsnt, pcie3_pwren_n,
-  pcie3_pwren, pcie3_pwrflt, pcie3_clk_req, ps_hold
-
-Example:
-
-       pinmux: pinctrl@800000 {
-               compatible = "qcom,ipq8064-pinctrl";
-               reg = <0x800000 0x4000>;
-
-               gpio-controller;
-               #gpio-cells = <2>;
-               gpio-ranges = <&pinmux 0 0 69>;
-               interrupt-controller;
-               #interrupt-cells = <2>;
-               interrupts = <0 32 0x4>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&gsbi5_uart_default>;
-
-               gsbi5_uart_default: gsbi5_uart_default {
-                       mux {
-                               pins = "gpio18", "gpio19";
-                               function = "gsbi5";
-                       };
-
-                       tx {
-                               pins = "gpio18";
-                               drive-strength = <4>;
-                               bias-disable;
-                       };
-
-                       rx {
-                               pins = "gpio19";
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
-               };
-       };
diff --git a/Bindings/pinctrl/qcom,ipq8064-pinctrl.yaml b/Bindings/pinctrl/qcom,ipq8064-pinctrl.yaml
new file mode 100644 (file)
index 0000000..58f11e1
--- /dev/null
@@ -0,0 +1,108 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/qcom,ipq8064-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. IPQ8064 TLMM block
+
+maintainers:
+  - Bjorn Andersson <bjorn.andersson@linaro.org>
+
+description: |
+  Top Level Mode Multiplexer pin controller in Qualcomm IPQ8064 SoC.
+
+allOf:
+  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
+
+properties:
+  compatible:
+    const: qcom,ipq8064-pinctrl
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  gpio-reserved-ranges: true
+
+patternProperties:
+  "-state$":
+    oneOf:
+      - $ref: "#/$defs/qcom-ipq8064-tlmm-state"
+      - patternProperties:
+          "-pins$":
+            $ref: "#/$defs/qcom-ipq8064-tlmm-state"
+        additionalProperties: false
+
+$defs:
+  qcom-ipq8064-tlmm-state:
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
+
+    properties:
+      pins:
+        description:
+          List of gpio pins affected by the properties specified in this
+          subnode.
+        items:
+          oneOf:
+            - pattern: "^gpio([0-9]|[1-5][0-9]|6[0-8])$"
+            - enum: [ sdc3_clk, sdc3_cmd, sdc3_data ]
+        minItems: 1
+        maxItems: 36
+
+      function:
+        description:
+          Specify the alternative function to be configured for the specified
+          pins.
+        enum: [ mdio, mi2s, pdm, ssbi, spmi, audio_pcm, gpio, gsbi1, gsbi2, gsbi4, gsbi5,
+                gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, gsbi7, nss_spi, sdc1,
+                spdif, nand, tsif1, tsif2, usb_fs_n, usb_fs, usb2_hsic, rgmii2, sata,
+                pcie1_rst, pcie1_prsnt, pcie1_pwren_n, pcie1_pwren, pcie1_pwrflt,
+                pcie1_clk_req, pcie2_rst, pcie2_prsnt, pcie2_pwren_n, pcie2_pwren,
+                pcie2_pwrflt, pcie2_clk_req, pcie3_rst, pcie3_prsnt, pcie3_pwren_n,
+                pcie3_pwren, pcie3_pwrflt, pcie3_clk_req, ps_hold ]
+
+    required:
+      - pins
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    tlmm: pinctrl@800000 {
+        compatible = "qcom,ipq8064-pinctrl";
+        reg = <0x00800000 0x4000>;
+
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&tlmm 0 0 69>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+
+        uart-state {
+            rx-pins {
+                pins = "gpio19";
+                function = "gsbi5";
+                bias-pull-up;
+            };
+
+            tx-pins {
+                pins = "gpio18";
+                function = "gsbi5";
+                bias-disable;
+            };
+        };
+    };
index 2784d32fdde23711dbb4c835b1ee9980290fc6f1..c1b799167d81b0b4e1edff6a6fce557fa88fd1ea 100644 (file)
@@ -425,6 +425,7 @@ patternProperties:
         additionalProperties: false
 
   "-hog(-[0-9]+)?$":
+    type: object
     required:
       - gpio-hog
 
index dfe5616b9b858f8031a902f41c74a63c44e93174..0f331844608c694b3c64288d3a9228c301061e95 100644 (file)
@@ -43,6 +43,7 @@ patternProperties:
         additionalProperties: false
 
   "-hog(-[0-9]+)?$":
+    type: object
     required:
       - gpio-hog
 
index 5d84364d13589c5e557de161be19872a815d0059..cfe004573366127c33f8ace288520eae45e818e6 100644 (file)
@@ -25,6 +25,7 @@ properties:
       - renesas,pfc-r8a7745     # RZ/G1E
       - renesas,pfc-r8a77470    # RZ/G1C
       - renesas,pfc-r8a774a1    # RZ/G2M
+      - renesas,pfc-r8a774a3    # RZ/G2M v3.0
       - renesas,pfc-r8a774b1    # RZ/G2N
       - renesas,pfc-r8a774c0    # RZ/G2E
       - renesas,pfc-r8a774e1    # RZ/G2H
index 20e806dce1ecb83d7ca047b3cd2c6388af463eb2..6a23d845f1f2c5d2d4aeeb59fba06bed1ccfbc3b 100644 (file)
@@ -45,6 +45,7 @@ properties:
       - rockchip,rk3368-pinctrl
       - rockchip,rk3399-pinctrl
       - rockchip,rk3568-pinctrl
+      - rockchip,rk3576-pinctrl
       - rockchip,rk3588-pinctrl
       - rockchip,rv1108-pinctrl
       - rockchip,rv1126-pinctrl
diff --git a/Bindings/pinctrl/sophgo,cv1800-pinctrl.yaml b/Bindings/pinctrl/sophgo,cv1800-pinctrl.yaml
new file mode 100644 (file)
index 0000000..1e6a55a
--- /dev/null
@@ -0,0 +1,122 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/sophgo,cv1800-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sophgo CV1800 Pin Controller
+
+maintainers:
+  - Inochi Amaoto <inochiama@outlook.com>
+
+properties:
+  compatible:
+    enum:
+      - sophgo,cv1800b-pinctrl
+      - sophgo,cv1812h-pinctrl
+      - sophgo,sg2000-pinctrl
+      - sophgo,sg2002-pinctrl
+
+  reg:
+    items:
+      - description: pinctrl for system domain
+      - description: pinctrl for rtc domain
+
+  reg-names:
+    items:
+      - const: sys
+      - const: rtc
+
+  resets:
+    maxItems: 1
+
+patternProperties:
+  '-cfg$':
+    type: object
+    description:
+      A pinctrl node should contain at least one subnode representing the
+      pinctrl groups available on the machine.
+
+    additionalProperties: false
+
+    patternProperties:
+      '-pins$':
+        type: object
+        description: |
+          Each subnode will list the pins it needs, and how they should
+          be configured, with regard to muxer configuration, bias, input
+          enable/disable, input schmitt trigger, slew-rate, drive strength
+          and bus hold state. In addition, all pins in the same subnode
+          should have the same power domain. For configuration detail,
+          refer to https://github.com/sophgo/sophgo-doc/.
+
+        allOf:
+          - $ref: pincfg-node.yaml#
+          - $ref: pinmux-node.yaml#
+
+        properties:
+          pinmux:
+            description: |
+              The list of GPIOs and their mux settings that properties in the
+              node apply to. This should be set using the GPIOMUX or GPIOMUX2
+              macro.
+
+          bias-pull-up:
+            type: boolean
+
+          bias-pull-down:
+            type: boolean
+
+          drive-strength-microamp:
+            description: typical current when output high level.
+
+          input-schmitt-microvolt:
+            description: typical threshold for schmitt trigger.
+
+          power-source:
+            description: power supplies at X mV.
+            enum: [ 1800, 3300 ]
+
+          slew-rate:
+            description: slew rate for output buffer (0 is fast, 1 is slow)
+            enum: [ 0, 1 ]
+
+          bias-bus-hold: true
+
+        required:
+          - pinmux
+          - power-source
+
+        additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - reg-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/pinctrl/pinctrl-cv1800b.h>
+
+    pinctrl@3001000 {
+        compatible = "sophgo,cv1800b-pinctrl";
+        reg = <0x03001000 0x1000>,
+              <0x05027000 0x1000>;
+        reg-names = "sys", "rtc";
+
+        uart0_cfg: uart0-cfg {
+            uart0-pins {
+                pinmux = <PINMUX(PIN_UART0_TX, 0)>,
+                         <PINMUX(PIN_UART0_RX, 0)>;
+                bias-pull-up;
+                drive-strength-microamp = <10800>;
+                input-schmitt-microvolt = <0>;
+                power-source = <3300>;
+                slew-rate = <0>;
+            };
+        };
+    };
+
+...
index e1eb45a9eda44f45d3bc6885e3210fab46865db6..a28d77748095acc454d7f4f91021e828990c152e 100644 (file)
@@ -11,7 +11,7 @@ maintainers:
   - Alexandre TORGUE <alexandre.torgue@foss.st.com>
 
 description: |
-  STMicroelectronics's STM32 MCUs intregrate a GPIO and Pin mux/config hardware
+  STMicroelectronics's STM32 MCUs integrate a GPIO and Pin mux/config hardware
   controller. It controls the input/output settings on the available pins and
   also provides ability to multiplex and configure the output of various
   on-chip controllers onto these pads.
@@ -164,7 +164,7 @@ patternProperties:
               This macro is available here:
                 - include/dt-bindings/pinctrl/stm32-pinfunc.h
               Some examples of using macro:
-               /* GPIO A9 set as alernate function 2 */
+               /* GPIO A9 set as alternate function 2 */
                ... {
                           pinmux = <STM32_PINMUX('A', 9, AF2)>;
                };
diff --git a/Bindings/platform/microsoft,surface-sam.yaml b/Bindings/platform/microsoft,surface-sam.yaml
new file mode 100644 (file)
index 0000000..b33d26f
--- /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/platform/microsoft,surface-sam.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Surface System Aggregator Module (SAM, SSAM)
+
+maintainers:
+  - Konrad Dybcio <konradybcio@kernel.org>
+
+description: |
+  Surface devices use a standardized embedded controller to let the
+  operating system interface with various hardware functions. The
+  specific functionalities are modeled as subdevices and matched on
+  five levels: domain, category, target, instance and function.
+
+properties:
+  compatible:
+    const: microsoft,surface-sam
+
+  interrupts:
+    maxItems: 1
+
+  current-speed: true
+
+required:
+  - compatible
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    uart {
+        embedded-controller {
+            compatible = "microsoft,surface-sam";
+
+            interrupts-extended = <&tlmm 91 IRQ_TYPE_EDGE_RISING>;
+
+            pinctrl-0 = <&ssam_state>;
+            pinctrl-names = "default";
+
+            current-speed = <4000000>;
+        };
+    };
index e76fb273490ff5885e0ea492db8ddb331a00abd5..347571e2545a8e4a7298c34b5d7d820595f4ab48 100644 (file)
@@ -25,6 +25,7 @@ properties:
       - renesas,r8a7745-sysc  # RZ/G1E
       - renesas,r8a77470-sysc # RZ/G1C
       - renesas,r8a774a1-sysc # RZ/G2M
+      - renesas,r8a774a3-sysc # RZ/G2M v3.0
       - renesas,r8a774b1-sysc # RZ/G2N
       - renesas,r8a774c0-sysc # RZ/G2E
       - renesas,r8a774e1-sysc # RZ/G2H
index 0d5e999a58f1b0c58d01f191d310b219e5441cb5..650dc0aae6f518578f57e8ec4335bc8251b736a7 100644 (file)
@@ -41,6 +41,7 @@ properties:
       - rockchip,rk3368-power-controller
       - rockchip,rk3399-power-controller
       - rockchip,rk3568-power-controller
+      - rockchip,rk3576-power-controller
       - rockchip,rk3588-power-controller
       - rockchip,rv1126-power-controller
 
index d71fc72d446444947f06c3aea228e7e329b6b7f2..c434277218eadc5904b7cd25101ddc2f9043fe70 100644 (file)
@@ -50,6 +50,7 @@ properties:
       - rockchip,rk3188-io-voltage-domain
       - rockchip,rk3228-io-voltage-domain
       - rockchip,rk3288-io-voltage-domain
+      - rockchip,rk3308-io-voltage-domain
       - rockchip,rk3328-io-voltage-domain
       - rockchip,rk3368-io-voltage-domain
       - rockchip,rk3368-pmu-io-voltage-domain
@@ -71,6 +72,7 @@ allOf:
   - $ref: "#/$defs/rk3188"
   - $ref: "#/$defs/rk3228"
   - $ref: "#/$defs/rk3288"
+  - $ref: "#/$defs/rk3308"
   - $ref: "#/$defs/rk3328"
   - $ref: "#/$defs/rk3368"
   - $ref: "#/$defs/rk3368-pmu"
@@ -194,6 +196,28 @@ $defs:
         wifi-supply:
           description: The supply connected to APIO3_VDD. Also known as SDIO0.
 
+  rk3308:
+    if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3308-io-voltage-domain
+
+    then:
+      properties:
+        vccio0-supply:
+          description: The supply connected to VCCIO0.
+        vccio1-supply:
+          description: The supply connected to VCCIO1.
+        vccio2-supply:
+          description: The supply connected to VCCIO2.
+        vccio3-supply:
+          description: The supply connected to VCCIO3.
+        vccio4-supply:
+          description: The supply connected to VCCIO4.
+        vccio5-supply:
+          description: The supply connected to VCCIO5.
+
   rk3328:
     if:
       properties:
index de43e45a43b7c3bcdd1baca7ab588b9605292259..9108a2841caf669bbf8afb80c5c173e024624b53 100644 (file)
@@ -27,6 +27,9 @@ properties:
   battery-detect-gpios:
     maxItems: 1
 
+  interrupts:
+    maxItems: 1
+
   io-channels:
     items:
       - description: Battery Temperature ADC
@@ -53,6 +56,7 @@ required:
   - compatible
   - reg
   - battery-detect-gpios
+  - interrupts
   - io-channels
   - io-channel-names
   - nvmem-cells
@@ -88,6 +92,8 @@ examples:
         compatible = "sprd,sc2731-fgu";
         reg = <0xa00>;
         battery-detect-gpios = <&pmic_eic 9 GPIO_ACTIVE_HIGH>;
+        interrupt-parent = <&sc2731_pmic>;
+        interrupts = <4>;
         io-channels = <&pmic_adc 5>, <&pmic_adc 14>;
         io-channel-names = "bat-temp", "charge-vol";
         nvmem-cells = <&fgu_calib>;
index e0b95ecbbebd4674db6ec03513bf32001f3e55f7..5ccd375eb2941b224b86b19f7087111aac1dee33 100644 (file)
@@ -23,11 +23,18 @@ properties:
       - const: x-powers,axp202-battery-power-supply
       - const: x-powers,axp209-battery-power-supply
       - const: x-powers,axp221-battery-power-supply
+      - const: x-powers,axp717-battery-power-supply
       - items:
           - const: x-powers,axp803-battery-power-supply
           - const: x-powers,axp813-battery-power-supply
       - const: x-powers,axp813-battery-power-supply
 
+  monitored-battery:
+    description:
+      Specifies the phandle of an optional simple-battery connected to
+      this gauge.
+    $ref: /schemas/types.yaml#/definitions/phandle
+
 required:
   - compatible
 
index 34b7959d6772f0efadb93d8b86217f9020ee5a54..2ec036405ae470fb0ae33132738d78fedd10ef94 100644 (file)
@@ -15,9 +15,6 @@ maintainers:
   - Chen-Yu Tsai <wens@csie.org>
   - Sebastian Reichel <sre@kernel.org>
 
-allOf:
-  - $ref: power-supply.yaml#
-
 properties:
   compatible:
     oneOf:
@@ -26,13 +23,82 @@ properties:
           - x-powers,axp202-usb-power-supply
           - x-powers,axp221-usb-power-supply
           - x-powers,axp223-usb-power-supply
+          - x-powers,axp717-usb-power-supply
           - x-powers,axp813-usb-power-supply
       - items:
           - const: x-powers,axp803-usb-power-supply
           - const: x-powers,axp813-usb-power-supply
 
+  input-current-limit-microamp:
+    description:
+      Optional value to clamp the maximum input current limit to for
+      the device. If omitted, the programmed value from the EFUSE will
+      be used.
+    minimum: 100000
+    maximum: 4000000
 
 required:
   - compatible
 
+allOf:
+  - $ref: power-supply.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - x-powers,axp192-usb-power-supply
+    then:
+      properties:
+        input-current-limit-microamp:
+          enum: [100000, 500000]
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - x-powers,axp202-usb-power-supply
+              - x-powers,axp223-usb-power-supply
+    then:
+      properties:
+        input-current-limit-microamp:
+          enum: [100000, 500000, 900000]
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - x-powers,axp221-usb-power-supply
+    then:
+      properties:
+        input-current-limit-microamp:
+          enum: [500000, 900000]
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - x-powers,axp717-usb-power-supply
+    then:
+      properties:
+        input-current-limit-microamp:
+          description: Maximum input current in increments of 50000 uA.
+          minimum: 100000
+          maximum: 3250000
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - x-powers,axp813-usb-power-supply
+    then:
+      properties:
+        input-current-limit-microamp:
+          enum: [100000, 500000, 900000, 1500000, 2000000, 2500000,
+                 3000000, 3500000, 4000000]
+
 additionalProperties: false
index a6c8978964aa163250f070aa1ead247792fffa50..27f1797be96375c4aa6969b0c3d09679fed8388d 100644 (file)
@@ -25,8 +25,8 @@ List of legacy properties and respective binding document
 2. "has-tpo"                   Documentation/devicetree/bindings/rtc/rtc-opal.txt
 3. "linux,wakeup"              Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
                                Documentation/devicetree/bindings/mfd/tc3589x.txt
-                               Documentation/devicetree/bindings/input/touchscreen/ads7846.txt
-4. "linux,keypad-wakeup"       Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt
+                               Documentation/devicetree/bindings/input/touchscreen/ti,ads7843.yaml
+4. "linux,keypad-wakeup"       Documentation/devicetree/bindings/input/qcom,pm8921-keypad.yaml
 5. "linux,input-wakeup"                Documentation/devicetree/bindings/input/samsung,s3c6410-keypad.yaml
 6. "nvidia,wakeup-source"      Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt
 
index 3bb8615e3e919f4036755d960e728190e9f9b99a..42ca895f3c4eb6a6875b0247f895c725dd9fdb94 100644 (file)
@@ -11,11 +11,14 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - fsl,etsec-ptp
-      - fsl,fman-ptp-timer
-      - fsl,dpaa2-ptp
-      - fsl,enetc-ptp
+    oneOf:
+      - enum:
+          - fsl,etsec-ptp
+          - fsl,fman-ptp-timer
+          - fsl,dpaa2-ptp
+      - items:
+          - const: pci1957,ee02
+          - const: fsl,enetc-ptp
 
   reg:
     maxItems: 1
@@ -123,6 +126,15 @@ required:
   - compatible
   - reg
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: fsl,enetc-ptp
+    then:
+      $ref: /schemas/pci/pci-device.yaml
+
 additionalProperties: false
 
 examples:
index 66e400f2a3a4f03a02426285f3e1c17f59e19be1..1b192e197b114fd228a5f14c7ef0d285cc67e68d 100644 (file)
@@ -46,10 +46,11 @@ properties:
       - description: Module Clock
       - description: Bus Clock
 
-  # Even though it only applies to subschemas under the conditionals,
-  # not listing them here will trigger a warning because of the
-  # additionalsProperties set to false.
-  clock-names: true
+  clock-names:
+    minItems: 1
+    items:
+      - const: mod
+      - const: bus
 
   resets:
     maxItems: 1
diff --git a/Bindings/pwm/cirrus,ep9301-pwm.yaml b/Bindings/pwm/cirrus,ep9301-pwm.yaml
new file mode 100644 (file)
index 0000000..903210e
--- /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/pwm/cirrus,ep9301-pwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic ep93xx PWM controller
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: pwm.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9301-pwm
+      - items:
+          - enum:
+              - cirrus,ep9302-pwm
+              - cirrus,ep9307-pwm
+              - cirrus,ep9312-pwm
+              - cirrus,ep9315-pwm
+          - const: cirrus,ep9301-pwm
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: SoC PWM clock
+
+  "#pwm-cells":
+    const: 3
+
+required:
+  - compatible
+  - reg
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
+    pwm@80910000 {
+        compatible = "cirrus,ep9301-pwm";
+        reg = <0x80910000 0x10>;
+        clocks = <&syscon EP93XX_CLK_PWM>;
+        #pwm-cells = <3>;
+    };
index 1d71d4f8f3287860d482787e121d3d325142edb8..e021cf59421a6ea417af4a43fedad89bdd23e686 100644 (file)
@@ -37,6 +37,10 @@ properties:
       - enum:
           - amlogic,meson8-pwm-v2
           - amlogic,meson-s4-pwm
+      - items:
+          - enum:
+              - amlogic,meson-a1-pwm
+          - const: amlogic,meson-s4-pwm
       - items:
           - enum:
               - amlogic,meson8b-pwm-v2
@@ -56,6 +60,9 @@ properties:
     minItems: 1
     maxItems: 2
 
+  power-domains:
+    maxItems: 1
+
   "#pwm-cells":
     const: 3
 
@@ -136,6 +143,16 @@ allOf:
       required:
         - clocks
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - amlogic,meson-a1-pwm
+    then:
+      required:
+        - power-domains
+
 additionalProperties: false
 
 examples:
index 6b6a302a175ceb1040ac9fe8b60365776c26fb8f..2fe1992e29088c9af0c6f09fe13af3d5095fc7a0 100644 (file)
@@ -37,6 +37,7 @@ properties:
           - renesas,pwm-r8a77995  # R-Car D3
           - renesas,pwm-r8a779a0  # R-Car V3U
           - renesas,pwm-r8a779g0  # R-Car V4H
+          - renesas,pwm-r8a779h0  # R-Car V4M
       - const: renesas,pwm-rcar
 
   reg:
index a3e52b22dd180422a986def3d41b45c9944c7d0d..a4dfa09344dd72a21bf6ce04e0415c6e0de2953d 100644 (file)
@@ -41,6 +41,7 @@ properties:
           - renesas,tpu-r8a77980  # R-Car V3H
           - renesas,tpu-r8a779a0  # R-Car V3U
           - renesas,tpu-r8a779g0  # R-Car V4H
+          - renesas,tpu-r8a779h0  # R-Car V4M
       - const: renesas,tpu
 
   reg:
diff --git a/Bindings/regulator/mediatek,mt6397-regulator.yaml b/Bindings/regulator/mediatek,mt6397-regulator.yaml
new file mode 100644 (file)
index 0000000..50db678
--- /dev/null
@@ -0,0 +1,238 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/mediatek,mt6397-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek MT6397 Regulator
+
+maintainers:
+  - Sen Chu <sen.chu@mediatek.com>
+  - Macpaul Lin <macpaul.lin@mediatek.com>
+
+description:
+  Regulator node of the PMIC. This node should under the PMIC's device node.
+  All voltage regulators provided by the PMIC are described as sub-nodes of
+  this node.
+
+properties:
+  compatible:
+    items:
+      - const: mediatek,mt6397-regulator
+
+patternProperties:
+  "^(buck_)?v(core|drm|gpu|io18|pca(7|15)|sramca(7|15))$":
+    description: Buck regulators
+    type: object
+    $ref: regulator.yaml#
+    properties:
+      regulator-allowed-modes:
+        description: |
+          BUCK regulators can set regulator-initial-mode and regulator-allowed-modes to
+          values specified in dt-bindings/regulator/mediatek,mt6397-regulator.h
+        items:
+          enum: [0, 1]
+    unevaluatedProperties: false
+
+  "^(ldo_)?v(tcxo|(a|io)28)$":
+    description: LDOs with fixed 2.8V output and 0~100/10mV tuning
+    type: object
+    $ref: regulator.yaml#
+    properties:
+      regulator-allowed-modes: false
+    unevaluatedProperties: false
+
+  "^(ldo_)?vusb$":
+    description: LDOs with fixed 3.0V output and 0~100/10mV tuning
+    type: object
+    $ref: regulator.yaml#
+    properties:
+      regulator-allowed-modes: false
+    unevaluatedProperties: false
+
+  "^(ldo_)?v(cama|emc3v3|gp[123456]|ibr|mc|mch)$":
+    description: LDOs with variable output and 0~100/10mV tuning
+    type: object
+    $ref: regulator.yaml#
+    properties:
+      regulator-allowed-modes: false
+    unevaluatedProperties: false
+
+required:
+  - compatible
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    mt6397_regulators: regulators {
+        compatible = "mediatek,mt6397-regulator";
+
+        mt6397_vpca15_reg: buck_vpca15 {
+            regulator-name = "vpca15";
+            regulator-min-microvolt = < 850000>;
+            regulator-max-microvolt = <1350000>;
+            regulator-ramp-delay = <12500>;
+            regulator-enable-ramp-delay = <200>;
+        };
+
+        mt6397_vpca7_reg: buck_vpca7 {
+            regulator-name = "vpca7";
+            regulator-min-microvolt = < 850000>;
+            regulator-max-microvolt = <1350000>;
+            regulator-ramp-delay = <12500>;
+            regulator-enable-ramp-delay = <115>;
+        };
+
+        mt6397_vsramca15_reg: buck_vsramca15 {
+            regulator-name = "vsramca15";
+            regulator-min-microvolt = < 850000>;
+            regulator-max-microvolt = <1350000>;
+            regulator-ramp-delay = <12500>;
+            regulator-enable-ramp-delay = <115>;
+        };
+
+        mt6397_vsramca7_reg: buck_vsramca7 {
+            regulator-name = "vsramca7";
+            regulator-min-microvolt = < 850000>;
+            regulator-max-microvolt = <1350000>;
+            regulator-ramp-delay = <12500>;
+            regulator-enable-ramp-delay = <115>;
+        };
+
+        mt6397_vcore_reg: buck_vcore {
+            regulator-name = "vcore";
+            regulator-min-microvolt = < 850000>;
+            regulator-max-microvolt = <1350000>;
+            regulator-ramp-delay = <12500>;
+            regulator-enable-ramp-delay = <115>;
+        };
+
+        mt6397_vgpu_reg: buck_vgpu {
+            regulator-name = "vgpu";
+            regulator-min-microvolt = < 700000>;
+            regulator-max-microvolt = <1350000>;
+            regulator-ramp-delay = <12500>;
+            regulator-enable-ramp-delay = <115>;
+        };
+
+        mt6397_vdrm_reg: buck_vdrm {
+            regulator-name = "vdrm";
+            regulator-min-microvolt = < 800000>;
+            regulator-max-microvolt = <1400000>;
+            regulator-ramp-delay = <12500>;
+            regulator-enable-ramp-delay = <500>;
+        };
+
+        mt6397_vio18_reg: buck_vio18 {
+            regulator-name = "vio18";
+            regulator-min-microvolt = <1500000>;
+            regulator-max-microvolt = <2120000>;
+            regulator-ramp-delay = <12500>;
+            regulator-enable-ramp-delay = <500>;
+        };
+
+        mt6397_vtcxo_reg: ldo_vtcxo {
+            regulator-name = "vtcxo";
+            regulator-min-microvolt = <2800000>;
+            regulator-max-microvolt = <2800000>;
+            regulator-enable-ramp-delay = <90>;
+        };
+
+        mt6397_va28_reg: ldo_va28 {
+            regulator-name = "va28";
+            /* fixed output 2.8 V */
+            regulator-enable-ramp-delay = <218>;
+        };
+
+        mt6397_vcama_reg: ldo_vcama {
+            regulator-name = "vcama";
+            regulator-min-microvolt = <1500000>;
+            regulator-max-microvolt = <2800000>;
+            regulator-enable-ramp-delay = <218>;
+        };
+
+        mt6397_vio28_reg: ldo_vio28 {
+            regulator-name = "vio28";
+            /* fixed output 2.8 V */
+            regulator-enable-ramp-delay = <240>;
+        };
+
+        mt6397_usb_reg: ldo_vusb {
+            regulator-name = "vusb";
+            /* fixed output 3.3 V */
+            regulator-enable-ramp-delay = <218>;
+        };
+
+        mt6397_vmc_reg: ldo_vmc {
+            regulator-name = "vmc";
+            regulator-min-microvolt = <1800000>;
+            regulator-max-microvolt = <3300000>;
+            regulator-enable-ramp-delay = <218>;
+        };
+
+        mt6397_vmch_reg: ldo_vmch {
+            regulator-name = "vmch";
+            regulator-min-microvolt = <3000000>;
+            regulator-max-microvolt = <3300000>;
+            regulator-enable-ramp-delay = <218>;
+        };
+
+        mt6397_vemc_3v3_reg: ldo_vemc3v3 {
+            regulator-name = "vemc_3v3";
+            regulator-min-microvolt = <3000000>;
+            regulator-max-microvolt = <3300000>;
+            regulator-enable-ramp-delay = <218>;
+        };
+
+        mt6397_vgp1_reg: ldo_vgp1 {
+            regulator-name = "vcamd";
+            regulator-min-microvolt = <1220000>;
+            regulator-max-microvolt = <3300000>;
+            regulator-enable-ramp-delay = <240>;
+        };
+
+        mt6397_vgp2_reg: ldo_vgp2 {
+            regulator-name = "vcamio";
+            regulator-min-microvolt = <1000000>;
+            regulator-max-microvolt = <3300000>;
+            regulator-enable-ramp-delay = <218>;
+        };
+
+        mt6397_vgp3_reg: ldo_vgp3 {
+            regulator-name = "vcamaf";
+            regulator-min-microvolt = <1200000>;
+            regulator-max-microvolt = <3300000>;
+            regulator-enable-ramp-delay = <218>;
+        };
+
+        mt6397_vgp4_reg: ldo_vgp4 {
+            regulator-name = "vgp4";
+            regulator-min-microvolt = <1200000>;
+            regulator-max-microvolt = <3300000>;
+            regulator-enable-ramp-delay = <218>;
+        };
+
+        mt6397_vgp5_reg: ldo_vgp5 {
+            regulator-name = "vgp5";
+            regulator-min-microvolt = <1200000>;
+            regulator-max-microvolt = <3000000>;
+            regulator-enable-ramp-delay = <218>;
+        };
+
+        mt6397_vgp6_reg: ldo_vgp6 {
+            regulator-name = "vgp6";
+            regulator-min-microvolt = <1200000>;
+            regulator-max-microvolt = <3300000>;
+            regulator-enable-ramp-delay = <218>;
+        };
+
+        mt6397_vibr_reg: ldo_vibr {
+            regulator-name = "vibr";
+            regulator-min-microvolt = <1200000>;
+            regulator-max-microvolt = <3300000>;
+            regulator-enable-ramp-delay = <218>;
+        };
+    };
index 1aca3646789efffc309f5b5fdc0581c8192bf6c8..c3e1fc6e260e5d40bf2bcb1b8c9f6a70a3085adf 100644 (file)
@@ -28,6 +28,21 @@ properties:
   reg:
     maxItems: 1
 
+  lvin-supply:
+    description: Input supply phandle for LDO1 and LDO2
+
+  pvin1-supply:
+    description: Input supply phandle for VDD_IO (BUCK1)
+
+  pvin2-supply:
+    description: Input supply phandle for VDD_DDR (BUCK2)
+
+  pvin3-supply:
+    description: Input supply phandle for VDD_CORE (BUCK3)
+
+  pvin4-supply:
+    description: Input supply phandle for VDD_OTHER (BUCK4)
+
   regulators:
     type: object
     additionalProperties: false
@@ -68,6 +83,11 @@ examples:
         pmic@5b {
             compatible = "microchip,mcp16502";
             reg = <0x5b>;
+            lvin-supply = <&reg_5v>;
+            pvin1-supply = <&reg_5v>;
+            pvin2-supply = <&reg_5v>;
+            pvin3-supply = <&reg_5v>;
+            pvin4-supply = <&reg_5v>;
 
             regulators {
                 VDD_IO {
diff --git a/Bindings/regulator/mt6397-regulator.txt b/Bindings/regulator/mt6397-regulator.txt
deleted file mode 100644 (file)
index c080086..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-Mediatek MT6397 Regulator
-
-Required properties:
-- compatible: "mediatek,mt6397-regulator"
-- mt6397regulator: 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_vpca15, buck_vpca7, buck_vsramca15, buck_vsramca7, buck_vcore, buck_vgpu,
-  buck_vdrm, buck_vio18
-LDO:
-  ldo_vtcxo, ldo_va28, ldo_vcama, ldo_vio28, ldo_vusb, ldo_vmc, ldo_vmch,
-  ldo_vemc3v3, ldo_vgp1, ldo_vgp2, ldo_vgp3, ldo_vgp4, ldo_vgp5, ldo_vgp6,
-  ldo_vibr
-
-BUCK regulators can set regulator-initial-mode and regulator-allowed-modes to
-values specified in dt-bindings/regulator/mediatek,mt6397-regulator.h
-
-Example:
-       pmic {
-               compatible = "mediatek,mt6397";
-
-               mt6397regulator: mt6397regulator {
-                       compatible = "mediatek,mt6397-regulator";
-
-                       mt6397_vpca15_reg: buck_vpca15 {
-                               regulator-compatible = "buck_vpca15";
-                               regulator-name = "vpca15";
-                               regulator-min-microvolt = < 850000>;
-                               regulator-max-microvolt = <1350000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-enable-ramp-delay = <200>;
-                       };
-
-                       mt6397_vpca7_reg: buck_vpca7 {
-                               regulator-compatible = "buck_vpca7";
-                               regulator-name = "vpca7";
-                               regulator-min-microvolt = < 850000>;
-                               regulator-max-microvolt = <1350000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-enable-ramp-delay = <115>;
-                       };
-
-                       mt6397_vsramca15_reg: buck_vsramca15 {
-                               regulator-compatible = "buck_vsramca15";
-                               regulator-name = "vsramca15";
-                               regulator-min-microvolt = < 850000>;
-                               regulator-max-microvolt = <1350000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-enable-ramp-delay = <115>;
-
-                       };
-
-                       mt6397_vsramca7_reg: buck_vsramca7 {
-                               regulator-compatible = "buck_vsramca7";
-                               regulator-name = "vsramca7";
-                               regulator-min-microvolt = < 850000>;
-                               regulator-max-microvolt = <1350000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-enable-ramp-delay = <115>;
-
-                       };
-
-                       mt6397_vcore_reg: buck_vcore {
-                               regulator-compatible = "buck_vcore";
-                               regulator-name = "vcore";
-                               regulator-min-microvolt = < 850000>;
-                               regulator-max-microvolt = <1350000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-enable-ramp-delay = <115>;
-                       };
-
-                       mt6397_vgpu_reg: buck_vgpu {
-                               regulator-compatible = "buck_vgpu";
-                               regulator-name = "vgpu";
-                               regulator-min-microvolt = < 700000>;
-                               regulator-max-microvolt = <1350000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-enable-ramp-delay = <115>;
-                       };
-
-                       mt6397_vdrm_reg: buck_vdrm {
-                               regulator-compatible = "buck_vdrm";
-                               regulator-name = "vdrm";
-                               regulator-min-microvolt = < 800000>;
-                               regulator-max-microvolt = <1400000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-enable-ramp-delay = <500>;
-                       };
-
-                       mt6397_vio18_reg: buck_vio18 {
-                               regulator-compatible = "buck_vio18";
-                               regulator-name = "vio18";
-                               regulator-min-microvolt = <1500000>;
-                               regulator-max-microvolt = <2120000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-enable-ramp-delay = <500>;
-                       };
-
-                       mt6397_vtcxo_reg: ldo_vtcxo {
-                               regulator-compatible = "ldo_vtcxo";
-                               regulator-name = "vtcxo";
-                               regulator-min-microvolt = <2800000>;
-                               regulator-max-microvolt = <2800000>;
-                               regulator-enable-ramp-delay = <90>;
-                       };
-
-                       mt6397_va28_reg: ldo_va28 {
-                               regulator-compatible = "ldo_va28";
-                               regulator-name = "va28";
-                               /* fixed output 2.8 V */
-                               regulator-enable-ramp-delay = <218>;
-                       };
-
-                       mt6397_vcama_reg: ldo_vcama {
-                               regulator-compatible = "ldo_vcama";
-                               regulator-name = "vcama";
-                               regulator-min-microvolt = <1500000>;
-                               regulator-max-microvolt = <2800000>;
-                               regulator-enable-ramp-delay = <218>;
-                       };
-
-                       mt6397_vio28_reg: ldo_vio28 {
-                               regulator-compatible = "ldo_vio28";
-                               regulator-name = "vio28";
-                               /* fixed output 2.8 V */
-                               regulator-enable-ramp-delay = <240>;
-                       };
-
-                       mt6397_usb_reg: ldo_vusb {
-                               regulator-compatible = "ldo_vusb";
-                               regulator-name = "vusb";
-                               /* fixed output 3.3 V */
-                               regulator-enable-ramp-delay = <218>;
-                       };
-
-                       mt6397_vmc_reg: ldo_vmc {
-                               regulator-compatible = "ldo_vmc";
-                               regulator-name = "vmc";
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-enable-ramp-delay = <218>;
-                       };
-
-                       mt6397_vmch_reg: ldo_vmch {
-                               regulator-compatible = "ldo_vmch";
-                               regulator-name = "vmch";
-                               regulator-min-microvolt = <3000000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-enable-ramp-delay = <218>;
-                       };
-
-                       mt6397_vemc_3v3_reg: ldo_vemc3v3 {
-                               regulator-compatible = "ldo_vemc3v3";
-                               regulator-name = "vemc_3v3";
-                               regulator-min-microvolt = <3000000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-enable-ramp-delay = <218>;
-                       };
-
-                       mt6397_vgp1_reg: ldo_vgp1 {
-                               regulator-compatible = "ldo_vgp1";
-                               regulator-name = "vcamd";
-                               regulator-min-microvolt = <1220000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-enable-ramp-delay = <240>;
-                       };
-
-                       mt6397_vgp2_reg: ldo_vgp2 {
-                               egulator-compatible = "ldo_vgp2";
-                               regulator-name = "vcamio";
-                               regulator-min-microvolt = <1000000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-enable-ramp-delay = <218>;
-                       };
-
-                       mt6397_vgp3_reg: ldo_vgp3 {
-                               regulator-compatible = "ldo_vgp3";
-                               regulator-name = "vcamaf";
-                               regulator-min-microvolt = <1200000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-enable-ramp-delay = <218>;
-                       };
-
-                       mt6397_vgp4_reg: ldo_vgp4 {
-                               regulator-compatible = "ldo_vgp4";
-                               regulator-name = "vgp4";
-                               regulator-min-microvolt = <1200000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-enable-ramp-delay = <218>;
-                       };
-
-                       mt6397_vgp5_reg: ldo_vgp5 {
-                               regulator-compatible = "ldo_vgp5";
-                               regulator-name = "vgp5";
-                               regulator-min-microvolt = <1200000>;
-                               regulator-max-microvolt = <3000000>;
-                               regulator-enable-ramp-delay = <218>;
-                       };
-
-                       mt6397_vgp6_reg: ldo_vgp6 {
-                               regulator-compatible = "ldo_vgp6";
-                               regulator-name = "vgp6";
-                               regulator-min-microvolt = <1200000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-enable-ramp-delay = <218>;
-                       };
-
-                       mt6397_vibr_reg: ldo_vibr {
-                               regulator-compatible = "ldo_vibr";
-                               regulator-name = "vibr";
-                               regulator-min-microvolt = <1200000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-enable-ramp-delay = <218>;
-                       };
-               };
-       };
index 3aaa9653419a423c481c320449e017b8419019b2..11ed04c9554299d1f6059d331b3d2ab20c7f8b2f 100644 (file)
@@ -18,6 +18,7 @@ properties:
   compatible:
     enum:
       - qcom,qca6390-pmu
+      - qcom,wcn6855-pmu
       - qcom,wcn7850-pmu
 
   vdd-supply:
@@ -65,7 +66,11 @@ properties:
 
   bt-enable-gpios:
     maxItems: 1
-    description: GPIO line enabling the ATH11K Bluetooth module supplied by the PMU
+    description: GPIO line enabling the Bluetooth module supplied by the PMU
+
+  swctrl-gpios:
+    maxItems: 1
+    description: GPIO line indicating the state of the clock supply to the BT module
 
   clocks:
     maxItems: 1
@@ -104,6 +109,21 @@ allOf:
         - vddpcie1p3-supply
         - vddpcie1p9-supply
         - vddio-supply
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: qcom,wcn6855-pmu
+    then:
+      required:
+        - vddio-supply
+        - vddaon-supply
+        - vddpmu-supply
+        - vddrfa0p95-supply
+        - vddrfa1p3-supply
+        - vddrfa1p9-supply
+        - vddpcie1p3-supply
+        - vddpcie1p9-supply
   - if:
       properties:
         compatible:
index c5dc3c2820d71c8f91cbc485e0d6033b26267d71..adc6b3f36fde49eb3fa7ed3f08b0fa9e7f331162 100644 (file)
@@ -93,7 +93,7 @@ patternProperties:
       Each SCP core has own cache memory. The SRAM and L1TCM are shared by
       cores. The power of cache, SRAM and L1TCM power should be enabled
       before booting SCP cores. The size of cache, SRAM, and L1TCM are varied
-      on differnt SoCs.
+      on different SoCs.
 
       The SCP cores do not use an MMU, but has a set of registers to
       control the translations between 32-bit CPU addresses into system bus
index 3766d4513b379010141c1d81f1f4b4df39e13b63..c54234247ab3bb2fdc85fce2a57dc97d52f6efea 100644 (file)
@@ -90,7 +90,7 @@ examples:
         qcom,rpm-msg-ram = <&rpm_msg_ram>;
 
         rpm-requests {
-            compatible = "qcom,rpm-msm8996";
+            compatible = "qcom,rpm-msm8996", "qcom,glink-smd-rpm";
             qcom,glink-channels = "rpm_requests";
 
             /* ... */
index 61cf4fe19ca53ebe33397ccbdcf29b936476eef0..540bdfca53d97d9c18fefeb50fa68fe704b2008c 100644 (file)
@@ -142,7 +142,7 @@ examples:
         qcom,smd-edge = <15>;
 
         rpm-requests {
-          compatible = "qcom,rpm-msm8916";
+          compatible = "qcom,rpm-msm8916", "qcom,smd-rpm";
           qcom,smd-channels = "rpm_requests";
           /* ... */
         };
@@ -163,7 +163,7 @@ examples:
         mboxes = <&apcs_glb 0>;
 
         rpm-requests {
-          compatible = "qcom,rpm-qcm2290";
+          compatible = "qcom,rpm-qcm2290", "qcom,glink-smd-rpm";
           qcom,glink-channels = "rpm_requests";
           /* ... */
         };
index 73fda7565cd12fdc649baa1d406170096c4df7dd..d7fad7b3c2c687db319cd62cd1c0aa970bbe23d0 100644 (file)
@@ -16,6 +16,7 @@ description:
 properties:
   compatible:
     enum:
+      - qcom,sdx75-mpss-pas
       - qcom,sm8550-adsp-pas
       - qcom,sm8550-cdsp-pas
       - qcom,sm8550-mpss-pas
@@ -113,6 +114,7 @@ allOf:
       properties:
         compatible:
           enum:
+            - qcom,sdx75-mpss-pas
             - qcom,sm8650-mpss-pas
     then:
       properties:
@@ -146,6 +148,7 @@ allOf:
       properties:
         compatible:
           enum:
+            - qcom,sdx75-mpss-pas
             - qcom,sm8550-mpss-pas
             - qcom,sm8650-mpss-pas
     then:
diff --git a/Bindings/remoteproc/ti,k3-m4f-rproc.yaml b/Bindings/remoteproc/ti,k3-m4f-rproc.yaml
new file mode 100644 (file)
index 0000000..2bd0752
--- /dev/null
@@ -0,0 +1,125 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/ti,k3-m4f-rproc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI K3 M4F processor subsystems
+
+maintainers:
+  - Hari Nagalla <hnagalla@ti.com>
+  - Mathieu Poirier <mathieu.poirier@linaro.org>
+
+description: |
+  Some K3 family SoCs have Arm Cortex M4F cores. AM64x is a SoC in K3
+  family with a M4F core. Typically safety oriented applications may use
+  the M4F core in isolation without an IPC. Where as some industrial and
+  home automation applications, may use the M4F core as a remote processor
+  with IPC communications.
+
+$ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - ti,am64-m4fss
+
+  power-domains:
+    maxItems: 1
+
+  "#address-cells":
+    const: 2
+
+  "#size-cells":
+    const: 2
+
+  reg:
+    items:
+      - description: IRAM internal memory region
+      - description: DRAM internal memory region
+
+  reg-names:
+    items:
+      - const: iram
+      - const: dram
+
+  resets:
+    maxItems: 1
+
+  firmware-name:
+    maxItems: 1
+    description: Name of firmware to load for the M4F core
+
+  mboxes:
+    description:
+      OMAP Mailbox specifier denoting the sub-mailbox, to be used for
+      communication with the remote processor. This property should match
+      with the sub-mailbox node used in the firmware image.
+    maxItems: 1
+
+  memory-region:
+    description:
+      phandle to the reserved memory nodes to be associated with the
+      remoteproc device. Optional memory regions available for firmware
+      specific purposes.
+      (see reserved-memory/reserved-memory.yaml in dtschema project)
+    maxItems: 8
+    items:
+      - description: regions used for DMA allocations like vrings, vring buffers
+                     and memory dedicated to firmware's specific purposes.
+    additionalItems: true
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - ti,sci
+  - ti,sci-dev-id
+  - ti,sci-proc-ids
+  - resets
+  - firmware-name
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    reserved-memory {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        mcu_m4fss_dma_memory_region: m4f-dma-memory@9cb00000 {
+            compatible = "shared-dma-pool";
+            reg = <0x00 0x9cb00000 0x00 0x100000>;
+            no-map;
+        };
+
+        mcu_m4fss_memory_region: m4f-memory@9cc00000 {
+            compatible = "shared-dma-pool";
+            reg = <0x00 0x9cc00000 0x00 0xe00000>;
+            no-map;
+        };
+    };
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        mailbox0_cluster0: mailbox-0 {
+            #mbox-cells = <1>;
+        };
+
+        remoteproc@5000000 {
+            compatible = "ti,am64-m4fss";
+            reg = <0x00 0x5000000 0x00 0x30000>,
+                  <0x00 0x5040000 0x00 0x10000>;
+            reg-names = "iram", "dram";
+            resets = <&k3_reset 9 1>;
+            firmware-name = "am62-mcu-m4f0_0-fw";
+            mboxes = <&mailbox0_cluster0>, <&mbox_m4_0>;
+            memory-region = <&mcu_m4fss_dma_memory_region>,
+                            <&mcu_m4fss_memory_region>;
+            ti,sci = <&dmsc>;
+            ti,sci-dev-id = <9>;
+            ti,sci-proc-ids = <0x18 0xff>;
+         };
+    };
index 6f13da11f59396260afde848d58659074977aaae..ee63c03949c93fee606b3c47ace6a6b35331f858 100644 (file)
@@ -62,6 +62,7 @@ properties:
 patternProperties:
   "^r(.*)@[0-9a-f]+$":
     type: object
+    additionalProperties: false
     description: |
       The RPU is located in the Low Power Domain of the Processor Subsystem.
       Each processor includes separate L1 instruction and data caches and
index f0c6c0df0ce3f36bc8a07bb29b13956c81158f12..695ef38a7bb346c92b4cf428e7615d45682c940a 100644 (file)
@@ -19,6 +19,7 @@ properties:
       - amlogic,meson-a1-reset # Reset Controller on A1 and compatible SoCs
       - amlogic,meson-s4-reset # Reset Controller on S4 and compatible SoCs
       - amlogic,c3-reset # Reset Controller on C3 and compatible SoCs
+      - amlogic,t7-reset
 
   reg:
     maxItems: 1
diff --git a/Bindings/reset/mobileye,eyeq5-reset.yaml b/Bindings/reset/mobileye,eyeq5-reset.yaml
deleted file mode 100644 (file)
index 062b451..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/reset/mobileye,eyeq5-reset.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Mobileye EyeQ5 reset controller
-
-description:
-  The EyeQ5 reset driver handles three reset domains. Its registers live in a
-  shared region called OLB.
-
-maintainers:
-  - Grégory Clement <gregory.clement@bootlin.com>
-  - Théo Lebrun <theo.lebrun@bootlin.com>
-  - Vladimir Kondratiev <vladimir.kondratiev@mobileye.com>
-
-properties:
-  compatible:
-    const: mobileye,eyeq5-reset
-
-  reg:
-    maxItems: 3
-
-  reg-names:
-    items:
-      - const: d0
-      - const: d1
-      - const: d2
-
-  "#reset-cells":
-    const: 2
-    description:
-      The first cell is the domain (0 to 2 inclusive) and the second one is the
-      reset index inside that domain.
-
-required:
-  - compatible
-  - reg
-  - reg-names
-  - "#reset-cells"
-
-additionalProperties: false
index 58b4a45d338006ff923d1a01d1a77245ebde194f..7a81491379b05b5f03a4be1c426ed7980eaceb92 100644 (file)
@@ -29,6 +29,7 @@ properties:
       - renesas,r8a7745-rst       # RZ/G1E
       - renesas,r8a77470-rst      # RZ/G1C
       - renesas,r8a774a1-rst      # RZ/G2M
+      - renesas,r8a774a3-rst      # RZ/G2M v3.0
       - renesas,r8a774b1-rst      # RZ/G2N
       - renesas,r8a774c0-rst      # RZ/G2E
       - renesas,r8a774e1-rst      # RZ/G2H
index fa253c518d799f53758d7815fb6afe8377078732..babc563ae61ef06f6d119bc4eb6a15b0b62b7e87 100644 (file)
@@ -38,13 +38,17 @@ properties:
     minItems: 1
     maxItems: 2
 
-  clock-names: true
+  clock-names:
+    minItems: 1
+    maxItems: 2
 
   resets:
     minItems: 1
     maxItems: 2
 
-  reset-names: true
+  reset-names:
+    minItems: 1
+    maxItems: 2
 
 allOf:
   - if:
index a06dbc6b4928958704855c8993291b036e3d1a63..2cf2026cff574d39793157418a4d4211df87315f 100644 (file)
@@ -171,6 +171,13 @@ properties:
             memory types as ratified in the 20191213 version of the privileged
             ISA specification.
 
+        - const: svvptc
+          description:
+            The standard Svvptc supervisor-level extension for
+            address-translation cache behaviour with respect to invalid entries
+            as ratified at commit 4a69197e5617 ("Update to ratified state") of
+            riscv-svvptc.
+
         - const: zacas
           description: |
             The Zacas extension for Atomic Compare-and-Swap (CAS) instructions
index 9bc813dad0987a20e6fbb2bd941f2f756cb1e39c..a14cb10ff3f0745acad72e904bbbc660210095c7 100644 (file)
@@ -26,6 +26,11 @@ properties:
           - enum:
               - sophgo,huashan-pi
           - const: sophgo,cv1812h
+      - items:
+          - enum:
+              - sipeed,licheerv-nano-b
+          - const: sipeed,licheerv-nano
+          - const: sophgo,sg2002
       - items:
           - enum:
               - milkv,pioneer
diff --git a/Bindings/rng/rockchip,rk3568-rng.yaml b/Bindings/rng/rockchip,rk3568-rng.yaml
new file mode 100644 (file)
index 0000000..e059581
--- /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/rng/rockchip,rk3568-rng.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip RK3568 TRNG
+
+description: True Random Number Generator on Rockchip RK3568 SoC
+
+maintainers:
+  - Aurelien Jarno <aurelien@aurel32.net>
+  - Daniel Golle <daniel@makrotopia.org>
+
+properties:
+  compatible:
+    enum:
+      - rockchip,rk3568-rng
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: TRNG clock
+      - description: TRNG AHB clock
+
+  clock-names:
+    items:
+      - const: core
+      - const: ahb
+
+  resets:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - resets
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/rk3568-cru.h>
+    bus {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      rng@fe388000 {
+        compatible = "rockchip,rk3568-rng";
+        reg = <0x0 0xfe388000 0x0 0x4000>;
+        clocks = <&cru CLK_TRNG_NS>, <&cru HCLK_TRNG_NS>;
+        clock-names = "core", "ahb";
+        resets = <&cru SRST_TRNG_NS>;
+      };
+    };
+
+...
index 388102ae30cd83f84518a627c11578e0adfdfa95..3ec111f2fdc40f194dc665f9c78511a8967d061b 100644 (file)
@@ -42,7 +42,7 @@ properties:
         minItems: 1
     description:
       phandle to rcpm node, Please refer
-      Documentation/devicetree/bindings/soc/fsl/rcpm.txt
+      Documentation/devicetree/bindings/soc/fsl/fsl,rcpm.yaml
 
   big-endian:
     $ref: /schemas/types.yaml#/definitions/flag
index 5ade5dfad048abe978bf0dbb68290f8f2f2eaa03..cda8ad7c120375e2768acba4bc052aefd80fbc9d 100644 (file)
@@ -22,6 +22,9 @@ properties:
   interrupts:
     maxItems: 1
 
+  "#clock-cells":
+    const: 0
+
   trickle-resistor-ohms:
     enum:
       - 3000
diff --git a/Bindings/rtc/sprd,sc2731-rtc.yaml b/Bindings/rtc/sprd,sc2731-rtc.yaml
new file mode 100644 (file)
index 0000000..f3d20e9
--- /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/rtc/sprd,sc2731-rtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Spreadtrum SC2731 Real Time Clock
+
+maintainers:
+  - Orson Zhai <orsonzhai@gmail.com>
+  - Baolin Wang <baolin.wang7@gmail.com>
+  - Chunyan Zhang <zhang.lyra@gmail.com>
+
+properties:
+  compatible:
+    const: sprd,sc2731-rtc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+allOf:
+  - $ref: rtc.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    pmic {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      rtc@280 {
+        compatible = "sprd,sc2731-rtc";
+        reg = <0x280>;
+        interrupt-parent = <&sc2731_pmic>;
+        interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
+      };
+    };
+...
diff --git a/Bindings/rtc/sprd,sc27xx-rtc.txt b/Bindings/rtc/sprd,sc27xx-rtc.txt
deleted file mode 100644 (file)
index 1f57542..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-Spreadtrum SC27xx Real Time Clock
-
-Required properties:
-- compatible: should be "sprd,sc2731-rtc".
-- reg: address offset of rtc register.
-- interrupts: rtc alarm interrupt.
-
-Example:
-
-       sc2731_pmic: pmic@0 {
-               compatible = "sprd,sc2731";
-               reg = <0>;
-               spi-max-frequency = <26000000>;
-               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-controller;
-               #interrupt-cells = <2>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               rtc@280 {
-                       compatible = "sprd,sc2731-rtc";
-                       reg = <0x280>;
-                       interrupt-parent = <&sc2731_pmic>;
-                       interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
-               };
-       };
index 7a0fab721cf1da958b161769c0e93e0b1f16b86d..aae06e570c22147cdad0ddc54d498d7c992d6d93 100644 (file)
@@ -53,6 +53,28 @@ properties:
       override default rtc_ck parent clock phandle of the new parent clock of rtc_ck
     maxItems: 1
 
+patternProperties:
+  "^rtc-[a-z]+-[0-9]+$":
+    type: object
+    $ref: /schemas/pinctrl/pinmux-node.yaml
+    description: |
+      Configuration of STM32 RTC pins description. STM32 RTC is able to output
+      some signals on specific pins:
+      - LSCO (Low Speed Clock Output) that allow to output LSE clock on a pin.
+      - Alarm out that allow to send a pulse on a pin when alarm A of the RTC
+        expires.
+    additionalProperties: false
+    properties:
+      function:
+        enum:
+          - lsco
+          - alarm-a
+      pins:
+        enum:
+          - out1
+          - out2
+          - out2_rmp
+
 allOf:
   - if:
       properties:
@@ -68,6 +90,9 @@ allOf:
 
         clock-names: false
 
+      patternProperties:
+        "^rtc-[a-z]+-[0-9]+$": false
+
       required:
         - st,syscfg
 
@@ -83,6 +108,9 @@ allOf:
           minItems: 2
           maxItems: 2
 
+      patternProperties:
+        "^rtc-[a-z]+-[0-9]+$": false
+
       required:
         - clock-names
         - st,syscfg
index fffd759c603f843fed26f56cd9d9efa791523447..7330a7200831215f3295ed42bd1a8a2f1108bb33 100644 (file)
@@ -38,12 +38,13 @@ properties:
       - dallas,ds1672
       # Extremely Accurate I²C RTC with Integrated Crystal and SRAM
       - dallas,ds3232
+      # SD2405AL Real-Time Clock
+      - dfrobot,sd2405al
       # EM Microelectronic EM3027 RTC
       - emmicro,em3027
       # I2C-BUS INTERFACE REAL TIME CLOCK MODULE
       - epson,rx8010
       # I2C-BUS INTERFACE REAL TIME CLOCK MODULE
-      - epson,rx8025
       - epson,rx8035
       # I2C-BUS INTERFACE REAL TIME CLOCK MODULE with Battery Backed RAM
       - epson,rx8111
@@ -52,10 +53,6 @@ properties:
       - epson,rx8581
       # Android Goldfish Real-time Clock
       - google,goldfish-rtc
-      # Intersil ISL1208 Low Power RTC with Battery Backed SRAM
-      - isil,isl1208
-      # Intersil ISL1218 Low Power RTC with Battery Backed SRAM
-      - isil,isl1218
       # Mvebu Real-time Clock
       - marvell,orion-rtc
       # Maxim DS1742/DS1743 Real-time Clock
@@ -68,8 +65,6 @@ properties:
       - microcrystal,rv8523
       # NXP LPC32xx SoC Real-time Clock
       - nxp,lpc3220-rtc
-      # Real-time Clock Module
-      - pericom,pt7c4338
       # I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
       - ricoh,r2025sd
       # I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
index 6a7be42da523c60e8b5d9c5ae8e3c6f2b1bb22db..4b78de6b46a2079faeeb158d16a0ec3b2362bcaa 100644 (file)
@@ -76,6 +76,7 @@ properties:
   clock-frequency: true
   current-speed: true
   overrun-throttle-ms: true
+  wakeup-source: true
 
 required:
   - compatible
index eb2992a447d79c4529d79a11ff0fee6f4646f647..f466c38518c4178367ed324de4056374da9e8723 100644 (file)
@@ -23,13 +23,20 @@ properties:
           - const: atmel,at91sam9260-dbgu
           - const: atmel,at91sam9260-usart
       - items:
-          - const: microchip,sam9x60-usart
+          - enum:
+              - microchip,sam9x60-usart
+              - microchip,sam9x7-usart
           - const: atmel,at91sam9260-usart
       - items:
           - const: microchip,sam9x60-dbgu
           - const: microchip,sam9x60-usart
           - const: atmel,at91sam9260-dbgu
           - const: atmel,at91sam9260-usart
+      - items:
+          - const: microchip,sam9x7-dbgu
+          - const: atmel,at91sam9260-dbgu
+          - const: microchip,sam9x7-usart
+          - const: atmel,at91sam9260-usart
 
   reg:
     maxItems: 1
index ff61ffdcad1dbde65117c687c720b8017ccff6c0..1b02f0b197ff46e3530372d1d9303210cca9c2d5 100644 (file)
@@ -36,6 +36,7 @@ properties:
               - mediatek,mt7622-uart
               - mediatek,mt7623-uart
               - mediatek,mt7629-uart
+              - mediatek,mt7981-uart
               - mediatek,mt7986-uart
               - mediatek,mt7988-uart
               - mediatek,mt8127-uart
index a5d67563cd53a68d403b2a692afa3a8b2bf595f4..29d48da81531ff82a164564b5fa4411735388348 100644 (file)
@@ -78,7 +78,7 @@ properties:
       we use nvidia,adjust-baud-rates.
 
       As an example, consider there is deviation observed in TX for baud rates as listed below. 0
-      to 9600 has 1% deviation 9600 to 115200 2% deviation. This slight deviation is expcted and
+      to 9600 has 1% deviation 9600 to 115200 2% deviation. This slight deviation is expected and
       Tegra UART is expected to handle it. Due to the issue stated above, baud rate on Tegra UART
       should be set equal to or above deviation observed for avoiding frame errors. Property
       should be set like this:
index afc7c05898a18f7f50c940314e2b3f436d235c61..51d9fb0f476330dba4f54bfe45b8e0a3b4a336cc 100644 (file)
@@ -46,6 +46,7 @@ properties:
       - items:
           - enum:
               - renesas,scif-r8a774a1     # RZ/G2M
+              - renesas,scif-r8a774a3     # RZ/G2M v3.0
               - renesas,scif-r8a774b1     # RZ/G2N
               - renesas,scif-r8a774c0     # RZ/G2E
               - renesas,scif-r8a774e1     # RZ/G2H
index 0f0131026911cd0e07071cf38f0e9b41de9a7237..788c80e47831cb1db6a54b1c875387278b77064a 100644 (file)
@@ -56,14 +56,8 @@ properties:
     maxItems: 5
 
   clock-names:
-    description: N = 0 is allowed for SoCs without internal baud clock mux.
     minItems: 2
-    items:
-      - const: uart
-      - pattern: '^clk_uart_baud[0-3]$'
-      - pattern: '^clk_uart_baud[0-3]$'
-      - pattern: '^clk_uart_baud[0-3]$'
-      - pattern: '^clk_uart_baud[0-3]$'
+    maxItems: 5
 
   dmas:
     items:
@@ -103,18 +97,45 @@ allOf:
         compatible:
           contains:
             enum:
-              - samsung,s5pv210-uart
+              - samsung,s3c6400-uart
     then:
       properties:
         clocks:
-          minItems: 2
+          minItems: 3
           maxItems: 3
+
+        clock-names:
+          items:
+            - const: uart
+            - const: clk_uart_baud2
+            - const: clk_uart_baud3
+
+    else:
+      properties:
         clock-names:
           minItems: 2
           items:
             - const: uart
-            - pattern: '^clk_uart_baud[0-1]$'
-            - pattern: '^clk_uart_baud[0-1]$'
+            - const: clk_uart_baud0
+            - const: clk_uart_baud1
+            - const: clk_uart_baud2
+            - const: clk_uart_baud3
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - samsung,s5pv210-uart
+    then:
+      properties:
+        clocks:
+          minItems: 3
+          maxItems: 3
+
+        clock-names:
+          minItems: 3
+          maxItems: 3
 
   - if:
       properties:
@@ -129,10 +150,9 @@ allOf:
       properties:
         clocks:
           maxItems: 2
+
         clock-names:
-          items:
-            - const: uart
-            - const: clk_uart_baud0
+          maxItems: 2
 
   - if:
       properties:
@@ -146,6 +166,12 @@ allOf:
       properties:
         reg-io-width: false
 
+        clocks:
+          maxItems: 2
+
+        clock-names:
+          maxItems: 2
+
 unevaluatedProperties: false
 
 examples:
@@ -163,3 +189,19 @@ examples:
                  <&clocks SCLK_UART>;
         samsung,uart-fifosize = <16>;
     };
+  - |
+    #include <dt-bindings/clock/google,gs101.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    serial_0: serial@10a00000 {
+      compatible = "google,gs101-uart";
+      reg = <0x10a00000 0xc0>;
+      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>;
+    };
diff --git a/Bindings/serial/serial-peripheral-props.yaml b/Bindings/serial/serial-peripheral-props.yaml
new file mode 100644 (file)
index 0000000..b4a7321
--- /dev/null
@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/serial/serial-peripheral-props.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Common Properties for Serial-attached Devices
+
+maintainers:
+  - Rob Herring <robh@kernel.org>
+  - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+description:
+  Devices connected over serial/UART, expressed as children of a serial
+  controller, might need similar properties, e.g. for configuring the baud
+  rate.
+
+properties:
+  max-speed:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      The maximum baud rate the device operates at.
+      This should only be present if the maximum is less than the slave
+      device can support.  For example, a particular board has some
+      signal quality issue or the host processor can't support higher
+      baud rates.
+
+  current-speed:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      The current baud rate the device operates at.
+      This should only be present in case a driver has no chance to know
+      the baud rate of the slave device.
+      Examples:
+        * device supports auto-baud
+        * the rate is setup by a bootloader and there is no way to reset
+          the device
+        * device baud rate is configured by its firmware but there is no
+          way to request the actual settings
+
+additionalProperties: true
index ffc9198ae21469de249c87da75e27521bc2a419f..6aa9cfae417b89eb483e72ecafb220a1ff3e051d 100644 (file)
@@ -88,10 +88,12 @@ properties:
       TX FIFO threshold configuration (in bytes).
 
 patternProperties:
-  "^(bluetooth|bluetooth-gnss|gnss|gps|mcu|onewire)$":
+  "^(bluetooth|bluetooth-gnss|embedded-controller|gnss|gps|mcu|onewire)$":
     if:
       type: object
     then:
+      additionalProperties: true
+      $ref: serial-peripheral-props.yaml#
       description:
         Serial attached devices shall be a child node of the host UART device
         the slave device is attached to. It is expected that the attached
@@ -103,28 +105,6 @@ patternProperties:
           description:
             Compatible of the device connected to the serial port.
 
-        max-speed:
-          $ref: /schemas/types.yaml#/definitions/uint32
-          description:
-            The maximum baud rate the device operates at.
-            This should only be present if the maximum is less than the slave
-            device can support.  For example, a particular board has some
-            signal quality issue or the host processor can't support higher
-            baud rates.
-
-        current-speed:
-          $ref: /schemas/types.yaml#/definitions/uint32
-          description: |
-            The current baud rate the device operates at.
-            This should only be present in case a driver has no chance to know
-            the baud rate of the slave device.
-            Examples:
-              * device supports auto-baud
-              * the rate is setup by a bootloader and there is no way to reset
-                the device
-              * device baud rate is configured by its firmware but there is no
-                way to request the actual settings
-
       required:
         - compatible
 
diff --git a/Bindings/soc/bcm/brcm,bcm2711-avs-monitor.yaml b/Bindings/soc/bcm/brcm,bcm2711-avs-monitor.yaml
new file mode 100644 (file)
index 0000000..e02d9d7
--- /dev/null
@@ -0,0 +1,44 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/bcm/brcm,bcm2711-avs-monitor.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom AVS Monitor
+
+maintainers:
+  - Stefan Wahren <wahrenst@gmx.net>
+
+properties:
+  compatible:
+    items:
+      - const: brcm,bcm2711-avs-monitor
+      - const: syscon
+      - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  thermal:
+    $ref: /schemas/thermal/brcm,avs-ro-thermal.yaml
+    description: Broadcom AVS ring oscillator thermal
+
+required:
+  - compatible
+  - reg
+  - thermal
+
+additionalProperties: 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>;
+        };
+    };
+...
diff --git a/Bindings/soc/cirrus/cirrus,ep9301-syscon.yaml b/Bindings/soc/cirrus/cirrus,ep9301-syscon.yaml
new file mode 100644 (file)
index 0000000..7cb1b41
--- /dev/null
@@ -0,0 +1,94 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/cirrus/cirrus,ep9301-syscon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic EP93xx Platforms System Controller
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+description: |
+  Central resources are controlled by a set of software-locked registers,
+  which can be used to prevent accidental accesses. Syscon generates
+  the various bus and peripheral clocks and controls the system startup
+  configuration.
+
+  The System Controller (Syscon) provides:
+  - Clock control
+  - Power management
+  - System configuration management
+
+  Syscon registers are common for all EP93xx SoC's, through some actual peripheral
+  may be missing depending on actual SoC model.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - cirrus,ep9302-syscon
+              - cirrus,ep9307-syscon
+              - cirrus,ep9312-syscon
+              - cirrus,ep9315-syscon
+          - const: cirrus,ep9301-syscon
+          - const: syscon
+      - items:
+          - const: cirrus,ep9301-syscon
+          - const: syscon
+
+  reg:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 1
+
+  clocks:
+    items:
+      - description: reference clock
+
+patternProperties:
+  '^pins-':
+    type: object
+    description: pin node
+    $ref: /schemas/pinctrl/pinmux-node.yaml
+
+    properties:
+      function:
+        enum: [ spi, ac97, i2s, pwm, keypad, pata, lcd, gpio ]
+
+      groups:
+        enum: [ ssp, ac97, i2s_on_ssp, i2s_on_ac97, pwm1, gpio1agrp,
+                gpio2agrp, gpio3agrp, gpio4agrp, gpio6agrp, gpio7agrp,
+                rasteronsdram0grp, rasteronsdram3grp, keypadgrp, idegrp ]
+
+    required:
+      - function
+      - groups
+
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - "#clock-cells"
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    syscon@80930000 {
+      compatible = "cirrus,ep9301-syscon", "syscon";
+      reg = <0x80930000 0x1000>;
+
+      #clock-cells = <1>;
+      clocks = <&xtali>;
+
+      spi_default_pins: pins-spi {
+        function = "spi";
+        groups = "ssp";
+      };
+    };
diff --git a/Bindings/soc/fsl/cpm_qe/fsl,qe-tsa.yaml b/Bindings/soc/fsl/cpm_qe/fsl,qe-tsa.yaml
new file mode 100644 (file)
index 0000000..3b50e0a
--- /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/soc/fsl/cpm_qe/fsl,qe-tsa.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: PowerQUICC QE Time-slot assigner (TSA) controller
+
+maintainers:
+  - Herve Codina <herve.codina@bootlin.com>
+
+description:
+  The TSA is the time-slot assigner that can be found on some PowerQUICC SoC.
+  Its purpose is to route some TDM time-slots to other internal serial
+  controllers.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - fsl,mpc8321-tsa
+      - const: fsl,qe-tsa
+
+  reg:
+    items:
+      - description: SI (Serial Interface) register base
+      - description: SI RAM base
+
+  reg-names:
+    items:
+      - const: si_regs
+      - const: si_ram
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  '^tdm@[0-3]$':
+    description:
+      The TDM managed by this controller
+    type: object
+
+    additionalProperties: false
+
+    properties:
+      reg:
+        minimum: 0
+        maximum: 3
+        description:
+          The TDM number for this TDM, 0 for TDMa, 1 for TDMb, 2 for TDMc and 3
+          for TDMd.
+
+      fsl,common-rxtx-pins:
+        $ref: /schemas/types.yaml#/definitions/flag
+        description:
+          The hardware can use four dedicated pins for Tx clock, Tx sync, Rx
+          clock and Rx sync or use only two pins, Tx/Rx clock and Tx/Rx sync.
+          Without the 'fsl,common-rxtx-pins' property, the four pins are used.
+          With the 'fsl,common-rxtx-pins' property, two pins are used.
+
+      clocks:
+        minItems: 2
+        items:
+          - description: Receive sync clock
+          - description: Receive data clock
+          - description: Transmit sync clock
+          - description: Transmit data clock
+
+      clock-names:
+        minItems: 2
+        items:
+          - const: rsync
+          - const: rclk
+          - const: tsync
+          - const: tclk
+
+      fsl,rx-frame-sync-delay-bits:
+        enum: [0, 1, 2, 3]
+        default: 0
+        description: |
+          Receive frame sync delay in number of bits.
+          Indicates the delay between the Rx sync and the first bit of the Rx
+          frame.
+
+      fsl,tx-frame-sync-delay-bits:
+        enum: [0, 1, 2, 3]
+        default: 0
+        description: |
+          Transmit frame sync delay in number of bits.
+          Indicates the delay between the Tx sync and the first bit of the Tx
+          frame.
+
+      fsl,clock-falling-edge:
+        $ref: /schemas/types.yaml#/definitions/flag
+        description:
+          Data is sent on falling edge of the clock (and received on the rising
+          edge). If not present, data is sent on the rising edge (and received
+          on the falling edge).
+
+      fsl,fsync-rising-edge:
+        $ref: /schemas/types.yaml#/definitions/flag
+        description:
+          Frame sync pulses are sampled with the rising edge of the channel
+          clock. If not present, pulses are sampled with the falling edge.
+
+      fsl,fsync-active-low:
+        $ref: /schemas/types.yaml#/definitions/flag
+        description:
+          Frame sync signals are active on low logic level.
+          If not present, sync signals are active on high level.
+
+      fsl,double-speed-clock:
+        $ref: /schemas/types.yaml#/definitions/flag
+        description:
+          The channel clock is twice the data rate.
+
+    patternProperties:
+      '^fsl,[rt]x-ts-routes$':
+        $ref: /schemas/types.yaml#/definitions/uint32-matrix
+        description: |
+          A list of tuple that indicates the Tx or Rx time-slots routes.
+        items:
+          items:
+            - description:
+                The number of time-slots
+              minimum: 1
+              maximum: 64
+            - description: |
+                The source (Tx) or destination (Rx) serial interface
+                (dt-bindings/soc/qe-fsl,tsa.h defines these values)
+                 - 0: No destination
+                 - 1: UCC1
+                 - 2: UCC2
+                 - 3: UCC3
+                 - 4: UCC4
+                 - 5: UCC5
+              enum: [0, 1, 2, 3, 4, 5]
+        minItems: 1
+        maxItems: 64
+
+    allOf:
+      # If fsl,common-rxtx-pins is present, only 2 clocks are needed.
+      # Else, the 4 clocks must be present.
+      - if:
+          required:
+            - fsl,common-rxtx-pins
+        then:
+          properties:
+            clocks:
+              maxItems: 2
+            clock-names:
+              maxItems: 2
+        else:
+          properties:
+            clocks:
+              minItems: 4
+            clock-names:
+              minItems: 4
+
+    required:
+      - reg
+      - clocks
+      - clock-names
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - '#address-cells'
+  - '#size-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/soc/qe-fsl,tsa.h>
+
+    tsa@ae0 {
+        compatible = "fsl,mpc8321-tsa", "fsl,qe-tsa";
+        reg = <0xae0 0x10>,
+              <0xc00 0x200>;
+        reg-names = "si_regs", "si_ram";
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        tdm@0 {
+            /* TDMa */
+            reg = <0>;
+
+            clocks = <&clk_l1rsynca>, <&clk_l1rclka>;
+            clock-names = "rsync", "rclk";
+
+            fsl,common-rxtx-pins;
+            fsl,fsync-rising-edge;
+
+            fsl,tx-ts-routes = <2 0>,             /* TS 0..1 */
+                           <24 FSL_QE_TSA_UCC4>, /* TS 2..25 */
+                           <1 0>,                 /* TS 26 */
+                           <5 FSL_QE_TSA_UCC3>;  /* TS 27..31 */
+
+            fsl,rx-ts-routes = <2 0>,             /* TS 0..1 */
+                           <24 FSL_QE_TSA_UCC4>, /* 2..25 */
+                           <1 0>,                 /* TS 26 */
+                           <5 FSL_QE_TSA_UCC3>;  /* TS 27..31 */
+        };
+    };
diff --git a/Bindings/soc/fsl/cpm_qe/fsl,qe-ucc-qmc.yaml b/Bindings/soc/fsl/cpm_qe/fsl,qe-ucc-qmc.yaml
new file mode 100644 (file)
index 0000000..71ae64c
--- /dev/null
@@ -0,0 +1,197 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/fsl/cpm_qe/fsl,qe-ucc-qmc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: PowerQUICC QE QUICC Multichannel Controller (QMC)
+
+maintainers:
+  - Herve Codina <herve.codina@bootlin.com>
+
+description:
+  The QMC (QUICC Multichannel Controller) emulates up to 64 channels within one
+  serial controller using the same TDM physical interface routed from TSA.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - fsl,mpc8321-ucc-qmc
+      - const: fsl,qe-ucc-qmc
+
+  reg:
+    items:
+      - description: UCC (Unified communication controller) register base
+      - description: Dual port ram base
+
+  reg-names:
+    items:
+      - const: ucc_regs
+      - const: dpram
+
+  interrupts:
+    maxItems: 1
+    description: UCC interrupt line in the QE interrupt controller
+
+  fsl,tsa-serial:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: phandle to TSA node
+          - enum: [1, 2, 3, 4, 5]
+            description: |
+              TSA serial interface (dt-bindings/soc/qe-fsl,tsa.h defines these
+              values)
+               - 1: UCC1
+               - 2: UCC2
+               - 3: UCC3
+               - 4: UCC4
+               - 5: UCC5
+    description:
+      Should be a phandle/number pair. The phandle to TSA node and the TSA
+      serial interface to use.
+
+  fsl,soft-qmc:
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      Soft QMC firmware name to load. If this property is omitted, no firmware
+      are used.
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  '^channel@([0-9]|[1-5][0-9]|6[0-3])$':
+    description:
+      A channel managed by this controller
+    type: object
+    additionalProperties: false
+
+    properties:
+      compatible:
+        items:
+          - enum:
+              - fsl,mpc8321-ucc-qmc-hdlc
+          - const: fsl,qe-ucc-qmc-hdlc
+          - const: fsl,qmc-hdlc
+
+      reg:
+        minimum: 0
+        maximum: 63
+        description:
+          The channel number
+
+      fsl,operational-mode:
+        $ref: /schemas/types.yaml#/definitions/string
+        enum: [transparent, hdlc]
+        default: transparent
+        description: |
+          The channel operational mode
+            - hdlc: The channel handles HDLC frames
+            - transparent: The channel handles raw data without any processing
+
+      fsl,reverse-data:
+        $ref: /schemas/types.yaml#/definitions/flag
+        description:
+          The bit order as seen on the channels is reversed,
+          transmitting/receiving the MSB of each octet first.
+          This flag is used only in 'transparent' mode.
+
+      fsl,tx-ts-mask:
+        $ref: /schemas/types.yaml#/definitions/uint64
+        description:
+          Channel assigned Tx time-slots within the Tx time-slots routed by the
+          TSA to this cell.
+
+      fsl,rx-ts-mask:
+        $ref: /schemas/types.yaml#/definitions/uint64
+        description:
+          Channel assigned Rx time-slots within the Rx time-slots routed by the
+          TSA to this cell.
+
+      fsl,framer:
+        $ref: /schemas/types.yaml#/definitions/phandle
+        description:
+          phandle to the framer node. The framer is in charge of an E1/T1 line
+          interface connected to the TDM bus. It can be used to get the E1/T1 line
+          status such as link up/down.
+
+    allOf:
+      - if:
+          properties:
+            compatible:
+              not:
+                contains:
+                  const: fsl,qmc-hdlc
+        then:
+          properties:
+            fsl,framer: false
+
+    required:
+      - reg
+      - fsl,tx-ts-mask
+      - fsl,rx-ts-mask
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+  - fsl,tsa-serial
+  - '#address-cells'
+  - '#size-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/soc/qe-fsl,tsa.h>
+
+    qmc@a60 {
+        compatible = "fsl,mpc8321-ucc-qmc", "fsl,qe-ucc-qmc";
+        reg = <0x3200 0x200>,
+              <0x10000 0x1000>;
+        reg-names = "ucc_regs", "dpram";
+        interrupts = <35>;
+        interrupt-parent = <&qeic>;
+        fsl,soft-qmc = "fsl_qe_ucode_qmc_8321_11.bin";
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        fsl,tsa-serial = <&tsa FSL_QE_TSA_UCC4>;
+
+        channel@16 {
+            /* Ch16 : First 4 even TS from all routed from TSA */
+            reg = <16>;
+            fsl,operational-mode = "transparent";
+            fsl,reverse-data;
+            fsl,tx-ts-mask = <0x00000000 0x000000aa>;
+            fsl,rx-ts-mask = <0x00000000 0x000000aa>;
+        };
+
+        channel@17 {
+            /* Ch17 : First 4 odd TS from all routed from TSA */
+            reg = <17>;
+            fsl,operational-mode = "transparent";
+            fsl,reverse-data;
+            fsl,tx-ts-mask = <0x00000000 0x00000055>;
+            fsl,rx-ts-mask = <0x00000000 0x00000055>;
+        };
+
+        channel@19 {
+            /* Ch19 : 8 TS (TS 8..15) from all routed from TSA */
+            compatible = "fsl,mpc8321-ucc-qmc-hdlc",
+                         "fsl,qe-ucc-qmc-hdlc",
+                         "fsl,qmc-hdlc";
+            reg = <19>;
+            fsl,operational-mode = "hdlc";
+            fsl,tx-ts-mask = <0x00000000 0x0000ff00>;
+            fsl,rx-ts-mask = <0x00000000 0x0000ff00>;
+            fsl,framer = <&framer>;
+        };
+    };
diff --git a/Bindings/soc/fsl/cpm_qe/fsl,ucc-hdlc.yaml b/Bindings/soc/fsl/cpm_qe/fsl,ucc-hdlc.yaml
new file mode 100644 (file)
index 0000000..64ffbf7
--- /dev/null
@@ -0,0 +1,140 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/fsl/cpm_qe/fsl,ucc-hdlc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: High-Level Data Link Control(HDLC)
+
+description: HDLC part in Universal communication controllers (UCCs)
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    const: fsl,ucc-hdlc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  cell-index:
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  rx-clock-name:
+    $ref: /schemas/types.yaml#/definitions/string
+    oneOf:
+      - pattern: "^brg([0-9]|1[0-6])$"
+      - pattern: "^clk([0-9]|1[0-9]|2[0-4])$"
+
+  tx-clock-name:
+    $ref: /schemas/types.yaml#/definitions/string
+    oneOf:
+      - pattern: "^brg([0-9]|1[0-6])$"
+      - pattern: "^clk([0-9]|1[0-9]|2[0-4])$"
+
+  fsl,tdm-interface:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: Specify that hdlc is based on tdm-interface
+
+  fsl,rx-sync-clock:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: rx-sync
+    enum:
+      - none
+      - rsync_pin
+      - brg9
+      - brg10
+      - brg11
+      - brg13
+      - brg14
+      - brg15
+
+  fsl,tx-sync-clock:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: tx-sync
+    enum:
+      - none
+      - tsync_pin
+      - brg9
+      - brg10
+      - brg11
+      - brg13
+      - brg14
+      - brg15
+
+  fsl,tdm-framer-type:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: required for tdm interface
+    enum: [e1, t1]
+
+  fsl,tdm-id:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: number of TDM ID
+
+  fsl,tx-timeslot-mask:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      required for tdm interface.
+      time slot mask for TDM operation. Indicates which time
+      slots used for transmitting and receiving.
+
+  fsl,rx-timeslot-mask:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      required for tdm interface.
+      time slot mask for TDM operation. Indicates which time
+      slots used for transmitting and receiving.
+
+  fsl,siram-entry-id:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      required for tdm interface
+      Must be 0,2,4...64. the number of TDM entry.
+
+  fsl,tdm-internal-loopback:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      optional for tdm interface
+      Internal loopback connecting on TDM layer.
+
+  fsl,hmask:
+    $ref: /schemas/types.yaml#/definitions/uint16
+    description: |
+      HDLC address recognition. Set to zero to disable
+      address filtering of packets:
+      fsl,hmask = /bits/ 16 <0x0000>;
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    communication@2000 {
+        compatible = "fsl,ucc-hdlc";
+        reg = <0x2000 0x200>;
+        rx-clock-name = "clk8";
+        tx-clock-name = "clk9";
+        fsl,rx-sync-clock = "rsync_pin";
+        fsl,tx-sync-clock = "tsync_pin";
+        fsl,tx-timeslot-mask = <0xfffffffe>;
+        fsl,rx-timeslot-mask = <0xfffffffe>;
+        fsl,tdm-framer-type = "e1";
+        fsl,tdm-id = <0>;
+        fsl,siram-entry-id = <0>;
+        fsl,tdm-interface;
+    };
+
+  - |
+    communication@2000 {
+        compatible = "fsl,ucc-hdlc";
+        reg = <0x2000 0x200>;
+        rx-clock-name = "brg1";
+        tx-clock-name = "brg1";
+    };
diff --git a/Bindings/soc/fsl/cpm_qe/network.txt b/Bindings/soc/fsl/cpm_qe/network.txt
deleted file mode 100644 (file)
index 6d2dd8a..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-* Network
-
-Currently defined compatibles:
-- fsl,cpm1-scc-enet
-- fsl,cpm2-scc-enet
-- fsl,cpm1-fec-enet
-- fsl,cpm2-fcc-enet (third resource is GFEMR)
-- fsl,qe-enet
-
-Example:
-
-       ethernet@11300 {
-               compatible = "fsl,mpc8272-fcc-enet",
-                            "fsl,cpm2-fcc-enet";
-               reg = <11300 20 8400 100 11390 1>;
-               local-mac-address = [ 00 00 00 00 00 00 ];
-               interrupts = <20 8>;
-               interrupt-parent = <&PIC>;
-               phy-handle = <&PHY0>;
-               fsl,cpm-command = <12000300>;
-       };
-
-* MDIO
-
-Currently defined compatibles:
-fsl,pq1-fec-mdio (reg is same as first resource of FEC device)
-fsl,cpm2-mdio-bitbang (reg is port C registers)
-
-Properties for fsl,cpm2-mdio-bitbang:
-fsl,mdio-pin : pin of port C controlling mdio data
-fsl,mdc-pin : pin of port C controlling mdio clock
-
-Example:
-       mdio@10d40 {
-               compatible = "fsl,mpc8272ads-mdio-bitbang",
-                            "fsl,mpc8272-mdio-bitbang",
-                            "fsl,cpm2-mdio-bitbang";
-               reg = <10d40 14>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               fsl,mdio-pin = <12>;
-               fsl,mdc-pin = <13>;
-       };
-
-* HDLC
-
-Currently defined compatibles:
-- fsl,ucc-hdlc
-
-Properties for fsl,ucc-hdlc:
-- rx-clock-name
-- tx-clock-name
-       Usage: required
-       Value type: <string>
-       Definition : Must be "brg1"-"brg16" for internal clock source,
-                    Must be "clk1"-"clk24" for external clock source.
-
-- fsl,tdm-interface
-       Usage: optional
-       Value type: <empty>
-       Definition : Specify that hdlc is based on tdm-interface
-
-The property below is dependent on fsl,tdm-interface:
-- fsl,rx-sync-clock
-       Usage: required
-       Value type: <string>
-       Definition : Must be "none", "rsync_pin", "brg9-11" and "brg13-15".
-
-- fsl,tx-sync-clock
-       Usage: required
-       Value type: <string>
-       Definition : Must be "none", "tsync_pin", "brg9-11" and "brg13-15".
-
-- fsl,tdm-framer-type
-       Usage: required for tdm interface
-       Value type: <string>
-       Definition : "e1" or "t1".Now e1 and t1 are used, other framer types
-                    are not supported.
-
-- fsl,tdm-id
-       Usage: required for tdm interface
-       Value type: <u32>
-       Definition : number of TDM ID
-
-- fsl,tx-timeslot-mask
-- fsl,rx-timeslot-mask
-       Usage: required for tdm interface
-       Value type: <u32>
-       Definition : time slot mask for TDM operation. Indicates which time
-                    slots used for transmitting and receiving.
-
-- fsl,siram-entry-id
-       Usage: required for tdm interface
-       Value type: <u32>
-       Definition : Must be 0,2,4...64. the number of TDM entry.
-
-- fsl,tdm-internal-loopback
-       usage: optional for tdm interface
-       value type: <empty>
-       Definition : Internal loopback connecting on TDM layer.
-- fsl,hmask
-       usage: optional
-       Value type: <u16>
-       Definition: HDLC address recognition. Set to zero to disable
-                   address filtering of packets:
-                   fsl,hmask = /bits/ 16 <0x0000>;
-
-Example for tdm interface:
-
-       ucc@2000 {
-               compatible = "fsl,ucc-hdlc";
-               rx-clock-name = "clk8";
-               tx-clock-name = "clk9";
-               fsl,rx-sync-clock = "rsync_pin";
-               fsl,tx-sync-clock = "tsync_pin";
-               fsl,tx-timeslot-mask = <0xfffffffe>;
-               fsl,rx-timeslot-mask = <0xfffffffe>;
-               fsl,tdm-framer-type = "e1";
-               fsl,tdm-id = <0>;
-               fsl,siram-entry-id = <0>;
-               fsl,tdm-interface;
-       };
-
-Example for hdlc without tdm interface:
-
-       ucc@2000 {
-               compatible = "fsl,ucc-hdlc";
-               rx-clock-name = "brg1";
-               tx-clock-name = "brg1";
-       };
index 2a456c8af992e0b29e03723d61cb63a6115ebc99..2958ef45b3e9b0d5367cbd2f99a3c2bdaae7ddb0 100644 (file)
@@ -23,6 +23,9 @@ properties:
           - fsl,ls1028a-scfg
           - fsl,ls1043a-scfg
           - fsl,ls1046a-scfg
+          - fsl,ls1088a-isc
+          - fsl,ls2080a-isc
+          - fsl,lx2160a-isc
       - const: syscon
 
   reg:
diff --git a/Bindings/soc/fsl/fsl,rcpm.yaml b/Bindings/soc/fsl/fsl,rcpm.yaml
new file mode 100644 (file)
index 0000000..03d71ab
--- /dev/null
@@ -0,0 +1,87 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/fsl/fsl,rcpm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Run Control and Power Management
+
+description:
+  The RCPM performs all device-level tasks associated with device run control
+  and power management.
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - fsl,p2041-rcpm
+              - fsl,p3041-rcpm
+              - fsl,p4080-rcpm
+              - fsl,p5020-rcpm
+              - fsl,p5040-rcpm
+          - const: fsl,qoriq-rcpm-1.0
+      - items:
+          - enum:
+              - fsl,b4420-rcpm
+              - fsl,b4860-rcpm
+              - fsl,t4240-rcpm
+          - const: fsl,qoriq-rcpm-2.0
+      - items:
+          - enum:
+              - fsl,t1040-rcpm
+          - const: fsl,qoriq-rcpm-2.1
+      - items:
+          - enum:
+              - fsl,ls1012a-rcpm
+              - fsl,ls1021a-rcpm
+              - fsl,ls1028a-rcpm
+              - fsl,ls1043a-rcpm
+              - fsl,ls1046a-rcpm
+              - fsl,ls1088a-rcpm
+              - fsl,ls208xa-rcpm
+              - fsl,lx2160a-rcpm
+          - const: fsl,qoriq-rcpm-2.1+
+
+  reg:
+    maxItems: 1
+
+  "#fsl,rcpm-wakeup-cells":
+    description: |
+      The number of IPPDEXPCR register cells in the
+      fsl,rcpm-wakeup property.
+
+      Freescale RCPM Wakeup Source Device Tree Bindings
+
+      Required fsl,rcpm-wakeup property should be added to a device node if
+      the device can be used as a wakeup source.
+
+      fsl,rcpm-wakeup: Consists of a phandle to the rcpm node and the IPPDEXPCR
+      register cells. The number of IPPDEXPCR register cells is defined in
+      "#fsl,rcpm-wakeup-cells" in the rcpm node. The first register cell is
+      the bit mask that should be set in IPPDEXPCR0, and the second register
+      cell is for IPPDEXPCR1, and so on.
+
+      Note: IPPDEXPCR(IP Powerdown Exception Control Register) provides a
+      mechanism for keeping certain blocks awake during STANDBY and MEM, in
+      order to use them as wake-up sources.
+
+  little-endian:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      RCPM register block is Little Endian. Without it RCPM
+      will be Big Endian (default case).
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    global-utilities@e2000 {
+          compatible = "fsl,t4240-rcpm", "fsl,qoriq-rcpm-2.0";
+          reg = <0xe2000 0x1000>;
+          #fsl,rcpm-wakeup-cells = <2>;
+    };
diff --git a/Bindings/soc/fsl/rcpm.txt b/Bindings/soc/fsl/rcpm.txt
deleted file mode 100644 (file)
index 5a33619..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-* Run Control and Power Management
--------------------------------------------
-The RCPM performs all device-level tasks associated with device run control
-and power management.
-
-Required properites:
-  - reg : Offset and length of the register set of the RCPM block.
-  - #fsl,rcpm-wakeup-cells : The number of IPPDEXPCR register cells in the
-       fsl,rcpm-wakeup property.
-  - compatible : Must contain a chip-specific RCPM block compatible string
-       and (if applicable) may contain a chassis-version RCPM compatible
-       string. Chip-specific strings are of the form "fsl,<chip>-rcpm",
-       such as:
-       * "fsl,p2041-rcpm"
-       * "fsl,p5020-rcpm"
-       * "fsl,t4240-rcpm"
-
-       Chassis-version strings are of the form "fsl,qoriq-rcpm-<version>",
-       such as:
-       * "fsl,qoriq-rcpm-1.0": for chassis 1.0 rcpm
-       * "fsl,qoriq-rcpm-2.0": for chassis 2.0 rcpm
-       * "fsl,qoriq-rcpm-2.1": for chassis 2.1 rcpm
-       * "fsl,qoriq-rcpm-2.1+": for chassis 2.1+ rcpm
-
-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, p2041, p3041
-2.0                            t4240, b4860, b4420
-2.1                            t1040,
-2.1+                           ls1021a, ls1012a, ls1043a, ls1046a
-
-Optional properties:
- - little-endian : RCPM register block is Little Endian. Without it RCPM
-   will be Big Endian (default case).
-
-Example:
-The RCPM node for T4240:
-       rcpm: global-utilities@e2000 {
-               compatible = "fsl,t4240-rcpm", "fsl,qoriq-rcpm-2.0";
-               reg = <0xe2000 0x1000>;
-               #fsl,rcpm-wakeup-cells = <2>;
-       };
-
-* Freescale RCPM Wakeup Source Device Tree Bindings
--------------------------------------------
-Required fsl,rcpm-wakeup property should be added to a device node if the device
-can be used as a wakeup source.
-
-  - fsl,rcpm-wakeup: Consists of a phandle to the rcpm node and the IPPDEXPCR
-       register cells. The number of IPPDEXPCR register cells is defined in
-       "#fsl,rcpm-wakeup-cells" in the rcpm node. The first register cell is
-       the bit mask that should be set in IPPDEXPCR0, and the second register
-       cell is for IPPDEXPCR1, and so on.
-
-       Note: IPPDEXPCR(IP Powerdown Exception Control Register) provides a
-       mechanism for keeping certain blocks awake during STANDBY and MEM, in
-       order to use them as wake-up sources.
-
-Example:
-       lpuart0: serial@2950000 {
-               compatible = "fsl,ls1021a-lpuart";
-               reg = <0x0 0x2950000 0x0 0x1000>;
-               interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&sysclk>;
-               clock-names = "ipg";
-               fsl,rcpm-wakeup = <&rcpm 0x0 0x40000000>;
-       };
index 4512390f90f04387f7aef36a6416bb96615ef0f1..2d3fe0b54243e8d912d2aea637dadd49a02f230a 100644 (file)
@@ -30,6 +30,11 @@ properties:
               - qcom,sm8450-pmic-glink
               - qcom,sm8550-pmic-glink
           - const: qcom,pmic-glink
+      - items:
+          - enum:
+              - qcom,sm7325-pmic-glink
+          - const: qcom,qcm6490-pmic-glink
+          - const: qcom,pmic-glink
       - items:
           - enum:
               - qcom,sm8650-pmic-glink
index 2fa725b8af5db213b7ccc4321d078a7f884ada1d..270bcd079f8861d6bf9f3058e188895af33370e1 100644 (file)
@@ -30,31 +30,37 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - qcom,rpm-apq8084
-      - qcom,rpm-ipq6018
-      - qcom,rpm-ipq9574
-      - qcom,rpm-mdm9607
-      - qcom,rpm-msm8226
-      - qcom,rpm-msm8610
-      - qcom,rpm-msm8909
-      - qcom,rpm-msm8916
-      - qcom,rpm-msm8917
-      - qcom,rpm-msm8936
-      - qcom,rpm-msm8937
-      - qcom,rpm-msm8952
-      - qcom,rpm-msm8953
-      - qcom,rpm-msm8974
-      - qcom,rpm-msm8976
-      - qcom,rpm-msm8994
-      - qcom,rpm-msm8996
-      - qcom,rpm-msm8998
-      - qcom,rpm-qcm2290
-      - qcom,rpm-qcs404
-      - qcom,rpm-sdm660
-      - qcom,rpm-sm6115
-      - qcom,rpm-sm6125
-      - qcom,rpm-sm6375
+    oneOf:
+      - items:
+          - enum:
+              - qcom,rpm-apq8084
+              - qcom,rpm-mdm9607
+              - qcom,rpm-msm8226
+              - qcom,rpm-msm8610
+              - qcom,rpm-msm8909
+              - qcom,rpm-msm8916
+              - qcom,rpm-msm8917
+              - qcom,rpm-msm8936
+              - qcom,rpm-msm8937
+              - qcom,rpm-msm8952
+              - qcom,rpm-msm8953
+              - qcom,rpm-msm8974
+              - qcom,rpm-msm8976
+              - qcom,rpm-msm8994
+          - const: qcom,smd-rpm
+      - items:
+          - enum:
+              - qcom,rpm-ipq6018
+              - qcom,rpm-ipq9574
+              - qcom,rpm-msm8996
+              - qcom,rpm-msm8998
+              - qcom,rpm-qcm2290
+              - qcom,rpm-qcs404
+              - qcom,rpm-sdm660
+              - qcom,rpm-sm6115
+              - qcom,rpm-sm6125
+              - qcom,rpm-sm6375
+          - const: qcom,glink-smd-rpm
 
   clock-controller:
     $ref: /schemas/clock/qcom,rpmcc.yaml#
@@ -84,21 +90,7 @@ if:
   properties:
     compatible:
       contains:
-        enum:
-          - qcom,rpm-apq8084
-          - qcom,rpm-mdm9607
-          - qcom,rpm-msm8226
-          - qcom,rpm-msm8610
-          - qcom,rpm-msm8909
-          - qcom,rpm-msm8916
-          - qcom,rpm-msm8917
-          - qcom,rpm-msm8936
-          - qcom,rpm-msm8937
-          - qcom,rpm-msm8952
-          - qcom,rpm-msm8953
-          - qcom,rpm-msm8974
-          - qcom,rpm-msm8976
-          - qcom,rpm-msm8994
+        const: qcom,smd-rpm
 then:
   properties:
     qcom,glink-channels: false
@@ -129,7 +121,7 @@ examples:
             qcom,smd-edge = <15>;
 
             rpm-requests {
-                compatible = "qcom,rpm-msm8916";
+                compatible = "qcom,rpm-msm8916", "qcom,smd-rpm";
                 qcom,smd-channels = "rpm_requests";
 
                 clock-controller {
index 4819ce90d206418d9adf9a40c725c5c299dfa926..d9fabefc8147b2d420e1b1bc57c02934c162a407 100644 (file)
@@ -56,7 +56,7 @@ examples:
             qcom,smd-edge = <15>;
 
             rpm-requests {
-                compatible = "qcom,rpm-msm8974";
+                compatible = "qcom,rpm-msm8974", "qcom,smd-rpm";
                 qcom,smd-channels = "rpm_requests";
 
                 clock-controller {
index 09d3ce97efa2a3daabf141fa5dbac505156ed103..b7acb65bdecd2a3828f5757735eb473c39f27b57 100644 (file)
@@ -127,6 +127,18 @@ properties:
           - const: hoperun,hihope-rzg2m
           - const: renesas,r8a774a1
 
+      - description: RZ/G2M v3.0 (R8A774A3)
+        items:
+          - enum:
+              - hoperun,hihope-rzg2m # HopeRun HiHope RZ/G2M platform
+          - const: renesas,r8a774a3
+
+      - items:
+          - enum:
+              - hoperun,hihope-rzg2-ex # HopeRun expansion board for HiHope RZ/G2 platforms
+          - const: hoperun,hihope-rzg2m
+          - const: renesas,r8a774a3
+
       - description: RZ/G2N (R8A774B1)
         items:
           - enum:
@@ -515,6 +527,8 @@ properties:
 
       - description: RZ/V2H(P) (R9A09G057)
         items:
+          - enum:
+              - renesas,rzv2h-evk # RZ/V2H EVK
           - enum:
               - renesas,r9a09g057h41 # RZ/V2H
               - renesas,r9a09g057h42 # RZ/V2H with Mali-G31 support
index 35b20e53b5132815961033d0ee646dd27b2e2b99..50d727f4b76c62a48505a8afd5cc2fd64115d74a 100644 (file)
@@ -20,6 +20,20 @@ properties:
               - rockchip,rk3568-pipe-grf
               - rockchip,rk3568-pipe-phy-grf
               - rockchip,rk3568-usb2phy-grf
+              - rockchip,rk3576-bigcore-grf
+              - rockchip,rk3576-cci-grf
+              - rockchip,rk3576-gpu-grf
+              - rockchip,rk3576-litcore-grf
+              - rockchip,rk3576-npu-grf
+              - rockchip,rk3576-php-grf
+              - rockchip,rk3576-pipe-phy-grf
+              - rockchip,rk3576-pmu1-grf
+              - rockchip,rk3576-sdgmac-grf
+              - rockchip,rk3576-sys-grf
+              - rockchip,rk3576-usb-grf
+              - rockchip,rk3576-usbdpphy-grf
+              - rockchip,rk3576-vo0-grf
+              - rockchip,rk3576-vop-grf
               - rockchip,rk3588-bigcore0-grf
               - rockchip,rk3588-bigcore1-grf
               - rockchip,rk3588-hdptxphy-grf
@@ -64,6 +78,8 @@ properties:
               - rockchip,rk3399-pmugrf
               - rockchip,rk3568-grf
               - rockchip,rk3568-pmugrf
+              - rockchip,rk3576-ioc-grf
+              - rockchip,rk3576-pmu0-grf
               - rockchip,rk3588-usb2phy-grf
               - rockchip,rv1108-grf
               - rockchip,rv1108-pmugrf
index 8b478d6cdc303c606d4b64a79bd462358078f040..f80fcbc3128bfbb2d9fcc9e79530f4218576bda5 100644 (file)
@@ -32,11 +32,16 @@ properties:
       - enum:
           - samsung,exynos850-usi
 
-  reg: true
+  reg:
+    maxItems: 1
 
-  clocks: true
+  clocks:
+    maxItems: 2
 
-  clock-names: true
+  clock-names:
+    items:
+      - const: pclk
+      - const: ipclk
 
   ranges: true
 
@@ -113,9 +118,7 @@ then:
         - description: Operating clock for UART/SPI/I2C protocol
 
     clock-names:
-      items:
-        - const: pclk
-        - const: ipclk
+      maxItems: 2
 
   required:
     - reg
index a10a3b89ae05e8abbcdf8923b6d82f72179c5140..94b36943a50ffa66dfef643c1feeec523eed0484 100644 (file)
@@ -14,6 +14,7 @@ properties:
     items:
       - const: ti,am654-serdes-ctrl
       - const: syscon
+      - const: simple-mfd
 
   reg:
     maxItems: 1
@@ -31,7 +32,7 @@ additionalProperties: false
 examples:
   - |
     clock@4080 {
-        compatible = "ti,am654-serdes-ctrl", "syscon";
+        compatible = "ti,am654-serdes-ctrl", "syscon", "simple-mfd";
         reg = <0x4080 0x4>;
 
         mux-controller {
index c402cb2928e893ced1d9d9b0ed7731c23d212571..3cb1471cc6b62e2c15491a79aca19755934a81ee 100644 (file)
@@ -278,6 +278,26 @@ patternProperties:
 
     additionalProperties: false
 
+  ^pa-stats@[a-f0-9]+$:
+    description: |
+      PA-STATS sub-module represented as a SysCon. PA_STATS is a set of
+      registers where different statistics related to ICSSG, are dumped by
+      ICSSG firmware. This syscon sub-module will help the device to
+      access/read/write those statistics.
+
+    type: object
+
+    additionalProperties: false
+
+    properties:
+      compatible:
+        items:
+          - const: ti,pruss-pa-st
+          - const: syscon
+
+      reg:
+        maxItems: 1
+
   interrupt-controller@[a-f0-9]+$:
     description: |
       PRUSS INTC Node. Each PRUSS has a single interrupt controller instance
index 5db718e4d0e7abd3f12e8d634111535e67b94fb2..4f13e8ab50b2a4564c06963221e233a18eb6af81 100644 (file)
@@ -26,6 +26,13 @@ properties:
       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
 
+  clocks:
+    minItems: 1
+    maxItems: 3
+    description:
+      Base PLL clocks of audio susbsytem, used to configure base clock
+      frequencies for different audio use-cases.
+
 patternProperties:
   "^dai-link-[0-9]+$":
     type: object
index 0ecdaf7190e9f12ac527fb77f6cd30118ae672c3..413b4777818187fea2bd84c01ee6f8f29160840f 100644 (file)
@@ -27,6 +27,13 @@ properties:
       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
 
+  clocks:
+    minItems: 1
+    maxItems: 3
+    description:
+      Base PLL clocks of audio susbsytem, used to configure base clock
+      frequencies for different audio use-cases.
+
 patternProperties:
   "^dai-link-[0-9]+$":
     type: object
diff --git a/Bindings/sound/cirrus,cs4271.yaml b/Bindings/sound/cirrus,cs4271.yaml
new file mode 100644 (file)
index 0000000..68fbf5c
--- /dev/null
@@ -0,0 +1,101 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/cirrus,cs4271.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic CS4271 audio CODEC
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+description:
+  The CS4271 is a stereo audio codec. This device supports both the I2C
+  and the SPI bus.
+
+allOf:
+  - $ref: dai-common.yaml#
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    const: cirrus,cs4271
+
+  reg:
+    maxItems: 1
+
+  spi-cpha: true
+
+  spi-cpol: true
+
+  '#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.
+
+  vl-supply:
+    description: Serial Control Port power supply.
+
+  port:
+    $ref: audio-graph-port.yaml#
+    unevaluatedProperties: false
+
+  cirrus,amuteb-eq-bmutec:
+    description:
+      When given, the Codec's AMUTEB=BMUTEC flag is enabled.
+    type: boolean
+
+  cirrus,enable-soft-reset:
+    description: |
+      The CS4271 requires its LRCLK and MCLK to be stable before its RESET
+      line is de-asserted. That also means that clocks cannot be changed
+      without putting the chip back into hardware reset, which also requires
+      a complete re-initialization of all registers.
+
+      One (undocumented) workaround is to assert and de-assert the PDN bit
+      in the MODE2 register. This workaround can be enabled with this DT
+      property.
+
+      Note that this is not needed in case the clocks are stable
+      throughout the entire runtime of the codec.
+    type: boolean
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        codec@0 {
+            compatible = "cirrus,cs4271";
+            reg = <0>;
+            #sound-dai-cells = <0>;
+            spi-max-frequency = <6000000>;
+            spi-cpol;
+            spi-cpha;
+            reset-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+            port {
+                endpoint {
+                    remote-endpoint = <&i2s_ep>;
+                };
+            };
+        };
+    };
+
+...
index 453d493c941f6d81c7058ec8d73581038e6a5236..4693e85aed37fc682f10c33db26cad5f62bd44a1 100644 (file)
@@ -40,6 +40,20 @@ properties:
       - const: sclk
       - const: lrclk
 
+  dmas:
+    items:
+      - description: out DMA channel
+      - description: in DMA channel
+
+  dma-names:
+    items:
+      - const: tx
+      - const: rx
+
+  port:
+    $ref: audio-graph-port.yaml#
+    unevaluatedProperties: false
+
 required:
   - compatible
   - '#sound-dai-cells'
@@ -61,6 +75,8 @@ examples:
                  <&syscon 30>,
                  <&syscon 31>;
         clock-names = "mclk", "sclk", "lrclk";
+        dmas = <&dma0 0 1>, <&dma0 0 2>;
+        dma-names = "tx", "rx";
     };
 
 ...
diff --git a/Bindings/sound/cs4271.txt b/Bindings/sound/cs4271.txt
deleted file mode 100644 (file)
index 6e699ce..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-Cirrus Logic CS4271 DT bindings
-
-This driver supports both the I2C and the SPI bus.
-
-Required properties:
-
- - compatible: "cirrus,cs4271"
-
-For required properties on SPI, please consult
-Documentation/devicetree/bindings/spi/spi-bus.txt
-
-Required properties on I2C:
-
- - reg: the i2c address
-
-
-Optional properties:
-
- - reset-gpio:         a GPIO spec to define which pin is connected to the chip's
-               !RESET pin
- - cirrus,amuteb-eq-bmutec:    When given, the Codec's AMUTEB=BMUTEC flag
-                               is enabled.
- - cirrus,enable-soft-reset:
-       The CS4271 requires its LRCLK and MCLK to be stable before its RESET
-       line is de-asserted. That also means that clocks cannot be changed
-       without putting the chip back into hardware reset, which also requires
-       a complete re-initialization of all registers.
-
-       One (undocumented) workaround is to assert and de-assert the PDN bit
-       in the MODE2 register. This workaround can be enabled with this DT
-       property.
-
-       Note that this is not needed in case the clocks are stable
-       throughout the entire runtime of the codec.
-
- - vd-supply:  Digital power
- - vl-supply:  Logic power
- - va-supply:  Analog Power
-
-Examples:
-
-       codec_i2c: cs4271@10 {
-               compatible = "cirrus,cs4271";
-               reg = <0x10>;
-               reset-gpio = <&gpio 23 0>;
-               vd-supply = <&vdd_3v3_reg>;
-               vl-supply = <&vdd_3v3_reg>;
-               va-supply = <&vdd_3v3_reg>;
-       };
-
-       codec_spi: cs4271@0 {
-               compatible = "cirrus,cs4271";
-               reg = <0x0>;
-               reset-gpio = <&gpio 23 0>;
-               spi-max-frequency = <6000000>;
-       };
-
diff --git a/Bindings/sound/da7213.txt b/Bindings/sound/da7213.txt
deleted file mode 100644 (file)
index 94584c9..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-Dialog Semiconductor DA7212/DA7213 Audio Codec bindings
-
-======
-
-Required properties:
-- compatible : Should be "dlg,da7212" or "dlg,da7213"
-- reg: Specifies the I2C slave address
-
-Optional properties:
-- clocks : phandle and clock specifier for codec MCLK.
-- clock-names : Clock name string for 'clocks' attribute, should be "mclk".
-
-- dlg,micbias1-lvl : Voltage (mV) for Mic Bias 1
-       [<1600>, <2200>, <2500>, <3000>]
-- dlg,micbias2-lvl : Voltage (mV) for Mic Bias 2
-       [<1600>, <2200>, <2500>, <3000>]
-- dlg,dmic-data-sel : DMIC channel select based on clock edge.
-       ["lrise_rfall", "lfall_rrise"]
-- dlg,dmic-samplephase : When to sample audio from DMIC.
-       ["on_clkedge", "between_clkedge"]
-- dlg,dmic-clkrate : DMIC clock frequency (Hz).
-       [<1500000>, <3000000>]
-
- - VDDA-supply : Regulator phandle for Analogue power supply
- - VDDMIC-supply : Regulator phandle for Mic Bias
- - VDDIO-supply : Regulator phandle for I/O power supply
-
-======
-
-Example:
-
-       codec_i2c: da7213@1a {
-               compatible = "dlg,da7213";
-               reg = <0x1a>;
-
-               clocks = <&clks 201>;
-               clock-names = "mclk";
-
-               dlg,micbias1-lvl = <2500>;
-               dlg,micbias2-lvl = <2500>;
-
-               dlg,dmic-data-sel = "lrise_rfall";
-               dlg,dmic-samplephase = "between_clkedge";
-               dlg,dmic-clkrate = <3000000>;
-       };
index 7735e08d35ba147e3a4a815ada8d31081c6338e8..beef193aaaeba0afd4eeeab38d5a2ff03c83da4f 100644 (file)
@@ -102,21 +102,21 @@ properties:
     default: 2
 
   interrupts:
-    anyOf:
-      - minItems: 1
-        items:
-          - description: TX interrupt
-          - description: RX interrupt
-      - items:
-          - description: common/combined interrupt
+    minItems: 1
+    maxItems: 2
 
   interrupt-names:
     oneOf:
-      - minItems: 1
+      - description: TX interrupt
+        const: tx
+      - description: RX interrupt
+        const: rx
+      - description: TX and RX interrupts
         items:
           - const: tx
           - const: rx
-      - const: common
+      - description: Common/combined interrupt
+        const: common
 
   fck_parent:
     $ref: /schemas/types.yaml#/definitions/string
diff --git a/Bindings/sound/dlg,da7213.yaml b/Bindings/sound/dlg,da7213.yaml
new file mode 100644 (file)
index 0000000..c2dede1
--- /dev/null
@@ -0,0 +1,103 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/dlg,da7213.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Dialog Semiconductor DA7212/DA7213 Audio Codec
+
+maintainers:
+  - Support Opensource <support.opensource@diasemi.com>
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - dlg,da7212
+      - dlg,da7213
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: mclk
+
+  "#sound-dai-cells":
+    const: 0
+
+  dlg,micbias1-lvl:
+    description: Voltage (mV) for Mic Bias 1
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [ 1600, 2200, 2500, 3000 ]
+
+  dlg,micbias2-lvl:
+    description: Voltage (mV) for Mic Bias 2
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [ 1600, 2200, 2500, 3000 ]
+
+  dlg,dmic-data-sel:
+    description: DMIC channel select based on clock edge
+    enum: [ lrise_rfall, lfall_rrise ]
+
+  dlg,dmic-samplephase:
+    description: When to sample audio from DMIC
+    enum: [ on_clkedge, between_clkedge ]
+
+  dlg,dmic-clkrate:
+    description: DMIC clock frequency (Hz)
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [ 1500000, 3000000 ]
+
+  VDDA-supply:
+    description: Analogue power supply
+
+  VDDIO-supply:
+    description: I/O power supply
+
+  VDDMIC-supply:
+    description: Mic Bias
+
+  VDDSP-supply:
+    description: Speaker supply
+
+  ports:
+    $ref: audio-graph-port.yaml#/definitions/ports
+
+  port:
+    $ref: audio-graph-port.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        codec@1a {
+            compatible = "dlg,da7213";
+            reg = <0x1a>;
+
+            clocks = <&clks 201>;
+            clock-names = "mclk";
+
+            #sound-dai-cells = <0>;
+
+            dlg,micbias1-lvl = <2500>;
+            dlg,micbias2-lvl = <2500>;
+
+            dlg,dmic-data-sel = "lrise_rfall";
+            dlg,dmic-samplephase = "between_clkedge";
+            dlg,dmic-clkrate = <3000000>;
+        };
+    };
index 8c82d47375ec769a970d1cae483f2f1c86539cd4..d51431df7acf9c8a2df78c1f8085634cb1d9e2a2 100644 (file)
@@ -32,7 +32,7 @@ properties:
     description: |
       just the value of reg 57. Bit(3) decides whether the jack polarity is inverted.
       Bit(2) decides whether the button on the headset is inverted.
-      Bit(1)/(0) decides the mic properity to be OMTP/CTIA or auto.
+      Bit(1)/(0) decides the mic property to be OMTP/CTIA or auto.
     minimum: 0x00
     maximum: 0x0f
     default: 0x0f
diff --git a/Bindings/sound/fsl,imx-audio-es8328.yaml b/Bindings/sound/fsl,imx-audio-es8328.yaml
new file mode 100644 (file)
index 0000000..5eb6f58
--- /dev/null
@@ -0,0 +1,111 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/fsl,imx-audio-es8328.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale i.MX audio complex with ES8328 codec
+
+maintainers:
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+
+allOf:
+  - $ref: sound-card-common.yaml#
+
+properties:
+  compatible:
+    const: fsl,imx-audio-es8328
+
+  model:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: The user-visible name of this sound complex
+
+  ssi-controller:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: The phandle of the i.MX SSI controller
+
+  jack-gpio:
+    description: Optional GPIO for headphone jack
+    maxItems: 1
+
+  audio-amp-supply:
+    description: Power regulator for speaker amps
+
+  audio-codec:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: The phandle to the ES8328 audio codec
+
+  audio-routing:
+    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
+    description: |
+      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,
+      ES8328 pins, and the jacks on the board:
+
+      Power supplies:
+        * audio-amp
+
+      ES8328 pins:
+        * LOUT1
+        * LOUT2
+        * ROUT1
+        * ROUT2
+        * LINPUT1
+        * LINPUT2
+        * RINPUT1
+        * RINPUT2
+        * Mic PGA
+
+      Board connectors:
+        * Headphone
+        * Speaker
+        * Mic Jack
+
+  mux-int-port:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: The internal port of the i.MX audio muxer (AUDMUX)
+    enum: [1, 2, 7]
+    default: 1
+
+  mux-ext-port:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: The external port of the i.MX audio muxer (AUDMIX)
+    enum: [3, 4, 5, 6]
+    default: 3
+
+required:
+  - compatible
+  - model
+  - ssi-controller
+  - jack-gpio
+  - audio-amp-supply
+  - audio-codec
+  - audio-routing
+  - mux-int-port
+  - mux-ext-port
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    sound {
+        compatible = "fsl,imx-audio-es8328";
+        model = "imx-audio-es8328";
+        ssi-controller = <&ssi1>;
+        audio-codec = <&codec>;
+        jack-gpio = <&gpio5 15 0>;
+        audio-amp-supply = <&reg_audio_amp>;
+        audio-routing =
+            "Speaker", "LOUT2",
+            "Speaker", "ROUT2",
+            "Speaker", "audio-amp",
+            "Headphone", "ROUT1",
+            "Headphone", "LOUT1",
+            "LINPUT1", "Mic Jack",
+            "RINPUT1", "Mic Jack",
+            "Mic Jack", "Mic Bias";
+        mux-int-port = <1>;
+        mux-ext-port = <3>;
+    };
diff --git a/Bindings/sound/fsl,saif.yaml b/Bindings/sound/fsl,saif.yaml
new file mode 100644 (file)
index 0000000..0b5db6b
--- /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/sound/fsl,saif.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale MXS Serial Audio Interface (SAIF)
+
+maintainers:
+  - Lukasz Majewski <lukma@denx.de>
+
+allOf:
+  - $ref: dai-common.yaml#
+
+description:
+  The SAIF is based on I2S module that is used to communicate with audio codecs,
+  but only with half-duplex manner (i.e. it can either transmit or receive PCM
+  audio).
+
+properties:
+  compatible:
+    const: fsl,imx28-saif
+
+  reg:
+    maxItems: 1
+
+  "#sound-dai-cells":
+    const: 0
+
+  interrupts:
+    maxItems: 1
+
+  dmas:
+    maxItems: 1
+
+  dma-names:
+    const: rx-tx
+
+  "#clock-cells":
+    description: Configure the I2S device as MCLK clock provider.
+    const: 0
+
+  clocks:
+    maxItems: 1
+
+  fsl,saif-master:
+    description: Indicate that saif is a slave and its phandle points to master
+    $ref: /schemas/types.yaml#/definitions/phandle
+
+required:
+  - compatible
+  - reg
+  - "#sound-dai-cells"
+  - interrupts
+  - dmas
+  - dma-names
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    saif0: saif@80042000 {
+        compatible = "fsl,imx28-saif";
+        reg = <0x80042000 2000>;
+        #sound-dai-cells = <0>;
+        interrupts = <59>;
+        dmas = <&dma_apbx 4>;
+        dma-names = "rx-tx";
+        #clock-cells = <0>;
+        clocks = <&clks 53>;
+    };
+  - |
+    saif1: saif@80046000 {
+        compatible = "fsl,imx28-saif";
+        reg = <0x80046000 2000>;
+        #sound-dai-cells = <0>;
+        interrupts = <58>;
+        dmas = <&dma_apbx 5>;
+        dma-names = "rx-tx";
+        clocks = <&clks 53>;
+        fsl,saif-master = <&saif0>;
+    };
diff --git a/Bindings/sound/imx-audio-es8328.txt b/Bindings/sound/imx-audio-es8328.txt
deleted file mode 100644 (file)
index 07b68ab..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-Freescale i.MX audio complex with ES8328 codec
-
-Required properties:
-- compatible       : "fsl,imx-audio-es8328"
-- model            : The user-visible name of this sound complex
-- ssi-controller   : The phandle of the i.MX SSI controller
-- jack-gpio        : Optional GPIO for headphone jack
-- audio-amp-supply : Power regulator for speaker amps
-- audio-codec      : The phandle of the ES8328 audio codec
-- audio-routing    : 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, ES8328
-                    pins, and the jacks on the board:
-
-                       Power supplies:
-                          * audio-amp
-
-                       ES8328 pins:
-                          * LOUT1
-                          * LOUT2
-                          * ROUT1
-                          * ROUT2
-                          * LINPUT1
-                          * LINPUT2
-                          * RINPUT1
-                          * RINPUT2
-                          * Mic PGA
-
-                       Board connectors:
-                          * Headphone
-                          * Speaker
-                          * Mic Jack
-- mux-int-port     : The internal port of the i.MX audio muxer (AUDMUX)
-- mux-ext-port     : The external port of the i.MX audio muxer (AUDMIX)
-
-Note: The AUDMUX port numbering should start at 1, which is consistent with
-hardware manual.
-
-Example:
-
-sound {
-       compatible = "fsl,imx-audio-es8328";
-       model = "imx-audio-es8328";
-       ssi-controller = <&ssi1>;
-       audio-codec = <&codec>;
-       jack-gpio = <&gpio5 15 0>;
-       audio-amp-supply = <&reg_audio_amp>;
-       audio-routing =
-               "Speaker", "LOUT2",
-               "Speaker", "ROUT2",
-               "Speaker", "audio-amp",
-               "Headphone", "ROUT1",
-               "Headphone", "LOUT1",
-               "LINPUT1", "Mic Jack",
-               "RINPUT1", "Mic Jack",
-               "Mic Jack", "Mic Bias";
-       mux-int-port = <1>;
-       mux-ext-port = <3>;
-};
diff --git a/Bindings/sound/mediatek,mt8365-afe.yaml b/Bindings/sound/mediatek,mt8365-afe.yaml
new file mode 100644 (file)
index 0000000..45ad56d
--- /dev/null
@@ -0,0 +1,130 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/mediatek,mt8365-afe.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Audio Front End PCM controller for MT8365
+
+maintainers:
+  - Alexandre Mergnat <amergnat@baylibre.com>
+
+properties:
+  compatible:
+    const: mediatek,mt8365-afe-pcm
+
+  reg:
+    maxItems: 1
+
+  "#sound-dai-cells":
+    const: 0
+
+  clocks:
+    items:
+      - description: 26M clock
+      - description: mux for audio clock
+      - description: audio i2s0 mck
+      - description: audio i2s1 mck
+      - description: audio i2s2 mck
+      - description: audio i2s3 mck
+      - description: engen 1 clock
+      - description: engen 2 clock
+      - description: audio 1 clock
+      - description: audio 2 clock
+      - description: mux for i2s0
+      - description: mux for i2s1
+      - description: mux for i2s2
+      - description: mux for i2s3
+
+  clock-names:
+    items:
+      - const: top_clk26m_clk
+      - const: top_audio_sel
+      - const: audio_i2s0_m
+      - const: audio_i2s1_m
+      - const: audio_i2s2_m
+      - const: audio_i2s3_m
+      - const: engen1
+      - const: engen2
+      - const: aud1
+      - const: aud2
+      - const: i2s0_m_sel
+      - const: i2s1_m_sel
+      - const: i2s2_m_sel
+      - const: i2s3_m_sel
+
+  interrupts:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  mediatek,dmic-mode:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Indicates how many data pins are used to transmit two channels of PDM
+      signal. 1 means two wires, 0 means one wire. Default value is 0.
+    enum:
+      - 0 # one wire
+      - 1 # two wires
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+  - power-domains
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/mediatek,mt8365-clk.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/power/mediatek,mt8365-power.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        audio-controller@11220000 {
+            compatible = "mediatek,mt8365-afe-pcm";
+            reg = <0 0x11220000 0 0x1000>;
+            #sound-dai-cells = <0>;
+            clocks = <&clk26m>,
+                     <&topckgen CLK_TOP_AUDIO_SEL>,
+                     <&topckgen CLK_TOP_AUD_I2S0_M>,
+                     <&topckgen CLK_TOP_AUD_I2S1_M>,
+                     <&topckgen CLK_TOP_AUD_I2S2_M>,
+                     <&topckgen CLK_TOP_AUD_I2S3_M>,
+                     <&topckgen CLK_TOP_AUD_ENGEN1_SEL>,
+                     <&topckgen CLK_TOP_AUD_ENGEN2_SEL>,
+                     <&topckgen CLK_TOP_AUD_1_SEL>,
+                     <&topckgen CLK_TOP_AUD_2_SEL>,
+                     <&topckgen CLK_TOP_APLL_I2S0_SEL>,
+                     <&topckgen CLK_TOP_APLL_I2S1_SEL>,
+                     <&topckgen CLK_TOP_APLL_I2S2_SEL>,
+                     <&topckgen CLK_TOP_APLL_I2S3_SEL>;
+            clock-names = "top_clk26m_clk",
+                          "top_audio_sel",
+                          "audio_i2s0_m",
+                          "audio_i2s1_m",
+                          "audio_i2s2_m",
+                          "audio_i2s3_m",
+                          "engen1",
+                          "engen2",
+                          "aud1",
+                          "aud2",
+                          "i2s0_m_sel",
+                          "i2s1_m_sel",
+                          "i2s2_m_sel",
+                          "i2s3_m_sel";
+            interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
+            power-domains = <&spm MT8365_POWER_DOMAIN_AUDIO>;
+            mediatek,dmic-mode = <1>;
+        };
+    };
+
+...
diff --git a/Bindings/sound/mediatek,mt8365-mt6357.yaml b/Bindings/sound/mediatek,mt8365-mt6357.yaml
new file mode 100644 (file)
index 0000000..ff9ebb6
--- /dev/null
@@ -0,0 +1,107 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/mediatek,mt8365-mt6357.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek MT8365 ASoC sound card
+
+maintainers:
+  - Alexandre Mergnat <amergnat@baylibre.com>
+
+properties:
+  compatible:
+    const: mediatek,mt8365-mt6357
+
+  pinctrl-names:
+    minItems: 1
+    items:
+      - const: default
+      - const: dmic
+      - const: miso_off
+      - const: miso_on
+      - const: mosi_off
+      - const: mosi_on
+
+  mediatek,platform:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: The phandle of MT8365 ASoC platform.
+
+patternProperties:
+  "^dai-link-[0-9]+$":
+    type: object
+    description:
+      Container for dai-link level properties and CODEC sub-nodes.
+
+    properties:
+      codec:
+        type: object
+        description: Holds subnode which indicates codec dai.
+
+        properties:
+          sound-dai:
+            maxItems: 1
+            description: phandle of the codec DAI
+
+        additionalProperties: false
+
+      link-name:
+        description: Indicates dai-link name and PCM stream name
+        enum:
+          - I2S_IN_BE
+          - I2S_OUT_BE
+          - PCM1_BE
+          - PDM1_BE
+          - PDM2_BE
+          - PDM3_BE
+          - PDM4_BE
+          - SPDIF_IN_BE
+          - SPDIF_OUT_BE
+          - TDM_IN_BE
+          - TDM_OUT_BE
+
+      sound-dai:
+        maxItems: 1
+        description: phandle of the CPU DAI
+
+    required:
+      - link-name
+      - sound-dai
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - pinctrl-names
+  - mediatek,platform
+
+additionalProperties: false
+
+examples:
+  - |
+    sound {
+        compatible = "mediatek,mt8365-mt6357";
+        pinctrl-names = "default",
+                        "dmic",
+                        "miso_off",
+                        "miso_on",
+                        "mosi_off",
+                        "mosi_on";
+        pinctrl-0 = <&aud_default_pins>;
+        pinctrl-1 = <&aud_dmic_pins>;
+        pinctrl-2 = <&aud_miso_off_pins>;
+        pinctrl-3 = <&aud_miso_on_pins>;
+        pinctrl-4 = <&aud_mosi_off_pins>;
+        pinctrl-5 = <&aud_mosi_on_pins>;
+        mediatek,platform = <&afe>;
+
+        /* hdmi interface */
+        dai-link-0 {
+            link-name = "I2S_OUT_BE";
+            sound-dai = <&afe>;
+
+            codec {
+                sound-dai = <&it66121hdmitx>;
+            };
+        };
+    };
index 2f43c684ab88d9deb8010ef323d47d9f74909adf..7fbab5871be4a7b0d50c187789ab9332fce9cb63 100644 (file)
@@ -13,6 +13,9 @@ description:
   The Microchip Sony/Philips Digital Interface Receiver is a serial port
   compliant with the IEC-60958 standard.
 
+allOf:
+  - $ref: dai-common.yaml#
+
 properties:
   "#sound-dai-cells":
     const: 0
@@ -53,7 +56,7 @@ required:
   - dmas
   - dma-names
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/sound/mxs-saif.txt b/Bindings/sound/mxs-saif.txt
deleted file mode 100644 (file)
index 7ba07a1..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-* Freescale MXS Serial Audio Interface (SAIF)
-
-Required properties:
-- compatible: Should be "fsl,<chip>-saif"
-- reg: Should contain registers location and length
-- interrupts: Should contain ERROR interrupt number
-- dmas: DMA specifier, consisting of a phandle to DMA controller node
-  and SAIF DMA channel ID.
-  Refer to dma.txt and fsl-mxs-dma.txt for details.
-- dma-names: Must be "rx-tx".
-
-Optional properties:
-- fsl,saif-master: phandle to the master SAIF.  It's only required for
-  the slave SAIF.
-
-Note: Each SAIF controller should have an alias correctly numbered
-in "aliases" node.
-
-Example:
-
-aliases {
-       saif0 = &saif0;
-       saif1 = &saif1;
-};
-
-saif0: saif@80042000 {
-       compatible = "fsl,imx28-saif";
-       reg = <0x80042000 2000>;
-       interrupts = <59>;
-       dmas = <&dma_apbx 4>;
-       dma-names = "rx-tx";
-};
-
-saif1: saif@80046000 {
-       compatible = "fsl,imx28-saif";
-       reg = <0x80046000 2000>;
-       interrupts = <58>;
-       dmas = <&dma_apbx 5>;
-       dma-names = "rx-tx";
-       fsl,saif-master = <&saif0>;
-};
diff --git a/Bindings/sound/pcm512x.txt b/Bindings/sound/pcm512x.txt
deleted file mode 100644 (file)
index 47878a6..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-PCM512x and TAS575x audio CODECs/amplifiers
-
-These devices support both I2C and SPI (configured with pin strapping
-on the board). The TAS575x devices only support I2C.
-
-Required properties:
-
-  - compatible : One of "ti,pcm5121", "ti,pcm5122", "ti,pcm5141",
-                 "ti,pcm5142", "ti,pcm5242", "ti,tas5754" or "ti,tas5756"
-
-  - reg : the I2C address of the device for I2C, the chip select
-          number for SPI.
-
-  - AVDD-supply, DVDD-supply, and CPVDD-supply : power supplies for the
-    device, as covered in bindings/regulator/regulator.txt
-
-Optional properties:
-
-  - clocks : A clock specifier for the clock connected as SCLK.  If this
-    is absent the device will be configured to clock from BCLK.  If pll-in
-    and pll-out are specified in addition to a clock, the device is
-    configured to accept clock input on a specified gpio pin.
-
-  - pll-in, pll-out : gpio pins used to connect the pll using <1>
-    through <6>.  The device will be configured for clock input on the
-    given pll-in pin and PLL output on the given pll-out pin.  An
-    external connection from the pll-out pin to the SCLK pin is assumed.
-    Caution: the TAS-desvices only support gpios 1,2 and 3
-
-Examples:
-
-       pcm5122: pcm5122@4c {
-               compatible = "ti,pcm5122";
-               reg = <0x4c>;
-
-               AVDD-supply = <&reg_3v3_analog>;
-               DVDD-supply = <&reg_1v8>;
-               CPVDD-supply = <&reg_3v3>;
-       };
-
-
-       pcm5142: pcm5142@4c {
-               compatible = "ti,pcm5142";
-               reg = <0x4c>;
-
-               AVDD-supply = <&reg_3v3_analog>;
-               DVDD-supply = <&reg_1v8>;
-               CPVDD-supply = <&reg_3v3>;
-
-               clocks = <&sck>;
-               pll-in = <3>;
-               pll-out = <6>;
-       };
diff --git a/Bindings/sound/qcom,apq8016-sbc-sndcard.yaml b/Bindings/sound/qcom,apq8016-sbc-sndcard.yaml
new file mode 100644 (file)
index 0000000..6ad4515
--- /dev/null
@@ -0,0 +1,205 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/qcom,apq8016-sbc-sndcard.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm APQ8016 and similar sound cards
+
+maintainers:
+  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+  - Stephan Gerhold <stephan@gerhold.net>
+
+properties:
+  compatible:
+    enum:
+      - qcom,apq8016-sbc-sndcard
+      - qcom,msm8916-qdsp6-sndcard
+
+  reg:
+    items:
+      - description: Microphone I/O mux register address
+      - description: Speaker I/O mux register address
+
+  reg-names:
+    items:
+      - const: mic-iomux
+      - const: spkr-iomux
+
+  audio-routing:
+    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
+    description:
+      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.
+
+  aux-devs:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    description: |
+      List of phandles pointing to auxiliary devices, such
+      as amplifiers, to be added to the sound card.
+
+  model:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: User visible long sound card name
+
+  pin-switches:
+    description: List of widget names for which pin switches should be created.
+    $ref: /schemas/types.yaml#/definitions/string-array
+
+  widgets:
+    description: User specified audio sound widgets.
+    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
+
+patternProperties:
+  ".*-dai-link$":
+    description:
+      Each subnode represents a dai link. Subnodes of each dai links would be
+      cpu/codec dais.
+
+    type: object
+
+    properties:
+      link-name:
+        description: Indicates dai-link name and PCM stream name.
+        $ref: /schemas/types.yaml#/definitions/string
+        maxItems: 1
+
+      cpu:
+        description: Holds subnode which indicates cpu dai.
+        type: object
+        additionalProperties: false
+
+        properties:
+          sound-dai:
+            maxItems: 1
+
+      platform:
+        description: Holds subnode which indicates platform dai.
+        type: object
+        additionalProperties: false
+
+        properties:
+          sound-dai:
+            maxItems: 1
+
+      codec:
+        description: Holds subnode which indicates codec dai.
+        type: object
+        additionalProperties: false
+
+        properties:
+          sound-dai:
+            minItems: 1
+            maxItems: 8
+
+    required:
+      - link-name
+      - cpu
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - model
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/sound/qcom,lpass.h>
+    sound@7702000 {
+        compatible = "qcom,apq8016-sbc-sndcard";
+        reg = <0x07702000 0x4>, <0x07702004 0x4>;
+        reg-names = "mic-iomux", "spkr-iomux";
+
+        model = "DB410c";
+        audio-routing =
+            "AMIC2", "MIC BIAS Internal2",
+            "AMIC3", "MIC BIAS External1";
+
+        pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
+        pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
+        pinctrl-names = "default", "sleep";
+
+        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>, <&wcd_codec 0>;
+            };
+        };
+
+        tertiary-dai-link {
+            link-name = "WCD-Capture";
+            cpu {
+                sound-dai = <&lpass MI2S_TERTIARY>;
+            };
+            codec {
+                sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
+            };
+        };
+    };
+
+  - |
+    #include <dt-bindings/sound/qcom,q6afe.h>
+    #include <dt-bindings/sound/qcom,q6asm.h>
+    sound@7702000 {
+        compatible = "qcom,msm8916-qdsp6-sndcard";
+        reg = <0x07702000 0x4>, <0x07702004 0x4>;
+        reg-names = "mic-iomux", "spkr-iomux";
+
+        model = "msm8916";
+        widgets =
+            "Speaker", "Speaker",
+            "Headphone", "Headphones";
+        pin-switches = "Speaker";
+        audio-routing =
+            "Speaker", "Speaker Amp OUT",
+            "Speaker Amp IN", "HPH_R",
+            "Headphones", "HPH_L",
+            "Headphones", "HPH_R",
+            "AMIC1", "MIC BIAS Internal1",
+            "AMIC2", "MIC BIAS Internal2",
+            "AMIC3", "MIC BIAS Internal3";
+        aux-devs = <&speaker_amp>;
+
+        pinctrl-names = "default", "sleep";
+        pinctrl-0 = <&cdc_pdm_lines_act>;
+        pinctrl-1 = <&cdc_pdm_lines_sus>;
+
+        mm1-dai-link {
+            link-name = "MultiMedia1";
+            cpu {
+                sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
+            };
+        };
+
+        primary-dai-link {
+            link-name = "Primary MI2S";
+            cpu {
+                sound-dai = <&q6afedai PRIMARY_MI2S_RX>;
+            };
+            platform {
+                sound-dai = <&q6routing>;
+            };
+            codec {
+                sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
+            };
+        };
+    };
index 06b5f7be360829e6c666263e9560a7ff595688d5..6f5644a89febbdf6d488f80eecfe0ad92e0d6fca 100644 (file)
@@ -64,6 +64,7 @@ allOf:
         compatible:
           enum:
             - qcom,sc7280-lpass-wsa-macro
+            - qcom,sm8250-lpass-wsa-macro
             - qcom,sm8450-lpass-wsa-macro
             - qcom,sc8280xp-lpass-wsa-macro
     then:
@@ -79,24 +80,6 @@ allOf:
             - const: dcodec
             - const: fsgen
 
-  - if:
-      properties:
-        compatible:
-          enum:
-            - qcom,sm8250-lpass-wsa-macro
-    then:
-      properties:
-        clocks:
-          minItems: 6
-        clock-names:
-          items:
-            - const: mclk
-            - const: npl
-            - const: macro
-            - const: dcodec
-            - const: va
-            - const: fsgen
-
   - if:
       properties:
         compatible:
@@ -130,8 +113,7 @@ examples:
                <&audiocc 0>,
                <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
                <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
-               <&aoncc LPASS_CDC_VA_MCLK>,
                <&vamacro>;
-      clock-names = "mclk", "npl", "macro", "dcodec", "va", "fsgen";
+      clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
       clock-output-names = "mclk";
     };
index c9076dcd44c1168ea76212a5a420b3ac88380c6c..2e2e01493a5f4f5048aaa894a95ebfc7fd033e4f 100644 (file)
@@ -27,11 +27,10 @@ properties:
               - qcom,sm8650-sndcard
           - const: qcom,sm8450-sndcard
       - enum:
-          - qcom,apq8016-sbc-sndcard
           - qcom,apq8096-sndcard
-          - qcom,msm8916-qdsp6-sndcard
           - qcom,qcm6490-idp-sndcard
           - qcom,qcs6490-rb3gen2-sndcard
+          - qcom,qrb4210-rb2-sndcard
           - qcom,qrb5165-rb5-sndcard
           - qcom,sc7180-qdsp6-sndcard
           - qcom,sc8280xp-sndcard
@@ -58,18 +57,6 @@ properties:
     $ref: /schemas/types.yaml#/definitions/string
     description: User visible long sound card name
 
-  pin-switches:
-    description: List of widget names for which pin switches should be created.
-    $ref: /schemas/types.yaml#/definitions/string-array
-
-  widgets:
-    description: User specified audio sound widgets.
-    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
-
-  # Only valid for some compatibles (see allOf if below)
-  reg: true
-  reg-names: true
-
 patternProperties:
   ".*-dai-link$":
     description:
@@ -122,34 +109,6 @@ required:
   - compatible
   - model
 
-allOf:
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,apq8016-sbc-sndcard
-              - qcom,msm8916-qdsp6-sndcard
-    then:
-      properties:
-        reg:
-          items:
-            - description: Microphone I/O mux register address
-            - description: Speaker I/O mux register address
-        reg-names:
-          items:
-            - const: mic-iomux
-            - const: spkr-iomux
-      required:
-        - compatible
-        - model
-        - reg
-        - reg-names
-    else:
-      properties:
-        reg: false
-        reg-names: false
-
 additionalProperties: false
 
 examples:
@@ -231,98 +190,3 @@ examples:
             };
         };
     };
-
-  - |
-    #include <dt-bindings/sound/qcom,lpass.h>
-    sound@7702000 {
-        compatible = "qcom,apq8016-sbc-sndcard";
-        reg = <0x07702000 0x4>, <0x07702004 0x4>;
-        reg-names = "mic-iomux", "spkr-iomux";
-
-        model = "DB410c";
-        audio-routing =
-            "AMIC2", "MIC BIAS Internal2",
-            "AMIC3", "MIC BIAS External1";
-
-        pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
-        pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
-        pinctrl-names = "default", "sleep";
-
-        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>, <&wcd_codec 0>;
-            };
-        };
-
-        tertiary-dai-link {
-            link-name = "WCD-Capture";
-            cpu {
-                sound-dai = <&lpass MI2S_TERTIARY>;
-            };
-            codec {
-                sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
-            };
-        };
-    };
-
-  - |
-    #include <dt-bindings/sound/qcom,q6afe.h>
-    #include <dt-bindings/sound/qcom,q6asm.h>
-    sound@7702000 {
-        compatible = "qcom,msm8916-qdsp6-sndcard";
-        reg = <0x07702000 0x4>, <0x07702004 0x4>;
-        reg-names = "mic-iomux", "spkr-iomux";
-
-        model = "msm8916";
-        widgets =
-            "Speaker", "Speaker",
-            "Headphone", "Headphones";
-        pin-switches = "Speaker";
-        audio-routing =
-            "Speaker", "Speaker Amp OUT",
-            "Speaker Amp IN", "HPH_R",
-            "Headphones", "HPH_L",
-            "Headphones", "HPH_R",
-            "AMIC1", "MIC BIAS Internal1",
-            "AMIC2", "MIC BIAS Internal2",
-            "AMIC3", "MIC BIAS Internal3";
-        aux-devs = <&speaker_amp>;
-
-        pinctrl-names = "default", "sleep";
-        pinctrl-0 = <&cdc_pdm_lines_act>;
-        pinctrl-1 = <&cdc_pdm_lines_sus>;
-
-        mm1-dai-link {
-            link-name = "MultiMedia1";
-            cpu {
-                sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
-            };
-        };
-
-        primary-dai-link {
-            link-name = "Primary MI2S";
-            cpu {
-                sound-dai = <&q6afedai PRIMARY_MI2S_RX>;
-            };
-            platform {
-                sound-dai = <&q6routing>;
-            };
-            codec {
-                sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
-            };
-        };
-    };
index 248320804e5fcf950353409104a6c1cbd9835fe1..29071044c66e98130dd1d8019ac68f602f1e962d 100644 (file)
@@ -30,6 +30,18 @@ properties:
   reg:
     maxItems: 1
 
+  clocks:
+    items:
+      - description: Master clock to the CODEC
+
+  clock-names:
+    items:
+      - const: mclk
+
+  port:
+    $ref: audio-graph-port.yaml#
+    unevaluatedProperties: false
+
 required:
   - compatible
   - reg
index 07ec6247d9defc4176fa638df8d96bbf5bd46a06..6d0d1514cd4211b90aa4ead776694fcea63562f1 100644 (file)
@@ -112,6 +112,12 @@ properties:
     description: List of necessary clock names.
     # details are defined below
 
+  post-init-providers:
+    description: At least if rsnd is using DPCM connection on Audio-Graph-Card2,
+      fw_devlink might doesn't have enough information to break the cycle. rsnd
+      driver will not be probed in such case. Same problem might occur with
+      Multi-CPU/Codec or Codec2Codec.
+
   # ports is below
   port:
     $ref: audio-graph-port.yaml#/definitions/port-base
@@ -296,7 +302,7 @@ allOf:
         reg-names:
           items:
             enum:
-              - scu
+              - sru
               - ssi
               - adg
   # for Gen2/Gen3
index 8b9695f5deccb99a4d1c2da7bc07b58ca00588da..f4610eaed1e1881cb06c04e6bc798f613021786d 100644 (file)
@@ -87,6 +87,10 @@ properties:
   '#sound-dai-cells':
     const: 0
 
+  port:
+    $ref: audio-graph-port.yaml#/definitions/port-base
+    description: Connection to controller providing I2S signals
+
 required:
   - compatible
   - reg
index ecf3d7d968c80ba9821a90dcc93ecd218d9d9e39..2cf229a076f0f5169ca8148f73048cceca55042b 100644 (file)
@@ -48,6 +48,10 @@ properties:
       - const: mclk_rx
       - const: hclk
 
+  port:
+    $ref: audio-graph-port.yaml#
+    unevaluatedProperties: false
+
   resets:
     maxItems: 1
 
index b77284e3e26aa7f58a791656f2ea730189a5f63c..c3dea852cc8d34545b84ad6e3ea66e949b494d43 100644 (file)
@@ -27,11 +27,6 @@ properties:
       - const: samsung,odroid-xu4-audio
         deprecated: true
 
-  assigned-clock-parents: true
-  assigned-clock-rates: true
-  assigned-clocks: true
-  clocks: true
-
   cpu:
     type: object
     additionalProperties: false
index f6a807329a5acbfc538008721b10ac1309ccdaad..3b2f6dd5bffa02ed96ff92f585fc4e4d27fc8dc6 100644 (file)
@@ -22,6 +22,9 @@ description:
   configure the clocks of the parent serial device so that a requested baud of 38.4 kBaud
   results in the standard MIDI baud rate, and set the 'current-speed' property to 38400 (default)
 
+allOf:
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
+
 properties:
   compatible:
     const: serial-midi
index 307398ef2317d4a5f31937579a74c1409d1487df..e3d84864e0e42531d7c11e0d280d59c4644c8765 100644 (file)
@@ -77,7 +77,7 @@ Optional properties:
 
   -  st,odd-pwm-speed-mode:
        If present, PWM speed mode run on odd speed mode (341.3 kHz) on all
-       channels. If not present, normal PWM spped mode (384 kHz) will be used.
+       channels. If not present, normal PWM speed mode (384 kHz) will be used.
 
   -  st,distortion-compensation:
        If present, distortion compensation variable uses DCC coefficient.
diff --git a/Bindings/sound/ti,pcm512x.yaml b/Bindings/sound/ti,pcm512x.yaml
new file mode 100644 (file)
index 0000000..21ea9ff
--- /dev/null
@@ -0,0 +1,101 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/ti,pcm512x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: PCM512x and TAS575x audio CODECs/amplifiers
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - ti,pcm5121
+      - ti,pcm5122
+      - ti,pcm5141
+      - ti,pcm5142
+      - ti,pcm5242
+      - ti,tas5754
+      - ti,tas5756
+
+  reg:
+    maxItems: 1
+
+  AVDD-supply: true
+
+  DVDD-supply: true
+
+  CPVDD-supply: true
+
+  clocks:
+    maxItems: 1
+    description: A clock specifier for the clock connected as SCLK. If this is
+      absent the device will be configured to clock from BCLK. If pll-in and
+      pll-out are specified in addition to a clock, the device is configured to
+      accept clock input on a specified gpio pin.
+
+  '#sound-dai-cells':
+    const: 0
+
+  pll-in:
+    description: GPIO pin used to connect the pll using <1> through <6>. The
+      device will be configured for clock input on the given pll-in pin.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 1
+    maximum: 6
+
+  pll-out:
+    description: GPIO pin used to connect the pll using <1> through <6>. The
+      device will be configured for PLL output on the given pll-out pin.  An
+      external connection from the pll-out pin to the SCLK pin is assumed.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 1
+    maximum: 6
+
+required:
+  - compatible
+  - reg
+  - AVDD-supply
+  - DVDD-supply
+  - CPVDD-supply
+
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - ti,tas5754
+          - ti,tas5756
+
+then:
+  properties:
+    pll-in:
+      maximum: 3
+
+    pll-out:
+      maximum: 3
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        codec@4c {
+            compatible = "ti,pcm5142";
+            reg = <0x4c>;
+            AVDD-supply = <&reg_3v3_analog>;
+            DVDD-supply = <&reg_1v8>;
+            CPVDD-supply = <&reg_3v3>;
+            #sound-dai-cells = <0>;
+            clocks = <&sck>;
+            pll-in = <3>;
+            pll-out = <6>;
+        };
+    };
diff --git a/Bindings/sound/ti,tlv320dac3100.yaml b/Bindings/sound/ti,tlv320dac3100.yaml
new file mode 100644 (file)
index 0000000..85e937e
--- /dev/null
@@ -0,0 +1,127 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/ti,tlv320dac3100.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments - tlv320aic31xx Codec module
+
+maintainers:
+  - Shenghao Ding <shenghao-ding@ti.com>
+
+description: |
+  CODEC output pins:
+    * HPL
+    * HPR
+    * SPL, devices with stereo speaker amp
+    * SPR, devices with stereo speaker amp
+    * SPK, devices with mono speaker amp
+    * MICBIAS
+
+  CODEC input pins:
+    * MIC1LP, devices with ADC
+    * MIC1RP, devices with ADC
+    * MIC1LM, devices with ADC
+    * AIN1, devices without ADC
+    * AIN2, devices without ADC
+
+  The pins can be used in referring sound node's audio-routing property.
+
+properties:
+  compatible:
+    enum:
+      - ti,tlv320aic310x # - Generic TLV320AIC31xx with mono speaker amp
+      - ti,tlv320aic311x # - Generic TLV320AIC31xx with stereo speaker amp
+      - ti,tlv320aic3100 # - TLV320AIC3100 (mono speaker amp, no MiniDSP)
+      - ti,tlv320aic3110 # - TLV320AIC3110 (stereo speaker amp, no MiniDSP)
+      - ti,tlv320aic3120 # - TLV320AIC3120 (mono speaker amp, MiniDSP)
+      - ti,tlv320aic3111 # - TLV320AIC3111 (stereo speaker amp, MiniDSP)
+      - ti,tlv320dac3100 # - TLV320DAC3100 (no ADC, mono speaker amp, no MiniDSP)
+      - ti,tlv320dac3101 # - TLV320DAC3101 (no ADC, stereo speaker amp, no MiniDSP)
+
+  reg:
+    maxItems: 1
+
+  '#sound-dai-cells':
+    const: 0
+
+  HPVDD-supply: true
+
+  SPRVDD-supply: true
+
+  SPLVDD-supply: true
+
+  AVDD-supply: true
+
+  IOVDD-supply: true
+
+  DVDD-supply: true
+
+  reset-gpios:
+    description: GPIO specification for the active low RESET input.
+
+  ai31xx-micbias-vg:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 1
+    enum: [1, 2, 3]
+    description: |
+      MicBias Voltage setting
+        1 or MICBIAS_2_0V - MICBIAS output is powered to 2.0V
+        2 or MICBIAS_2_5V - MICBIAS output is powered to 2.5V
+        3 or MICBIAS_AVDD - MICBIAS output is connected to AVDD
+
+  ai31xx-ocmv:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1, 2, 3]
+    description: |
+      output common-mode voltage setting
+        0 - 1.35V,
+        1 - 1.5V,
+        2 - 1.65V,
+        3 - 1.8V
+
+  gpio-reset:
+    description: gpio pin number used for codec reset
+    deprecated: true
+
+
+required:
+  - compatible
+  - reg
+  - HPVDD-supply
+  - SPRVDD-supply
+  - SPLVDD-supply
+  - AVDD-supply
+  - IOVDD-supply
+  - DVDD-supply
+
+allOf:
+  - $ref: dai-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/sound/tlv320aic31xx.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        sound@18 {
+            compatible = "ti,tlv320aic311x";
+            reg = <0x18>;
+
+            ai31xx-micbias-vg = <MICBIAS_2_0V>;
+            reset-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+
+            HPVDD-supply = <&regulator>;
+            SPRVDD-supply = <&regulator>;
+            SPLVDD-supply = <&regulator>;
+            AVDD-supply = <&regulator>;
+            IOVDD-supply = <&regulator>;
+            DVDD-supply = <&regulator>;
+       };
+    };
+
diff --git a/Bindings/sound/ti,tpa6130a2.yaml b/Bindings/sound/ti,tpa6130a2.yaml
new file mode 100644 (file)
index 0000000..a42bf9b
--- /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/ti,tpa6130a2.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments - tpa6130a2 Codec module
+
+maintainers:
+  - Sebastian Reichel <sre@kernel.org>
+
+description:
+  Stereo, analog input headphone amplifier
+
+properties:
+  compatible:
+    enum:
+      - ti,tpa6130a2
+      - ti,tpa6140a2
+
+  reg:
+    maxItems: 1
+
+  Vdd-supply:
+    description: power supply regulator
+
+  power-gpio:
+    description: gpio pin to power the device
+
+required:
+  - compatible
+  - reg
+  - Vdd-supply
+
+allOf:
+  - $ref: dai-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        amplifier@60 {
+            compatible = "ti,tpa6130a2";
+            reg = <0x60>;
+            Vdd-supply = <&vmmc2>;
+            power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>;
+       };
+    };
+
diff --git a/Bindings/sound/tlv320aic31xx.txt b/Bindings/sound/tlv320aic31xx.txt
deleted file mode 100644 (file)
index bbad98d..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-Texas Instruments - tlv320aic31xx Codec module
-
-The tlv320aic31xx serial control bus communicates through I2C protocols
-
-Required properties:
-
-- compatible - "string" - One of:
-    "ti,tlv320aic310x" - Generic TLV320AIC31xx with mono speaker amp
-    "ti,tlv320aic311x" - Generic TLV320AIC31xx with stereo speaker amp
-    "ti,tlv320aic3100" - TLV320AIC3100 (mono speaker amp, no MiniDSP)
-    "ti,tlv320aic3110" - TLV320AIC3110 (stereo speaker amp, no MiniDSP)
-    "ti,tlv320aic3120" - TLV320AIC3120 (mono speaker amp, MiniDSP)
-    "ti,tlv320aic3111" - TLV320AIC3111 (stereo speaker amp, MiniDSP)
-    "ti,tlv320dac3100" - TLV320DAC3100 (no ADC, mono speaker amp, no MiniDSP)
-    "ti,tlv320dac3101" - TLV320DAC3101 (no ADC, stereo speaker amp, no MiniDSP)
-
-- reg - <int> -  I2C slave address
-- HPVDD-supply, SPRVDD-supply, SPLVDD-supply, AVDD-supply, IOVDD-supply,
-  DVDD-supply : power supplies for the device as covered in
-  Documentation/devicetree/bindings/regulator/regulator.txt
-
-
-Optional properties:
-
-- reset-gpios - GPIO specification for the active low RESET input.
-- ai31xx-micbias-vg - MicBias Voltage setting
-        1 or MICBIAS_2_0V - MICBIAS output is powered to 2.0V
-        2 or MICBIAS_2_5V - MICBIAS output is powered to 2.5V
-        3 or MICBIAS_AVDD - MICBIAS output is connected to AVDD
-       If this node is not mentioned or if the value is unknown, then
-       micbias is set to 2.0V.
-- ai31xx-ocmv - output common-mode voltage setting
-        0 - 1.35V,
-        1 - 1.5V,
-        2 - 1.65V,
-        3 - 1.8V
-
-Deprecated properties:
-
-- gpio-reset - gpio pin number used for codec reset
-
-CODEC output pins:
-  * HPL
-  * HPR
-  * SPL, devices with stereo speaker amp
-  * SPR, devices with stereo speaker amp
-  * SPK, devices with mono speaker amp
-  * MICBIAS
-
-CODEC input pins:
-  * MIC1LP, devices with ADC
-  * MIC1RP, devices with ADC
-  * MIC1LM, devices with ADC
-  * AIN1, devices without ADC
-  * AIN2, devices without ADC
-
-The pins can be used in referring sound node's audio-routing property.
-
-Example:
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/sound/tlv320aic31xx.h>
-
-tlv320aic31xx: tlv320aic31xx@18 {
-       compatible = "ti,tlv320aic311x";
-       reg = <0x18>;
-
-       ai31xx-micbias-vg = <MICBIAS_OFF>;
-
-       reset-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
-
-       HPVDD-supply = <&regulator>;
-       SPRVDD-supply = <&regulator>;
-       SPLVDD-supply = <&regulator>;
-       AVDD-supply = <&regulator>;
-       IOVDD-supply = <&regulator>;
-       DVDD-supply = <&regulator>;
-};
diff --git a/Bindings/sound/tpa6130a2.txt b/Bindings/sound/tpa6130a2.txt
deleted file mode 100644 (file)
index 6dfa740..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-Texas Instruments - tpa6130a2 Codec module
-
-The tpa6130a2 serial control bus communicates through I2C protocols
-
-Required properties:
-
-- compatible - "string" - One of:
-    "ti,tpa6130a2" - TPA6130A2
-    "ti,tpa6140a2" - TPA6140A2
-
-
-- reg - <int> -  I2C slave address
-
-- Vdd-supply - <phandle> - power supply regulator
-
-Optional properties:
-
-- power-gpio - gpio pin to power the device
-
-Example:
-
-tpa6130a2: tpa6130a2@60 {
-       compatible = "ti,tpa6130a2";
-       reg = <0x60>;
-       Vdd-supply = <&vmmc2>;
-       power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>;
-};
index eb0f9246818506bd75a7c19a27ef197afa6c4197..38a5795589de25f7b5c3e25c17894a1952db80aa 100644 (file)
@@ -15,24 +15,27 @@ description: |
   single, dual, quad or octal wire transmission modes for
   read/write access to slaves such as SPI-NOR flash.
 
-allOf:
-  - $ref: spi-controller.yaml#
-
 properties:
   compatible:
-    const: cdns,xspi-nor
+    enum:
+      - cdns,xspi-nor
+      - marvell,cn10-xspi-nor
 
   reg:
     items:
       - description: address and length of the controller register set
       - description: address and length of the Slave DMA data port
       - description: address and length of the auxiliary registers
+      - description: address and length of the xfer registers
+    minItems: 3
 
   reg-names:
     items:
       - const: io
       - const: sdma
       - const: aux
+      - const: xfer
+    minItems: 3
 
   interrupts:
     maxItems: 1
@@ -42,6 +45,27 @@ required:
   - reg
   - interrupts
 
+allOf:
+  - $ref: spi-controller.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - marvell,cn10-xspi-nor
+    then:
+      properties:
+        reg:
+          minItems: 4
+        reg-names:
+          minItems: 4
+    else:
+      properties:
+        reg:
+          maxItems: 3
+        reg-names:
+          maxItems: 3
+
 unevaluatedProperties: false
 
 examples:
diff --git a/Bindings/spi/cirrus,ep9301-spi.yaml b/Bindings/spi/cirrus,ep9301-spi.yaml
new file mode 100644 (file)
index 0000000..73980a2
--- /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/spi/cirrus,ep9301-spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: EP93xx SoC SPI controller
+
+maintainers:
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9301-spi
+      - items:
+          - enum:
+              - cirrus,ep9302-spi
+              - cirrus,ep9307-spi
+              - cirrus,ep9312-spi
+              - cirrus,ep9315-spi
+          - const: cirrus,ep9301-spi
+
+  reg:
+    items:
+      - description: SPI registers region
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: SPI Controller reference clock source
+
+  dmas:
+    items:
+      - description: rx DMA channel
+      - description: tx DMA channel
+
+  dma-names:
+    items:
+      - const: rx
+      - const: tx
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/clock/cirrus,ep9301-syscon.h>
+    spi@808a0000 {
+        compatible = "cirrus,ep9301-spi";
+        reg = <0x808a0000 0x18>;
+        interrupt-parent = <&vic1>;
+        interrupts = <21>;
+        clocks = <&syscon EP93XX_CLK_SPI>;
+        dmas = <&dma1 10 2>, <&dma1 10 1>;
+        dma-names = "rx", "tx";
+        cs-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
+    };
index b6249880c3f9275f3d38c21fd7e470187ab08c5e..e1f5bfa4433cfd15a77548cc5b24b1cdba66bd1d 100644 (file)
@@ -33,6 +33,7 @@ properties:
           - const: mediatek,mt6765-spi
       - items:
           - enum:
+              - mediatek,mt7981-spi-ipm
               - mediatek,mt7986-spi-ipm
               - mediatek,mt8188-spi-ipm
           - const: mediatek,spi-ipm
index ffa8d1b48f8bd1d2a9b891814cddf432fb8a4fe1..62a568bdbfa05fd6ce5018c1a3a0904e6ba50b40 100644 (file)
@@ -17,9 +17,14 @@ properties:
   compatible:
     oneOf:
       - items:
-          - const: microchip,mpfs-qspi
+          - enum:
+              - microchip,mpfs-qspi
+              - microchip,pic64gx-qspi
           - const: microchip,coreqspi-rtl-v2
       - const: microchip,coreqspi-rtl-v2 # FPGA QSPI
+      - items:
+          - const: microchip,pic64gx-spi
+          - const: microchip,mpfs-spi
       - const: microchip,mpfs-spi
 
   reg:
diff --git a/Bindings/spi/nxp,sc18is.yaml b/Bindings/spi/nxp,sc18is.yaml
new file mode 100644 (file)
index 0000000..43753a9
--- /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/spi/nxp,sc18is.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP SC18IS602/SC18IS603 I2C to SPI bridge
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    enum:
+      - nxp,sc18is602
+      - nxp,sc18is602b
+      - nxp,sc18is603
+
+  reg:
+    maxItems: 1
+
+  clock-frequency:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 7372000
+    description:
+      external oscillator clock frequency. The clock-frequency property is
+      relevant and needed only if the chip has an external oscillator
+      (SC18IS603).
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        spi@28 {
+            compatible = "nxp,sc18is603";
+            reg = <0x28>;
+            clock-frequency = <14744000>;
+        };
+    };
+
index 4a5f41bde00f3c40aedd0edde1f52e1f9e269ce9..902db92da83207d6e1cbd208014d05c55107a5f4 100644 (file)
@@ -21,6 +21,7 @@ properties:
           - nxp,imx8mm-fspi
           - nxp,imx8mp-fspi
           - nxp,imx8qxp-fspi
+          - nxp,imx8ulp-fspi
           - nxp,lx2160a-fspi
       - items:
           - enum:
index e4941e9212d1394ab8e3cc47c405267470d6439e..46d9d6ee0923483e874da09d4569a09e8fadcf9e 100644 (file)
@@ -35,6 +35,7 @@ properties:
               - rockchip,rk3368-spi
               - rockchip,rk3399-spi
               - rockchip,rk3568-spi
+              - rockchip,rk3576-spi
               - rockchip,rk3588-spi
               - rockchip,rv1126-spi
           - const: rockchip,rk3066-spi
diff --git a/Bindings/spi/spi-sc18is602.txt b/Bindings/spi/spi-sc18is602.txt
deleted file mode 100644 (file)
index 02f9033..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-NXP SC18IS602/SCIS603
-
-Required properties:
-       - compatible : Should be one of
-               "nxp,sc18is602"
-               "nxp,sc18is602b"
-               "nxp,sc18is603"
-       - reg: I2C bus address
-
-Optional properties:
-       - clock-frequency : external oscillator clock frequency. If not
-         specified, the SC18IS602 default frequency (7372000) will be used.
-
-The clock-frequency property is relevant and needed only if the chip has an
-external oscillator (SC18IS603).
-
-Example:
-
-       sc18is603@28 {
-               compatible = "nxp,sc18is603";
-               reg = <0x28>;
-               clock-frequency = <14744000>;
-       }
index 725303e1a364c48fe2f2ff6be1d020d3f670e4e7..70b273271754b95103b262c097ea451cfceb3493 100644 (file)
@@ -32,6 +32,9 @@ properties:
   clocks:
     maxItems: 1
 
+  power-domains:
+    maxItems: 1
+
   amlogic,ao-secure:
     description: phandle to the ao-secure syscon
     $ref: /schemas/types.yaml#/definitions/phandle
index 72048c5a0412e3cc3814d2a5f0f524867bb92c83..a12fddc8195500a0e7bdd51952a558890b35935c 100644 (file)
@@ -51,6 +51,7 @@ properties:
               - qcom,msm8996-tsens
               - qcom,msm8998-tsens
               - qcom,qcm2290-tsens
+              - qcom,sa8255p-tsens
               - qcom,sa8775p-tsens
               - qcom,sc7180-tsens
               - qcom,sc7280-tsens
@@ -310,7 +311,7 @@ examples:
 
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
-    // Example 1 (new calbiration data: for pre v1 IP):
+    // Example 1 (new calibration data: for pre v1 IP):
     thermal-sensor@4a9000 {
         compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
         reg = <0x4a9000 0x1000>, /* TM */
diff --git a/Bindings/timer/brcm,bcm2835-system-timer.txt b/Bindings/timer/brcm,bcm2835-system-timer.txt
deleted file mode 100644 (file)
index 844bd5f..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-BCM2835 System Timer
-
-The System Timer peripheral provides four 32-bit timer channels and a
-single 64-bit free running counter. Each channel has an output compare
-register, which is compared against the 32 least significant bits of the
-free running counter values, and generates an interrupt.
-
-Required properties:
-
-- compatible : should be "brcm,bcm2835-system-timer"
-- reg : Specifies base physical address and size of the registers.
-- interrupts : A list of 4 interrupt sinks; one per timer channel.
-- clock-frequency : The frequency of the clock that drives the counter, in Hz.
-
-Example:
-
-timer {
-       compatible = "brcm,bcm2835-system-timer";
-       reg = <0x7e003000 0x1000>;
-       interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
-       clock-frequency = <1000000>;
-};
diff --git a/Bindings/timer/brcm,bcm2835-system-timer.yaml b/Bindings/timer/brcm,bcm2835-system-timer.yaml
new file mode 100644 (file)
index 0000000..f5804b5
--- /dev/null
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/timer/brcm,bcm2835-system-timer.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: BCM2835 System Timer
+
+maintainers:
+  - Stefan Wahren <wahrenst@gmx.net>
+  - Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
+
+description:
+  The System Timer peripheral provides four 32-bit timer channels and a
+  single 64-bit free running counter. Each channel has an output compare
+  register, which is compared against the 32 least significant bits of the
+  free running counter values, and generates an interrupt.
+
+properties:
+  compatible:
+    const: brcm,bcm2835-system-timer
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: System Timer Compare 0 match (used by VideoCore GPU)
+      - description: System Timer Compare 1 match (usable for ARM core)
+      - description: System Timer Compare 2 match (used by VideoCore GPU)
+      - description: System Timer Compare 3 match (usable for ARM core)
+
+  clock-frequency: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    timer@7e003000 {
+      compatible = "brcm,bcm2835-system-timer";
+      reg = <0x7e003000 0x1000>;
+      interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
+      clock-frequency = <1000000>;
+    };
+...
diff --git a/Bindings/timer/fsl,ftm-timer.txt b/Bindings/timer/fsl,ftm-timer.txt
deleted file mode 100644 (file)
index aa8c402..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-Freescale FlexTimer Module (FTM) Timer
-
-Required properties:
-
-- compatible : should be "fsl,ftm-timer"
-- reg : Specifies base physical address and size of the register sets for the
-  clock event device and clock source device.
-- interrupts : Should be the clock event device interrupt.
-- clocks : The clocks provided by the SoC to drive the timer, must contain an
-  entry for each entry in clock-names.
-- clock-names : Must include the following entries:
-  o "ftm-evt"
-  o "ftm-src"
-  o "ftm-evt-counter-en"
-  o "ftm-src-counter-en"
-- big-endian: One boolean property, the big endian mode will be in use if it is
-  present, or the little endian mode will be in use for all the device registers.
-
-Example:
-ftm: ftm@400b8000 {
-       compatible = "fsl,ftm-timer";
-       reg = <0x400b8000 0x1000 0x400b9000 0x1000>;
-       interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
-       clock-names = "ftm-evt", "ftm-src",
-               "ftm-evt-counter-en", "ftm-src-counter-en";
-       clocks = <&clks VF610_CLK_FTM2>,
-               <&clks VF610_CLK_FTM3>,
-               <&clks VF610_CLK_FTM2_EXT_FIX_EN>,
-               <&clks VF610_CLK_FTM3_EXT_FIX_EN>;
-       big-endian;
-};
diff --git a/Bindings/timer/fsl,ftm-timer.yaml b/Bindings/timer/fsl,ftm-timer.yaml
new file mode 100644 (file)
index 0000000..0e4a8dd
--- /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/timer/fsl,ftm-timer.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale FlexTimer Module (FTM) Timer
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+properties:
+  compatible:
+    const: fsl,ftm-timer
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    description: The clocks provided by the SoC to drive the timer, must
+      contain an entry for each entry in clock-names.
+    minItems: 4
+    maxItems: 4
+
+  clock-names:
+    items:
+      - const: ftm-evt
+      - const: ftm-src
+      - const: ftm-evt-counter-en
+      - const: ftm-src-counter-en
+
+  big-endian: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/vf610-clock.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    ftm@400b8000 {
+        compatible = "fsl,ftm-timer";
+        reg = <0x400b8000 0x1000>;
+        interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
+        clock-names = "ftm-evt", "ftm-src", "ftm-evt-counter-en", "ftm-src-counter-en";
+        clocks = <&clks VF610_CLK_FTM2>, <&clks VF610_CLK_FTM3>,
+            <&clks VF610_CLK_FTM2_EXT_FIX_EN>, <&clks VF610_CLK_FTM3_EXT_FIX_EN>;
+        big-endian;
+    };
diff --git a/Bindings/timer/nxp,lpc3220-timer.txt b/Bindings/timer/nxp,lpc3220-timer.txt
deleted file mode 100644 (file)
index 51b05a0..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-* NXP LPC3220 timer
-
-The NXP LPC3220 timer is used on a wide range of NXP SoCs. This
-includes LPC32xx, LPC178x, LPC18xx and LPC43xx parts.
-
-Required properties:
-- compatible:
-       Should be "nxp,lpc3220-timer".
-- reg:
-       Address and length of the register set.
-- interrupts:
-       Reference to the timer interrupt
-- clocks:
-       Should contain a reference to timer clock.
-- clock-names:
-       Should contain "timerclk".
-
-Example:
-
-timer1: timer@40085000 {
-       compatible = "nxp,lpc3220-timer";
-       reg = <0x40085000 0x1000>;
-       interrupts = <13>;
-       clocks = <&ccu1 CLK_CPU_TIMER1>;
-       clock-names = "timerclk";
-};
diff --git a/Bindings/timer/nxp,lpc3220-timer.yaml b/Bindings/timer/nxp,lpc3220-timer.yaml
new file mode 100644 (file)
index 0000000..3ae2eb0
--- /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/timer/nxp,lpc3220-timer.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP LPC3220 timer
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+description: |
+  The NXP LPC3220 timer is used on a wide range of NXP SoCs. This includes
+  LPC32xx, LPC178x, LPC18xx and LPC43xx parts.
+
+properties:
+  compatible:
+    const: nxp,lpc3220-timer
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: timerclk
+
+  resets:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/lpc32xx-clock.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    timer@4004c000 {
+        compatible = "nxp,lpc3220-timer";
+        reg = <0x4004c000 0x1000>;
+        interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
+        clocks = <&clk LPC32XX_CLK_TIMER1>;
+        clock-names = "timerclk";
+    };
index 19e56b7577a08bc408e7c343d84d8e9e8cc4ce0c..6d0eb0014eee75f038cb965a965be14e0cce93d8 100644 (file)
@@ -24,6 +24,7 @@ properties:
               - rockchip,rk3228-timer
               - rockchip,rk3229-timer
               - rockchip,rk3368-timer
+              - rockchip,rk3576-timer
               - rockchip,rk3588-timer
               - rockchip,px30-timer
           - const: rockchip,rk3288-timer
diff --git a/Bindings/timer/ti,da830-timer.yaml b/Bindings/timer/ti,da830-timer.yaml
new file mode 100644 (file)
index 0000000..e9646f4
--- /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/ti,da830-timer.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI DaVinci Timer
+
+maintainers:
+  - Kousik Sanagavarapu <five231003@gmail.com>
+
+description: |
+  This is a 64-bit timer found on TI's DaVinci architecture devices. The timer
+  can be configured as a general-purpose 64-bit timer, dual general-purpose
+  32-bit timers. When configured as dual 32-bit timers, each half can operate
+  in conjunction (chain mode) or independently (unchained mode) of each other.
+
+  The timer is a free running up-counter and can generate interrupts when the
+  counter reaches preset counter values.
+
+properties:
+  compatible:
+    const: ti,da830-timer
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    minItems: 2
+    maxItems: 10
+
+  interrupt-names:
+    minItems: 2
+    items:
+      - const: tint12
+      - const: tint34
+      - const: cmpint0
+      - const: cmpint1
+      - const: cmpint2
+      - const: cmpint3
+      - const: cmpint4
+      - const: cmpint5
+      - const: cmpint6
+      - const: cmpint7
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-names
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    timer@20000 {
+        compatible = "ti,da830-timer";
+        reg = <0x20000 0x1000>;
+        interrupts = <21>, <22>;
+        interrupt-names = "tint12", "tint34";
+        clocks = <&pll0_auxclk>;
+    };
+
+...
diff --git a/Bindings/timer/ti,davinci-timer.txt b/Bindings/timer/ti,davinci-timer.txt
deleted file mode 100644 (file)
index 29bf91c..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-* Device tree bindings for Texas Instruments DaVinci timer
-
-This document provides bindings for the 64-bit timer in the DaVinci
-architecture devices. The timer can be configured as a general-purpose 64-bit
-timer, dual general-purpose 32-bit timers. When configured as dual 32-bit
-timers, each half can operate in conjunction (chain mode) or independently
-(unchained mode) of each other.
-
-The timer is a free running up-counter and can generate interrupts when the
-counter reaches preset counter values.
-
-Also see ../watchdog/davinci-wdt.txt for timers that are configurable as
-watchdog timers.
-
-Required properties:
-
-- compatible : should be "ti,da830-timer".
-- reg : specifies base physical address and count of the registers.
-- interrupts : interrupts generated by the timer.
-- interrupt-names: should be "tint12", "tint34", "cmpint0", "cmpint1",
-                  "cmpint2", "cmpint3", "cmpint4", "cmpint5", "cmpint6",
-                  "cmpint7" ("cmpintX" may be omitted if not present in the
-                  hardware).
-- clocks : the clock feeding the timer clock.
-
-Example:
-
-       clocksource: timer@20000 {
-               compatible = "ti,da830-timer";
-               reg = <0x20000 0x1000>;
-               interrupts = <21>, <22>, <74>, <75>, <76>, <77>, <78>, <79>,
-                            <80>, <81>;
-               interrupt-names = "tint12", "tint34", "cmpint0", "cmpint1",
-                                 "cmpint2", "cmpint3", "cmpint4", "cmpint5",
-                                 "cmpint6", "cmpint7";
-               clocks = <&pll0_auxclk>;
-       };
index 7913ca9b6b54020c58e387b3618922386ce03763..9bf0fb17a05e56c2b9351b4b46886c6982f328e7 100644 (file)
@@ -33,15 +33,12 @@ properties:
             # Acbel fsg032 power supply
           - acbel,fsg032
             # SMBus/I2C Digital Temperature Sensor in 6-Pin SOT with SMBus Alert and Over Temperature Pin
-          - ad,ad7414
+          - ad,ad7414  # Deprecated, use adi,ad7414
+          - adi,ad7414
             # ADM9240: Complete System Hardware Monitor for uProcessor-Based Systems
           - ad,adm9240
             # AD5110 - Nonvolatile Digital Potentiometer
           - adi,ad5110
-            # Analog Devices ADP5585 Keypad Decoder and I/O Expansion
-          - adi,adp5585
-            # Analog Devices ADP5585 Keypad Decoder and I/O Expansion with support for Row5
-          - adi,adp5585-02
             # Analog Devices ADP5589 Keypad Decoder and I/O Expansion
           - adi,adp5589
             # Analog Devices LT7182S Dual Channel 6A, 20V PolyPhase Step-Down Silent Switcher
@@ -50,8 +47,6 @@ properties:
           - ams,iaq-core
             # Temperature monitoring of Astera Labs PT5161L PCIe retimer
           - asteralabs,pt5161l
-            # i2c serial eeprom (24cxx)
-          - at,24c08
             # i2c h/w elliptic curve crypto module
           - atmel,atecc508a
             # ATSHA204 - i2c h/w symmetric crypto module
@@ -74,14 +69,10 @@ properties:
           - dallas,ds1631
             # Total-Elapsed-Time Recorder with Alarm
           - dallas,ds1682
-            # Tiny Digital Thermometer and Thermostat
-          - dallas,ds1775
             # CPU Peripheral Monitor
           - dallas,ds1780
             # CPU Supervisor with Nonvolatile Memory and Programmable I/O
           - dallas,ds4510
-            # Digital Thermometer and Thermostat
-          - dallas,ds75
             # Delta AHE-50DC Open19 power shelf fan control module
           - delta,ahe50dc-fan
             # Delta Electronics DPS-650-AB power supply
@@ -164,6 +155,8 @@ properties:
           - isil,isl29030
             # Intersil ISL68137 Digital Output Configurable PWM Controller
           - isil,isl68137
+            # Intersil ISL69260 PMBus Voltage Regulator
+          - isil,isl69260
             # Intersil ISL69269 PMBus Voltage Regulator
           - isil,isl69269
             # Intersil ISL76682 Ambient Light Sensor
@@ -182,8 +175,6 @@ properties:
           - maxim,ds1803-100
             # 10 kOhm digital potentiometer with I2C interface
           - maxim,ds3502
-            # Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs
-          - maxim,max1237
             # Temperature Sensor, I2C interface
           - maxim,max1619
             # 3-Channel Remote Temperature Sensor
@@ -198,8 +189,6 @@ properties:
           - maxim,max5484
             # PECI-to-I2C translator for PECI-to-SMBus/I2C protocol conversion
           - maxim,max6621
-            # 9-Bit/12-Bit Temperature Sensors with I²C-Compatible Serial Interface
-          - maxim,max6625
             # mCube 3-axis 8-bit digital accelerometer
           - mcube,mc3230
             # Measurement Specialities I2C temperature and humidity sensor
@@ -364,8 +353,6 @@ properties:
           - skyworks,sky81452
             # SparkFun Qwiic Joystick (COM-15168) with i2c interface
           - 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
@@ -397,8 +384,6 @@ properties:
           - ti,tmp121
           - ti,tmp122
           - ti,tmp125
-            # Digital Temperature Sensor
-          - ti,tmp275
             # TI DC-DC converter on PMBus
           - ti,tps40400
             # TI Dual channel DCAP+ multiphase controller TPS53676 with AVSBus
@@ -412,6 +397,7 @@ properties:
           - ti,tps544b25
           - ti,tps544c20
           - ti,tps544c25
+          - ti,tps546d24
             # I2C Touch-Screen Controller
           - ti,tsc2003
             # Vicor Corporation Digital Supervisor
diff --git a/Bindings/usb/fsl,ls1028a.yaml b/Bindings/usb/fsl,ls1028a.yaml
new file mode 100644 (file)
index 0000000..a44bdf3
--- /dev/null
@@ -0,0 +1,52 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/fsl,ls1028a.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale layerscape SuperSpeed DWC3 USB SoC controller
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+select:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - fsl,ls1028a-dwc3
+  required:
+    - compatible
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - fsl,ls1028a-dwc3
+      - const: snps,dwc3
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+allOf:
+  - $ref: snps,dwc3.yaml#
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@fe800000 {
+        compatible = "fsl,ls1028a-dwc3", "snps,dwc3";
+        reg = <0xfe800000 0x100000>;
+        interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+    };
diff --git a/Bindings/usb/msm-hsusb.txt b/Bindings/usb/msm-hsusb.txt
deleted file mode 100644 (file)
index afc30e9..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-MSM SoC HSUSB controllers
-
-EHCI
-
-Required properties:
-- compatible:  Should contain "qcom,ehci-host"
-- regs:                        offset and length of the register set in the memory map
-- usb-phy:             phandle for the PHY device
-
-Example EHCI controller device node:
-
-       ehci: ehci@f9a55000 {
-               compatible = "qcom,ehci-host";
-               reg = <0xf9a55000 0x400>;
-               usb-phy = <&usb_otg>;
-       };
-
-USB PHY with optional OTG:
-
-Required properties:
-- compatible:   Should contain:
-  "qcom,usb-otg-ci" for chipsets with ChipIdea 45nm PHY
-  "qcom,usb-otg-snps" for chipsets with Synopsys 28nm PHY
-
-- regs:         Offset and length of the register set in the memory map
-- interrupts:   interrupt-specifier for the OTG interrupt.
-
-- clocks:       A list of phandle + clock-specifier pairs for the
-                clocks listed in clock-names
-- clock-names:  Should contain the following:
-  "phy"         USB PHY reference clock
-  "core"        Protocol engine clock
-  "iface"       Interface bus clock
-  "alt_core"    Protocol engine clock for targets with asynchronous
-                reset methodology. (optional)
-
-- vdccx-supply: phandle to the regulator for the vdd supply for
-                digital circuit operation.
-- v1p8-supply:  phandle to the regulator for the 1.8V supply
-- v3p3-supply:  phandle to the regulator for the 3.3V supply
-
-- resets:       A list of phandle + reset-specifier pairs for the
-                resets listed in reset-names
-- reset-names:  Should contain the following:
-  "phy"         USB PHY controller reset
-  "link"        USB LINK controller reset
-
-- qcom,otg-control: OTG control (VBUS and ID notifications) can be one of
-                1 - PHY control
-                2 - PMIC control
-
-Optional properties:
-- dr_mode:      One of "host", "peripheral" or "otg". Defaults to "otg"
-
-- switch-gpio:  A phandle + gpio-specifier pair. Some boards are using Dual
-                SPDT USB Switch, witch is controlled by GPIO to de/multiplex
-                D+/D- USB lines between connectors.
-
-- qcom,phy-init-sequence: PHY configuration sequence values. This is related to Device
-                Mode Eye Diagram test. Start address at which these values will be
-                written is ULPI_EXT_VENDOR_SPECIFIC. Value of -1 is reserved as
-                "do not overwrite default value at this address".
-                For example: qcom,phy-init-sequence = < -1 0x63 >;
-                Will update only value at address ULPI_EXT_VENDOR_SPECIFIC + 1.
-
-- qcom,phy-num: Select number of pyco-phy to use, can be one of
-                0 - PHY one, default
-                1 - Second PHY
-                Some platforms may have configuration to allow USB
-                controller work with any of the two HSPHYs present.
-
-- qcom,vdd-levels: This property must be a list of three integer values
-                (no, min, max) where each value represents either a voltage
-                in microvolts or a value corresponding to voltage corner.
-
-- qcom,manual-pullup: If present, vbus is not routed to USB controller/phy
-                and controller driver therefore enables pull-up explicitly
-                before starting controller using usbcmd run/stop bit.
-
-- extcon:       phandles to external connector devices. First phandle
-                should point to external connector, which provide "USB"
-                cable events, the second should point to external connector
-                device, which provide "USB-HOST" cable events. If one of
-                the external connector devices is not required empty <0>
-                phandle should be specified.
-
-Example HSUSB OTG controller device node:
-
-    usb@f9a55000 {
-        compatible = "qcom,usb-otg-snps";
-        reg = <0xf9a55000 0x400>;
-        interrupts = <0 134 0>;
-        dr_mode = "peripheral";
-
-        clocks = <&gcc GCC_XO_CLK>, <&gcc GCC_USB_HS_SYSTEM_CLK>,
-                <&gcc GCC_USB_HS_AHB_CLK>;
-
-        clock-names = "phy", "core", "iface";
-
-        vddcx-supply = <&pm8841_s2_corner>;
-        v1p8-supply = <&pm8941_l6>;
-        v3p3-supply = <&pm8941_l24>;
-
-        resets = <&gcc GCC_USB2A_PHY_BCR>, <&gcc GCC_USB_HS_BCR>;
-        reset-names = "phy", "link";
-
-        qcom,otg-control = <1>;
-        qcom,phy-init-sequence = < -1 0x63 >;
-        qcom,vdd-levels = <1 5 7>;
-       };
index efde47a5b145565d1bd6cbe1d96196ce873fef77..18758efb8d2966d4c4af5218a0c27a9468e5912b 100644 (file)
@@ -52,6 +52,7 @@ properties:
           - qcom,sm8550-dwc3
           - qcom,sm8650-dwc3
           - qcom,x1e80100-dwc3
+          - qcom,x1e80100-dwc3-mp
       - const: qcom,dwc3
 
   reg:
@@ -164,6 +165,7 @@ allOf:
           contains:
             enum:
               - qcom,ipq4019-dwc3
+              - qcom,ipq5332-dwc3
     then:
       properties:
         clocks:
@@ -267,7 +269,6 @@ allOf:
           contains:
             enum:
               - qcom,ipq5018-dwc3
-              - qcom,ipq5332-dwc3
               - qcom,msm8994-dwc3
               - qcom,qcs404-dwc3
     then:
@@ -289,6 +290,7 @@ allOf:
               - qcom,sc8280xp-dwc3
               - qcom,sc8280xp-dwc3-mp
               - qcom,x1e80100-dwc3
+              - qcom,x1e80100-dwc3-mp
     then:
       properties:
         clocks:
@@ -428,6 +430,21 @@ allOf:
           contains:
             enum:
               - qcom,ipq5332-dwc3
+    then:
+      properties:
+        interrupts:
+          maxItems: 3
+        interrupt-names:
+          items:
+            - const: pwr_event
+            - const: dp_hs_phy_irq
+            - const: dm_hs_phy_irq
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
               - qcom,x1e80100-dwc3
     then:
       properties:
@@ -486,6 +503,7 @@ allOf:
           contains:
             enum:
               - qcom,sc8180x-dwc3-mp
+              - qcom,x1e80100-dwc3-mp
     then:
       properties:
         interrupts:
index 95ff9791baea09c76e13e144d86b5946b4aa5ded..653a89586f4e9bea761d339d8b3d14c12d222c09 100644 (file)
@@ -13,10 +13,9 @@ properties:
   compatible:
     oneOf:
       - const: ti,j721e-usb
-      - const: ti,am64-usb
       - items:
-          - const: ti,j721e-usb
           - const: ti,am64-usb
+          - const: ti,j721e-usb
 
   reg:
     maxItems: 1
index a70ce43b3dc032027172b1ed3611b5ff08d16af8..b320a39de7fe40ce4d97ed3ea264a5971a3428dd 100644 (file)
@@ -368,6 +368,8 @@ patternProperties:
     description: Devantech, Ltd.
   "^dfi,.*":
     description: DFI Inc.
+  "^dfrobot,.*":
+    description: DFRobot Corporation
   "^dh,.*":
     description: DH electronics GmbH
   "^difrnce,.*":
@@ -804,6 +806,8 @@ patternProperties:
     description: Lantiq Semiconductor
   "^lattice,.*":
     description: Lattice Semiconductor
+  "^lckfb,.*":
+    description: Shenzhen JLC Technology Group Co., Ltd.
   "^lctech,.*":
     description: Shenzen LC Technology Co., Ltd.
   "^leadtek,.*":
@@ -1476,6 +1480,8 @@ patternProperties:
     description: Terasic Inc.
   "^tesla,.*":
     description: Tesla, Inc.
+  "^test,.*":
+    description: Reserved for use by tests. For example, KUnit.
   "^tfc,.*":
     description: Three Five Corp
   "^thead,.*":
@@ -1535,6 +1541,8 @@ patternProperties:
     description: Turing Machines, Inc.
   "^tyan,.*":
     description: Tyan Computer Corporation
+  "^tyhx,.*":
+    description: NanjingTianyihexin Electronics Ltd.
   "^u-blox,.*":
     description: u-blox
   "^u-boot,.*":
diff --git a/Bindings/watchdog/cirrus,ep9301-wdt.yaml b/Bindings/watchdog/cirrus,ep9301-wdt.yaml
new file mode 100644 (file)
index 0000000..5dbe891
--- /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/watchdog/cirrus,ep9301-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic EP93xx Watchdog Timer
+
+maintainers:
+  - Nikita Shubin <nikita.shubin@maquefel.me>
+  - Alexander Sverdlin <alexander.sverdlin@gmail.com>
+
+allOf:
+  - $ref: watchdog.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: cirrus,ep9301-wdt
+      - items:
+          - enum:
+              - cirrus,ep9302-wdt
+              - cirrus,ep9307-wdt
+              - cirrus,ep9312-wdt
+              - cirrus,ep9315-wdt
+          - const: cirrus,ep9301-wdt
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    watchdog@80940000 {
+        compatible = "cirrus,ep9301-wdt";
+        reg = <0x80940000 0x08>;
+    };
diff --git a/Bindings/watchdog/davinci-wdt.txt b/Bindings/watchdog/davinci-wdt.txt
deleted file mode 100644 (file)
index aa10b8e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-Texas Instruments DaVinci/Keystone Watchdog Timer (WDT) Controller
-
-Required properties:
-- compatible : Should be "ti,davinci-wdt", "ti,keystone-wdt"
-- reg : Should contain WDT registers location and length
-
-Optional properties:
-- timeout-sec : Contains the watchdog timeout in seconds
-- clocks : the clock feeding the watchdog timer.
-          Needed if platform uses clocks.
-          See clock-bindings.txt
-
-Documentation:
-Davinci DM646x - https://www.ti.com/lit/ug/spruer5b/spruer5b.pdf
-Keystone - https://www.ti.com/lit/ug/sprugv5a/sprugv5a.pdf
-
-Examples:
-
-wdt: wdt@2320000 {
-       compatible = "ti,davinci-wdt";
-       reg = <0x02320000 0x80>;
-       timeout-sec = <30>;
-       clocks = <&clkwdtimer0>;
-};
diff --git a/Bindings/watchdog/lpc18xx-wdt.txt b/Bindings/watchdog/lpc18xx-wdt.txt
deleted file mode 100644 (file)
index 09f6b24..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-* NXP LPC18xx Watchdog Timer (WDT)
-
-Required properties:
-- compatible: Should be "nxp,lpc1850-wwdt"
-- reg: Should contain WDT registers location and length
-- clocks: Must contain an entry for each entry in clock-names.
-- clock-names: Should contain "wdtclk" and "reg"; the watchdog counter
-               clock and register interface clock respectively.
-- interrupts: Should contain WDT interrupt
-
-Examples:
-
-watchdog@40080000 {
-       compatible = "nxp,lpc1850-wwdt";
-       reg = <0x40080000 0x24>;
-       clocks = <&cgu BASE_SAFE_CLK>, <&ccu1 CLK_CPU_WWDT>;
-       clock-names = "wdtclk", "reg";
-       interrupts = <49>;
-};
diff --git a/Bindings/watchdog/nxp,lpc1850-wwdt.yaml b/Bindings/watchdog/nxp,lpc1850-wwdt.yaml
new file mode 100644 (file)
index 0000000..52878fd
--- /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/watchdog/nxp,lpc1850-wwdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP LPC18xx Watchdog Timer (WDT)
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+properties:
+  compatible:
+    const: nxp,lpc1850-wwdt
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Watchdog counter clock
+      - description: Register interface clock
+
+  clock-names:
+    items:
+      - const: wdtclk
+      - const: reg
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/lpc18xx-cgu.h>
+    #include <dt-bindings/clock/lpc18xx-ccu.h>
+
+    watchdog@40080000 {
+        compatible = "nxp,lpc1850-wwdt";
+        reg = <0x40080000 0x24>;
+        clocks = <&cgu BASE_SAFE_CLK>, <&ccu1 CLK_CPU_WWDT>;
+        clock-names = "wdtclk", "reg";
+        interrupts = <49>;
+    };
index 47587971fb0b7c3aa0a3d91ce03f93a10f6389ee..932393f8c649af238f459c48a263f06d777b819a 100644 (file)
@@ -26,6 +26,7 @@ properties:
               - qcom,apss-wdt-msm8994
               - qcom,apss-wdt-qcm2290
               - qcom,apss-wdt-qcs404
+              - qcom,apss-wdt-sa8255p
               - qcom,apss-wdt-sa8775p
               - qcom,apss-wdt-sc7180
               - qcom,apss-wdt-sc7280
index eba454d1680f15eb0207c4869c10bb52bdfa45aa..29ada89fdcdc5a8e6bb0b08127d332a4c0ecdb25 100644 (file)
@@ -75,6 +75,8 @@ properties:
               - renesas,r8a779h0-wdt     # R-Car V4M
           - const: renesas,rcar-gen4-wdt # R-Car Gen4
 
+      - const: renesas,r9a09g057-wdt       # RZ/V2H(P)
+
   reg:
     maxItems: 1
 
@@ -113,7 +115,6 @@ properties:
 required:
   - compatible
   - reg
-  - interrupts
   - clocks
 
 allOf:
@@ -137,6 +138,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - renesas,r9a09g057-wdt
               - renesas,rzg2l-wdt
               - renesas,rzv2m-wdt
     then:
@@ -171,6 +173,19 @@ allOf:
         interrupts:
           maxItems: 1
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a09g057-wdt
+    then:
+      properties:
+        interrupts: false
+        interrupt-names: false
+    else:
+      required:
+        - interrupts
+
 additionalProperties: false
 
 examples:
index c7aab0418a32022eafe9c6084a450ab1c48ebb8a..b5a3dc377070694a8de8acf8508cbe61c5372ad8 100644 (file)
@@ -29,6 +29,7 @@ properties:
               - rockchip,rk3368-wdt
               - rockchip,rk3399-wdt
               - rockchip,rk3568-wdt
+              - rockchip,rk3576-wdt
               - rockchip,rk3588-wdt
               - rockchip,rv1108-wdt
           - const: snps,dw-wdt
index 6b13bfc11e114d39770d1dd29c2d41ebed8a8de6..86bd39d50850029c93513a8ee7683c07c49bc842 100644 (file)
@@ -36,6 +36,12 @@ properties:
     minItems: 1
     maxItems: 2
 
+  interrupts:
+    maxItems: 1
+    description: Pre-timeout interrupt from the watchdog.
+
+  wakeup-source: true
+
 required:
   - compatible
   - reg
diff --git a/Bindings/watchdog/ti,davinci-wdt.yaml b/Bindings/watchdog/ti,davinci-wdt.yaml
new file mode 100644 (file)
index 0000000..3c78f60
--- /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/ti,davinci-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI DaVinci/Keystone Watchdog Timer Controller
+
+maintainers:
+  - Kousik Sanagavarapu <five231003@gmail.com>
+
+description: |
+  TI's Watchdog Timer Controller for DaVinci and Keystone Processors.
+
+  Datasheets
+
+    Davinci DM646x - https://www.ti.com/lit/ug/spruer5b/spruer5b.pdf
+    Keystone - https://www.ti.com/lit/ug/sprugv5a/sprugv5a.pdf
+
+allOf:
+  - $ref: watchdog.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: ti,keystone-wdt
+          - const: ti,davinci-wdt
+      - items:
+          - const: ti,davinci-wdt
+
+  reg:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    wdt: watchdog@22f0080 {
+        compatible = "ti,keystone-wdt", "ti,davinci-wdt";
+        reg = <0x022f0080 0x80>;
+        clocks = <&clkwdtimer0>;
+    };
+
+...
diff --git a/Bindings/watchdog/zii,rave-wdt.yaml b/Bindings/watchdog/zii,rave-wdt.yaml
new file mode 100644 (file)
index 0000000..9dbaa94
--- /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/watchdog/zii,rave-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Zodiac RAVE Watchdog Timer
+
+maintainers:
+  - Martyn Welch <martyn.welch@collabora.co.uk>
+  - Guenter Roeck <linux@roeck-us.net>
+  - Wim Van Sebroeck <wim@iguana.be>
+
+properties:
+  compatible:
+    const: zii,rave-wdt
+
+  reg:
+    maxItems: 1
+    description: i2c slave address of device, usually 0x38
+
+  reset-duration-ms:
+    description:
+      Duration of the pulse generated when the watchdog times
+      out.
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: watchdog.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        watchdog@38 {
+            compatible = "zii,rave-wdt";
+            reg = <0x38>;
+            timeout-sec = <30>;
+            reset-duration-ms = <30>;
+        };
+    };
+
diff --git a/Bindings/watchdog/ziirave-wdt.txt b/Bindings/watchdog/ziirave-wdt.txt
deleted file mode 100644 (file)
index 3d87818..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-Zodiac RAVE Watchdog Timer
-
-Required properties:
-- compatible: must be "zii,rave-wdt"
-- reg: i2c slave address of device, usually 0x38
-
-Optional Properties:
-- timeout-sec: Watchdog timeout value in seconds.
-- reset-duration-ms: Duration of the pulse generated when the watchdog times
-  out. Value in milliseconds.
-
-Example:
-
-       watchdog@38 {
-               compatible = "zii,rave-wdt";
-               reg = <0x38>;
-               timeout-sec = <30>;
-               reset-duration-ms = <30>;
-       };
index fb51acef7c678b3896543e9dd0e2e2776c660e0c..210830c688cb9fc2cb00c82f0aa9736fe3f7d433 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -100,25 +100,29 @@ clean_%:
 ifeq ($(ARCH),)
 
 ALL_DTS                := $(shell find src/* -name \*.dts)
+ALL_DTSO       := $(shell find src/* -name \*.dtso)
 
 ALL_DTB                := $(patsubst %.dts,%.dtb,$(ALL_DTS))
+ALL_DTBO       := $(patsubst %.dtso,%.dtbo,$(ALL_DTSO))
 
-$(ALL_DTB): ARCH=$(word 2,$(subst /, ,$@))
-$(ALL_DTB): FORCE
+$(ALL_DTB) $(ALL_DTBO): ARCH=$(word 2,$(subst /, ,$@))
+$(ALL_DTB) $(ALL_DTBO): FORCE
        $(Q)$(MAKE) ARCH=$(ARCH) $@
 
 else
 
 ARCH_DTS       := $(shell find src/$(ARCH) -name \*.dts)
+ARCH_DTSO      := $(shell find src/$(ARCH) -name \*.dtso)
 
 ARCH_DTB       := $(patsubst %.dts,%.dtb,$(ARCH_DTS))
+ARCH_DTBO      := $(patsubst %.dtso,%.dtbo,$(ARCH_DTSO))
 
 src    := src/$(ARCH)
 obj    := src/$(ARCH)
 
 include scripts/Kbuild.include
 
-cmd_files := $(wildcard $(foreach f,$(ARCH_DTB),$(dir $(f)).$(notdir $(f)).cmd))
+cmd_files := $(wildcard $(foreach f,$(ARCH_DTB) $(ARCH_DTBO),$(dir $(f)).$(notdir $(f)).cmd))
 
 ifneq ($(cmd_files),)
   include $(cmd_files)
@@ -143,15 +147,25 @@ cmd_dtc = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
 $(obj)/%.dtb: $(src)/%.dts FORCE
        $(call if_changed_dep,dtc)
 
+quiet_cmd_dtco = DTCO    $@
+cmd_dtco = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
+        $(DTC) -@ -O dtb -o $@ -b 0 \
+                -i $(src) $(DTC_FLAGS) \
+                -d $(depfile).dtc.tmp $(dtc-tmp) ; \
+        cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile)
+
+$(obj)/%.dtbo: $(src)/%.dtso FORCE
+       $(call if_changed_dep,dtco)
+
 PHONY += all_arch
-all_arch: $(ARCH_DTB)
+all_arch: $(ARCH_DTB) $(ARCH_DTBO)
        @:
 
 RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS \
                    -o -name .pc -o -name .hg -o -name .git \) -prune -o
 
 PHONY += clean_arch
-clean_arch: __clean-files = $(ARCH_DTB)
+clean_arch: __clean-files = $(ARCH_DTB) $(ARCH_DTBO)
 clean_arch: FORCE
        $(call cmd,clean)
        @find . $(RCS_FIND_IGNORE) \
index d6c9e9472121d2020dccf43eccaddf1988e58738..8332f8d82f96bb0c1e72980c92b59f226a1ddbe7 100644 (file)
 #define QCOM_ID_SA8540P                        461
 #define QCOM_ID_QCM4290                        469
 #define QCOM_ID_QCS4290                        470
+#define QCOM_ID_SM7325                 475
 #define QCOM_ID_SM8450_2               480
 #define QCOM_ID_SM8450_3               482
 #define QCOM_ID_SC7280                 487
 #define QCOM_ID_SC7180P                        495
 #define QCOM_ID_QCM6490                        497
+#define QCOM_ID_SM7325P                        499
 #define QCOM_ID_IPQ5000                        503
 #define QCOM_ID_IPQ0509                        504
 #define QCOM_ID_IPQ0518                        505
 #define QCOM_ID_QCM8550                        604
 #define QCOM_ID_IPQ5300                        624
 #define QCOM_ID_IPQ5321                        650
+#define QCOM_ID_QCS8300                        674
+#define QCOM_ID_QCS8275                        675
 
 /*
  * The board type and revision information, used by Qualcomm bootloaders and
index 3e3972a814c1e6dc6781b5117c463ab2b27488f7..6ede88c3992d1bea4d65096f7c60c235befedf04 100644 (file)
 #define PMC_CPU                        (PMC_MAIN + 9)
 #define PMC_MCK1               (PMC_MAIN + 10)
 
+/* SAM9X7 */
+#define PMC_PLLADIV2           (PMC_MAIN + 11)
+#define PMC_LVDSPLL            (PMC_MAIN + 12)
+
 #ifndef AT91_PMC_MOSCS
 #define AT91_PMC_MOSCS         0               /* MOSCS Flag */
 #define AT91_PMC_LOCKA         1               /* PLLA Lock */
index 08c82c22fa5f983456dde22891bccb535303f77d..607f23b83fa7287fe0403682ebf827e2df26a1ce 100644 (file)
 #define AUD_CLKID_SYSCLK_B_DIV         175
 #define AUD_CLKID_SYSCLK_A_EN          176
 #define AUD_CLKID_SYSCLK_B_EN          177
+#define AUD_CLKID_EARCRX               178
+#define AUD_CLKID_EARCRX_CMDC_SEL      179
+#define AUD_CLKID_EARCRX_CMDC_DIV      180
+#define AUD_CLKID_EARCRX_CMDC          181
+#define AUD_CLKID_EARCRX_DMAC_SEL      182
+#define AUD_CLKID_EARCRX_DMAC_DIV      183
+#define AUD_CLKID_EARCRX_DMAC          184
 
 #endif /* __AXG_AUDIO_CLKC_BINDINGS_H */
diff --git a/include/dt-bindings/clock/cirrus,ep9301-syscon.h b/include/dt-bindings/clock/cirrus,ep9301-syscon.h
new file mode 100644 (file)
index 0000000..6bb8f53
--- /dev/null
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
+#ifndef DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H
+#define DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H
+
+#define EP93XX_CLK_PLL1                0
+#define EP93XX_CLK_PLL2                1
+
+#define EP93XX_CLK_FCLK                2
+#define EP93XX_CLK_HCLK                3
+#define EP93XX_CLK_PCLK                4
+
+#define EP93XX_CLK_UART                5
+#define EP93XX_CLK_SPI         6
+#define EP93XX_CLK_PWM         7
+#define EP93XX_CLK_USB         8
+
+#define EP93XX_CLK_M2M0                9
+#define EP93XX_CLK_M2M1                10
+
+#define EP93XX_CLK_M2P0                11
+#define EP93XX_CLK_M2P1                12
+#define EP93XX_CLK_M2P2                13
+#define EP93XX_CLK_M2P3                14
+#define EP93XX_CLK_M2P4                15
+#define EP93XX_CLK_M2P5                16
+#define EP93XX_CLK_M2P6                17
+#define EP93XX_CLK_M2P7                18
+#define EP93XX_CLK_M2P8                19
+#define EP93XX_CLK_M2P9                20
+
+#define EP93XX_CLK_UART1       21
+#define EP93XX_CLK_UART2       22
+#define EP93XX_CLK_UART3       23
+
+#define EP93XX_CLK_ADC         24
+#define EP93XX_CLK_ADC_EN      25
+
+#define EP93XX_CLK_KEYPAD      26
+
+#define EP93XX_CLK_VIDEO       27
+
+#define EP93XX_CLK_I2S_MCLK    28
+#define EP93XX_CLK_I2S_SCLK    29
+#define EP93XX_CLK_I2S_LRCLK   30
+
+#endif /* DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H */
index 255e3aa94323739aeb27ee3cae4181fdde3e9653..cfede84b46b9100112196cfd01e0f90e1f7d3df8 100644 (file)
@@ -69,6 +69,8 @@
 #define CLK_GOUT_FSYS_MMC_EMBD         58
 #define CLK_GOUT_FSYS_MMC_SDIO         59
 #define CLK_GOUT_FSYS_USB30DRD         60
+#define CLK_MOUT_SHARED0_PLL           61
+#define CLK_MOUT_SHARED1_PLL           62
 
 /* CMU_CORE */
 #define CLK_MOUT_CORE_BUS_USER                 1
 #define CLK_GOUT_WDT1_PCLK             43
 
 /* CMU_FSYS */
-#define CLK_MOUT_FSYS_BUS_USER         1
-#define CLK_MOUT_FSYS_MMC_CARD_USER    2
-#define CLK_MOUT_FSYS_MMC_EMBD_USER    3
-#define CLK_MOUT_FSYS_MMC_SDIO_USER    4
-#define CLK_MOUT_FSYS_USB30DRD_USER    4
-#define CLK_GOUT_MMC_CARD_ACLK         5
-#define CLK_GOUT_MMC_CARD_SDCLKIN      6
-#define CLK_GOUT_MMC_EMBD_ACLK         7
-#define CLK_GOUT_MMC_EMBD_SDCLKIN      8
-#define CLK_GOUT_MMC_SDIO_ACLK         9
-#define CLK_GOUT_MMC_SDIO_SDCLKIN      10
+#define CLK_MOUT_FSYS_BUS_USER                 1
+#define CLK_MOUT_FSYS_MMC_CARD_USER            2
+#define CLK_MOUT_FSYS_MMC_EMBD_USER            3
+#define CLK_MOUT_FSYS_MMC_SDIO_USER            4
+#define CLK_GOUT_MMC_CARD_ACLK                 5
+#define CLK_GOUT_MMC_CARD_SDCLKIN              6
+#define CLK_GOUT_MMC_EMBD_ACLK                 7
+#define CLK_GOUT_MMC_EMBD_SDCLKIN              8
+#define CLK_GOUT_MMC_SDIO_ACLK                 9
+#define CLK_GOUT_MMC_SDIO_SDCLKIN              10
+#define CLK_MOUT_FSYS_USB30DRD_USER            11
+#define CLK_MOUT_USB_PLL                       12
+#define CLK_FOUT_USB_PLL                       13
+#define CLK_FSYS_USB20PHY_CLKCORE              14
+#define CLK_FSYS_USB30DRD_ACLK_20PHYCTRL       15
+#define CLK_FSYS_USB30DRD_ACLK_30PHYCTRL_0     16
+#define CLK_FSYS_USB30DRD_ACLK_30PHYCTRL_1     17
+#define CLK_FSYS_USB30DRD_BUS_CLK_EARLY                18
+#define CLK_FSYS_USB30DRD_REF_CLK              19
 
 #endif /* _DT_BINDINGS_CLOCK_EXYNOS_7885_H */
index 7666241520f8761bf31ced7374a75f04913fd8cd..80dacda572291305d80bc34376a890ae120cbc4b 100644 (file)
 #define CLK_GOUT_UART_PCLK             32
 #define CLK_GOUT_WDT0_PCLK             33
 #define CLK_GOUT_WDT1_PCLK             34
+#define CLK_GOUT_BUSIF_TMU_PCLK                35
 
 /* CMU_CORE */
 #define CLK_MOUT_CORE_BUS_USER         1
index 782662c3e740e82956d02f88db29e100a98af21f..b7a713a9ac8c565f9b27857dec8971cf7919d9be 100644 (file)
@@ -25,4 +25,7 @@
 #define IMX95_CLK_DISPMIX_ENG0_SEL             0
 #define IMX95_CLK_DISPMIX_ENG1_SEL             1
 
+#define IMX95_CLK_NETCMIX_ENETC0_RMII          0
+#define IMX95_CLK_NETCMIX_ENETC1_RMII          1
+
 #endif /* __DT_BINDINGS_CLOCK_IMX95_H */
index 5b1416fcde6fcc0262acb3016222c7fc1568d3cb..a2abf1995c34284719a5857d5b67eebdc2eee376 100644 (file)
 #define PCLK_CIF               352
 #define PCLK_OTP_PHY           353
 
-#define CLK_NR_CLKS            (PCLK_OTP_PHY + 1)
-
 /* pmu-clocks indices */
 
 #define PLL_GPLL               1
 #define PCLK_GPIO0_PMU         20
 #define PCLK_UART0_PMU         21
 
-#define CLKPMU_NR_CLKS         (PCLK_UART0_PMU + 1)
-
 /* soft-reset indices */
 #define SRST_CORE0_PO          0
 #define SRST_CORE1_PO          1
index b5456a64d421389027686314a15e6365312bc69f..5b0dde0809007be6e58240a79832061cfba82160 100644 (file)
 #define GCC_MMSS_GPLL0_DIV_CLK                                 184
 #define GCC_GPU_GPLL0_DIV_CLK                                  185
 #define GCC_GPU_GPLL0_CLK                                      186
+#define HLOS1_VOTE_LPASS_CORE_SMMU_CLK                         187
+#define HLOS1_VOTE_LPASS_ADSP_SMMU_CLK                         188
+#define GCC_MSS_Q6_BIMC_AXI_CLK                                        189
 
 #define PCIE_0_GDSC                                            0
 #define UFS_GDSC                                               1
 #define USB_30_GDSC                                            2
+#define LPASS_ADSP_GDSC                                                3
+#define LPASS_CORE_GDSC                                                4
 
 #define GCC_BLSP1_QUP1_BCR                                     0
 #define GCC_BLSP1_QUP2_BCR                                     1
index 90c6e021a0356dce6d38cbdd8b199c04a8c29a8b..e364006aa6eab8c1c9f8029a67087d09a73cee51 100644 (file)
 #define GCC_USB3_SEC_CLKREF_CLK                                        238
 #define GCC_UFS_MEM_CLKREF_EN                                  239
 #define GCC_UFS_CARD_CLKREF_EN                                 240
+#define GPLL9                                                  241
 
 #define GCC_EMAC_BCR                                           0
 #define GCC_GPU_BCR                                            1
 #define GCC_VIDEO_AXI0_CLK_BCR                                 42
 #define GCC_VIDEO_AXI1_CLK_BCR                                 43
 #define GCC_USB3_DP_PHY_SEC_BCR                                        44
+#define GCC_USB3_UNIPHY_MP0_BCR                                        45
+#define GCC_USB3_UNIPHY_MP1_BCR                                        46
+#define GCC_USB3UNIPHY_PHY_MP0_BCR                             47
+#define GCC_USB3UNIPHY_PHY_MP1_BCR                             48
 
 /* GCC GDSCRs */
 #define EMAC_GDSC                                              0
diff --git a/include/dt-bindings/clock/qcom,sm4450-camcc.h b/include/dt-bindings/clock/qcom,sm4450-camcc.h
new file mode 100644 (file)
index 0000000..bf07795
--- /dev/null
@@ -0,0 +1,106 @@
+/* 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_SM4450_H
+#define _DT_BINDINGS_CLK_QCOM_CAM_CC_SM4450_H
+
+/* CAM_CC clocks */
+#define CAM_CC_BPS_AHB_CLK                                     0
+#define CAM_CC_BPS_AREG_CLK                                    1
+#define CAM_CC_BPS_CLK                                         2
+#define CAM_CC_BPS_CLK_SRC                                     3
+#define CAM_CC_CAMNOC_ATB_CLK                                  4
+#define CAM_CC_CAMNOC_AXI_CLK                                  5
+#define CAM_CC_CAMNOC_AXI_CLK_SRC                              6
+#define CAM_CC_CAMNOC_AXI_HF_CLK                               7
+#define CAM_CC_CAMNOC_AXI_SF_CLK                               8
+#define CAM_CC_CCI_0_CLK                                       9
+#define CAM_CC_CCI_0_CLK_SRC                                   10
+#define CAM_CC_CCI_1_CLK                                       11
+#define CAM_CC_CCI_1_CLK_SRC                                   12
+#define CAM_CC_CORE_AHB_CLK                                    13
+#define CAM_CC_CPAS_AHB_CLK                                    14
+#define CAM_CC_CPHY_RX_CLK_SRC                                 15
+#define CAM_CC_CRE_AHB_CLK                                     16
+#define CAM_CC_CRE_CLK                                         17
+#define CAM_CC_CRE_CLK_SRC                                     18
+#define CAM_CC_CSI0PHYTIMER_CLK                                        19
+#define CAM_CC_CSI0PHYTIMER_CLK_SRC                            20
+#define CAM_CC_CSI1PHYTIMER_CLK                                        21
+#define CAM_CC_CSI1PHYTIMER_CLK_SRC                            22
+#define CAM_CC_CSI2PHYTIMER_CLK                                        23
+#define CAM_CC_CSI2PHYTIMER_CLK_SRC                            24
+#define CAM_CC_CSIPHY0_CLK                                     25
+#define CAM_CC_CSIPHY1_CLK                                     26
+#define CAM_CC_CSIPHY2_CLK                                     27
+#define CAM_CC_FAST_AHB_CLK_SRC                                        28
+#define CAM_CC_ICP_ATB_CLK                                     29
+#define CAM_CC_ICP_CLK                                         30
+#define CAM_CC_ICP_CLK_SRC                                     31
+#define CAM_CC_ICP_CTI_CLK                                     32
+#define CAM_CC_ICP_TS_CLK                                      33
+#define CAM_CC_MCLK0_CLK                                       34
+#define CAM_CC_MCLK0_CLK_SRC                                   35
+#define CAM_CC_MCLK1_CLK                                       36
+#define CAM_CC_MCLK1_CLK_SRC                                   37
+#define CAM_CC_MCLK2_CLK                                       38
+#define CAM_CC_MCLK2_CLK_SRC                                   39
+#define CAM_CC_MCLK3_CLK                                       40
+#define CAM_CC_MCLK3_CLK_SRC                                   41
+#define CAM_CC_OPE_0_AHB_CLK                                   42
+#define CAM_CC_OPE_0_AREG_CLK                                  43
+#define CAM_CC_OPE_0_CLK                                       44
+#define CAM_CC_OPE_0_CLK_SRC                                   45
+#define CAM_CC_PLL0                                            46
+#define CAM_CC_PLL0_OUT_EVEN                                   47
+#define CAM_CC_PLL0_OUT_ODD                                    48
+#define CAM_CC_PLL1                                            49
+#define CAM_CC_PLL1_OUT_EVEN                                   50
+#define CAM_CC_PLL2                                            51
+#define CAM_CC_PLL2_OUT_EVEN                                   52
+#define CAM_CC_PLL3                                            53
+#define CAM_CC_PLL3_OUT_EVEN                                   54
+#define CAM_CC_PLL4                                            55
+#define CAM_CC_PLL4_OUT_EVEN                                   56
+#define CAM_CC_SLOW_AHB_CLK_SRC                                        57
+#define CAM_CC_SOC_AHB_CLK                                     58
+#define CAM_CC_SYS_TMR_CLK                                     59
+#define CAM_CC_TFE_0_AHB_CLK                                   60
+#define CAM_CC_TFE_0_CLK                                       61
+#define CAM_CC_TFE_0_CLK_SRC                                   62
+#define CAM_CC_TFE_0_CPHY_RX_CLK                               63
+#define CAM_CC_TFE_0_CSID_CLK                                  64
+#define CAM_CC_TFE_0_CSID_CLK_SRC                              65
+#define CAM_CC_TFE_1_AHB_CLK                                   66
+#define CAM_CC_TFE_1_CLK                                       67
+#define CAM_CC_TFE_1_CLK_SRC                                   68
+#define CAM_CC_TFE_1_CPHY_RX_CLK                               69
+#define CAM_CC_TFE_1_CSID_CLK                                  70
+#define CAM_CC_TFE_1_CSID_CLK_SRC                              71
+
+/* CAM_CC power domains */
+#define CAM_CC_CAMSS_TOP_GDSC                                  0
+
+/* CAM_CC resets */
+#define CAM_CC_BPS_BCR                                         0
+#define CAM_CC_CAMNOC_BCR                                      1
+#define CAM_CC_CAMSS_TOP_BCR                                   2
+#define CAM_CC_CCI_0_BCR                                       3
+#define CAM_CC_CCI_1_BCR                                       4
+#define CAM_CC_CPAS_BCR                                                5
+#define CAM_CC_CRE_BCR                                         6
+#define CAM_CC_CSI0PHY_BCR                                     7
+#define CAM_CC_CSI1PHY_BCR                                     8
+#define CAM_CC_CSI2PHY_BCR                                     9
+#define CAM_CC_ICP_BCR                                         10
+#define CAM_CC_MCLK0_BCR                                       11
+#define CAM_CC_MCLK1_BCR                                       12
+#define CAM_CC_MCLK2_BCR                                       13
+#define CAM_CC_MCLK3_BCR                                       14
+#define CAM_CC_OPE_0_BCR                                       15
+#define CAM_CC_TFE_0_BCR                                       16
+#define CAM_CC_TFE_1_BCR                                       17
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm4450-dispcc.h b/include/dt-bindings/clock/qcom,sm4450-dispcc.h
new file mode 100644 (file)
index 0000000..ca6f2ef
--- /dev/null
@@ -0,0 +1,51 @@
+/* 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_DISP_CC_SM4450_H
+#define _DT_BINDINGS_CLK_QCOM_DISP_CC_SM4450_H
+
+/* DISP_CC clocks */
+#define DISP_CC_MDSS_AHB1_CLK                                  0
+#define DISP_CC_MDSS_AHB_CLK                                   1
+#define DISP_CC_MDSS_AHB_CLK_SRC                               2
+#define DISP_CC_MDSS_BYTE0_CLK                                 3
+#define DISP_CC_MDSS_BYTE0_CLK_SRC                             4
+#define DISP_CC_MDSS_BYTE0_DIV_CLK_SRC                         5
+#define DISP_CC_MDSS_BYTE0_INTF_CLK                            6
+#define DISP_CC_MDSS_ESC0_CLK                                  7
+#define DISP_CC_MDSS_ESC0_CLK_SRC                              8
+#define DISP_CC_MDSS_MDP1_CLK                                  9
+#define DISP_CC_MDSS_MDP_CLK                                   10
+#define DISP_CC_MDSS_MDP_CLK_SRC                               11
+#define DISP_CC_MDSS_MDP_LUT1_CLK                              12
+#define DISP_CC_MDSS_MDP_LUT_CLK                               13
+#define DISP_CC_MDSS_NON_GDSC_AHB_CLK                          14
+#define DISP_CC_MDSS_PCLK0_CLK                                 15
+#define DISP_CC_MDSS_PCLK0_CLK_SRC                             16
+#define DISP_CC_MDSS_ROT1_CLK                                  17
+#define DISP_CC_MDSS_ROT_CLK                                   18
+#define DISP_CC_MDSS_ROT_CLK_SRC                               19
+#define DISP_CC_MDSS_RSCC_AHB_CLK                              20
+#define DISP_CC_MDSS_RSCC_VSYNC_CLK                            21
+#define DISP_CC_MDSS_VSYNC1_CLK                                        22
+#define DISP_CC_MDSS_VSYNC_CLK                                 23
+#define DISP_CC_MDSS_VSYNC_CLK_SRC                             24
+#define DISP_CC_PLL0                                           25
+#define DISP_CC_PLL1                                           26
+#define DISP_CC_SLEEP_CLK                                      27
+#define DISP_CC_SLEEP_CLK_SRC                                  28
+#define DISP_CC_XO_CLK                                         29
+#define DISP_CC_XO_CLK_SRC                                     30
+
+/* DISP_CC power domains */
+#define DISP_CC_MDSS_CORE_GDSC                                 0
+#define DISP_CC_MDSS_CORE_INT2_GDSC                            1
+
+/* DISP_CC resets */
+#define DISP_CC_MDSS_CORE_BCR                                  0
+#define DISP_CC_MDSS_CORE_INT2_BCR                             1
+#define DISP_CC_MDSS_RSCC_BCR                                  2
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm4450-gpucc.h b/include/dt-bindings/clock/qcom,sm4450-gpucc.h
new file mode 100644 (file)
index 0000000..304f83e
--- /dev/null
@@ -0,0 +1,62 @@
+/* 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_GPU_CC_SM4450_H
+#define _DT_BINDINGS_CLK_QCOM_GPU_CC_SM4450_H
+
+/* GPU_CC clocks */
+#define GPU_CC_AHB_CLK                                         0
+#define GPU_CC_CB_CLK                                          1
+#define GPU_CC_CRC_AHB_CLK                                     2
+#define GPU_CC_CX_FF_CLK                                       3
+#define GPU_CC_CX_GFX3D_CLK                                    4
+#define GPU_CC_CX_GFX3D_SLV_CLK                                        5
+#define GPU_CC_CX_GMU_CLK                                      6
+#define GPU_CC_CX_SNOC_DVM_CLK                                 7
+#define GPU_CC_CXO_AON_CLK                                     8
+#define GPU_CC_CXO_CLK                                         9
+#define GPU_CC_DEMET_CLK                                       10
+#define GPU_CC_DEMET_DIV_CLK_SRC                               11
+#define GPU_CC_FF_CLK_SRC                                      12
+#define GPU_CC_FREQ_MEASURE_CLK                                        13
+#define GPU_CC_GMU_CLK_SRC                                     14
+#define GPU_CC_GX_CXO_CLK                                      15
+#define GPU_CC_GX_FF_CLK                                       16
+#define GPU_CC_GX_GFX3D_CLK                                    17
+#define GPU_CC_GX_GFX3D_CLK_SRC                                        18
+#define GPU_CC_GX_GFX3D_RDVM_CLK                               19
+#define GPU_CC_GX_GMU_CLK                                      20
+#define GPU_CC_GX_VSENSE_CLK                                   21
+#define GPU_CC_HUB_AHB_DIV_CLK_SRC                             22
+#define GPU_CC_HUB_AON_CLK                                     23
+#define GPU_CC_HUB_CLK_SRC                                     24
+#define GPU_CC_HUB_CX_INT_CLK                                  25
+#define GPU_CC_HUB_CX_INT_DIV_CLK_SRC                          26
+#define GPU_CC_MEMNOC_GFX_CLK                                  27
+#define GPU_CC_MND1X_0_GFX3D_CLK                               28
+#define GPU_CC_PLL0                                            29
+#define GPU_CC_PLL1                                            30
+#define GPU_CC_SLEEP_CLK                                       31
+#define GPU_CC_XO_CLK_SRC                                      32
+#define GPU_CC_XO_DIV_CLK_SRC                                  33
+
+/* GPU_CC power domains */
+#define GPU_CC_CX_GDSC                                         0
+#define GPU_CC_GX_GDSC                                         1
+
+/* GPU_CC resets */
+#define GPU_CC_ACD_BCR                                         0
+#define GPU_CC_CB_BCR                                          1
+#define GPU_CC_CX_BCR                                          2
+#define GPU_CC_FAST_HUB_BCR                                    3
+#define GPU_CC_FF_BCR                                          4
+#define GPU_CC_GFX3D_AON_BCR                                   5
+#define GPU_CC_GMU_BCR                                         6
+#define GPU_CC_GX_BCR                                          7
+#define GPU_CC_XO_BCR                                          8
+#define GPU_CC_GX_ACD_IROOT_BCR                                        9
+#define GPU_CC_RBCPR_BCR                                       10
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm8150-camcc.h b/include/dt-bindings/clock/qcom,sm8150-camcc.h
new file mode 100644 (file)
index 0000000..5444035
--- /dev/null
@@ -0,0 +1,135 @@
+/* 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_SM8150_H
+#define _DT_BINDINGS_CLK_QCOM_CAM_CC_SM8150_H
+
+/* CAM_CC clocks */
+#define CAM_CC_PLL0                                    0
+#define CAM_CC_PLL0_OUT_EVEN                           1
+#define CAM_CC_PLL0_OUT_ODD                            2
+#define CAM_CC_PLL1                                    3
+#define CAM_CC_PLL1_OUT_EVEN                           4
+#define CAM_CC_PLL2                                    5
+#define CAM_CC_PLL2_OUT_MAIN                           6
+#define CAM_CC_PLL3                                    7
+#define CAM_CC_PLL3_OUT_EVEN                           8
+#define CAM_CC_PLL4                                    9
+#define CAM_CC_PLL4_OUT_EVEN                           10
+#define CAM_CC_BPS_AHB_CLK                             11
+#define CAM_CC_BPS_AREG_CLK                            12
+#define CAM_CC_BPS_AXI_CLK                             13
+#define CAM_CC_BPS_CLK                                 14
+#define CAM_CC_BPS_CLK_SRC                             15
+#define CAM_CC_CAMNOC_AXI_CLK                          16
+#define CAM_CC_CAMNOC_AXI_CLK_SRC                      17
+#define CAM_CC_CAMNOC_DCD_XO_CLK                       18
+#define CAM_CC_CCI_0_CLK                               19
+#define CAM_CC_CCI_0_CLK_SRC                           20
+#define CAM_CC_CCI_1_CLK                               21
+#define CAM_CC_CCI_1_CLK_SRC                           22
+#define CAM_CC_CORE_AHB_CLK                            23
+#define CAM_CC_CPAS_AHB_CLK                            24
+#define CAM_CC_CPHY_RX_CLK_SRC                         25
+#define CAM_CC_CSI0PHYTIMER_CLK                                26
+#define CAM_CC_CSI0PHYTIMER_CLK_SRC                    27
+#define CAM_CC_CSI1PHYTIMER_CLK                                28
+#define CAM_CC_CSI1PHYTIMER_CLK_SRC                    29
+#define CAM_CC_CSI2PHYTIMER_CLK                                30
+#define CAM_CC_CSI2PHYTIMER_CLK_SRC                    31
+#define CAM_CC_CSI3PHYTIMER_CLK                                32
+#define CAM_CC_CSI3PHYTIMER_CLK_SRC                    33
+#define CAM_CC_CSIPHY0_CLK                             34
+#define CAM_CC_CSIPHY1_CLK                             35
+#define CAM_CC_CSIPHY2_CLK                             36
+#define CAM_CC_CSIPHY3_CLK                             37
+#define CAM_CC_FAST_AHB_CLK_SRC                                38
+#define CAM_CC_FD_CORE_CLK                             39
+#define CAM_CC_FD_CORE_CLK_SRC                         40
+#define CAM_CC_FD_CORE_UAR_CLK                         41
+#define CAM_CC_GDSC_CLK                                        42
+#define CAM_CC_ICP_AHB_CLK                             43
+#define CAM_CC_ICP_CLK                                 44
+#define CAM_CC_ICP_CLK_SRC                             45
+#define CAM_CC_IFE_0_AXI_CLK                           46
+#define CAM_CC_IFE_0_CLK                               47
+#define CAM_CC_IFE_0_CLK_SRC                           48
+#define CAM_CC_IFE_0_CPHY_RX_CLK                       49
+#define CAM_CC_IFE_0_CSID_CLK                          50
+#define CAM_CC_IFE_0_CSID_CLK_SRC                      51
+#define CAM_CC_IFE_0_DSP_CLK                           52
+#define CAM_CC_IFE_1_AXI_CLK                           53
+#define CAM_CC_IFE_1_CLK                               54
+#define CAM_CC_IFE_1_CLK_SRC                           55
+#define CAM_CC_IFE_1_CPHY_RX_CLK                       56
+#define CAM_CC_IFE_1_CSID_CLK                          57
+#define CAM_CC_IFE_1_CSID_CLK_SRC                      58
+#define CAM_CC_IFE_1_DSP_CLK                           59
+#define CAM_CC_IFE_LITE_0_CLK                          60
+#define CAM_CC_IFE_LITE_0_CLK_SRC                      61
+#define CAM_CC_IFE_LITE_0_CPHY_RX_CLK                  62
+#define CAM_CC_IFE_LITE_0_CSID_CLK                     63
+#define CAM_CC_IFE_LITE_0_CSID_CLK_SRC                 64
+#define CAM_CC_IFE_LITE_1_CLK                          65
+#define CAM_CC_IFE_LITE_1_CLK_SRC                      66
+#define CAM_CC_IFE_LITE_1_CPHY_RX_CLK                  67
+#define CAM_CC_IFE_LITE_1_CSID_CLK                     68
+#define CAM_CC_IFE_LITE_1_CSID_CLK_SRC                 69
+#define CAM_CC_IPE_0_AHB_CLK                           70
+#define CAM_CC_IPE_0_AREG_CLK                          71
+#define CAM_CC_IPE_0_AXI_CLK                           72
+#define CAM_CC_IPE_0_CLK                               73
+#define CAM_CC_IPE_0_CLK_SRC                           74
+#define CAM_CC_IPE_1_AHB_CLK                           75
+#define CAM_CC_IPE_1_AREG_CLK                          76
+#define CAM_CC_IPE_1_AXI_CLK                           77
+#define CAM_CC_IPE_1_CLK                               78
+#define CAM_CC_JPEG_CLK                                        79
+#define CAM_CC_JPEG_CLK_SRC                            80
+#define CAM_CC_LRME_CLK                                        81
+#define CAM_CC_LRME_CLK_SRC                            82
+#define CAM_CC_MCLK0_CLK                               83
+#define CAM_CC_MCLK0_CLK_SRC                           84
+#define CAM_CC_MCLK1_CLK                               85
+#define CAM_CC_MCLK1_CLK_SRC                           86
+#define CAM_CC_MCLK2_CLK                               87
+#define CAM_CC_MCLK2_CLK_SRC                           88
+#define CAM_CC_MCLK3_CLK                               89
+#define CAM_CC_MCLK3_CLK_SRC                           90
+#define CAM_CC_SLOW_AHB_CLK_SRC                                91
+
+/* CAM_CC power domains */
+#define TITAN_TOP_GDSC                                 0
+#define BPS_GDSC                                       1
+#define IFE_0_GDSC                                     2
+#define IFE_1_GDSC                                     3
+#define IPE_0_GDSC                                     4
+#define IPE_1_GDSC                                     5
+
+/* CAM_CC resets */
+#define CAM_CC_BPS_BCR                                 0
+#define CAM_CC_CAMNOC_BCR                              1
+#define CAM_CC_CCI_BCR                                 2
+#define CAM_CC_CPAS_BCR                                        3
+#define CAM_CC_CSI0PHY_BCR                             4
+#define CAM_CC_CSI1PHY_BCR                             5
+#define CAM_CC_CSI2PHY_BCR                             6
+#define CAM_CC_CSI3PHY_BCR                             7
+#define CAM_CC_FD_BCR                                  8
+#define CAM_CC_ICP_BCR                                 9
+#define CAM_CC_IFE_0_BCR                               10
+#define CAM_CC_IFE_1_BCR                               11
+#define CAM_CC_IFE_LITE_0_BCR                          12
+#define CAM_CC_IFE_LITE_1_BCR                          13
+#define CAM_CC_IPE_0_BCR                               14
+#define CAM_CC_IPE_1_BCR                               15
+#define CAM_CC_JPEG_BCR                                        16
+#define CAM_CC_LRME_BCR                                        17
+#define CAM_CC_MCLK0_BCR                               18
+#define CAM_CC_MCLK1_BCR                               19
+#define CAM_CC_MCLK2_BCR                               20
+#define CAM_CC_MCLK3_BCR                               21
+
+#endif
index b0a668b395a58d165b1160feec36bdf98ea86123..ed3094c694e0c690afd27b490ffd5614d146d3fb 100644 (file)
@@ -1,11 +1,10 @@
 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
 /*
- * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved
- * Copyright (c) 2023, Linaro Ltd.
+ * Copyright (c) 2022, The Linux Foundation. All rights reserved.
  */
 
-#ifndef _DT_BINDINGS_CLK_QCOM_SM8650_DISP_CC_H
-#define _DT_BINDINGS_CLK_QCOM_SM8650_DISP_CC_H
+#ifndef _DT_BINDINGS_CLK_QCOM_SM8550_DISP_CC_H
+#define _DT_BINDINGS_CLK_QCOM_SM8550_DISP_CC_H
 
 /* DISP_CC clocks */
 #define DISP_CC_MDSS_ACCU_CLK                                  0
diff --git a/include/dt-bindings/clock/renesas,r9a09g057-cpg.h b/include/dt-bindings/clock/renesas,r9a09g057-cpg.h
new file mode 100644 (file)
index 0000000..541e6d7
--- /dev/null
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+ *
+ * Copyright (C) 2024 Renesas Electronics Corp.
+ */
+#ifndef __DT_BINDINGS_CLOCK_RENESAS_R9A09G057_CPG_H__
+#define __DT_BINDINGS_CLOCK_RENESAS_R9A09G057_CPG_H__
+
+#include <dt-bindings/clock/renesas-cpg-mssr.h>
+
+/* Core Clock list */
+#define R9A09G057_SYS_0_PCLK                   0
+#define R9A09G057_CA55_0_CORE_CLK0             1
+#define R9A09G057_CA55_0_CORE_CLK1             2
+#define R9A09G057_CA55_0_CORE_CLK2             3
+#define R9A09G057_CA55_0_CORE_CLK3             4
+#define R9A09G057_CA55_0_PERIPHCLK             5
+#define R9A09G057_CM33_CLK0                    6
+#define R9A09G057_CST_0_SWCLKTCK               7
+#define R9A09G057_IOTOP_0_SHCLK                        8
+
+#endif /* __DT_BINDINGS_CLOCK_RENESAS_R9A09G057_CPG_H__ */
index a96a9870ad59bef673ba65ce3abcb07fb0ae1e56..99cc617e1e54762e363cbca0088a67714248f6c6 100644 (file)
@@ -94,8 +94,6 @@
 #define HCLK_CPU               477
 #define HCLK_PERI              478
 
-#define CLK_NR_CLKS            (HCLK_PERI + 1)
-
 /* soft-reset indices */
 #define SRST_CORE0             0
 #define SRST_CORE1             1
index de550ea56eeb0ef32e98a8549a14d750ab4d4dfb..138b6ce514ddcfd477cc10037a9c59e304db92cb 100644 (file)
 #define HCLK_S_CRYPTO          477
 #define HCLK_PERI              478
 
-#define CLK_NR_CLKS            (HCLK_PERI + 1)
-
 /* soft-reset indices */
 #define SRST_CORE0_PO          0
 #define SRST_CORE1_PO          1
index 33819acbfc561d72241ca17288daaeddf7fc0602..c6034b01b050adb3275061311512efe02f131f30 100644 (file)
 #define HCLK_CPU               477
 #define HCLK_PERI              478
 
-#define CLK_NR_CLKS            (HCLK_PERI + 1)
-
 /* soft-reset indices */
 #define SRST_CORE0             0
 #define SRST_CORE1             1
index d97840f9ee2e15e31cc2f93dcde4afe3c4a1e9e2..ce4cd72b9d3d8d1511e358ff2657a4ead6fc69a6 100644 (file)
 #define PCLK_CAN               233
 #define PCLK_OWIRE             234
 
-#define CLK_NR_CLKS            (PCLK_OWIRE + 1)
-
 /* soft-reset indices */
 
 /* cru_softrst_con0 */
index 555b4ff660ae6d3fa5b53bbf27d3b28a99d6a6c2..8885a2e98c65b63e0f643adc70a070e1ed056e24 100644 (file)
 #define HCLK_RGA               340
 #define HCLK_HDCP              341
 
-#define CLK_NR_CLKS            (HCLK_HDCP + 1)
-
 /* soft-reset indices */
 #define SRST_CORE0_PO          0
 #define SRST_CORE1_PO          1
index 83c72a163fd3a769cbf73d2d2a059315aac6d797..ebae3cbf8192b1769b2a6346145420c3ac1b3dd2 100644 (file)
 #define HCLK_BUS               477
 #define HCLK_PERI              478
 
-#define CLK_NR_CLKS            (HCLK_PERI + 1)
-
 /* soft-reset indices */
 #define SRST_CORE_B0           0
 #define SRST_CORE_B1           1
index 39169d94a44ecd889d7338430e5f3522783c8fab..4c90c7703a83256c073aacbca74aeaf2ed981d90 100644 (file)
 #define HCLK_SDIO_NOC                  495
 #define HCLK_SDIOAUDIO_NOC             496
 
-#define CLK_NR_CLKS                    (HCLK_SDIOAUDIO_NOC + 1)
-
 /* pmu-clocks indices */
 
 #define PLL_PPLL                       1
 #define PCLK_INTR_ARB_PMU              49
 #define HCLK_NOC_PMU                   50
 
-#define CLKPMU_NR_CLKS                 (HCLK_NOC_PMU + 1)
-
 /* soft-reset indices */
 
 /* cru_softrst_con0 */
diff --git a/include/dt-bindings/clock/rockchip,rk3576-cru.h b/include/dt-bindings/clock/rockchip,rk3576-cru.h
new file mode 100644 (file)
index 0000000..25aed29
--- /dev/null
@@ -0,0 +1,592 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
+/*
+ * Copyright (c) 2023 Rockchip Electronics Co. Ltd.
+ * Copyright (c) 2024 Collabora Ltd.
+ *
+ * Author: Elaine Zhang <zhangqing@rock-chips.com>
+ * Author: Detlev Casanova <detlev.casanova@collabora.com>
+ */
+
+#ifndef _DT_BINDINGS_CLK_ROCKCHIP_RK3576_H
+#define _DT_BINDINGS_CLK_ROCKCHIP_RK3576_H
+
+/* cru-clocks indices */
+
+/* cru plls */
+#define PLL_BPLL                       0
+#define PLL_LPLL                       1
+#define PLL_VPLL                       2
+#define PLL_AUPLL                      3
+#define PLL_CPLL                       4
+#define PLL_GPLL                       5
+#define PLL_PPLL                       6
+#define ARMCLK_L                       7
+#define ARMCLK_B                       8
+
+/* cru clocks */
+#define CLK_CPLL_DIV20                 9
+#define CLK_CPLL_DIV10                 10
+#define CLK_GPLL_DIV8                  11
+#define CLK_GPLL_DIV6                  12
+#define CLK_CPLL_DIV4                  13
+#define CLK_GPLL_DIV4                  14
+#define CLK_SPLL_DIV2                  15
+#define CLK_GPLL_DIV3                  16
+#define CLK_CPLL_DIV2                  17
+#define CLK_GPLL_DIV2                  18
+#define CLK_SPLL_DIV1                  19
+#define PCLK_TOP_ROOT                  20
+#define ACLK_TOP                       21
+#define HCLK_TOP                       22
+#define CLK_AUDIO_FRAC_0               23
+#define CLK_AUDIO_FRAC_1               24
+#define CLK_AUDIO_FRAC_2               25
+#define CLK_AUDIO_FRAC_3               26
+#define CLK_UART_FRAC_0                        27
+#define CLK_UART_FRAC_1                        28
+#define CLK_UART_FRAC_2                        29
+#define CLK_UART1_SRC_TOP              30
+#define CLK_AUDIO_INT_0                        31
+#define CLK_AUDIO_INT_1                        32
+#define CLK_AUDIO_INT_2                        33
+#define CLK_PDM0_SRC_TOP               34
+#define CLK_PDM1_OUT                   35
+#define CLK_GMAC0_125M_SRC             36
+#define CLK_GMAC1_125M_SRC             37
+#define LCLK_ASRC_SRC_0                        38
+#define LCLK_ASRC_SRC_1                        39
+#define REF_CLK0_OUT_PLL               40
+#define REF_CLK1_OUT_PLL               41
+#define REF_CLK2_OUT_PLL               42
+#define REFCLKO25M_GMAC0_OUT           43
+#define REFCLKO25M_GMAC1_OUT           44
+#define CLK_CIFOUT_OUT                 45
+#define CLK_GMAC0_RMII_CRU             46
+#define CLK_GMAC1_RMII_CRU             47
+#define CLK_OTPC_AUTO_RD_G             48
+#define CLK_OTP_PHY_G                  49
+#define CLK_MIPI_CAMERAOUT_M0          50
+#define CLK_MIPI_CAMERAOUT_M1          51
+#define CLK_MIPI_CAMERAOUT_M2          52
+#define MCLK_PDM0_SRC_TOP              53
+#define HCLK_AUDIO_ROOT                        54
+#define HCLK_ASRC_2CH_0                        55
+#define HCLK_ASRC_2CH_1                        56
+#define HCLK_ASRC_4CH_0                        57
+#define HCLK_ASRC_4CH_1                        58
+#define CLK_ASRC_2CH_0                 59
+#define CLK_ASRC_2CH_1                 60
+#define CLK_ASRC_4CH_0                 61
+#define CLK_ASRC_4CH_1                 62
+#define MCLK_SAI0_8CH_SRC              63
+#define MCLK_SAI0_8CH                  64
+#define HCLK_SAI0_8CH                  65
+#define HCLK_SPDIF_RX0                 66
+#define MCLK_SPDIF_RX0                 67
+#define HCLK_SPDIF_RX1                 68
+#define MCLK_SPDIF_RX1                 69
+#define MCLK_SAI1_8CH_SRC              70
+#define MCLK_SAI1_8CH                  71
+#define HCLK_SAI1_8CH                  72
+#define MCLK_SAI2_2CH_SRC              73
+#define MCLK_SAI2_2CH                  74
+#define HCLK_SAI2_2CH                  75
+#define MCLK_SAI3_2CH_SRC              76
+#define MCLK_SAI3_2CH                  77
+#define HCLK_SAI3_2CH                  78
+#define MCLK_SAI4_2CH_SRC              79
+#define MCLK_SAI4_2CH                  80
+#define HCLK_SAI4_2CH                  81
+#define HCLK_ACDCDIG_DSM               82
+#define MCLK_ACDCDIG_DSM               83
+#define CLK_PDM1                       84
+#define HCLK_PDM1                      85
+#define MCLK_PDM1                      86
+#define HCLK_SPDIF_TX0                 87
+#define MCLK_SPDIF_TX0                 88
+#define HCLK_SPDIF_TX1                 89
+#define MCLK_SPDIF_TX1                 90
+#define CLK_SAI1_MCLKOUT               91
+#define CLK_SAI2_MCLKOUT               92
+#define CLK_SAI3_MCLKOUT               93
+#define CLK_SAI4_MCLKOUT               94
+#define CLK_SAI0_MCLKOUT               95
+#define HCLK_BUS_ROOT                  96
+#define PCLK_BUS_ROOT                  97
+#define ACLK_BUS_ROOT                  98
+#define HCLK_CAN0                      99
+#define CLK_CAN0                       100
+#define HCLK_CAN1                      101
+#define CLK_CAN1                       102
+#define CLK_KEY_SHIFT                  103
+#define PCLK_I2C1                      104
+#define PCLK_I2C2                      105
+#define PCLK_I2C3                      106
+#define PCLK_I2C4                      107
+#define PCLK_I2C5                      108
+#define PCLK_I2C6                      109
+#define PCLK_I2C7                      110
+#define PCLK_I2C8                      111
+#define PCLK_I2C9                      112
+#define PCLK_WDT_BUSMCU                        113
+#define TCLK_WDT_BUSMCU                        114
+#define ACLK_GIC                       115
+#define CLK_I2C1                       116
+#define CLK_I2C2                       117
+#define CLK_I2C3                       118
+#define CLK_I2C4                       119
+#define CLK_I2C5                       120
+#define CLK_I2C6                       121
+#define CLK_I2C7                       122
+#define CLK_I2C8                       123
+#define CLK_I2C9                       124
+#define PCLK_SARADC                    125
+#define CLK_SARADC                     126
+#define PCLK_TSADC                     127
+#define CLK_TSADC                      128
+#define PCLK_UART0                     129
+#define PCLK_UART2                     130
+#define PCLK_UART3                     131
+#define PCLK_UART4                     132
+#define PCLK_UART5                     133
+#define PCLK_UART6                     134
+#define PCLK_UART7                     135
+#define PCLK_UART8                     136
+#define PCLK_UART9                     137
+#define PCLK_UART10                    138
+#define PCLK_UART11                    139
+#define SCLK_UART0                     140
+#define SCLK_UART2                     141
+#define SCLK_UART3                     142
+#define SCLK_UART4                     143
+#define SCLK_UART5                     144
+#define SCLK_UART6                     145
+#define SCLK_UART7                     146
+#define SCLK_UART8                     147
+#define SCLK_UART9                     148
+#define SCLK_UART10                    149
+#define SCLK_UART11                    150
+#define PCLK_SPI0                      151
+#define PCLK_SPI1                      152
+#define PCLK_SPI2                      153
+#define PCLK_SPI3                      154
+#define PCLK_SPI4                      155
+#define CLK_SPI0                       156
+#define CLK_SPI1                       157
+#define CLK_SPI2                       158
+#define CLK_SPI3                       159
+#define CLK_SPI4                       160
+#define PCLK_WDT0                      161
+#define TCLK_WDT0                      162
+#define PCLK_PWM1                      163
+#define CLK_PWM1                       164
+#define CLK_OSC_PWM1                   165
+#define CLK_RC_PWM1                    166
+#define PCLK_BUSTIMER0                 167
+#define PCLK_BUSTIMER1                 168
+#define CLK_TIMER0_ROOT                        169
+#define CLK_TIMER0                     170
+#define CLK_TIMER1                     171
+#define CLK_TIMER2                     172
+#define CLK_TIMER3                     173
+#define CLK_TIMER4                     174
+#define CLK_TIMER5                     175
+#define PCLK_MAILBOX0                  176
+#define PCLK_GPIO1                     177
+#define DBCLK_GPIO1                    178
+#define PCLK_GPIO2                     179
+#define DBCLK_GPIO2                    180
+#define PCLK_GPIO3                     181
+#define DBCLK_GPIO3                    182
+#define PCLK_GPIO4                     183
+#define DBCLK_GPIO4                    184
+#define ACLK_DECOM                     185
+#define PCLK_DECOM                     186
+#define DCLK_DECOM                     187
+#define CLK_TIMER1_ROOT                        188
+#define CLK_TIMER6                     189
+#define CLK_TIMER7                     190
+#define CLK_TIMER8                     191
+#define CLK_TIMER9                     192
+#define CLK_TIMER10                    193
+#define CLK_TIMER11                    194
+#define ACLK_DMAC0                     195
+#define ACLK_DMAC1                     196
+#define ACLK_DMAC2                     197
+#define ACLK_SPINLOCK                  198
+#define HCLK_I3C0                      199
+#define HCLK_I3C1                      200
+#define HCLK_BUS_CM0_ROOT              201
+#define FCLK_BUS_CM0_CORE              202
+#define CLK_BUS_CM0_RTC                        203
+#define PCLK_PMU2                      204
+#define PCLK_PWM2                      205
+#define CLK_PWM2                       206
+#define CLK_RC_PWM2                    207
+#define CLK_OSC_PWM2                   208
+#define CLK_FREQ_PWM1                  209
+#define CLK_COUNTER_PWM1               210
+#define SAI_SCLKIN_FREQ                        211
+#define SAI_SCLKIN_COUNTER             212
+#define CLK_I3C0                       213
+#define CLK_I3C1                       214
+#define PCLK_CSIDPHY1                  215
+#define PCLK_DDR_ROOT                  216
+#define PCLK_DDR_MON_CH0               217
+#define TMCLK_DDR_MON_CH0              218
+#define ACLK_DDR_ROOT                  219
+#define HCLK_DDR_ROOT                  220
+#define FCLK_DDR_CM0_CORE              221
+#define CLK_DDR_TIMER_ROOT             222
+#define CLK_DDR_TIMER0                 223
+#define CLK_DDR_TIMER1                 224
+#define TCLK_WDT_DDR                   225
+#define PCLK_WDT                       226
+#define PCLK_TIMER                     227
+#define CLK_DDR_CM0_RTC                        228
+#define ACLK_RKNN0                     229
+#define ACLK_RKNN1                     230
+#define HCLK_RKNN_ROOT                 231
+#define CLK_RKNN_DSU0                  232
+#define PCLK_NPUTOP_ROOT               233
+#define PCLK_NPU_TIMER                 234
+#define CLK_NPUTIMER_ROOT              235
+#define CLK_NPUTIMER0                  236
+#define CLK_NPUTIMER1                  237
+#define PCLK_NPU_WDT                   238
+#define TCLK_NPU_WDT                   239
+#define ACLK_RKNN_CBUF                 240
+#define HCLK_NPU_CM0_ROOT              241
+#define FCLK_NPU_CM0_CORE              242
+#define CLK_NPU_CM0_RTC                        243
+#define HCLK_RKNN_CBUF                 244
+#define HCLK_NVM_ROOT                  245
+#define ACLK_NVM_ROOT                  246
+#define SCLK_FSPI_X2                   247
+#define HCLK_FSPI                      248
+#define CCLK_SRC_EMMC                  249
+#define HCLK_EMMC                      250
+#define ACLK_EMMC                      251
+#define BCLK_EMMC                      252
+#define TCLK_EMMC                      253
+#define PCLK_PHP_ROOT                  254
+#define ACLK_PHP_ROOT                  255
+#define PCLK_PCIE0                     256
+#define CLK_PCIE0_AUX                  257
+#define ACLK_PCIE0_MST                 258
+#define ACLK_PCIE0_SLV                 259
+#define ACLK_PCIE0_DBI                 260
+#define ACLK_USB3OTG1                  261
+#define CLK_REF_USB3OTG1               262
+#define CLK_SUSPEND_USB3OTG1           263
+#define ACLK_MMU0                      264
+#define ACLK_SLV_MMU0                  265
+#define ACLK_MMU1                      266
+#define ACLK_SLV_MMU1                  267
+#define PCLK_PCIE1                     268
+#define CLK_PCIE1_AUX                  269
+#define ACLK_PCIE1_MST                 270
+#define ACLK_PCIE1_SLV                 271
+#define ACLK_PCIE1_DBI                 272
+#define CLK_RXOOB0                     273
+#define CLK_RXOOB1                     274
+#define CLK_PMALIVE0                   275
+#define CLK_PMALIVE1                   276
+#define ACLK_SATA0                     277
+#define ACLK_SATA1                     278
+#define CLK_USB3OTG1_PIPE_PCLK         279
+#define CLK_USB3OTG1_UTMI              280
+#define CLK_USB3OTG0_PIPE_PCLK         281
+#define CLK_USB3OTG0_UTMI              282
+#define HCLK_SDGMAC_ROOT               283
+#define ACLK_SDGMAC_ROOT               284
+#define PCLK_SDGMAC_ROOT               285
+#define ACLK_GMAC0                     286
+#define ACLK_GMAC1                     287
+#define PCLK_GMAC0                     288
+#define PCLK_GMAC1                     289
+#define CCLK_SRC_SDIO                  290
+#define HCLK_SDIO                      291
+#define CLK_GMAC1_PTP_REF              292
+#define CLK_GMAC0_PTP_REF              293
+#define CLK_GMAC1_PTP_REF_SRC          294
+#define CLK_GMAC0_PTP_REF_SRC          295
+#define CCLK_SRC_SDMMC0                        296
+#define HCLK_SDMMC0                    297
+#define SCLK_FSPI1_X2                  298
+#define HCLK_FSPI1                     299
+#define ACLK_DSMC_ROOT                 300
+#define ACLK_DSMC                      301
+#define PCLK_DSMC                      302
+#define CLK_DSMC_SYS                   303
+#define HCLK_HSGPIO                    304
+#define CLK_HSGPIO_TX                  305
+#define CLK_HSGPIO_RX                  306
+#define ACLK_HSGPIO                    307
+#define PCLK_PHPPHY_ROOT               308
+#define PCLK_PCIE2_COMBOPHY0           309
+#define PCLK_PCIE2_COMBOPHY1           310
+#define CLK_PCIE_100M_SRC              311
+#define CLK_PCIE_100M_NDUTY_SRC                312
+#define CLK_REF_PCIE0_PHY              313
+#define CLK_REF_PCIE1_PHY              314
+#define CLK_REF_MPHY_26M               315
+#define HCLK_RKVDEC_ROOT               316
+#define ACLK_RKVDEC_ROOT               317
+#define HCLK_RKVDEC                    318
+#define CLK_RKVDEC_HEVC_CA             319
+#define CLK_RKVDEC_CORE                        320
+#define ACLK_UFS_ROOT                  321
+#define ACLK_USB_ROOT                  322
+#define PCLK_USB_ROOT                  323
+#define ACLK_USB3OTG0                  324
+#define CLK_REF_USB3OTG0               325
+#define CLK_SUSPEND_USB3OTG0           326
+#define ACLK_MMU2                      327
+#define ACLK_SLV_MMU2                  328
+#define ACLK_UFS_SYS                   329
+#define ACLK_VPU_ROOT                  330
+#define ACLK_VPU_MID_ROOT              331
+#define HCLK_VPU_ROOT                  332
+#define ACLK_JPEG_ROOT                 333
+#define ACLK_VPU_LOW_ROOT              334
+#define HCLK_RGA2E_0                   335
+#define ACLK_RGA2E_0                   336
+#define CLK_CORE_RGA2E_0               337
+#define ACLK_JPEG                      338
+#define HCLK_JPEG                      339
+#define HCLK_VDPP                      340
+#define ACLK_VDPP                      341
+#define CLK_CORE_VDPP                  342
+#define HCLK_RGA2E_1                   343
+#define ACLK_RGA2E_1                   344
+#define CLK_CORE_RGA2E_1               345
+#define DCLK_EBC_FRAC_SRC              346
+#define HCLK_EBC                       347
+#define ACLK_EBC                       348
+#define DCLK_EBC                       349
+#define HCLK_VEPU0_ROOT                        350
+#define ACLK_VEPU0_ROOT                        351
+#define HCLK_VEPU0                     352
+#define ACLK_VEPU0                     353
+#define CLK_VEPU0_CORE                 354
+#define ACLK_VI_ROOT                   355
+#define HCLK_VI_ROOT                   356
+#define PCLK_VI_ROOT                   357
+#define DCLK_VICAP                     358
+#define ACLK_VICAP                     359
+#define HCLK_VICAP                     360
+#define CLK_ISP_CORE                   361
+#define CLK_ISP_CORE_MARVIN            362
+#define CLK_ISP_CORE_VICAP             363
+#define ACLK_ISP                       364
+#define HCLK_ISP                       365
+#define ACLK_VPSS                      366
+#define HCLK_VPSS                      367
+#define CLK_CORE_VPSS                  368
+#define PCLK_CSI_HOST_0                        369
+#define PCLK_CSI_HOST_1                        370
+#define PCLK_CSI_HOST_2                        371
+#define PCLK_CSI_HOST_3                        372
+#define PCLK_CSI_HOST_4                        373
+#define ICLK_CSIHOST01                 374
+#define ICLK_CSIHOST0                  375
+#define CLK_ISP_PVTPLL_SRC             376
+#define ACLK_VI_ROOT_INTER             377
+#define CLK_VICAP_I0CLK                        378
+#define CLK_VICAP_I1CLK                        379
+#define CLK_VICAP_I2CLK                        380
+#define CLK_VICAP_I3CLK                        381
+#define CLK_VICAP_I4CLK                        382
+#define ACLK_VOP_ROOT                  383
+#define HCLK_VOP_ROOT                  384
+#define PCLK_VOP_ROOT                  385
+#define HCLK_VOP                       386
+#define ACLK_VOP                       387
+#define DCLK_VP0_SRC                   388
+#define DCLK_VP1_SRC                   389
+#define DCLK_VP2_SRC                   390
+#define DCLK_VP0                       391
+#define DCLK_VP1                       392
+#define DCLK_VP2                       393
+#define PCLK_VOPGRF                    394
+#define ACLK_VO0_ROOT                  395
+#define HCLK_VO0_ROOT                  396
+#define PCLK_VO0_ROOT                  397
+#define PCLK_VO0_GRF                   398
+#define ACLK_HDCP0                     399
+#define HCLK_HDCP0                     400
+#define PCLK_HDCP0                     401
+#define CLK_TRNG0_SKP                  402
+#define PCLK_DSIHOST0                  403
+#define CLK_DSIHOST0                   404
+#define PCLK_HDMITX0                   405
+#define CLK_HDMITX0_EARC               406
+#define CLK_HDMITX0_REF                        407
+#define PCLK_EDP0                      408
+#define CLK_EDP0_24M                   409
+#define CLK_EDP0_200M                  410
+#define MCLK_SAI5_8CH_SRC              411
+#define MCLK_SAI5_8CH                  412
+#define HCLK_SAI5_8CH                  413
+#define MCLK_SAI6_8CH_SRC              414
+#define MCLK_SAI6_8CH                  415
+#define HCLK_SAI6_8CH                  416
+#define HCLK_SPDIF_TX2                 417
+#define MCLK_SPDIF_TX2                 418
+#define HCLK_SPDIF_RX2                 419
+#define MCLK_SPDIF_RX2                 420
+#define HCLK_SAI8_8CH                  421
+#define MCLK_SAI8_8CH_SRC              422
+#define MCLK_SAI8_8CH                  423
+#define ACLK_VO1_ROOT                  424
+#define HCLK_VO1_ROOT                  425
+#define PCLK_VO1_ROOT                  426
+#define MCLK_SAI7_8CH_SRC              427
+#define MCLK_SAI7_8CH                  428
+#define HCLK_SAI7_8CH                  429
+#define HCLK_SPDIF_TX3                 430
+#define HCLK_SPDIF_TX4                 431
+#define HCLK_SPDIF_TX5                 432
+#define MCLK_SPDIF_TX3                 433
+#define CLK_AUX16MHZ_0                 434
+#define ACLK_DP0                       435
+#define PCLK_DP0                       436
+#define PCLK_VO1_GRF                   437
+#define ACLK_HDCP1                     438
+#define HCLK_HDCP1                     439
+#define PCLK_HDCP1                     440
+#define CLK_TRNG1_SKP                  441
+#define HCLK_SAI9_8CH                  442
+#define MCLK_SAI9_8CH_SRC              443
+#define MCLK_SAI9_8CH                  444
+#define MCLK_SPDIF_TX4                 445
+#define MCLK_SPDIF_TX5                 446
+#define CLK_GPU_SRC_PRE                        447
+#define CLK_GPU                                448
+#define PCLK_GPU_ROOT                  449
+#define ACLK_CENTER_ROOT               450
+#define ACLK_CENTER_LOW_ROOT           451
+#define HCLK_CENTER_ROOT               452
+#define PCLK_CENTER_ROOT               453
+#define ACLK_DMA2DDR                   454
+#define ACLK_DDR_SHAREMEM              455
+#define PCLK_DMA2DDR                   456
+#define PCLK_SHAREMEM                  457
+#define HCLK_VEPU1_ROOT                        458
+#define ACLK_VEPU1_ROOT                        459
+#define HCLK_VEPU1                     460
+#define ACLK_VEPU1                     461
+#define CLK_VEPU1_CORE                 462
+#define CLK_JDBCK_DAP                  463
+#define PCLK_MIPI_DCPHY                        464
+#define CLK_32K_USB2DEBUG              465
+#define PCLK_CSIDPHY                   466
+#define PCLK_USBDPPHY                  467
+#define CLK_PMUPHY_REF_SRC             468
+#define CLK_USBDP_COMBO_PHY_IMMORTAL   469
+#define CLK_HDMITXHDP                  470
+#define PCLK_MPHY                      471
+#define CLK_REF_OSC_MPHY               472
+#define CLK_REF_UFS_CLKOUT             473
+#define HCLK_PMU1_ROOT                 474
+#define HCLK_PMU_CM0_ROOT              475
+#define CLK_200M_PMU_SRC               476
+#define CLK_100M_PMU_SRC               477
+#define CLK_50M_PMU_SRC                        478
+#define FCLK_PMU_CM0_CORE              479
+#define CLK_PMU_CM0_RTC                        480
+#define PCLK_PMU1                      481
+#define CLK_PMU1                       482
+#define PCLK_PMU1WDT                   483
+#define TCLK_PMU1WDT                   484
+#define PCLK_PMUTIMER                  485
+#define CLK_PMUTIMER_ROOT              486
+#define CLK_PMUTIMER0                  487
+#define CLK_PMUTIMER1                  488
+#define PCLK_PMU1PWM                   489
+#define CLK_PMU1PWM                    490
+#define CLK_PMU1PWM_OSC                        491
+#define PCLK_PMUPHY_ROOT               492
+#define PCLK_I2C0                      493
+#define CLK_I2C0                       494
+#define SCLK_UART1                     495
+#define PCLK_UART1                     496
+#define CLK_PMU1PWM_RC                 497
+#define CLK_PDM0                       498
+#define HCLK_PDM0                      499
+#define MCLK_PDM0                      500
+#define HCLK_VAD                       501
+#define CLK_OSCCHK_PVTM                        502
+#define CLK_PDM0_OUT                   503
+#define CLK_HPTIMER_SRC                        504
+#define PCLK_PMU0_ROOT                 505
+#define PCLK_PMU0                      506
+#define PCLK_GPIO0                     507
+#define DBCLK_GPIO0                    508
+#define CLK_OSC0_PMU1                  509
+#define PCLK_PMU1_ROOT                 510
+#define XIN_OSC0_DIV                   511
+#define ACLK_USB                       512
+#define ACLK_UFS                       513
+#define ACLK_SDGMAC                    514
+#define HCLK_SDGMAC                    515
+#define PCLK_SDGMAC                    516
+#define HCLK_VO1                       517
+#define HCLK_VO0                       518
+#define PCLK_CCI_ROOT                  519
+#define ACLK_CCI_ROOT                  520
+#define HCLK_VO0VOP_CHANNEL            521
+#define ACLK_VO0VOP_CHANNEL            522
+#define ACLK_TOP_MID                   523
+#define ACLK_SECURE_HIGH               524
+#define CLK_USBPHY_REF_SRC             525
+#define CLK_PHY_REF_SRC                        526
+#define CLK_CPLL_REF_SRC               527
+#define CLK_AUPLL_REF_SRC              528
+#define PCLK_SECURE_NS                 529
+#define HCLK_SECURE_NS                 530
+#define ACLK_SECURE_NS                 531
+#define PCLK_OTPC_NS                   532
+#define HCLK_CRYPTO_NS                 533
+#define HCLK_TRNG_NS                   534
+#define CLK_OTPC_NS                    535
+#define SCLK_DSU                       536
+#define SCLK_DDR                       537
+#define ACLK_CRYPTO_NS                 538
+#define CLK_PKA_CRYPTO_NS              539
+#define ACLK_RKVDEC_ROOT_BAK           540
+#define CLK_AUDIO_FRAC_0_SRC           541
+#define CLK_AUDIO_FRAC_1_SRC           542
+#define CLK_AUDIO_FRAC_2_SRC           543
+#define CLK_AUDIO_FRAC_3_SRC           544
+#define PCLK_HDPTX_APB                 545
+
+/* secure clk */
+#define CLK_STIMER0_ROOT               546
+#define CLK_STIMER1_ROOT               547
+#define PCLK_SECURE_S                  548
+#define HCLK_SECURE_S                  549
+#define ACLK_SECURE_S                  550
+#define CLK_PKA_CRYPTO_S               551
+#define HCLK_VO1_S                     552
+#define PCLK_VO1_S                     553
+#define HCLK_VO0_S                     554
+#define PCLK_VO0_S                     555
+#define PCLK_KLAD                      556
+#define HCLK_CRYPTO_S                  557
+#define HCLK_KLAD                      558
+#define ACLK_CRYPTO_S                  559
+#define HCLK_TRNG_S                    560
+#define PCLK_OTPC_S                    561
+#define CLK_OTPC_S                     562
+#define PCLK_WDT_S                     563
+#define TCLK_WDT_S                     564
+#define PCLK_HDCP0_TRNG                        565
+#define PCLK_HDCP1_TRNG                        566
+#define HCLK_HDCP_KEY0                 567
+#define HCLK_HDCP_KEY1                 568
+#define PCLK_EDP_S                     569
+#define ACLK_KLAD                      570
+
+#endif
index 3065375c2d8b161c2e2ba2db36e793cf2f857d2c..ce8fb8f7d718ebb57d2697ccf3a13ed8a2e36f5d 100644 (file)
 #define CLK_GOUT_CORE_CCI_PCLK         4
 #define CLK_GOUT_CORE_CMU_CORE_PCLK    5
 
+/* CMU_DPUM */
+#define CLK_MOUT_DPUM_BUS_USER         1
+#define CLK_DOUT_DPUM_BUSP             2
+#define CLK_GOUT_DPUM_ACLK_DECON       3
+#define CLK_GOUT_DPUM_ACLK_DMA         4
+#define CLK_GOUT_DPUM_ACLK_DPP         5
+#define CLK_GOUT_DPUM_SYSMMU_D0_CLK    6
+#define CLK_GOUT_DPUM_SYSMMU_D1_CLK    7
+#define CLK_GOUT_DPUM_SYSMMU_D2_CLK    8
+#define CLK_GOUT_DPUM_SYSMMU_D3_CLK    9
+
 /* CMU_FSYS0 */
 #define CLK_MOUT_FSYS0_BUS_USER                1
 #define CLK_MOUT_FSYS0_PCIE_USER       2
diff --git a/include/dt-bindings/clock/samsung,exynosautov920.h b/include/dt-bindings/clock/samsung,exynosautov920.h
new file mode 100644 (file)
index 0000000..c720f34
--- /dev/null
@@ -0,0 +1,191 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd.
+ * Author: Sunyeal Hong <sunyeal.hong@samsung.com>
+ *
+ * Device Tree binding constants for ExynosAuto v920 clock controller.
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_EXYNOSAUTOV920_H
+#define _DT_BINDINGS_CLOCK_EXYNOSAUTOV920_H
+
+/* CMU_TOP */
+#define FOUT_SHARED0_PLL               1
+#define FOUT_SHARED1_PLL               2
+#define FOUT_SHARED2_PLL               3
+#define FOUT_SHARED3_PLL               4
+#define FOUT_SHARED4_PLL               5
+#define FOUT_SHARED5_PLL               6
+#define FOUT_MMC_PLL                   7
+
+/* MUX in CMU_TOP */
+#define MOUT_SHARED0_PLL               8
+#define MOUT_SHARED1_PLL               9
+#define MOUT_SHARED2_PLL               10
+#define MOUT_SHARED3_PLL               11
+#define MOUT_SHARED4_PLL               12
+#define MOUT_SHARED5_PLL               13
+#define MOUT_MMC_PLL                   14
+#define MOUT_CLKCMU_CMU_BOOST          15
+#define MOUT_CLKCMU_CMU_CMUREF         16
+#define MOUT_CLKCMU_ACC_NOC            17
+#define MOUT_CLKCMU_ACC_ORB            18
+#define MOUT_CLKCMU_APM_NOC            19
+#define MOUT_CLKCMU_AUD_CPU            20
+#define MOUT_CLKCMU_AUD_NOC            21
+#define MOUT_CLKCMU_CPUCL0_SWITCH      22
+#define MOUT_CLKCMU_CPUCL0_CLUSTER     23
+#define MOUT_CLKCMU_CPUCL0_DBG         24
+#define MOUT_CLKCMU_CPUCL1_SWITCH      25
+#define MOUT_CLKCMU_CPUCL1_CLUSTER     26
+#define MOUT_CLKCMU_CPUCL2_SWITCH      27
+#define MOUT_CLKCMU_CPUCL2_CLUSTER     28
+#define MOUT_CLKCMU_DNC_NOC            29
+#define MOUT_CLKCMU_DPTX_NOC           30
+#define MOUT_CLKCMU_DPTX_DPGTC         31
+#define MOUT_CLKCMU_DPTX_DPOSC         32
+#define MOUT_CLKCMU_DPUB_NOC           33
+#define MOUT_CLKCMU_DPUB_DSIM          34
+#define MOUT_CLKCMU_DPUF0_NOC          35
+#define MOUT_CLKCMU_DPUF1_NOC          36
+#define MOUT_CLKCMU_DPUF2_NOC          37
+#define MOUT_CLKCMU_DSP_NOC            38
+#define MOUT_CLKCMU_G3D_SWITCH         39
+#define MOUT_CLKCMU_G3D_NOCP           40
+#define MOUT_CLKCMU_GNPU_NOC           41
+#define MOUT_CLKCMU_HSI0_NOC           42
+#define MOUT_CLKCMU_HSI1_NOC           43
+#define MOUT_CLKCMU_HSI1_USBDRD                44
+#define MOUT_CLKCMU_HSI1_MMC_CARD      45
+#define MOUT_CLKCMU_HSI2_NOC           46
+#define MOUT_CLKCMU_HSI2_NOC_UFS       47
+#define MOUT_CLKCMU_HSI2_UFS_EMBD      48
+#define MOUT_CLKCMU_HSI2_ETHERNET      49
+#define MOUT_CLKCMU_ISP_NOC            50
+#define MOUT_CLKCMU_M2M_NOC            51
+#define MOUT_CLKCMU_M2M_JPEG           52
+#define MOUT_CLKCMU_MFC_MFC            53
+#define MOUT_CLKCMU_MFC_WFD            54
+#define MOUT_CLKCMU_MFD_NOC            55
+#define MOUT_CLKCMU_MIF_SWITCH         56
+#define MOUT_CLKCMU_MIF_NOCP           57
+#define MOUT_CLKCMU_MISC_NOC           58
+#define MOUT_CLKCMU_NOCL0_NOC          59
+#define MOUT_CLKCMU_NOCL1_NOC          60
+#define MOUT_CLKCMU_NOCL2_NOC          61
+#define MOUT_CLKCMU_PERIC0_NOC         62
+#define MOUT_CLKCMU_PERIC0_IP          63
+#define MOUT_CLKCMU_PERIC1_NOC         64
+#define MOUT_CLKCMU_PERIC1_IP          65
+#define MOUT_CLKCMU_SDMA_NOC           66
+#define MOUT_CLKCMU_SNW_NOC            67
+#define MOUT_CLKCMU_SSP_NOC            68
+#define MOUT_CLKCMU_TAA_NOC            69
+
+/* DIV in CMU_TOP */
+#define DOUT_SHARED0_DIV1              70
+#define DOUT_SHARED0_DIV2              71
+#define DOUT_SHARED0_DIV3              72
+#define DOUT_SHARED0_DIV4              73
+#define DOUT_SHARED1_DIV1              74
+#define DOUT_SHARED1_DIV2              75
+#define DOUT_SHARED1_DIV3              76
+#define DOUT_SHARED1_DIV4              77
+#define DOUT_SHARED2_DIV1              78
+#define DOUT_SHARED2_DIV2              79
+#define DOUT_SHARED2_DIV3              80
+#define DOUT_SHARED2_DIV4              81
+#define DOUT_SHARED3_DIV1              82
+#define DOUT_SHARED3_DIV2              83
+#define DOUT_SHARED3_DIV3              84
+#define DOUT_SHARED3_DIV4              85
+#define DOUT_SHARED4_DIV1              86
+#define DOUT_SHARED4_DIV2              87
+#define DOUT_SHARED4_DIV3              88
+#define DOUT_SHARED4_DIV4              89
+#define DOUT_SHARED5_DIV1              90
+#define DOUT_SHARED5_DIV2              91
+#define DOUT_SHARED5_DIV3              92
+#define DOUT_SHARED5_DIV4              93
+#define DOUT_CLKCMU_CMU_BOOST          94
+#define DOUT_CLKCMU_ACC_NOC            95
+#define DOUT_CLKCMU_ACC_ORB            96
+#define DOUT_CLKCMU_APM_NOC            97
+#define DOUT_CLKCMU_AUD_CPU            98
+#define DOUT_CLKCMU_AUD_NOC            99
+#define DOUT_CLKCMU_CPUCL0_SWITCH      100
+#define DOUT_CLKCMU_CPUCL0_CLUSTER     101
+#define DOUT_CLKCMU_CPUCL0_DBG         102
+#define DOUT_CLKCMU_CPUCL1_SWITCH      103
+#define DOUT_CLKCMU_CPUCL1_CLUSTER     104
+#define DOUT_CLKCMU_CPUCL2_SWITCH      105
+#define DOUT_CLKCMU_CPUCL2_CLUSTER     106
+#define DOUT_CLKCMU_DNC_NOC            107
+#define DOUT_CLKCMU_DPTX_NOC           108
+#define DOUT_CLKCMU_DPTX_DPGTC         109
+#define DOUT_CLKCMU_DPTX_DPOSC         110
+#define DOUT_CLKCMU_DPUB_NOC           111
+#define DOUT_CLKCMU_DPUB_DSIM          112
+#define DOUT_CLKCMU_DPUF0_NOC          113
+#define DOUT_CLKCMU_DPUF1_NOC          114
+#define DOUT_CLKCMU_DPUF2_NOC          115
+#define DOUT_CLKCMU_DSP_NOC            116
+#define DOUT_CLKCMU_G3D_SWITCH         117
+#define DOUT_CLKCMU_G3D_NOCP           118
+#define DOUT_CLKCMU_GNPU_NOC           119
+#define DOUT_CLKCMU_HSI0_NOC           120
+#define DOUT_CLKCMU_HSI1_NOC           121
+#define DOUT_CLKCMU_HSI1_USBDRD                122
+#define DOUT_CLKCMU_HSI1_MMC_CARD      123
+#define DOUT_CLKCMU_HSI2_NOC           124
+#define DOUT_CLKCMU_HSI2_NOC_UFS       125
+#define DOUT_CLKCMU_HSI2_UFS_EMBD      126
+#define DOUT_CLKCMU_HSI2_ETHERNET      127
+#define DOUT_CLKCMU_ISP_NOC            128
+#define DOUT_CLKCMU_M2M_NOC            129
+#define DOUT_CLKCMU_M2M_JPEG           130
+#define DOUT_CLKCMU_MFC_MFC            131
+#define DOUT_CLKCMU_MFC_WFD            132
+#define DOUT_CLKCMU_MFD_NOC            133
+#define DOUT_CLKCMU_MIF_NOCP           134
+#define DOUT_CLKCMU_MISC_NOC           135
+#define DOUT_CLKCMU_NOCL0_NOC          136
+#define DOUT_CLKCMU_NOCL1_NOC          137
+#define DOUT_CLKCMU_NOCL2_NOC          138
+#define DOUT_CLKCMU_PERIC0_NOC         139
+#define DOUT_CLKCMU_PERIC0_IP          140
+#define DOUT_CLKCMU_PERIC1_NOC         141
+#define DOUT_CLKCMU_PERIC1_IP          142
+#define DOUT_CLKCMU_SDMA_NOC           143
+#define DOUT_CLKCMU_SNW_NOC            144
+#define DOUT_CLKCMU_SSP_NOC            145
+#define DOUT_CLKCMU_TAA_NOC            146
+
+/* CMU_PERIC0 */
+#define CLK_MOUT_PERIC0_IP_USER                1
+#define CLK_MOUT_PERIC0_NOC_USER       2
+#define CLK_MOUT_PERIC0_USI00_USI      3
+#define CLK_MOUT_PERIC0_USI01_USI      4
+#define CLK_MOUT_PERIC0_USI02_USI      5
+#define CLK_MOUT_PERIC0_USI03_USI      6
+#define CLK_MOUT_PERIC0_USI04_USI      7
+#define CLK_MOUT_PERIC0_USI05_USI      8
+#define CLK_MOUT_PERIC0_USI06_USI      9
+#define CLK_MOUT_PERIC0_USI07_USI      10
+#define CLK_MOUT_PERIC0_USI08_USI      11
+#define CLK_MOUT_PERIC0_USI_I2C                12
+#define CLK_MOUT_PERIC0_I3C            13
+
+#define CLK_DOUT_PERIC0_USI00_USI      14
+#define CLK_DOUT_PERIC0_USI01_USI      15
+#define CLK_DOUT_PERIC0_USI02_USI      16
+#define CLK_DOUT_PERIC0_USI03_USI      17
+#define CLK_DOUT_PERIC0_USI04_USI      18
+#define CLK_DOUT_PERIC0_USI05_USI      19
+#define CLK_DOUT_PERIC0_USI06_USI      20
+#define CLK_DOUT_PERIC0_USI07_USI      21
+#define CLK_DOUT_PERIC0_USI08_USI      22
+#define CLK_DOUT_PERIC0_USI_I2C                23
+#define CLK_DOUT_PERIC0_I3C            24
+
+#endif /* _DT_BINDINGS_CLOCK_EXYNOSAUTOV920_H */
diff --git a/include/dt-bindings/iio/adi,ad4695.h b/include/dt-bindings/iio/adi,ad4695.h
new file mode 100644 (file)
index 0000000..9fbef54
--- /dev/null
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+
+#ifndef _DT_BINDINGS_ADI_AD4695_H
+#define _DT_BINDINGS_ADI_AD4695_H
+
+#define AD4695_COMMON_MODE_REFGND      0xFF
+#define AD4695_COMMON_MODE_COM         0xFE
+
+#endif /* _DT_BINDINGS_ADI_AD4695_H */
diff --git a/include/dt-bindings/interconnect/qcom,ipq5332.h b/include/dt-bindings/interconnect/qcom,ipq5332.h
new file mode 100644 (file)
index 0000000..16475bb
--- /dev/null
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+#ifndef INTERCONNECT_QCOM_IPQ5332_H
+#define INTERCONNECT_QCOM_IPQ5332_H
+
+#define MASTER_SNOC_PCIE3_1_M          0
+#define SLAVE_SNOC_PCIE3_1_M           1
+#define MASTER_ANOC_PCIE3_1_S          2
+#define SLAVE_ANOC_PCIE3_1_S           3
+#define MASTER_SNOC_PCIE3_2_M          4
+#define SLAVE_SNOC_PCIE3_2_M           5
+#define MASTER_ANOC_PCIE3_2_S          6
+#define SLAVE_ANOC_PCIE3_2_S           7
+#define MASTER_SNOC_USB                        8
+#define SLAVE_SNOC_USB                 9
+#define MASTER_NSSNOC_NSSCC            10
+#define SLAVE_NSSNOC_NSSCC             11
+#define MASTER_NSSNOC_SNOC_0           12
+#define SLAVE_NSSNOC_SNOC_0            13
+#define MASTER_NSSNOC_SNOC_1           14
+#define SLAVE_NSSNOC_SNOC_1            15
+#define MASTER_NSSNOC_ATB              16
+#define SLAVE_NSSNOC_ATB               17
+#define MASTER_NSSNOC_PCNOC_1          18
+#define SLAVE_NSSNOC_PCNOC_1           19
+#define MASTER_NSSNOC_QOSGEN_REF       20
+#define SLAVE_NSSNOC_QOSGEN_REF                21
+#define MASTER_NSSNOC_TIMEOUT_REF      22
+#define SLAVE_NSSNOC_TIMEOUT_REF       23
+#define MASTER_NSSNOC_XO_DCD           24
+#define SLAVE_NSSNOC_XO_DCD            25
+
+#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_CE_APB           6
+#define SLAVE_NSSNOC_CE_APB            7
+#define MASTER_NSSNOC_CE_AXI           8
+#define SLAVE_NSSNOC_CE_AXI            9
+
+#define MASTER_CNOC_AHB                        0
+#define SLAVE_CNOC_AHB                 1
+
+#endif /* INTERCONNECT_QCOM_IPQ5332_H */
diff --git a/include/dt-bindings/interconnect/qcom,msm8937.h b/include/dt-bindings/interconnect/qcom,msm8937.h
new file mode 100644 (file)
index 0000000..98b8a46
--- /dev/null
@@ -0,0 +1,93 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Qualcomm MSM8937 interconnect IDs
+ */
+
+#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_MSM8937_H
+#define __DT_BINDINGS_INTERCONNECT_QCOM_MSM8937_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_USB_HS1            3
+#define MAS_XI_USB_HS1         4
+#define MAS_CRYPTO             5
+#define MAS_SDCC_1             6
+#define MAS_SDCC_2             7
+#define MAS_SNOC_PCNOC         8
+#define PCNOC_M_0              9
+#define PCNOC_M_1              10
+#define PCNOC_INT_0            11
+#define PCNOC_INT_1            12
+#define PCNOC_INT_2            13
+#define PCNOC_INT_3            14
+#define PCNOC_S_0              15
+#define PCNOC_S_1              16
+#define PCNOC_S_2              17
+#define PCNOC_S_3              18
+#define PCNOC_S_4              19
+#define PCNOC_S_6              20
+#define PCNOC_S_7              21
+#define PCNOC_S_8              22
+#define SLV_SDCC_2             23
+#define SLV_SPDM               24
+#define SLV_PDM                        25
+#define SLV_PRNG               26
+#define SLV_TCSR               27
+#define SLV_SNOC_CFG           28
+#define SLV_MESSAGE_RAM                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_TLMM               34
+#define SLV_BLSP_1             35
+#define SLV_BLSP_2             36
+#define SLV_PMIC_ARB           37
+#define SLV_SDCC_1             38
+#define SLV_CRYPTO_0_CFG       39
+#define SLV_USB_HS             40
+#define SLV_TCU                        41
+#define SLV_PCNOC_SNOC         42
+
+/* SNOC fabric */
+#define MAS_QDSS_BAM           0
+#define MAS_BIMC_SNOC          1
+#define MAS_PCNOC_SNOC         2
+#define MAS_QDSS_ETR           3
+#define QDSS_INT               4
+#define SNOC_INT_0             5
+#define SNOC_INT_1             6
+#define SNOC_INT_2             7
+#define SLV_KPSS_AHB           8
+#define SLV_WCSS               9
+#define SLV_SNOC_BIMC_1                10
+#define SLV_IMEM               11
+#define SLV_SNOC_PCNOC         12
+#define SLV_QDSS_STM           13
+#define SLV_CATS_1             14
+#define SLV_LPASS              15
+
+/* 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_MSM8937_H */
diff --git a/include/dt-bindings/interconnect/qcom,msm8976.h b/include/dt-bindings/interconnect/qcom,msm8976.h
new file mode 100644 (file)
index 0000000..4ea90f2
--- /dev/null
@@ -0,0 +1,97 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Qualcomm MSM8976 interconnect IDs
+ */
+
+#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_MSM8976_H
+#define __DT_BINDINGS_INTERCONNECT_QCOM_MSM8976_H
+
+/* BIMC fabric */
+#define MAS_APPS_PROC          0
+#define MAS_SMMNOC_BIMC                1
+#define MAS_SNOC_BIMC          2
+#define MAS_TCU_0              3
+#define SLV_EBI                        4
+#define SLV_BIMC_SNOC          5
+
+/* PCNOC fabric */
+#define MAS_USB_HS2            0
+#define MAS_BLSP_1             1
+#define MAS_USB_HS1            2
+#define MAS_BLSP_2             3
+#define MAS_CRYPTO             4
+#define MAS_SDCC_1             5
+#define MAS_SDCC_2             6
+#define MAS_SDCC_3             7
+#define MAS_SNOC_PCNOC         8
+#define MAS_LPASS_AHB          9
+#define MAS_SPDM               10
+#define MAS_DEHR               11
+#define MAS_XM_USB_HS1         12
+#define PCNOC_M_0              13
+#define PCNOC_M_1              14
+#define PCNOC_INT_0            15
+#define PCNOC_INT_1            16
+#define PCNOC_INT_2            17
+#define PCNOC_S_1              18
+#define PCNOC_S_2              19
+#define PCNOC_S_3              20
+#define PCNOC_S_4              21
+#define PCNOC_S_8              22
+#define PCNOC_S_9              23
+#define SLV_TCSR               24
+#define SLV_TLMM               25
+#define SLV_CRYPTO_0_CFG       26
+#define SLV_MESSAGE_RAM                27
+#define SLV_PDM                        28
+#define SLV_PRNG               29
+#define SLV_PMIC_ARB           30
+#define SLV_SNOC_CFG           31
+#define SLV_DCC_CFG            32
+#define SLV_CAMERA_SS_CFG      33
+#define SLV_DISP_SS_CFG                34
+#define SLV_VENUS_CFG          35
+#define SLV_SDCC_1             36
+#define SLV_BLSP_1             37
+#define SLV_USB_HS             38
+#define SLV_SDCC_3             39
+#define SLV_SDCC_2             40
+#define SLV_GPU_CFG            41
+#define SLV_USB_HS2            42
+#define SLV_BLSP_2             43
+#define SLV_PCNOC_SNOC         44
+
+/* SNOC fabric */
+#define MAS_QDSS_BAM           0
+#define MAS_BIMC_SNOC          1
+#define MAS_PCNOC_SNOC         2
+#define MAS_QDSS_ETR           3
+#define MAS_LPASS_PROC         4
+#define MAS_IPA                        5
+#define QDSS_INT               6
+#define SNOC_INT_0             7
+#define SNOC_INT_1             8
+#define SNOC_INT_2             9
+#define SLV_KPSS_AHB           10
+#define SLV_SNOC_BIMC          11
+#define SLV_IMEM               12
+#define SLV_SNOC_PCNOC         13
+#define SLV_QDSS_STM           14
+#define SLV_CATS_0             15
+#define SLV_CATS_1             16
+#define SLV_LPASS              17
+
+/* SNOC-MM fabric */
+#define MAS_JPEG               0
+#define MAS_OXILI              1
+#define MAS_MDP0               2
+#define MAS_MDP1               3
+#define MAS_VENUS_0            4
+#define MAS_VENUS_1            5
+#define MAS_VFE_0              6
+#define MAS_VFE_1              7
+#define MAS_CPP                        8
+#define MM_INT_0               9
+#define SLV_SMMNOC_BIMC                10
+
+#endif /* __DT_BINDINGS_INTERCONNECT_QCOM_MSM8976_H */
index c7f7ed315aeba25a10110922b27bc911b364f569..2282f93607bc527c612e790a25776b7b3fe0c720 100644 (file)
 #define SLAVE_SERVICE_GEM_NOC_1                16
 #define SLAVE_SERVICE_GEM_NOC_2                17
 #define SLAVE_SERVICE_GEM_NOC          18
-#define MASTER_MNOC_HF_MEM_NOC_DISP    19
-#define MASTER_MNOC_SF_MEM_NOC_DISP    20
-#define SLAVE_LLCC_DISP                        21
 
 #define MASTER_CNOC_LPASS_AG_NOC       0
 #define SLAVE_LPASS_CORE_CFG           1
 
 #define MASTER_LLCC                    0
 #define SLAVE_EBI1                     1
-#define MASTER_LLCC_DISP               2
-#define SLAVE_EBI1_DISP                        3
 
 #define MASTER_CAMNOC_HF               0
 #define MASTER_CAMNOC_ICP              1
 #define SLAVE_MNOC_HF_MEM_NOC          10
 #define SLAVE_MNOC_SF_MEM_NOC          11
 #define SLAVE_SERVICE_MNOC             12
-#define MASTER_MDP0_DISP               13
-#define MASTER_MDP1_DISP               14
-#define MASTER_ROTATOR_DISP            15
-#define SLAVE_MNOC_HF_MEM_NOC_DISP     16
-#define SLAVE_MNOC_SF_MEM_NOC_DISP     17
 
 #define MASTER_CDSP_NOC_CFG            0
 #define MASTER_CDSP_PROC               1
index 35b6f69b7db6a0d67fcae08be908e7b2d94a5ab7..887f53363e8a633ba85c8a459313c37b71a729a5 100644 (file)
@@ -12,6 +12,8 @@
 
 #define GIC_SPI 0
 #define GIC_PPI 1
+#define GIC_ESPI 2
+#define GIC_EPPI 3
 
 /*
  * Interrupt specifier cell 2.
index fbfa3febc66d401d593bfa92b824c5ebce196e1a..fd85a79381b3185bddc99db4e6859dbe925ce06e 100644 (file)
@@ -33,5 +33,7 @@
 #define IPCC_CLIENT_NSP1               18
 #define IPCC_CLIENT_TME                        23
 #define IPCC_CLIENT_WPSS               24
+#define IPCC_CLIENT_GPDSP0             31
+#define IPCC_CLIENT_GPDSP1             32
 
 #endif
diff --git a/include/dt-bindings/pinctrl/pinctrl-cv1800b.h b/include/dt-bindings/pinctrl/pinctrl-cv1800b.h
new file mode 100644 (file)
index 0000000..0593fc3
--- /dev/null
@@ -0,0 +1,63 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+/*
+ * Copyright (C) 2024 Inochi Amaoto <inochiama@outlook.com>
+ *
+ * This file is generated from vendor pinout definition.
+ */
+
+#ifndef _DT_BINDINGS_PINCTRL_CV1800B_H
+#define _DT_BINDINGS_PINCTRL_CV1800B_H
+
+#include <dt-bindings/pinctrl/pinctrl-cv18xx.h>
+
+#define PIN_AUD_AOUTR                  1
+#define PIN_SD0_CLK                    3
+#define PIN_SD0_CMD                    4
+#define PIN_SD0_D0                     5
+#define PIN_SD0_D1                     7
+#define PIN_SD0_D2                     8
+#define PIN_SD0_D3                     9
+#define PIN_SD0_CD                     11
+#define PIN_SD0_PWR_EN                 12
+#define PIN_SPK_EN                     14
+#define PIN_UART0_TX                   15
+#define PIN_UART0_RX                   16
+#define PIN_SPINOR_HOLD_X              17
+#define PIN_SPINOR_SCK                 18
+#define PIN_SPINOR_MOSI                        19
+#define PIN_SPINOR_WP_X                        20
+#define PIN_SPINOR_MISO                        21
+#define PIN_SPINOR_CS_X                        22
+#define PIN_IIC0_SCL                   23
+#define PIN_IIC0_SDA                   24
+#define PIN_AUX0                       25
+#define PIN_PWR_VBAT_DET               30
+#define PIN_PWR_SEQ2                   31
+#define PIN_XTAL_XIN                   33
+#define PIN_SD1_GPIO0                  35
+#define PIN_SD1_GPIO1                  36
+#define PIN_SD1_D3                     38
+#define PIN_SD1_D2                     39
+#define PIN_SD1_D1                     40
+#define PIN_SD1_D0                     41
+#define PIN_SD1_CMD                    42
+#define PIN_SD1_CLK                    43
+#define PIN_ADC1                       44
+#define PIN_USB_VBUS_DET               45
+#define PIN_ETH_TXP                    47
+#define PIN_ETH_TXM                    48
+#define PIN_ETH_RXP                    49
+#define PIN_ETH_RXM                    50
+#define PIN_MIPIRX4N                   56
+#define PIN_MIPIRX4P                   57
+#define PIN_MIPIRX3N                   58
+#define PIN_MIPIRX3P                   59
+#define PIN_MIPIRX2N                   60
+#define PIN_MIPIRX2P                   61
+#define PIN_MIPIRX1N                   62
+#define PIN_MIPIRX1P                   63
+#define PIN_MIPIRX0N                   64
+#define PIN_MIPIRX0P                   65
+#define PIN_AUD_AINL_MIC               67
+
+#endif /* _DT_BINDINGS_PINCTRL_CV1800B_H */
diff --git a/include/dt-bindings/pinctrl/pinctrl-cv1812h.h b/include/dt-bindings/pinctrl/pinctrl-cv1812h.h
new file mode 100644 (file)
index 0000000..2908de3
--- /dev/null
@@ -0,0 +1,127 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+/*
+ * Copyright (C) 2024 Inochi Amaoto <inochiama@outlook.com>
+ *
+ * This file is generated from vendor pinout definition.
+ */
+
+#ifndef _DT_BINDINGS_PINCTRL_CV1812H_H
+#define _DT_BINDINGS_PINCTRL_CV1812H_H
+
+#include <dt-bindings/pinctrl/pinctrl-cv18xx.h>
+
+#define PINPOS(row, col)                       \
+       ((((row) - 'A' + 1) << 8) + ((col) - 1))
+
+#define PIN_MIPI_TXM4                  PINPOS('A', 2)
+#define PIN_MIPIRX0N                   PINPOS('A', 4)
+#define PIN_MIPIRX3P                   PINPOS('A', 6)
+#define PIN_MIPIRX4P                   PINPOS('A', 7)
+#define PIN_VIVO_D2                    PINPOS('A', 9)
+#define PIN_VIVO_D3                    PINPOS('A', 10)
+#define PIN_VIVO_D10                   PINPOS('A', 12)
+#define PIN_USB_VBUS_DET               PINPOS('A', 13)
+#define PIN_MIPI_TXP3                  PINPOS('B', 1)
+#define PIN_MIPI_TXM3                  PINPOS('B', 2)
+#define PIN_MIPI_TXP4                  PINPOS('B', 3)
+#define PIN_MIPIRX0P                   PINPOS('B', 4)
+#define PIN_MIPIRX1N                   PINPOS('B', 5)
+#define PIN_MIPIRX2N                   PINPOS('B', 6)
+#define PIN_MIPIRX4N                   PINPOS('B', 7)
+#define PIN_MIPIRX5N                   PINPOS('B', 8)
+#define PIN_VIVO_D1                    PINPOS('B', 9)
+#define PIN_VIVO_D5                    PINPOS('B', 10)
+#define PIN_VIVO_D7                    PINPOS('B', 11)
+#define PIN_VIVO_D9                    PINPOS('B', 12)
+#define PIN_USB_ID                     PINPOS('B', 13)
+#define PIN_ETH_RXM                    PINPOS('B', 15)
+#define PIN_MIPI_TXP2                  PINPOS('C', 1)
+#define PIN_MIPI_TXM2                  PINPOS('C', 2)
+#define PIN_CAM_PD0                    PINPOS('C', 3)
+#define PIN_CAM_MCLK0                  PINPOS('C', 4)
+#define PIN_MIPIRX1P                   PINPOS('C', 5)
+#define PIN_MIPIRX2P                   PINPOS('C', 6)
+#define PIN_MIPIRX3N                   PINPOS('C', 7)
+#define PIN_MIPIRX5P                   PINPOS('C', 8)
+#define PIN_VIVO_CLK                   PINPOS('C', 9)
+#define PIN_VIVO_D6                    PINPOS('C', 10)
+#define PIN_VIVO_D8                    PINPOS('C', 11)
+#define PIN_USB_VBUS_EN                        PINPOS('C', 12)
+#define PIN_ETH_RXP                    PINPOS('C', 14)
+#define PIN_GPIO_RTX                   PINPOS('C', 15)
+#define PIN_MIPI_TXP1                  PINPOS('D', 1)
+#define PIN_MIPI_TXM1                  PINPOS('D', 2)
+#define PIN_CAM_MCLK1                  PINPOS('D', 3)
+#define PIN_IIC3_SCL                   PINPOS('D', 4)
+#define PIN_VIVO_D4                    PINPOS('D', 10)
+#define PIN_ETH_TXM                    PINPOS('D', 14)
+#define PIN_ETH_TXP                    PINPOS('D', 15)
+#define PIN_MIPI_TXP0                  PINPOS('E', 1)
+#define PIN_MIPI_TXM0                  PINPOS('E', 2)
+#define PIN_CAM_PD1                    PINPOS('E', 4)
+#define PIN_CAM_RST0                   PINPOS('E', 5)
+#define PIN_VIVO_D0                    PINPOS('E', 10)
+#define PIN_ADC1                       PINPOS('E', 13)
+#define PIN_ADC2                       PINPOS('E', 14)
+#define PIN_ADC3                       PINPOS('E', 15)
+#define PIN_AUD_AOUTL                  PINPOS('F', 2)
+#define PIN_IIC3_SDA                   PINPOS('F', 4)
+#define PIN_SD1_D2                     PINPOS('F', 14)
+#define PIN_AUD_AOUTR                  PINPOS('G', 2)
+#define PIN_SD1_D3                     PINPOS('G', 13)
+#define PIN_SD1_CLK                    PINPOS('G', 14)
+#define PIN_SD1_CMD                    PINPOS('G', 15)
+#define PIN_AUD_AINL_MIC               PINPOS('H', 1)
+#define PIN_RSTN                       PINPOS('H', 12)
+#define PIN_PWM0_BUCK                  PINPOS('H', 13)
+#define PIN_SD1_D1                     PINPOS('H', 14)
+#define PIN_SD1_D0                     PINPOS('H', 15)
+#define PIN_AUD_AINR_MIC               PINPOS('J', 1)
+#define PIN_IIC2_SCL                   PINPOS('J', 13)
+#define PIN_IIC2_SDA                   PINPOS('J', 14)
+#define PIN_SD0_CD                     PINPOS('K', 2)
+#define PIN_SD0_D1                     PINPOS('K', 3)
+#define PIN_UART2_RX                   PINPOS('K', 13)
+#define PIN_UART2_CTS                  PINPOS('K', 14)
+#define PIN_UART2_TX                   PINPOS('K', 15)
+#define PIN_SD0_CLK                    PINPOS('L', 1)
+#define PIN_SD0_D0                     PINPOS('L', 2)
+#define PIN_SD0_CMD                    PINPOS('L', 3)
+#define PIN_CLK32K                     PINPOS('L', 14)
+#define PIN_UART2_RTS                  PINPOS('L', 15)
+#define PIN_SD0_D3                     PINPOS('M', 1)
+#define PIN_SD0_D2                     PINPOS('M', 2)
+#define PIN_UART0_RX                   PINPOS('M', 4)
+#define PIN_UART0_TX                   PINPOS('M', 5)
+#define PIN_JTAG_CPU_TRST              PINPOS('M', 6)
+#define PIN_PWR_ON                     PINPOS('M', 11)
+#define PIN_PWR_GPIO2                  PINPOS('M', 12)
+#define PIN_PWR_GPIO0                  PINPOS('M', 13)
+#define PIN_CLK25M                     PINPOS('M', 14)
+#define PIN_SD0_PWR_EN                 PINPOS('N', 1)
+#define PIN_SPK_EN                     PINPOS('N', 3)
+#define PIN_JTAG_CPU_TCK               PINPOS('N', 4)
+#define PIN_JTAG_CPU_TMS               PINPOS('N', 6)
+#define PIN_PWR_WAKEUP1                        PINPOS('N', 11)
+#define PIN_PWR_WAKEUP0                        PINPOS('N', 12)
+#define PIN_PWR_GPIO1                  PINPOS('N', 13)
+#define PIN_EMMC_DAT3                  PINPOS('P', 1)
+#define PIN_EMMC_DAT0                  PINPOS('P', 2)
+#define PIN_EMMC_DAT2                  PINPOS('P', 3)
+#define PIN_EMMC_RSTN                  PINPOS('P', 4)
+#define PIN_AUX0                       PINPOS('P', 5)
+#define PIN_IIC0_SDA                   PINPOS('P', 6)
+#define PIN_PWR_SEQ3                   PINPOS('P', 10)
+#define PIN_PWR_VBAT_DET               PINPOS('P', 11)
+#define PIN_PWR_SEQ1                   PINPOS('P', 12)
+#define PIN_PWR_BUTTON1                        PINPOS('P', 13)
+#define PIN_EMMC_DAT1                  PINPOS('R', 2)
+#define PIN_EMMC_CMD                   PINPOS('R', 3)
+#define PIN_EMMC_CLK                   PINPOS('R', 4)
+#define PIN_IIC0_SCL                   PINPOS('R', 6)
+#define PIN_GPIO_ZQ                    PINPOS('R', 10)
+#define PIN_PWR_RSTN                   PINPOS('R', 11)
+#define PIN_PWR_SEQ2                   PINPOS('R', 12)
+#define PIN_XTAL_XIN                   PINPOS('R', 13)
+
+#endif /* _DT_BINDINGS_PINCTRL_CV1812H_H */
diff --git a/include/dt-bindings/pinctrl/pinctrl-cv18xx.h b/include/dt-bindings/pinctrl/pinctrl-cv18xx.h
new file mode 100644 (file)
index 0000000..bc92ad1
--- /dev/null
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+/*
+ * Copyright (C) 2023 Sophgo Ltd.
+ *
+ * Author: Inochi Amaoto <inochiama@outlook.com>
+ */
+
+#ifndef _DT_BINDINGS_PINCTRL_CV18XX_H
+#define _DT_BINDINGS_PINCTRL_CV18XX_H
+
+#define PIN_MUX_INVALD                         0xff
+
+#define PINMUX2(pin, mux, mux2)        \
+       (((pin) & 0xffff) | (((mux) & 0xff) << 16) | (((mux2) & 0xff) << 24))
+
+#define PINMUX(pin, mux) \
+       PINMUX2(pin, mux, PIN_MUX_INVALD)
+
+#endif /* _DT_BINDINGS_PINCTRL_CV18XX_H */
diff --git a/include/dt-bindings/pinctrl/pinctrl-sg2000.h b/include/dt-bindings/pinctrl/pinctrl-sg2000.h
new file mode 100644 (file)
index 0000000..4871f9a
--- /dev/null
@@ -0,0 +1,127 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+/*
+ * Copyright (C) 2024 Inochi Amaoto <inochiama@outlook.com>
+ *
+ * This file is generated from vendor pinout definition.
+ */
+
+#ifndef _DT_BINDINGS_PINCTRL_SG2000_H
+#define _DT_BINDINGS_PINCTRL_SG2000_H
+
+#include <dt-bindings/pinctrl/pinctrl-cv18xx.h>
+
+#define PINPOS(row, col)                       \
+       ((((row) - 'A' + 1) << 8) + ((col) - 1))
+
+#define PIN_MIPI_TXM4                  PINPOS('A', 2)
+#define PIN_MIPIRX0N                   PINPOS('A', 4)
+#define PIN_MIPIRX3P                   PINPOS('A', 6)
+#define PIN_MIPIRX4P                   PINPOS('A', 7)
+#define PIN_VIVO_D2                    PINPOS('A', 9)
+#define PIN_VIVO_D3                    PINPOS('A', 10)
+#define PIN_VIVO_D10                   PINPOS('A', 12)
+#define PIN_USB_VBUS_DET               PINPOS('A', 13)
+#define PIN_MIPI_TXP3                  PINPOS('B', 1)
+#define PIN_MIPI_TXM3                  PINPOS('B', 2)
+#define PIN_MIPI_TXP4                  PINPOS('B', 3)
+#define PIN_MIPIRX0P                   PINPOS('B', 4)
+#define PIN_MIPIRX1N                   PINPOS('B', 5)
+#define PIN_MIPIRX2N                   PINPOS('B', 6)
+#define PIN_MIPIRX4N                   PINPOS('B', 7)
+#define PIN_MIPIRX5N                   PINPOS('B', 8)
+#define PIN_VIVO_D1                    PINPOS('B', 9)
+#define PIN_VIVO_D5                    PINPOS('B', 10)
+#define PIN_VIVO_D7                    PINPOS('B', 11)
+#define PIN_VIVO_D9                    PINPOS('B', 12)
+#define PIN_USB_ID                     PINPOS('B', 13)
+#define PIN_ETH_RXM                    PINPOS('B', 15)
+#define PIN_MIPI_TXP2                  PINPOS('C', 1)
+#define PIN_MIPI_TXM2                  PINPOS('C', 2)
+#define PIN_CAM_PD0                    PINPOS('C', 3)
+#define PIN_CAM_MCLK0                  PINPOS('C', 4)
+#define PIN_MIPIRX1P                   PINPOS('C', 5)
+#define PIN_MIPIRX2P                   PINPOS('C', 6)
+#define PIN_MIPIRX3N                   PINPOS('C', 7)
+#define PIN_MIPIRX5P                   PINPOS('C', 8)
+#define PIN_VIVO_CLK                   PINPOS('C', 9)
+#define PIN_VIVO_D6                    PINPOS('C', 10)
+#define PIN_VIVO_D8                    PINPOS('C', 11)
+#define PIN_USB_VBUS_EN                        PINPOS('C', 12)
+#define PIN_ETH_RXP                    PINPOS('C', 14)
+#define PIN_GPIO_RTX                   PINPOS('C', 15)
+#define PIN_MIPI_TXP1                  PINPOS('D', 1)
+#define PIN_MIPI_TXM1                  PINPOS('D', 2)
+#define PIN_CAM_MCLK1                  PINPOS('D', 3)
+#define PIN_IIC3_SCL                   PINPOS('D', 4)
+#define PIN_VIVO_D4                    PINPOS('D', 10)
+#define PIN_ETH_TXM                    PINPOS('D', 14)
+#define PIN_ETH_TXP                    PINPOS('D', 15)
+#define PIN_MIPI_TXP0                  PINPOS('E', 1)
+#define PIN_MIPI_TXM0                  PINPOS('E', 2)
+#define PIN_CAM_PD1                    PINPOS('E', 4)
+#define PIN_CAM_RST0                   PINPOS('E', 5)
+#define PIN_VIVO_D0                    PINPOS('E', 10)
+#define PIN_ADC1                       PINPOS('E', 13)
+#define PIN_ADC2                       PINPOS('E', 14)
+#define PIN_ADC3                       PINPOS('E', 15)
+#define PIN_AUD_AOUTL                  PINPOS('F', 2)
+#define PIN_IIC3_SDA                   PINPOS('F', 4)
+#define PIN_SD1_D2                     PINPOS('F', 14)
+#define PIN_AUD_AOUTR                  PINPOS('G', 2)
+#define PIN_SD1_D3                     PINPOS('G', 13)
+#define PIN_SD1_CLK                    PINPOS('G', 14)
+#define PIN_SD1_CMD                    PINPOS('G', 15)
+#define PIN_AUD_AINL_MIC               PINPOS('H', 1)
+#define PIN_RSTN                       PINPOS('H', 12)
+#define PIN_PWM0_BUCK                  PINPOS('H', 13)
+#define PIN_SD1_D1                     PINPOS('H', 14)
+#define PIN_SD1_D0                     PINPOS('H', 15)
+#define PIN_AUD_AINR_MIC               PINPOS('J', 1)
+#define PIN_IIC2_SCL                   PINPOS('J', 13)
+#define PIN_IIC2_SDA                   PINPOS('J', 14)
+#define PIN_SD0_CD                     PINPOS('K', 2)
+#define PIN_SD0_D1                     PINPOS('K', 3)
+#define PIN_UART2_RX                   PINPOS('K', 13)
+#define PIN_UART2_CTS                  PINPOS('K', 14)
+#define PIN_UART2_TX                   PINPOS('K', 15)
+#define PIN_SD0_CLK                    PINPOS('L', 1)
+#define PIN_SD0_D0                     PINPOS('L', 2)
+#define PIN_SD0_CMD                    PINPOS('L', 3)
+#define PIN_CLK32K                     PINPOS('L', 14)
+#define PIN_UART2_RTS                  PINPOS('L', 15)
+#define PIN_SD0_D3                     PINPOS('M', 1)
+#define PIN_SD0_D2                     PINPOS('M', 2)
+#define PIN_UART0_RX                   PINPOS('M', 4)
+#define PIN_UART0_TX                   PINPOS('M', 5)
+#define PIN_JTAG_CPU_TRST              PINPOS('M', 6)
+#define PIN_PWR_ON                     PINPOS('M', 11)
+#define PIN_PWR_GPIO2                  PINPOS('M', 12)
+#define PIN_PWR_GPIO0                  PINPOS('M', 13)
+#define PIN_CLK25M                     PINPOS('M', 14)
+#define PIN_SD0_PWR_EN                 PINPOS('N', 1)
+#define PIN_SPK_EN                     PINPOS('N', 3)
+#define PIN_JTAG_CPU_TCK               PINPOS('N', 4)
+#define PIN_JTAG_CPU_TMS               PINPOS('N', 6)
+#define PIN_PWR_WAKEUP1                        PINPOS('N', 11)
+#define PIN_PWR_WAKEUP0                        PINPOS('N', 12)
+#define PIN_PWR_GPIO1                  PINPOS('N', 13)
+#define PIN_EMMC_DAT3                  PINPOS('P', 1)
+#define PIN_EMMC_DAT0                  PINPOS('P', 2)
+#define PIN_EMMC_DAT2                  PINPOS('P', 3)
+#define PIN_EMMC_RSTN                  PINPOS('P', 4)
+#define PIN_AUX0                       PINPOS('P', 5)
+#define PIN_IIC0_SDA                   PINPOS('P', 6)
+#define PIN_PWR_SEQ3                   PINPOS('P', 10)
+#define PIN_PWR_VBAT_DET               PINPOS('P', 11)
+#define PIN_PWR_SEQ1                   PINPOS('P', 12)
+#define PIN_PWR_BUTTON1                        PINPOS('P', 13)
+#define PIN_EMMC_DAT1                  PINPOS('R', 2)
+#define PIN_EMMC_CMD                   PINPOS('R', 3)
+#define PIN_EMMC_CLK                   PINPOS('R', 4)
+#define PIN_IIC0_SCL                   PINPOS('R', 6)
+#define PIN_GPIO_ZQ                    PINPOS('R', 10)
+#define PIN_PWR_RSTN                   PINPOS('R', 11)
+#define PIN_PWR_SEQ2                   PINPOS('R', 12)
+#define PIN_XTAL_XIN                   PINPOS('R', 13)
+
+#endif /* _DT_BINDINGS_PINCTRL_SG2000_H */
diff --git a/include/dt-bindings/pinctrl/pinctrl-sg2002.h b/include/dt-bindings/pinctrl/pinctrl-sg2002.h
new file mode 100644 (file)
index 0000000..3c36cfa
--- /dev/null
@@ -0,0 +1,79 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+/*
+ * Copyright (C) 2024 Inochi Amaoto <inochiama@outlook.com>
+ *
+ * This file is generated from vendor pinout definition.
+ */
+
+#ifndef _DT_BINDINGS_PINCTRL_SG2002_H
+#define _DT_BINDINGS_PINCTRL_SG2002_H
+
+#include <dt-bindings/pinctrl/pinctrl-cv18xx.h>
+
+#define PIN_AUD_AINL_MIC               2
+#define PIN_AUD_AOUTR                  4
+#define PIN_SD0_CLK                    6
+#define PIN_SD0_CMD                    7
+#define PIN_SD0_D0                     8
+#define PIN_SD0_D1                     10
+#define PIN_SD0_D2                     11
+#define PIN_SD0_D3                     12
+#define PIN_SD0_CD                     14
+#define PIN_SD0_PWR_EN                 15
+#define PIN_SPK_EN                     17
+#define PIN_UART0_TX                   18
+#define PIN_UART0_RX                   19
+#define PIN_EMMC_DAT2                  20
+#define PIN_EMMC_CLK                   21
+#define PIN_EMMC_DAT0                  22
+#define PIN_EMMC_DAT3                  23
+#define PIN_EMMC_CMD                   24
+#define PIN_EMMC_DAT1                  25
+#define PIN_JTAG_CPU_TMS               26
+#define PIN_JTAG_CPU_TCK               27
+#define PIN_IIC0_SCL                   28
+#define PIN_IIC0_SDA                   29
+#define PIN_AUX0                       30
+#define PIN_GPIO_ZQ                    35
+#define PIN_PWR_VBAT_DET               38
+#define PIN_PWR_RSTN                   39
+#define PIN_PWR_SEQ1                   40
+#define PIN_PWR_SEQ2                   41
+#define PIN_PWR_WAKEUP0                        43
+#define PIN_PWR_BUTTON1                        44
+#define PIN_XTAL_XIN                   45
+#define PIN_PWR_GPIO0                  47
+#define PIN_PWR_GPIO1                  48
+#define PIN_PWR_GPIO2                  49
+#define PIN_SD1_D3                     51
+#define PIN_SD1_D2                     52
+#define PIN_SD1_D1                     53
+#define PIN_SD1_D0                     54
+#define PIN_SD1_CMD                    55
+#define PIN_SD1_CLK                    56
+#define PIN_PWM0_BUCK                  58
+#define PIN_ADC1                       59
+#define PIN_USB_VBUS_DET               60
+#define PIN_ETH_TXP                    62
+#define PIN_ETH_TXM                    63
+#define PIN_ETH_RXP                    64
+#define PIN_ETH_RXM                    65
+#define PIN_GPIO_RTX                   67
+#define PIN_MIPIRX4N                   72
+#define PIN_MIPIRX4P                   73
+#define PIN_MIPIRX3N                   74
+#define PIN_MIPIRX3P                   75
+#define PIN_MIPIRX2N                   76
+#define PIN_MIPIRX2P                   77
+#define PIN_MIPIRX1N                   78
+#define PIN_MIPIRX1P                   79
+#define PIN_MIPIRX0N                   80
+#define PIN_MIPIRX0P                   81
+#define PIN_MIPI_TXM2                  83
+#define PIN_MIPI_TXP2                  84
+#define PIN_MIPI_TXM1                  85
+#define PIN_MIPI_TXP1                  86
+#define PIN_MIPI_TXM0                  87
+#define PIN_MIPI_TXP0                  88
+
+#endif /* _DT_BINDINGS_PINCTRL_SG2002_H */
diff --git a/include/dt-bindings/power/rockchip,rk3576-power.h b/include/dt-bindings/power/rockchip,rk3576-power.h
new file mode 100644 (file)
index 0000000..324a056
--- /dev/null
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
+#ifndef __DT_BINDINGS_POWER_RK3576_POWER_H__
+#define __DT_BINDINGS_POWER_RK3576_POWER_H__
+
+/* VD_NPU */
+#define RK3576_PD_NPU          0
+#define RK3576_PD_NPUTOP       1
+#define RK3576_PD_NPU0         2
+#define RK3576_PD_NPU1         3
+
+/* VD_GPU */
+#define RK3576_PD_GPU          4
+
+/* VD_LOGIC */
+#define RK3576_PD_NVM          5
+#define RK3576_PD_SDGMAC       6
+#define RK3576_PD_USB          7
+#define RK3576_PD_PHP          8
+#define RK3576_PD_SUBPHP       9
+#define RK3576_PD_AUDIO                10
+#define RK3576_PD_VEPU0                11
+#define RK3576_PD_VEPU1                12
+#define RK3576_PD_VPU          13
+#define RK3576_PD_VDEC         14
+#define RK3576_PD_VI           15
+#define RK3576_PD_VO0          16
+#define RK3576_PD_VO1          17
+#define RK3576_PD_VOP          18
+
+#endif
diff --git a/include/dt-bindings/reset/rockchip,rk3576-cru.h b/include/dt-bindings/reset/rockchip,rk3576-cru.h
new file mode 100644 (file)
index 0000000..ae85690
--- /dev/null
@@ -0,0 +1,564 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
+/*
+ * Copyright (c) 2023 Rockchip Electronics Co. Ltd.
+ * Copyright (c) 2024 Collabora Ltd.
+ *
+ * Author: Elaine Zhang <zhangqing@rock-chips.com>
+ * Author: Detlev Casanova <detlev.casanova@collabora.com>
+ */
+
+#ifndef _DT_BINDINGS_RESET_ROCKCHIP_RK3576_H
+#define _DT_BINDINGS_RESET_ROCKCHIP_RK3576_H
+
+#define SRST_A_TOP_BIU                 0
+#define SRST_P_TOP_BIU                 1
+#define SRST_A_TOP_MID_BIU             2
+#define SRST_A_SECURE_HIGH_BIU         3
+#define SRST_H_TOP_BIU                 4
+
+#define SRST_H_VO0VOP_CHANNEL_BIU      5
+#define SRST_A_VO0VOP_CHANNEL_BIU      6
+
+#define SRST_BISRINTF                  7
+
+#define SRST_H_AUDIO_BIU               8
+#define SRST_H_ASRC_2CH_0              9
+#define SRST_H_ASRC_2CH_1              10
+#define SRST_H_ASRC_4CH_0              11
+#define SRST_H_ASRC_4CH_1              12
+#define SRST_ASRC_2CH_0                        13
+#define SRST_ASRC_2CH_1                        14
+#define SRST_ASRC_4CH_0                        15
+#define SRST_ASRC_4CH_1                        16
+#define SRST_M_SAI0_8CH                        17
+#define SRST_H_SAI0_8CH                        18
+#define SRST_H_SPDIF_RX0               19
+#define SRST_M_SPDIF_RX0               20
+
+#define SRST_H_SPDIF_RX1               21
+#define SRST_M_SPDIF_RX1               22
+#define SRST_M_SAI1_8CH                        23
+#define SRST_H_SAI1_8CH                        24
+#define SRST_M_SAI2_2CH                        25
+#define SRST_H_SAI2_2CH                        26
+#define SRST_M_SAI3_2CH                        27
+#define SRST_H_SAI3_2CH                        28
+
+#define SRST_M_SAI4_2CH                        29
+#define SRST_H_SAI4_2CH                        30
+#define SRST_H_ACDCDIG_DSM             31
+#define SRST_M_ACDCDIG_DSM             32
+#define SRST_PDM1                      33
+#define SRST_H_PDM1                    34
+#define SRST_M_PDM1                    35
+#define SRST_H_SPDIF_TX0               36
+#define SRST_M_SPDIF_TX0               37
+#define SRST_H_SPDIF_TX1               38
+#define SRST_M_SPDIF_TX1               39
+
+#define SRST_A_BUS_BIU                 40
+#define SRST_P_BUS_BIU                 41
+#define SRST_P_CRU                     42
+#define SRST_H_CAN0                    43
+#define SRST_CAN0                      44
+#define SRST_H_CAN1                    45
+#define SRST_CAN1                      46
+#define SRST_P_INTMUX2BUS              47
+#define SRST_P_VCCIO_IOC               48
+#define SRST_H_BUS_BIU                 49
+#define SRST_KEY_SHIFT                 50
+
+#define SRST_P_I2C1                    51
+#define SRST_P_I2C2                    52
+#define SRST_P_I2C3                    53
+#define SRST_P_I2C4                    54
+#define SRST_P_I2C5                    55
+#define SRST_P_I2C6                    56
+#define SRST_P_I2C7                    57
+#define SRST_P_I2C8                    58
+#define SRST_P_I2C9                    59
+#define SRST_P_WDT_BUSMCU              60
+#define SRST_T_WDT_BUSMCU              61
+#define SRST_A_GIC                     62
+#define SRST_I2C1                      63
+#define SRST_I2C2                      64
+#define SRST_I2C3                      65
+#define SRST_I2C4                      66
+
+#define SRST_I2C5                      67
+#define SRST_I2C6                      68
+#define SRST_I2C7                      69
+#define SRST_I2C8                      70
+#define SRST_I2C9                      71
+#define SRST_P_SARADC                  72
+#define SRST_SARADC                    73
+#define SRST_P_TSADC                   74
+#define SRST_TSADC                     75
+#define SRST_P_UART0                   76
+#define SRST_P_UART2                   77
+#define SRST_P_UART3                   78
+#define SRST_P_UART4                   79
+#define SRST_P_UART5                   80
+#define SRST_P_UART6                   81
+
+#define SRST_P_UART7                   82
+#define SRST_P_UART8                   83
+#define SRST_P_UART9                   84
+#define SRST_P_UART10                  85
+#define SRST_P_UART11                  86
+#define SRST_S_UART0                   87
+#define SRST_S_UART2                   88
+#define SRST_S_UART3                   89
+#define SRST_S_UART4                   90
+#define SRST_S_UART5                   91
+
+#define SRST_S_UART6                   92
+#define SRST_S_UART7                   93
+#define SRST_S_UART8                   94
+#define SRST_S_UART9                   95
+#define SRST_S_UART10                  96
+#define SRST_S_UART11                  97
+#define SRST_P_SPI0                    98
+#define SRST_P_SPI1                    99
+#define SRST_P_SPI2                    100
+
+#define SRST_P_SPI3                    101
+#define SRST_P_SPI4                    102
+#define SRST_SPI0                      103
+#define SRST_SPI1                      104
+#define SRST_SPI2                      105
+#define SRST_SPI3                      106
+#define SRST_SPI4                      107
+#define SRST_P_WDT0                    108
+#define SRST_T_WDT0                    109
+#define SRST_P_SYS_GRF                 110
+#define SRST_P_PWM1                    111
+#define SRST_PWM1                      112
+
+#define SRST_P_BUSTIMER0               113
+#define SRST_P_BUSTIMER1               114
+#define SRST_TIMER0                    115
+#define SRST_TIMER1                    116
+#define SRST_TIMER2                    117
+#define SRST_TIMER3                    118
+#define SRST_TIMER4                    119
+#define SRST_TIMER5                    120
+#define SRST_P_BUSIOC                  121
+#define SRST_P_MAILBOX0                        122
+#define SRST_P_GPIO1                   123
+
+#define SRST_GPIO1                     124
+#define SRST_P_GPIO2                   125
+#define SRST_GPIO2                     126
+#define SRST_P_GPIO3                   127
+#define SRST_GPIO3                     128
+#define SRST_P_GPIO4                   129
+#define SRST_GPIO4                     130
+#define SRST_A_DECOM                   131
+#define SRST_P_DECOM                   132
+#define SRST_D_DECOM                   133
+#define SRST_TIMER6                    134
+#define SRST_TIMER7                    135
+#define SRST_TIMER8                    136
+#define SRST_TIMER9                    137
+#define SRST_TIMER10                   138
+
+#define SRST_TIMER11                   139
+#define SRST_A_DMAC0                   140
+#define SRST_A_DMAC1                   141
+#define SRST_A_DMAC2                   142
+#define SRST_A_SPINLOCK                        143
+#define SRST_REF_PVTPLL_BUS            144
+#define SRST_H_I3C0                    145
+#define SRST_H_I3C1                    146
+#define SRST_H_BUS_CM0_BIU             147
+#define SRST_F_BUS_CM0_CORE            148
+#define SRST_T_BUS_CM0_JTAG            149
+
+#define SRST_P_INTMUX2PMU              150
+#define SRST_P_INTMUX2DDR              151
+#define SRST_P_PVTPLL_BUS              152
+#define SRST_P_PWM2                    153
+#define SRST_PWM2                      154
+#define SRST_FREQ_PWM1                 155
+#define SRST_COUNTER_PWM1              156
+#define SRST_I3C0                      157
+#define SRST_I3C1                      158
+
+#define SRST_P_DDR_MON_CH0             159
+#define SRST_P_DDR_BIU                 160
+#define SRST_P_DDR_UPCTL_CH0           161
+#define SRST_TM_DDR_MON_CH0            162
+#define SRST_A_DDR_BIU                 163
+#define SRST_DFI_CH0                   164
+#define SRST_DDR_MON_CH0               165
+#define SRST_P_DDR_HWLP_CH0            166
+#define SRST_P_DDR_MON_CH1             167
+#define SRST_P_DDR_HWLP_CH1            168
+
+#define SRST_P_DDR_UPCTL_CH1           169
+#define SRST_TM_DDR_MON_CH1            170
+#define SRST_DFI_CH1                   171
+#define SRST_A_DDR01_MSCH0             172
+#define SRST_A_DDR01_MSCH1             173
+#define SRST_DDR_MON_CH1               174
+#define SRST_DDR_SCRAMBLE_CH0          175
+#define SRST_DDR_SCRAMBLE_CH1          176
+#define SRST_P_AHB2APB                 177
+#define SRST_H_AHB2APB                 178
+#define SRST_H_DDR_BIU                 179
+#define SRST_F_DDR_CM0_CORE            180
+
+#define SRST_P_DDR01_MSCH0             181
+#define SRST_P_DDR01_MSCH1             182
+#define SRST_DDR_TIMER0                        183
+#define SRST_DDR_TIMER1                        184
+#define SRST_T_WDT_DDR                 185
+#define SRST_P_WDT                     186
+#define SRST_P_TIMER                   187
+#define SRST_T_DDR_CM0_JTAG            188
+#define SRST_P_DDR_GRF                 189
+
+#define SRST_DDR_UPCTL_CH0             190
+#define SRST_A_DDR_UPCTL_0_CH0         191
+#define SRST_A_DDR_UPCTL_1_CH0         192
+#define SRST_A_DDR_UPCTL_2_CH0         193
+#define SRST_A_DDR_UPCTL_3_CH0         194
+#define SRST_A_DDR_UPCTL_4_CH0         195
+
+#define SRST_DDR_UPCTL_CH1             196
+#define SRST_A_DDR_UPCTL_0_CH1         197
+#define SRST_A_DDR_UPCTL_1_CH1         198
+#define SRST_A_DDR_UPCTL_2_CH1         199
+#define SRST_A_DDR_UPCTL_3_CH1         200
+#define SRST_A_DDR_UPCTL_4_CH1         201
+
+#define SRST_REF_PVTPLL_DDR            202
+#define SRST_P_PVTPLL_DDR              203
+
+#define SRST_A_RKNN0                   204
+#define SRST_A_RKNN0_BIU               205
+#define SRST_L_RKNN0_BIU               206
+
+#define SRST_A_RKNN1                   207
+#define SRST_A_RKNN1_BIU               208
+#define SRST_L_RKNN1_BIU               209
+
+#define SRST_NPU_DAP                   210
+#define SRST_L_NPUSUBSYS_BIU           211
+#define SRST_P_NPUTOP_BIU              212
+#define SRST_P_NPU_TIMER               213
+#define SRST_NPUTIMER0                 214
+#define SRST_NPUTIMER1                 215
+#define SRST_P_NPU_WDT                 216
+#define SRST_T_NPU_WDT                 217
+
+#define SRST_A_RKNN_CBUF               218
+#define SRST_A_RVCORE0                 219
+#define SRST_P_NPU_GRF                 220
+#define SRST_P_PVTPLL_NPU              221
+#define SRST_NPU_PVTPLL                        222
+#define SRST_H_NPU_CM0_BIU             223
+#define SRST_F_NPU_CM0_CORE            224
+#define SRST_T_NPU_CM0_JTAG            225
+#define SRST_A_RKNNTOP_BIU             226
+#define SRST_H_RKNN_CBUF               227
+#define SRST_H_RKNNTOP_BIU             228
+
+#define SRST_H_NVM_BIU                 229
+#define SRST_A_NVM_BIU                 230
+#define SRST_S_FSPI                    231
+#define SRST_H_FSPI                    232
+#define SRST_C_EMMC                    233
+#define SRST_H_EMMC                    234
+#define SRST_A_EMMC                    235
+#define SRST_B_EMMC                    236
+#define SRST_T_EMMC                    237
+
+#define SRST_P_GRF                     238
+#define SRST_P_PHP_BIU                 239
+#define SRST_A_PHP_BIU                 240
+#define SRST_P_PCIE0                   241
+#define SRST_PCIE0_POWER_UP            242
+
+#define SRST_A_USB3OTG1                        243
+#define SRST_A_MMU0                    244
+#define SRST_A_SLV_MMU0                        245
+#define SRST_A_MMU1                    246
+
+#define SRST_A_SLV_MMU1                        247
+#define SRST_P_PCIE1                   248
+#define SRST_PCIE1_POWER_UP            249
+
+#define SRST_RXOOB0                    250
+#define SRST_RXOOB1                    251
+#define SRST_PMALIVE0                  252
+#define SRST_PMALIVE1                  253
+#define SRST_A_SATA0                   254
+#define SRST_A_SATA1                   255
+#define SRST_ASIC1                     256
+#define SRST_ASIC0                     257
+
+#define SRST_P_CSIDPHY1                        258
+#define SRST_SCAN_CSIDPHY1             259
+
+#define SRST_P_SDGMAC_GRF              260
+#define SRST_P_SDGMAC_BIU              261
+#define SRST_A_SDGMAC_BIU              262
+#define SRST_H_SDGMAC_BIU              263
+#define SRST_A_GMAC0                   264
+#define SRST_A_GMAC1                   265
+#define SRST_P_GMAC0                   266
+#define SRST_P_GMAC1                   267
+#define SRST_H_SDIO                    268
+
+#define SRST_H_SDMMC0                  269
+#define SRST_S_FSPI1                   270
+#define SRST_H_FSPI1                   271
+#define SRST_A_DSMC_BIU                        272
+#define SRST_A_DSMC                    273
+#define SRST_P_DSMC                    274
+#define SRST_H_HSGPIO                  275
+#define SRST_HSGPIO                    276
+#define SRST_A_HSGPIO                  277
+
+#define SRST_H_RKVDEC                  278
+#define SRST_H_RKVDEC_BIU              279
+#define SRST_A_RKVDEC_BIU              280
+#define SRST_RKVDEC_HEVC_CA            281
+#define SRST_RKVDEC_CORE               282
+
+#define SRST_A_USB_BIU                 283
+#define SRST_P_USBUFS_BIU              284
+#define SRST_A_USB3OTG0                        285
+#define SRST_A_UFS_BIU                 286
+#define SRST_A_MMU2                    287
+#define SRST_A_SLV_MMU2                        288
+#define SRST_A_UFS_SYS                 289
+
+#define SRST_A_UFS                     290
+#define SRST_P_USBUFS_GRF              291
+#define SRST_P_UFS_GRF                 292
+
+#define SRST_H_VPU_BIU                 293
+#define SRST_A_JPEG_BIU                        294
+#define SRST_A_RGA_BIU                 295
+#define SRST_A_VDPP_BIU                        296
+#define SRST_A_EBC_BIU                 297
+#define SRST_H_RGA2E_0                 298
+#define SRST_A_RGA2E_0                 299
+#define SRST_CORE_RGA2E_0              300
+
+#define SRST_A_JPEG                    301
+#define SRST_H_JPEG                    302
+#define SRST_H_VDPP                    303
+#define SRST_A_VDPP                    304
+#define SRST_CORE_VDPP                 305
+#define SRST_H_RGA2E_1                 306
+#define SRST_A_RGA2E_1                 307
+#define SRST_CORE_RGA2E_1              308
+#define SRST_H_EBC                     309
+#define SRST_A_EBC                     310
+#define SRST_D_EBC                     311
+
+#define SRST_H_VEPU0_BIU               312
+#define SRST_A_VEPU0_BIU               313
+#define SRST_H_VEPU0                   314
+#define SRST_A_VEPU0                   315
+#define SRST_VEPU0_CORE                        316
+
+#define SRST_A_VI_BIU                  317
+#define SRST_H_VI_BIU                  318
+#define SRST_P_VI_BIU                  319
+#define SRST_D_VICAP                   320
+#define SRST_A_VICAP                   321
+#define SRST_H_VICAP                   322
+#define SRST_ISP0                      323
+#define SRST_ISP0_VICAP                        324
+
+#define SRST_CORE_VPSS                 325
+#define SRST_P_CSI_HOST_0              326
+#define SRST_P_CSI_HOST_1              327
+#define SRST_P_CSI_HOST_2              328
+#define SRST_P_CSI_HOST_3              329
+#define SRST_P_CSI_HOST_4              330
+
+#define SRST_CIFIN                     331
+#define SRST_VICAP_I0CLK               332
+#define SRST_VICAP_I1CLK               333
+#define SRST_VICAP_I2CLK               334
+#define SRST_VICAP_I3CLK               335
+#define SRST_VICAP_I4CLK               336
+
+#define SRST_A_VOP_BIU                 337
+#define SRST_A_VOP2_BIU                        338
+#define SRST_H_VOP_BIU                 339
+#define SRST_P_VOP_BIU                 340
+#define SRST_H_VOP                     341
+#define SRST_A_VOP                     342
+#define SRST_D_VP0                     343
+
+#define SRST_D_VP1                     344
+#define SRST_D_VP2                     345
+#define SRST_P_VOP2_BIU                        346
+#define SRST_P_VOPGRF                  347
+
+#define SRST_H_VO0_BIU                 348
+#define SRST_P_VO0_BIU                 349
+#define SRST_A_HDCP0_BIU               350
+#define SRST_P_VO0_GRF                 351
+#define SRST_A_HDCP0                   352
+#define SRST_H_HDCP0                   353
+#define SRST_HDCP0                     354
+
+#define SRST_P_DSIHOST0                        355
+#define SRST_DSIHOST0                  356
+#define SRST_P_HDMITX0                 357
+#define SRST_HDMITX0_REF               358
+#define SRST_P_EDP0                    359
+#define SRST_EDP0_24M                  360
+
+#define SRST_M_SAI5_8CH                        361
+#define SRST_H_SAI5_8CH                        362
+#define SRST_M_SAI6_8CH                        363
+#define SRST_H_SAI6_8CH                        364
+#define SRST_H_SPDIF_TX2               365
+#define SRST_M_SPDIF_TX2               366
+#define SRST_H_SPDIF_RX2               367
+#define SRST_M_SPDIF_RX2               368
+
+#define SRST_H_SAI8_8CH                        369
+#define SRST_M_SAI8_8CH                        370
+
+#define SRST_H_VO1_BIU                 371
+#define SRST_P_VO1_BIU                 372
+#define SRST_M_SAI7_8CH                        373
+#define SRST_H_SAI7_8CH                        374
+#define SRST_H_SPDIF_TX3               375
+#define SRST_H_SPDIF_TX4               376
+#define SRST_H_SPDIF_TX5               377
+#define SRST_M_SPDIF_TX3               378
+
+#define SRST_DP0                       379
+#define SRST_P_VO1_GRF                 380
+#define SRST_A_HDCP1_BIU               381
+#define SRST_A_HDCP1                   382
+#define SRST_H_HDCP1                   383
+#define SRST_HDCP1                     384
+#define SRST_H_SAI9_8CH                        385
+#define SRST_M_SAI9_8CH                        386
+#define SRST_M_SPDIF_TX4               387
+#define SRST_M_SPDIF_TX5               388
+
+#define SRST_GPU                       389
+#define SRST_A_S_GPU_BIU               390
+#define SRST_A_M0_GPU_BIU              391
+#define SRST_P_GPU_BIU                 392
+#define SRST_P_GPU_GRF                 393
+#define SRST_GPU_PVTPLL                        394
+#define SRST_P_PVTPLL_GPU              395
+
+#define SRST_A_CENTER_BIU              396
+#define SRST_A_DMA2DDR                 397
+#define SRST_A_DDR_SHAREMEM            398
+#define SRST_A_DDR_SHAREMEM_BIU                399
+#define SRST_H_CENTER_BIU              400
+#define SRST_P_CENTER_GRF              401
+#define SRST_P_DMA2DDR                 402
+#define SRST_P_SHAREMEM                        403
+#define SRST_P_CENTER_BIU              404
+
+#define SRST_LINKSYM_HDMITXPHY0                405
+
+#define SRST_DP0_PIXELCLK              406
+#define SRST_PHY_DP0_TX                        407
+#define SRST_DP1_PIXELCLK              408
+#define SRST_DP2_PIXELCLK              409
+
+#define SRST_H_VEPU1_BIU               410
+#define SRST_A_VEPU1_BIU               411
+#define SRST_H_VEPU1                   412
+#define SRST_A_VEPU1                   413
+#define SRST_VEPU1_CORE                        414
+
+#define SRST_P_PHPPHY_CRU              415
+#define SRST_P_APB2ASB_SLV_CHIP_TOP    416
+#define SRST_P_PCIE2_COMBOPHY0         417
+#define SRST_P_PCIE2_COMBOPHY0_GRF     418
+#define SRST_P_PCIE2_COMBOPHY1         419
+#define SRST_P_PCIE2_COMBOPHY1_GRF     420
+
+#define SRST_PCIE0_PIPE_PHY            421
+#define SRST_PCIE1_PIPE_PHY            422
+
+#define SRST_H_CRYPTO_NS               423
+#define SRST_H_TRNG_NS                 424
+#define SRST_P_OTPC_NS                 425
+#define SRST_OTPC_NS                   426
+
+#define SRST_P_HDPTX_GRF               427
+#define SRST_P_HDPTX_APB               428
+#define SRST_P_MIPI_DCPHY              429
+#define SRST_P_DCPHY_GRF               430
+#define SRST_P_BOT0_APB2ASB            431
+#define SRST_P_BOT1_APB2ASB            432
+#define SRST_USB2DEBUG                 433
+#define SRST_P_CSIPHY_GRF              434
+#define SRST_P_CSIPHY                  435
+#define SRST_P_USBPHY_GRF_0            436
+#define SRST_P_USBPHY_GRF_1            437
+#define SRST_P_USBDP_GRF               438
+#define SRST_P_USBDPPHY                        439
+#define SRST_USBDP_COMBO_PHY_INIT      440
+
+#define SRST_USBDP_COMBO_PHY_CMN       441
+#define SRST_USBDP_COMBO_PHY_LANE      442
+#define SRST_USBDP_COMBO_PHY_PCS       443
+#define SRST_M_MIPI_DCPHY              444
+#define SRST_S_MIPI_DCPHY              445
+#define SRST_SCAN_CSIPHY               446
+#define SRST_P_VCCIO6_IOC              447
+#define SRST_OTGPHY_0                  448
+#define SRST_OTGPHY_1                  449
+#define SRST_HDPTX_INIT                        450
+#define SRST_HDPTX_CMN                 451
+#define SRST_HDPTX_LANE                        452
+#define SRST_HDMITXHDP                 453
+
+#define SRST_MPHY_INIT                 454
+#define SRST_P_MPHY_GRF                        455
+#define SRST_P_VCCIO7_IOC              456
+
+#define SRST_H_PMU1_BIU                        457
+#define SRST_P_PMU1_NIU                        458
+#define SRST_H_PMU_CM0_BIU             459
+#define SRST_PMU_CM0_CORE              460
+#define SRST_PMU_CM0_JTAG              461
+
+#define SRST_P_CRU_PMU1                        462
+#define SRST_P_PMU1_GRF                        463
+#define SRST_P_PMU1_IOC                        464
+#define SRST_P_PMU1WDT                 465
+#define SRST_T_PMU1WDT                 466
+#define SRST_P_PMUTIMER                        467
+#define SRST_PMUTIMER0                 468
+#define SRST_PMUTIMER1                 469
+#define SRST_P_PMU1PWM                 470
+#define SRST_PMU1PWM                   471
+
+#define SRST_P_I2C0                    472
+#define SRST_I2C0                      473
+#define SRST_S_UART1                   474
+#define SRST_P_UART1                   475
+#define SRST_PDM0                      476
+#define SRST_H_PDM0                    477
+
+#define SRST_M_PDM0                    478
+#define SRST_H_VAD                     479
+
+#define SRST_P_PMU0GRF                 480
+#define SRST_P_PMU0IOC                 481
+#define SRST_P_GPIO0                   482
+#define SRST_DB_GPIO0                  483
+
+#endif
diff --git a/include/dt-bindings/soc/qe-fsl,tsa.h b/include/dt-bindings/soc/qe-fsl,tsa.h
new file mode 100644 (file)
index 0000000..3cf3df9
--- /dev/null
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+
+#ifndef __DT_BINDINGS_SOC_FSL_QE_TSA_H
+#define __DT_BINDINGS_SOC_FSL_QE_TSA_H
+
+#define FSL_QE_TSA_NU          0
+#define FSL_QE_TSA_UCC1                1
+#define FSL_QE_TSA_UCC2                2
+#define FSL_QE_TSA_UCC3                3
+#define FSL_QE_TSA_UCC4                4
+#define FSL_QE_TSA_UCC5                5
+
+#endif
index 3da47349eaaf75065afd013fcaeaa3923578b78f..49890eb12781f4365ffa7a5d3cdb5ec8c09be3e2 100644 (file)
@@ -34,8 +34,6 @@
 
        gpio-keys {
                compatible = "gpio-keys-polled";
-               #address-cells = <1>;
-               #size-cells = <0>;
                poll-interval = <100>;
 
                pal-switch {
index 26783d053ac7fdf5dee9661a8923af7c20b9a39e..40f7515aa068db20741817a6bd1941947692ff41 100644 (file)
                };
 
                /* PMU with one IRQ line per core */
-               pmu: pmu@0 {
+               pmu: pmu {
                        compatible = "arm,arm11mpcore-pmu";
                        interrupt-parent = <&intc>;
                        interrupts = <0 17 IRQ_TYPE_LEVEL_HIGH>,
index ce35748f3d25d09f0cfaaced3f0ba7bdb7e8801d..db1b6793cd2c62147ba2f026b17ab0b55290209a 100644 (file)
@@ -92,7 +92,7 @@
                      <0x1f000100 0x100>;
        };
 
-       L2: cache-controller {
+       L2: cache-controller@1f002000 {
                compatible = "arm,l220-cache";
                reg = <0x1f002000 0x1000>;
                interrupt-parent = <&intc_tc11mp>;
index d3238c252b59770b1f0d5a5ac39e2632780e62fa..d2e0082245f9b0a782314eb22bad52e89e531b62 100644 (file)
@@ -40,7 +40,7 @@
                };
        };
 
-       pmu: pmu@0 {
+       pmu: pmu {
                compatible = "arm,cortex-a8-pmu";
                interrupt-parent = <&intc>;
                interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
index 85d3968fbb91714e0ec3cdadd504b9a035934f65..507ad7ac497416459b5e7f5289a26a0ef3828593 100644 (file)
@@ -97,7 +97,7 @@
                interrupts = <1 14 0xf04>;
        };
 
-       pmu: pmu@0 {
+       pmu: pmu {
                compatible = "arm,cortex-a9-pmu";
                interrupt-parent = <&intc>;
                interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>,
index 8ab5f301f92680f3927a522987fbf52aa5d87bfe..31c5d319aa0a9f2a3d44db2db4448d63916cd8f3 100644 (file)
                 */
                i2c80 = &nvme_m2_0;
                i2c81 = &nvme_m2_1;
+
+               /*
+                *  i2c bus 82 assigned to OCP slot
+                */
+               i2c82 = &ocpslot;
        };
 
        chosen {
                reg = <0x70>;
                i2c-mux-idle-disconnect;
 
+               ocpslot: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x0>;
+
+                       ocpslot_temp: temperature-sensor@1f {
+                               compatible = "ti,tmp421";
+                               reg = <0x1f>;
+                       };
+               };
+
                nvmeslot_0_7: i2c@3 {
                        #address-cells = <1>;
                        #size-cells = <0>;
        memory-region = <&gfx_memory>;
 };
 
-&pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-};
-
 &pwm_tacho {
        status = "okay";
        pinctrl-names = "default";
index 3c8925034a8c4dde3361c6cba3a28d985b727e97..0295f5adcfbc8414b061bffc484bd1cdc65330f3 100644 (file)
                serial7 = &uart8;
                serial8 = &uart9;
 
+               /*
+                * I2C temperature alias port
+                */
+               i2c20 = &i2c4_bus70_chn0;
+               i2c21 = &i2c4_bus70_chn1;
+               i2c22 = &i2c4_bus70_chn2;
+               i2c23 = &i2c4_bus70_chn3;
+
+               /*
+                *  i2c bus 30-31 assigned to OCP slot 0-1
+                */
+               i2c30 = &ocpslot_0;
+               i2c31 = &ocpslot_1;
+
+               /*
+                *  i2c bus 32-33 assigned to Riser slot 0-1
+                */
+               i2c32 = &i2c_riser0;
+               i2c33 = &i2c_riser1;
+
+               /*
+                *  i2c bus 38-39 assigned to FRU on Riser slot 0-1
+                */
+               i2c38 = &i2c_riser0_chn_0;
+               i2c39 = &i2c_riser1_chn_0;
+
                /*
                 *  I2C NVMe alias port
                 */
                };
        };
 
+       leds {
+               compatible = "gpio-leds";
+               /*
+                * Use gpio-leds to configure GPIOW5 (bmc-ready) pin to be reseted when
+                * watchdog timeout.
+                */
+               led-bmc-ready {
+                       gpios = <&gpio0 ASPEED_GPIO(W, 5) (GPIO_ACTIVE_HIGH | GPIO_TRANSITORY)>;
+               };
+
+               led-sw-heartbeat {
+                       gpios = <&gpio0 ASPEED_GPIO(N, 3) GPIO_ACTIVE_HIGH>;
+               };
+
+               led-identify {
+                       gpios = <&gpio0 ASPEED_GPIO(S, 3) GPIO_ACTIVE_HIGH>;
+               };
+
+               led-fault {
+                       gpios = <&gpio0 ASPEED_GPIO(P, 4) GPIO_ACTIVE_HIGH>;
+               };
+
+               led-fan-fault {
+                       gpios = <&gpio_expander1 0 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-psu-fault {
+                       gpios = <&gpio_expander1 1 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
        voltage_mon_reg: voltage-mon-regulator {
                compatible = "regulator-fixed";
                regulator-name = "ltc2497_reg";
                #size-cells = <0>;
                reg = <0x70>;
                i2c-mux-idle-disconnect;
+
+               ocpslot_0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x0>;
+
+                       ocpslot_0_temp: temperature-sensor@1f {
+                               compatible = "ti,tmp421";
+                               reg = <0x1f>;
+                       };
+               };
+
+               ocpslot_1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x1>;
+
+                       ocpslot_1_temp: temperature-sensor@1f {
+                               compatible = "ti,tmp421";
+                               reg = <0x1f>;
+                       };
+               };
+
+               i2c_riser0: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x2>;
+
+                       i2c-mux@72 {
+                               compatible = "nxp,pca9546";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0x72>;
+                               i2c-mux-idle-disconnect;
+
+                               i2c_riser0_chn_0: i2c@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0x0>;
+
+                                       eeprom@50 {
+                                               compatible = "atmel,24c02";
+                                               reg = <0x50>;
+                                               pagesize = <16>;
+                                       };
+                               };
+                       };
+               };
+
+               i2c_riser1: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x3>;
+
+                       i2c-mux@72 {
+                               compatible = "nxp,pca9546";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0x72>;
+                               i2c-mux-idle-disconnect;
+
+                               i2c_riser1_chn_0: i2c@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0x0>;
+
+                                       eeprom@50 {
+                                               compatible = "atmel,24c02";
+                                               reg = <0x50>;
+                                               pagesize = <16>;
+                                       };
+                               };
+                       };
+               };
        };
 };
 
        };
 };
 
+&i2c10 {
+       status = "okay";
+};
+
 &i2c11 {
        status = "okay";
        ssif-bmc@10 {
        };
 };
 
+&i2c15 {
+       status = "okay";
+       gpio_expander1: gpio-expander@22 {
+               compatible = "nxp,pca9535";
+               reg = <0x22>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+                       "fan-fault","psu-fault",
+                       "","",
+                       "","",
+                       "","",
+                       "","",
+                       "","",
+                       "","",
+                       "","";
+       };
+};
+
 &adc0 {
        status = "okay";
 
index 7c6af7f226e75c064b9733fcb14cdca7814853f2..29c68c37e7f5aa8c281910cd39dd27c84ccd567d 100644 (file)
        status = "okay";
 };
 
-&pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-};
-
 &gpio {
        pin_gpio_c7 {
                gpio-hog;
index 555485871e7a7db026aee2ac7c6709a00414e93e..c4097e4f2ca4ee0f97a4bef0e4534109ccdc9745 100644 (file)
                compatible = "st,24c128", "atmel,24c128";
                reg = <0x50>;
                pagesize = <16>;
-               #address-cells = <1>;
-               #size-cells = <1>;
 
-               eth0_macaddress: macaddress@3f80 {
-                       reg = <0x3f80 6>;
+               nvmem-layout {
+                       compatible = "fixed-layout";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       eth0_macaddress: macaddress@3f80 {
+                               reg = <0x3f80 6>;
+                       };
                };
        };
 
index 8dee4faa9e07dcade250fd361bae07c5d762ef38..0943e0bf1305ae069c73d196e7388e7cf4ba68de 100644 (file)
        status = "okay";
 };
 
-&pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-};
-
 &vhub {
        status = "okay";
 };
diff --git a/src/arm/aspeed/aspeed-bmc-facebook-catalina.dts b/src/arm/aspeed/aspeed-bmc-facebook-catalina.dts
new file mode 100644 (file)
index 0000000..82835e9
--- /dev/null
@@ -0,0 +1,1110 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Copyright (c) 2021 Facebook Inc.
+/dts-v1/;
+
+#include "aspeed-g6.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/usb/pd.h>
+#include <dt-bindings/leds/leds-pca955x.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/i2c/i2c.h>
+
+/ {
+       model = "Facebook Catalina BMC";
+       compatible = "facebook,catalina-bmc", "aspeed,ast2600";
+
+       aliases {
+               serial0 = &uart1;
+               serial2 = &uart3;
+               serial3 = &uart4;
+               serial4 = &uart5;
+               i2c16 = &i2c1mux0ch0;
+               i2c17 = &i2c1mux0ch1;
+               i2c18 = &i2c1mux0ch2;
+               i2c19 = &i2c1mux0ch3;
+               i2c20 = &i2c1mux0ch4;
+               i2c21 = &i2c1mux0ch5;
+               i2c22 = &i2c1mux0ch6;
+               i2c23 = &i2c1mux0ch7;
+               i2c24 = &i2c0mux0ch0;
+               i2c25 = &i2c0mux0ch1;
+               i2c26 = &i2c0mux0ch2;
+               i2c27 = &i2c0mux0ch3;
+               i2c28 = &i2c0mux1ch0;
+               i2c29 = &i2c0mux1ch1;
+               i2c30 = &i2c0mux1ch2;
+               i2c31 = &i2c0mux1ch3;
+               i2c32 = &i2c0mux2ch0;
+               i2c33 = &i2c0mux2ch1;
+               i2c34 = &i2c0mux2ch2;
+               i2c35 = &i2c0mux2ch3;
+               i2c36 = &i2c0mux3ch0;
+               i2c37 = &i2c0mux3ch1;
+               i2c38 = &i2c0mux3ch2;
+               i2c39 = &i2c0mux3ch3;
+               i2c40 = &i2c0mux4ch0;
+               i2c41 = &i2c0mux4ch1;
+               i2c42 = &i2c0mux4ch2;
+               i2c43 = &i2c0mux4ch3;
+               i2c44 = &i2c0mux5ch0;
+               i2c45 = &i2c0mux5ch1;
+               i2c46 = &i2c0mux5ch2;
+               i2c47 = &i2c0mux5ch3;
+               i2c48 = &i2c30mux0ch0;
+               i2c49 = &i2c30mux0ch1;
+               i2c50 = &i2c30mux0ch2;
+               i2c51 = &i2c30mux0ch3;
+               i2c52 = &i2c30mux0ch4;
+               i2c53 = &i2c30mux0ch5;
+               i2c54 = &i2c30mux0ch6;
+               i2c55 = &i2c30mux0ch7;
+       };
+
+       chosen {
+               stdout-path = "serial4:57600n8";
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
+                             <&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,
+                             <&adc1 2>;
+       };
+
+       spi1_gpio: spi {
+               compatible = "spi-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               sck-gpios = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
+               mosi-gpios = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
+               miso-gpios = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
+               cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
+               num-chipselects = <1>;
+
+               tpm@0 {
+                       compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
+                       spi-max-frequency = <33000000>;
+                       reg = <0>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       label = "bmc_heartbeat_amber";
+                       gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led-1 {
+                       label = "fp_id_amber";
+                       default-state = "off";
+                       gpios = <&gpio0 ASPEED_GPIO(B, 5) GPIO_ACTIVE_HIGH>;
+               };
+
+               led-2 {
+                       label = "bmc_ready_noled";
+                       gpios = <&gpio0 ASPEED_GPIO(B, 3) (GPIO_ACTIVE_HIGH|GPIO_TRANSITORY)>;
+               };
+
+               led-3 {
+                       label = "bmc_ready_cpld_noled";
+                       gpios = <&gpio0 ASPEED_GPIO(P, 5) (GPIO_ACTIVE_HIGH|GPIO_TRANSITORY)>;
+               };
+       };
+
+       p1v8_bmc_aux: regulator-p1v8-bmc-aux {
+               compatible = "regulator-fixed";
+               regulator-name = "p1v8_bmc_aux";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       p2v5_bmc_aux: regulator-p2v5-bmc-aux {
+               compatible = "regulator-fixed";
+               regulator-name = "p2v5_bmc_aux";
+               regulator-min-microvolt = <2500000>;
+               regulator-max-microvolt = <2500000>;
+               regulator-always-on;
+       };
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&uart4 {
+       status = "okay";
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&mac3 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ncsi4_default>;
+       use-ncsi;
+};
+
+&fmc {
+       status = "okay";
+       flash@0 {
+               status = "okay";
+               m25p,fast-read;
+               label = "bmc";
+               spi-max-frequency = <50000000>;
+#include "openbmc-flash-layout-128.dtsi"
+       };
+       flash@1 {
+               status = "okay";
+               m25p,fast-read;
+               label = "alt-bmc";
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&i2c0 {
+       status = "okay";
+
+       i2c-mux@71 {
+               compatible = "nxp,pca9546";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c0mux0ch0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+               i2c0mux0ch1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+               i2c0mux0ch2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+               i2c0mux0ch3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+
+       i2c-mux@72 {
+               compatible = "nxp,pca9546";
+               reg = <0x72>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c0mux1ch0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+               i2c0mux1ch1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       // IO Mezz 0 IOEXP
+                       io_expander7: gpio@20 {
+                               compatible = "nxp,pca9535";
+                               reg = <0x20>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                       };
+
+                       // IO Mezz 0 FRU EEPROM
+                       eeprom@50 {
+                               compatible = "atmel,24c64";
+                               reg = <0x50>;
+                       };
+               };
+               i2c0mux1ch2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+                       i2c-mux@70 {
+                               compatible = "nxp,pca9548";
+                               reg = <0x70>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               i2c30mux0ch0: i2c@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0>;
+                               };
+                               i2c30mux0ch1: i2c@1 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <1>;
+                               };
+                               i2c30mux0ch2: i2c@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <2>;
+                               };
+                               i2c30mux0ch3: i2c@3 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <3>;
+                               };
+                               i2c30mux0ch4: i2c@4 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <4>;
+                               };
+                               i2c30mux0ch5: i2c@5 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <5>;
+                               };
+                               i2c30mux0ch6: i2c@6 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <6>;
+                                       // HDD FRU EEPROM
+                                       eeprom@52 {
+                                               compatible = "atmel,24c64";
+                                               reg = <0x52>;
+                                       };
+                               };
+                               i2c30mux0ch7: i2c@7 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <7>;
+
+                                       power-sensor@40 {
+                                               compatible = "ti,ina230";
+                                               reg = <0x40>;
+                                               shunt-resistor = <2000>;
+                                       };
+                                       power-sensor@41 {
+                                               compatible = "ti,ina230";
+                                               reg = <0x41>;
+                                               shunt-resistor = <2000>;
+                                       };
+                                       power-sensor@44 {
+                                               compatible = "ti,ina230";
+                                               reg = <0x44>;
+                                               shunt-resistor = <2000>;
+                                       };
+                                       power-sensor@45 {
+                                               compatible = "ti,ina230";
+                                               reg = <0x45>;
+                                               shunt-resistor = <2000>;
+                                       };
+                               };
+                       };
+               };
+               i2c0mux1ch3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+
+       i2c-mux@73 {
+               compatible = "nxp,pca9546";
+               reg = <0x73>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c0mux2ch0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+               i2c0mux2ch1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+               i2c0mux2ch2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+               i2c0mux2ch3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+
+       i2c-mux@75 {
+               compatible = "nxp,pca9546";
+               reg = <0x75>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c0mux3ch0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+               i2c0mux3ch1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+               i2c0mux3ch2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+               i2c0mux3ch3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+
+       i2c-mux@76 {
+               compatible = "nxp,pca9546";
+               reg = <0x76>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c0mux4ch0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+               i2c0mux4ch1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       // IO Mezz 1 IOEXP
+                       io_expander8: gpio@21 {
+                               compatible = "nxp,pca9535";
+                               reg = <0x21>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                       };
+
+                       // IO Mezz 1 FRU EEPROM
+                       eeprom@50 {
+                               compatible = "atmel,24c64";
+                               reg = <0x50>;
+                       };
+               };
+               i2c0mux4ch2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+               i2c0mux4ch3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+
+       i2c-mux@77 {
+               compatible = "nxp,pca9546";
+               reg = <0x77>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c0mux5ch0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+               i2c0mux5ch1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+               i2c0mux5ch2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+               i2c0mux5ch3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+};
+
+&i2c1 {
+       status = "okay";
+       i2c-mux@70 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x70>;
+               i2c-mux-idle-disconnect;
+
+               i2c1mux0ch0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x0>;
+
+                       power-sensor@41 {
+                               compatible = "ti,ina238";
+                               reg = <0x41>;
+                               shunt-resistor = <500>;
+                       };
+                       power-sensor@42 {
+                               compatible = "ti,ina238";
+                               reg = <0x42>;
+                               shunt-resistor = <500>;
+                       };
+                       power-sensor@44 {
+                               compatible = "ti,ina238";
+                               reg = <0x44>;
+                               shunt-resistor = <500>;
+                       };
+               };
+               i2c1mux0ch1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x1>;
+
+                       power-sensor@41 {
+                               compatible = "ti,ina238";
+                               reg = <0x41>;
+                       };
+                       power-sensor@43 {
+                               compatible = "ti,ina238";
+                               reg = <0x43>;
+                       };
+               };
+               i2c1mux0ch2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x2>;
+               };
+               i2c1mux0ch3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x3>;
+               };
+               i2c1mux0ch4: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x4>;
+
+                       power-monitor@42 {
+                               compatible = "lltc,ltc4287";
+                               reg = <0x42>;
+                               shunt-resistor-micro-ohms = <200>;
+                       };
+                       power-monitor@43 {
+                               compatible = "lltc,ltc4287";
+                               reg = <0x43>;
+                               shunt-resistor-micro-ohms = <200>;
+                       };
+               };
+               i2c1mux0ch5: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x5>;
+
+                       // PDB FRU EEPROM
+                       eeprom@54 {
+                               compatible = "atmel,24c64";
+                               reg = <0x54>;
+                       };
+
+                       // PDB TEMP SENSOR
+                       temperature-sensor@4f {
+                               compatible = "ti,tmp75";
+                               reg = <0x4f>;
+                       };
+               };
+               i2c1mux0ch6: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x6>;
+
+                       // PDB IOEXP
+                       io_expander5: gpio@27 {
+                               compatible = "nxp,pca9554";
+                               reg = <0x27>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                       };
+
+                       // OSFP IOEXP
+                       io_expander6: gpio@25 {
+                               compatible = "nxp,pca9555";
+                               reg = <0x25>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                       };
+
+                       // OSFP FRU EEPROM
+                       eeprom@51 {
+                               compatible = "atmel,24c64";
+                               reg = <0x51>;
+                       };
+               };
+               i2c1mux0ch7: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x7>;
+
+                       // FIO FRU EEPROM
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+
+                       // FIO TEMP SENSOR
+                       temperature-sensor@4b {
+                               compatible = "ti,tmp75";
+                               reg = <0x4b>;
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       // Module 0 IOEXP
+       io_expander0: gpio@20 {
+               compatible = "nxp,pca9555";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <ASPEED_GPIO(B, 4) IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       // Module 1 IOEXP
+       io_expander1: gpio@21 {
+               compatible = "nxp,pca9555";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <ASPEED_GPIO(B, 4) IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       // HMC IOEXP
+       io_expander2: gpio@27 {
+               compatible = "nxp,pca9555";
+               reg = <0x27>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <ASPEED_GPIO(B, 4) IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       // Module 0 EEPROM
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+
+       // Module 1 EEPROM
+       eeprom@51 {
+               compatible = "atmel,24c64";
+               reg = <0x51>;
+       };
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+};
+
+&i2c5 {
+       status = "okay";
+};
+
+&i2c6 {
+       status = "okay";
+
+       // BMC IOEXP on Module 0
+       io_expander3: gpio@21 {
+               compatible = "nxp,pca9555";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       rtc@6f {
+               compatible = "nuvoton,nct3018y";
+               reg = <0x6f>;
+       };
+};
+
+&i2c7 {
+       status = "okay";
+};
+
+&i2c8 {
+       status = "okay";
+};
+
+&i2c9 {
+       status = "okay";
+
+       // SCM CPLD IOEXP
+       io_expander4: gpio@4f {
+               compatible = "nxp,pca9555";
+               reg = <0x4f>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       // SCM TEMP SENSOR
+       temperature-sensor@4b {
+               compatible = "ti,tmp75";
+               reg = <0x4b>;
+       };
+
+       // SCM FRU EEPROM
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+
+       // BSM FRU EEPROM
+       eeprom@56 {
+               compatible = "atmel,24c64";
+               reg = <0x56>;
+       };
+};
+
+&i2c10 {
+       status = "okay";
+
+       // OCP NIC0 TEMP
+       temperature-sensor@1f {
+               compatible = "ti,tmp421";
+               reg = <0x1f>;
+       };
+
+       // OCP NIC0 FRU EEPROM
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+};
+
+&i2c11 {
+       status = "okay";
+
+       ssif-bmc@10 {
+               compatible = "ssif-bmc";
+               reg = <0x10>;
+       };
+};
+
+&i2c12 {
+       status = "okay";
+
+       // Module 1 FRU EEPROM
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+};
+
+&i2c13 {
+       status = "okay";
+
+       // Module 0 FRU EEPROM
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+
+       // Left CBC FRU EEPROM
+       eeprom@54 {
+               compatible = "atmel,24c02";
+               reg = <0x54>;
+       };
+
+       // Right CBC FRU EEPROM
+       eeprom@55 {
+               compatible = "atmel,24c02";
+               reg = <0x55>;
+       };
+
+       // HMC FRU EEPROM
+       eeprom@57 {
+               compatible = "atmel,24c02";
+               reg = <0x57>;
+       };
+};
+
+&i2c14 {
+       status = "okay";
+
+       // PDB CPLD IOEXP 0x10
+       io_expander9: gpio@10 {
+               compatible = "nxp,pca9555";
+               interrupt-parent = <&gpio0>;
+               interrupts = <ASPEED_GPIO(I, 6) IRQ_TYPE_LEVEL_LOW>;
+               reg = <0x10>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       // PDB CPLD IOEXP 0x11
+       io_expander10: gpio@11 {
+               compatible = "nxp,pca9555";
+               interrupt-parent = <&gpio0>;
+               interrupts = <ASPEED_GPIO(I, 6) IRQ_TYPE_LEVEL_LOW>;
+               reg = <0x11>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       // PDB CPLD IOEXP 0x12
+       io_expander11: gpio@12 {
+               compatible = "nxp,pca9555";
+               interrupt-parent = <&gpio0>;
+               interrupts = <ASPEED_GPIO(I, 6) IRQ_TYPE_LEVEL_LOW>;
+               reg = <0x12>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       // PDB CPLD IOEXP 0x13
+       io_expander12: gpio@13 {
+               compatible = "nxp,pca9555";
+               interrupt-parent = <&gpio0>;
+               interrupts = <ASPEED_GPIO(I, 6) IRQ_TYPE_LEVEL_LOW>;
+               reg = <0x13>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       // PDB CPLD IOEXP 0x14
+       io_expander13: gpio@14 {
+               compatible = "nxp,pca9555";
+               interrupt-parent = <&gpio0>;
+               interrupts = <ASPEED_GPIO(I, 6) IRQ_TYPE_LEVEL_LOW>;
+               reg = <0x14>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       // PDB CPLD IOEXP 0x15
+       io_expander14: gpio@15 {
+               compatible = "nxp,pca9555";
+               interrupt-parent = <&gpio0>;
+               interrupts = <ASPEED_GPIO(I, 6) IRQ_TYPE_LEVEL_LOW>;
+               reg = <0x15>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+};
+
+&i2c15 {
+       status = "okay";
+
+       // OCP NIC1 TEMP
+       temperature-sensor@1f {
+               compatible = "ti,tmp421";
+               reg = <0x1f>;
+       };
+
+       // OCP NIC1 FRU EEPROM
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+};
+
+&adc0 {
+       vref-supply = <&p1v8_bmc_aux>;
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
+               &pinctrl_adc2_default &pinctrl_adc3_default
+               &pinctrl_adc4_default &pinctrl_adc5_default
+               &pinctrl_adc6_default &pinctrl_adc7_default>;
+};
+
+&adc1 {
+       vref-supply = <&p2v5_bmc_aux>;
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc10_default>;
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&wdt1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdtrst1_default>;
+       aspeed,reset-type = "soc";
+       aspeed,external-signal;
+       aspeed,ext-push-pull;
+       aspeed,ext-active-high;
+       aspeed,ext-pulse-duration = <256>;
+};
+
+&pinctrl {
+       pinctrl_ncsi3_default: ncsi3_default {
+               function = "RMII3";
+               groups = "NCSI3";
+       };
+
+       pinctrl_ncsi4_default: ncsi4_default {
+               function = "RMII4";
+               groups = "NCSI4";
+       };
+};
+
+&gpio0 {
+       gpio-line-names =
+       /*A0-A7*/       "","","","","","","","",
+       /*B0-B7*/       "BATTERY_DETECT","PRSNT1_HPM_SCM_N",
+                       "BMC_I2C1_FPGA_ALERT_L","BMC_READY",
+                       "IOEXP_INT_L","FM_ID_LED",
+                       "","",
+       /*C0-C7*/       "","","","",
+                       "PMBUS_REQ_N","PSU_FW_UPDATE_REQ_N",
+                       "","BMC_I2C_SSIF_ALERT_L",
+       /*D0-D7*/       "","","","","","","","",
+       /*E0-E7*/       "","","","","","","","",
+       /*F0-F7*/       "","","","","","","","",
+       /*G0-G7*/       "","","","","","",
+                       "FM_DEBUG_PORT_PRSNT_N","FM_BMC_DBP_PRESENT_N",
+       /*H0-H7*/       "PWR_BRAKE_L","RUN_POWER_EN",
+                       "SHDN_FORCE_L","SHDN_REQ_L",
+                       "","","","",
+       /*I0-I7*/       "","","","",
+                       "","FLASH_WP_STATUS",
+                       "FM_PDB_HEALTH_N","RUN_POWER_PG",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","","","","",
+       /*M0-M7*/       "PCIE_EP_RST_EN","BMC_FRU_WP",
+                       "SCM_HPM_STBY_RST_N","SCM_HPM_STBY_EN",
+                       "STBY_POWER_PG_3V3","TH500_SHDN_OK_L","","",
+       /*N0-N7*/       "LED_POSTCODE_0","LED_POSTCODE_1",
+                       "LED_POSTCODE_2","LED_POSTCODE_3",
+                       "LED_POSTCODE_4","LED_POSTCODE_5",
+                       "LED_POSTCODE_6","LED_POSTCODE_7",
+       /*O0-O7*/       "HMC_I2C3_FPGA_ALERT_L","FPGA_READY_HMC",
+                       "CHASSIS_AC_LOSS_L","BSM_PRSNT_R_N",
+                       "PSU_SMB_ALERT_L","FM_TPM_PRSNT_0_N",
+                       "","USBDBG_IPMI_EN_L",
+       /*P0-P7*/       "PWR_BTN_BMC_N","IPEX_CABLE_PRSNT_L",
+                       "ID_RST_BTN_BMC_N","RST_BMC_RSTBTN_OUT_N",
+                       "host0-ready","BMC_READY_CPLD","","BMC_HEARTBEAT_N",
+       /*Q0-Q7*/       "IRQ_PCH_TPM_SPI_N","USB_OC0_REAR_R_N",
+                       "UART_MUX_SEL","I2C_MUX_RESET_L",
+                       "RSVD_NV_PLT_DETECT","SPI_TPM_INT_L",
+                       "CPU_JTAG_MUX_SELECT","THERM_BB_OVERT_L",
+       /*R0-R7*/       "THERM_BB_WARN_L","SPI_BMC_FPGA_INT_L",
+                       "CPU_BOOT_DONE","PMBUS_GNT_L",
+                       "CHASSIS_PWR_BRK_L","PCIE_WAKE_L",
+                       "PDB_THERM_OVERT_L","HMC_I2C2_FPGA_ALERT_L",
+       /*S0-S7*/       "","","SYS_BMC_PWRBTN_R_N","FM_TPM_PRSNT_1_N",
+                       "FM_BMC_DEBUG_SW_N","UID_LED_N",
+                       "SYS_FAULT_LED_N","RUN_POWER_FAULT_L",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","","",
+       /*V0-V7*/       "L2_RST_REQ_OUT_L","L0L1_RST_REQ_OUT_L",
+                       "BMC_ID_BEEP_SEL","BMC_I2C0_FPGA_ALERT_L",
+                       "SMB_BMC_TMP_ALERT","PWR_LED_N",
+                       "SYS_RST_OUT_L","IRQ_TPM_SPI_N",
+       /*W0-W7*/       "","","","","","","","",
+       /*X0-X7*/       "","","","","","","","",
+       /*Y0-Y7*/       "","RST_BMC_SELF_HW",
+                       "FM_FLASH_LATCH_N","BMC_EMMC_RST_N",
+                       "","","","",
+       /*Z0-Z7*/       "","","","","","","","";
+};
+
+&io_expander0 {
+       gpio-line-names =
+               "FPGA_THERM_OVERT_L","FPGA_READY_BMC",
+               "HMC_BMC_DETECT","HMC_PGOOD",
+               "","BMC_SELF_PWR_CYCLE",
+               "FPGA_EROT_FATAL_ERROR_L","WP_HW_EXT_CTRL_L",
+               "EROT_FPGA_RST_L","FPGA_EROT_RECOVERY_L",
+               "BMC_EROT_FPGA_SPI_MUX_SEL","USB2_HUB_RESET_L",
+               "NCSI_CS1_SEL","SGPIO_EN_L",
+               "B2B_IOEXP_INT_L","I2C_BUS_MUX_RESET_L";
+};
+
+&io_expander1 {
+       gpio-line-names =
+               "SEC_FPGA_THERM_OVERT_L","SEC_FPGA_READY_BMC",
+               "","",
+               "","",
+               "SEC_FPGA_EROT_FATAL_ERROR_L","SEC_WP_HW_EXT_CTRL_L",
+               "SEC_EROT_FPGA_RST_L","SEC_FPGA_EROT_RECOVERY_L",
+               "SEC_BMC_EROT_FPGA_SPI_MUX_SEL","",
+               "","",
+               "","SEC_I2C_BUS_MUX_RESET_L";
+};
+
+&io_expander2 {
+       gpio-line-names =
+               "HMC_PRSNT_L","HMC_READY",
+               "HMC_EROT_FATAL_ERROR_L","I2C_MUX_SEL",
+               "HMC_EROT_SPI_MUX_SEL","HMC_EROT_RECOVERY_L",
+               "HMC_EROT_RST_L","GLOBAL_WP_HMC",
+               "FPGA_RST_L","USB2_HUB_RST",
+               "CPU_UART_MUX_SEL","",
+               "","","","";
+};
+
+&io_expander3 {
+       gpio-line-names =
+               "RTC_MUX_SEL","PCI_MUX_SEL","TPM_MUX_SEL","FAN_MUX-SEL",
+               "SGMII_MUX_SEL","DP_MUX_SEL","UPHY3_USB_SEL","NCSI_MUX_SEL",
+               "BMC_PHY_RST","RTC_CLR_L","BMC_12V_CTRL","PS_RUN_IO0_PG",
+               "","","","";
+};
+
+&io_expander4 {
+       gpio-line-names =
+               "stby_power_en_cpld","stby_power_gd_cpld","","",
+               "","","","",
+               "","","","",
+               "","","","";
+};
+
+&io_expander5 {
+       gpio-line-names =
+               "JTAG_MUX_SEL","IOX_BMC_RESET","","",
+               "","","","";
+};
+
+&io_expander6 {
+       gpio-line-names =
+               "OSFP_PHASE_ID0","OSFP_PHASE_ID1",
+               "OSFP_PHASE_ID2","OSFP_PHASE_ID3",
+               "","","","",
+               "OSFP_BOARD_ID0","OSFP_BOARD_ID1",
+               "OSFP_BOARD_ID2","PWRGD_P3V3_N1",
+               "PWRGD_P3V3_N2","","","";
+};
+
+&io_expander7 {
+       gpio-line-names =
+               "RST_CX7_0","RST_CX7_1",
+               "CX0_SSD0_PRSNT_L","CX1_SSD1_PRSNT_L",
+               "CX_BOOT_CMPLT_CX0","CX_BOOT_CMPLT_CX1",
+               "CX_TWARN_CX0_L","CX_TWARN_CX1_L",
+               "CX_OVT_SHDN_CX0","CX_OVT_SHDN_CX1",
+               "FNP_L_CX0","FNP_L_CX1",
+               "","MCU_GPIO","MCU_RST_N","MCU_RECOVERY_N";
+};
+
+&io_expander8 {
+       gpio-line-names =
+               "SEC_RST_CX7_0","SEC_RST_CX7_1",
+               "SEC_CX0_SSD0_PRSNT_L","SEC_CX1_SSD1_PRSNT_L",
+               "SEC_CX_BOOT_CMPLT_CX0","SEC_CX_BOOT_CMPLT_CX1",
+               "SEC_CX_TWARN_CX0_L","SEC_CX_TWARN_CX1_L",
+               "SEC_CX_OVT_SHDN_CX0","SEC_CX_OVT_SHDN_CX1",
+               "SEC_FNP_L_CX0","SEC_FNP_L_CX1",
+               "","SEC_MCU_GPIO","SEC_MCU_RST_N","SEC_MCU_RECOVERY_N";
+};
+
+&io_expander9 {
+       gpio-line-names =
+               "LEAK3_DETECT_R","LEAK1_DETECT_R",
+               "LEAK2_DETECT_R","LEAK0_DETECT_R",
+               "CHASSIS3_LEAK_Q_N_PLD","CHASSIS1_LEAK_Q_N_PLD",
+               "CHASSIS2_LEAK_Q_N_PLD","CHASSIS0_LEAK_Q_N_PLD",
+               "P12V_AUX_FAN_ALERT_PLD_N","P12V_AUX_FAN_OC_PLD_N",
+               "P12V_AUX_FAN_FAULT_PLD_N","LEAK_DETECT_RMC_N_R",
+               "RSVD_RMC_GPIO3_R","SMB_RJ45_FIO_TMP_ALERT",
+               "","";
+};
+
+&io_expander10 {
+       gpio-line-names =
+               "FM_P12V_NIC1_FLTB_R_N","FM_P3V3_NIC1_FAULT_R_N",
+               "OCP_V3_2_PWRBRK_FROM_HOST_ISO_PLD_N",
+               "P12V_AUX_NIC1_SENSE_ALERT_R_N",
+               "FM_P12V_NIC0_FLTB_R_N","FM_P3V3_NIC0_FAULT_R_N",
+               "OCP_SFF_PWRBRK_FROM_HOST_ISO_PLD_N",
+               "P12V_AUX_NIC0_SENSE_ALERT_R_N",
+               "P12V_AUX_PSU_SMB_ALERT_R_L","P12V_SCM_SENSE_ALERT_R_N",
+               "NODEB_PSU_SMB_ALERT_R_L","NODEA_PSU_SMB_ALERT_R_L",
+               "P52V_SENSE_ALERT_PLD_N","P48V_HS2_FAULT_N_PLD",
+               "P48V_HS1_FAULT_N_PLD","";
+};
+
+&io_expander11 {
+       gpio-line-names =
+               "FAN_7_PRESENT_N","FAN_6_PRESENT_N",
+               "FAN_5_PRESENT_N","FAN_4_PRESENT_N",
+               "FAN_3_PRESENT_N","FAN_2_PRESENT_N",
+               "FAN_1_PRESENT_N","FAN_0_PRESENT_N",
+               "PRSNT_CHASSIS3_LEAK_CABLE_R_N","PRSNT_CHASSIS1_LEAK_CABLE_R_N",
+               "PRSNT_CHASSIS2_LEAK_CABLE_R_N","PRSNT_CHASSIS0_LEAK_CABLE_R_N",
+               "PRSNT_RJ45_FIO_N_R","PRSNT_HDDBD_POWER_CABLE_N",
+               "PRSNT_OSFP_POWER_CABLE_N","";
+};
+
+&io_expander12 {
+       gpio-line-names =
+               "RST_OCP_V3_1_R_N","NIC0_PERST_N",
+               "OCP_SFF_PERST_FROM_HOST_ISO_PLD_N","OCP_SFF_MAIN_PWR_EN",
+               "FM_OCP_SFF_PWR_GOOD_PLD","OCP_SFF_AUX_PWR_PLD_EN_R",
+               "HP_LVC3_OCP_V3_1_PWRGD_PLD","HP_OCP_V3_1_HSC_PWRGD_PLD_R",
+               "RST_OCP_V3_2_R_N","NIC1_PERST_N",
+               "OCP_V3_2_PERST_FROM_HOST_ISO_PLD_N","OCP_V3_2_MAIN_PWR_EN",
+               "FM_OCP_V3_2_PWR_GOOD_PLD","OCP_V3_2_AUX_PWR_PLD_EN_R",
+               "HP_LVC3_OCP_V3_2_PWRGD_PLD","HP_OCP_V3_2_HSC_PWRGD_PLD_R";
+};
+
+&io_expander13 {
+       gpio-line-names =
+               "NODEA_NODEB_PWOK_PLD_ISO_R","PWR_EN_NICS",
+               "PWRGD_P12V_AUX_FAN_PLD","P12V_AUX_FAN_EN_PLD",
+               "PWRGD_P3V3_AUX_PLD","PWRGD_P12V_AUX_PLD_ISO_R",
+               "FM_MAIN_PWREN_FROM_RMC_R","FM_MAIN_PWREN_RMC_EN_ISO_R",
+               "PWRGD_RMC_R","PWRGD_P12V_AUX_FAN_PLD",
+               "P12V_AUX_FAN_EN_PLD","FM_SYS_THROTTLE_N",
+               "HP_LVC3_OCP_V3_2_PRSNT2_PLD_N","HP_LVC3_OCP_V3_1_PRSNT2_PLD_N",
+               "","";
+};
+
+&io_expander14 {
+       gpio-line-names =
+               "","","","","","","","",
+               "FM_BOARD_BMC_SKU_ID3","FM_BOARD_BMC_SKU_ID2",
+               "FM_BOARD_BMC_SKU_ID1","FM_BOARD_BMC_SKU_ID0",
+               "FAB_BMC_REV_ID2","FAB_BMC_REV_ID1",
+               "FAB_BMC_REV_ID0","";
+};
index 998598c15fd084ab569948ba274c1a9518255fe6..49914a4a179fa2e03df25e38338576bf547543bf 100644 (file)
 &i2c12 {
        status = "okay";
        temperature-sensor@4f {
-               compatible = "lm75";
+               compatible = "national,lm75";
                reg = <0x4f>;
        };
 };
index c118d473a76fb4d5f28c0ca2f039748cb1c1d7c0..cf3f807a38fe264fb90f8bcc6fc3b5846f2fb53e 100644 (file)
                i2c21 = &imux21;
                i2c22 = &imux22;
                i2c23 = &imux23;
-               i2c24 = &imux24;
-               i2c25 = &imux25;
-               i2c26 = &imux26;
-               i2c27 = &imux27;
                i2c28 = &imux28;
                i2c29 = &imux29;
                i2c30 = &imux30;
                };
        };
 
-       spi_gpio: spi-gpio {
+       spi_gpio: spi {
                status = "okay";
                compatible = "spi-gpio";
                #address-cells = <1>;
                #size-cells = <0>;
 
-               gpio-sck = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
-               gpio-mosi = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
-               gpio-miso = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
+               sck-gpios = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
+               mosi-gpios = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
+               miso-gpios = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
                num-chipselects = <1>;
                cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
 
-               tpmdev@0 {
+               tpm@0 {
                        compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
                        spi-max-frequency = <33000000>;
                        reg = <0>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_rmii4_default>;
        use-ncsi;
-       mellanox,multi-host;
 };
 
 &rtc {
                #address-cells = <1>;
                #size-cells = <0>;
        };
+
+       power-sensor@40 {
+               compatible = "ti,ina238";
+               reg = <0x40>;
+               shunt-resistor = <1000>;
+       };
+
+       power-sensor@41 {
+               compatible = "ti,ina238";
+               reg = <0x41>;
+               shunt-resistor = <1000>;
+       };
+
+       power-sensor@44 {
+               compatible = "ti,ina238";
+               reg = <0x44>;
+               shunt-resistor = <1000>;
+       };
+
+       power-sensor@45 {
+               compatible = "ti,ina238";
+               reg = <0x45>;
+               shunt-resistor = <1000>;
+       };
+
+       temperature-sensor@4b {
+               compatible = "ti,tmp75";
+               reg = <0x4b>;
+       };
 };
 
 &i2c1 {
                #address-cells = <1>;
                #size-cells = <0>;
        };
+
+       power-sensor@40 {
+               compatible = "ti,ina238";
+               reg = <0x40>;
+               shunt-resistor = <1000>;
+       };
+
+       power-sensor@41 {
+               compatible = "ti,ina238";
+               reg = <0x41>;
+               shunt-resistor = <1000>;
+       };
+
+       power-sensor@44 {
+               compatible = "ti,ina238";
+               reg = <0x44>;
+               shunt-resistor = <1000>;
+       };
+
+       power-sensor@45 {
+               compatible = "ti,ina238";
+               reg = <0x45>;
+               shunt-resistor = <1000>;
+       };
+
+       temperature-sensor@4b {
+               compatible = "ti,tmp75";
+               reg = <0x4b>;
+       };
 };
 
 &i2c3 {
                reg = <0x49>;
        };
 
-       power-monitor@22 {
-               compatible = "lltc,ltc4286";
-               reg = <0x22>;
-               adi,vrange-low-enable;
-               shunt-resistor-micro-ohms = <500>;
+       power-monitor@44 {
+               compatible = "lltc,ltc4287";
+               reg = <0x44>;
+               shunt-resistor-micro-ohms = <250>;
+       };
+
+       power-monitor@40 {
+               compatible = "infineon,xdp710";
+               reg = <0x40>;
        };
 };
 
 &i2c9 {
        status = "okay";
 
+       mctp-controller;
+       multi-master;
+
+       mctp@10 {
+               compatible = "mctp-i2c-controller";
+               reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
+       };
+
        gpio@30 {
                compatible = "nxp,pca9555";
                reg = <0x30>;
                "","","","";
        };
 
-       i2c-mux@71 {
-               compatible = "nxp,pca9546";
-               reg = <0x71>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               imux24: i2c@0 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <0>;
-               };
-               imux25: i2c@1 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <1>;
-               };
-               imux26: i2c@2 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <2>;
-               };
-               imux27: i2c@3 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <3>;
-               };
-       };
        // PTTV FRU
        eeprom@52 {
                compatible = "atmel,24c64";
 
 &i2c11 {
        status = "okay";
+
+       gpio@30 {
+               compatible = "nxp,pca9555";
+               reg = <0x30>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+       gpio@31 {
+               compatible = "nxp,pca9555";
+               reg = <0x31>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "","","","",
+               "","","presence-cmm","",
+               "","","","",
+               "","","","";
+       };
+
+       // Aegis FRU
+       eeprom@52 {
+               compatible = "atmel,24c64";
+               reg = <0x52>;
+       };
 };
 
 &i2c12 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0>;
+                       power-monitor@61 {
+                               compatible = "isil,isl69260";
+                               reg = <0x61>;
+                       };
+                       power-monitor@62 {
+                               compatible = "isil,isl69260";
+                               reg = <0x62>;
+                       };
+                       power-monitor@63 {
+                               compatible = "isil,isl69260";
+                               reg = <0x63>;
+                       };
+                       power-monitor@64 {
+                               compatible = "infineon,xdpe152c4";
+                               reg = <0x64>;
+                       };
+                       power-monitor@66 {
+                               compatible = "infineon,xdpe152c4";
+                               reg = <0x66>;
+                       };
+                       power-monitor@68 {
+                               compatible = "infineon,xdpe152c4";
+                               reg = <0x68>;
+                       };
                };
                imux29: i2c@1 {
                        #address-cells = <1>;
        /*O0-O7*/       "","","","","","","","",
        /*P0-P7*/       "power-button","power-host-control",
                        "reset-button","","led-power","","","",
-       /*Q0-Q7*/       "","","","","","","","",
+       /*Q0-Q7*/       "","","","","","power-chassis-control","","",
        /*R0-R7*/       "","","","","","","","",
        /*S0-S7*/       "","","","","","","","",
        /*T0-T7*/       "","","","","","","","",
        /*U0-U7*/       "","","","","","","led-identify-gate","",
        /*V0-V7*/       "","","","",
-                       "rtc-battery-voltage-read-enable","","","",
+                       "rtc-battery-voltage-read-enable","",
+                       "power-chassis-good","",
        /*W0-W7*/       "","","","","","","","",
        /*X0-X7*/       "","","","","","","","",
        /*Y0-Y7*/       "","","","","","","","",
 
 &sgpiom0 {
        status = "okay";
-       max-ngpios = <128>;
        ngpios = <128>;
        bus-frequency = <2000000>;
        gpio-line-names =
index 942e53d5c7140964d63b914328bdcc1aac972b23..41e2246cfbd1caf5c5eabbf6ca2ac683f12e9676 100644 (file)
@@ -11,7 +11,8 @@
        compatible = "facebook,minerva-cmc", "aspeed,ast2600";
 
        aliases {
-               serial5 = &uart5;
+               serial4 = &uart5;
+               serial5 = &uart6;
                /*
                 * PCA9548 (2-0077) provides 8 channels connecting to
                 * 6 pcs of FCB (Fan Controller Board).
@@ -22,6 +23,8 @@
                i2c19 = &imux19;
                i2c20 = &imux20;
                i2c21 = &imux21;
+
+               spi1 = &spi_gpio;
        };
 
        chosen {
        leds {
                compatible = "gpio-leds";
 
-               led-fan-fault {
-                       label = "led-fan-fault";
+               led-0 {
+                       label = "bmc_heartbeat_amber";
+                       gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led-1 {
+                       label = "fp_id_amber";
+                       default-state = "off";
+                       gpios = <&gpio0 ASPEED_GPIO(B, 5) GPIO_ACTIVE_HIGH>;
+               };
+
+               led-2 {
+                       label = "power_blue";
+                       default-state = "off";
+                       gpios = <&gpio0 ASPEED_GPIO(P, 4) GPIO_ACTIVE_HIGH>;
+               };
+
+               led-3 {
+                       label = "fan_status_led";
                        gpios = <&leds_gpio 9 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
+
+               led-4 {
+                       label = "fan_fault_led_n";
+                       gpios = <&leds_gpio 10 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+       };
+
+       spi_gpio: spi {
+               status = "okay";
+               compatible = "spi-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               sck-gpios = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
+               mosi-gpios = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
+               miso-gpios = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
+               num-chipselects = <1>;
+               cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
+
+               tpm@0 {
+                       compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
+                       spi-max-frequency = <33000000>;
+                       reg = <0>;
+               };
        };
 };
 
        };
 };
 
+&mdio3 {
+       status = "okay";
+};
+
 &fmc {
        status = "okay";
        flash@0 {
        };
 };
 
-&rtc {
-       status = "okay";
-};
-
 &sgpiom0 {
        status = "okay";
        ngpios = <128>;
                shunt-resistor = <1000>;
        };
 
-       power-monitor@67 {
-               compatible = "adi,ltc2945";
-               reg = <0x67>;
+       power-monitor@44 {
+               compatible = "lltc,ltc4287";
+               reg = <0x44>;
+               shunt-resistor-micro-ohms = <2000>;
        };
 
-       power-monitor@68 {
-               compatible = "adi,ltc2945";
-               reg = <0x68>;
+       power-monitor@43 {
+               compatible = "infineon,xdp710";
+               reg = <0x43>;
        };
 
        leds_gpio: gpio@19 {
                reg = <0x4b>;
        };
 
-       temperature-sensor@48 {
+       temperature-sensor@4f {
                compatible = "ti,tmp75";
-               reg = <0x48>;
+               reg = <0x4f>;
        };
 
        eeprom@54 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                        };
+
+                       power-sensor@40 {
+                               compatible = "ti,ina238";
+                               reg = <0x40>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@41 {
+                               compatible = "ti,ina238";
+                               reg = <0x41>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@44 {
+                               compatible = "ti,ina238";
+                               reg = <0x44>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@45 {
+                               compatible = "ti,ina238";
+                               reg = <0x45>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       temperature-sensor@4b {
+                               compatible = "ti,tmp75";
+                               reg = <0x4b>;
+                       };
                };
 
                imux17: i2c@1 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                        };
+
+                       power-sensor@40 {
+                               compatible = "ti,ina238";
+                               reg = <0x40>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@41 {
+                               compatible = "ti,ina238";
+                               reg = <0x41>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@44 {
+                               compatible = "ti,ina238";
+                               reg = <0x44>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@45 {
+                               compatible = "ti,ina238";
+                               reg = <0x45>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       temperature-sensor@4b {
+                               compatible = "ti,tmp75";
+                               reg = <0x4b>;
+                       };
                };
 
                imux18: i2c@2 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                        };
+
+                       power-sensor@40 {
+                               compatible = "ti,ina238";
+                               reg = <0x40>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@41 {
+                               compatible = "ti,ina238";
+                               reg = <0x41>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@44 {
+                               compatible = "ti,ina238";
+                               reg = <0x44>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@45 {
+                               compatible = "ti,ina238";
+                               reg = <0x45>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       temperature-sensor@4b {
+                               compatible = "ti,tmp75";
+                               reg = <0x4b>;
+                       };
                };
 
                imux19: i2c@3 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                        };
+
+                       power-sensor@40 {
+                               compatible = "ti,ina238";
+                               reg = <0x40>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@41 {
+                               compatible = "ti,ina238";
+                               reg = <0x41>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@44 {
+                               compatible = "ti,ina238";
+                               reg = <0x44>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@45 {
+                               compatible = "ti,ina238";
+                               reg = <0x45>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       temperature-sensor@4b {
+                               compatible = "ti,tmp75";
+                               reg = <0x4b>;
+                       };
                };
 
-               imux20: i2c@4 {
+               imux20: i2c@5 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <4>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                        };
+
+                       power-sensor@40 {
+                               compatible = "ti,ina238";
+                               reg = <0x40>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@41 {
+                               compatible = "ti,ina238";
+                               reg = <0x41>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@44 {
+                               compatible = "ti,ina238";
+                               reg = <0x44>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@45 {
+                               compatible = "ti,ina238";
+                               reg = <0x45>;
+                               shunt-resistor = <1000>;
+                       };
+                       temperature-sensor@4b {
+                               compatible = "ti,tmp75";
+                               reg = <0x4b>;
+                       };
                };
 
-               imux21: i2c@5 {
+               imux21: i2c@4 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <5>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                        };
+
+                       power-sensor@40 {
+                               compatible = "ti,ina238";
+                               reg = <0x40>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@41 {
+                               compatible = "ti,ina238";
+                               reg = <0x41>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@44 {
+                               compatible = "ti,ina238";
+                               reg = <0x44>;
+                               shunt-resistor = <1000>;
+                       };
+
+                       power-sensor@45 {
+                               compatible = "ti,ina238";
+                               reg = <0x45>;
+                               shunt-resistor = <1000>;
+                       };
+                       temperature-sensor@4b {
+                               compatible = "ti,tmp75";
+                               reg = <0x4b>;
+                       };
                };
        };
 };
 
 &i2c9 {
        status = "okay";
-};
 
-&i2c10 {
-       status = "okay";
-};
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
 
-&i2c11 {
-       status = "okay";
+       rtc@51 {
+               compatible = "nxp,pcf8563";
+               reg = <0x51>;
+       };
 };
 
 &i2c12 {
                compatible = "atmel,24c128";
                reg = <0x50>;
        };
+
+       eeprom@56 {
+               compatible = "atmel,24c64";
+               reg = <0x56>;
+       };
 };
 
 &adc0 {
        pinctrl-0 = <&pinctrl_adc10_default>;
 };
 
+&ehci0 {
+       status = "okay";
+};
+
 &ehci1 {
        status = "okay";
 };
        /*N0-N7*/       "","","","","","","","",
        /*O0-O7*/       "","","","","","","","",
        /*P0-P7*/       "","","","","","","","",
-       /*Q0-Q7*/       "","","","","","","","",
+       /*Q0-Q7*/       "","","","","","power-chassis-control","","",
        /*R0-R7*/       "","","","","","","","",
-       /*S0-S7*/       "","","","","","","","",
+       /*S0-S7*/       "","","","","","","","host0-ready",
        /*T0-T7*/       "","","","","","","","",
        /*U0-U7*/       "","","","","","","","",
-       /*V0-V7*/       "","","","","BAT_DETECT","","","",
+       /*V0-V7*/       "","","","","BAT_DETECT","","power-chassis-good","",
        /*W0-W7*/       "","","","","","","","",
        /*X0-X7*/       "","","BLADE_UART_SEL3","","","","","",
        /*Y0-Y7*/       "","","","","","","","",
        gpio-line-names =
        /*"input pin","output pin"*/
        /*A0 - A7*/
-       "PRSNT_MTIA_BLADE0_N","PWREN_MTIA_BLADE0_EN",
-       "PRSNT_MTIA_BLADE1_N","PWREN_MTIA_BLADE1_EN",
-       "PRSNT_MTIA_BLADE2_N","PWREN_MTIA_BLADE2_EN",
-       "PRSNT_MTIA_BLADE3_N","PWREN_MTIA_BLADE3_EN",
-       "PRSNT_MTIA_BLADE4_N","PWREN_MTIA_BLADE4_EN",
-       "PRSNT_MTIA_BLADE5_N","PWREN_MTIA_BLADE5_EN",
-       "PRSNT_MTIA_BLADE6_N","PWREN_MTIA_BLADE6_EN",
-       "PRSNT_MTIA_BLADE7_N","PWREN_MTIA_BLADE7_EN",
+       "PRSNT_MTIA_BLADE0_N","PWREN_MTIA_BLADE0_EN_N",
+       "PRSNT_MTIA_BLADE1_N","PWREN_MTIA_BLADE1_EN_N",
+       "PRSNT_MTIA_BLADE2_N","PWREN_MTIA_BLADE2_EN_N",
+       "PRSNT_MTIA_BLADE3_N","PWREN_MTIA_BLADE3_EN_N",
+       "PRSNT_MTIA_BLADE4_N","PWREN_MTIA_BLADE4_EN_N",
+       "PRSNT_MTIA_BLADE5_N","PWREN_MTIA_BLADE5_EN_N",
+       "PRSNT_MTIA_BLADE6_N","PWREN_MTIA_BLADE6_EN_N",
+       "PRSNT_MTIA_BLADE7_N","PWREN_MTIA_BLADE7_EN_N",
        /*B0 - B7*/
-       "PRSNT_MTIA_BLADE8_N","PWREN_MTIA_BLADE8_EN",
-       "PRSNT_MTIA_BLADE9_N","PWREN_MTIA_BLADE9_EN",
-       "PRSNT_MTIA_BLADE10_N","PWREN_MTIA_BLADE10_EN",
-       "PRSNT_MTIA_BLADE11_N","PWREN_MTIA_BLADE11_EN",
-       "PRSNT_MTIA_BLADE12_N","PWREN_MTIA_BLADE12_EN",
-       "PRSNT_MTIA_BLADE13_N","PWREN_MTIA_BLADE13_EN",
-       "PRSNT_MTIA_BLADE14_N","PWREN_MTIA_BLADE14_EN",
-       "PRSNT_MTIA_BLADE15_N","PWREN_MTIA_BLADE15_EN",
+       "PRSNT_MTIA_BLADE8_N","PWREN_MTIA_BLADE8_EN_N",
+       "PRSNT_MTIA_BLADE9_N","PWREN_MTIA_BLADE9_EN_N",
+       "PRSNT_MTIA_BLADE10_N","PWREN_MTIA_BLADE10_EN_N",
+       "PRSNT_MTIA_BLADE11_N","PWREN_MTIA_BLADE11_EN_N",
+       "PRSNT_MTIA_BLADE12_N","PWREN_MTIA_BLADE12_EN_N",
+       "PRSNT_MTIA_BLADE13_N","PWREN_MTIA_BLADE13_EN_N",
+       "PRSNT_MTIA_BLADE14_N","PWREN_MTIA_BLADE14_EN_N",
+       "PRSNT_MTIA_BLADE15_N","PWREN_MTIA_BLADE15_EN_N",
        /*C0 - C7*/
-       "PRSNT_NW_BLADE0_N","PWREN_NW_BLADE0_EN",
-       "PRSNT_NW_BLADE1_N","PWREN_NW_BLADE1_EN",
-       "PRSNT_NW_BLADE2_N","PWREN_NW_BLADE2_EN",
-       "PRSNT_NW_BLADE3_N","PWREN_NW_BLADE3_EN",
-       "PRSNT_NW_BLADE4_N","PWREN_NW_BLADE4_EN",
-       "PRSNT_NW_BLADE5_N","PWREN_NW_BLADE5_EN",
-       "PRSNT_FCB_TOP_0_N","PWREN_MTIA_BLADE0_HSC_EN",
-       "PRSNT_FCB_TOP_1_N","PWREN_MTIA_BLADE1_HSC_EN",
+       "PRSNT_NW_BLADE0_N","PWREN_NW_BLADE0_EN_N",
+       "PRSNT_NW_BLADE1_N","PWREN_NW_BLADE1_EN_N",
+       "PRSNT_NW_BLADE2_N","PWREN_NW_BLADE2_EN_N",
+       "PRSNT_NW_BLADE3_N","PWREN_NW_BLADE3_EN_N",
+       "PRSNT_NW_BLADE4_N","PWREN_NW_BLADE4_EN_N",
+       "PRSNT_NW_BLADE5_N","PWREN_NW_BLADE5_EN_N",
+       "PRSNT_FCB_TOP_0_N","PWREN_MTIA_BLADE0_HSC_EN_N",
+       "PRSNT_FCB_TOP_1_N","PWREN_MTIA_BLADE1_HSC_EN_N",
        /*D0 - D7*/
-       "PRSNT_FCB_MIDDLE_0_N","PWREN_MTIA_BLADE2_HSC_EN",
-       "PRSNT_FCB_MIDDLE_1_N","PWREN_MTIA_BLADE3_HSC_EN",
-       "PRSNT_FCB_BOTTOM_0_N","PWREN_MTIA_BLADE4_HSC_EN",
-       "PRSNT_FCB_BOTTOM_1_N","PWREN_MTIA_BLADE5_HSC_EN",
-       "PWRGD_MTIA_BLADE0_PWROK_L_BUF","PWREN_MTIA_BLADE6_HSC_EN",
-       "PWRGD_MTIA_BLADE1_PWROK_L_BUF","PWREN_MTIA_BLADE7_HSC_EN",
-       "PWRGD_MTIA_BLADE2_PWROK_L_BUF","PWREN_MTIA_BLADE8_HSC_EN",
-       "PWRGD_MTIA_BLADE3_PWROK_L_BUF","PWREN_MTIA_BLADE9_HSC_EN",
+       "PRSNT_FCB_MIDDLE_0_N","PWREN_MTIA_BLADE2_HSC_EN_N",
+       "PRSNT_FCB_MIDDLE_1_N","PWREN_MTIA_BLADE3_HSC_EN_N",
+       "PRSNT_FCB_BOTTOM_1_N","PWREN_MTIA_BLADE4_HSC_EN_N",
+       "PRSNT_FCB_BOTTOM_0_N","PWREN_MTIA_BLADE5_HSC_EN_N",
+       "PWRGD_MTIA_BLADE0_PWROK_N","PWREN_MTIA_BLADE6_HSC_EN_N",
+       "PWRGD_MTIA_BLADE1_PWROK_N","PWREN_MTIA_BLADE7_HSC_EN_N",
+       "PWRGD_MTIA_BLADE2_PWROK_N","PWREN_MTIA_BLADE8_HSC_EN_N",
+       "PWRGD_MTIA_BLADE3_PWROK_N","PWREN_MTIA_BLADE9_HSC_EN_N",
        /*E0 - E7*/
-       "PWRGD_MTIA_BLADE4_PWROK_L_BUF","PWREN_MTIA_BLADE10_HSC_EN",
-       "PWRGD_MTIA_BLADE5_PWROK_L_BUF","PWREN_MTIA_BLADE11_HSC_EN",
-       "PWRGD_MTIA_BLADE6_PWROK_L_BUF","PWREN_MTIA_BLADE12_HSC_EN",
-       "PWRGD_MTIA_BLADE7_PWROK_L_BUF","PWREN_MTIA_BLADE13_HSC_EN",
-       "PWRGD_MTIA_BLADE8_PWROK_L_BUF","PWREN_MTIA_BLADE14_HSC_EN",
-       "PWRGD_MTIA_BLADE9_PWROK_L_BUF","PWREN_MTIA_BLADE15_HSC_EN",
-       "PWRGD_MTIA_BLADE10_PWROK_L_BUF","PWREN_NW_BLADE0_HSC_EN",
-       "PWRGD_MTIA_BLADE11_PWROK_L_BUF","PWREN_NW_BLADE1_HSC_EN",
+       "PWRGD_MTIA_BLADE4_PWROK_N","PWREN_MTIA_BLADE10_HSC_EN_N",
+       "PWRGD_MTIA_BLADE5_PWROK_N","PWREN_MTIA_BLADE11_HSC_EN_N",
+       "PWRGD_MTIA_BLADE6_PWROK_N","PWREN_MTIA_BLADE12_HSC_EN_N",
+       "PWRGD_MTIA_BLADE7_PWROK_N","PWREN_MTIA_BLADE13_HSC_EN_N",
+       "PWRGD_MTIA_BLADE8_PWROK_N","PWREN_MTIA_BLADE14_HSC_EN_N",
+       "PWRGD_MTIA_BLADE9_PWROK_N","PWREN_MTIA_BLADE15_HSC_EN_N",
+       "PWRGD_MTIA_BLADE10_PWROK_N","PWREN_NW_BLADE0_HSC_EN_N",
+       "PWRGD_MTIA_BLADE11_PWROK_N","PWREN_NW_BLADE1_HSC_EN_N",
        /*F0 - F7*/
-       "PWRGD_MTIA_BLADE12_PWROK_L_BUF","PWREN_NW_BLADE2_HSC_EN",
-       "PWRGD_MTIA_BLADE13_PWROK_L_BUF","PWREN_NW_BLADE3_HSC_EN",
-       "PWRGD_MTIA_BLADE14_PWROK_L_BUF","PWREN_NW_BLADE4_HSC_EN",
-       "PWRGD_MTIA_BLADE15_PWROK_L_BUF","PWREN_NW_BLADE5_HSC_EN",
-       "PWRGD_NW_BLADE0_PWROK_L_BUF","PWREN_FCB_TOP_L_EN",
-       "PWRGD_NW_BLADE1_PWROK_L_BUF","PWREN_FCB_TOP_R_EN",
-       "PWRGD_NW_BLADE2_PWROK_L_BUF","PWREN_FCB_MIDDLE_L_EN",
-       "PWRGD_NW_BLADE3_PWROK_L_BUF","PWREN_FCB_MIDDLE_R_EN",
+       "PWRGD_MTIA_BLADE12_PWROK_N","PWREN_NW_BLADE2_HSC_EN_N",
+       "PWRGD_MTIA_BLADE13_PWROK_N","PWREN_NW_BLADE3_HSC_EN_N",
+       "PWRGD_MTIA_BLADE14_PWROK_N","PWREN_NW_BLADE4_HSC_EN_N",
+       "PWRGD_MTIA_BLADE15_PWROK_N","PWREN_NW_BLADE5_HSC_EN_N",
+       "PWRGD_NW_BLADE0_PWROK_N","PWREN_FCB_TOP_0_EN_N",
+       "PWRGD_NW_BLADE1_PWROK_N","PWREN_FCB_TOP_1_EN_N",
+       "PWRGD_NW_BLADE2_PWROK_N","PWREN_FCB_MIDDLE_0_EN_N",
+       "PWRGD_NW_BLADE3_PWROK_N","PWREN_FCB_MIDDLE_1_EN_N",
        /*G0 - G7*/
-       "PWRGD_NW_BLADE4_PWROK_L_BUF","PWREN_FCB_BOTTOM_L_EN",
-       "PWRGD_NW_BLADE5_PWROK_L_BUF","PWREN_FCB_BOTTOM_R_EN",
-       "PWRGD_FCB_TOP_0_PWROK_L_BUF","FM_CMM_AC_CYCLE_N",
-       "PWRGD_FCB_TOP_1_PWROK_L_BUF","MGMT_SFP_TX_DIS",
-       "PWRGD_FCB_MIDDLE_0_PWROK_L_BUF","",
-       "PWRGD_FCB_MIDDLE_1_PWROK_L_BUF","RST_I2CRST_MTIA_BLADE0_1_N",
-       "PWRGD_FCB_BOTTOM_0_PWROK_L_BUF","RST_I2CRST_MTIA_BLADE2_3_N",
-       "PWRGD_FCB_BOTTOM_1_PWROK_L_BUF","RST_I2CRST_MTIA_BLADE4_5_N",
+       "PWRGD_NW_BLADE4_PWROK_N","PWREN_FCB_BOTTOM_1_EN_N",
+       "PWRGD_NW_BLADE5_PWROK_N","PWREN_FCB_BOTTOM_0_EN_N",
+       "PWRGD_FCB_TOP_0_PWROK_N","FM_CMM_AC_CYCLE_N",
+       "PWRGD_FCB_TOP_1_PWROK_N","MGMT_SFP_TX_DIS",
+       "PWRGD_FCB_MIDDLE_0_PWROK_N","FM_MDIO_SW_SEL",
+       "PWRGD_FCB_MIDDLE_1_PWROK_N","FM_P24V_SMPWR_EN",
+       "PWRGD_FCB_BOTTOM_1_PWROK_N","",
+       "PWRGD_FCB_BOTTOM_0_PWROK_N","",
        /*H0 - H7*/
-       "LEAK_DETECT_MTIA_BLADE0_N_BUF","RST_I2CRST_MTIA_BLADE6_7_N",
-       "LEAK_DETECT_MTIA_BLADE1_N_BUF","RST_I2CRST_MTIA_BLADE8_9_N",
-       "LEAK_DETECT_MTIA_BLADE2_N_BUF","RST_I2CRST_MTIA_BLADE10_11_N",
-       "LEAK_DETECT_MTIA_BLADE3_N_BUF","RST_I2CRST_MTIA_BLADE12_13_N",
-       "LEAK_DETECT_MTIA_BLADE4_N_BUF","RST_I2CRST_MTIA_BLADE14_15_N",
-       "LEAK_DETECT_MTIA_BLADE5_N_BUF","RST_I2CRST_NW_BLADE0_1_2_N",
-       "LEAK_DETECT_MTIA_BLADE6_N_BUF","RST_I2CRST_NW_BLADE3_4_5_N",
-       "LEAK_DETECT_MTIA_BLADE7_N_BUF","RST_I2CRST_FCB_N",
+       "LEAK_DETECT_MTIA_BLADE0_N","",
+       "LEAK_DETECT_MTIA_BLADE1_N","",
+       "LEAK_DETECT_MTIA_BLADE2_N","",
+       "LEAK_DETECT_MTIA_BLADE3_N","",
+       "LEAK_DETECT_MTIA_BLADE4_N","",
+       "LEAK_DETECT_MTIA_BLADE5_N","",
+       "LEAK_DETECT_MTIA_BLADE6_N","",
+       "LEAK_DETECT_MTIA_BLADE7_N","",
        /*I0 - I7*/
-       "LEAK_DETECT_MTIA_BLADE8_N_BUF","RST_I2CRST_FCB_B_L_N",
-       "LEAK_DETECT_MTIA_BLADE9_N_BUF","RST_I2CRST_FCB_B_R_N",
-       "LEAK_DETECT_MTIA_BLADE10_N_BUF","RST_I2CRST_FCB_M_L_N",
-       "LEAK_DETECT_MTIA_BLADE11_N_BUF","RST_I2CRST_FCB_M_R_N",
-       "LEAK_DETECT_MTIA_BLADE12_N_BUF","RST_I2CRST_FCB_T_L_N",
-       "LEAK_DETECT_MTIA_BLADE13_N_BUF","RST_I2CRST_FCB_T_R_N",
-       "LEAK_DETECT_MTIA_BLADE14_N_BUF","BMC_READY",
-       "LEAK_DETECT_MTIA_BLADE15_N_BUF","wFM_88E6393X_BIN_UPDATE_EN_N",
+       "LEAK_DETECT_MTIA_BLADE8_N","RST_I2CRST_FCB_BOTTOM_1_N",
+       "LEAK_DETECT_MTIA_BLADE9_N","RST_I2CRST_FCB_BOTTOM_0_N",
+       "LEAK_DETECT_MTIA_BLADE10_N","RST_I2CRST_FCB_MIDDLE_0_N",
+       "LEAK_DETECT_MTIA_BLADE11_N","RST_I2CRST_FCB_MIDDLE_1_N",
+       "LEAK_DETECT_MTIA_BLADE12_N","RST_I2CRST_FCB_TOP_0_N",
+       "LEAK_DETECT_MTIA_BLADE13_N","RST_I2CRST_FCB_TOP_1_N",
+       "LEAK_DETECT_MTIA_BLADE14_N","BMC_READY",
+       "LEAK_DETECT_MTIA_BLADE15_N","FM_88E6393X_BIN_UPDATE_EN_N",
        /*J0 - J7*/
-       "LEAK_DETECT_NW_BLADE0_N_BUF","WATER_VALVE_CLOSED_N",
-       "LEAK_DETECT_NW_BLADE1_N_BUF","",
-       "LEAK_DETECT_NW_BLADE2_N_BUF","",
-       "LEAK_DETECT_NW_BLADE3_N_BUF","",
-       "LEAK_DETECT_NW_BLADE4_N_BUF","",
-       "LEAK_DETECT_NW_BLADE5_N_BUF","",
-       "MTIA_BLADE0_STATUS_LED","",
-       "MTIA_BLADE1_STATUS_LED","",
+       "LEAK_DETECT_NW_BLADE0_N","WATER_VALVE_CLOSED_N",
+       "LEAK_DETECT_NW_BLADE1_N","",
+       "LEAK_DETECT_NW_BLADE2_N","",
+       "LEAK_DETECT_NW_BLADE3_N","",
+       "LEAK_DETECT_NW_BLADE4_N","",
+       "LEAK_DETECT_NW_BLADE5_N","",
+       "PWRGD_MTIA_BLADE0_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE1_HSC_PWROK_N","",
        /*K0 - K7*/
-       "MTIA_BLADE2_STATUS_LED","",
-       "MTIA_BLADE3_STATUS_LED","",
-       "MTIA_BLADE4_STATUS_LED","",
-       "MTIA_BLADE5_STATUS_LED","",
-       "MTIA_BLADE6_STATUS_LED","",
-       "MTIA_BLADE7_STATUS_LED","",
-       "MTIA_BLADE8_STATUS_LED","",
-       "MTIA_BLADE9_STATUS_LED","",
+       "PWRGD_MTIA_BLADE2_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE3_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE4_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE5_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE6_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE7_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE8_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE9_HSC_PWROK_N","",
        /*L0 - L7*/
-       "MTIA_BLADE10_STATUS_LED","",
-       "MTIA_BLADE11_STATUS_LED","",
-       "MTIA_BLADE12_STATUS_LED","",
-       "MTIA_BLADE13_STATUS_LED","",
-       "MTIA_BLADE14_STATUS_LED","",
-       "MTIA_BLADE15_STATUS_LED","",
-       "NW_BLADE0_STATUS_LED","",
-       "NW_BLADE1_STATUS_LED","",
+       "PWRGD_MTIA_BLADE10_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE11_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE12_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE13_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE14_HSC_PWROK_N","",
+       "PWRGD_MTIA_BLADE15_HSC_PWROK_N","",
+       "PWRGD_NW_BLADE0_HSC_PWROK_N","",
+       "PWRGD_NW_BLADE1_HSC_PWROK_N","",
        /*M0 - M7*/
-       "NW_BLADE2_STATUS_LED","",
-       "NW_BLADE3_STATUS_LED","",
-       "NW_BLADE4_STATUS_LED","",
-       "NW_BLADE5_STATUS_LED","",
+       "PWRGD_NW_BLADE2_HSC_PWROK_N","",
+       "PWRGD_NW_BLADE3_HSC_PWROK_N","",
+       "PWRGD_NW_BLADE4_HSC_PWROK_N","",
+       "PWRGD_NW_BLADE5_HSC_PWROK_N","",
        "RPU_READY","",
        "IT_GEAR_RPU_LINK_N","",
        "IT_GEAR_LEAK","",
        /*N0 - N7*/
        "VALVE_STS0","",
        "VALVE_STS1","",
-       "VALVE_STS2","",
-       "VALVE_STS3","",
-       "CR_TOGGLE_BOOT_BUF_N","",
-       "CMM_LC_RDY_LED_N","",
-       "CMM_LC_UNRDY_LED_N","",
+       "PCA9555_IRQ0_N","",
+       "PCA9555_IRQ1_N","",
+       "CR_TOGGLE_BOOT_N","",
+       "IRQ_FCB_TOP0_N","",
+       "IRQ_FCB_TOP1_N","",
        "CMM_CABLE_CARTRIDGE_PRSNT_BOT_N","",
        /*O0 - O7*/
        "CMM_CABLE_CARTRIDGE_PRSNT_TOP_N","",
        "BOT_BCB_CABLE_PRSNT_N","",
        "TOP_BCB_CABLE_PRSNT_N","",
-       "CHASSIS0_LEAK_Q_N","",
-       "CHASSIS1_LEAK_Q_N","",
-       "LEAK0_DETECT","",
-       "LEAK1_DETECT","",
-       "MGMT_SFP_PRSNT_N","",
+       "IRQ_FCB_MID0_N","",
+       "IRQ_FCB_MID1_N","",
+       "CHASSIS_LEAK0_DETECT_N","",
+       "CHASSIS_LEAK1_DETECT_N","",
+       "VALVE_RMON_A_1","",
        /*P0 - P7*/
-       "MGMT_SFP_TX_FAULT","",
-       "MGMT_SFP_RX_LOS","",
-       "","",
-       "","",
-       "","",
-       "","",
-       "","",
-       "","";
+       "VALVE_RMON_A_2","",
+       "VALVE_RMON_B_1","",
+       "VALVE_RMON_B_2","",
+       "RPU_READY_SPARE","",
+       "IT_GEAR_LEAK_SPARE","",
+       "IT_GEAR_RPU_LINK_SPARE_N","",
+       "IRQ_FCB_BOT0_N","",
+       "IRQ_FCB_BOT0_N","";
 };
diff --git a/src/arm/aspeed/aspeed-bmc-ibm-blueridge-4u.dts b/src/arm/aspeed/aspeed-bmc-ibm-blueridge-4u.dts
new file mode 100644 (file)
index 0000000..839aad4
--- /dev/null
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// Copyright 2024 IBM Corp.
+/dts-v1/;
+
+#include "aspeed-bmc-ibm-blueridge.dts"
+
+/ {
+       model = "Blueridge 4U";
+};
+
+&i2c3 {
+       power-supply@6a {
+               compatible = "ibm,cffps";
+               reg = <0x6a>;
+       };
+
+       power-supply@6b {
+               compatible = "ibm,cffps";
+               reg = <0x6b>;
+       };
+};
diff --git a/src/arm/aspeed/aspeed-bmc-ibm-blueridge.dts b/src/arm/aspeed/aspeed-bmc-ibm-blueridge.dts
new file mode 100644 (file)
index 0000000..dfe5cc3
--- /dev/null
@@ -0,0 +1,1686 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// Copyright 2024 IBM Corp.
+/dts-v1/;
+
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/i2c/i2c.h>
+#include <dt-bindings/leds/leds-pca955x.h>
+#include "aspeed-g6.dtsi"
+#include "ibm-power11-quad.dtsi"
+
+/ {
+       model = "Blueridge 2U";
+       compatible = "ibm,blueridge-bmc", "aspeed,ast2600";
+
+       aliases {
+               serial4 = &uart5;
+               i2c16 = &i2c2mux0;
+               i2c17 = &i2c2mux1;
+               i2c18 = &i2c2mux2;
+               i2c19 = &i2c2mux3;
+               i2c20 = &i2c4mux0chn0;
+               i2c21 = &i2c4mux0chn1;
+               i2c22 = &i2c4mux0chn2;
+               i2c23 = &i2c5mux0chn0;
+               i2c24 = &i2c5mux0chn1;
+               i2c25 = &i2c6mux0chn0;
+               i2c26 = &i2c6mux0chn1;
+               i2c27 = &i2c6mux0chn2;
+               i2c28 = &i2c6mux0chn3;
+               i2c29 = &i2c11mux0chn0;
+               i2c30 = &i2c11mux0chn1;
+       };
+
+       chosen {
+               stdout-path = &uart5;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x40000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               event_log: region@b3d00000 {
+                       reg = <0xb3d00000 0x100000>;
+                       no-map;
+               };
+
+               ramoops@b3e00000 {
+                       compatible = "ramoops";
+                       reg = <0xb3e00000 0x200000>; /* 16 * (4 * 0x8000) */
+                       record-size = <0x8000>;
+                       console-size = <0x8000>;
+                       ftrace-size = <0x8000>;
+                       pmsg-size = <0x8000>;
+                       max-reason = <3>; /* KMSG_DUMP_EMERG */
+               };
+
+               /* LPC FW cycle bridge region requires natural alignment */
+               flash_memory: region@b4000000 {
+                       reg = <0xb4000000 0x04000000>; /* 64M */
+                       no-map;
+               };
+
+               /* VGA region is dictated by hardware strapping */
+               vga_memory: region@bf000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0xbf000000 0x01000000>;  /* 16M */
+                       no-map;
+               };
+       };
+
+       i2c-mux {
+               compatible = "i2c-mux-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-parent = <&i2c2>;
+               idle-state = <0>;
+               mux-gpios = <&gpio0 ASPEED_GPIO(G, 4) GPIO_ACTIVE_HIGH>,
+                           <&gpio0 ASPEED_GPIO(G, 5) GPIO_ACTIVE_HIGH>;
+
+               i2c2mux0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c2mux1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c2mux2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c2mux3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               /* BMC Card fault LED at the back */
+               led-bmc-ingraham0 {
+                       gpios = <&gpio0 ASPEED_GPIO(H, 1) GPIO_ACTIVE_LOW>;
+               };
+
+               /* Enclosure ID LED at the back */
+               led-rear-enc-id0 {
+                       gpios = <&gpio0 ASPEED_GPIO(H, 2) GPIO_ACTIVE_LOW>;
+               };
+
+               /* Enclosure fault LED at the back */
+               led-rear-enc-fault0 {
+                       gpios = <&gpio0 ASPEED_GPIO(H, 3) GPIO_ACTIVE_LOW>;
+               };
+
+               /* PCIE slot power LED */
+               led-pcieslot-power {
+                       gpios = <&gpio0 ASPEED_GPIO(P, 4) GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               poll-interval = <1000>;
+
+               event-fan0-presence {
+                       gpios = <&pca0 6 GPIO_ACTIVE_LOW>;
+                       label = "fan0-presence";
+                       linux,code = <6>;
+               };
+
+               event-fan1-presence {
+                       gpios = <&pca0 7 GPIO_ACTIVE_LOW>;
+                       label = "fan1-presence";
+                       linux,code = <7>;
+               };
+
+               event-fan2-presence {
+                       gpios = <&pca0 8 GPIO_ACTIVE_LOW>;
+                       label = "fan2-presence";
+                       linux,code = <8>;
+               };
+
+               event-fan3-presence {
+                       gpios = <&pca0 9 GPIO_ACTIVE_LOW>;
+                       label = "fan3-presence";
+                       linux,code = <9>;
+               };
+
+               event-fan4-presence {
+                       gpios = <&pca0 10 GPIO_ACTIVE_LOW>;
+                       label = "fan4-presence";
+                       linux,code = <10>;
+               };
+
+               event-fan5-presence {
+                       gpios = <&pca0 11 GPIO_ACTIVE_LOW>;
+                       label = "fan5-presence";
+                       linux,code = <11>;
+               };
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc1 7>;
+       };
+};
+
+&adc1 {
+       status = "okay";
+       aspeed,int-vref-microvolt = <2500000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default
+               &pinctrl_adc10_default &pinctrl_adc11_default
+               &pinctrl_adc12_default &pinctrl_adc13_default
+               &pinctrl_adc14_default &pinctrl_adc15_default>;
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&uhci {
+       status = "okay";
+};
+
+&gpio0 {
+       gpio-line-names =
+       /*A0-A7*/       "","","","","","","","",
+       /*B0-B7*/       "bmc-management-ready","","","","","","checkstop","",
+       /*C0-C7*/       "","","","","","","","",
+       /*D0-D7*/       "","","","","","","","",
+       /*E0-E7*/       "","","","","","","","",
+       /*F0-F7*/       "","","rtc-battery-voltage-read-enable","reset-cause-pinhole","","",
+                       "factory-reset-toggle","",
+       /*G0-G7*/       "","","","","","","","",
+       /*H0-H7*/       "","bmc-ingraham0","rear-enc-id0","rear-enc-fault0","","","","",
+       /*I0-I7*/       "","","","","","","bmc-secure-boot","",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","","","","",
+       /*M0-M7*/       "","","","","","","","",
+       /*N0-N7*/       "","","","","","","","",
+       /*O0-O7*/       "","","","usb-power","","","","",
+       /*P0-P7*/       "","","","","pcieslot-power","","","",
+       /*Q0-Q7*/       "cfam-reset","","regulator-standby-faulted","","","","","",
+       /*R0-R7*/       "bmc-tpm-reset","power-chassis-control","power-chassis-good","","","","",
+                       "",
+       /*S0-S7*/       "presence-ps0","presence-ps1","presence-ps2","presence-ps3",
+                       "power-ffs-sync-history","","","",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","","",
+       /*V0-V7*/       "","","","","","","","",
+       /*W0-W7*/       "","","","","","","","",
+       /*X0-X7*/       "","","","","","","","",
+       /*Y0-Y7*/       "","","","","","","","",
+       /*Z0-Z7*/       "","","","","","","","";
+
+       i2c3-mux-oe-n-hog {
+               gpio-hog;
+               gpios = <ASPEED_GPIO(G, 6) GPIO_ACTIVE_LOW>;
+               line-name = "I2C3_MUX_OE_N";
+               output-high;
+       };
+
+       usb-power-hog {
+               gpio-hog;
+               gpios = <ASPEED_GPIO(O, 3) GPIO_ACTIVE_LOW>;
+               output-high;
+       };
+};
+
+&emmc_controller {
+       status = "okay";
+};
+
+&pinctrl_emmc_default {
+       bias-disable;
+};
+
+&emmc {
+       status = "okay";
+       clk-phase-mmc-hs200 = <180>, <180>;
+};
+
+&ibt {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       eeprom@51 {
+               compatible = "atmel,24c64";
+               reg = <0x51>;
+       };
+
+       gpio@20 {
+               compatible = "ti,tca9554";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names = "",
+                       "RUSSEL_FW_I2C_ENABLE_N",
+                       "RUSSEL_OPPANEL_PRESENCE_N",
+                       "BLYTH_OPPANEL_PRESENCE_N",
+                       "CPU_TPM_CARD_PRESENT_N",
+                       "DASD_BP2_PRESENT_N",
+                       "DASD_BP1_PRESENT_N",
+                       "DASD_BP0_PRESENT_N";
+       };
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+
+       power-supply@68 {
+               compatible = "ibm,cffps";
+               reg = <0x68>;
+       };
+
+       power-supply@69 {
+               compatible = "ibm,cffps";
+               reg = <0x69>;
+       };
+
+       led-controller@61 {
+               compatible = "nxp,pca9552";
+               reg = <0x61>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+                       "SLOT0_PRSNT_EN_RSVD", "SLOT1_PRSNT_EN_RSVD",
+                       "SLOT2_PRSNT_EN_RSVD", "SLOT3_PRSNT_EN_RSVD",
+                       "SLOT4_PRSNT_EN_RSVD", "SLOT0_EXPANDER_PRSNT_N",
+                       "SLOT1_EXPANDER_PRSNT_N", "SLOT2_EXPANDER_PRSNT_N",
+                       "SLOT3_EXPANDER_PRSNT_N", "SLOT4_EXPANDER_PRSNT_N",
+                       "", "", "", "", "", "";
+       };
+};
+
+&i2c4 {
+       status = "okay";
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp275";
+               reg = <0x48>;
+       };
+
+       temperature-sensor@49 {
+               compatible = "ti,tmp275";
+               reg = <0x49>;
+       };
+
+       temperature-sensor@4a {
+               compatible = "ti,tmp275";
+               reg = <0x4a>;
+       };
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c4mux0chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c64";
+                               reg = <0x50>;
+                       };
+
+                       led-controller@60 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard0-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard0-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+
+               i2c4mux0chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@51 {
+                               compatible = "atmel,24c64";
+                               reg = <0x51>;
+                       };
+               };
+
+               i2c4mux0chn2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@52 {
+                               compatible = "atmel,24c64";
+                               reg = <0x52>;
+                       };
+               };
+       };
+};
+
+&i2c5 {
+       status = "okay";
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp275";
+               reg = <0x48>;
+       };
+
+       temperature-sensor@49 {
+               compatible = "ti,tmp275";
+               reg = <0x49>;
+       };
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c5mux0chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c64";
+                               reg = <0x50>;
+                       };
+
+                       led-controller@60 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard3-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard3-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+
+               i2c5mux0chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@51 {
+                               compatible = "atmel,24c64";
+                               reg = <0x51>;
+                       };
+
+                       led-controller@61 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x61>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard4-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard4-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c6 {
+       status = "okay";
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp275";
+               reg = <0x48>;
+       };
+
+       temperature-sensor@4a {
+               compatible = "ti,tmp275";
+               reg = <0x4a>;
+       };
+
+       temperature-sensor@4b {
+               compatible = "ti,tmp275";
+               reg = <0x4b>;
+       };
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c6mux0chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+               };
+
+               i2c6mux0chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@52 {
+                               compatible = "atmel,24c64";
+                               reg = <0x52>;
+                       };
+               };
+
+               i2c6mux0chn2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c64";
+                               reg = <0x50>;
+                       };
+               };
+
+               i2c6mux0chn3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@51 {
+                               compatible = "atmel,24c64";
+                               reg = <0x51>;
+                       };
+               };
+       };
+};
+
+&i2c7 {
+       multi-master;
+       status = "okay";
+
+       led-controller@30 {
+               compatible = "ibm,pca9552";
+               reg = <0x30>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "pcieslot0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "pcieslot1";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "pcieslot2";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "pcieslot3";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "pcieslot4";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "cpu1";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "cpu-vrm1";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       reg = <8>;
+                       default-state = "keep";
+                       label = "lcd-russel";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       led-controller@31 {
+               compatible = "ibm,pca9552";
+               reg = <0x31>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "ddimm0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "ddimm1";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "ddimm2";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "ddimm3";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "ddimm4";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "ddimm5";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "ddimm6";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       default-state = "keep";
+                       label = "ddimm7";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       reg = <8>;
+                       default-state = "keep";
+                       label = "ddimm8";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@9 {
+                       reg = <9>;
+                       default-state = "keep";
+                       label = "ddimm9";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@10 {
+                       reg = <10>;
+                       default-state = "keep";
+                       label = "ddimm10";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@11 {
+                       reg = <11>;
+                       default-state = "keep";
+                       label = "ddimm11";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@12 {
+                       reg = <12>;
+                       default-state = "keep";
+                       label = "ddimm12";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@13 {
+                       reg = <13>;
+                       default-state = "keep";
+                       label = "ddimm13";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@14 {
+                       reg = <14>;
+                       default-state = "keep";
+                       label = "ddimm14";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@15 {
+                       reg = <15>;
+                       default-state = "keep";
+                       label = "ddimm15";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       led-controller@32 {
+               compatible = "ibm,pca9552";
+               reg = <0x32>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "ddimm16";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "ddimm17";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "ddimm18";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "ddimm19";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "ddimm20";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "ddimm21";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "ddimm22";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       default-state = "keep";
+                       label = "ddimm23";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       reg = <8>;
+                       default-state = "keep";
+                       label = "ddimm24";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@9 {
+                       reg = <9>;
+                       default-state = "keep";
+                       label = "ddimm25";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@10 {
+                       reg = <10>;
+                       default-state = "keep";
+                       label = "ddimm26";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@11 {
+                       reg = <11>;
+                       default-state = "keep";
+                       label = "ddimm27";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@12 {
+                       reg = <12>;
+                       default-state = "keep";
+                       label = "ddimm28";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@13 {
+                       reg = <13>;
+                       default-state = "keep";
+                       label = "ddimm29";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@14 {
+                       reg = <14>;
+                       default-state = "keep";
+                       label = "ddimm30";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@15 {
+                       reg = <15>;
+                       default-state = "keep";
+                       label = "ddimm31";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       led-controller@33 {
+               compatible = "ibm,pca9552";
+               reg = <0x33>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "planar";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "cpu0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "dasd-pyramid0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "dasd-pyramid1";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "dasd-pyramid2";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "cpu0-vrm0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       default-state = "keep";
+                       label = "rtc-battery";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       reg = <8>;
+                       default-state = "keep";
+                       label = "base-blyth";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@9 {
+                       reg = <9>;
+                       default-state = "keep";
+                       label = "pcieslot6";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@10 {
+                       reg = <10>;
+                       default-state = "keep";
+                       label = "pcieslot7";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@11 {
+                       reg = <11>;
+                       default-state = "keep";
+                       label = "pcieslot8";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@12 {
+                       reg = <12>;
+                       default-state = "keep";
+                       label = "pcieslot9";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@13 {
+                       reg = <13>;
+                       default-state = "keep";
+                       label = "pcieslot10";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@14 {
+                       reg = <14>;
+                       default-state = "keep";
+                       label = "pcieslot11";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@15 {
+                       reg = <15>;
+                       default-state = "keep";
+                       label = "tpm-wilson";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       humidity-sensor@40 {
+               compatible = "silabs,si7020";
+               reg = <0x40>;
+       };
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp275";
+               reg = <0x48>;
+       };
+
+       pwm@52 {
+               compatible = "maxim,max31785a";
+               reg = <0x52>;
+       };
+
+       led-controller@60 {
+               compatible = "nxp,pca9551";
+               reg = <0x60>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "front-sys-id0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "front-check-log0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "front-enc-fault1";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "front-sys-pwron0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       pca0: led-controller@61 {
+               compatible = "nxp,pca9552";
+               reg = <0x61>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "fan0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "fan1";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "fan2";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "fan3";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "fan4";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "fan5";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       lcd-controller@62 {
+               compatible = "ibm,op-panel";
+               reg = <(0x62 | I2C_OWN_SLAVE_ADDRESS)>;
+       };
+
+       pressure-sensor@76 {
+               compatible = "infineon,dps310";
+               reg = <0x76>;
+               #io-channel-cells = <0>;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+
+       eeprom@51 {
+               compatible = "atmel,24c64";
+               reg = <0x51>;
+       };
+};
+
+&i2c8 {
+       status = "okay";
+
+       pmic@11 {
+               compatible = "ti,ucd90320";
+               reg = <0x11>;
+       };
+
+       rtc@32 {
+               compatible = "epson,rx8900";
+               reg = <0x32>;
+       };
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp275";
+               reg = <0x48>;
+       };
+
+       temperature-sensor@4a {
+               compatible = "ti,tmp275";
+               reg = <0x4a>;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+
+       eeprom@51 {
+               compatible = "atmel,24c64";
+               reg = <0x51>;
+       };
+
+       led-controller@60 {
+               compatible = "nxp,pca9552";
+               reg = <0x60>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+                       "", "", "", "", "", "", "", "",
+                       "", "", "", "", "", "", "power-config-full-load", "";
+       };
+
+       led-controller@61 {
+               compatible = "nxp,pca9552";
+               reg = <0x61>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+                       "SLOT6_PRSNT_EN_RSVD", "SLOT7_PRSNT_EN_RSVD",
+                       "SLOT8_PRSNT_EN_RSVD", "SLOT9_PRSNT_EN_RSVD",
+                       "SLOT10_PRSNT_EN_RSVD", "SLOT11_PRSNT_EN_RSVD",
+                       "SLOT6_EXPANDER_PRSNT_N", "SLOT7_EXPANDER_PRSNT_N",
+                       "SLOT8_EXPANDER_PRSNT_N", "SLOT9_EXPANDER_PRSNT_N",
+                       "SLOT10_EXPANDER_PRSNT_N", "SLOT11_EXPANDER_PRSNT_N",
+                       "", "", "", "";
+       };
+
+};
+
+&i2c9 {
+       status = "okay";
+
+       temperature-sensor@4c {
+               compatible = "ti,tmp423";
+               reg = <0x4c>;
+       };
+
+       temperature-sensor@4d {
+               compatible = "ti,tmp423";
+               reg = <0x4d>;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c128";
+               reg = <0x50>;
+       };
+};
+
+&i2c10 {
+       status = "okay";
+
+       temperature-sensor@4c {
+               compatible = "ti,tmp423";
+               reg = <0x4c>;
+       };
+
+       temperature-sensor@4d {
+               compatible = "ti,tmp423";
+               reg = <0x4d>;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c128";
+               reg = <0x50>;
+       };
+};
+
+&i2c11 {
+       status = "okay";
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp275";
+               reg = <0x48>;
+       };
+
+       temperature-sensor@49 {
+               compatible = "ti,tmp275";
+               reg = <0x49>;
+       };
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c11mux0chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c64";
+                               reg = <0x50>;
+                       };
+
+                       led-controller@60 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard10-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard10-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+
+               i2c11mux0chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@51 {
+                               compatible = "atmel,24c64";
+                               reg = <0x51>;
+                       };
+               };
+       };
+};
+
+&i2c12 {
+       status = "okay";
+
+       tpm@2e {
+               compatible = "nuvoton,npct75x", "tcg,tpm-tis-i2c";
+               reg = <0x2e>;
+               memory-region = <&event_log>;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+};
+
+&i2c13 {
+       status = "okay";
+
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+
+       led-controller@60 {
+               compatible = "nxp,pca9552";
+               reg = <0x60>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "nvme0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "nvme1";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "nvme2";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "nvme3";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "nvme4";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "nvme5";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "nvme6";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       default-state = "keep";
+                       label = "nvme7";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+};
+
+&i2c14 {
+       status = "okay";
+
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+
+       led-controller@60 {
+               compatible = "nxp,pca9552";
+               reg = <0x60>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "nvme8";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "nvme9";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "nvme10";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "nvme11";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "nvme12";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "nvme13";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "nvme14";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       default-state = "keep";
+                       label = "nvme15";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+};
+
+&i2c15 {
+       status = "okay";
+
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+
+       led-controller@60 {
+               compatible = "nxp,pca9552";
+               reg = <0x60>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "nvme16";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "nvme17";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "nvme18";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "nvme19";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "nvme20";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "nvme21";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "nvme22";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       default-state = "keep";
+                       label = "nvme23";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&vuart1 {
+       status = "okay";
+};
+
+&vuart2 {
+       status = "okay";
+};
+
+&lpc_ctrl {
+       status = "okay";
+       memory-region = <&flash_memory>;
+};
+
+&mac2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rmii3_default>;
+       clocks = <&syscon ASPEED_CLK_GATE_MAC3CLK>,
+                <&syscon ASPEED_CLK_MAC3RCLK>;
+       clock-names = "MACCLK", "RCLK";
+       use-ncsi;
+};
+
+&mac3 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rmii4_default>;
+       clocks = <&syscon ASPEED_CLK_GATE_MAC4CLK>,
+                <&syscon ASPEED_CLK_MAC4RCLK>;
+       clock-names = "MACCLK", "RCLK";
+       use-ncsi;
+};
+
+&wdt1 {
+       aspeed,reset-type = "none";
+       aspeed,external-signal;
+       aspeed,ext-push-pull;
+       aspeed,ext-active-high;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdtrst1_default>;
+};
+
+&wdt2 {
+       status = "okay";
+};
+
+&kcs2 {
+       status = "okay";
+       aspeed,lpc-io-reg = <0xca8 0xcac>;
+};
+
+&kcs3 {
+       status = "okay";
+       aspeed,lpc-io-reg = <0xca2>;
+       aspeed,lpc-interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
+};
index 6fdda42575df595f39d4b79a2ccd48be06b8fee9..7364adc6b80d60801215de27e23bc3bf18964f28 100644 (file)
        status = "okay";
 };
 
-&xdma {
-       status = "okay";
-       memory-region = <&vga_memory>;
-};
-
 &kcs2 {
        status = "okay";
        aspeed,lpc-io-reg = <0xca8 0xcac>;
index 214b2e6a4c6df65233c83209c87af63ed3204207..513077a1f4be690bd1d124f507c03486cc477801 100644 (file)
        status = "okay";
 };
 
-&xdma {
-       status = "okay";
-       memory-region = <&vga_memory>;
-};
-
 &kcs2 {
        status = "okay";
        aspeed,lpc-io-reg = <0xca8 0xcac>;
diff --git a/src/arm/aspeed/aspeed-bmc-ibm-fuji.dts b/src/arm/aspeed/aspeed-bmc-ibm-fuji.dts
new file mode 100644 (file)
index 0000000..c24e464
--- /dev/null
@@ -0,0 +1,3876 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// Copyright 2024 IBM Corp.
+/dts-v1/;
+
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/i2c/i2c.h>
+#include <dt-bindings/leds/leds-pca955x.h>
+#include "aspeed-g6.dtsi"
+#include "ibm-power11-quad.dtsi"
+
+/ {
+       model = "Fuji";
+       compatible = "ibm,fuji-bmc", "aspeed,ast2600";
+
+       aliases {
+               i2c500 = &cfam4_i2c0;
+               i2c501 = &cfam4_i2c1;
+               i2c510 = &cfam4_i2c10;
+               i2c511 = &cfam4_i2c11;
+               i2c512 = &cfam4_i2c12;
+               i2c513 = &cfam4_i2c13;
+               i2c514 = &cfam4_i2c14;
+               i2c515 = &cfam4_i2c15;
+               i2c602 = &cfam5_i2c2;
+               i2c603 = &cfam5_i2c3;
+               i2c610 = &cfam5_i2c10;
+               i2c611 = &cfam5_i2c11;
+               i2c614 = &cfam5_i2c14;
+               i2c615 = &cfam5_i2c15;
+               i2c616 = &cfam5_i2c16;
+               i2c617 = &cfam5_i2c17;
+               i2c700 = &cfam6_i2c0;
+               i2c701 = &cfam6_i2c1;
+               i2c710 = &cfam6_i2c10;
+               i2c711 = &cfam6_i2c11;
+               i2c712 = &cfam6_i2c12;
+               i2c713 = &cfam6_i2c13;
+               i2c714 = &cfam6_i2c14;
+               i2c715 = &cfam6_i2c15;
+               i2c802 = &cfam7_i2c2;
+               i2c803 = &cfam7_i2c3;
+               i2c810 = &cfam7_i2c10;
+               i2c811 = &cfam7_i2c11;
+               i2c814 = &cfam7_i2c14;
+               i2c815 = &cfam7_i2c15;
+               i2c816 = &cfam7_i2c16;
+               i2c817 = &cfam7_i2c17;
+
+               i2c16 = &i2c4mux0chn0;
+               i2c17 = &i2c4mux0chn1;
+               i2c18 = &i2c4mux0chn2;
+               i2c19 = &i2c5mux0chn0;
+               i2c20 = &i2c5mux0chn1;
+               i2c21 = &i2c5mux0chn2;
+               i2c22 = &i2c5mux0chn3;
+               i2c23 = &i2c6mux0chn0;
+               i2c24 = &i2c6mux0chn1;
+               i2c25 = &i2c6mux0chn2;
+               i2c26 = &i2c6mux0chn3;
+               i2c27 = &i2c14mux0chn0;
+               i2c28 = &i2c14mux0chn1;
+               i2c29 = &i2c14mux0chn2;
+               i2c30 = &i2c14mux0chn3;
+               i2c31 = &i2c14mux1chn0;
+               i2c32 = &i2c14mux1chn1;
+               i2c33 = &i2c14mux1chn2;
+               i2c34 = &i2c14mux1chn3;
+               i2c35 = &i2c15mux0chn0;
+               i2c36 = &i2c15mux0chn1;
+               i2c37 = &i2c15mux0chn2;
+               i2c38 = &i2c15mux0chn3;
+               i2c39 = &i2c15mux1chn0;
+               i2c40 = &i2c15mux1chn1;
+               i2c41 = &i2c15mux1chn2;
+               i2c42 = &i2c15mux1chn3;
+               i2c43 = &i2c15mux2chn0;
+               i2c44 = &i2c15mux2chn1;
+               i2c45 = &i2c15mux2chn2;
+               i2c46 = &i2c15mux2chn3;
+               i2c47 = &i2c8mux0chn0;
+               i2c48 = &i2c8mux0chn1;
+
+               serial4 = &uart5;
+
+               sbefifo500 = &sbefifo500;
+               sbefifo501 = &sbefifo501;
+               sbefifo510 = &sbefifo510;
+               sbefifo511 = &sbefifo511;
+               sbefifo512 = &sbefifo512;
+               sbefifo513 = &sbefifo513;
+               sbefifo514 = &sbefifo514;
+               sbefifo515 = &sbefifo515;
+               sbefifo602 = &sbefifo602;
+               sbefifo603 = &sbefifo603;
+               sbefifo610 = &sbefifo610;
+               sbefifo611 = &sbefifo611;
+               sbefifo614 = &sbefifo614;
+               sbefifo615 = &sbefifo615;
+               sbefifo616 = &sbefifo616;
+               sbefifo617 = &sbefifo617;
+               sbefifo700 = &sbefifo700;
+               sbefifo701 = &sbefifo701;
+               sbefifo710 = &sbefifo710;
+               sbefifo711 = &sbefifo711;
+               sbefifo712 = &sbefifo712;
+               sbefifo713 = &sbefifo713;
+               sbefifo714 = &sbefifo714;
+               sbefifo715 = &sbefifo715;
+               sbefifo802 = &sbefifo802;
+               sbefifo803 = &sbefifo803;
+               sbefifo810 = &sbefifo810;
+               sbefifo811 = &sbefifo811;
+               sbefifo814 = &sbefifo814;
+               sbefifo815 = &sbefifo815;
+               sbefifo816 = &sbefifo816;
+               sbefifo817 = &sbefifo817;
+
+               scom500 = &scom500;
+               scom501 = &scom501;
+               scom510 = &scom510;
+               scom511 = &scom511;
+               scom512 = &scom512;
+               scom513 = &scom513;
+               scom514 = &scom514;
+               scom515 = &scom515;
+               scom602 = &scom602;
+               scom603 = &scom603;
+               scom610 = &scom610;
+               scom611 = &scom611;
+               scom614 = &scom614;
+               scom615 = &scom615;
+               scom616 = &scom616;
+               scom617 = &scom617;
+               scom700 = &scom700;
+               scom701 = &scom701;
+               scom710 = &scom710;
+               scom711 = &scom711;
+               scom712 = &scom712;
+               scom713 = &scom713;
+               scom714 = &scom714;
+               scom715 = &scom715;
+               scom802 = &scom802;
+               scom803 = &scom803;
+               scom810 = &scom810;
+               scom811 = &scom811;
+               scom814 = &scom814;
+               scom815 = &scom815;
+               scom816 = &scom816;
+               scom817 = &scom817;
+
+               spi50 = &cfam4_spi0;
+               spi51 = &cfam4_spi1;
+               spi52 = &cfam4_spi2;
+               spi53 = &cfam4_spi3;
+               spi60 = &cfam5_spi0;
+               spi61 = &cfam5_spi1;
+               spi62 = &cfam5_spi2;
+               spi63 = &cfam5_spi3;
+               spi70 = &cfam6_spi0;
+               spi71 = &cfam6_spi1;
+               spi72 = &cfam6_spi2;
+               spi73 = &cfam6_spi3;
+               spi80 = &cfam7_spi0;
+               spi81 = &cfam7_spi1;
+               spi82 = &cfam7_spi2;
+               spi83 = &cfam7_spi3;
+       };
+
+       chosen {
+               stdout-path = &uart5;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x40000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               event_log: region@b3d00000 {
+                       reg = <0xb3d00000 0x100000>;
+                       no-map;
+               };
+
+               ramoops@b3e00000 {
+                       compatible = "ramoops";
+                       reg = <0xb3e00000 0x200000>; /* 16 * (4 * 0x8000) */
+                       record-size = <0x8000>;
+                       console-size = <0x8000>;
+                       ftrace-size = <0x8000>;
+                       pmsg-size = <0x8000>;
+                       max-reason = <3>; /* KMSG_DUMP_EMERG */
+               };
+
+               /* LPC FW cycle bridge region requires natural alignment */
+               flash_memory: region@b4000000 {
+                       reg = <0xb4000000 0x04000000>; /* 64M */
+                       no-map;
+               };
+
+               /* VGA region is dictated by hardware strapping */
+               vga_memory: region@bf000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0xbf000000 0x01000000>; /* 16M */
+                       no-map;
+               };
+       };
+
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               poll-interval = <1000>;
+
+               event-fan0-presence {
+                       gpios = <&pca0 15 GPIO_ACTIVE_LOW>;
+                       label = "fan0-presence";
+                       linux,code = <15>;
+               };
+
+               event-fan1-presence {
+                       gpios = <&pca0 14 GPIO_ACTIVE_LOW>;
+                       label = "fan1-presence";
+                       linux,code = <14>;
+               };
+
+               event-fan2-presence {
+                       gpios = <&pca0 13 GPIO_ACTIVE_LOW>;
+                       label = "fan2-presence";
+                       linux,code = <13>;
+               };
+
+               event-fan3-presence {
+                       gpios = <&pca0 12 GPIO_ACTIVE_LOW>;
+                       label = "fan3-presence";
+                       linux,code = <12>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               /* RTC battery fault LED at the back */
+               led-rtc-battery {
+                       gpios = <&gpio0 ASPEED_GPIO(H, 0) GPIO_ACTIVE_LOW>;
+               };
+
+               /* BMC Card fault LED at the back */
+               led-bmc {
+                       gpios = <&gpio0 ASPEED_GPIO(H, 1) GPIO_ACTIVE_LOW>;
+               };
+
+               /* Enclosure Identify LED at the back */
+               led-rear-enc-id0 {
+                       gpios = <&gpio0 ASPEED_GPIO(H, 2) GPIO_ACTIVE_LOW>;
+               };
+
+               /* Enclosure fault LED at the back */
+               led-rear-enc-fault0 {
+                       gpios = <&gpio0 ASPEED_GPIO(H, 3) GPIO_ACTIVE_LOW>;
+               };
+
+               /* PCIE slot power LED */
+               led-pcieslot-power {
+                       gpios = <&gpio0 ASPEED_GPIO(P, 4) GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc1 7>;
+       };
+};
+
+&adc1 {
+       status = "okay";
+       aspeed,int-vref-microvolt = <2500000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default
+                                &pinctrl_adc10_default &pinctrl_adc11_default
+                                &pinctrl_adc12_default &pinctrl_adc13_default
+                                &pinctrl_adc14_default &pinctrl_adc15_default>;
+};
+
+&gpio0 {
+       gpio-line-names =
+       /*A0-A7*/       "","","","","","","","",
+       /*B0-B7*/       "bmc-management-ready","","","","","","checkstop","",
+       /*C0-C7*/       "","","","","","","","",
+       /*D0-D7*/       "","","","","","","","",
+       /*E0-E7*/       "","","","","","","","",
+       /*F0-F7*/       "","","rtc-battery-voltage-read-enable","reset-cause-pinhole","","",
+                       "factory-reset-toggle","",
+       /*G0-G7*/       "","","","","","","","",
+       /*H0-H7*/       "led-rtc-battery","led-bmc","led-rear-enc-id0","led-rear-enc-fault0","","",
+                       "","",
+       /*I0-I7*/       "","","","","","","bmc-secure-boot","",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","","","","",
+       /*M0-M7*/       "","","","","","","","",
+       /*N0-N7*/       "","","","","","","","",
+       /*O0-O7*/       "","","","usb-power","","","","",
+       /*P0-P7*/       "","","","","led-pcieslot-power","","","",
+       /*Q0-Q7*/       "","","regulator-standby-faulted","","","","","",
+       /*R0-R7*/       "bmc-tpm-reset","power-chassis-control","power-chassis-good","","",
+                       "I2C_FLASH_MICRO_N","","",
+       /*S0-S7*/       "","","","","power-ffs-sync-history","","","",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","","",
+       /*V0-V7*/       "","BMC_3RESTART_ATTEMPT_P","","","","","","",
+       /*W0-W7*/       "","","","","","","","",
+       /*X0-X7*/       "","","","","","","","",
+       /*Y0-Y7*/       "","","","","","","","",
+       /*Z0-Z7*/       "","","","","","","","";
+
+       usb-power-hog {
+               gpio-hog;
+               gpios = <ASPEED_GPIO(O, 3) GPIO_ACTIVE_LOW>;
+               output-high;
+       };
+};
+
+&i2c0 {
+       status = "okay";
+
+       eeprom@51 {
+               compatible = "atmel,24c64";
+               reg = <0x51>;
+       };
+
+       led-controller@62 {
+               compatible = "nxp,pca9552";
+               reg = <0x62>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+                       "presence-ps0",
+                       "presence-ps1",
+                       "presence-ps2",
+                       "presence-ps3",
+                       "presence-pdb",
+                       "presence-tpm",
+                       "", "",
+                       "presence-cp0",
+                       "presence-cp1",
+                       "presence-cp2",
+                       "presence-cp3",
+                       "presence-dasd",
+                       "presence-lcd-op",
+                       "presence-base-op",
+                       "";
+       };
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+
+       eeprom@54 {
+               compatible = "atmel,24c128";
+               reg = <0x54>;
+       };
+
+       power-supply@68 {
+               compatible = "ibm,cffps";
+               reg = <0x68>;
+       };
+
+       power-supply@69 {
+               compatible = "ibm,cffps";
+               reg = <0x69>;
+       };
+
+       power-supply@6b {
+               compatible = "ibm,cffps";
+               reg = <0x6b>;
+       };
+
+       power-supply@6d {
+               compatible = "ibm,cffps";
+               reg = <0x6d>;
+       };
+};
+
+&i2c4 {
+       status = "okay";
+
+       led-controller@65 {
+               compatible = "nxp,pca9552";
+               reg = <0x65>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+                       "presence-cable-card1",
+                       "presence-cable-card2",
+                       "presence-cable-card3",
+                       "presence-cable-card4",
+                       "presence-cable-card5",
+                       "expander-cable-card1",
+                       "expander-cable-card2",
+                       "expander-cable-card3",
+                       "expander-cable-card4",
+                       "expander-cable-card5";
+       };
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c4mux0chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@52 {
+                               compatible = "atmel,24c64";
+                               reg = <0x52>;
+                       };
+
+                       led-controller@62 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x62>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard-c01-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard-c01-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+
+               i2c4mux0chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c64";
+                               reg = <0x50>;
+                       };
+
+                       led-controller@60 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard-c02-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard-c02-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+
+               i2c4mux0chn2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@51 {
+                               compatible = "atmel,24c64";
+                               reg = <0x51>;
+                       };
+
+                       led-controller@61 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x61>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard-c03-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard-c03-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c5 {
+       status = "okay";
+
+       led-controller@66 {
+               compatible = "nxp,pca9552";
+               reg = <0x66>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+                       "presence-cable-card6",
+                       "presence-cable-card7",
+                       "presence-cable-card8",
+                       "presence-cable-card9",
+                       "presence-cable-card10",
+                       "presence-cable-card11",
+                       "expander-cable-card6",
+                       "expander-cable-card7",
+                       "expander-cable-card8",
+                       "expander-cable-card9",
+                       "expander-cable-card10",
+                       "expander-cable-card11";
+       };
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c5mux0chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c64";
+                               reg = <0x50>;
+                       };
+
+                       led-controller@60 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard-c04-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard-c04-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+
+               i2c5mux0chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@51 {
+                               compatible = "atmel,24c64";
+                               reg = <0x51>;
+                       };
+
+                       led-controller@61 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x61>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard-c05-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard-c05-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+
+               i2c5mux0chn2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@52 {
+                               compatible = "atmel,24c64";
+                               reg = <0x52>;
+                       };
+
+                       led-controller@62 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x62>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard-c06-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard-c06-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+
+               i2c5mux0chn3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+
+                       led-controller@63 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x63>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard-c07-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard-c07-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c6 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c6mux0chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c64";
+                               reg = <0x50>;
+                       };
+
+                       led-controller@60 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard-c08-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard-c08-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+
+               i2c6mux0chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@52 {
+                               compatible = "atmel,24c64";
+                               reg = <0x52>;
+                       };
+
+                       led-controller@62 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x62>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard-c09-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard-c09-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+
+               i2c6mux0chn2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+
+                       led-controller@63 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x63>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard-c10-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard-c10-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+
+               i2c6mux0chn3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@51 {
+                               compatible = "atmel,24c64";
+                               reg = <0x51>;
+                       };
+
+                       led-controller@61 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x61>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "cablecard-c11-cxp-top";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "cablecard-c11-cxp-bot";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+       };
+
+       led-controller@65 {
+               compatible = "nxp,pca9552";
+               reg = <0x65>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "pcieslot-c01";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "pcieslot-c02";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "pcieslot-c03";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "pcieslot-c04";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "pcieslot-c05";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "pcieslot-c06";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       default-state = "keep";
+                       label = "pcieslot-c07";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       reg = <8>;
+                       default-state = "keep";
+                       label = "pcieslot-c08";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@9 {
+                       reg = <9>;
+                       default-state = "keep";
+                       label = "pcieslot-c09";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@10 {
+                       reg = <10>;
+                       default-state = "keep";
+                       label = "pcieslot-c10";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@11 {
+                       reg = <11>;
+                       default-state = "keep";
+                       label = "pcieslot-c11";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+};
+
+&i2c7 {
+       status = "okay";
+
+       led-controller@31 {
+               compatible = "ibm,pca9552";
+               reg = <0x31>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "ddimm0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "ddimm1";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "ddimm2";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "ddimm3";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "ddimm4";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "ddimm5";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "ddimm6";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       default-state = "keep";
+                       label = "ddimm7";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       reg = <8>;
+                       default-state = "keep";
+                       label = "ddimm8";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@9 {
+                       reg = <9>;
+                       default-state = "keep";
+                       label = "ddimm9";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@10 {
+                       reg = <10>;
+                       default-state = "keep";
+                       label = "ddimm10";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@11 {
+                       reg = <11>;
+                       default-state = "keep";
+                       label = "ddimm11";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@12 {
+                       reg = <12>;
+                       default-state = "keep";
+                       label = "ddimm12";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@13 {
+                       reg = <13>;
+                       default-state = "keep";
+                       label = "ddimm13";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@14 {
+                       reg = <14>;
+                       default-state = "keep";
+                       label = "ddimm14";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@15 {
+                       reg = <15>;
+                       default-state = "keep";
+                       label = "ddimm15";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       led-controller@32 {
+               compatible = "ibm,pca9552";
+               reg = <0x32>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "ddimm16";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "ddimm17";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "ddimm18";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "ddimm19";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "ddimm20";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "ddimm21";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "ddimm22";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       default-state = "keep";
+                       label = "ddimm23";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       reg = <8>;
+                       default-state = "keep";
+                       label = "ddimm24";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@9 {
+                       reg = <9>;
+                       default-state = "keep";
+                       label = "ddimm25";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@10 {
+                       reg = <10>;
+                       default-state = "keep";
+                       label = "ddimm26";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@11 {
+                       reg = <11>;
+                       default-state = "keep";
+                       label = "ddimm27";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@12 {
+                       reg = <12>;
+                       default-state = "keep";
+                       label = "ddimm28";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@13 {
+                       reg = <13>;
+                       default-state = "keep";
+                       label = "ddimm29";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@14 {
+                       reg = <14>;
+                       default-state = "keep";
+                       label = "ddimm30";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@15 {
+                       reg = <15>;
+                       default-state = "keep";
+                       label = "ddimm31";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       led-controller@33 {
+               compatible = "ibm,pca9552";
+               reg = <0x33>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "ddimm32";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "ddimm33";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "ddimm34";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "ddimm35";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "ddimm36";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "ddimm37";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "ddimm38";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       default-state = "keep";
+                       label = "ddimm39";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       reg = <8>;
+                       default-state = "keep";
+                       label = "ddimm40";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@9 {
+                       reg = <9>;
+                       default-state = "keep";
+                       label = "ddimm41";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@10 {
+                       reg = <10>;
+                       default-state = "keep";
+                       label = "ddimm42";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@11 {
+                       reg = <11>;
+                       default-state = "keep";
+                       label = "ddimm43";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@12 {
+                       reg = <12>;
+                       default-state = "keep";
+                       label = "ddimm44";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@13 {
+                       reg = <13>;
+                       default-state = "keep";
+                       label = "ddimm45";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@14 {
+                       reg = <14>;
+                       default-state = "keep";
+                       label = "ddimm46";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@15 {
+                       reg = <15>;
+                       default-state = "keep";
+                       label = "ddimm47";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       led-controller@30 {
+               compatible = "ibm,pca9552";
+               reg = <0x30>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "ddimm48";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "ddimm49";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "ddimm50";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "ddimm51";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "ddimm52";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "ddimm53";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "ddimm54";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       default-state = "keep";
+                       label = "ddimm55";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       reg = <8>;
+                       default-state = "keep";
+                       label = "ddimm56";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@9 {
+                       reg = <9>;
+                       default-state = "keep";
+                       label = "ddimm57";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@10 {
+                       reg = <10>;
+                       default-state = "keep";
+                       label = "ddimm58";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@11 {
+                       reg = <11>;
+                       default-state = "keep";
+                       label = "ddimm59";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@12 {
+                       reg = <12>;
+                       default-state = "keep";
+                       label = "ddimm60";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@13 {
+                       reg = <13>;
+                       default-state = "keep";
+                       label = "ddimm61";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@14 {
+                       reg = <14>;
+                       default-state = "keep";
+                       label = "ddimm62";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@15 {
+                       reg = <15>;
+                       default-state = "keep";
+                       label = "ddimm63";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       led-controller@34 {
+               compatible = "ibm,pca9552";
+               reg = <0x34>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "planar";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "tpm";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "cpu3-c61";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "cpu0-c14";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "opencapi-connector3";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "opencapi-connector4";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "opencapi-connector5";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       reg = <8>;
+                       default-state = "keep";
+                       label = "vrm4";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@9 {
+                       reg = <9>;
+                       default-state = "keep";
+                       label = "vrm5";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@10 {
+                       reg = <10>;
+                       default-state = "keep";
+                       label = "vrm6";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@11 {
+                       reg = <11>;
+                       default-state = "keep";
+                       label = "vrm7";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@12 {
+                       reg = <12>;
+                       default-state = "keep";
+                       label = "vrm12";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@13 {
+                       reg = <13>;
+                       default-state = "keep";
+                       label = "vrm13";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@14 {
+                       reg = <14>;
+                       default-state = "keep";
+                       label = "vrm14";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@15 {
+                       reg = <15>;
+                       default-state = "keep";
+                       label = "vrm15";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       led-controller@35 {
+               compatible = "ibm,pca9552";
+               reg = <0x35>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       reg = <0>;
+                       default-state = "keep";
+                       label = "dasd-backplane";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       reg = <1>;
+                       default-state = "keep";
+                       label = "power-distribution";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       default-state = "keep";
+                       label = "cpu1-c19";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       default-state = "keep";
+                       label = "cpu2-c56";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       default-state = "keep";
+                       label = "opencapi-connector0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       default-state = "keep";
+                       label = "opencapi-connector1";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       default-state = "keep";
+                       label = "opencapi-connector2";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       reg = <8>;
+                       default-state = "keep";
+                       label = "vrm0";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@9 {
+                       reg = <9>;
+                       default-state = "keep";
+                       label = "vrm1";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@10 {
+                       reg = <10>;
+                       default-state = "keep";
+                       label = "vrm2";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@11 {
+                       reg = <11>;
+                       default-state = "keep";
+                       label = "vrm3";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@12 {
+                       reg = <12>;
+                       default-state = "keep";
+                       label = "vrm8";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@13 {
+                       reg = <13>;
+                       default-state = "keep";
+                       label = "vrm9";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@14 {
+                       reg = <14>;
+                       default-state = "keep";
+                       label = "vrm10";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@15 {
+                       reg = <15>;
+                       default-state = "keep";
+                       label = "vrm11";
+                       retain-state-shutdown;
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+};
+
+&i2c8 {
+       status = "okay";
+
+       pmic@11 {
+               compatible = "ti,ucd90320";
+               reg = <0x11>;
+       };
+
+       rtc@32 {
+               compatible = "epson,rx8900";
+               reg = <0x32>;
+       };
+
+       eeprom@51 {
+               compatible = "atmel,24c64";
+               reg = <0x51>;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c128";
+               reg = <0x50>;
+       };
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+               reset-gpio = <&gpio0 ASPEED_GPIO(S, 5) GPIO_ACTIVE_LOW>;
+
+               i2c8mux0chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c8mux0chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+&i2c9 {
+       status = "okay";
+
+       eeprom@50 {
+               compatible = "atmel,24c128";
+               reg = <0x50>;
+       };
+
+       eeprom@51 {
+               compatible = "atmel,24c128";
+               reg = <0x51>;
+       };
+
+       eeprom@53 {
+               compatible = "atmel,24c128";
+               reg = <0x53>;
+       };
+
+       eeprom@52 {
+               compatible = "atmel,24c128";
+               reg = <0x52>;
+       };
+};
+
+&i2c10 {
+       status = "okay";
+
+       eeprom@51 {
+               compatible = "atmel,24c128";
+               reg = <0x51>;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c128";
+               reg = <0x50>;
+       };
+
+       eeprom@53 {
+               compatible = "atmel,24c128";
+               reg = <0x53>;
+       };
+
+       eeprom@52 {
+               compatible = "atmel,24c128";
+               reg = <0x52>;
+       };
+};
+
+&i2c11 {
+       status = "okay";
+
+       eeprom@51 {
+               compatible = "atmel,24c128";
+               reg = <0x51>;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c128";
+               reg = <0x50>;
+       };
+
+       eeprom@53 {
+               compatible = "atmel,24c128";
+               reg = <0x53>;
+       };
+
+       eeprom@52 {
+               compatible = "atmel,24c128";
+               reg = <0x52>;
+       };
+};
+
+&i2c12 {
+       status = "okay";
+
+       tpm@2e {
+               compatible = "nuvoton,npct75x", "tcg,tpm-tis-i2c";
+               reg = <0x2e>;
+               memory-region = <&event_log>;
+       };
+};
+
+&i2c13 {
+       status = "okay";
+
+       eeprom@51 {
+               compatible = "atmel,24c128";
+               reg = <0x51>;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c128";
+               reg = <0x50>;
+       };
+
+       eeprom@53 {
+               compatible = "atmel,24c128";
+               reg = <0x53>;
+       };
+
+       eeprom@52 {
+               compatible = "atmel,24c128";
+               reg = <0x52>;
+       };
+};
+
+&i2c14 {
+       multi-master;
+       status = "okay";
+
+       lcd-controller@62 {
+               compatible = "ibm,op-panel";
+               reg = <(0x62 | I2C_OWN_SLAVE_ADDRESS)>;
+       };
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               idle-state = <1>;
+
+               i2c14mux0chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c64";
+                               reg = <0x50>;
+                       };
+               };
+
+               i2c14mux0chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@51 {
+                               compatible = "atmel,24c32";
+                               reg = <0x51>;
+                       };
+               };
+
+               i2c14mux0chn2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c32";
+                               reg = <0x50>;
+                       };
+
+                       led-controller@60 {
+                               compatible = "nxp,pca9551";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "front-sys-id0";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "front-check-log0";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@2 {
+                                       reg = <2>;
+                                       default-state = "keep";
+                                       label = "front-enc-fault1";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@3 {
+                                       reg = <3>;
+                                       default-state = "keep";
+                                       label = "front-sys-pwron0";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+               };
+
+               i2c14mux0chn3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       pwm@52 {
+                               compatible = "maxim,max31785a";
+                               reg = <0x52>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       led-controller@60 {
+                               compatible = "nxp,pca9552";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       default-state = "keep";
+                                       label = "nvme0";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       default-state = "keep";
+                                       label = "nvme1";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@2 {
+                                       reg = <2>;
+                                       default-state = "keep";
+                                       label = "nvme2";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@3 {
+                                       reg = <3>;
+                                       default-state = "keep";
+                                       label = "nvme3";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@4 {
+                                       reg = <4>;
+                                       default-state = "keep";
+                                       label = "nvme4";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@5 {
+                                       reg = <5>;
+                                       default-state = "keep";
+                                       label = "nvme5";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@6 {
+                                       reg = <6>;
+                                       default-state = "keep";
+                                       label = "nvme6";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@7 {
+                                       reg = <7>;
+                                       default-state = "keep";
+                                       label = "nvme7";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@8 {
+                                       reg = <8>;
+                                       default-state = "keep";
+                                       label = "nvme8";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@9 {
+                                       reg = <9>;
+                                       default-state = "keep";
+                                       label = "nvme9";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@10 {
+                                       reg = <10>;
+                                       default-state = "keep";
+                                       label = "fan0";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@11 {
+                                       reg = <11>;
+                                       default-state = "keep";
+                                       label = "fan1";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@12 {
+                                       reg = <12>;
+                                       default-state = "keep";
+                                       label = "fan2";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@13 {
+                                       reg = <13>;
+                                       default-state = "keep";
+                                       label = "fan3";
+                                       retain-state-shutdown;
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+
+                       pca0: led-controller@61 {
+                               compatible = "nxp,pca9552";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0x61>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               gpio-line-names =
+                                       "","","","",
+                                       "","","","",
+                                       "","","","",
+                                       "presence-fan3",
+                                       "presence-fan2",
+                                       "presence-fan1",
+                                       "presence-fan0";
+                       };
+               };
+       };
+
+       i2c-mux@71 {
+               compatible = "nxp,pca9546";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c14mux1chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c32";
+                               reg = <0x50>;
+                       };
+               };
+
+               i2c14mux1chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c32";
+                               reg = <0x50>;
+                       };
+               };
+
+               i2c14mux1chn2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c32";
+                               reg = <0x50>;
+                       };
+               };
+
+               i2c14mux1chn3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c32";
+                               reg = <0x50>;
+                       };
+               };
+       };
+};
+
+&i2c15 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c15mux0chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+               };
+
+               i2c15mux0chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+               };
+
+               i2c15mux0chn2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+               };
+
+               i2c15mux0chn3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+               };
+       };
+
+       i2c-mux@71 {
+               compatible = "nxp,pca9546";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c15mux1chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+               };
+
+               i2c15mux1chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+               };
+
+               i2c15mux1chn2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+               };
+
+               i2c15mux1chn3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+               };
+       };
+
+       i2c-mux@72 {
+               compatible = "nxp,pca9546";
+               reg = <0x72>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c15mux2chn0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+               };
+
+               i2c15mux2chn1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       eeprom@53 {
+                               compatible = "atmel,24c64";
+                               reg = <0x53>;
+                       };
+               };
+
+               i2c15mux2chn2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c15mux2chn3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&uhci {
+       status = "okay";
+};
+
+&emmc_controller {
+       status = "okay";
+};
+
+&pinctrl_emmc_default {
+       bias-disable;
+};
+
+&emmc {
+       status = "okay";
+       clk-phase-mmc-hs200 = <210>, <228>;
+};
+
+&ibt {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&vuart1 {
+       status = "okay";
+};
+
+&vuart2 {
+       status = "okay";
+};
+
+&lpc_ctrl {
+       status = "okay";
+       memory-region = <&flash_memory>;
+};
+
+&mac2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rmii3_default>;
+       clocks = <&syscon ASPEED_CLK_GATE_MAC3CLK>,
+                <&syscon ASPEED_CLK_MAC3RCLK>;
+       clock-names = "MACCLK", "RCLK";
+       use-ncsi;
+};
+
+&mac3 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rmii4_default>;
+       clocks = <&syscon ASPEED_CLK_GATE_MAC4CLK>,
+                <&syscon ASPEED_CLK_MAC4RCLK>;
+       clock-names = "MACCLK", "RCLK";
+       use-ncsi;
+};
+
+&wdt1 {
+       aspeed,reset-type = "none";
+       aspeed,external-signal;
+       aspeed,ext-push-pull;
+       aspeed,ext-active-high;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdtrst1_default>;
+};
+
+&wdt2 {
+       status = "okay";
+};
+
+&kcs2 {
+       status = "okay";
+       aspeed,lpc-io-reg = <0xca8 0xcac>;
+};
+
+&kcs3 {
+       status = "okay";
+       aspeed,lpc-io-reg = <0xca2>;
+       aspeed,lpc-interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
+};
+
+&fsi_hub0 {
+       cfam@4,0 { /* DCM2_C0 */
+               reg = <4 0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               chip-id = <4>;
+
+               scom@1000 {
+                       compatible = "ibm,p9-scom";
+                       reg = <0x1000 0x400>;
+               };
+
+               i2c@1800 {
+                       compatible = "ibm,i2c-fsi";
+                       reg = <0x1800 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam4_i2c0: i2c-bus@0 {
+                               reg = <0>;      /* OM01 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom500: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo500: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam4_i2c1: i2c-bus@1 {
+                               reg = <1>;      /* OM23 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom501: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo501: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam4_i2c10: i2c-bus@a {
+                               reg = <10>;     /* OP3A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom510: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo510: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam4_i2c11: i2c-bus@b {
+                               reg = <11>;     /* OP3B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom511: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo511: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam4_i2c12: i2c-bus@c {
+                               reg = <12>;     /* OP4A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom512: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo512: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam4_i2c13: i2c-bus@d {
+                               reg = <13>;     /* OP4B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom513: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo513: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam4_i2c14: i2c-bus@e {
+                               reg = <14>;     /* OP5A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom514: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo514: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam4_i2c15: i2c-bus@f {
+                               reg = <15>;     /* OP5B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom515: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo515: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               fsi2spi@1c00 {
+                       compatible = "ibm,fsi2spi";
+                       reg = <0x1c00 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam4_spi0: spi@0 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam4_spi1: spi@20 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x20>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam4_spi2: spi@40 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x40>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam4_spi3: spi@60 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+               };
+
+               sbefifo@2400 {
+                       compatible = "ibm,p9-sbefifo";
+                       reg = <0x2400 0x400>;
+
+                       occ {
+                               compatible = "ibm,p10-occ";
+
+                               hwmon {
+                                       compatible = "ibm,p10-occ-hwmon";
+                                       ibm,no-poll-on-init;
+                               };
+                       };
+               };
+
+               fsi@3400 {
+                       compatible = "ibm,p9-fsi-controller";
+                       reg = <0x3400 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       no-scan-on-init;
+               };
+       };
+
+       cfam@5,0 { /* DCM2_C1 */
+               reg = <5 0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               chip-id = <5>;
+
+               scom@1000 {
+                       compatible = "ibm,p9-scom";
+                       reg = <0x1000 0x400>;
+               };
+
+               i2c@1800 {
+                       compatible = "ibm,i2c-fsi";
+                       reg = <0x1800 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam5_i2c2: i2c-bus@2 {
+                               reg = <2>;      /* OM45 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom602: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo602: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam5_i2c3: i2c-bus@3 {
+                               reg = <3>;      /* OM67 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom603: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo603: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam5_i2c10: i2c-bus@a {
+                               reg = <10>;     /* OP3A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom610: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo610: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam5_i2c11: i2c-bus@b {
+                               reg = <11>;     /* OP3B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom611: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo611: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam5_i2c14: i2c-bus@e {
+                               reg = <14>;     /* OP5A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom614: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo614: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam5_i2c15: i2c-bus@f {
+                               reg = <15>;     /* OP5B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom615: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo615: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam5_i2c16: i2c-bus@10 {
+                               reg = <16>;     /* OP6A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom616: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo616: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam5_i2c17: i2c-bus@11 {
+                               reg = <17>;     /* OP6B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom617: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo617: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               fsi2spi@1c00 {
+                       compatible = "ibm,fsi2spi";
+                       reg = <0x1c00 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam5_spi0: spi@0 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam5_spi1: spi@20 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x20>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam5_spi2: spi@40 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x40>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam5_spi3: spi@60 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+               };
+
+               sbefifo@2400 {
+                       compatible = "ibm,p9-sbefifo";
+                       reg = <0x2400 0x400>;
+
+                       occ {
+                               compatible = "ibm,p10-occ";
+
+                               hwmon {
+                                       compatible = "ibm,p10-occ-hwmon";
+                                       ibm,no-poll-on-init;
+                               };
+                       };
+               };
+
+               fsi@3400 {
+                       compatible = "ibm,p9-fsi-controller";
+                       reg = <0x3400 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       no-scan-on-init;
+               };
+       };
+
+       cfam@6,0 { /* DCM3_C0 */
+               reg = <6 0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               chip-id = <6>;
+
+               scom@1000 {
+                       compatible = "ibm,p9-scom";
+                       reg = <0x1000 0x400>;
+               };
+
+               i2c@1800 {
+                       compatible = "ibm,i2c-fsi";
+                       reg = <0x1800 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam6_i2c0: i2c-bus@0 {
+                               reg = <0>;      /* OM01 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom700: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo700: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam6_i2c1: i2c-bus@1 {
+                               reg = <1>;      /* OM23 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom701: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo701: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam6_i2c10: i2c-bus@a {
+                               reg = <10>;     /* OP3A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom710: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo710: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam6_i2c11: i2c-bus@b {
+                               reg = <11>;     /* OP3B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom711: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo711: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam6_i2c12: i2c-bus@c {
+                               reg = <12>;     /* OP4A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom712: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo712: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam6_i2c13: i2c-bus@d {
+                               reg = <13>;     /* OP4B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom713: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo713: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam6_i2c14: i2c-bus@e {
+                               reg = <14>;     /* OP5A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom714: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo714: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam6_i2c15: i2c-bus@f {
+                               reg = <15>;     /* OP5B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom715: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo715: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               fsi2spi@1c00 {
+                       compatible = "ibm,fsi2spi";
+                       reg = <0x1c00 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam6_spi0: spi@0 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam6_spi1: spi@20 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x20>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam6_spi2: spi@40 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x40>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam6_spi3: spi@60 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+               };
+
+               sbefifo@2400 {
+                       compatible = "ibm,p9-sbefifo";
+                       reg = <0x2400 0x400>;
+
+                       occ {
+                               compatible = "ibm,p10-occ";
+
+                               hwmon {
+                                       compatible = "ibm,p10-occ-hwmon";
+                                       ibm,no-poll-on-init;
+                               };
+                       };
+               };
+
+               fsi@3400 {
+                       compatible = "ibm,p9-fsi-controller";
+                       reg = <0x3400 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       no-scan-on-init;
+               };
+       };
+
+       cfam@7,0 { /* DCM3_C1 */
+               reg = <7 0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               chip-id = <7>;
+
+               scom@1000 {
+                       compatible = "ibm,p9-scom";
+                       reg = <0x1000 0x400>;
+               };
+
+               i2c@1800 {
+                       compatible = "ibm,i2c-fsi";
+                       reg = <0x1800 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam7_i2c2: i2c-bus@2 {
+                               reg = <2>;      /* OM45 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom802: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo802: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam7_i2c3: i2c-bus@3 {
+                               reg = <3>;      /* OM67 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom803: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo803: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam7_i2c10: i2c-bus@a {
+                               reg = <10>;     /* OP3A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom810: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo810: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam7_i2c11: i2c-bus@b {
+                               reg = <11>;     /* OP3B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom811: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo811: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam7_i2c14: i2c-bus@e {
+                               reg = <14>;     /* OP5A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom814: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo814: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam7_i2c15: i2c-bus@f {
+                               reg = <15>;     /* OP5B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom815: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo815: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam7_i2c16: i2c-bus@10 {
+                               reg = <16>;     /* OP6A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom816: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo816: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam7_i2c17: i2c-bus@11 {
+                               reg = <17>;     /* OP6B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom817: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo817: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               fsi2spi@1c00 {
+                       compatible = "ibm,fsi2spi";
+                       reg = <0x1c00 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam7_spi0: spi@0 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam7_spi1: spi@20 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x20>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam7_spi2: spi@40 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x40>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam7_spi3: spi@60 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+               };
+
+               sbefifo@2400 {
+                       compatible = "ibm,p9-sbefifo";
+                       reg = <0x2400 0x400>;
+
+                       occ {
+                               compatible = "ibm,p10-occ";
+
+                               hwmon {
+                                       compatible = "ibm,p10-occ-hwmon";
+                                       ibm,no-poll-on-init;
+                               };
+                       };
+               };
+
+               fsi@3400 {
+                       compatible = "ibm,p9-fsi-controller";
+                       reg = <0x3400 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       no-scan-on-init;
+               };
+       };
+};
index 5cb0094e21e0b0dade6d4532b74c1fbd5dab9331..0776b72c2199c7f73ab96d347d03c287d22db375 100644 (file)
        status = "okay";
 };
 
-&xdma {
-       status = "okay";
-       memory-region = <&vga_memory>;
-};
-
 &kcs2 {
        status = "okay";
        aspeed,lpc-io-reg = <0xca8 0xcac>;
index dcbc16308ab50b46239b9b3b9cfe7ecf6ff70ebf..f3efecc7eb8d042a1d53883ff4dc8b4d74c8990b 100644 (file)
                        reg = <6>;
 
                        temperature-sensor@4c {
-                               compatible = "ti,tmp423";
+                               compatible = "ti,tmp432";
                                reg = <0x4c>;
                        };
                };
                        reg = <6>;
 
                        temperature-sensor@4c {
-                               compatible = "ti,tmp423";
+                               compatible = "ti,tmp432";
                                reg = <0x4c>;
                        };
                };
                        };
 
                        temperature-sensor@4c {
-                               compatible = "ti,tmp423";
+                               compatible = "ti,tmp432";
                                reg = <0x4c>;
                        };
                };
index 0dea014e4f30f3ac641f4386e101b0c6621b027e..78a5656ef75d9ca6f8973a2f18750f534cebe99f 100644 (file)
        memory-region = <&gfx_memory>;
 };
 
-&pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-};
-
 &wdt1 {
        aspeed,reset-type = "none";
        aspeed,external-signal;
index 5a98a19f445e038c4ababe1cfc3966972f2b156e..7a78c34cff407ef9cb284cd12532da4f64e67f74 100644 (file)
        status = "okay";
 };
 
-&pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-};
-
 &pwm_tacho {
        status = "okay";
        pinctrl-names = "default";
index d5b7d28cda887ca3521e01a07c0ea0ae209d1e0e..da55e7b29fac5abe591bc84dfdaa43d94d6b48b8 100644 (file)
        status = "okay";
 };
 
-&pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-};
-
 &pwm_tacho {
        status = "okay";
        pinctrl-names = "default";
index c0847636f20b908b8069b842a6043e10e07cc21a..370738572a55b2498fff31a4aabf336cc41e1eac 100644 (file)
        status = "okay";
 };
 
-&pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-};
-
 &gpio {
        pin_gpio_b0 {
                gpio-hog;
index ac0d666ca10ef477e2d87ca0f2b9a41820cdf507..b1d0ff85d397adf0cc4b5c75e04ff49a5419e2e2 100644 (file)
        memory-region = <&gfx_memory>;
 };
 
-&pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-};
-
 &ibt {
        status = "okay";
 };
index 893e621ecab11722971b253a9817eefae35b9558..24df24ad9c80b1f377d82e57fa8ea899988548a7 100644 (file)
        memory-region = <&gfx_memory>;
 };
 
-&pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-};
-
 &pwm_tacho {
        status = "okay";
        pinctrl-names = "default";
index bbf864f84d37f22225fcd502ded080512b6dc5ca..a0e8c97e944ac90af844dff7820fc0b3748d720d 100644 (file)
        memory-region = <&gfx_memory>;
 };
 
-&pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-};
-
 &wdt1 {
        aspeed,reset-type = "none";
        aspeed,external-signal;
index 213023bc5aec4144751c9e7bc8e3e05c156386c8..b31eb8e58c6b4781af7569ea64afb01debd6cfba 100644 (file)
                    <&pinctrl_lsirq_default>;
 };
 
-&xdma {
-       status = "okay";
-       memory-region = <&vga_memory>;
-};
-
 &kcs2 {
        status = "okay";
        aspeed,lpc-io-reg = <0xca8 0xcac>;
index a20a532fc2805fe17726969bba611ee173866705..8b1e82c8cdfed4af658c504b5e67649817ea65c4 100644 (file)
        memory-region = <&gfx_memory>;
 };
 
-&pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-};
-
 &wdt1 {
        aspeed,reset-type = "none";
        aspeed,external-signal;
        memory-region = <&video_engine_memory>;
 };
 
-&xdma {
-       status = "okay";
-       memory-region = <&vga_memory>;
-};
-
 #include "ibm-power9-dual.dtsi"
index 3d2d8db73ca6601a26c93d360b7a093a7e5a1f3c..9904f0a58cfac61ed2479f439ab64fbaddb094cf 100644 (file)
 };
 
 &pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-
        pinctrl_gpioh_unbiased: gpioi_unbiased {
                pins = "A8", "C7", "B7", "A7", "D7", "B6", "A6", "E7";
                bias-disable;
index 50f3c6a5c0c8dfa592b643058420d1d893b35ec2..b961dff388d1073c7618ea778f27c75b2d959c84 100644 (file)
        status = "okay";
 };
 
-&pinctrl {
-       aspeed,external-nodes = <&gfx &lhc>;
-};
-
 &pwm_tacho {
        status = "okay";
        pinctrl-names = "default";
index c669ec202085924b9c59a3860cb297a91144a151..78c967812492892aec508f627bd8f654a24c3430 100644 (file)
                        reg = <0x1e6c0080 0x80>;
                };
 
-               cvic: copro-interrupt-controller@1e6c2000 {
-                       compatible = "aspeed,ast2400-cvic", "aspeed-cvic";
+               cvic: interrupt-controller@1e6c2000 {
+                       compatible = "aspeed,ast2400-cvic", "aspeed,cvic";
                        valid-sources = <0x7fffffff>;
                        reg = <0x1e6c2000 0x80>;
                };
                        sram: sram@1e720000 {
                                compatible = "mmio-sram";
                                reg = <0x1e720000 0x8000>;      // 32K
+                               ranges;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
                        };
 
                        video: video@1e700000 {
index 6e05cbcce49cac50f2d3a1c293e56bdd2aed1388..57a699a7c1499e9a84ab6aa3b34371c75522df17 100644 (file)
                        reg = <0x1e6c0080 0x80>;
                };
 
-               cvic: copro-interrupt-controller@1e6c2000 {
-                       compatible = "aspeed,ast2500-cvic", "aspeed-cvic";
+               cvic: interrupt-controller@1e6c2000 {
+                       compatible = "aspeed,ast2500-cvic", "aspeed,cvic";
                        valid-sources = <0xffffffff>;
                        copro-sw-interrupts = <1>;
                        reg = <0x1e6c2000 0x80>;
                                interrupts = <0x19>;
                        };
 
-                       xdma: xdma@1e6e7000 {
-                               compatible = "aspeed,ast2500-xdma";
-                               reg = <0x1e6e7000 0x100>;
-                               clocks = <&syscon ASPEED_CLK_GATE_BCLK>;
-                               resets = <&syscon ASPEED_RESET_XDMA>;
-                               interrupts-extended = <&vic 6>, <&scu_ic ASPEED_AST2500_SCU_IC_PCIE_RESET_LO_TO_HI>;
-                               aspeed,pcie-device = "bmc";
-                               aspeed,scu = <&syscon>;
-                               status = "disabled";
-                       };
-
                        adc: adc@1e6e9000 {
                                compatible = "aspeed,ast2500-adc";
                                reg = <0x1e6e9000 0xb0>;
                        sram: sram@1e720000 {
                                compatible = "mmio-sram";
                                reg = <0x1e720000 0x9000>;      // 36K
+                               ranges;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
                        };
 
                        sdmmc: sd-controller@1e740000 {
index 0c00882f111aa3f23f120574f0ac208273bd44a2..8ed715bd53aab2dccc48aa1109925ef1065c8c13 100644 (file)
                        resets = <&syscon ASPEED_RESET_MII>;
                };
 
-               mac0: ftgmac@1e660000 {
+               mac0: ethernet@1e660000 {
                        compatible = "aspeed,ast2600-mac", "faraday,ftgmac100";
                        reg = <0x1e660000 0x180>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>;
                        status = "disabled";
                };
 
-               mac1: ftgmac@1e680000 {
+               mac1: ethernet@1e680000 {
                        compatible = "aspeed,ast2600-mac", "faraday,ftgmac100";
                        reg = <0x1e680000 0x180>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&syscon ASPEED_CLK_GATE_MAC2CLK>;
                        status = "disabled";
                };
 
-               mac2: ftgmac@1e670000 {
+               mac2: ethernet@1e670000 {
                        compatible = "aspeed,ast2600-mac", "faraday,ftgmac100";
                        reg = <0x1e670000 0x180>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&syscon ASPEED_CLK_GATE_MAC3CLK>;
                        status = "disabled";
                };
 
-               mac3: ftgmac@1e690000 {
+               mac3: ethernet@1e690000 {
                        compatible = "aspeed,ast2600-mac", "faraday,ftgmac100";
                        reg = <0x1e690000 0x180>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&syscon ASPEED_CLK_GATE_MAC4CLK>;
                        status = "disabled";
                                interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       xdma: xdma@1e6e7000 {
-                               compatible = "aspeed,ast2600-xdma";
-                               reg = <0x1e6e7000 0x100>;
-                               clocks = <&syscon ASPEED_CLK_GATE_BCLK>;
-                               resets = <&syscon ASPEED_RESET_DEV_XDMA>, <&syscon ASPEED_RESET_RC_XDMA>;
-                               reset-names = "device", "root-complex";
-                               interrupts-extended = <&gic GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
-                                                     <&scu_ic0 ASPEED_AST2600_SCU_IC0_PCIE_PERST_LO_TO_HI>;
-                               aspeed,pcie-device = "bmc";
-                               aspeed,scu = <&syscon>;
-                               status = "disabled";
-                       };
-
                        adc0: adc@1e6e9000 {
                                compatible = "aspeed,ast2600-adc0";
                                reg = <0x1e6e9000 0x100>;
diff --git a/src/arm/aspeed/ibm-power11-quad.dtsi b/src/arm/aspeed/ibm-power11-quad.dtsi
new file mode 100644 (file)
index 0000000..68c941a
--- /dev/null
@@ -0,0 +1,1539 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// Copyright 2024 IBM Corp.
+
+/ {
+       aliases {
+               i2c100 = &cfam0_i2c0;
+               i2c101 = &cfam0_i2c1;
+               i2c110 = &cfam0_i2c10;
+               i2c111 = &cfam0_i2c11;
+               i2c112 = &cfam0_i2c12;
+               i2c113 = &cfam0_i2c13;
+               i2c114 = &cfam0_i2c14;
+               i2c115 = &cfam0_i2c15;
+               i2c202 = &cfam1_i2c2;
+               i2c203 = &cfam1_i2c3;
+               i2c210 = &cfam1_i2c10;
+               i2c211 = &cfam1_i2c11;
+               i2c214 = &cfam1_i2c14;
+               i2c215 = &cfam1_i2c15;
+               i2c216 = &cfam1_i2c16;
+               i2c217 = &cfam1_i2c17;
+               i2c300 = &cfam2_i2c0;
+               i2c301 = &cfam2_i2c1;
+               i2c310 = &cfam2_i2c10;
+               i2c311 = &cfam2_i2c11;
+               i2c312 = &cfam2_i2c12;
+               i2c313 = &cfam2_i2c13;
+               i2c314 = &cfam2_i2c14;
+               i2c315 = &cfam2_i2c15;
+               i2c402 = &cfam3_i2c2;
+               i2c403 = &cfam3_i2c3;
+               i2c410 = &cfam3_i2c10;
+               i2c411 = &cfam3_i2c11;
+               i2c414 = &cfam3_i2c14;
+               i2c415 = &cfam3_i2c15;
+               i2c416 = &cfam3_i2c16;
+               i2c417 = &cfam3_i2c17;
+
+               sbefifo100 = &sbefifo100;
+               sbefifo101 = &sbefifo101;
+               sbefifo110 = &sbefifo110;
+               sbefifo111 = &sbefifo111;
+               sbefifo112 = &sbefifo112;
+               sbefifo113 = &sbefifo113;
+               sbefifo114 = &sbefifo114;
+               sbefifo115 = &sbefifo115;
+               sbefifo202 = &sbefifo202;
+               sbefifo203 = &sbefifo203;
+               sbefifo210 = &sbefifo210;
+               sbefifo211 = &sbefifo211;
+               sbefifo214 = &sbefifo214;
+               sbefifo215 = &sbefifo215;
+               sbefifo216 = &sbefifo216;
+               sbefifo217 = &sbefifo217;
+               sbefifo300 = &sbefifo300;
+               sbefifo301 = &sbefifo301;
+               sbefifo310 = &sbefifo310;
+               sbefifo311 = &sbefifo311;
+               sbefifo312 = &sbefifo312;
+               sbefifo313 = &sbefifo313;
+               sbefifo314 = &sbefifo314;
+               sbefifo315 = &sbefifo315;
+               sbefifo402 = &sbefifo402;
+               sbefifo403 = &sbefifo403;
+               sbefifo410 = &sbefifo410;
+               sbefifo411 = &sbefifo411;
+               sbefifo414 = &sbefifo414;
+               sbefifo415 = &sbefifo415;
+               sbefifo416 = &sbefifo416;
+               sbefifo417 = &sbefifo417;
+
+               scom100 = &scom100;
+               scom101 = &scom101;
+               scom110 = &scom110;
+               scom111 = &scom111;
+               scom112 = &scom112;
+               scom113 = &scom113;
+               scom114 = &scom114;
+               scom115 = &scom115;
+               scom202 = &scom202;
+               scom203 = &scom203;
+               scom210 = &scom210;
+               scom211 = &scom211;
+               scom214 = &scom214;
+               scom215 = &scom215;
+               scom216 = &scom216;
+               scom217 = &scom217;
+               scom300 = &scom300;
+               scom301 = &scom301;
+               scom310 = &scom310;
+               scom311 = &scom311;
+               scom312 = &scom312;
+               scom313 = &scom313;
+               scom314 = &scom314;
+               scom315 = &scom315;
+               scom402 = &scom402;
+               scom403 = &scom403;
+               scom410 = &scom410;
+               scom411 = &scom411;
+               scom414 = &scom414;
+               scom415 = &scom415;
+               scom416 = &scom416;
+               scom417 = &scom417;
+
+               spi10 = &cfam0_spi0;
+               spi11 = &cfam0_spi1;
+               spi12 = &cfam0_spi2;
+               spi13 = &cfam0_spi3;
+               spi20 = &cfam1_spi0;
+               spi21 = &cfam1_spi1;
+               spi22 = &cfam1_spi2;
+               spi23 = &cfam1_spi3;
+               spi30 = &cfam2_spi0;
+               spi31 = &cfam2_spi1;
+               spi32 = &cfam2_spi2;
+               spi33 = &cfam2_spi3;
+               spi40 = &cfam3_spi0;
+               spi41 = &cfam3_spi1;
+               spi42 = &cfam3_spi2;
+               spi43 = &cfam3_spi3;
+       };
+};
+
+&fsim0 {
+       #address-cells = <2>;
+       #size-cells = <0>;
+       status = "okay";
+       bus-frequency = <100000000>;
+       cfam-reset-gpios = <&gpio0 ASPEED_GPIO(Q, 0) GPIO_ACTIVE_HIGH>;
+
+       cfam@0,0 {
+               reg = <0 0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               chip-id = <0>;
+
+               scom@1000 {
+                       compatible = "ibm,p9-scom";
+                       reg = <0x1000 0x400>;
+               };
+
+               i2c@1800 {
+                       compatible = "ibm,i2c-fsi";
+                       reg = <0x1800 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam0_i2c0: i2c-bus@0 {
+                               reg = <0>;      /* OMI01 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom100: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo100: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam0_i2c1: i2c-bus@1 {
+                               reg = <1>;      /* OMI23 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom101: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo101: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam0_i2c10: i2c-bus@a {
+                               reg = <10>;     /* OP3A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom110: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo110: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam0_i2c11: i2c-bus@b {
+                               reg = <11>;     /* OP3B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom111: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo111: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam0_i2c12: i2c-bus@c {
+                               reg = <12>;     /* OP4A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom112: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo112: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam0_i2c13: i2c-bus@d {
+                               reg = <13>;     /* OP4B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom113: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo113: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam0_i2c14: i2c-bus@e {
+                               reg = <14>;     /* OP5A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom114: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo114: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam0_i2c15: i2c-bus@f {
+                               reg = <15>;     /* OP5B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom115: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo115: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               fsi2spi@1c00 {
+                       compatible = "ibm,fsi2spi";
+                       reg = <0x1c00 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam0_spi0: spi@0 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam0_spi1: spi@20 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x20>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam0_spi2: spi@40 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x40>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam0_spi3: spi@60 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+               };
+
+               sbefifo@2400 {
+                       compatible = "ibm,p9-sbefifo";
+                       reg = <0x2400 0x400>;
+
+                       occ {
+                               compatible = "ibm,p10-occ";
+
+                               hwmon {
+                                       compatible = "ibm,p10-occ-hwmon";
+                                       ibm,no-poll-on-init;
+                               };
+                       };
+               };
+
+               fsi_hub0: fsi@3400 {
+                       compatible = "ibm,p9-fsi-controller";
+                       reg = <0x3400 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+&fsi_hub0 {
+       cfam@1,0 {
+               reg = <1 0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               chip-id = <1>;
+
+               scom@1000 {
+                       compatible = "ibm,p9-scom";
+                       reg = <0x1000 0x400>;
+               };
+
+               i2c@1800 {
+                       compatible = "ibm,i2c-fsi";
+                       reg = <0x1800 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam1_i2c2: i2c-bus@2 {
+                               reg = <2>;      /* OMI45 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom202: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo202: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam1_i2c3: i2c-bus@3 {
+                               reg = <3>;      /* OMI67 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom203: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo203: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam1_i2c10: i2c-bus@a {
+                               reg = <10>;     /* OP3A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom210: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo210: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam1_i2c11: i2c-bus@b {
+                               reg = <11>;     /* OP3B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom211: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo211: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam1_i2c14: i2c-bus@e {
+                               reg = <14>;     /* OP5A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom214: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo214: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam1_i2c15: i2c-bus@f {
+                               reg = <15>;     /* OP5B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom215: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo215: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam1_i2c16: i2c-bus@10 {
+                               reg = <16>;     /* OP6A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom216: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo216: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam1_i2c17: i2c-bus@11 {
+                               reg = <17>;     /* OP6B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom217: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo217: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               fsi2spi@1c00 {
+                       compatible = "ibm,fsi2spi";
+                       reg = <0x1c00 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam1_spi0: spi@0 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam1_spi1: spi@20 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x20>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam1_spi2: spi@40 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x40>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam1_spi3: spi@60 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+               };
+
+               sbefifo@2400 {
+                       compatible = "ibm,p9-sbefifo";
+                       reg = <0x2400 0x400>;
+
+                       occ {
+                               compatible = "ibm,p10-occ";
+
+                               hwmon {
+                                       compatible = "ibm,p10-occ-hwmon";
+                                       ibm,no-poll-on-init;
+                               };
+                       };
+               };
+
+               fsi@3400 {
+                       compatible = "ibm,p9-fsi-controller";
+                       reg = <0x3400 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       no-scan-on-init;
+               };
+       };
+
+       cfam@2,0 {
+               reg = <2 0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               chip-id = <2>;
+
+               scom@1000 {
+                       compatible = "ibm,p9-scom";
+                       reg = <0x1000 0x400>;
+               };
+
+               i2c@1800 {
+                       compatible = "ibm,i2c-fsi";
+                       reg = <0x1800 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam2_i2c0: i2c-bus@0 {
+                               reg = <0>;      /* OM01 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom300: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo300: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam2_i2c1: i2c-bus@1 {
+                               reg = <1>;      /* OM23 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom301: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo301: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam2_i2c10: i2c-bus@a {
+                               reg = <10>;     /* OP3A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom310: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo310: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam2_i2c11: i2c-bus@b {
+                               reg = <11>;     /* OP3B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom311: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo311: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam2_i2c12: i2c-bus@c {
+                               reg = <12>;     /* OP4A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom312: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo312: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam2_i2c13: i2c-bus@d {
+                               reg = <13>;     /* OP4B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom313: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo313: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam2_i2c14: i2c-bus@e {
+                               reg = <14>;     /* OP5A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom314: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo314: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam2_i2c15: i2c-bus@f {
+                               reg = <15>;     /* OP5B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom315: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo315: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               fsi2spi@1c00 {
+                       compatible = "ibm,fsi2spi";
+                       reg = <0x1c00 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam2_spi0: spi@0 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam2_spi1: spi@20 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x20>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam2_spi2: spi@40 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x40>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam2_spi3: spi@60 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+               };
+
+               sbefifo@2400 {
+                       compatible = "ibm,p9-sbefifo";
+                       reg = <0x2400 0x400>;
+
+                       occ {
+                               compatible = "ibm,p10-occ";
+
+                               hwmon {
+                                       compatible = "ibm,p10-occ-hwmon";
+                                       ibm,no-poll-on-init;
+                               };
+                       };
+               };
+
+               fsi@3400 {
+                       compatible = "ibm,p9-fsi-controller";
+                       reg = <0x3400 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       no-scan-on-init;
+               };
+       };
+
+       cfam@3,0 {
+               reg = <3 0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               chip-id = <3>;
+
+               scom@1000 {
+                       compatible = "ibm,p9-scom";
+                       reg = <0x1000 0x400>;
+               };
+
+               i2c@1800 {
+                       compatible = "ibm,i2c-fsi";
+                       reg = <0x1800 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam3_i2c2: i2c-bus@2 {
+                               reg = <2>;      /* OM45 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom402: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo402: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam3_i2c3: i2c-bus@3 {
+                               reg = <3>;      /* OM67 */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom403: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo403: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam3_i2c10: i2c-bus@a {
+                               reg = <10>;     /* OP3A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom410: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo410: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam3_i2c11: i2c-bus@b {
+                               reg = <11>;     /* OP3B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom411: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo411: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam3_i2c14: i2c-bus@e {
+                               reg = <14>;     /* OP5A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom414: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo414: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam3_i2c15: i2c-bus@f {
+                               reg = <15>;     /* OP5B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom415: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo415: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam3_i2c16: i2c-bus@10 {
+                               reg = <16>;     /* OP6A */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom416: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo416: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       cfam3_i2c17: i2c-bus@11 {
+                               reg = <17>;     /* OP6B */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               fsi@20 {
+                                       compatible = "ibm,i2cr-fsi-master";
+                                       reg = <0x20>;
+                                       #address-cells = <2>;
+                                       #size-cells = <0>;
+
+                                       cfam@0,0 {
+                                               reg = <0 0>;
+                                               #address-cells = <1>;
+                                               #size-cells = <1>;
+                                               chip-id = <0>;
+
+                                               scom417: scom@1000 {
+                                                       compatible = "ibm,i2cr-scom";
+                                                       reg = <0x1000 0x400>;
+                                               };
+
+                                               sbefifo417: sbefifo@2400 {
+                                                       compatible = "ibm,odyssey-sbefifo";
+                                                       reg = <0x2400 0x400>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               fsi2spi@1c00 {
+                       compatible = "ibm,fsi2spi";
+                       reg = <0x1c00 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cfam3_spi0: spi@0 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam3_spi1: spi@20 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x20>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam3_spi2: spi@40 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x40>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+
+                       cfam3_spi3: spi@60 {
+                               compatible = "ibm,spi-fsi";
+                               reg = <0x60>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               eeprom@0 {
+                                       compatible = "atmel,at25";
+                                       reg = <0>;
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
+                                       spi-max-frequency = <10000000>;
+                               };
+                       };
+               };
+
+               sbefifo@2400 {
+                       compatible = "ibm,p9-sbefifo";
+                       reg = <0x2400 0x400>;
+
+                       occ {
+                               compatible = "ibm,p10-occ";
+
+                               hwmon {
+                                       compatible = "ibm,p10-occ-hwmon";
+                                       ibm,no-poll-on-init;
+                               };
+                       };
+               };
+
+               fsi@3400 {
+                       compatible = "ibm,p9-fsi-controller";
+                       reg = <0x3400 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       no-scan-on-init;
+               };
+       };
+};
index 8789fae178bf80b8d1ee9c1074f725271935db23..4f8ddc1b3ab7b45768124b74483a81c76c7e1a5d 100644 (file)
        model = "BCM21664 Garnet board";
        compatible = "brcm,bcm21664-garnet", "brcm,bcm21664";
 
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+       };
+
        memory@80000000 {
                device_type = "memory";
                reg = <0x80000000 0x40000000>; /* 1 GB */
index fa73600e883e70895defa730683db72f8118f90b..f0d0300079b60dde0c173fc1a82428109cda4791 100644 (file)
@@ -1,21 +1,11 @@
 // SPDX-License-Identifier: GPL-2.0-only
 // Copyright (C) 2014 Broadcom Corporation
 
-#include <dt-bindings/clock/bcm21664.h>
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-#include <dt-bindings/interrupt-controller/irq.h>
+#include "bcm2166x-common.dtsi"
 
 / {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       model = "BCM21664 SoC";
-       compatible = "brcm,bcm21664";
        interrupt-parent = <&gic>;
 
-       chosen {
-               bootargs = "console=ttyS0,115200n8";
-       };
-
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
                        reg = <1>;
                };
        };
+};
 
-       gic: interrupt-controller@3ff00100 {
-               compatible = "arm,cortex-a9-gic";
-               #interrupt-cells = <3>;
-               #address-cells = <0>;
-               interrupt-controller;
-               reg = <0x3ff01000 0x1000>,
-                     <0x3ff00100 0x100>;
-       };
-
-       smc@3404e000 {
-               compatible = "brcm,bcm21664-smc", "brcm,kona-smc";
-               reg = <0x3404e000 0x400>; /* 1 KiB in SRAM */
-       };
-
-       uartb: serial@3e000000 {
-               compatible = "brcm,bcm21664-dw-apb-uart", "snps,dw-apb-uart";
-               reg = <0x3e000000 0x118>;
-               clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB>;
-               interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
-               reg-shift = <2>;
-               reg-io-width = <4>;
-               status = "disabled";
-       };
-
-       uartb2: serial@3e001000 {
-               compatible = "brcm,bcm21664-dw-apb-uart", "snps,dw-apb-uart";
-               reg = <0x3e001000 0x118>;
-               clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB2>;
-               interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
-               reg-shift = <2>;
-               reg-io-width = <4>;
-               status = "disabled";
-       };
-
-       uartb3: serial@3e002000 {
-               compatible = "brcm,bcm21664-dw-apb-uart", "snps,dw-apb-uart";
-               reg = <0x3e002000 0x118>;
-               clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB3>;
-               interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
-               reg-shift = <2>;
-               reg-io-width = <4>;
-               status = "disabled";
-       };
-
-       L2: cache-controller@3ff20000 {
-               compatible = "arm,pl310-cache";
-               reg = <0x3ff20000 0x1000>;
-               cache-unified;
-               cache-level = <2>;
-       };
-
-       brcm,resetmgr@35001f00 {
-               compatible = "brcm,bcm21664-resetmgr";
-               reg = <0x35001f00 0x24>;
-       };
-
-       timer@35006000 {
-               compatible = "brcm,kona-timer";
-               reg = <0x35006000 0x1c>;
-               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&aon_ccu BCM21664_AON_CCU_HUB_TIMER>;
-       };
-
-       gpio: gpio@35003000 {
-               compatible = "brcm,bcm21664-gpio", "brcm,kona-gpio";
-               reg = <0x35003000 0x524>;
-               interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
-               #gpio-cells = <2>;
-               #interrupt-cells = <2>;
-               gpio-controller;
-               interrupt-controller;
-       };
-
-       sdio1: mmc@3f180000 {
-               compatible = "brcm,kona-sdhci";
-               reg = <0x3f180000 0x801c>;
-               interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO1>;
-               status = "disabled";
-       };
-
-       sdio2: mmc@3f190000 {
-               compatible = "brcm,kona-sdhci";
-               reg = <0x3f190000 0x801c>;
-               interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO2>;
-               status = "disabled";
-       };
-
-       sdio3: mmc@3f1a0000 {
-               compatible = "brcm,kona-sdhci";
-               reg = <0x3f1a0000 0x801c>;
-               interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO3>;
-               status = "disabled";
-       };
-
-       sdio4: mmc@3f1b0000 {
-               compatible = "brcm,kona-sdhci";
-               reg = <0x3f1b0000 0x801c>;
-               interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO4>;
-               status = "disabled";
-       };
-
-       bsc1: i2c@3e016000 {
-               compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c";
-               reg = <0x3e016000 0x70>;
-               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC1>;
-               status = "disabled";
-       };
-
-       bsc2: i2c@3e017000 {
-               compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c";
-               reg = <0x3e017000 0x70>;
-               interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC2>;
-               status = "disabled";
-       };
-
-       bsc3: i2c@3e018000 {
-               compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c";
-               reg = <0x3e018000 0x70>;
-               interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC3>;
-               status = "disabled";
-       };
-
-       bsc4: i2c@3e01c000 {
-               compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c";
-               reg = <0x3e01c000 0x70>;
-               interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC4>;
-               status = "disabled";
-       };
-
-       clocks {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-
-               /*
-                * Fixed clocks are defined before CCUs whose
-                * clocks may depend on them.
-                */
-
-               ref_32k_clk: ref_32k {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <32768>;
-               };
-
-               bbl_32k_clk: bbl_32k {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <32768>;
-               };
-
-               ref_13m_clk: ref_13m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <13000000>;
-               };
-
-               var_13m_clk: var_13m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <13000000>;
-               };
-
-               dft_19_5m_clk: dft_19_5m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <19500000>;
-               };
-
-               ref_crystal_clk: ref_crystal {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <26000000>;
-               };
-
-               ref_52m_clk: ref_52m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <52000000>;
-               };
-
-               var_52m_clk: var_52m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <52000000>;
-               };
-
-               usb_otg_ahb_clk: usb_otg_ahb {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <52000000>;
-               };
-
-               ref_96m_clk: ref_96m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <96000000>;
-               };
-
-               var_96m_clk: var_96m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <96000000>;
-               };
-
-               ref_104m_clk: ref_104m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <104000000>;
-               };
-
-               var_104m_clk: var_104m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <104000000>;
-               };
-
-               ref_156m_clk: ref_156m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <156000000>;
+&apps {
+               gic: interrupt-controller@1c01000 {
+                       compatible = "arm,cortex-a9-gic";
+                       #interrupt-cells = <3>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       reg = <0x01c01000 0x1000>,
+                                 <0x01c00100 0x100>;
                };
 
-               var_156m_clk: var_156m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <156000000>;
+               L2: cache-controller@1c20000 {
+                       compatible = "arm,pl310-cache";
+                       reg = <0x01c20000 0x1000>;
+                       cache-unified;
+                       cache-level = <2>;
                };
+};
 
-               root_ccu: root_ccu@35001000 {
-                       compatible = "brcm,bcm21664-root-ccu";
-                       reg = <0x35001000 0x0f00>;
-                       #clock-cells = <1>;
-                       clock-output-names = "frac_1m";
-               };
+&bsc1 {
+       compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c";
+};
 
-               aon_ccu: aon_ccu@35002000 {
-                       compatible = "brcm,bcm21664-aon-ccu";
-                       reg = <0x35002000 0x0f00>;
-                       #clock-cells = <1>;
-                       clock-output-names = "hub_timer";
-               };
+&bsc2 {
+       compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c";
+};
 
-               master_ccu: master_ccu@3f001000 {
-                       compatible = "brcm,bcm21664-master-ccu";
-                       reg = <0x3f001000 0x0f00>;
-                       #clock-cells = <1>;
-                       clock-output-names = "sdio1",
-                                            "sdio2",
-                                            "sdio3",
-                                            "sdio4",
-                                            "sdio1_sleep",
-                                            "sdio2_sleep",
-                                            "sdio3_sleep",
-                                            "sdio4_sleep";
-               };
+&bsc3 {
+       compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c";
+};
 
-               slave_ccu: slave_ccu@3e011000 {
-                       compatible = "brcm,bcm21664-slave-ccu";
-                       reg = <0x3e011000 0x0f00>;
-                       #clock-cells = <1>;
-                       clock-output-names = "uartb",
-                                            "uartb2",
-                                            "uartb3",
-                                            "bsc1",
-                                            "bsc2",
-                                            "bsc3",
-                                            "bsc4";
-               };
-       };
+&bsc4 {
+       compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c";
+};
 
-       usbotg: usb@3f120000 {
-               compatible = "snps,dwc2";
-               reg = <0x3f120000 0x10000>;
-               interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&usb_otg_ahb_clk>;
-               clock-names = "otg";
-               phys = <&usbphy>;
-               phy-names = "usb2-phy";
-               status = "disabled";
-       };
+&gpio {
+       compatible = "brcm,bcm21664-gpio", "brcm,kona-gpio";
+};
 
-       usbphy: usb-phy@3f130000 {
-               compatible = "brcm,kona-usb2-phy";
-               reg = <0x3f130000 0x28>;
-               #phy-cells = <0>;
-               status = "disabled";
-       };
+&smc {
+       compatible = "brcm,bcm21664-smc", "brcm,kona-smc";
 };
diff --git a/src/arm/broadcom/bcm2166x-common.dtsi b/src/arm/broadcom/bcm2166x-common.dtsi
new file mode 100644 (file)
index 0000000..87180b7
--- /dev/null
@@ -0,0 +1,334 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Common device tree for components shared between the BCM21664 and BCM23550
+ * SoCs.
+ *
+ * Copyright (C) 2016 Broadcom
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/clock/bcm21664.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       /* Hub bus */
+       hub: hub-bus@34000000 {
+               compatible = "simple-bus";
+               ranges = <0 0x34000000 0x102f83ac>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               smc: smc@4e000 {
+                       /* Compatible filled by SoC DTSI */
+                       reg = <0x0004e000 0x400>; /* 1 KiB in SRAM */
+               };
+
+               resetmgr: reset-controller@1001f00 {
+                       compatible = "brcm,bcm21664-resetmgr";
+                       reg = <0x01001f00 0x24>;
+               };
+
+               gpio: gpio@1003000 {
+                       /* Compatible filled by SoC DTSI */
+                       reg = <0x01003000 0x524>;
+                       interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       #interrupt-cells = <2>;
+                       gpio-controller;
+                       interrupt-controller;
+               };
+
+               timer@1006000 {
+                       compatible = "brcm,kona-timer";
+                       reg = <0x01006000 0x1c>;
+                       interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&aon_ccu BCM21664_AON_CCU_HUB_TIMER>;
+               };
+       };
+
+       /* Slaves bus */
+       slaves: slaves-bus@3e000000 {
+               compatible = "simple-bus";
+               ranges = <0 0x3e000000 0x0001c070>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               uartb: serial@0 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x00000000 0x118>;
+                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB>;
+                       interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       status = "disabled";
+               };
+
+               uartb2: serial@1000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x00001000 0x118>;
+                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB2>;
+                       interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       status = "disabled";
+               };
+
+               uartb3: serial@2000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x00002000 0x118>;
+                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB3>;
+                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       status = "disabled";
+               };
+
+               bsc1: i2c@16000 {
+                       /* Compatible filled by SoC DTSI */
+                       reg = <0x00016000 0x70>;
+                       interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC1>;
+                       status = "disabled";
+               };
+
+               bsc2: i2c@17000 {
+                       /* Compatible filled by SoC DTSI */
+                       reg = <0x00017000 0x70>;
+                       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC2>;
+                       status = "disabled";
+               };
+
+               bsc3: i2c@18000 {
+                       /* Compatible filled by SoC DTSI */
+                       reg = <0x00018000 0x70>;
+                       interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC3>;
+                       status = "disabled";
+               };
+
+               bsc4: i2c@1c000 {
+                       /* Compatible filled by SoC DTSI */
+                       reg = <0x0001c000 0x70>;
+                       interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC4>;
+                       status = "disabled";
+               };
+       };
+
+       /* Apps bus */
+       apps: apps-bus@3e300000 {
+               compatible = "simple-bus";
+               ranges = <0 0x3e300000 0x01c02000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               usbotg: usb@e20000 {
+                       compatible = "snps,dwc2";
+                       reg = <0x00e20000 0x10000>;
+                       interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&usb_otg_ahb_clk>;
+                       clock-names = "otg";
+                       phys = <&usbphy>;
+                       phy-names = "usb2-phy";
+                       status = "disabled";
+               };
+
+               usbphy: usb-phy@e30000 {
+                       compatible = "brcm,kona-usb2-phy";
+                       reg = <0x00e30000 0x28>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               sdio1: mmc@e80000 {
+                       compatible = "brcm,kona-sdhci";
+                       reg = <0x00e80000 0x801c>;
+                       interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO1>;
+                       status = "disabled";
+               };
+
+               sdio2: mmc@e90000 {
+                       compatible = "brcm,kona-sdhci";
+                       reg = <0x00e90000 0x801c>;
+                       interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO2>;
+                       status = "disabled";
+               };
+
+               sdio3: mmc@ea0000 {
+                       compatible = "brcm,kona-sdhci";
+                       reg = <0x00ea0000 0x801c>;
+                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO3>;
+                       status = "disabled";
+               };
+
+               sdio4: mmc@eb0000 {
+                       compatible = "brcm,kona-sdhci";
+                       reg = <0x00eb0000 0x801c>;
+                       interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO4>;
+                       status = "disabled";
+               };
+       };
+
+       clocks {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               /*
+                * Fixed clocks are defined before CCUs whose
+                * clocks may depend on them.
+                */
+
+               ref_32k_clk: ref_32k {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <32768>;
+               };
+
+               bbl_32k_clk: bbl_32k {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <32768>;
+               };
+
+               ref_13m_clk: ref_13m {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <13000000>;
+               };
+
+               var_13m_clk: var_13m {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <13000000>;
+               };
+
+               dft_19_5m_clk: dft_19_5m {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <19500000>;
+               };
+
+               ref_crystal_clk: ref_crystal {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <26000000>;
+               };
+
+               ref_52m_clk: ref_52m {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <52000000>;
+               };
+
+               var_52m_clk: var_52m {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <52000000>;
+               };
+
+               usb_otg_ahb_clk: usb_otg_ahb {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <52000000>;
+               };
+
+               ref_96m_clk: ref_96m {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <96000000>;
+               };
+
+               var_96m_clk: var_96m {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <96000000>;
+               };
+
+               ref_104m_clk: ref_104m {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <104000000>;
+               };
+
+               var_104m_clk: var_104m {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <104000000>;
+               };
+
+               ref_156m_clk: ref_156m {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <156000000>;
+               };
+
+               var_156m_clk: var_156m {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <156000000>;
+               };
+
+               root_ccu: root_ccu@35001000 {
+                       compatible = "brcm,bcm21664-root-ccu";
+                       reg = <0x35001000 0x0f00>;
+                       #clock-cells = <1>;
+                       clock-output-names = "frac_1m";
+               };
+
+               aon_ccu: aon_ccu@35002000 {
+                       compatible = "brcm,bcm21664-aon-ccu";
+                       reg = <0x35002000 0x0f00>;
+                       #clock-cells = <1>;
+                       clock-output-names = "hub_timer";
+               };
+
+               slave_ccu: slave_ccu@3e011000 {
+                       compatible = "brcm,bcm21664-slave-ccu";
+                       reg = <0x3e011000 0x0f00>;
+                       #clock-cells = <1>;
+                       clock-output-names = "uartb",
+                                            "uartb2",
+                                            "uartb3",
+                                            "bsc1",
+                                            "bsc2",
+                                            "bsc3",
+                                            "bsc4";
+               };
+
+               master_ccu: master_ccu@3f001000 {
+                       compatible = "brcm,bcm21664-master-ccu";
+                       reg = <0x3f001000 0x0f00>;
+                       #clock-cells = <1>;
+                       clock-output-names = "sdio1",
+                                            "sdio2",
+                                            "sdio3",
+                                            "sdio4",
+                                            "sdio1_sleep",
+                                            "sdio2_sleep",
+                                            "sdio3_sleep",
+                                            "sdio4_sleep";
+               };
+       };
+};
index 50ebe93d6bd067bc0e89ce240613b8bdff94b6b7..c1c69381286ba2455358ced8d016559976e4255e 100644 (file)
@@ -1,45 +1,13 @@
+// SPDX-License-Identifier: BSD-3-Clause
 /*
- *  BSD LICENSE
+ * Device tree for the BCM23550 SoC.
  *
- *  Copyright(c) 2016 Broadcom.  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in
- *      the documentation and/or other materials provided with the
- *      distribution.
- *    * Neither the name of Broadcom Corporation nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Copyright (C) 2016 Broadcom
  */
 
-/* BCM23550 and BCM21664 have almost identical clocks */
-#include <dt-bindings/clock/bcm21664.h>
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-#include <dt-bindings/interrupt-controller/irq.h>
+#include "bcm2166x-common.dtsi"
 
 / {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       model = "BCM23550 SoC";
-       compatible = "brcm,bcm23550";
        interrupt-parent = <&gic>;
 
        cpus {
                        clock-frequency = <1000000000>;
                };
        };
+};
 
-       /* Hub bus */
-       hub@34000000 {
-               compatible = "simple-bus";
-               ranges = <0 0x34000000 0x102f83ac>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               smc@4e000 {
-                       compatible = "brcm,bcm23550-smc", "brcm,kona-smc";
-                       reg = <0x0004e000 0x400>; /* 1 KiB in SRAM */
-               };
-
-               resetmgr: reset-controller@1001f00 {
-                       compatible = "brcm,bcm21664-resetmgr";
-                       reg = <0x01001f00 0x24>;
-               };
-
-               gpio: gpio@1003000 {
-                       compatible = "brcm,bcm23550-gpio", "brcm,kona-gpio";
-                       reg = <0x01003000 0x524>;
-                       interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
-                       #gpio-cells = <2>;
-                       #interrupt-cells = <2>;
-                       gpio-controller;
-                       interrupt-controller;
-               };
-
-               timer@1006000 {
-                       compatible = "brcm,kona-timer";
-                       reg = <0x01006000 0x1c>;
-                       interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&aon_ccu BCM21664_AON_CCU_HUB_TIMER>;
-               };
-       };
-
-       /* Slaves bus */
-       slaves@3e000000 {
-               compatible = "simple-bus";
-               ranges = <0 0x3e000000 0x0001c070>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               uartb: serial@0 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x00000000 0x118>;
-                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB>;
-                       interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       status = "disabled";
-               };
-
-               uartb2: serial@1000 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x00001000 0x118>;
-                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB2>;
-                       interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       status = "disabled";
-               };
-
-               uartb3: serial@2000 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x00002000 0x118>;
-                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB3>;
-                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       status = "disabled";
-               };
-
-               bsc1: i2c@16000 {
-                       compatible = "brcm,bcm23550-i2c", "brcm,kona-i2c";
-                       reg = <0x00016000 0x70>;
-                       interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC1>;
-                       status = "disabled";
-               };
-
-               bsc2: i2c@17000 {
-                       compatible = "brcm,bcm23550-i2c", "brcm,kona-i2c";
-                       reg = <0x00017000 0x70>;
-                       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC2>;
-                       status = "disabled";
-               };
-
-               bsc3: i2c@18000 {
-                       compatible = "brcm,bcm23550-i2c", "brcm,kona-i2c";
-                       reg = <0x00018000 0x70>;
-                       interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC3>;
-                       status = "disabled";
-               };
-
-               bsc4: i2c@1c000 {
-                       compatible = "brcm,bcm23550-i2c", "brcm,kona-i2c";
-                       reg = <0x0001c000 0x70>;
-                       interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC4>;
-                       status = "disabled";
-               };
-       };
-
-       /* Apps bus */
-       apps@3e300000 {
-               compatible = "simple-bus";
-               ranges = <0 0x3e300000 0x01b77000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               usbotg: usb@e20000 {
-                       compatible = "snps,dwc2";
-                       reg = <0x00e20000 0x10000>;
-                       interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&usb_otg_ahb_clk>;
-                       clock-names = "otg";
-                       phys = <&usbphy>;
-                       phy-names = "usb2-phy";
-                       status = "disabled";
-               };
-
-               usbphy: usb-phy@e30000 {
-                       compatible = "brcm,kona-usb2-phy";
-                       reg = <0x00e30000 0x28>;
-                       #phy-cells = <0>;
-                       status = "disabled";
-               };
-
-               sdio1: mmc@e80000 {
-                       compatible = "brcm,kona-sdhci";
-                       reg = <0x00e80000 0x801c>;
-                       interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO1>;
-                       status = "disabled";
-               };
-
-               sdio2: mmc@e90000 {
-                       compatible = "brcm,kona-sdhci";
-                       reg = <0x00e90000 0x801c>;
-                       interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO2>;
-                       status = "disabled";
-               };
-
-               sdio3: mmc@ea0000 {
-                       compatible = "brcm,kona-sdhci";
-                       reg = <0x00ea0000 0x801c>;
-                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO3>;
-                       status = "disabled";
-               };
-
-               sdio4: mmc@eb0000 {
-                       compatible = "brcm,kona-sdhci";
-                       reg = <0x00eb0000 0x801c>;
-                       interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO4>;
-                       status = "disabled";
-               };
-
+&apps {
                cdc: cdc@1b0e000 {
                        compatible = "brcm,bcm23550-cdc";
                        reg = <0x01b0e000 0x78>;
                        reg = <0x01b21000 0x1000>,
                              <0x01b22000 0x1000>;
                };
-       };
-
-       clocks {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-
-               /*
-                * Fixed clocks are defined before CCUs whose
-                * clocks may depend on them.
-                */
-
-               ref_32k_clk: ref_32k {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <32768>;
-               };
-
-               bbl_32k_clk: bbl_32k {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <32768>;
-               };
-
-               ref_13m_clk: ref_13m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <13000000>;
-               };
-
-               var_13m_clk: var_13m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <13000000>;
-               };
-
-               dft_19_5m_clk: dft_19_5m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <19500000>;
-               };
-
-               ref_crystal_clk: ref_crystal {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <26000000>;
-               };
-
-               ref_52m_clk: ref_52m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <52000000>;
-               };
-
-               var_52m_clk: var_52m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <52000000>;
-               };
-
-               usb_otg_ahb_clk: usb_otg_ahb {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <52000000>;
-               };
-
-               ref_96m_clk: ref_96m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <96000000>;
-               };
-
-               var_96m_clk: var_96m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <96000000>;
-               };
-
-               ref_104m_clk: ref_104m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <104000000>;
-               };
-
-               var_104m_clk: var_104m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <104000000>;
-               };
+};
 
-               ref_156m_clk: ref_156m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <156000000>;
-               };
+&bsc1 {
+       compatible = "brcm,bcm23550-i2c", "brcm,kona-i2c";
+};
 
-               var_156m_clk: var_156m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <156000000>;
-               };
+&bsc2 {
+       compatible = "brcm,bcm23550-i2c", "brcm,kona-i2c";
+};
 
-               root_ccu: root_ccu@35001000 {
-                       compatible = "brcm,bcm21664-root-ccu";
-                       reg = <0x35001000 0x0f00>;
-                       #clock-cells = <1>;
-                       clock-output-names = "frac_1m";
-               };
+&bsc3 {
+       compatible = "brcm,bcm23550-i2c", "brcm,kona-i2c";
+};
 
-               aon_ccu: aon_ccu@35002000 {
-                       compatible = "brcm,bcm21664-aon-ccu";
-                       reg = <0x35002000 0x0f00>;
-                       #clock-cells = <1>;
-                       clock-output-names = "hub_timer";
-               };
+&bsc4 {
+       compatible = "brcm,bcm23550-i2c", "brcm,kona-i2c";
+};
 
-               slave_ccu: slave_ccu@3e011000 {
-                       compatible = "brcm,bcm21664-slave-ccu";
-                       reg = <0x3e011000 0x0f00>;
-                       #clock-cells = <1>;
-                       clock-output-names = "uartb",
-                                            "uartb2",
-                                            "uartb3",
-                                            "bsc1",
-                                            "bsc2",
-                                            "bsc3",
-                                            "bsc4";
-               };
+&gpio {
+       compatible = "brcm,bcm23550-gpio", "brcm,kona-gpio";
+};
 
-               master_ccu: master_ccu@3f001000 {
-                       compatible = "brcm,bcm21664-master-ccu";
-                       reg = <0x3f001000 0x0f00>;
-                       #clock-cells = <1>;
-                       clock-output-names = "sdio1",
-                                            "sdio2",
-                                            "sdio3",
-                                            "sdio4",
-                                            "sdio1_sleep",
-                                            "sdio2_sleep",
-                                            "sdio3_sleep",
-                                            "sdio4_sleep";
-               };
-       };
+&smc {
+       compatible = "brcm,bcm23550-smc", "brcm,kona-smc";
 };
index 72d26d130efaa435f4255df3774d8a46a109c8cb..85f54fa595aa8fb7ae119528cc5e7fa7f8fd2d4d 100644 (file)
@@ -77,7 +77,7 @@
 };
 
 &hdmi {
-       hpd-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
+       hpd-gpios = <&expgpio 0 GPIO_ACTIVE_LOW>;
        power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
        status = "okay";
 };
index 84c08b46519da0ac4f60b9c97dddb49945c1b897..c281697142b1a7d20c2a0b66a98fbb29ab72a2aa 100644 (file)
@@ -9,7 +9,7 @@
                         <0x40000000 0x40000000 0x00001000>;
                dma-ranges = <0xc0000000 0x00000000 0x3f000000>;
 
-               local_intc: local_intc@40000000 {
+               local_intc: interrupt-controller@40000000 {
                        compatible = "brcm,bcm2836-l1-intc";
                        reg = <0x40000000 0x100>;
                        interrupt-controller;
index 25eeacf6a2484cc2a144f4781f316775a7f94e07..45bd27906f2959149cf7d6734c5742063d332181 100644 (file)
                reg = <0x50>;
                pagesize = <32>;
                read-only;
-               #address-cells = <1>;
-               #size-cells = <1>;
 
-               mac_address: mac-address@66 {
-                       reg = <0x66 0x6>;
+               nvmem-layout {
+                       compatible = "fixed-layout";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       mac_address: mac-address@66 {
+                               reg = <0x66 0x6>;
+                       };
                };
        };
 };
index b0854d881ac6801f048395a5325b198ceb24423e..71a8b77b46f4528b8ecd60f020854dee0b8215b8 100644 (file)
                reg = <0x50>;
                pagesize = <32>;
                read-only;
-               #address-cells = <1>;
-               #size-cells = <1>;
 
-               mac_address: mac-address@66 {
-                       reg = <0x66 0x6>;
+               nvmem-layout {
+                       compatible = "fixed-layout";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       mac_address: mac-address@66 {
+                               reg = <0x66 0x6>;
+                       };
                };
        };
 };
diff --git a/src/arm/cirrus/ep93xx-bk3.dts b/src/arm/cirrus/ep93xx-bk3.dts
new file mode 100644 (file)
index 0000000..40bc9b2
--- /dev/null
@@ -0,0 +1,125 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree file for Liebherr controller BK3.1 based on Cirrus EP9302 SoC
+ */
+/dts-v1/;
+#include "ep93xx.dtsi"
+
+/ {
+       model = "Liebherr controller BK3.1";
+       compatible = "liebherr,bk3", "cirrus,ep9301";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       chosen {
+       };
+
+       memory@0 {
+               device_type = "memory";
+               /* should be set from ATAGS */
+               reg = <0x00000000 0x02000000>,
+                     <0x000530c0 0x01fdd000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               led-0 {
+                       label = "grled";
+                       gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       function = LED_FUNCTION_HEARTBEAT;
+               };
+
+               led-1 {
+                       label = "rdled";
+                       gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_FAULT;
+               };
+       };
+};
+
+&ebi {
+       nand-controller@60000000 {
+               compatible = "technologic,ts7200-nand";
+               reg = <0x60000000 0x8000000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               nand@0 {
+                       reg = <0>;
+                       partitions {
+                               compatible = "fixed-partitions";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               partition@0 {
+                                       label = "System";
+                                       reg = <0x00000000 0x01e00000>;
+                                       read-only;
+                               };
+
+                               partition@1e00000 {
+                                       label = "Data";
+                                       reg = <0x01e00000 0x05f20000>;
+                               };
+
+                               partition@7d20000 {
+                                       label = "RedBoot";
+                                       reg = <0x07d20000 0x002e0000>;
+                                       read-only;
+                               };
+                       };
+               };
+       };
+};
+
+&eth0 {
+       phy-handle = <&phy0>;
+};
+
+&i2s {
+       dmas = <&dma0 0 1>, <&dma0 0 2>;
+       dma-names = "tx", "rx";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s_on_ac97_pins>;
+       status = "okay";
+};
+
+&gpio1 {
+       /* PWM */
+       gpio-ranges = <&syscon 6 163 1>;
+};
+
+&gpio4 {
+       gpio-ranges = <&syscon 0 97 2>;
+       status = "okay";
+};
+
+&gpio6 {
+       gpio-ranges = <&syscon 0 87 2>;
+       status = "okay";
+};
+
+&gpio7 {
+       gpio-ranges = <&syscon 2 199 4>;
+       status = "okay";
+};
+
+&mdio0 {
+       phy0: ethernet-phy@1 {
+               reg = <1>;
+               device_type = "ethernet-phy";
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+};
diff --git a/src/arm/cirrus/ep93xx-edb9302.dts b/src/arm/cirrus/ep93xx-edb9302.dts
new file mode 100644 (file)
index 0000000..312b2be
--- /dev/null
@@ -0,0 +1,181 @@
+// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+/*
+ * Device Tree file for Cirrus Logic EDB9302 board based on EP9302 SoC
+ */
+/dts-v1/;
+#include "ep93xx.dtsi"
+
+/ {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "cirrus,edb9302", "cirrus,ep9301";
+       model = "cirrus,edb9302";
+
+       chosen {
+       };
+
+       memory@0 {
+               device_type = "memory";
+               /* should be set from ATAGS */
+               reg = <0x0000000 0x800000>,
+                     <0x1000000 0x800000>,
+                     <0x4000000 0x800000>,
+                     <0x5000000 0x800000>;
+       };
+
+       sound {
+               compatible = "audio-graph-card2";
+               label = "EDB93XX";
+               links = <&i2s_port>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               led-0 {
+                       label = "grled";
+                       gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       function = LED_FUNCTION_HEARTBEAT;
+               };
+
+               led-1 {
+                       label = "rdled";
+                       gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_FAULT;
+               };
+       };
+};
+
+&adc {
+       status = "okay";
+};
+
+&ebi {
+       flash@60000000 {
+               compatible = "cfi-flash";
+               reg = <0x60000000 0x1000000>;
+               bank-width = <2>;
+       };
+};
+
+&eth0 {
+       phy-handle = <&phy0>;
+};
+
+&gpio0 {
+       gpio-ranges = <&syscon 0 153 1>,
+                     <&syscon 1 152 1>,
+                     <&syscon 2 151 1>,
+                     <&syscon 3 148 1>,
+                     <&syscon 4 147 1>,
+                     <&syscon 5 146 1>,
+                     <&syscon 6 145 1>,
+                     <&syscon 7 144 1>;
+};
+
+&gpio1 {
+       gpio-ranges = <&syscon 0 143 1>,
+                     <&syscon 1 142 1>,
+                     <&syscon 2 141 1>,
+                     <&syscon 3 140 1>,
+                     <&syscon 4 165 1>,
+                     <&syscon 5 164 1>,
+                     <&syscon 6 163 1>,
+                     <&syscon 7 160 1>;
+};
+
+&gpio2 {
+       gpio-ranges = <&syscon 0 115 1>;
+};
+
+/* edb9302 doesn't have GPIO Port D present */
+&gpio3 {
+       status = "disabled";
+};
+
+&gpio4 {
+       gpio-ranges = <&syscon 0 97 2>;
+};
+
+&gpio5 {
+       gpio-ranges = <&syscon 1 170 1>,
+                     <&syscon 2 169 1>,
+                     <&syscon 3 168 1>;
+};
+
+&gpio6 {
+       gpio-ranges = <&syscon 0 87 2>;
+};
+
+&gpio7 {
+       gpio-ranges = <&syscon 2 199 4>;
+};
+
+&i2s {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s_on_ac97_pins>;
+       status = "okay";
+       i2s_port: port {
+               i2s_ep: endpoint {
+                       system-clock-direction-out;
+                       frame-master;
+                       bitclock-master;
+                       mclk-fs = <256>;
+                       dai-format = "i2s";
+                       convert-channels = <2>;
+                       convert-sample-format = "s32_le";
+                       remote-endpoint = <&codec_ep>;
+               };
+       };
+};
+
+&mdio0 {
+       phy0: ethernet-phy@1 {
+               reg = <1>;
+               device_type = "ethernet-phy";
+       };
+};
+
+&spi0 {
+       cs-gpios = <&gpio0 6 GPIO_ACTIVE_LOW
+                   &gpio0 7 GPIO_ACTIVE_LOW>;
+       dmas = <&dma1 10 2>, <&dma1 10 1>;
+       dma-names = "rx", "tx";
+       status = "okay";
+
+       cs4271: codec@0 {
+               compatible = "cirrus,cs4271";
+               reg = <0>;
+               #sound-dai-cells = <0>;
+               spi-max-frequency = <6000000>;
+               spi-cpol;
+               spi-cpha;
+               reset-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+               port {
+                       codec_ep: endpoint {
+                               remote-endpoint = <&i2s_ep>;
+                       };
+               };
+       };
+
+       at25f1024: eeprom@1 {
+               compatible = "atmel,at25";
+               reg = <1>;
+               address-width = <8>;
+               size = <0x20000>;
+               pagesize = <256>;
+               spi-max-frequency = <20000000>;
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+};
diff --git a/src/arm/cirrus/ep93xx-ts7250.dts b/src/arm/cirrus/ep93xx-ts7250.dts
new file mode 100644 (file)
index 0000000..9e03f93
--- /dev/null
@@ -0,0 +1,145 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree file for Technologic Systems ts7250 board based on Cirrus EP9302 SoC
+ */
+/dts-v1/;
+#include "ep93xx.dtsi"
+
+/ {
+       compatible = "technologic,ts7250", "cirrus,ep9301";
+       model = "TS-7250 SBC";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       chosen {
+       };
+
+       memory@0 {
+               device_type = "memory";
+               /* should be set from ATAGS */
+               reg = <0x00000000 0x02000000>,
+                     <0x000530c0 0x01fdd000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               led-0 {
+                       label = "grled";
+                       gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       function = LED_FUNCTION_HEARTBEAT;
+               };
+
+               led-1 {
+                       label = "rdled";
+                       gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_FAULT;
+               };
+       };
+};
+
+&ebi {
+       nand-controller@60000000 {
+               compatible = "technologic,ts7200-nand";
+               reg = <0x60000000 0x8000000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               nand@0 {
+                       reg = <0>;
+                       partitions {
+                               compatible = "fixed-partitions";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               partition@0 {
+                                       label = "TS-BOOTROM";
+                                       reg = <0x00000000 0x00020000>;
+                                       read-only;
+                               };
+
+                               partition@20000 {
+                                       label = "Linux";
+                                       reg = <0x00020000 0x07d00000>;
+                               };
+
+                               partition@7d20000 {
+                                       label = "RedBoot";
+                                       reg = <0x07d20000 0x002e0000>;
+                                       read-only;
+                               };
+                       };
+               };
+       };
+
+       rtc@10800000 {
+               compatible = "st,m48t86";
+               reg = <0x10800000 0x1>,
+                       <0x11700000 0x1>;
+       };
+
+       watchdog@23800000 {
+               compatible = "technologic,ts7200-wdt";
+               reg = <0x23800000 0x01>,
+                       <0x23c00000 0x01>;
+               timeout-sec = <30>;
+       };
+};
+
+&eth0 {
+       phy-handle = <&phy0>;
+};
+
+&gpio1 {
+       /* PWM */
+       gpio-ranges = <&syscon 6 163 1>;
+};
+
+/* ts7250 doesn't have GPIO Port D present */
+&gpio3 {
+       status = "disabled";
+};
+
+&gpio4 {
+       gpio-ranges = <&syscon 0 97 2>;
+};
+
+&gpio6 {
+       gpio-ranges = <&syscon 0 87 2>;
+};
+
+&gpio7 {
+       gpio-ranges = <&syscon 2 199 4>;
+};
+
+&spi0 {
+       cs-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
+       dmas = <&dma1 10 2>, <&dma1 10 1>;
+       dma-names = "rx", "tx";
+       status = "okay";
+
+       tmp122: temperature-sensor@0 {
+               compatible = "ti,tmp122";
+               reg = <0>;
+               spi-max-frequency = <2000000>;
+       };
+};
+
+&mdio0 {
+       phy0: ethernet-phy@1 {
+               reg = <1>;
+               device_type = "ethernet-phy";
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+};
diff --git a/src/arm/cirrus/ep93xx.dtsi b/src/arm/cirrus/ep93xx.dtsi
new file mode 100644 (file)
index 0000000..0dd1eee
--- /dev/null
@@ -0,0 +1,444 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree file for Cirrus Logic systems EP93XX SoC
+ */
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/clock/cirrus,ep9301-syscon.h>
+/ {
+       soc: soc {
+               compatible = "simple-bus";
+               ranges;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               syscon: syscon@80930000 {
+                       compatible = "cirrus,ep9301-syscon", "syscon";
+                       reg = <0x80930000 0x1000>;
+
+                       #clock-cells = <1>;
+                       clocks = <&xtali>;
+
+                       spi_default_pins: pins-spi {
+                               function = "spi";
+                               groups = "ssp";
+                       };
+
+                       ac97_default_pins: pins-ac97 {
+                               function = "ac97";
+                               groups = "ac97";
+                       };
+
+                       i2s_on_ssp_pins: pins-i2sonssp {
+                               function = "i2s";
+                               groups = "i2s_on_ssp";
+                       };
+
+                       i2s_on_ac97_pins: pins-i2sonac97 {
+                               function = "i2s";
+                               groups = "i2s_on_ac97";
+                       };
+
+                       gpio1_default_pins: pins-gpio1 {
+                               function = "gpio";
+                               groups = "gpio1agrp";
+                       };
+
+                       pwm1_default_pins: pins-pwm1 {
+                               function = "pwm";
+                               groups = "pwm1";
+                       };
+
+                       gpio2_default_pins: pins-gpio2 {
+                               function = "gpio";
+                               groups = "gpio2agrp";
+                       };
+
+                       gpio3_default_pins: pins-gpio3 {
+                               function = "gpio";
+                               groups = "gpio3agrp";
+                       };
+
+                       keypad_default_pins: pins-keypad {
+                               function = "keypad";
+                               groups = "keypadgrp";
+                       };
+
+                       gpio4_default_pins: pins-gpio4 {
+                               function = "gpio";
+                               groups = "gpio4agrp";
+                       };
+
+                       gpio6_default_pins: pins-gpio6 {
+                               function = "gpio";
+                               groups = "gpio6agrp";
+                       };
+
+                       gpio7_default_pins: pins-gpio7 {
+                               function = "gpio";
+                               groups = "gpio7agrp";
+                       };
+
+                       ide_default_pins: pins-ide {
+                               function = "pata";
+                               groups = "idegrp";
+                       };
+
+                       lcd_on_dram0_pins: pins-rasteronsdram0 {
+                               function = "lcd";
+                               groups = "rasteronsdram0grp";
+                       };
+
+                       lcd_on_dram3_pins: pins-rasteronsdram3 {
+                               function = "lcd";
+                               groups = "rasteronsdram3grp";
+                       };
+               };
+
+               adc: adc@80900000 {
+                       compatible = "cirrus,ep9301-adc";
+                       reg = <0x80900000 0x28>;
+                       clocks = <&syscon EP93XX_CLK_ADC>;
+                       interrupt-parent = <&vic0>;
+                       interrupts = <30>;
+                       status = "disabled";
+               };
+
+               /*
+                * The EP93XX expansion bus is a set of up to 7 each up to 16MB
+                * windows in the 256MB space from 0x50000000 to 0x5fffffff.
+                * But since we don't require to setup it in any way, we can
+                * represent it as a simple-bus.
+                */
+               ebi: bus@80080000 {
+                       compatible = "simple-bus";
+                       reg = <0x80080000 0x20>;
+                       native-endian;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+               };
+
+               dma0: dma-controller@80000000 {
+                       compatible = "cirrus,ep9301-dma-m2p";
+                       reg = <0x80000000 0x0040>,
+                             <0x80000040 0x0040>,
+                             <0x80000080 0x0040>,
+                             <0x800000c0 0x0040>,
+                             <0x80000240 0x0040>,
+                             <0x80000200 0x0040>,
+                             <0x800002c0 0x0040>,
+                             <0x80000280 0x0040>,
+                             <0x80000340 0x0040>,
+                             <0x80000300 0x0040>;
+                       clocks = <&syscon EP93XX_CLK_M2P0>,
+                                <&syscon EP93XX_CLK_M2P1>,
+                                <&syscon EP93XX_CLK_M2P2>,
+                                <&syscon EP93XX_CLK_M2P3>,
+                                <&syscon EP93XX_CLK_M2P4>,
+                                <&syscon EP93XX_CLK_M2P5>,
+                                <&syscon EP93XX_CLK_M2P6>,
+                                <&syscon EP93XX_CLK_M2P7>,
+                                <&syscon EP93XX_CLK_M2P8>,
+                                <&syscon EP93XX_CLK_M2P9>;
+                       clock-names = "m2p0", "m2p1",
+                                     "m2p2", "m2p3",
+                                     "m2p4", "m2p5",
+                                     "m2p6", "m2p7",
+                                     "m2p8", "m2p9";
+                       interrupt-parent = <&vic0>;
+                       interrupts = <7>, <8>, <9>, <10>, <11>,
+                               <12>, <13>, <14>, <15>, <16>;
+                       #dma-cells = <2>;
+               };
+
+               dma1: dma-controller@80000100 {
+                       compatible = "cirrus,ep9301-dma-m2m";
+                       reg = <0x80000100 0x0040>,
+                             <0x80000140 0x0040>;
+                       clocks = <&syscon EP93XX_CLK_M2M0>,
+                                <&syscon EP93XX_CLK_M2M1>;
+                       clock-names = "m2m0", "m2m1";
+                       interrupt-parent = <&vic0>;
+                       interrupts = <17>, <18>;
+                       #dma-cells = <2>;
+               };
+
+               eth0: ethernet@80010000 {
+                       compatible = "cirrus,ep9301-eth";
+                       reg = <0x80010000 0x10000>;
+                       interrupt-parent = <&vic1>;
+                       interrupts = <7>;
+                       mdio0: mdio {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               gpio0: gpio@80840000 {
+                       compatible = "cirrus,ep9301-gpio";
+                       reg = <0x80840000 0x04>,
+                             <0x80840010 0x04>,
+                             <0x80840090 0x1c>;
+                       reg-names = "data", "dir", "intr";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&vic1>;
+                       interrupts = <27>;
+               };
+
+               gpio1: gpio@80840004 {
+                       compatible = "cirrus,ep9301-gpio";
+                       reg = <0x80840004 0x04>,
+                             <0x80840014 0x04>,
+                             <0x808400ac 0x1c>;
+                       reg-names = "data", "dir", "intr";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&vic1>;
+                       interrupts = <27>;
+               };
+
+               gpio2: gpio@80840008 {
+                       compatible = "cirrus,ep9301-gpio";
+                       reg = <0x80840008 0x04>,
+                             <0x80840018 0x04>;
+                       reg-names = "data", "dir";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio2_default_pins>;
+               };
+
+               gpio3: gpio@8084000c {
+                       compatible = "cirrus,ep9301-gpio";
+                       reg = <0x8084000c 0x04>,
+                             <0x8084001c 0x04>;
+                       reg-names = "data", "dir";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio3_default_pins>;
+               };
+
+               gpio4: gpio@80840020 {
+                       compatible = "cirrus,ep9301-gpio";
+                       reg = <0x80840020 0x04>,
+                             <0x80840024 0x04>;
+                       reg-names = "data", "dir";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio4_default_pins>;
+               };
+
+               gpio5: gpio@80840030 {
+                       compatible = "cirrus,ep9301-gpio";
+                       reg = <0x80840030 0x04>,
+                             <0x80840034 0x04>,
+                             <0x8084004c 0x1c>;
+                       reg-names = "data", "dir", "intr";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupts-extended = <&vic0 19>, <&vic0 20>,
+                                             <&vic0 21>, <&vic0 22>,
+                                             <&vic1 15>, <&vic1 16>,
+                                             <&vic1 17>, <&vic1 18>;
+               };
+
+               gpio6: gpio@80840038 {
+                       compatible = "cirrus,ep9301-gpio";
+                       reg = <0x80840038 0x04>,
+                             <0x8084003c 0x04>;
+                       reg-names = "data", "dir";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio6_default_pins>;
+               };
+
+               gpio7: gpio@80840040 {
+                       compatible = "cirrus,ep9301-gpio";
+                       reg = <0x80840040 0x04>,
+                             <0x80840044 0x04>;
+                       reg-names = "data", "dir";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio7_default_pins>;
+               };
+
+               i2s: i2s@80820000 {
+                       compatible = "cirrus,ep9301-i2s";
+                       reg = <0x80820000 0x100>;
+                       #sound-dai-cells = <0>;
+                       interrupt-parent = <&vic1>;
+                       interrupts = <28>;
+                       clocks = <&syscon EP93XX_CLK_I2S_MCLK>,
+                                <&syscon EP93XX_CLK_I2S_SCLK>,
+                                <&syscon EP93XX_CLK_I2S_LRCLK>;
+                       clock-names = "mclk", "sclk", "lrclk";
+                       dmas = <&dma0 0 1>, <&dma0 0 2>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               ide: ide@800a0000 {
+                       compatible = "cirrus,ep9312-pata";
+                       reg = <0x800a0000 0x38>;
+                       interrupt-parent = <&vic1>;
+                       interrupts = <8>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&ide_default_pins>;
+                       status = "disabled";
+               };
+
+               vic0: interrupt-controller@800b0000 {
+                       compatible = "arm,pl192-vic";
+                       reg = <0x800b0000 0x1000>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       valid-mask = <0x7ffffffc>;
+                       valid-wakeup-mask = <0x0>;
+               };
+
+               vic1: interrupt-controller@800c0000 {
+                       compatible = "arm,pl192-vic";
+                       reg = <0x800c0000 0x1000>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       valid-mask = <0x1fffffff>;
+                       valid-wakeup-mask = <0x0>;
+               };
+
+               keypad: keypad@800f0000 {
+                       compatible = "cirrus,ep9307-keypad";
+                       reg = <0x800f0000 0x0c>;
+                       interrupt-parent = <&vic0>;
+                       interrupts = <29>;
+                       clocks = <&syscon EP93XX_CLK_KEYPAD>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&keypad_default_pins>;
+                       linux,keymap =  <KEY_UP>,
+                                       <KEY_DOWN>,
+                                       <KEY_VOLUMEDOWN>,
+                                       <KEY_HOME>,
+                                       <KEY_RIGHT>,
+                                       <KEY_LEFT>,
+                                       <KEY_ENTER>,
+                                       <KEY_VOLUMEUP>,
+                                       <KEY_F6>,
+                                       <KEY_F8>,
+                                       <KEY_F9>,
+                                       <KEY_F10>,
+                                       <KEY_F1>,
+                                       <KEY_F2>,
+                                       <KEY_F3>,
+                                       <KEY_POWER>;
+               };
+
+               pwm0: pwm@80910000 {
+                       compatible = "cirrus,ep9301-pwm";
+                       reg = <0x80910000 0x10>;
+                       clocks = <&syscon EP93XX_CLK_PWM>;
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
+               pwm1: pwm@80910020 {
+                       compatible = "cirrus,ep9301-pwm";
+                       reg = <0x80910020 0x10>;
+                       clocks = <&syscon EP93XX_CLK_PWM>;
+                       #pwm-cells = <3>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pwm1_default_pins>;
+                       status = "disabled";
+               };
+
+               rtc0: rtc@80920000 {
+                       compatible = "cirrus,ep9301-rtc";
+                       reg = <0x80920000 0x100>;
+               };
+
+               spi0: spi@808a0000 {
+                       compatible = "cirrus,ep9301-spi";
+                       reg = <0x808a0000 0x18>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupt-parent = <&vic1>;
+                       interrupts = <21>;
+                       clocks = <&syscon EP93XX_CLK_SPI>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spi_default_pins>;
+                       status = "disabled";
+               };
+
+               timer: timer@80810000 {
+                       compatible = "cirrus,ep9301-timer";
+                       reg = <0x80810000 0x100>;
+                       interrupt-parent = <&vic1>;
+                       interrupts = <19>;
+               };
+
+               uart0: serial@808c0000 {
+                       compatible = "arm,pl011", "arm,primecell";
+                       reg = <0x808c0000 0x1000>;
+                       arm,primecell-periphid = <0x00041010>;
+                       clocks = <&syscon EP93XX_CLK_UART1>, <&syscon EP93XX_CLK_UART>;
+                       clock-names = "uartclk", "apb_pclk";
+                       interrupt-parent = <&vic1>;
+                       interrupts = <20>;
+                       status = "disabled";
+               };
+
+               uart1: uart@808d0000 {
+                       compatible = "arm,primecell";
+                       reg = <0x808d0000 0x1000>;
+                       arm,primecell-periphid = <0x00041010>;
+                       clocks = <&syscon EP93XX_CLK_UART2>, <&syscon EP93XX_CLK_UART>;
+                       clock-names = "apb:uart2", "apb_pclk";
+                       interrupt-parent = <&vic1>;
+                       interrupts = <22>;
+                       status = "disabled";
+               };
+
+               uart2: uart@808b0000 {
+                       compatible = "arm,primecell";
+                       reg = <0x808b0000 0x1000>;
+                       arm,primecell-periphid = <0x00041010>;
+                       clocks = <&syscon EP93XX_CLK_UART3>, <&syscon EP93XX_CLK_UART>;
+                       clock-names = "apb:uart3", "apb_pclk";
+                       interrupt-parent = <&vic1>;
+                       interrupts = <23>;
+                       status = "disabled";
+               };
+
+               usb0: usb@80020000 {
+                       compatible = "generic-ohci";
+                       reg = <0x80020000 0x10000>;
+                       interrupt-parent = <&vic1>;
+                       interrupts = <24>;
+                       clocks = <&syscon EP93XX_CLK_USB>;
+                       status = "disabled";
+               };
+
+               watchdog0: watchdog@80940000 {
+                       compatible = "cirrus,ep9301-wdt";
+                       reg = <0x80940000 0x08>;
+               };
+       };
+
+       xtali: oscillator {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <14745600>;
+               clock-output-names = "xtali";
+       };
+};
index 65f390bf897534c89d558bda0bd2307ffca5bab1..84f39dec3c42508c6dd57cc09fa4d176194f8e79 100644 (file)
                #gpio-cells = <2>;
        };
 
-       temp: lm75@48 {
-               compatible = "lm75";
+       temp: temperature-sensor@48 {
+               compatible = "national,lm75";
                reg = <0x48>;
        };
 
index f3a3cb6ac31148360d84b2231a43c7ca5bb015de..8208c6a9627a8cee2ed584d21b87c53888742307 100644 (file)
        status = "okay";
 
        /* U26 temperature sensor placed near SoC */
-       temp1: nct75@4c {
-               compatible = "lm75";
+       temp1: temperature-sensor@4c {
+               compatible = "ti,tmp75c";
                reg = <0x4c>;
        };
 
        /* U27 temperature sensor placed near RTC battery */
-       temp2: nct75@4d {
-               compatible = "lm75";
+       temp2: temperature-sensor@4d {
+               compatible = "ti,tmp75c";
                reg = <0x4d>;
        };
 
index c6fbdd29019f39867c91ff4908bfed407c0b6a68..b9ffd9e5faacc33939bfd121dd50ca992fd4b1c7 100644 (file)
                dmas = <0>, <0>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_flx0_default>;
-               #address-cells = <1>;
-               #size-cells = <0>;
                i2c-analog-filter;
                i2c-digital-filter;
                i2c-digital-filter-width-ns = <35>;
index f3cbb675cea4aee74b3e004dd5f2c80d4ddea707..3b38707d736eed38aa24455634a1f182f51aa8df 100644 (file)
        status = "okay";
 
        i2c0: i2c@600 {
-               #address-cells = <1>;
-               #size-cells = <0>;
                dmas = <0>, <0>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_flx0_default>;
        status = "okay";
 
        i2c6: i2c@600 {
-               #address-cells = <1>;
-               #size-cells = <0>;
                dmas = <0>, <0>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_flx6_default>;
index 4617805c7748823a0937ae53e8f7e3ae6479223f..c173f49cb91074ca0115cc8b7ccfae78a1500cb3 100644 (file)
                };
        };
 
+       reg_5v: regulator-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_MAIN";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-wilc1000";
                reset-gpios = <&pioA PIN_PA27 GPIO_ACTIVE_HIGH>;
        mcp16502@5b {
                compatible = "microchip,mcp16502";
                reg = <0x5b>;
+               lvin-supply = <&reg_5v>;
+               pvin1-supply = <&reg_5v>;
+               pvin2-supply = <&reg_5v>;
+               pvin3-supply = <&reg_5v>;
+               pvin4-supply = <&reg_5v>;
                status = "okay";
                lpm-gpios = <&pioBU 0 GPIO_ACTIVE_LOW>;
 
index 6b02b7bcfd49782aa07d962e41ccfb727b5e7751..951a0c97d3c6bbcad923faa978e8bbe0ec9736d2 100644 (file)
                device_type = "memory";
                reg = <0x20000000 0x20000000>;
        };
+
+       reg_5v: regulator-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "5V_MAIN";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
 };
 
 &adc {
        mcp16502@5b {
                compatible = "microchip,mcp16502";
                reg = <0x5b>;
+               lvin-supply = <&reg_5v>;
+               pvin1-supply = <&reg_5v>;
+               pvin2-supply = <&reg_5v>;
+               pvin3-supply = <&reg_5v>;
+               pvin4-supply = <&reg_5v>;
                status = "okay";
                lpm-gpios = <&pioBU 0 GPIO_ACTIVE_LOW>;
 
index 999adeca6f336045f6e50a463492c53d72eca29d..5e2bb517a4809ee3d22d2682a77cc1b69c7c2309 100644 (file)
                        linux,default-trigger = "heartbeat";
                };
        };
+
+       reg_5v: regulator-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_MAIN_5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
 };
 
 &adc {
                mcp16502@5b {
                        compatible = "microchip,mcp16502";
                        reg = <0x5b>;
+                       lvin-supply = <&reg_5v>;
+                       pvin1-supply = <&reg_5v>;
+                       pvin2-supply = <&reg_5v>;
+                       pvin3-supply = <&reg_5v>;
+                       pvin4-supply = <&reg_5v>;
                        status = "okay";
                        lpm-gpios = <&pioBU 7 GPIO_ACTIVE_LOW>;
 
index 009d2c83242102c8e46a6f2019026b5d60a583ac..645e49fdb7fe796f649d7e1d26ab03d92ac92eb3 100644 (file)
                device_type = "memory";
                reg = <0x60000000 0x10000000>; /* 256 MiB DDR3L-1066 16-bit */
        };
+
+       reg_5v: regulator-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "5V_MAIN";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
 };
 
 &adc {
                pmic@5b {
                        compatible = "microchip,mcp16502";
                        reg = <0x5b>;
+                       lvin-supply = <&reg_5v>;
+                       pvin1-supply = <&reg_5v>;
+                       pvin2-supply = <&reg_5v>;
+                       pvin3-supply = <&reg_5v>;
+                       pvin4-supply = <&reg_5v>;
 
                        regulators {
                                vdd_3v3: VDD_IO {
index 20b2497657ae48e691f06424ff688e27073bb63f..ed75d491a24603919facd42f12b43a0b1e75d6ba 100644 (file)
                reg = <0x60000000 0x20000000>;
        };
 
+       reg_5v: regulator-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "5V_MAIN";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
        sound: sound {
                compatible = "simple-audio-card";
                simple-audio-card,name = "sama7g5ek audio";
                mcp16502@5b {
                        compatible = "microchip,mcp16502";
                        reg = <0x5b>;
+                       lvin-supply = <&reg_5v>;
+                       pvin1-supply = <&reg_5v>;
+                       pvin2-supply = <&reg_5v>;
+                       pvin3-supply = <&reg_5v>;
+                       pvin4-supply = <&reg_5v>;
                        status = "okay";
 
                        regulators {
                i2c-digital-filter;
                i2c-digital-filter-width-ns = <35>;
                status = "okay";
+
+               eeprom0: eeprom@52 {
+                       compatible = "microchip,24aa025e48";
+                       reg = <0x52>;
+                       size = <256>;
+                       pagesize = <16>;
+                       vcc-supply = <&vdd_3v3>;
+
+                       nvmem-layout {
+                               compatible = "fixed-layout";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               eeprom0_eui48: eui48@fa {
+                                       reg = <0xfa 0x6>;
+                               };
+                       };
+               };
+
+               eeprom1: eeprom@53 {
+                       compatible = "microchip,24aa025e48";
+                       reg = <0x53>;
+                       size = <256>;
+                       pagesize = <16>;
+                       vcc-supply = <&vdd_3v3>;
+
+                       nvmem-layout {
+                               compatible = "fixed-layout";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               eeprom1_eui48: eui48@fa {
+                                       reg = <0xfa 0x6>;
+                               };
+                       };
+               };
        };
 };
 
                     &pinctrl_gmac0_txck_default
                     &pinctrl_gmac0_phy_irq>;
        phy-mode = "rgmii-id";
+       nvmem-cells = <&eeprom0_eui48>;
+       nvmem-cell-names = "mac-address";
        status = "okay";
 
        ethernet-phy@7 {
                     &pinctrl_gmac1_mdio_default
                     &pinctrl_gmac1_phy_irq>;
        phy-mode = "rmii";
+       nvmem-cells = <&eeprom1_eui48>;
+       nvmem-cell-names = "mac-address";
        status = "okay"; /* Conflict with pdmc0. */
 
        ethernet-phy@0 {
index 16c675e3a8903099a11dcd1f347d5968655870e2..02a838541dc35f70e4d19dca86fb363b110022d2 100644 (file)
                        pinctrl@fffff400 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
+                               compatible = "atmel,at91rm9200-pinctrl", "simple-mfd";
                                ranges = <0xfffff400 0xfffff400 0x800>;
 
                                atmel,mux-mask = <
index e56d5546554c3c035335ff0a7662943540e17c97..0038183e9a531fdbe7e1e3d083d735ee10b8c6f2 100644 (file)
                        pinctrl: pinctrl@fffff400 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
+                               compatible = "atmel,at91rm9200-pinctrl", "simple-mfd";
                                ranges = <0xfffff400 0xfffff400 0x600>;
 
                                atmel,mux-mask = <
index 307b60658014c02f05b9cfe1e0fc9b90011ebddc..b57a7fd67197f915a0399d8a129fc18b829cf0b1 100644 (file)
                        pinctrl@fffff400 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
+                               compatible = "atmel,at91rm9200-pinctrl", "simple-mfd";
                                ranges = <0xfffff400 0xfffff400 0x600>;
 
                                atmel,mux-mask =
index 75d8ff2d12c8aa2cdfb5842fdd220a268a4b96be..b95d4016ae9f6ff461ad5b7b35817e1e0ba13d0d 100644 (file)
                        pinctrl@fffff200 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
+                               compatible = "atmel,at91rm9200-pinctrl", "simple-mfd";
                                ranges = <0xfffff200 0xfffff200 0xa00>;
 
                                atmel,mux-mask = <
index 172af6ff4b189445ad18acbbe055d4e9db3edee5..3e5eab57d1a5ad144ac33354b766c98356c7d8bf 100644 (file)
        leds {
                compatible = "gpio-leds";
 
-               ds1 {
+               led-ds1 {
                        label = "ds1";
                        gpios = <&pioB 9 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
 
-               ds5 {
+               led-ds5 {
                        label = "ds5";
                        gpios = <&pioB 8 GPIO_ACTIVE_LOW>;
                };
index af70eb8a3a021259753dd3e75e5f515eabe6fee7..e0c1e8df81b10f2c64fe9ac5aa4047b5b8c24bc5 100644 (file)
        leds {
                compatible = "gpio-leds";
 
-               power_blue {
+               led-power-blue {
                        label = "smartgw:power:blue";
                        gpios = <&pioC 21 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               power_green {
+               led-power-green {
                        label = "smartgw:power:green";
                        gpios = <&pioC 20 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                };
 
-               power_red {
+               led-power-red {
                        label = "smartgw:power:red";
                        gpios = <&pioC 19 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               radio_blue {
+               led-radio-blue {
                        label = "smartgw:radio:blue";
                        gpios = <&pioC 18 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               radio_green {
+               led-radio-green {
                        label = "smartgw:radio:green";
                        gpios = <&pioC 17 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               radio_red {
+               led-radio-red {
                        label = "smartgw:radio:red";
                        gpios = <&pioC 16 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               internet_blue {
+               led-internet-blue {
                        label = "smartgw:internet:blue";
                        gpios = <&pioC 15 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               internet_green {
+               led-internet-green {
                        label = "smartgw:internet:green";
                        gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               internet_red {
+               led-internet-red {
                        label = "smartgw:internet:red";
                        gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               heartbeat {
+               led-heartbeat {
                        label = "smartgw:heartbeat";
                        gpios = <&pioB 8 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
 
-               pb18 {
+               led-pb18 {
                        status = "disabled";
                };
 
-               pd21 {
+               led-pd21 {
                        status = "disabled";
                };
        };
index 325c63a531189fa6ed96b3dfc147da9ad9949198..c54eb21d5cba82bc54984ffb0021f7e737ee8bdf 100644 (file)
                        pinctrl@fffff200 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
+                               compatible = "atmel,at91rm9200-pinctrl", "simple-mfd";
                                ranges = <0xfffff200 0xfffff200 0xa00>;
 
                                atmel,mux-mask = <
index 8dc04e9031a6c3a59c853e80a580da9c2da64ad6..844bd50943fcf310256aba0c78452aded79a00d7 100644 (file)
                        pinctrl@fffff400 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
+                               compatible = "atmel,at91sam9x5-pinctrl", "simple-mfd";
                                ranges = <0xfffff400 0xfffff400 0x800>;
 
                                atmel,mux-mask = <
index 4c644d4c6be727a88f1288e6146c8982aadb194b..643c3b2ab97e524a15f74ef4ebe6d98cdef76f4a 100644 (file)
        leds {
                compatible = "gpio-leds";
 
-               d8 {
+               led-d8 {
                        label = "d8";
                        gpios = <&pioB 4 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "mmc0";
                };
 
-               d9 {
+               led-d9 {
                        label = "d9";
                        gpios = <&pioB 5 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "nand-disk";
                };
 
-               d10 {
+               led-d10 {
                        label = "d10";
                        gpios = <&pioB 6 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
index 7436b5c862b10b6068dba6ff1d21053d8f10ce84..1fec9fcc7cd184475693ca43da2d9e1bd794a3fd 100644 (file)
                        pinctrl@fffff400 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
+                               compatible = "atmel,at91rm9200-pinctrl", "simple-mfd";
                                ranges = <0xfffff400 0xfffff400 0x800>;
 
                                atmel,mux-mask =
index a7456c2191fa1cbc32a72a421a3056183ac17a46..27c1f2861cc34d7703c7bc688c14a4c7809bf7d0 100644 (file)
                        pinctrl: pinctrl@fffff400 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
+                               compatible = "atmel,at91sam9x5-pinctrl", "simple-mfd";
                                ranges = <0xfffff400 0xfffff400 0x800>;
 
                                /* shared pinctrl settings */
index cdd37f67280bfe2d7965c013ed24fc52a857463d..fb3c19bdfcb66c759ba338c8de2e0d36e90256ca 100644 (file)
        leds {
                compatible = "gpio-leds";
 
-               pb18 {
+               led-pb18 {
                        label = "pb18";
                        gpios = <&pioB 18 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "heartbeat";
                };
 
-               pd21 {
+               led-pd21 {
                        label = "pd21";
                        gpios = <&pioD 21 GPIO_ACTIVE_HIGH>;
                };
index 291540e5d81e769a6c23af493b50e9aad089bc0e..04a6d716ecaf8a07253190bb278a608135f9cac9 100644 (file)
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <14 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <32 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 32>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <33 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 33>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <9 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <10 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <11 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <6 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <7 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <8 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <15 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                                        compatible = "microchip,sam9x60-i2c";
                                        reg = <0x600 0x200>;
                                        interrupts = <16 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
                                        dmas = <&dma0
                                                (AT91_XDMAC_DT_MEM_IF(0) |
                        pinctrl: pinctrl@fffff400 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "microchip,sam9x60-pinctrl", "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
+                               compatible = "microchip,sam9x60-pinctrl", "simple-mfd";
                                ranges = <0xfffff400 0xfffff400 0x800>;
 
                                /* mux-mask corresponding to sam9x60 SoC in TFBGA228L package */
                                                 >;
 
                                pioA: gpio@fffff400 {
-                                       compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
+                                       compatible = "microchip,sam9x60-gpio", "atmel,at91rm9200-gpio";
                                        reg = <0xfffff400 0x200>;
                                        interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                };
 
                                pioB: gpio@fffff600 {
-                                       compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
+                                       compatible = "microchip,sam9x60-gpio", "atmel,at91rm9200-gpio";
                                        reg = <0xfffff600 0x200>;
                                        interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                };
 
                                pioC: gpio@fffff800 {
-                                       compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
+                                       compatible = "microchip,sam9x60-gpio", "atmel,at91rm9200-gpio";
                                        reg = <0xfffff800 0x200>;
                                        interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                };
 
                                pioD: gpio@fffffa00 {
-                                       compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
+                                       compatible = "microchip,sam9x60-gpio", "atmel,at91rm9200-gpio";
                                        reg = <0xfffffa00 0x200>;
                                        interrupts = <44 IRQ_TYPE_LEVEL_HIGH 1>;
                                        #gpio-cells = <2>;
                                compatible = "microchip,sam9x60-rtt", "atmel,at91sam9260-rtt";
                                reg = <0xfffffe20 0x20>;
                                interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
-                               clocks = <&clk32k 0>;
+                               clocks = <&clk32k 1>;
                        };
 
                        pit: timer@fffffe40 {
                                compatible = "microchip,sam9x60-rtc", "atmel,at91sam9x5-rtc";
                                reg = <0xfffffea8 0x100>;
                                interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
-                               clocks = <&clk32k 0>;
+                               clocks = <&clk32k 1>;
                        };
 
                        watchdog: watchdog@ffffff80 {
index d4fc0c1dfc10a9314b62647464a848fe98cae18b..39865133aa5670a991cbc3bfbd86150b19060e4a 100644 (file)
                        pinctrl: pinctrl@fffff200 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "atmel,sama5d3-pinctrl", "atmel,at91sam9x5-pinctrl", "simple-bus";
+                               compatible = "atmel,sama5d3-pinctrl", "simple-mfd";
                                ranges = <0xfffff200 0xfffff200 0xa00>;
                                atmel,mux-mask = <
                                        /*   A          B          C  */
index 58ceed997889bfa4e73e365e6d2bcb35e2e2f4fe..b253ba33fc3850c4d9c9904443b97059d685d90b 100644 (file)
                        pinctrl: pinctrl@fc06a000 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "atmel,sama5d3-pinctrl", "atmel,at91sam9x5-pinctrl", "simple-bus";
+                               compatible = "atmel,sama5d3-pinctrl", "simple-mfd";
                                ranges = <0xfc068000 0xfc068000 0x100
                                          0xfc06a000 0xfc06a000 0x4000>;
                                /* WARNING: revisit as pin spec has changed */
index 75778be126a3d9e88d3160eee7c8514bf2e9f1f0..17bcdcf0cf4a05fee9ba9334a1521d8a27055ac5 100644 (file)
                        compatible = "microchip,sama7g5-rtt", "microchip,sam9x60-rtt", "atmel,at91sam9260-rtt";
                        reg = <0xe001d020 0x30>;
                        interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clk32k 0>;
+                       clocks = <&clk32k 1>;
                };
 
                clk32k: clock-controller@e001d050 {
index 1f07ba38291087879f09b2855c439a7123dafcb6..886a87dfcd0d831b5a1c241bc20cb4ff9a9afa8b 100644 (file)
                        reg = <4>;
 
                        // INLET1_T
-                       lm75@5c {
-                               compatible = "ti,lm75";
+                       temperature-sensor@5c {
+                               compatible = "national,lm75";
                                reg = <0x5c>;
                        };
                };
                        reg = <5>;
 
                        // OUTLET1_T
-                       lm75@5c {
-                               compatible = "ti,lm75";
+                       temperature-sensor@5c {
+                               compatible = "national,lm75";
                                reg = <0x5c>;
                        };
                };
                        reg = <6>;
 
                        // OUTLET2_T
-                       lm75@5c {
-                               compatible = "ti,lm75";
+                       temperature-sensor@5c {
+                               compatible = "national,lm75";
                                reg = <0x5c>;
                        };
                };
                        reg = <7>;
 
                        // OUTLET3_T
-                       lm75@5c {
-                               compatible = "ti,lm75";
+                       temperature-sensor@5c {
+                               compatible = "national,lm75";
                                reg = <0x5c>;
                        };
                };
                        reg = <3>;
 
                        // M2_ZONE_T
-                       lm75@28 {
-                               compatible = "ti,lm75";
+                       temperature-sensor@28 {
+                               compatible = "national,lm75";
                                reg = <0x28>;
                        };
                };
                        reg = <4>;
 
                        // BATT_ZONE_T
-                       lm75@29 {
-                               compatible = "ti,lm75";
+                       temperature-sensor@29 {
+                               compatible = "national,lm75";
                                reg = <0x29>;
                        };
                };
                        reg = <5>;
 
                        // NBM1_ZONE_T
-                       lm75@28 {
-                               compatible = "ti,lm75";
+                       temperature-sensor@28 {
+                               compatible = "national,lm75";
                                reg = <0x28>;
                        };
                };
                        reg = <6>;
 
                        // NBM2_ZONE_T
-                       lm75@29 {
-                               compatible = "ti,lm75";
+                       temperature-sensor@29 {
+                               compatible = "national,lm75";
                                reg = <0x29>;
                        };
                };
index f53d45fa1de8788bae45f557e2899d528b3b1144..bcdcb30c7bf6e51766640f0e9580f656e3f5db00 100644 (file)
        clock-frequency = <100000>;
        status = "okay";
        lm75@48 {
-               compatible = "lm75";
+               compatible = "national,lm75";
                reg = <0x48>;
                status = "okay";
        };
 &i2c1 {
        clock-frequency = <100000>;
        status = "okay";
-       lm75@48 {
-               compatible = "lm75";
+       temperature-sensor@48 {
+               compatible = "national,lm75";
                reg = <0x48>;
                status = "okay";
        };
index b78c116cbc18eee0d888e14d116b5261d59ead55..edb907f740bffc9295cca6ddef0244516aa01e65 100644 (file)
@@ -34,7 +34,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&key_pins>;
 
-               uid {
+               button-uid {
                        label = "UID button";
                        linux,code = <KEY_HOME>;
                        gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&led_pins>;
 
-               uid {
+               led-uid {
                        label = "UID";
                        gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                };
 
-               heartbeat {
+               led-heartbeat {
                        label = "heartbeat";
                        gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
                };
index 763ab812eb87f7d499be6184742febb623bdbecc..f02e2cf65fe82d65f2bc72408957d616e0685f8f 100644 (file)
        };
 
        host1x@50000000 {
+               hdmi@54280000 {
+                       status = "okay";
+
+                       hdmi-supply = <&hdmi_5v0_sys>;
+                       pll-supply = <&avdd_hdmi_pll>;
+                       vdd-supply = <&avdd_hdmi>;
+
+                       port {
+                               hdmi_out: endpoint {
+                                       remote-endpoint = <&connector_in>;
+                               };
+                       };
+               };
+
                dsi@54300000 {
                        status = "okay";
 
-                       avdd-dsi-csi-supply = <&tps65913_ldo2>;
+                       avdd-dsi-csi-supply = <&avdd_dsi_csi>;
 
                        nvidia,ganged-mode = <&dsib>;
 
@@ -70,7 +84,7 @@
 
                                link2 = <&panel_secondary>;
 
-                               power-supply = <&vdd_lcd>;
+                               power-supply = <&dvdd_1v8_lcd>;
                                backlight = <&backlight>;
                        };
                };
@@ -78,7 +92,7 @@
                dsi@54400000 {
                        status = "okay";
 
-                       avdd-dsi-csi-supply = <&tps65913_ldo2>;
+                       avdd-dsi-csi-supply = <&avdd_dsi_csi>;
 
                        panel_secondary: panel@0 {
                                compatible = "sharp,lq101r1sx01";
                };
        };
 
+       vde@6001a000 {
+               assigned-clocks = <&tegra_car TEGRA114_CLK_VDE>;
+               assigned-clock-parents = <&tegra_car TEGRA114_CLK_PLL_P>;
+               assigned-clock-rates = <408000000>;
+       };
+
        pinmux@70000868 {
-               asus_pad_ec_default: pinmux-asus-pad-ec-default {
-                       ec-interrupt {
-                               nvidia,pins = "kb_col5_pq5";
+               pinctrl-names = "default";
+               pinctrl-0 = <&state_default>;
+
+               state_default: pinmux {
+                       /* WLAN SDIO pinmux */
+                       sdmmc1-clk {
+                               nvidia,pins = "sdmmc1_clk_pz0";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc1-cmd {
+                               nvidia,pins = "sdmmc1_cmd_pz1",
+                                             "sdmmc1_dat0_py7",
+                                             "sdmmc1_dat1_py6",
+                                             "sdmmc1_dat2_py5",
+                                             "sdmmc1_dat3_py4";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       wlan-power {
+                               nvidia,pins = "clk2_req_pcc5";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       wlan-reset {
+                               nvidia,pins = "gpio_x7_aud_px7";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       wlan-host-wake {
+                               nvidia,pins = "pu5";
+                               nvidia,function = "pwm2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       wlan-3v3-com {
+                               nvidia,pins = "pu1";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* UART-A pinmux */
+                       uarta-cts {
+                               nvidia,pins = "kb_row10_ps2";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       uarta-rts {
+                               nvidia,pins = "kb_row9_ps1";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* GNSS UART-B pinmux */
+                       uartb-cts {
+                               nvidia,pins = "uart2_cts_n_pj5";
+                               nvidia,function = "uartb";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       uartb-rts {
+                               nvidia,pins = "uart2_rts_n_pj6";
+                               nvidia,function = "uartb";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       uartb-rxd {
+                               nvidia,pins = "uart2_rxd_pc3";
+                               nvidia,function = "irda";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       uartb-txd {
+                               nvidia,pins = "uart2_txd_pc2";
+                               nvidia,function = "irda";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* Bluetooth UART-C pinmux */
+                       uartc-cts-rxd {
+                               nvidia,pins = "uart3_cts_n_pa1",
+                                             "uart3_rxd_pw7";
+                               nvidia,function = "uartc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       uartc-rts-txd {
+                               nvidia,pins = "uart3_rts_n_pc0",
+                                             "uart3_txd_pw6";
+                               nvidia,function = "uartc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       bt-shutdown {
+                               nvidia,pins = "kb_col6_pq6",
+                                             "kb_col7_pq7";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       bt-dev-wake {
+                               nvidia,pins = "clk3_req_pee1";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       bt-host-wake {
+                               nvidia,pins = "pu6";
+                               nvidia,function = "pwm3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       bt-pcm-dap4-out {
+                               nvidia,pins = "dap4_fs_pp4",
+                                             "dap4_dout_pp6",
+                                             "dap4_sclk_pp7";
+                               nvidia,function = "i2s3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       bt-pcm-dap4-in {
+                               nvidia,pins = "dap4_din_pp5";
+                               nvidia,function = "i2s3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* UART-D pinmux */
+                       uartd-cts {
+                               nvidia,pins = "gmi_a17_pb0";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       uartd-rts {
+                               nvidia,pins = "gmi_a16_pj7",
+                                             "gmi_a19_pk7";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* MicroSD pinmux */
+                       sdmmc3-clk {
+                               nvidia,pins = "sdmmc3_clk_pa6";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc3-data {
+                               nvidia,pins = "sdmmc3_cmd_pa7",
+                                             "sdmmc3_dat0_pb7",
+                                             "sdmmc3_dat1_pb6",
+                                             "sdmmc3_dat2_pb5",
+                                             "sdmmc3_dat3_pb4",
+                                             "kb_col4_pq4",
+                                             "sdmmc3_cd_n_pv2",
+                                             "sdmmc3_clk_lb_out_pee4",
+                                             "sdmmc3_clk_lb_in_pee5";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       microsd-pwr {
+                               nvidia,pins = "gmi_clk_pk1";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* EMMC pinmux */
+                       sdmmc4-clk-cmd {
+                               nvidia,pins = "sdmmc4_clk_pcc4";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc4-data {
+                               nvidia,pins = "sdmmc4_cmd_pt7",
+                                             "sdmmc4_dat0_paa0",
+                                             "sdmmc4_dat1_paa1",
+                                             "sdmmc4_dat2_paa2",
+                                             "sdmmc4_dat3_paa3",
+                                             "sdmmc4_dat4_paa4",
+                                             "sdmmc4_dat5_paa5",
+                                             "sdmmc4_dat6_paa6",
+                                             "sdmmc4_dat7_paa7";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* I2C pinmux */
+                       gen1-i2c {
+                               nvidia,pins = "gen1_i2c_scl_pc4",
+                                             "gen1_i2c_sda_pc5";
+                               nvidia,function = "i2c1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gen2-i2c {
+                               nvidia,pins = "gen2_i2c_scl_pt5",
+                                             "gen2_i2c_sda_pt6";
+                               nvidia,function = "i2c2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       cam-i2c {
+                               nvidia,pins = "cam_i2c_scl_pbb1",
+                                             "cam_i2c_sda_pbb2";
+                               nvidia,function = "i2c3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <TEGRA_PIN_DISABLE>;
+                       };
+                       
+                       ddc-i2c {
+                               nvidia,pins = "ddc_scl_pv4",
+                                             "ddc_sda_pv5";
+                               nvidia,function = "i2c4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pwr-i2c {
+                               nvidia,pins = "pwr_i2c_scl_pz6",
+                                             "pwr_i2c_sda_pz7";
+                               nvidia,function = "i2cpwr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* SPI pinmux */
+                       spi1-out {
+                               nvidia,pins = "ulpi_clk_py0",
+                                             "ulpi_nxt_py2",
+                                             "ulpi_stp_py3";
+                               nvidia,function = "spi1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spi1-in {
+                               nvidia,pins = "ulpi_dir_py1";
+                               nvidia,function = "spi1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       spi2 {
+                               nvidia,pins = "ulpi_data4_po5",
+                                             "ulpi_data7_po0";
+                               nvidia,function = "spi2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       spi4-out {
+                               nvidia,pins = "gmi_ad6_pg6",
+                                             "gmi_wr_n_pi0";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spi4-in {
+                               nvidia,pins = "gmi_ad5_pg5",
+                                             "gmi_ad7_pg7";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* GPIO keys pinmux */
+                       hall-switch {
+                               nvidia,pins = "ulpi_data4_po5";
+                               nvidia,function = "spi2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       lineout-switch {
+                               nvidia,pins = "gpio_x5_aud_px5";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       power-key {
+                               nvidia,pins = "kb_col0_pq0";
                                nvidia,function = "kbc";
                                nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       volume-keys {
+                               nvidia,pins = "kb_row1_pr1",
+                                             "kb_row2_pr2";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* Sensors pinmux */
+                       nct-irq {
+                               nvidia,pins = "ulpi_data3_po4";
+                               nvidia,function = "ulpi";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       mpu-irq {
+                               nvidia,pins = "kb_row3_pr3";
+                               nvidia,function = "rsvd3";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* HDMI pinmux */
+                       hdmi-hpd {
+                               nvidia,pins = "hdmi_int_pn7";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       hdmi-en {
+                               nvidia,pins = "dap3_dout_pp2";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       hdmi-cec {
+                               nvidia,pins = "hdmi_cec_pee3";
+                               nvidia,function = "cec";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* LED pinmux */
+                       backlight-pwm {
+                               nvidia,pins = "gmi_ad9_ph1";
+                               nvidia,function = "pwm1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       backlight-en {
+                               nvidia,pins = "gmi_ad10_ph2";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* Touchscreen pinmux */
+                       touch-irq {
+                               nvidia,pins = "gmi_cs4_n_pk2";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       touch-rst {
+                               nvidia,pins = "gmi_cs3_n_pk4";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       touch-pwr {
+                               nvidia,pins = "gmi_ad8_ph0";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       touch-vio {
+                               nvidia,pins = "gmi_ad12_ph4";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* AUDIO pinmux */
+                       audio-ldo1 {
+                               nvidia,pins = "sdmmc1_wp_n_pv3";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       hp-detect {
+                               nvidia,pins = "kb_row7_pr7";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap-i2s0-in {
+                               nvidia,pins = "dap1_din_pn1";
+                               nvidia,function = "i2s0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap-i2s0-out {
+                               nvidia,pins = "dap1_dout_pn2",
+                                             "dap1_fs_pn0",
+                                             "dap1_sclk_pn3";
+                               nvidia,function = "i2s0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       dap-i2s1-in {
+                               nvidia,pins = "dap2_din_pa4";
+                               nvidia,function = "i2s1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap-i2s1-out {
+                               nvidia,pins = "dap2_dout_pa5",
+                                             "dap2_fs_pa2",
+                                             "dap2_sclk_pa3";
+                               nvidia,function = "i2s1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       dap-i2s2-in {
+                               nvidia,pins = "dap3_fs_pp0",
+                                             "dap3_sclk_pp3";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap-i2s2-out {
+                               nvidia,pins = "dap3_din_pp1";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spdif-in {
+                               nvidia,pins = "spdif_in_pk6";
+                               nvidia,function = "rsvd3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spdif-out {
+                               nvidia,pins = "spdif_out_pk5";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* AsusEC pinmux */
+                       ec-irq {
+                               nvidia,pins = "kb_col5_pq5";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ec-req {
+                               nvidia,pins = "kb_col2_pq2";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       hotplug-i2c {
+                               nvidia,pins = "ulpi_data7_po0";
+                               nvidia,function = "spi2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ps2-irq {
+                               nvidia,pins = "gpio_w2_aud_pw2";
+                               nvidia,function = "spi6";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       kbd-irq {
+                               nvidia,pins = "gmi_cs0_n_pj0";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dvfs-pin {
+                               nvidia,pins = "dvfs_pwm_px0",
+                                             "dvfs_clk_px2";
+                               nvidia,function = "cldvfs";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* Core pinmux */
+                       clk-32k-out {
+                               nvidia,pins = "clk_32k_out_pa0";
+                               nvidia,function = "soc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sys-clk-req {
+                               nvidia,pins = "sys_clk_req_pz5";
+                               nvidia,function = "sysclk";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       core-pwr-req {
+                               nvidia,pins = "core_pwr_req";
+                               nvidia,function = "pwron";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       cpu-pwr-req {
+                               nvidia,pins = "cpu_pwr_req";
+                               nvidia,function = "cpu";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pwr-int-n {
+                               nvidia,pins = "pwr_int_n";
+                               nvidia,function = "pmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       clk-32k-in {
+                               nvidia,pins = "clk_32k_in";
+                               nvidia,function = "clk";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       owr {
+                               nvidia,pins = "owr";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       reset-out-n {
+                               nvidia,pins = "reset_out_n";
+                               nvidia,function = "reset_out_n";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* ULPI pinmux */
+                       ulpi-data0-6 {
+                               nvidia,pins = "ulpi_data0_po1",
+                                             "ulpi_data6_po7";
+                               nvidia,function = "ulpi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ulpi-data1-5 {
+                               nvidia,pins = "ulpi_data1_po2",
+                                             "ulpi_data5_po6";
+                               nvidia,function = "ulpi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ulpi-data2-3 {
+                               nvidia,pins = "ulpi_data2_po3",
+                                             "ulpi_data3_po4";
+                               nvidia,function = "ulpi";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* PORT V */
+                       pv0-gpio {
+                               nvidia,pins = "pv0";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pv1-gpio {
+                               nvidia,pins = "pv1";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* PORT U */
+                       pu0-gpio {
+                               nvidia,pins = "pu0";
+                               nvidia,function = "rsvd3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pu2-gpio {
+                               nvidia,pins = "pu2";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* PWM pinmux */
+                       pwm0 {
+                               nvidia,pins = "pu3";
+                               nvidia,function = "pwm0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pwm1 {
+                               nvidia,pins = "pu4";
+                               nvidia,function = "pwm1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* EXTPERIPH pinmux */
+                       clk1-out {
+                               nvidia,pins = "clk1_out_pw4";
+                               nvidia,function = "extperiph1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk2-out {
+                               nvidia,pins = "clk2_out_pw5";
+                               nvidia,function = "extperiph2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk3-out {
+                               nvidia,pins = "clk3_out_pee0";
+                               nvidia,function = "extperiph3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk1-req {
+                               nvidia,pins = "clk1_req_pee2";
+                               nvidia,function = "rsvd3";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* GMI pinmux */
+                       gmi-wp-n {
+                               nvidia,pins = "gmi_wp_n_pc7";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi-adv {
+                               nvidia,pins = "gmi_adv_n_pk0";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi-ad0-ad1 {
+                               nvidia,pins = "gmi_ad0_pg0",
+                                             "gmi_ad1_pg1";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi-ad2-ad3 {
+                               nvidia,pins = "gmi_ad2_pg2",
+                                             "gmi_ad3_pg3";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi-iordy {
+                               nvidia,pins = "gmi_iordy_pi5";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi-a18 {
+                               nvidia,pins = "gmi_a18_pb1";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi-wait {
+                               nvidia,pins = "gmi_wait_pi7";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi-cs6-n {
+                               nvidia,pins = "gmi_cs6_n_pi3";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi-cs7-n {
+                               nvidia,pins = "gmi_cs7_n_pi6";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi-dqs-p {
+                               nvidia,pins = "gmi_dqs_p_pj3";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi-cs2-ad {
+                               nvidia,pins = "gmi_cs2_n_pk3",
+                                             "gmi_ad14_ph6",
+                                             "gmi_ad15_ph7";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi-cs4-clk {
+                               nvidia,pins = "gmi_cs4_n_pk2",
+                                             "gmi_clk_lb";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi-ad11 {
+                               nvidia,pins = "gmi_ad11_ph3";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi-cs1-oe {
+                               nvidia,pins = "gmi_cs1_n_pj2",
+                                             "gmi_oe_n_pi1";
+                               nvidia,function = "soc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                nvidia,enable-input = <TEGRA_PIN_ENABLE>;
                        };
 
-                       ec-request {
-                               nvidia,pins = "kb_col2_pq2";
-                               nvidia,function = "kbc";
+                       gmi-ad4 {
+                               nvidia,pins = "gmi_ad4_pg4";
+                               nvidia,function = "rsvd4";
                                nvidia,pull = <TEGRA_PIN_PULL_NONE>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
-                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
                        };
-               };
 
-               backlight_default: pinmux-backlight-default {
-                       backlight-enable {
-                               nvidia,pins = "gmi_ad10_ph2";
-                               nvidia,function = "gmi";
+                       gmi-ad13 {
+                               nvidia,pins = "gmi_ad13_ph5";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi-rst-n {
+                               nvidia,pins = "gmi_rst_n_pi4";
+                               nvidia,function = "rsvd4";
                                nvidia,pull = <TEGRA_PIN_PULL_NONE>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                nvidia,enable-input = <TEGRA_PIN_DISABLE>;
                        };
-               };
 
-               codec_default: pinmux-codec-default {
-                       interrupt {
-                               nvidia,pins = "gpio_w2_aud_pw2",
-                                               "gpio_w3_aud_pw3";
-                               nvidia,function = "spi6";
-                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                       /* PORT CC */
+                       pcc-gpio {
+                               nvidia,pins = "pcc1", "pcc2";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                nvidia,enable-input = <TEGRA_PIN_ENABLE>;
                        };
 
-                       ldo1-en {
-                               nvidia,pins = "sdmmc1_wp_n_pv3";
-                               nvidia,function = "sdmmc1";
+                       /* PORT BB */
+                       pbb3-gpio {
+                               nvidia,pins = "pbb3";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pbb4-5-6-gpio {
+                               nvidia,pins = "pbb4", "pbb5", "pbb6";
+                               nvidia,function = "rsvd4";
                                nvidia,pull = <TEGRA_PIN_PULL_NONE>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                nvidia,enable-input = <TEGRA_PIN_DISABLE>;
                        };
-               };
 
-               gpio_hall_sensor_default: pinmux-gpio-hall-sensor-default {
-                       ulpi_data4_po5 {
-                               nvidia,pins = "ulpi_data4_po5";
-                               nvidia,function = "spi2";
+                       pbb7-gpio {
+                               nvidia,pins = "pbb7";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* KBC pinmux */
+                       kb-r0-c1 {
+                               nvidia,pins = "kb_row0_pr0",
+                                             "kb_col1_pq1";
+                               nvidia,function = "rsvd2";
                                nvidia,pull = <TEGRA_PIN_PULL_UP>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                nvidia,enable-input = <TEGRA_PIN_ENABLE>;
                        };
-               };
 
-               gpio_keys_default: pinmux-gpio-keys-default {
-                       power {
-                               nvidia,pins = "kb_col0_pq0";
+                       kb-row4 {
+                               nvidia,pins = "kb_row4_pr4";
                                nvidia,function = "kbc";
-                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
                                nvidia,tristate = <TEGRA_PIN_ENABLE>;
                                nvidia,enable-input = <TEGRA_PIN_ENABLE>;
                        };
 
-                       volume {
-                               nvidia,pins = "kb_row1_pr1",
-                                               "kb_row2_pr2";
-                               nvidia,function = "rsvd2";
+                       kb-row5 {
+                               nvidia,pins = "kb_row5_pr5";
+                               nvidia,function = "kbc";
                                nvidia,pull = <TEGRA_PIN_PULL_UP>;
                                nvidia,tristate = <TEGRA_PIN_ENABLE>;
                                nvidia,enable-input = <TEGRA_PIN_ENABLE>;
                        };
-               };
 
-               hp_det_default: pinmux-hp-det-default {
-                       gmi_iordy_pi5 {
-                               nvidia,pins = "kb_row7_pr7";
-                               nvidia,function = "rsvd2";
-                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                       kb-row6 {
+                               nvidia,pins = "kb_row6_pr6";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                nvidia,enable-input = <TEGRA_PIN_ENABLE>;
                        };
-               };
 
-               imu_default: pinmux-imu-default {
-                       kb_row3_pr3 {
-                               nvidia,pins = "kb_row3_pr3";
-                               nvidia,function = "rsvd3";
-                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                       kb-r8-c3 {
+                               nvidia,pins = "kb_row8_ps0",
+                                             "kb_col3_pq3";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                nvidia,enable-input = <TEGRA_PIN_ENABLE>;
                        };
-               };
 
-               pwm_default: pinmux-pwm-default {
-                       gmi_ad9_ph1 {
-                               nvidia,pins = "gmi_ad9_ph1";
-                               nvidia,function = "pwm1";
+                       /* VI pinmux */
+                       cam-mclk {
+                               nvidia,pins = "cam_mclk_pcc0",
+                                             "pbb0";
+                               nvidia,function = "vi_alt3";
                                nvidia,pull = <TEGRA_PIN_PULL_NONE>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                nvidia,enable-input = <TEGRA_PIN_DISABLE>;
                        };
-               };
 
-               /* XXX make this something more sensible */
-               pwm_sleep: pinmux-pwm-sleep {
-                       gmi_ad9_ph1 {
-                               nvidia,pins = "gmi_ad9_ph1";
-                               nvidia,function = "pwm1";
+                       /* AUD pinmux */
+                       gpio-x4-aud {
+                               nvidia,pins = "gpio_x4_aud_px4";
+                               nvidia,function = "rsvd1";
                                nvidia,pull = <TEGRA_PIN_PULL_NONE>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                nvidia,enable-input = <TEGRA_PIN_DISABLE>;
                        };
-               };
 
-               sdmmc3_default: pinmux-sdmmc3-default {
-                       drive_sdio3 {
-                               nvidia,pins = "drive_sdio3";
-                               nvidia,high-speed-mode = <TEGRA_PIN_ENABLE>;
-                               nvidia,schmitt = <TEGRA_PIN_DISABLE>;
-                               nvidia,pull-down-strength = <22>;
-                               nvidia,pull-up-strength = <36>;
-                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>;
-                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>;
+                       gpio-x1-aud {
+                               nvidia,pins = "gpio_x1_aud_px1";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
                        };
 
-                       sdmmc3_clk_pa6 {
-                               nvidia,pins = "sdmmc3_clk_pa6";
-                               nvidia,function = "sdmmc3";
-                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                       gpio-x3-aud {
+                               nvidia,pins = "gpio_x3_aud_px3";
+                               nvidia,function = "rsvd3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                nvidia,enable-input = <TEGRA_PIN_ENABLE>;
                        };
 
-                       sdmmc3_cmd_pa7 {
-                               nvidia,pins = "sdmmc3_cmd_pa7",
-                                               "sdmmc3_dat0_pb7",
-                                               "sdmmc3_dat1_pb6",
-                                               "sdmmc3_dat2_pb5",
-                                               "sdmmc3_dat3_pb4",
-                                               "kb_col4_pq4",
-                                               "sdmmc3_clk_lb_out_pee4",
-                                               "sdmmc3_clk_lb_in_pee5",
-                                               "sdmmc3_cd_n_pv2";
-                               nvidia,function = "sdmmc3";
+                       gpio-x6-aud {
+                               nvidia,pins = "gpio_x6_aud_px6";
+                               nvidia,function = "rsvd4";
                                nvidia,pull = <TEGRA_PIN_PULL_UP>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                nvidia,enable-input = <TEGRA_PIN_ENABLE>;
                        };
-               };
 
-               sdmmc3_vdd_default: pinmux-sdmmc3-vdd-default {
-                       gmi_clk_pk1 {
-                               nvidia,pins = "gmi_clk_pk1";
-                               nvidia,function = "gmi";
-                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                       usb-vbus {
+                               nvidia,pins = "usb_vbus_en0_pn4",
+                                             "usb_vbus_en1_pn5";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
                                nvidia,enable-input = <TEGRA_PIN_DISABLE>;
                        };
-               };
 
-               vdd_lcd_default: pinmux-vdd-lcd-default {
-                       sdmmc4_clk_pcc4 {
-                               nvidia,pins = "sdmmc4_clk_pcc4";
-                               nvidia,function = "sdmmc4";
-                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       /* GPIO power/drive control */
+                       drive-sdio1 {
+                               nvidia,pins = "drive_sdio1";
+                               nvidia,high-speed-mode = <TEGRA_PIN_ENABLE>;
+                               nvidia,schmitt = <TEGRA_PIN_DISABLE>;
+                               nvidia,pull-down-strength = <36>;
+                               nvidia,pull-up-strength = <20>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOW>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOW>;
+                       };
+
+                       drive-sdio3 {
+                               nvidia,pins = "drive_sdio3";
+                               nvidia,high-speed-mode = <TEGRA_PIN_ENABLE>;
+                               nvidia,schmitt = <TEGRA_PIN_DISABLE>;
+                               nvidia,pull-down-strength = <22>;
+                               nvidia,pull-up-strength = <36>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>;
+                       };
+
+                       drive-gma {
+                               nvidia,pins = "drive_gma";
+                               nvidia,high-speed-mode = <TEGRA_PIN_ENABLE>;
+                               nvidia,schmitt = <TEGRA_PIN_DISABLE>;
+                               nvidia,pull-down-strength = <2>;
+                               nvidia,pull-up-strength = <2>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>;
                        };
                };
        };
        };
 
        serial@70006200 {
-               /* Bluetooth */
+               compatible = "nvidia,tegra114-hsuart", "nvidia,tegra30-hsuart";
+               reset-names = "serial";
+               /delete-property/ reg-shift;
+               status = "okay";
+
+               nvidia,adjust-baud-rates = <0 9600 100>,
+                                          <9600 115200 200>,
+                                          <1000000 4000000 136>;
+
+               bluetooth {
+                       compatible = "brcm,bcm4334-bt";
+                       max-speed = <4000000>;
+
+                       clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
+                       clock-names = "txco";
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(U, 6) IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "host-wakeup";
+
+                       device-wakeup-gpios = <&gpio TEGRA_GPIO(EE, 1) GPIO_ACTIVE_HIGH>;
+                       shutdown-gpios = <&gpio TEGRA_GPIO(Q, 7) GPIO_ACTIVE_HIGH>;
+                       reset-gpios = <&gpio TEGRA_GPIO(Q, 6) GPIO_ACTIVE_LOW>;
+
+                       vbat-supply = <&vdd_3v3_com>;
+                       vddio-supply = <&vdd_1v8_vio>;
+               };
        };
 
        serial@70006300 {
 
        pwm@7000a000 {
                status = "okay";
-
-               pinctrl-names = "default", "sleep";
-               pinctrl-0 = <&pwm_default>;
-               pinctrl-1 = <&pwm_sleep>;
        };
 
        i2c@7000c000 {
                        compatible = "asahi-kasei,ak09911";
                        reg = <0xc>;
 
-                       vdd-supply = <&vdd_3v3_sys>;
+                       /* no DRDY (polling) */
+
+                       vdd-supply = <&vdd_2v85_sen>;
+                       vid-supply = <&vdd_1v8_vio>;
+
+                       mount-matrix =  "0",  "1", "0",
+                                       "1",  "0", "0",
+                                       "0",  "0","-1";
                };
 
                rt5639: audio-codec@1c {
                        compatible = "realtek,rt5639";
                        reg = <0x1c>;
 
-                       interrupt-parent = <&gpio>;
-                       interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_EDGE_FALLING>;
-
-                       realtek,ldo1-en-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
+                       realtek,ldo1-en-gpios =
+                               <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
 
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&codec_default>;
+                       clocks = <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+                       clock-names = "mclk";
                };
 
                temp_sensor: temperature-sensor@4c {
                        compatible = "onnn,nct1008";
                        reg = <0x4c>;
 
-                       vcc-supply = <&vdd_3v3_sys>;
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(O, 4) IRQ_TYPE_EDGE_FALLING>;
+
+                       vcc-supply = <&vdd_1v8_vio>;
                        #thermal-sensor-cells = <1>;
                };
 
                        interrupt-parent = <&gpio>;
                        interrupts = <TEGRA_GPIO(R, 3) IRQ_TYPE_LEVEL_HIGH>;
 
+                       vdd-supply = <&vdd_2v85_sen>;
+                       vddio-supply = <&vdd_1v8_vio>;
+
                        mount-matrix =  "0", "-1", "0",
                                        "1",  "0", "0",
                                        "0",  "0", "1";
-
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&imu_default>;
                };
        };
 
                power-sensor@44 {
                        compatible = "ti,ina230";
                        reg = <0x44>;
+
+                       shunt-resistor = <5000>;
                };
        };
 
                        compatible = "dynaimage,al3320a";
                        reg = <0x1c>;
 
-                       vdd-supply = <&vdd_3v3_sys>;
+                       vdd-supply = <&vdd_1v8_vio>;
                };
        };
 
-       i2c@7000c700 {
-               /* HDMI DDC */
+       hdmi_ddc: i2c@7000c700 {
+               status = "okay";
+               clock-frequency = <10000>;
        };
 
        i2c@7000d000 {
 
                        ti,system-power-controller;
 
+                       palmas_gpadc: adc {
+                               compatible = "ti,palmas-gpadc";
+                               interrupts = <18 IRQ_TYPE_NONE>,
+                                            <16 IRQ_TYPE_NONE>,
+                                            <17 IRQ_TYPE_NONE>;
+
+                               ti,channel0-current-microamp = <5>;
+                               ti,channel3-current-microamp = <400>;
+                               ti,enable-extended-delay;
+
+                               #io-channel-cells = <1>;
+                       };
+
+                       palmas_extcon: extcon {
+                               compatible = "ti,palmas-usb-vid";
+                               ti,enable-vbus-detection;
+                               ti,enable-id-detection;
+                       };
+
                        palmas_gpio: gpio {
                                compatible = "ti,palmas-gpio";
                                gpio-controller;
                                #gpio-cells = <2>;
                        };
 
+                       palmas_clk32kg@0 {
+                               compatible = "ti,palmas-clk32kg";
+                               #clock-cells = <0>;
+                       };
+
                        pinmux {
                                compatible = "ti,tps65913-pinctrl";
                                ti,palmas-enable-dvfs1;
                        pmic {
                                compatible = "ti,tps65913-pmic", "ti,palmas-pmic";
 
-                               ldo1-in-supply = <&tps65913_smps7>;
-                               ldo2-in-supply = <&tps65913_smps7>;
-                               ldo4-in-supply = <&tps65913_smps8>;
-                               ldo5-in-supply = <&tps65913_smps9>;
-                               ldo6-in-supply = <&tps65913_smps9>;
-                               ldo7-in-supply = <&tps65913_smps9>;
-                               ldo9-in-supply = <&tps65913_smps9>;
+                               ldo1-in-supply = <&vddio_ddr>;
+                               ldo2-in-supply = <&vddio_ddr>;
+                               ldo4-in-supply = <&vdd_1v8_vio>;
+                               ldo5-in-supply = <&vcore_emmc>;
+                               ldo6-in-supply = <&vcore_emmc>;
+                               ldo7-in-supply = <&vcore_emmc>;
+                               ldo9-in-supply = <&vcore_emmc>;
+                               ldoln-in-supply = <&vdd_smps10_out2>;
 
                                regulators {
-                                       tps65913_smps123: smps123 {
-                                               regulator-name = "vdd-cpu";
+                                       vdd_cpu: smps123 {
+                                               regulator-name = "vdd_cpu";
                                                regulator-min-microvolt = <900000>;
                                                regulator-max-microvolt = <1350000>;
                                                regulator-always-on;
                                                ti,mode-sleep = <3>;
                                        };
 
-                                       tps65913_smps45: smps45 {
-                                               regulator-name = "vdd-core";
+                                       vdd_core: smps45 {
+                                               regulator-name = "vdd_core";
                                                regulator-min-microvolt = <900000>;
                                                regulator-max-microvolt = <1400000>;
                                                regulator-always-on;
                                                ti,roof-floor = <3>;
                                        };
 
-                                       smps6 {
-                                               regulator-name = "va-lcd-hv";
-                                               regulator-min-microvolt = <1000000>;
-                                               regulator-max-microvolt = <1000000>;
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
+                                       /* smps6 disabled */
 
-                                       tps65913_smps7: smps7 {
-                                               regulator-name = "vdd-ddr";
+                                       vddio_ddr: smps7 {
+                                               regulator-name = "vddio_ddr";
                                                regulator-min-microvolt = <1350000>;
                                                regulator-max-microvolt = <1350000>;
                                                regulator-always-on;
                                                regulator-boot-on;
                                        };
 
-                                       tps65913_smps8: smps8 {
-                                               regulator-name = "vdd-1v8";
+                                       vdd_1v8_vio: smps8 {
+                                               regulator-name = "vdd_1v8";
                                                regulator-min-microvolt = <1800000>;
                                                regulator-max-microvolt = <1800000>;
                                                regulator-always-on;
                                                regulator-boot-on;
                                        };
 
-                                       tps65913_smps9: smps9 {
-                                               regulator-name = "vdd-sd";
+                                       vcore_emmc: smps9 {
+                                               regulator-name = "vdd_emmc";
                                                regulator-min-microvolt = <2900000>;
                                                regulator-max-microvolt = <2900000>;
-                                               regulator-always-on;
+                                               regulator-boot-on;
                                        };
 
-                                       tps65913_smps10_out1: smps10_out1 {
-                                               regulator-name = "vd-smps10-out1";
+                                       smps10_out1 {
+                                               regulator-name = "vd_smps10_out1";
                                                regulator-min-microvolt = <5000000>;
                                                regulator-max-microvolt = <5000000>;
                                                regulator-always-on;
                                                regulator-boot-on;
                                        };
 
-                                       tps65913_smps10_out2: smps10_out2 {
-                                               regulator-name = "vd-smps10-out2";
+                                       vdd_smps10_out2: smps10_out2 {
+                                               regulator-name = "vd_smps10_out2";
                                                regulator-min-microvolt = <5000000>;
                                                regulator-max-microvolt = <5000000>;
                                                regulator-always-on;
                                                regulator-boot-on;
                                        };
 
-                                       tps65913_ldo1: ldo1 {
-                                               regulator-name = "vdd-hdmi-pll";
+                                       avdd_hdmi_pll: ldo1 {
+                                               regulator-name = "avdd_hdmi_pll";
                                                regulator-min-microvolt = <1050000>;
                                                regulator-max-microvolt = <1050000>;
                                                regulator-always-on;
+                                               regulator-boot-on;
                                                ti,roof-floor = <3>;
                                        };
 
-                                       tps65913_ldo2: ldo2 {
-                                               regulator-name = "vdd-2v8-dsi-csi";
+                                       avdd_dsi_csi: ldo2 {
+                                               regulator-name = "avdd_dsi_csi";
                                                regulator-min-microvolt = <1200000>;
                                                regulator-max-microvolt = <1200000>;
                                                regulator-boot-on;
                                        };
 
                                        ldo3 {
-                                               regulator-name = "vpp-fuse";
+                                               regulator-name = "vpp_fuse";
                                                regulator-min-microvolt = <1800000>;
                                                regulator-max-microvolt = <1800000>;
                                        };
 
-                                       ldo4 {
-                                               regulator-name = "vdd-1v2-cam";
+                                       vdd_1v2_cam: ldo4 {
+                                               regulator-name = "vdd_1v2_cam";
                                                regulator-min-microvolt = <1200000>;
                                                regulator-max-microvolt = <1200000>;
                                        };
 
-                                       ldo5 {
-                                               regulator-name = "vdd-cam";
+                                       avdd_2v8_cam: ldo5 {
+                                               regulator-name = "avdd_cam2";
                                                regulator-min-microvolt = <2800000>;
                                                regulator-max-microvolt = <2800000>;
                                        };
 
-                                       ldo6 {
-                                               regulator-name = "vdd-dev";
+                                       vdd_2v85_sen: ldo6 {
+                                               regulator-name = "vdd_dev";
                                                regulator-min-microvolt = <2850000>;
                                                regulator-max-microvolt = <2850000>;
-                                               regulator-boot-on;
                                        };
 
-                                       ldo7 {
-                                               regulator-name = "vdd-2v8-cam";
+                                       avdd_2v8_af: ldo7 {
+                                               regulator-name = "avdd_2v8_cam";
                                                regulator-min-microvolt = <2800000>;
                                                regulator-max-microvolt = <2800000>;
                                        };
 
-                                       tps65913_ldo8: ldo8 {
-                                               regulator-name = "vdd-rtc";
+                                       ldo8 {
+                                               regulator-name = "vdd_rtc";
                                                regulator-min-microvolt = <950000>;
                                                regulator-max-microvolt = <950000>;
                                                regulator-always-on;
                                                ti,enable-ldo8-tracking;
                                        };
 
-                                       tps65913_ldo9: ldo9 {
-                                               regulator-name = "vdd-sdmmc";
-                                               regulator-min-microvolt = <1800000>;
+                                       vddio_usd: ldo9 {
+                                               regulator-name = "vddio_usd";
+                                               /* min voltage of 1.8v is not stable */
+                                               regulator-min-microvolt = <2900000>;
                                                regulator-max-microvolt = <2900000>;
                                        };
 
-                                       tps65913_ldoln: ldoln {
-                                               regulator-name = "vdd-hdmi";
+                                       avdd_hdmi: ldoln {
+                                               regulator-name = "avdd_hdmi";
                                                regulator-min-microvolt = <3300000>;
                                                regulator-max-microvolt = <3300000>;
+                                               regulator-boot-on;
                                        };
 
-                                       ldousb {
-                                               regulator-name = "vdd-usb";
+                                       avdd_usb: ldousb {
+                                               regulator-name = "avdd_usb";
                                                regulator-min-microvolt = <3300000>;
                                                regulator-max-microvolt = <3300000>;
-                                               regulator-always-on;
                                                regulator-boot-on;
                                        };
                                };
                        rtc {
                                compatible = "ti,palmas-rtc";
                                interrupt-parent = <&palmas>;
-                               interrupts = <8 0>;
+                               interrupts = <8 IRQ_TYPE_NONE>;
                        };
                };
        };
 
+       pmc@7000e400 {
+               status = "okay";
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <300>;
+               nvidia,cpu-pwr-off-time = <300>;
+               nvidia,core-pwr-good-time = <641 3845>;
+               nvidia,core-pwr-off-time = <2000>;
+               nvidia,core-power-req-active-high;
+               nvidia,sys-clock-req-active-high;
+
+               /* Clear DEV_ON bit in DEV_CTRL register of TPS65913 PMIC  */
+               i2c-thermtrip {
+                       nvidia,i2c-controller-id = <4>;
+                       nvidia,bus-addr = <0x58>;
+                       nvidia,reg-addr = <0xA0>;
+                       nvidia,reg-data = <0x00>;
+               };
+       };
+
        ahub@70080000 {
-               i2s@70080300 {
+               /* HIFI CODEC (i2s1) */
+               i2s@70080400 {
+                       status = "okay";
+               };
+
+               /* BT SCO (i2s3) */
+               i2s@70080600 {
                        status = "okay";
                };
        };
 
+       brcm_wifi_pwrseq: pwrseq-wifi {
+               compatible = "mmc-pwrseq-simple";
+
+               clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
+               clock-names = "ext_clock";
+
+               reset-gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>;
+               post-power-on-delay-ms = <300>;
+               power-off-delay-us = <300>;
+       };
+
+       /* WiFi */
        mmc@78000000 {
-               /* WiFi */
+               status = "okay";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               assigned-clocks = <&tegra_car TEGRA114_CLK_SDMMC1>;
+               assigned-clock-parents = <&tegra_car TEGRA114_CLK_PLL_P>;
+               assigned-clock-rates = <82000000>;
+
+               max-frequency = <82000000>;
+               keep-power-in-suspend;
+               bus-width = <4>;
+               non-removable;
+
+               sd-uhs-ddr50;
+               mmc-ddr-1_8v;
+
+               power-gpios = <&gpio TEGRA_GPIO(CC, 5) GPIO_ACTIVE_HIGH>;
+
+               nvidia,default-tap = <0x2>;
+               nvidia,default-trim = <0x2>;
+
+               mmc-pwrseq = <&brcm_wifi_pwrseq>;
+               vmmc-supply = <&vdd_3v3_com>;
+               vqmmc-supply = <&vdd_1v8_vio>;
+
+               wifi@1 {
+                       compatible = "brcm,bcm4329-fmac";
+                       reg = <1>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(U, 5) IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "host-wake";
+               };
        };
 
        /* MicroSD card */
                nvidia,default-tap = <0x3>;
                nvidia,default-trim = <0x3>;
 
-               vmmc-supply = <&vdd_usd>;
-               vqmmc-supply = <&tps65913_ldo9>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdmmc3_default>;
+               vmmc-supply = <&vdd_2v9_usd>;
+               vqmmc-supply = <&vddio_usd>;
        };
 
+       /* eMMC */
        mmc@78000600 {
-               /* eMMC */
+               status = "okay";
+               bus-width = <8>;
+
+               non-removable;
+               mmc-ddr-1_8v;
+
+               vmmc-supply = <&vcore_emmc>;
+               vqmmc-supply = <&vdd_1v8_vio>;
        };
 
+       /* Peripheral USB via ASUS connector */
        usb@7d000000 {
                compatible = "nvidia,tegra114-udc";
                status = "okay";
                dr_mode = "peripheral";
-
-               /* Peripheral USB via ASUS connector */
        };
 
        usb-phy@7d000000 {
                status = "okay";
+               dr_mode = "peripheral";
+               vbus-supply = <&avdd_usb>;
        };
 
+       /* Host USB via dock */
        usb@7d008000 {
                status = "okay";
-
-               /* Host USB via dock */
        };
 
        usb-phy@7d008000 {
        backlight: backlight {
                compatible = "pwm-backlight";
 
-               enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
-               power-supply = <&vdd_5v0_sys>;
+               power-supply = <&vdd_3v7_bl>;
                pwms = <&pwm 1 1000000>;
 
                brightness-levels = <1 255>;
                num-interpolated-steps = <254>;
                default-brightness-level = <224>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&backlight_default>;
        };
 
        /* PMIC has a built-in 32KHz oscillator which is used by PMC */
                clock-output-names = "pmic-oscillator";
        };
 
-       gpio-hall-sensor {
-               compatible = "gpio-keys";
+       connector {
+               compatible = "hdmi-connector";
+               type = "d";
 
-               label = "GPIO Hall Effect Sensor";
+               hpd-gpios = <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
+               ddc-i2c-bus = <&hdmi_ddc>;
 
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_hall_sensor_default>;
+               port {
+                       connector_in: endpoint {
+                               remote-endpoint = <&hdmi_out>;
+                       };
+               };
+       };
+
+       extcon-keys {
+               compatible = "gpio-keys";
 
                switch-hall-sensor {
                        label = "Hall Effect Sensor";
                        linux,can-disable;
                        wakeup-source;
                };
+
+               switch-lineout-detect {
+                       label = "Audio dock line-out detect";
+                       gpios = <&gpio TEGRA_GPIO(X, 5) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LINEOUT_INSERT>;
+                       debounce-interval = <10>;
+               };
        };
 
        gpio-keys {
                compatible = "gpio-keys";
 
-               label = "GPIO Buttons";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_keys_default>;
-
-               button-power {
+               key-power {
                        label = "Power";
                        gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_POWER>;
                        wakeup-source;
                };
 
-               button-volume-down {
+               key-volume-down {
                        label = "Volume Down";
                        gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEDOWN>;
                        debounce-interval = <10>;
                };
 
-               button-volume-up {
+               key-volume-up {
                        label = "Volume Up";
                        gpios = <&gpio TEGRA_GPIO(R, 2) GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                        "Speakers", "SPORN",
                        "Speakers", "SPOLP",
                        "Speakers", "SPOLN",
-                       "Mic Jack", "MICBIAS1",
-                       "IN2P", "Mic Jack";
+                       "IN1P", "Mic Jack",
+                       "IN1N", "Mic Jack",
+                       "DMIC1", "Int Mic",
+                       "DMIC2", "Int Mic";
 
-               nvidia,i2s-controller = <&tegra_i2s0>;
+               nvidia,i2s-controller = <&tegra_i2s1>;
                nvidia,audio-codec = <&rt5639>;
 
                nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(R, 7) GPIO_ACTIVE_LOW>;
+               nvidia,int-mic-en-gpios = <&gpio TEGRA_GPIO(K, 3) GPIO_ACTIVE_HIGH>;
 
                clocks = <&tegra_car TEGRA114_CLK_PLL_A>,
                         <&tegra_car TEGRA114_CLK_PLL_A_OUT0>,
 
                assigned-clock-parents = <&tegra_car TEGRA114_CLK_PLL_A_OUT0>,
                                         <&tegra_car TEGRA114_CLK_EXTERN1>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&hp_det_default>;
        };
 
        vdd_5v0_sys: regulator-5v0-sys {
                compatible = "regulator-fixed";
-               regulator-name = "vdd_5v0";
+               regulator-name = "vdd_5v0_sys";
                regulator-min-microvolt = <5000000>;
                regulator-max-microvolt = <5000000>;
                regulator-always-on;
 
        vdd_3v3_sys: regulator-3v3-sys {
                compatible = "regulator-fixed";
-               regulator-name = "vdd_3v3";
+               regulator-name = "vdd_3v3_sys";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
                regulator-always-on;
                regulator-boot-on;
        };
 
-       vdd_lcd: regulator-vdd-lcd {
+       dvdd_1v8_lcd: regulator-vdd-lcd {
                compatible = "regulator-fixed";
-               regulator-name = "vdd_lcd_1v8";
+               regulator-name = "dvdd_1v8_lcd";
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
-               vin-supply = <&tps65913_smps8>;
+               regulator-boot-on;
+               gpio = <&palmas_gpio 4 GPIO_ACTIVE_HIGH>;
                enable-active-high;
-               gpio = <&gpio TEGRA_GPIO(CC, 4) GPIO_ACTIVE_HIGH>;
+               vin-supply = <&vdd_1v8_vio>;
+       };
+
+       vdd_3v7_bl: regulator-bl-en {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v7_bl";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
                regulator-boot-on;
+               gpio = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_5v0_sys>;
+       };
 
-               pinctrl-names = "default";
-               pinctrl-0 = <&vdd_lcd_default>;
+       hdmi_5v0_sys: regulator-hdmi {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_5v0_hdmi";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-boot-on;
+               gpio = <&gpio TEGRA_GPIO(P, 2) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_smps10_out2>;
        };
 
-       vdd_usd: regulator-vdd-usd {
+       vdd_2v9_usd: regulator-vdd-usd {
                compatible = "regulator-fixed";
                regulator-name = "vdd_sd_slot";
                regulator-min-microvolt = <2900000>;
                regulator-max-microvolt = <2900000>;
-               vin-supply = <&tps65913_smps9>;
-               enable-active-high;
+               regulator-boot-on;
                gpio = <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vcore_emmc>;
+       };
 
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdmmc3_vdd_default>;
+       vdd_1v8_cam: regulator-cam-vio {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_1v8_cam";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               gpio = <&palmas_gpio 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_1v8_vio>;
+       };
+
+       vdd_1v2_xusb: regulator-xusb-vio {
+               compatible = "regulator-fixed";
+               regulator-name = "avddio_1v2_xusb";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-boot-on;
+               gpio = <&palmas_gpio 3 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       vdd_3v3_xusb: regulator-xusb-vdd {
+               compatible = "regulator-fixed";
+               regulator-name = "hvdd_3v3_xusb";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               gpio = <&palmas_gpio 1 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       vdd_3v3_com: regulator-com {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3_com";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+               gpio = <&gpio TEGRA_GPIO(U, 1) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_3v3_sys>;
+       };
+
+       vdd_3v3_touch: regulator-touch-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3_touch";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               gpio = <&gpio TEGRA_GPIO(H, 0) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_3v3_sys>;
+       };
+
+       vdd_1v8_touch: regulator-touch-vio {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_1v8_touch";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               gpio = <&gpio TEGRA_GPIO(H, 4) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_3v3_sys>;
        };
 };
index 7cae6ad5754469893079fb3ebf8357f83fca4135..4caeeb9f1e1d8a7f779330fa4ae9d24dfb150491 100644 (file)
@@ -2,6 +2,7 @@
 /dts-v1/;
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
 #include "tegra20.dtsi"
 #include "tegra20-cpu-opp.dtsi"
 
                        conf_ata {
                                nvidia,pins = "ata", "atc", "atd", "ate",
                                        "crtp", "dap2", "dap3", "dap4", "dta",
-                                       "dtb", "dtc", "dtd", "dte", "gmb",
-                                       "gme", "i2cp", "pta", "slxc", "slxd",
-                                       "spdi", "spdo", "uda";
+                                       "dtb", "dtc", "dtd", "gmb", "gme",
+                                       "i2cp", "pta", "slxc", "slxd", "spdi",
+                                       "spdo", "uda";
                                nvidia,pull = <TEGRA_PIN_PULL_NONE>;
                                nvidia,tristate = <TEGRA_PIN_ENABLE>;
                        };
                        conf_atb {
                                nvidia,pins = "atb", "cdev1", "cdev2", "dap1",
-                                       "gma", "gmc", "gmd", "gpu", "gpu7",
-                                       "gpv", "sdio1", "slxa", "slxk", "uac";
+                                       "dte", "gma", "gmc", "gmd", "gpu",
+                                       "gpu7", "gpv", "sdio1", "slxa", "slxk",
+                                       "uac";
                                nvidia,pull = <TEGRA_PIN_PULL_NONE>;
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                        };
                };
        };
 
+       leds {
+               compatible = "gpio-leds";
+
+               led-ds2 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_INDICATOR;
+                       function-enumerator = <2>;
+                       gpios = <&gpio TEGRA_GPIO(D, 2) GPIO_ACTIVE_LOW>;
+               };
+
+               led-ds3 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_INDICATOR;
+                       function-enumerator = <3>;
+                       gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_LOW>;
+               };
+       };
+
        poweroff {
                compatible = "gpio-poweroff";
                gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>;
index 389ecb1ebf8f1b39832aa279f3cbd1ec15c74332..a1a89ccacf05589216d80e2b00bba2a1c3b32e62 100644 (file)
                                clock-names = "ipg", "per";
                        };
 
-                       dma: dma@209000 {
+                       dma: dma-controller@209000 {
                                compatible = "fsl,imx1-dma";
                                reg = <0x00209000 0x1000>;
                                interrupts = <61 60>;
index ec3ccc8f4095ff476f3feb9e2a744da80f5808f6..989b7659b6692afe23884748a58aa5a8484ff4f3 100644 (file)
@@ -88,7 +88,7 @@
                        reg = <0x10000000 0x20000>;
                        ranges;
 
-                       dma: dma@10001000 {
+                       dma: dma-controller@10001000 {
                                compatible = "fsl,imx27-dma";
                                reg = <0x10001000 0x1000>;
                                interrupts = <32>;
index 2117de872703bfdf730f1eacedc653dcaaf8650c..0d336cbdb4513e8603f78899798ae78fc50709b7 100644 (file)
                gpio-controller;
        };
 
-       sensor2: lm75@49 {
-               compatible = "lm75";
+       sensor2: temperature-sensor@49 {
+               compatible = "national,lm75b";
                reg = <0x49>;
        };
 };
index 151e9cee3c87eef9e83529cd42a056c4a56dca96..2527bfe1314595c1aa12ac43994e0f10f26f6c83 100644 (file)
@@ -34,9 +34,7 @@
 
 &display0 {
        status = "okay";
-};
 
-&display0 {
        port@1 {
                display0_out: endpoint {
                        remote-endpoint = <&sii9022_in>;
@@ -83,7 +81,3 @@
 &panel_dpi {
        status = "disabled";
 };
-
-&tve {
-       status = "disabled";
-};
index b2d7271d1d24cc4e3aebf206569725411e040913..c34ee84bd71675569753ac16c6358143b1b70e6e 100644 (file)
                interrupts = <6 4>; /* PATA_DATA6, active high */
        };
 
-       sensor1: lm75@48 {
-               compatible = "lm75";
+       sensor1: temperature-sensor@48 {
+               compatible = "national,lm75b";
                reg = <0x48>;
        };
 
index 95b49fc83f7be9ad359a9f6d5f07ec3185c630ab..299106fbe51c4ac1e9e0a70a4ec12e16b8110497 100644 (file)
                };
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
+       spdif_in: spdif-in {
+               compatible = "linux,spdif-dir";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx-audio-spdif";
                model = "imx-spdif";
-               spdif-controller = <&spdif>;
-               spdif-out;
-               spdif-in;
+               audio-cpu = <&spdif>;
+               audio-codec = <&spdif_out>, <&spdif_in>;
        };
 };
 
index a7d5693c5ab75257ed916578a52036b82739a3d6..8d2b608e0b90fcc8e75c19575da972fa6232114c 100644 (file)
                };
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
+       spdif_in: spdif-in {
+               compatible = "linux,spdif-dir";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx-audio-spdif";
                model = "imx-spdif";
-               spdif-controller = <&spdif>;
-               spdif-in;
-               spdif-out;
+               audio-cpu = <&spdif>;
+               audio-codec = <&spdif_out>, <&spdif_in>;
        };
 };
 
index 7c298d9aa21e10f4ae445a0f701630dc0192b5f8..5353a0c24420504470b8b095eb7506e7713319c2 100644 (file)
                ssi-controller = <&ssi1>;
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx-audio-spdif";
                model = "On-board SPDIF";
-               spdif-controller = <&spdif>;
-               spdif-out;
+               audio-cpu = <&spdif>;
+               audio-codec = <&spdif_out>;
        };
 };
 
index ea40623d12e5fddc11b2af150ca6a80af93510a3..edf55760a5c1a20919d0d85eed5ec861f2eb0884 100644 (file)
                ssi-controller = <&ssi1>;
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
+       spdif_in: spdif-in {
+               compatible = "linux,spdif-dir";
+               #sound-dai-cells = <0>;
+       };
+
        sound_spdif: sound-spdif {
                compatible = "fsl,imx-audio-spdif";
-               spdif-controller = <&spdif>;
-               spdif-in;
-               spdif-out;
+               audio-cpu = <&spdif>;
+               audio-codec = <&spdif_out>, <&spdif_in>;
                model = "imx-spdif";
                status = "disabled";
        };
index 3a46ade3b6bd93ba9cc54861d88791eef9e2ae76..9e97ef5e43f2736ade8c3380d2bebe14fb8acc30 100644 (file)
                mux-ext-port = <3>;
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx-audio-spdif";
                model = "imx-spdif";
-               spdif-controller = <&spdif>;
-               spdif-out;
+               audio-cpu = <&spdif>;
+               audio-codec = <&spdif_out>;
        };
 };
 
index 758eaf9d93d2a44c1cc8cb457a82005aabcf4fec..f7fac86f0a6bc15ac5332bc34f5214d6aef07347 100644 (file)
                >;
        };
 
-       pinctrl_gpmi_nand: gpmi-nand {
+       pinctrl_gpmi_nand: gpminandgrp {
                fsl,pins = <
                        MX6QDL_PAD_NANDF_CLE__NAND_CLE     0xb0b1
                        MX6QDL_PAD_NANDF_ALE__NAND_ALE     0xb0b1
index d3a7a6eeb8e09edff6963de86527e13899e3c956..b01670cdd52c389b37c23a9d25079d001e8c021f 100644 (file)
                ssi-controller = <&ssi1>;
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
+       spdif_in: spdif-in {
+               compatible = "linux,spdif-dir";
+               #sound-dai-cells = <0>;
+       };
+
        /* Optional S/PDIF in on SODIMM 88 and out on SODIMM 90, 137 or 168 */
        sound_spdif: sound-spdif {
                compatible = "fsl,imx-audio-spdif";
-               spdif-controller = <&spdif>;
-               spdif-in;
-               spdif-out;
+               audio-cpu = <&spdif>;
+               audio-codec = <&spdif_out>, <&spdif_in>;
                model = "imx-spdif";
                status = "disabled";
        };
index 761566ae3cf5c0360db9bbc0a790ebe64b9f318d..bd66430c1d78d0731bf5221701642aec7762e8a9 100644 (file)
                vin-supply = <&v_5v0>;
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx-audio-spdif";
                model = "Integrated SPDIF";
                /* IMX6 doesn't implement this yet */
-               spdif-controller = <&spdif>;
-               spdif-out;
+               audio-cpu = <&spdif>;
+               audio-codec = <&spdif_out>;
        };
 
        gpio-keys {
index 082a2e3a391fe9a87d3b23789a0fd7ed63993116..b57f4073f881e3c5c47f71793d5307a87747c850 100644 (file)
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x170b9
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
index 8ec442038ea01a33ba636932298f914bfecf5828..090c0057d1179efb0e0224f641808e01e3c652bf 100644 (file)
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100b9
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
index 9df9f79affae7e8dac1c410c592d5bb6ee91b92f..0ed6d25024a24ce1fb559a6ce8d26b895133bdcf 100644 (file)
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100b9
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
index 7f16c602cc0757ab9a1cbd8f19f0d5ad29457495..c6e231de674aa35f0f3d6e4bd90838573d5606a0 100644 (file)
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100b9
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
index 7693f92195d50fe70ea40702ec0372c2c95053d4..d0f648938cae784f1db2d53658150359436044a4 100644 (file)
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100b9
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
index 9d0836df0fed417ad7481b44ceae21c984ea7ce6..71911df881ccca150cd445454ae5d9c9062732ff 100644 (file)
                >;
        };
 
-       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+       pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_NANDF_D3__GPIO2_IO03         0x4001b0b0 /* EMMY_EN */
                        MX6QDL_PAD_NANDF_D4__GPIO2_IO04         0x4001b0b0 /* EMMY_CFG1# */
                >;
        };
 
-       pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+       pinctrl_usdhc2_100mhz: usdhc2-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD2_CMD__SD2_CMD             0x170b9
                        MX6QDL_PAD_SD2_CLK__SD2_CLK             0x100b9
                >;
        };
 
-       pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+       pinctrl_usdhc2_200mhz: usdhc2-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD2_CMD__SD2_CMD             0x170f9
                        MX6QDL_PAD_SD2_CLK__SD2_CLK             0x100f9
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100b9
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
index f4cb9e1d34a9ac23748c452d90172dfdaf740091..716c324a745809bc091511d46634191bfafe0ffb 100644 (file)
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100b9
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
index 424dc7fcd53352a599a5899c39dc726e99ad8724..453dee4d9227f0fbe4b664699240eefa379eeb4b 100644 (file)
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x170b9
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
index 49ea25c7196766d0e3c54fc5d9f7f27a2b04b51c..add700bc11cc19807afca30d057bddb1d9dda8cd 100644 (file)
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100b9
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
index a955c77cd4998a56d6ee5e94eb0de7835b974291..d1ad65ab6b72ed464712e77b77c67ad95ca5759b 100644 (file)
                };
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx-audio-spdif";
                model = "On-board SPDIF";
                /* IMX6 doesn't implement this yet */
-               spdif-controller = <&spdif>;
-               spdif-out;
+               audio-cpu = <&spdif>;
+               audio-codec = <&spdif_out>;
        };
 };
 
index d339957cc09730297bbf3b672985dbd070f5493b..dff184a119f37272725d636b52cad2f967b65a86 100644 (file)
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp_100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD    0x170B1
                        MX6QDL_PAD_SD3_CLK__SD3_CLK    0x100B1
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp_200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD    0x170F9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK    0x100F9
                >;
        };
 
-       pinctrl_usdhc4_100mhz: usdhc4grp_100mhz {
+       pinctrl_usdhc4_100mhz: usdhc4-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD4_CMD__SD4_CMD    0x170B1
                        MX6QDL_PAD_SD4_CLK__SD4_CLK    0x100B1
                >;
        };
 
-       pinctrl_usdhc4_200mhz: usdhc4grp_200mhz {
+       pinctrl_usdhc4_200mhz: usdhc4-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD4_CMD__SD4_CMD    0x170F9
                        MX6QDL_PAD_SD4_CLK__SD4_CLK    0x100F9
index 807f3c95e3ce9b6b79a16b3383ad55ec40ab2bab..aca320ee8f476c423ba60f1d36cb1f27f57db21c 100644 (file)
@@ -13,7 +13,7 @@
 
 &i2c1 {
        lm75: temperature-sensor@49 {
-               compatible = "national,lm75";
+               compatible = "national,lm75a";
                reg = <0x49>;
                vs-supply = <&reg_mba6_3p3v>;
        };
index 789733a45b9590b15ee770ff60b490f44b3511c0..c7bbd6195fef1bb9151a96b332e60e9040febd28 100644 (file)
@@ -23,7 +23,7 @@
 
 &i2c3 {
        lm75: temperature-sensor@49 {
-               compatible = "national,lm75";
+               compatible = "national,lm75a";
                reg = <0x49>;
                vs-supply = <&reg_mba6_3p3v>;
        };
                reg = <0x68>;
        };
 };
-
-&iomuxc {
-       pinctrl_i2c1: i2c1grp {
-               fsl,pins = <
-                       MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b899
-                       MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b899
-               >;
-       };
-};
index 0a3deaf92eeab9f69e17dc4221b49f57bd8db4d0..35b6bec7a3fab62f4fd18dba267e5e5c1834284a 100644 (file)
                        "AIN2R", "Line In Jack";
        };
 
+       spdif_in: spdif-in {
+               compatible = "linux,spdif-dir";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx-sabreauto-spdif",
                             "fsl,imx-audio-spdif";
                model = "imx-spdif";
-               spdif-controller = <&spdif>;
-               spdif-in;
+               audio-cpu = <&spdif>;
+               audio-codec = <&spdif_in>;
        };
 
        backlight {
                        >;
                };
 
-               pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+               pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                        fsl,pins = <
                                MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170b9
                                MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100b9
                        >;
                };
 
-               pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+               pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                        fsl,pins = <
                                MX6QDL_PAD_SD3_CMD__SD3_CMD             0x170f9
                                MX6QDL_PAD_SD3_CLK__SD3_CLK             0x100f9
index 344ea935c7dac7553d7c4f9280bd8f06dad3a94b..6152a9ed4768224a82dcbcb9e4afccaf441930fc 100644 (file)
                >;
        };
 
-       pinctrl_i2c3: i2c3grp {
-               fsl,pins = <
-                       MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b899
-                       MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b899
-               >;
-       };
-
-       pinctrl_i2c3_recovery: i2c3recoverygrp {
-               fsl,pins = <
-                       MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x4001b899
-                       MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x4001b899
-               >;
-       };
-
        pinctrl_pmic: pmicgrp {
                fsl,pins = <
                        MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x1b099 /* PMIC irq */
index 68525f0205d3a6da81fda152bea043aa15aa9b8c..828996382f24697d586987fe1903f7af82ec9f58 100644 (file)
@@ -27,8 +27,8 @@
                reg = <0x08>;
        };
 
-       sensor@48 {
-               compatible = "national,lm75";
+       temperature-sensor@48 {
+               compatible = "national,lm75a";
                reg = <0x48>;
                vs-supply = <&reg_3p3v>;
        };
index aeba0a2736002a036fe3cf7aa604de891142fff8..1d0966b8d99e2c5117c08dab95dc05c56528d997 100644 (file)
@@ -20,8 +20,8 @@
                reg = <0x08>;
        };
 
-       sensor@48 {
-               compatible = "national,lm75";
+       temperature-sensor@48 {
+               compatible = "national,lm75a";
                reg = <0x48>;
                vs-supply = <&reg_3p3v>;
        };
                vcc-supply = <&reg_3p3v>;
        };
 };
+
+&iomuxc {
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b899
+                       MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b899
+               >;
+       };
+
+       pinctrl_i2c3_recovery: i2c3recoverygrp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x4001b899
+                       MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x4001b899
+               >;
+       };
+};
index e2fe337f7d9ed6eae042516d8db1665764768470..5a194f4c0cb9b3109184e3325d0d19ddeaeed597 100644 (file)
                >;
        };
 
-       pinctrl_disp0_1: disp0grp-1 {
+       pinctrl_disp0_1: disp0-1-grp {
                fsl,pins = <
                        MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10
                        MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15       0x10
                >;
        };
 
-       pinctrl_disp0_2: disp0grp-2 {
+       pinctrl_disp0_2: disp0-2-grp {
                fsl,pins = <
                        MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10
                        MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15       0x10
index 200559d7158dc0b7c507471f02895a20d2ce6d1c..d8283eade43e7cfda690e8f33ddb561959016364 100644 (file)
                >;
        };
 
-       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+       pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD1_CMD__SD1_CMD     0x170B9
                        MX6QDL_PAD_SD1_CLK__SD1_CLK     0x100B9
                >;
        };
 
-       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+       pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD1_CMD__SD1_CMD     0x170F9
                        MX6QDL_PAD_SD1_CLK__SD1_CLK     0x100F9
index a1ea33c4eeb75c549777181c5f98fe9fb8e3232e..59833e8d11d862091a76c304277a8549982b22a3 100644 (file)
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp100mhzgrp {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD     0x170B9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK     0x100B9
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp200mhzgrp {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD     0x170F9
                        MX6QDL_PAD_SD3_CLK__SD3_CLK     0x100F9
index 38abb6b50f6cbc9ed76ccddfeeb682c22a2e3b55..7130b9c3b3aa052944b2e25ba15fdcb1add57901 100644 (file)
                mux-ext-port = <3>;
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx-audio-spdif";
                model = "imx-spdif";
-               spdif-controller = <&spdif>;
-               spdif-out;
+               audio-cpu = <&spdif>;
+               audio-codec = <&spdif_out>;
        };
 
        reg_1p5v: regulator-1p5v {
index 31eee0419af71c628c1b2849fa944e30df891af8..7c899291ab0dada4bdf0ed2b7a4829bc09523fae 100644 (file)
                        >;
                };
 
-               pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+               pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
                        fsl,pins = <
                                MX6SL_PAD_SD1_CMD__SD1_CMD              0x170b9
                                MX6SL_PAD_SD1_CLK__SD1_CLK              0x100b9
                        >;
                };
 
-               pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+               pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
                        fsl,pins = <
                                MX6SL_PAD_SD1_CMD__SD1_CMD              0x170f9
                                MX6SL_PAD_SD1_CLK__SD1_CLK              0x100f9
                        >;
                };
 
-               pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+               pinctrl_usdhc2_100mhz: usdhc2-100mhz-grp {
                        fsl,pins = <
                                MX6SL_PAD_SD2_CMD__SD2_CMD              0x170b9
                                MX6SL_PAD_SD2_CLK__SD2_CLK              0x100b9
                        >;
                };
 
-               pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+               pinctrl_usdhc2_200mhz: usdhc2-200mhz-grp {
                        fsl,pins = <
                                MX6SL_PAD_SD2_CMD__SD2_CMD              0x170f9
                                MX6SL_PAD_SD2_CLK__SD2_CLK              0x100f9
                        >;
                };
 
-               pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+               pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                        fsl,pins = <
                                MX6SL_PAD_SD3_CMD__SD3_CMD              0x170b9
                                MX6SL_PAD_SD3_CLK__SD3_CLK              0x100b9
                        >;
                };
 
-               pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+               pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                        fsl,pins = <
                                MX6SL_PAD_SD3_CMD__SD3_CMD              0x170f9
                                MX6SL_PAD_SD3_CLK__SD3_CLK              0x100f9
index 9d7c8884892a9b39d4db7fb1e900e16efb6fa32e..2545c0fe47c82851807d36427e6a10e12af48b27 100644 (file)
                        >;
                };
 
-               pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+               pinctrl_usdhc2_100mhz: usdhc2-100mhz-grp {
                        fsl,pins = <
                                MX6SL_PAD_SD2_CMD__SD2_CMD              0x4170b9
                                MX6SL_PAD_SD2_CLK__SD2_CLK              0x4100b9
                        >;
                };
 
-               pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+               pinctrl_usdhc2_200mhz: usdhc2-200mhz-grp {
                        fsl,pins = <
                                MX6SL_PAD_SD2_CMD__SD2_CMD              0x4170f9
                                MX6SL_PAD_SD2_CLK__SD2_CLK              0x4100f9
                        >;
                };
 
-               pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
+               pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                        fsl,pins = <
                                MX6SL_PAD_SD3_CMD__SD3_CMD              0x4170b9
                                MX6SL_PAD_SD3_CLK__SD3_CLK              0x4100b9
                        >;
                };
 
-               pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
+               pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                        fsl,pins = <
                                MX6SL_PAD_SD3_CMD__SD3_CMD              0x4170f9
                                MX6SL_PAD_SD3_CLK__SD3_CLK              0x4100f9
index b0c27b9b02446b400c7eebe69fb0b6350d61d84b..dfbfb8119bf3b6e802f63415d7105adb8f9b3e97 100644 (file)
                        "AIN2R", "Line In Jack";
        };
 
+       spdif_in: spdif-in {
+               compatible = "linux,spdif-dir";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx-audio-spdif";
                model = "imx-spdif";
-               spdif-controller = <&spdif>;
-               spdif-in;
+               audio-cpu = <&spdif>;
+               audio-codec = <&spdif_in>;
        };
 };
 
index 7d4170c2773284d09ca29fa162f447844e06fef0..277a6e039045b5750d23e35f0896d5eefa85e43b 100644 (file)
                };
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx6sx-sdb-spdif",
                             "fsl,imx-audio-spdif";
                model = "imx-spdif";
-               spdif-controller = <&spdif>;
-               spdif-out;
+               audio-cpu = <&spdif>;
+               audio-codec = <&spdif_out>;
        };
 
 };
index 725d0b5cb55f6a4e3fd50bb1d7ca521dfb3039cb..bbf792ac4896a7dbc21f39f99488b39b64fb741c 100644 (file)
        };
 };
 
+&clks {
+       assigned-clocks = <&clks IMX6SX_CLK_ENET_REF>;
+       assigned-clock-rates = <50000000>;
+};
+
 &fec1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet1>;
index 9cfb99ac9e9daaf5fe7479aee9dc8888909e4bdc..b74ee8948a781762bd798316ceac0c33258610f0 100644 (file)
                >;
        };
 
-       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+       pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170b9
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100b9
                >;
        };
 
-       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+       pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170f9
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100f9
index ad7f63ca521a9d5d83ae2473b583796c0915b4ed..0d3b1ab82eabad413032ef23aa14723fd32d1277 100644 (file)
                >;
        };
 
-       pinctrl_ecspi3_master: ecspi3grp1 {
+       pinctrl_ecspi3_master: ecspi3-1-grp {
                fsl,pins = <
                        MX6UL_PAD_UART2_RX_DATA__ECSPI3_SCLK    0x10b0
                        MX6UL_PAD_UART2_CTS_B__ECSPI3_MOSI      0x10b0
                >;
        };
 
-       pinctrl_ecspi3_slave: ecspi3grp2 {
+       pinctrl_ecspi3_slave: ecspi3-2-grp {
                fsl,pins = <
                        MX6UL_PAD_UART2_RX_DATA__ECSPI3_SCLK    0x10b0
                        MX6UL_PAD_UART2_CTS_B__ECSPI3_MOSI      0x10b0
index ed61ae8524fa2a1445c7df50b2cdb03799b1c141..8aea8c99e2af59edb1d80e594cf0a67e975c05f5 100644 (file)
                >;
        };
 
-       pinctrl_ecspi1_master: ecspi1grp1 {
+       pinctrl_ecspi1_master: ecspi1-1-grp {
                fsl,pins = <
                        MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK       0x10b0
                        MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI       0x10b0
                >;
        };
 
-       pinctrl_lcdif_dat0_17: lcdifdatgrp0-17 {
+       pinctrl_lcdif_dat0_17: lcdifdat0-17-grp {
                fsl,pins = <
                        MX6UL_PAD_LCD_DATA00__LCDIF_DATA00      0x79
                        MX6UL_PAD_LCD_DATA01__LCDIF_DATA01      0x79
                >;
        };
 
-       pinctrl_lcdif_clken: lcdifctrlgrp1 {
+       pinctrl_lcdif_clken: lcdifctrl-1-grp {
                fsl,pins = <
                        MX6UL_PAD_LCD_CLK__LCDIF_CLK            0x17050
                        MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE      0x79
                >;
        };
 
-       pinctrl_lcdif_hvsync: lcdifctrlgrp2 {
+       pinctrl_lcdif_hvsync: lcdifctrl-2-grp {
                fsl,pins = <
                        MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC        0x79
                        MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC        0x79
                >;
        };
 
-       pinctrl_sai2_sleep: sai2grp-sleep {
+       pinctrl_sai2_sleep: sai2-sleep-grp {
                fsl,pins = <
                        MX6UL_PAD_JTAG_TRST_B__GPIO1_IO15       0x3000
                        MX6UL_PAD_JTAG_TCK__GPIO1_IO14          0x3000
                >;
        };
 
-       pinctrl_uart2_4wires: uart2grp-4wires {
+       pinctrl_uart2_4wires: uart2-4wires-grp {
                fsl,pins = <
                        MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX   0x1b0b1
                        MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX   0x1b0b1
                >;
        };
 
-       pinctrl_uart3_2wires: uart3grp-2wires {
+       pinctrl_uart3_2wires: uart3-2wires-grp {
                fsl,pins = <
                        MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX   0x1b0b1
                        MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX   0x1b0b1
index 4a03ea6d24dc6f0d532d10e60557e1c8b109e748..9cc3eebb6b05e536ed16849434495f5852b695f6 100644 (file)
                >;
        };
 
-       pinctrl_usdhc1_sleep: usdhc1grp-sleep {
+       pinctrl_usdhc1_sleep: usdhc1-sleep-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__GPIO2_IO16           0x3000
                        MX6UL_PAD_SD1_CLK__GPIO2_IO17           0x3000
                >;
        };
 
-       pinctrl_wifibt_ctrl_sleep: wifibt-ctrl-grp-sleep {
+       pinctrl_wifibt_ctrl_sleep: wifibt-ctrl-sleep-grp {
                fsl,pins = <
                        MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00      0x3000
                        MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09      0x3000
index cdbb8c435cd6aa54036b646a39f3fd7873aec0fb..2a6bb5ff808add0d3648480061e136e1050a1ccf 100644 (file)
        };
 
        pinctrl_tsc: tscgrp {
-               fsl,pin = <
+               fsl,pins = <
                        MX6UL_PAD_GPIO1_IO01__GPIO1_IO01        0xb0
                        MX6UL_PAD_GPIO1_IO02__GPIO1_IO02        0xb0
                        MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0xb0
                >;
        };
 
-       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+       pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170b9
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100b9
                >;
        };
 
-       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+       pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170f9
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100f9
index ee86c36205f9554dd1c8b5b853df3742ab9ae426..118df2a457c952cc1479e9fe17711a7a44c3d123 100644 (file)
                >;
        };
 
-       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+       pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170b9
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100b9
                >;
        };
 
-       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+       pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170f9
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100f9
index d8f7877349c98fdeb8c211a719c303b978e57cd0..29d2f86d5e34a74d6cc498f25b35da70a5f72c0d 100644 (file)
                >;
        };
 
-       pinctrl_usbotg1: usbotg1 {
+       pinctrl_usbotg1: usbotg1grp {
                fsl,pins = <
                        MX6UL_PAD_GPIO1_IO04__GPIO1_IO04        0x1b0b0
                >;
index 1d863a16bcf09c54ed76650edf2591b1be56ac52..5e62272acfba89af5a2d85aae8eb3b8ad4fb67df 100644 (file)
                >;
        };
 
-       pinctrl_usb_otg1_vbus: usb-otg1-vbus {
+       pinctrl_usb_otg1_vbus: usb-otg1-vbus-grp {
                fsl,pins = <
                        MX6UL_PAD_ENET2_RX_DATA0__GPIO2_IO08    0x79
                >;
index 04477fd4b9a98d15b2f39adac0466202f2014f41..4a45fb784ff770365913fb7d6d10c7530e67bf08 100644 (file)
@@ -31,7 +31,7 @@
                >;
        };
 
-       pinctrl_uart2_bt: uart2grp-bt {
+       pinctrl_uart2_bt: uart2-bt-grp {
                fsl,pins = <
                        MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX   0x17059
                        MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX   0x17059
@@ -40,7 +40,7 @@
                >;
        };
 
-       pinctrl_usdhc2_wl: usdhc2grp-wl {
+       pinctrl_usdhc2_wl: usdhc2-wl-grp {
                fsl,pins = <
                        MX6UL_PAD_LCD_DATA18__USDHC2_CMD    0x10051
                        MX6UL_PAD_LCD_DATA19__USDHC2_CLK    0x10061
index 38ea4dcfa2281d23f069e71c4ff9b2fe93f97423..bef5eb38a90d3dbff6a2aad9231d520b0c499333 100644 (file)
                >;
        };
 
-       pinctrl_flexcan1: flexcan1 {
+       pinctrl_flexcan1: flexcan1grp {
                fsl,pins = <
                        MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX      0x0b0b0
                        MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX      0x0b0b0
                >;
        };
 
-       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+       pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170b9
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100b9
                >;
        };
 
-       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+       pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170f9
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100f9
index 57e647fc3237426c9fddacdf24b1ad58d6da2419..c9c0794f01a2b8c88c2a049204fec1c04d2edc76 100644 (file)
                >;
        };
 
-       pinctrl_pmic: pmic {
+       pinctrl_pmic: pmicgrp {
                fsl,pins = <
                        /* PMIC irq */
                        MX6UL_PAD_CSI_DATA03__GPIO4_IO24        0x1b099
index ef76ece21010b1493cd20524b4c042406def2253..20c810a81403a31b91bed018d9ad36d935adb5de 100644 (file)
                >;
        };
 
-       pinctrl_disp0_3: disp0grp-3 {
+       pinctrl_disp0_3: disp0-3-grp {
                fsl,pins = <
                        MX6UL_PAD_LCD_CLK__LCDIF_CLK            0x10 /* LSCLK */
                        MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE      0x10 /* OE_ACD */
index 864173e307097ec59560151211b0541da951461b..278120404d3175683c90a81dc1581d1e2845aa12 100644 (file)
 };
 
 &iomuxc {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_hog>;
-
-       pinctrl_hog: hoggrp {
-       };
-
        pinctrl_led: ledgrp {
                fsl,pins = <
                        MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09      0x0b0b0 /* LED */
                >;
        };
 
-       pinctrl_disp0_1: disp0grp-1 {
+       pinctrl_disp0_1: disp0-1-grp {
                fsl,pins = <
                        MX6UL_PAD_LCD_CLK__LCDIF_CLK            0x10 /* LSCLK */
                        MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE      0x10 /* OE_ACD */
                >;
        };
 
-       pinctrl_disp0_2: disp0grp-2 {
+       pinctrl_disp0_2: disp0-2-grp {
                fsl,pins = <
                        MX6UL_PAD_LCD_CLK__LCDIF_CLK            0x10 /* LSCLK */
                        MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE      0x10 /* OE_ACD */
                >;
        };
 
-       pinctrl_etnphy0_int: etnphy-intgrp-0 {
+       pinctrl_etnphy0_int: etnphy-int-0-grp {
                fsl,pins = <
                        MX6UL_PAD_SNVS_TAMPER5__GPIO5_IO05      0x0b0b0 /* ETN PHY INT */
                >;
        };
 
-       pinctrl_etnphy0_rst: etnphy-rstgrp-0 {
+       pinctrl_etnphy0_rst: etnphy-rst-0-grp {
                fsl,pins = <
                        MX6UL_PAD_SNVS_TAMPER6__GPIO5_IO06      0x0b0b0 /* ETN PHY RESET */
                >;
        };
 
-       pinctrl_etnphy1_int: etnphy-intgrp-1 {
+       pinctrl_etnphy1_int: etnphy-int-1-grp {
                fsl,pins = <
                        MX6UL_PAD_CSI_DATA06__GPIO4_IO27        0x0b0b0 /* ETN PHY INT */
                >;
        };
 
-       pinctrl_etnphy1_rst: etnphy-rstgrp-1 {
+       pinctrl_etnphy1_rst: etnphy-rst-1-grp {
                fsl,pins = <
                        MX6UL_PAD_CSI_DATA07__GPIO4_IO28        0x0b0b0 /* ETN PHY RESET */
                >;
index d03694feaf5c4a7ce4431d2b3611d344ac923571..83b9de17cee2de37c15a461ddbdc74f0aee2e34c 100644 (file)
                >;
        };
 
-       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+       pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170b9
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100b9
                >;
        };
 
-       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+       pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170f9
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100f9
                >;
        };
 
-       pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+       pinctrl_usdhc2_100mhz: usdhc2-100mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x100b9
                        MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x170b9
                >;
        };
 
-       pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+       pinctrl_usdhc2_200mhz: usdhc2-200mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x100f9
                        MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x170f9
index 6bb12e0bbc7ec625920265e57140d360bd80cc4d..28fddbcdc55e70319a44f197f8352061d5de6e1d 100644 (file)
                >;
        };
 
-       pinctrl_reg_vmmc: usdhc1regvmmc {
+       pinctrl_reg_vmmc: usdhc1regvmmc-grp {
                fsl,pins = <
                        MX6UL_PAD_GPIO1_IO09__GPIO1_IO09        0x17059
                >;
        };
 
        pinctrl_uart1: uart1grp {
-               fsl,pin = <
+               fsl,pins = <
                        MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX   0x1b0b1
                        MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX   0x1b0b1
                >;
        };
 
        pinctrl_uart2: uart2grp {
-               fsl,pin = <
+               fsl,pins = <
                        MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX   0x1b0b1
                        MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX   0x1b0b1
                        MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS    0x1b0b1
        };
 
        pinctrl_uart3: uart3grp {
-               fsl,pin = <
+               fsl,pins = <
                        MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX   0x1b0b1
                        MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX   0x1b0b1
                        MX6UL_PAD_UART3_CTS_B__UART3_DCE_CTS    0x1b0b1
        };
 
        pinctrl_uart4: uart4grp {
-               fsl,pin = <
+               fsl,pins = <
                        MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX   0x1b0b1
                        MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX   0x1b0b1
                >;
        };
 
        pinctrl_uart5: uart5grp {
-               fsl,pin = <
+               fsl,pins = <
                        MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX   0x1b0b1
                        MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX   0x1b0b1
                >;
        };
 
        pinctrl_usb_otg1_id: usbotg1idgrp {
-               fsl,pin = <
+               fsl,pins = <
                        MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID    0x17059
                >;
        };
                >;
        };
 
-       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+       pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170b9
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100b9
                >;
        };
 
-       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+       pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170f9
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100f9
                >;
        };
 
-       pinctrl_usdhc1_cd: usdhc1cd {
+       pinctrl_usdhc1_cd: usdhc1cd-grp {
                fsl,pins = <
                        MX6UL_PAD_UART1_RTS_B__GPIO1_IO19       0x17059
                >;
index f5ad6b5c1ad01c57d003bb6891b7724b3637f594..278152875f8e6cf1342ff73464e0a89fafbe8dca 100644 (file)
                >;
        };
 
-       pinctrl_reg_vqmmc: usdhc1regvqmmc {
+       pinctrl_reg_vqmmc: usdhc1regvqmmcgrp {
                fsl,pins = <
                        MX6UL_PAD_GPIO1_IO05__GPIO1_IO05        0x17059
                >;
                >;
        };
 
-       pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+       pinctrl_usdhc2_100mhz: usdhc2-100mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x100b9
                        MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x170b9
                >;
        };
 
-       pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+       pinctrl_usdhc2_200mhz: usdhc2-200mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x100f9
                        MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x170f9
index c92e4e2f6ab9ca064ddb774b96dd9e62c1b1df45..6159ed70d96616053f16426f3fc9f19b468bd408 100644 (file)
@@ -94,7 +94,7 @@
 };
 
 &iomuxc {
-       pinctrl_gpmi_nand: gpmi-nand {
+       pinctrl_gpmi_nand: gpminandgrp {
                fsl,pins = <
                        MX6UL_PAD_NAND_CLE__RAWNAND_CLE         0xb0b1
                        MX6UL_PAD_NAND_ALE__RAWNAND_ALE         0xb0b1
index 9fe51884af79f55f46ba180536a3d82cb0a939a1..62e41edcaf1d740f18fc3718e6314a49487929fe 100644 (file)
                >;
        };
 
-       pinctrl_lvds_transceiver: lvdstx {
+       pinctrl_lvds_transceiver: lvdstxgrp {
                fsl,pins = <
                        MX7D_PAD_ENET1_RGMII_RD2__GPIO7_IO2     0x14 /* SODIMM 63 */
                        MX7D_PAD_ENET1_RGMII_RD3__GPIO7_IO3     0x74 /* SODIMM 55 */
index 52869e68f833c4d8f7cefdcefeadba9b8b78f87a..e1c401f468e16f91a5ccf145c7509fa287d420fb 100644 (file)
                };
        };
 
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc1 0>, <&adc1 1>, <&adc1 2>, <&adc1 3>,
+                             <&adc2 0>, <&adc2 1>, <&adc2 2>, <&adc2 3>;
+       };
+
        reg_sd1_vmmc: regulator-sd1-vmmc {
                compatible = "regulator-fixed";
                regulator-name = "VCC3V3_SD1";
 
 &i2c1 {
        lm75: temperature-sensor@49 {
-               compatible = "national,lm75";
+               compatible = "national,lm75a";
                reg = <0x49>;
                vs-supply = <&reg_vcc_3v3>;
        };
index 9c6476bda4a020efaf5db0bb0b06eea133c55c82..7ee66be8bccbe67211dbee0094642f122805739b 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hog_1 &pinctrl_j2>;
 
-       pinctrl_hog_1: hoggrp-1 {
+       pinctrl_hog_1: hoggrp {
                fsl,pins = <
                        MX7D_PAD_SD3_RESET_B__GPIO6_IO11        0x5d
                        MX7D_PAD_GPIO1_IO13__GPIO1_IO13         0x7d
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hog_2>;
 
-       pinctrl_hog_2: hoggrp-2 {
+       pinctrl_hog_2: hoggrp {
                fsl,pins = <
                        MX7D_PAD_LPSR_GPIO1_IO02__GPIO1_IO2     0x7d
                        MX7D_PAD_LPSR_GPIO1_IO03__CCM_CLKO2     0x7d
index 8d5037ac03c7d1a6651c7f23e6fb871b95932662..a1574ccec89cb14d45d1c51b950dfdd0143a4eba 100644 (file)
                >;
        };
 
-       pinctrl_can1: can1frp {
+       pinctrl_can1: can1frpgrp {
                fsl,pins = <
                        MX7D_PAD_SAI1_RX_DATA__FLEXCAN1_RX      0x59
                        MX7D_PAD_SAI1_TX_BCLK__FLEXCAN1_TX      0x59
                >;
        };
 
-       pinctrl_can2: can2frp {
+       pinctrl_can2: can2frpgrp {
                fsl,pins = <
                        MX7D_PAD_SAI1_TX_SYNC__FLEXCAN2_RX      0x59
                        MX7D_PAD_SAI1_TX_DATA__FLEXCAN2_TX      0x59
                >;
        };
 
-       pinctrl_pwm1: pwm1 {
+       pinctrl_pwm1: pwm1grp {
                fsl,pins = <
                        MX7D_PAD_GPIO1_IO08__PWM1_OUT   0x7f
                >;
        };
 
-       pinctrl_pwm2: pwm2 {
+       pinctrl_pwm2: pwm2grp {
                fsl,pins = <
                        MX7D_PAD_GPIO1_IO09__PWM2_OUT   0x7f
                >;
        };
 
-       pinctrl_pwm3: pwm3 {
+       pinctrl_pwm3: pwm3grp {
                fsl,pins = <
                        MX7D_PAD_GPIO1_IO10__PWM3_OUT   0x7f
                >;
                >;
        };
 
-       pinctrl_usbotg1_pwr: usbotg_pwr {
+       pinctrl_usbotg1_pwr: usbotgpwrgrp {
                fsl,pins = <
                        MX7D_PAD_UART3_TX_DATA__GPIO4_IO5       0x14
                >;
                >;
        };
 
-       pinctrl_usdhc1_100mhz: usdhc1grp_100mhz {
+       pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
                fsl,pins = <
                        MX7D_PAD_SD1_CMD__SD1_CMD               0x5a
                        MX7D_PAD_SD1_CLK__SD1_CLK               0x1a
                >;
        };
 
-       pinctrl_usdhc1_200mhz: usdhc1grp_200mhz {
+       pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
                fsl,pins = <
                        MX7D_PAD_SD1_CMD__SD1_CMD               0x5b
                        MX7D_PAD_SD1_CLK__SD1_CLK               0x1b
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp_100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX7D_PAD_SD3_CMD__SD3_CMD               0x5a
                        MX7D_PAD_SD3_CLK__SD3_CLK               0x1a
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp_200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX7D_PAD_SD3_CMD__SD3_CMD               0x5b
                        MX7D_PAD_SD3_CLK__SD3_CLK               0x1b
index 92cb45dacda616dafda44c32b2c1a78d85e09cc6..eec526a9631118387895c0894b31540071e6a792 100644 (file)
                >;
        };
 
-       pinctrl_usdhc2_100mhz: usdhc2grp_100mhz {
+       pinctrl_usdhc2_100mhz: usdhc2-100mhz-grp {
                fsl,pins = <
                        MX7D_PAD_SD2_CMD__SD2_CMD               0x5a
                        MX7D_PAD_SD2_CLK__SD2_CLK               0x1a
                >;
        };
 
-       pinctrl_usdhc2_200mhz: usdhc2grp_200mhz {
+       pinctrl_usdhc2_200mhz: usdhc2-200mhz-grp {
                fsl,pins = <
                        MX7D_PAD_SD2_CMD__SD2_CMD               0x5b
                        MX7D_PAD_SD2_CLK__SD2_CLK               0x1b
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp_100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX7D_PAD_SD3_CMD__SD3_CMD               0x5a
                        MX7D_PAD_SD3_CLK__SD3_CLK               0x1a
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp_200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX7D_PAD_SD3_CMD__SD3_CMD               0x5b
                        MX7D_PAD_SD3_CLK__SD3_CLK               0x1b
index cabdaa6dc518df759b616bacfe96d6607aa0581e..40156cd9195f823f1f43d1f00c378010433ad930 100644 (file)
 };
 
 &iomuxc {
-       imx7d-sdb {
-               pinctrl_tsc2046_pendown: tsc2046_pendown {
-                       fsl,pins = <
-                               MX7D_PAD_EPDC_DATA13__GPIO2_IO13        0x59
-                       >;
-               };
-
-               pinctrl_hog: hoggrp {
-                       fsl,pins = <
-                               MX7D_PAD_ECSPI2_SS0__GPIO4_IO23         0x34  /* bt reg on */
-                       >;
-               };
-
-               pinctrl_usb_otg2_vbus_reg_reva: usbotg2vbusregrevagrp {
-                       fsl,pins = <
-                               MX7D_PAD_UART3_CTS_B__GPIO4_IO7         0x14
-                       >;
-               };
+       pinctrl_tsc2046_pendown: tsc2046-pendowngrp {
+               fsl,pins = <
+                       MX7D_PAD_EPDC_DATA13__GPIO2_IO13        0x59
+               >;
+       };
+
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       MX7D_PAD_ECSPI2_SS0__GPIO4_IO23         0x34  /* bt reg on */
+               >;
+       };
+
+       pinctrl_usb_otg2_vbus_reg_reva: usbotg2vbusregrevagrp {
+               fsl,pins = <
+                       MX7D_PAD_UART3_CTS_B__GPIO4_IO7         0x14
+               >;
        };
 };
index 0462e43ec09be5a658e0cf255fce14117837cb65..f712537fca161ab95cdd4ec2eb4d59e12b80ecda 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hog>;
 
-       imx7d-sdb {
-               pinctrl_brcm_reg: brcmreggrp {
-                       fsl,pins = <
-                               MX7D_PAD_ECSPI2_MOSI__GPIO4_IO21        0x14
-                       >;
-               };
+       pinctrl_brcm_reg: brcmreggrp {
+               fsl,pins = <
+                       MX7D_PAD_ECSPI2_MOSI__GPIO4_IO21        0x14
+               >;
+       };
 
-               pinctrl_ecspi3: ecspi3grp {
-                       fsl,pins = <
-                               MX7D_PAD_SAI2_TX_SYNC__ECSPI3_MISO      0x2
-                               MX7D_PAD_SAI2_TX_BCLK__ECSPI3_MOSI      0x2
-                               MX7D_PAD_SAI2_RX_DATA__ECSPI3_SCLK      0x2
-                               MX7D_PAD_SD2_CD_B__GPIO5_IO9            0x59
-                       >;
-               };
+       pinctrl_ecspi3: ecspi3grp {
+               fsl,pins = <
+                       MX7D_PAD_SAI2_TX_SYNC__ECSPI3_MISO      0x2
+                       MX7D_PAD_SAI2_TX_BCLK__ECSPI3_MOSI      0x2
+                       MX7D_PAD_SAI2_RX_DATA__ECSPI3_SCLK      0x2
+                       MX7D_PAD_SD2_CD_B__GPIO5_IO9            0x59
+               >;
+       };
 
-               pinctrl_enet1: enet1grp {
-                       fsl,pins = <
-                               MX7D_PAD_GPIO1_IO10__ENET1_MDIO                 0x3
-                               MX7D_PAD_GPIO1_IO11__ENET1_MDC                  0x3
-                               MX7D_PAD_ENET1_RGMII_TXC__ENET1_RGMII_TXC       0x1
-                               MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0       0x1
-                               MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1       0x1
-                               MX7D_PAD_ENET1_RGMII_TD2__ENET1_RGMII_TD2       0x1
-                               MX7D_PAD_ENET1_RGMII_TD3__ENET1_RGMII_TD3       0x1
-                               MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x1
-                               MX7D_PAD_ENET1_RGMII_RXC__ENET1_RGMII_RXC       0x1
-                               MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0       0x1
-                               MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1       0x1
-                               MX7D_PAD_ENET1_RGMII_RD2__ENET1_RGMII_RD2       0x1
-                               MX7D_PAD_ENET1_RGMII_RD3__ENET1_RGMII_RD3       0x1
-                               MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x1
-                       >;
-               };
+       pinctrl_enet1: enet1grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO10__ENET1_MDIO                 0x3
+                       MX7D_PAD_GPIO1_IO11__ENET1_MDC                  0x3
+                       MX7D_PAD_ENET1_RGMII_TXC__ENET1_RGMII_TXC       0x1
+                       MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0       0x1
+                       MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1       0x1
+                       MX7D_PAD_ENET1_RGMII_TD2__ENET1_RGMII_TD2       0x1
+                       MX7D_PAD_ENET1_RGMII_TD3__ENET1_RGMII_TD3       0x1
+                       MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x1
+                       MX7D_PAD_ENET1_RGMII_RXC__ENET1_RGMII_RXC       0x1
+                       MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0       0x1
+                       MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1       0x1
+                       MX7D_PAD_ENET1_RGMII_RD2__ENET1_RGMII_RD2       0x1
+                       MX7D_PAD_ENET1_RGMII_RD3__ENET1_RGMII_RD3       0x1
+                       MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x1
+               >;
+       };
 
-               pinctrl_enet2: enet2grp {
-                       fsl,pins = <
-                               MX7D_PAD_EPDC_GDSP__ENET2_RGMII_TXC             0x1
-                               MX7D_PAD_EPDC_SDCE2__ENET2_RGMII_TD0            0x1
-                               MX7D_PAD_EPDC_SDCE3__ENET2_RGMII_TD1            0x1
-                               MX7D_PAD_EPDC_GDCLK__ENET2_RGMII_TD2            0x1
-                               MX7D_PAD_EPDC_GDOE__ENET2_RGMII_TD3             0x1
-                               MX7D_PAD_EPDC_GDRL__ENET2_RGMII_TX_CTL          0x1
-                               MX7D_PAD_EPDC_SDCE1__ENET2_RGMII_RXC            0x1
-                               MX7D_PAD_EPDC_SDCLK__ENET2_RGMII_RD0            0x1
-                               MX7D_PAD_EPDC_SDLE__ENET2_RGMII_RD1             0x1
-                               MX7D_PAD_EPDC_SDOE__ENET2_RGMII_RD2             0x1
-                               MX7D_PAD_EPDC_SDSHR__ENET2_RGMII_RD3            0x1
-                               MX7D_PAD_EPDC_SDCE0__ENET2_RGMII_RX_CTL         0x1
-                       >;
-               };
+       pinctrl_enet2: enet2grp {
+               fsl,pins = <
+                       MX7D_PAD_EPDC_GDSP__ENET2_RGMII_TXC             0x1
+                       MX7D_PAD_EPDC_SDCE2__ENET2_RGMII_TD0            0x1
+                       MX7D_PAD_EPDC_SDCE3__ENET2_RGMII_TD1            0x1
+                       MX7D_PAD_EPDC_GDCLK__ENET2_RGMII_TD2            0x1
+                       MX7D_PAD_EPDC_GDOE__ENET2_RGMII_TD3             0x1
+                       MX7D_PAD_EPDC_GDRL__ENET2_RGMII_TX_CTL          0x1
+                       MX7D_PAD_EPDC_SDCE1__ENET2_RGMII_RXC            0x1
+                       MX7D_PAD_EPDC_SDCLK__ENET2_RGMII_RD0            0x1
+                       MX7D_PAD_EPDC_SDLE__ENET2_RGMII_RD1             0x1
+                       MX7D_PAD_EPDC_SDOE__ENET2_RGMII_RD2             0x1
+                       MX7D_PAD_EPDC_SDSHR__ENET2_RGMII_RD3            0x1
+                       MX7D_PAD_EPDC_SDCE0__ENET2_RGMII_RX_CTL         0x1
+               >;
+       };
 
-               pinctrl_enet2_reg: enet2reggrp {
-                       fsl,pins = <
-                               MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4     0x14
-                       >;
-               };
+       pinctrl_enet2_reg: enet2reggrp {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4     0x14
+               >;
+       };
 
-               pinctrl_flexcan2: flexcan2grp {
-                       fsl,pins = <
-                               MX7D_PAD_GPIO1_IO14__FLEXCAN2_RX        0x59
-                               MX7D_PAD_GPIO1_IO15__FLEXCAN2_TX        0x59
-                       >;
-               };
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO14__FLEXCAN2_RX        0x59
+                       MX7D_PAD_GPIO1_IO15__FLEXCAN2_TX        0x59
+               >;
+       };
 
-               pinctrl_flexcan2_reg: flexcan2reggrp {
-                       fsl,pins = <
-                               MX7D_PAD_EPDC_DATA14__GPIO2_IO14        0x59    /* CAN_STBY */
-                       >;
-               };
+       pinctrl_flexcan2_reg: flexcan2reggrp {
+               fsl,pins = <
+                       MX7D_PAD_EPDC_DATA14__GPIO2_IO14        0x59    /* CAN_STBY */
+               >;
+       };
 
-               pinctrl_gpio_keys: gpio_keysgrp {
-                       fsl,pins = <
-                               MX7D_PAD_SD2_RESET_B__GPIO5_IO11        0x59
-                               MX7D_PAD_SD2_WP__GPIO5_IO10             0x59
-                       >;
-               };
+       pinctrl_gpio_keys: gpio-keysgrp {
+               fsl,pins = <
+                       MX7D_PAD_SD2_RESET_B__GPIO5_IO11        0x59
+                       MX7D_PAD_SD2_WP__GPIO5_IO10             0x59
+               >;
+       };
 
-               pinctrl_hog: hoggrp {
-                       fsl,pins = <
-                               MX7D_PAD_ECSPI2_SS0__GPIO4_IO23         0x34  /* bt reg on */
-                               MX7D_PAD_EPDC_BDR0__GPIO2_IO28          0x59  /* headphone detect */
-                       >;
-               };
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       MX7D_PAD_ECSPI2_SS0__GPIO4_IO23         0x34  /* bt reg on */
+                       MX7D_PAD_EPDC_BDR0__GPIO2_IO28          0x59  /* headphone detect */
+               >;
+       };
 
-               pinctrl_i2c1: i2c1grp {
-                       fsl,pins = <
-                               MX7D_PAD_I2C1_SDA__I2C1_SDA             0x4000007f
-                               MX7D_PAD_I2C1_SCL__I2C1_SCL             0x4000007f
-                       >;
-               };
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX7D_PAD_I2C1_SDA__I2C1_SDA             0x4000007f
+                       MX7D_PAD_I2C1_SCL__I2C1_SCL             0x4000007f
+               >;
+       };
 
-               pinctrl_i2c2: i2c2grp {
-                       fsl,pins = <
-                               MX7D_PAD_I2C2_SDA__I2C2_SDA             0x4000007f
-                               MX7D_PAD_I2C2_SCL__I2C2_SCL             0x4000007f
-                       >;
-               };
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX7D_PAD_I2C2_SDA__I2C2_SDA             0x4000007f
+                       MX7D_PAD_I2C2_SCL__I2C2_SCL             0x4000007f
+               >;
+       };
 
-               pinctrl_i2c3: i2c3grp {
-                       fsl,pins = <
-                               MX7D_PAD_I2C3_SDA__I2C3_SDA             0x4000007f
-                               MX7D_PAD_I2C3_SCL__I2C3_SCL             0x4000007f
-                       >;
-               };
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX7D_PAD_I2C3_SDA__I2C3_SDA             0x4000007f
+                       MX7D_PAD_I2C3_SCL__I2C3_SCL             0x4000007f
+               >;
+       };
 
-               pinctrl_i2c4: i2c4grp {
-                       fsl,pins = <
-                               MX7D_PAD_SAI1_RX_BCLK__I2C4_SDA         0x4000007f
-                               MX7D_PAD_SAI1_RX_SYNC__I2C4_SCL         0x4000007f
-                       >;
-               };
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins = <
+                       MX7D_PAD_SAI1_RX_BCLK__I2C4_SDA         0x4000007f
+                       MX7D_PAD_SAI1_RX_SYNC__I2C4_SCL         0x4000007f
+               >;
+       };
 
-               pinctrl_lcdif: lcdifgrp {
-                       fsl,pins = <
-                               MX7D_PAD_LCD_DATA00__LCD_DATA0          0x79
-                               MX7D_PAD_LCD_DATA01__LCD_DATA1          0x79
-                               MX7D_PAD_LCD_DATA02__LCD_DATA2          0x79
-                               MX7D_PAD_LCD_DATA03__LCD_DATA3          0x79
-                               MX7D_PAD_LCD_DATA04__LCD_DATA4          0x79
-                               MX7D_PAD_LCD_DATA05__LCD_DATA5          0x79
-                               MX7D_PAD_LCD_DATA06__LCD_DATA6          0x79
-                               MX7D_PAD_LCD_DATA07__LCD_DATA7          0x79
-                               MX7D_PAD_LCD_DATA08__LCD_DATA8          0x79
-                               MX7D_PAD_LCD_DATA09__LCD_DATA9          0x79
-                               MX7D_PAD_LCD_DATA10__LCD_DATA10         0x79
-                               MX7D_PAD_LCD_DATA11__LCD_DATA11         0x79
-                               MX7D_PAD_LCD_DATA12__LCD_DATA12         0x79
-                               MX7D_PAD_LCD_DATA13__LCD_DATA13         0x79
-                               MX7D_PAD_LCD_DATA14__LCD_DATA14         0x79
-                               MX7D_PAD_LCD_DATA15__LCD_DATA15         0x79
-                               MX7D_PAD_LCD_DATA16__LCD_DATA16         0x79
-                               MX7D_PAD_LCD_DATA17__LCD_DATA17         0x79
-                               MX7D_PAD_LCD_DATA18__LCD_DATA18         0x79
-                               MX7D_PAD_LCD_DATA19__LCD_DATA19         0x79
-                               MX7D_PAD_LCD_DATA20__LCD_DATA20         0x79
-                               MX7D_PAD_LCD_DATA21__LCD_DATA21         0x79
-                               MX7D_PAD_LCD_DATA22__LCD_DATA22         0x79
-                               MX7D_PAD_LCD_DATA23__LCD_DATA23         0x79
-                               MX7D_PAD_LCD_CLK__LCD_CLK               0x79
-                               MX7D_PAD_LCD_ENABLE__LCD_ENABLE         0x79
-                               MX7D_PAD_LCD_VSYNC__LCD_VSYNC           0x79
-                               MX7D_PAD_LCD_HSYNC__LCD_HSYNC           0x79
-                               MX7D_PAD_LCD_RESET__LCD_RESET           0x79
-                       >;
-               };
+       pinctrl_lcdif: lcdifgrp {
+               fsl,pins = <
+                       MX7D_PAD_LCD_DATA00__LCD_DATA0          0x79
+                       MX7D_PAD_LCD_DATA01__LCD_DATA1          0x79
+                       MX7D_PAD_LCD_DATA02__LCD_DATA2          0x79
+                       MX7D_PAD_LCD_DATA03__LCD_DATA3          0x79
+                       MX7D_PAD_LCD_DATA04__LCD_DATA4          0x79
+                       MX7D_PAD_LCD_DATA05__LCD_DATA5          0x79
+                       MX7D_PAD_LCD_DATA06__LCD_DATA6          0x79
+                       MX7D_PAD_LCD_DATA07__LCD_DATA7          0x79
+                       MX7D_PAD_LCD_DATA08__LCD_DATA8          0x79
+                       MX7D_PAD_LCD_DATA09__LCD_DATA9          0x79
+                       MX7D_PAD_LCD_DATA10__LCD_DATA10         0x79
+                       MX7D_PAD_LCD_DATA11__LCD_DATA11         0x79
+                       MX7D_PAD_LCD_DATA12__LCD_DATA12         0x79
+                       MX7D_PAD_LCD_DATA13__LCD_DATA13         0x79
+                       MX7D_PAD_LCD_DATA14__LCD_DATA14         0x79
+                       MX7D_PAD_LCD_DATA15__LCD_DATA15         0x79
+                       MX7D_PAD_LCD_DATA16__LCD_DATA16         0x79
+                       MX7D_PAD_LCD_DATA17__LCD_DATA17         0x79
+                       MX7D_PAD_LCD_DATA18__LCD_DATA18         0x79
+                       MX7D_PAD_LCD_DATA19__LCD_DATA19         0x79
+                       MX7D_PAD_LCD_DATA20__LCD_DATA20         0x79
+                       MX7D_PAD_LCD_DATA21__LCD_DATA21         0x79
+                       MX7D_PAD_LCD_DATA22__LCD_DATA22         0x79
+                       MX7D_PAD_LCD_DATA23__LCD_DATA23         0x79
+                       MX7D_PAD_LCD_CLK__LCD_CLK               0x79
+                       MX7D_PAD_LCD_ENABLE__LCD_ENABLE         0x79
+                       MX7D_PAD_LCD_VSYNC__LCD_VSYNC           0x79
+                       MX7D_PAD_LCD_HSYNC__LCD_HSYNC           0x79
+                       MX7D_PAD_LCD_RESET__LCD_RESET           0x79
+               >;
+       };
 
-               pinctrl_sai1: sai1grp {
-                       fsl,pins = <
-                               MX7D_PAD_SAI1_MCLK__SAI1_MCLK           0x1f
-                               MX7D_PAD_ENET1_RX_CLK__SAI1_TX_BCLK     0x1f
-                               MX7D_PAD_ENET1_CRS__SAI1_TX_SYNC        0x1f
-                               MX7D_PAD_ENET1_COL__SAI1_TX_DATA0       0x30
-                               MX7D_PAD_ENET1_TX_CLK__SAI1_RX_DATA0    0x1f
-                       >;
-               };
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       MX7D_PAD_SAI1_MCLK__SAI1_MCLK           0x1f
+                       MX7D_PAD_ENET1_RX_CLK__SAI1_TX_BCLK     0x1f
+                       MX7D_PAD_ENET1_CRS__SAI1_TX_SYNC        0x1f
+                       MX7D_PAD_ENET1_COL__SAI1_TX_DATA0       0x30
+                       MX7D_PAD_ENET1_TX_CLK__SAI1_RX_DATA0    0x1f
+               >;
+       };
 
-               pinctrl_sai2: sai2grp {
-                       fsl,pins = <
-                               MX7D_PAD_SAI2_TX_BCLK__SAI2_TX_BCLK     0x1f
-                               MX7D_PAD_SAI2_TX_SYNC__SAI2_TX_SYNC     0x1f
-                               MX7D_PAD_SAI2_TX_DATA__SAI2_TX_DATA0    0x30
-                               MX7D_PAD_SAI2_RX_DATA__SAI2_RX_DATA0    0x1f
-                       >;
-               };
+       pinctrl_sai2: sai2grp {
+               fsl,pins = <
+                       MX7D_PAD_SAI2_TX_BCLK__SAI2_TX_BCLK     0x1f
+                       MX7D_PAD_SAI2_TX_SYNC__SAI2_TX_SYNC     0x1f
+                       MX7D_PAD_SAI2_TX_DATA__SAI2_TX_DATA0    0x30
+                       MX7D_PAD_SAI2_RX_DATA__SAI2_RX_DATA0    0x1f
+               >;
+       };
 
-               pinctrl_sai3: sai3grp {
-                       fsl,pins = <
-                               MX7D_PAD_UART3_TX_DATA__SAI3_TX_BCLK   0x1f
-                               MX7D_PAD_UART3_CTS_B__SAI3_TX_SYNC     0x1f
-                               MX7D_PAD_UART3_RTS_B__SAI3_TX_DATA0    0x30
-                       >;
-               };
+       pinctrl_sai3: sai3grp {
+               fsl,pins = <
+                       MX7D_PAD_UART3_TX_DATA__SAI3_TX_BCLK   0x1f
+                       MX7D_PAD_UART3_CTS_B__SAI3_TX_SYNC     0x1f
+                       MX7D_PAD_UART3_RTS_B__SAI3_TX_DATA0    0x30
+               >;
+       };
 
-               pinctrl_spi4: spi4grp {
-                       fsl,pins = <
-                               MX7D_PAD_GPIO1_IO09__GPIO1_IO9  0x59
-                               MX7D_PAD_GPIO1_IO12__GPIO1_IO12 0x59
-                               MX7D_PAD_GPIO1_IO13__GPIO1_IO13 0x59
-                       >;
-               };
+       pinctrl_spi4: spi4grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO09__GPIO1_IO9  0x59
+                       MX7D_PAD_GPIO1_IO12__GPIO1_IO12 0x59
+                       MX7D_PAD_GPIO1_IO13__GPIO1_IO13 0x59
+               >;
+       };
 
-               pinctrl_tsc2046_pendown: tsc2046_pendown {
-                       fsl,pins = <
-                               MX7D_PAD_EPDC_BDR1__GPIO2_IO29          0x59
-                       >;
-               };
+       pinctrl_tsc2046_pendown: tsc2046-pendowngrp {
+               fsl,pins = <
+                       MX7D_PAD_EPDC_BDR1__GPIO2_IO29          0x59
+               >;
+       };
 
-               pinctrl_uart1: uart1grp {
-                       fsl,pins = <
-                               MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX    0x79
-                               MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX    0x79
-                       >;
-               };
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX    0x79
+                       MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX    0x79
+               >;
+       };
 
-               pinctrl_uart5: uart5grp {
-                       fsl,pins = <
-                               MX7D_PAD_SAI1_TX_BCLK__UART5_DCE_TX     0x79
-                               MX7D_PAD_SAI1_RX_DATA__UART5_DCE_RX     0x79
-                               MX7D_PAD_SAI1_TX_SYNC__UART5_DCE_CTS    0x79
-                               MX7D_PAD_SAI1_TX_DATA__UART5_DCE_RTS    0x79
-                       >;
-               };
+       pinctrl_uart5: uart5grp {
+               fsl,pins = <
+                       MX7D_PAD_SAI1_TX_BCLK__UART5_DCE_TX     0x79
+                       MX7D_PAD_SAI1_RX_DATA__UART5_DCE_RX     0x79
+                       MX7D_PAD_SAI1_TX_SYNC__UART5_DCE_CTS    0x79
+                       MX7D_PAD_SAI1_TX_DATA__UART5_DCE_RTS    0x79
+               >;
+       };
 
-               pinctrl_uart6: uart6grp {
-                       fsl,pins = <
-                               MX7D_PAD_ECSPI1_MOSI__UART6_DCE_TX      0x79
-                               MX7D_PAD_ECSPI1_SCLK__UART6_DCE_RX      0x79
-                               MX7D_PAD_ECSPI1_SS0__UART6_DCE_CTS      0x79
-                               MX7D_PAD_ECSPI1_MISO__UART6_DCE_RTS     0x79
-                       >;
-               };
+       pinctrl_uart6: uart6grp {
+               fsl,pins = <
+                       MX7D_PAD_ECSPI1_MOSI__UART6_DCE_TX      0x79
+                       MX7D_PAD_ECSPI1_SCLK__UART6_DCE_RX      0x79
+                       MX7D_PAD_ECSPI1_SS0__UART6_DCE_CTS      0x79
+                       MX7D_PAD_ECSPI1_MISO__UART6_DCE_RTS     0x79
+               >;
+       };
 
-               pinctrl_usdhc1_gpio: usdhc1_gpiogrp {
-                       fsl,pins = <
-                               MX7D_PAD_SD1_CD_B__GPIO5_IO0            0x59 /* CD */
-                               MX7D_PAD_SD1_WP__GPIO5_IO1              0x59 /* WP */
-                               MX7D_PAD_SD1_RESET_B__GPIO5_IO2         0x59 /* vmmc */
-                               MX7D_PAD_GPIO1_IO08__SD1_VSELECT        0x59 /* VSELECT */
-                       >;
-               };
+       pinctrl_usdhc1_gpio: usdhc1-gpiogrp {
+               fsl,pins = <
+                       MX7D_PAD_SD1_CD_B__GPIO5_IO0            0x59 /* CD */
+                       MX7D_PAD_SD1_WP__GPIO5_IO1              0x59 /* WP */
+                       MX7D_PAD_SD1_RESET_B__GPIO5_IO2         0x59 /* vmmc */
+                       MX7D_PAD_GPIO1_IO08__SD1_VSELECT        0x59 /* VSELECT */
+               >;
+       };
 
-               pinctrl_usdhc1: usdhc1grp {
-                       fsl,pins = <
-                               MX7D_PAD_SD1_CMD__SD1_CMD               0x59
-                               MX7D_PAD_SD1_CLK__SD1_CLK               0x19
-                               MX7D_PAD_SD1_DATA0__SD1_DATA0           0x59
-                               MX7D_PAD_SD1_DATA1__SD1_DATA1           0x59
-                               MX7D_PAD_SD1_DATA2__SD1_DATA2           0x59
-                               MX7D_PAD_SD1_DATA3__SD1_DATA3           0x59
-                       >;
-               };
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX7D_PAD_SD1_CMD__SD1_CMD               0x59
+                       MX7D_PAD_SD1_CLK__SD1_CLK               0x19
+                       MX7D_PAD_SD1_DATA0__SD1_DATA0           0x59
+                       MX7D_PAD_SD1_DATA1__SD1_DATA1           0x59
+                       MX7D_PAD_SD1_DATA2__SD1_DATA2           0x59
+                       MX7D_PAD_SD1_DATA3__SD1_DATA3           0x59
+               >;
+       };
 
-               pinctrl_usdhc1_100mhz: usdhc1grp_100mhz {
-                       fsl,pins = <
-                               MX7D_PAD_SD1_CMD__SD1_CMD               0x5a
-                               MX7D_PAD_SD1_CLK__SD1_CLK               0x1a
-                               MX7D_PAD_SD1_DATA0__SD1_DATA0           0x5a
-                               MX7D_PAD_SD1_DATA1__SD1_DATA1           0x5a
-                               MX7D_PAD_SD1_DATA2__SD1_DATA2           0x5a
-                               MX7D_PAD_SD1_DATA3__SD1_DATA3           0x5a
-                       >;
-               };
+       pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
+               fsl,pins = <
+                       MX7D_PAD_SD1_CMD__SD1_CMD               0x5a
+                       MX7D_PAD_SD1_CLK__SD1_CLK               0x1a
+                       MX7D_PAD_SD1_DATA0__SD1_DATA0           0x5a
+                       MX7D_PAD_SD1_DATA1__SD1_DATA1           0x5a
+                       MX7D_PAD_SD1_DATA2__SD1_DATA2           0x5a
+                       MX7D_PAD_SD1_DATA3__SD1_DATA3           0x5a
+               >;
+       };
 
-               pinctrl_usdhc1_200mhz: usdhc1grp_200mhz {
-                       fsl,pins = <
-                               MX7D_PAD_SD1_CMD__SD1_CMD               0x5b
-                               MX7D_PAD_SD1_CLK__SD1_CLK               0x1b
-                               MX7D_PAD_SD1_DATA0__SD1_DATA0           0x5b
-                               MX7D_PAD_SD1_DATA1__SD1_DATA1           0x5b
-                               MX7D_PAD_SD1_DATA2__SD1_DATA2           0x5b
-                               MX7D_PAD_SD1_DATA3__SD1_DATA3           0x5b
-                       >;
-               };
+       pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
+               fsl,pins = <
+                       MX7D_PAD_SD1_CMD__SD1_CMD               0x5b
+                       MX7D_PAD_SD1_CLK__SD1_CLK               0x1b
+                       MX7D_PAD_SD1_DATA0__SD1_DATA0           0x5b
+                       MX7D_PAD_SD1_DATA1__SD1_DATA1           0x5b
+                       MX7D_PAD_SD1_DATA2__SD1_DATA2           0x5b
+                       MX7D_PAD_SD1_DATA3__SD1_DATA3           0x5b
+               >;
+       };
 
-               pinctrl_usdhc2: usdhc2grp {
-                       fsl,pins = <
-                               MX7D_PAD_SD2_CMD__SD2_CMD               0x59
-                               MX7D_PAD_SD2_CLK__SD2_CLK               0x19
-                               MX7D_PAD_SD2_DATA0__SD2_DATA0           0x59
-                               MX7D_PAD_SD2_DATA1__SD2_DATA1           0x59
-                               MX7D_PAD_SD2_DATA2__SD2_DATA2           0x59
-                               MX7D_PAD_SD2_DATA3__SD2_DATA3           0x59
-                       >;
-               };
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX7D_PAD_SD2_CMD__SD2_CMD               0x59
+                       MX7D_PAD_SD2_CLK__SD2_CLK               0x19
+                       MX7D_PAD_SD2_DATA0__SD2_DATA0           0x59
+                       MX7D_PAD_SD2_DATA1__SD2_DATA1           0x59
+                       MX7D_PAD_SD2_DATA2__SD2_DATA2           0x59
+                       MX7D_PAD_SD2_DATA3__SD2_DATA3           0x59
+               >;
+       };
 
-               pinctrl_usdhc2_100mhz: usdhc2grp_100mhz {
-                       fsl,pins = <
-                               MX7D_PAD_SD2_CMD__SD2_CMD               0x5a
-                               MX7D_PAD_SD2_CLK__SD2_CLK               0x1a
-                               MX7D_PAD_SD2_DATA0__SD2_DATA0           0x5a
-                               MX7D_PAD_SD2_DATA1__SD2_DATA1           0x5a
-                               MX7D_PAD_SD2_DATA2__SD2_DATA2           0x5a
-                               MX7D_PAD_SD2_DATA3__SD2_DATA3           0x5a
-                       >;
-               };
+       pinctrl_usdhc2_100mhz: usdhc2-100mhz-grp {
+               fsl,pins = <
+                       MX7D_PAD_SD2_CMD__SD2_CMD               0x5a
+                       MX7D_PAD_SD2_CLK__SD2_CLK               0x1a
+                       MX7D_PAD_SD2_DATA0__SD2_DATA0           0x5a
+                       MX7D_PAD_SD2_DATA1__SD2_DATA1           0x5a
+                       MX7D_PAD_SD2_DATA2__SD2_DATA2           0x5a
+                       MX7D_PAD_SD2_DATA3__SD2_DATA3           0x5a
+               >;
+       };
 
-               pinctrl_usdhc2_200mhz: usdhc2grp_200mhz {
-                       fsl,pins = <
-                               MX7D_PAD_SD2_CMD__SD2_CMD               0x5b
-                               MX7D_PAD_SD2_CLK__SD2_CLK               0x1b
-                               MX7D_PAD_SD2_DATA0__SD2_DATA0           0x5b
-                               MX7D_PAD_SD2_DATA1__SD2_DATA1           0x5b
-                               MX7D_PAD_SD2_DATA2__SD2_DATA2           0x5b
-                               MX7D_PAD_SD2_DATA3__SD2_DATA3           0x5b
-                       >;
-               };
+       pinctrl_usdhc2_200mhz: usdhc2-200mhz-grp {
+               fsl,pins = <
+                       MX7D_PAD_SD2_CMD__SD2_CMD               0x5b
+                       MX7D_PAD_SD2_CLK__SD2_CLK               0x1b
+                       MX7D_PAD_SD2_DATA0__SD2_DATA0           0x5b
+                       MX7D_PAD_SD2_DATA1__SD2_DATA1           0x5b
+                       MX7D_PAD_SD2_DATA2__SD2_DATA2           0x5b
+                       MX7D_PAD_SD2_DATA3__SD2_DATA3           0x5b
+               >;
+       };
 
 
-               pinctrl_usdhc3: usdhc3grp {
-                       fsl,pins = <
-                               MX7D_PAD_SD3_CMD__SD3_CMD               0x59
-                               MX7D_PAD_SD3_CLK__SD3_CLK               0x19
-                               MX7D_PAD_SD3_DATA0__SD3_DATA0           0x59
-                               MX7D_PAD_SD3_DATA1__SD3_DATA1           0x59
-                               MX7D_PAD_SD3_DATA2__SD3_DATA2           0x59
-                               MX7D_PAD_SD3_DATA3__SD3_DATA3           0x59
-                               MX7D_PAD_SD3_DATA4__SD3_DATA4           0x59
-                               MX7D_PAD_SD3_DATA5__SD3_DATA5           0x59
-                               MX7D_PAD_SD3_DATA6__SD3_DATA6           0x59
-                               MX7D_PAD_SD3_DATA7__SD3_DATA7           0x59
-                               MX7D_PAD_SD3_STROBE__SD3_STROBE         0x19
-                       >;
-               };
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CMD__SD3_CMD               0x59
+                       MX7D_PAD_SD3_CLK__SD3_CLK               0x19
+                       MX7D_PAD_SD3_DATA0__SD3_DATA0           0x59
+                       MX7D_PAD_SD3_DATA1__SD3_DATA1           0x59
+                       MX7D_PAD_SD3_DATA2__SD3_DATA2           0x59
+                       MX7D_PAD_SD3_DATA3__SD3_DATA3           0x59
+                       MX7D_PAD_SD3_DATA4__SD3_DATA4           0x59
+                       MX7D_PAD_SD3_DATA5__SD3_DATA5           0x59
+                       MX7D_PAD_SD3_DATA6__SD3_DATA6           0x59
+                       MX7D_PAD_SD3_DATA7__SD3_DATA7           0x59
+                       MX7D_PAD_SD3_STROBE__SD3_STROBE         0x19
+               >;
+       };
 
-               pinctrl_usdhc3_100mhz: usdhc3grp_100mhz {
-                       fsl,pins = <
-                               MX7D_PAD_SD3_CMD__SD3_CMD               0x5a
-                               MX7D_PAD_SD3_CLK__SD3_CLK               0x1a
-                               MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5a
-                               MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5a
-                               MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5a
-                               MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5a
-                               MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5a
-                               MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5a
-                               MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5a
-                               MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5a
-                               MX7D_PAD_SD3_STROBE__SD3_STROBE         0x1a
-                       >;
-               };
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CMD__SD3_CMD               0x5a
+                       MX7D_PAD_SD3_CLK__SD3_CLK               0x1a
+                       MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5a
+                       MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5a
+                       MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5a
+                       MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5a
+                       MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5a
+                       MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5a
+                       MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5a
+                       MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5a
+                       MX7D_PAD_SD3_STROBE__SD3_STROBE         0x1a
+               >;
+       };
 
-               pinctrl_usdhc3_200mhz: usdhc3grp_200mhz {
-                       fsl,pins = <
-                               MX7D_PAD_SD3_CMD__SD3_CMD               0x5b
-                               MX7D_PAD_SD3_CLK__SD3_CLK               0x1b
-                               MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5b
-                               MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5b
-                               MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5b
-                               MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5b
-                               MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5b
-                               MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5b
-                               MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5b
-                               MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5b
-                               MX7D_PAD_SD3_STROBE__SD3_STROBE         0x1b
-                       >;
-               };
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CMD__SD3_CMD               0x5b
+                       MX7D_PAD_SD3_CLK__SD3_CLK               0x1b
+                       MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5b
+                       MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5b
+                       MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5b
+                       MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5b
+                       MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5b
+                       MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5b
+                       MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5b
+                       MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5b
+                       MX7D_PAD_SD3_STROBE__SD3_STROBE         0x1b
+               >;
        };
 };
 
                >;
        };
 
-       pinctrl_sai3_mclk: sai3grp_mclk {
+       pinctrl_sai3_mclk: sai3-mclk-grp {
                fsl,pins = <
                        MX7D_PAD_LPSR_GPIO1_IO03__SAI3_MCLK     0x1f
                >;
index 521493342fe972812c0947bccc10819b536a4f71..8f5566027c25a225b78d6cc11a0151df01ee8767 100644 (file)
 
 &iomuxc_lpsr {
        pinctrl_enet1_phy_interrupt: enet1phyinterruptgrp {
-               fsl,phy = <
+               fsl,pins = <
                        MX7D_PAD_LPSR_GPIO1_IO02__GPIO1_IO2     0x08
                >;
        };
index 7bab113ca6da79ed3941e7d6550fecfd31687f25..af4acc311572c19f89e04d58ecbda960a1488a03 100644 (file)
                >;
        };
 
-       pinctrl_usdhc3_100mhz: usdhc3grp_100mhz {
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
                fsl,pins = <
                        MX7D_PAD_SD3_CMD__SD3_CMD               0x5a
                        MX7D_PAD_SD3_CLK__SD3_CLK               0x1a
                >;
        };
 
-       pinctrl_usdhc3_200mhz: usdhc3grp_200mhz {
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
                fsl,pins = <
                        MX7D_PAD_SD3_CMD__SD3_CMD               0x5b
                        MX7D_PAD_SD3_CLK__SD3_CLK               0x1b
index e78d0a7d8cd28cf3637cd5d3ab0a45089e994813..941d9860218e96673048381f8aab8f30707d9b8d 100644 (file)
                >;
        };
 
-       pinctrl_uart6dte: uart6dte {
+       pinctrl_uart6dte: uart6dtegrp {
                fsl,pins = <
                        MX6UL_PAD_CSI_PIXCLK__UART6_DTE_TX      0x1b0b1
                        MX6UL_PAD_CSI_MCLK__UART6_DTE_RX        0x1b0b1
                >;
        };
 
-       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+       pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x00017069
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x000170b9
                >;
        };
 
-       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+       pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
                fsl,pins = <
                        MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x00017069
                        MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x000170f9
index 224f80a4a31d800ec4896539d63eaa28ea42bf32..4aefbc01dfc0fe7abbf87a8cdd0d8da179aae3d5 100644 (file)
                reg = <0x1d>;
        };
 
-       lm75@48 {
-               compatible = "nxp,lm75";
+       temperature-sensor@48 {
+               compatible = "national,lm75b";
                reg = <0x48>;
        };
 
index 1f84654df50c38c717a531bb7c5cb41bde98fb92..846afb8ccbf1de08cccaf445106beeeddee93454 100644 (file)
        clock-frequency = <400000>;
 
        sensor@49 {
-               compatible = "lm75";
+               compatible = "national,lm75";
                reg = <0x49>;
        };
 
index 7365fe4581a3a2a947e8a3f6243ade346a6d95d7..33b36af1656f05f22cfc65a1eed076006169439e 100644 (file)
@@ -52,7 +52,7 @@
        };
 
        apb@80000000 {
-               apbh@80000000 {
+               apbh-bus@80000000 {
                        nand-controller@8000c000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&gpmi_pins_a &gpmi_pins_fixup>;
@@ -99,7 +99,7 @@
                        };
                };
 
-               apbx@80040000 {
+               apbx-bus@80040000 {
                        lradc@80050000 {
                                status = "okay";
                                fsl,lradc-touchscreen-wires = <4>;
index 229e727b222ecfb6c38a7e178500725e8c25c696..e372e9327a475e6cb895053fd0c7e3e420d51d94 100644 (file)
@@ -19,7 +19,7 @@
        };
 
        apb@80000000 {
-               apbh@80000000 {
+               apbh-bus@80000000 {
                        ssp0: spi@80010000 {
                                compatible = "fsl,imx23-mmc";
                                pinctrl-names = "default";
@@ -64,7 +64,7 @@
                        };
                };
 
-               apbx@80040000 {
+               apbx-bus@80040000 {
                        lradc@80050000 {
                                status = "okay";
                        };
index b23e7ada9c804f0721c908c419a47757ee20f52a..cb661bf2d1578f7b048d821060d7efd7163b2a4d 100644 (file)
@@ -55,7 +55,7 @@
        };
 
        apb@80000000 {
-               apbh@80000000 {
+               apbh-bus@80000000 {
                        ssp0: spi@80010000 {
                                compatible = "fsl,imx23-mmc";
                                pinctrl-names = "default";
                        };
                };
 
-               apbx@80040000 {
+               apbx-bus@80040000 {
                        pwm: pwm@80064000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&pwm2_pins_a>;
index 69124ba6a6667cf59ab03573feaef9953a3b63d3..b2b6f851499954c8477cf48f5b2849c678ead76e 100644 (file)
@@ -16,7 +16,7 @@
        };
 
        apb@80000000 {
-               apbh@80000000 {
+               apbh-bus@80000000 {
                        ssp0: spi@80010000 {
                                compatible = "fsl,imx23-mmc";
                                pinctrl-names = "default";
@@ -44,7 +44,7 @@
                        };
                };
 
-               apbx@80040000 {
+               apbx-bus@80040000 {
                        auart0: serial@8006c000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&auart0_pins_a>;
index 28341d8315c25b2d7103c32e311b7d6a019324f9..0b088c8ab6b6466046453fc01e7ad7470db83031 100644 (file)
@@ -54,7 +54,7 @@
        };
 
        apb@80000000 {
-               apbh@80000000 {
+               apbh-bus@80000000 {
                        ssp0: spi@80010000 {
                                compatible = "fsl,imx23-mmc";
                                pinctrl-names = "default";
                        };
                };
 
-               apbx@80040000 {
+               apbx-bus@80040000 {
                        i2c: i2c@80058000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&i2c_pins_a>;
index 0309592af1e1eba8f767564a1fc663f6863f8a86..5e21252fb7c96965a627db7dd90f53889c72af30 100644 (file)
@@ -45,7 +45,7 @@
                reg = <0x80000000 0x80000>;
                ranges;
 
-               apbh@80000000 {
+               apbh-bus@80000000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        };
                };
 
-               apbx@80040000 {
+               apbx-bus@80040000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
index f9bf40d96568106781e61c0ea3a95dc12e91843c..4c4ea91c286f954b0a2e6d811746ac57584f2b40 100644 (file)
                reg = <0x40000000 0x04000000>;
        };
 
-       regulators {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               reg_3p3v: regulator@0 {
-                       compatible = "regulator-fixed";
-                       reg = <0>;
-                       regulator-name = "3P3V";
-                       regulator-min-microvolt = <3300000>;
-                       regulator-max-microvolt = <3300000>;
-                       regulator-always-on;
-               };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
        };
 
        sound {
index c72fe2d392f10096c1cc6152b9c85cbe38ce07bb..fd177daa63853ffc9c7f61f666aef966c9e2550b 100644 (file)
@@ -14,7 +14,7 @@
        compatible = "crystalfontz,cfa10037", "crystalfontz,cfa10036", "fsl,imx28";
 
        apb@80000000 {
-               apbh@80000000 {
+               apbh-bus@80000000 {
                        pinctrl@80018000 {
                                usb_pins_cfa10037: usb-10037@0 {
                                        reg = <0>;
@@ -38,7 +38,7 @@
                        };
                };
 
-               apbx@80040000 {
+               apbx-bus@80040000 {
                        usbphy1: usbphy@8007e000 {
                                status = "okay";
                        };
index 69fcb0dde9402696755f48863bebdb3d372375f0..410dfe17f8ca62f20f5f54004bcad0c60e04be40 100644 (file)
        status = "okay";
 };
 
-&saif0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&saif0_pins_a>;
-       #sound-dai-cells = <0>;
-       assigned-clocks = <&clks 53>;
-       assigned-clock-rates = <12000000>;
-       status = "okay";
-};
-
-&saif1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&saif1_pins_a>;
-       fsl,saif-master = <&saif0>;
-       #sound-dai-cells = <0>;
-       status = "okay";
-};
-
 &spi3_pins_a {
        fsl,pinmux-ids = <
                MX28_PAD_AUART2_RX__SSP3_D4
 
        flash@0 {
                compatible = "jedec,spi-nor";
-               spi-max-frequency = <40000000>;
+               spi-max-frequency = <20000000>;
                reg = <0>;
 
                partitions {
                                reg = <0x90000 0x10000>;
                        };
 
-                       partition@100000 {
-                               label = "kernel";
-                               reg = <0x100000 0x400000>;
+                       partition@a0000 {
+                               label = "rescue";
+                               reg = <0xa0000 0xf40000>;
+                       };
+
+                       partition@fe0000 {
+                               /* 1st sector for SPL boot img source data */
+                               label = "spl-boot-data1";
+                               reg = <0xfe0000 0x10000>;
                        };
 
-                       partition@500000 {
-                               label = "swupdate";
-                               reg = <0x500000 0x800000>;
+                       partition@ff0000 {
+                               /* 2nd sector for SPL boot img source data */
+                               label = "spl-boot-data2";
+                               reg = <0xff0000 0x10000>;
                        };
                };
        };
index d38183edf0fd526dba4274462f84306403bda133..9290635352f12c963243efc3d2fcbf0f19af8f8b 100644 (file)
 &saif0 {
        pinctrl-names = "default";
        pinctrl-0 = <&saif0_pins_b>;
-       fsl,saif-master;
        status = "okay";
 };
 
 &saif1 {
        pinctrl-names = "default";
        pinctrl-0 = <&saif1_pins_a>;
+       fsl,saif-master = <&saif0>;
        status = "okay";
 };
 
index 4817fba2d938b97980e2fb44c33955f666c1cd4a..bbea8b77386f1153247d1e191dcaa874a7f7969f 100644 (file)
@@ -56,7 +56,7 @@
                reg = <0x80000000 0x80000>;
                ranges;
 
-               apbh@80000000 {
+               apbh-bus@80000000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        };
                };
 
-               apbx@80040000 {
+               apbx-bus@80040000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
index 2985f4805b93ee629ff0d97f3c41d3c88d4f3e5a..309f5256754bb9b9632d3642d0f6fe51bdb1b45e 100644 (file)
@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <dt-bindings/iio/qcom,spmi-vadc.h>
+#include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/spmi/spmi.h>
 
                        interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
                };
 
-               pwrkey@800 {
-                       compatible = "qcom,pm8941-pwrkey";
+               pon@800 {
+                       compatible = "qcom,pm8941-pon";
                        reg = <0x800>;
-                       interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
-                       debounce = <15625>;
-                       bias-pull-up;
+
+                       pwrkey {
+                               compatible = "qcom,pm8941-pwrkey";
+                               interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
+                               debounce = <15625>;
+                               bias-pull-up;
+                               linux,code = <KEY_POWER>;
+                       };
                };
 
                pma8084_gpios: gpio@c000 {
index d460743fbb9401331d719e6a5e2fcf278d3744fb..9471839928505644df769747e0c7495e16c2e63c 100644 (file)
 &gsbi1_i2c {
        status = "okay";
        clock-frequency = <200000>;
-       pinctrl-0 = <&i2c1_pins>;
-       pinctrl-names = "default";
 
        eeprom@52 {
                compatible = "atmel,24c128";
 
 &gsbi3_i2c {
        clock-frequency = <200000>;
-       pinctrl-0 = <&i2c3_pins>;
-       pinctrl-names = "default";
        status = "okay";
 
        trackpad@10 {
index 671d58cc2741b04d369c589558793637dcd119c4..178c55c1efeb5107565cd5d3a8424112b85353f4 100644 (file)
 };
 
 &tlmm_pinmux {
-       card_detect: card_detect {
-               mux {
-                       pins = "gpio26";
-                       function = "gpio";
-                       bias-disable;
-               };
+       card_detect: card-detect-state {
+               pins = "gpio26";
+               function = "gpio";
+               bias-disable;
        };
 
-       pcie_pins: pcie_pinmux {
-               mux {
-                       pins = "gpio27";
-                       function = "gpio";
-               };
-               conf {
-                       pins = "gpio27";
-                       drive-strength = <12>;
-                       bias-disable;
-               };
+       pcie_pins: pcie-state {
+               pins = "gpio27";
+               function = "gpio";
+               drive-strength = <12>;
+               bias-disable;
        };
 };
 
index ed86b24119c97f133096c8a67595222d978eae43..b3ff8010b14985c55c580e0083a5c8ea23c03962 100644 (file)
 };
 
 &tlmm_pinmux {
-       card_detect: card_detect {
-               mux {
-                       pins = "gpio26";
-                       function = "gpio";
-                       bias-disable;
-               };
+       card_detect: card-detect-state {
+               pins = "gpio26";
+               function = "gpio";
+               bias-disable;
        };
 
-       pcie_pins: pcie_pinmux {
-               mux {
-                       pins = "gpio27";
-                       function = "gpio";
-               };
-               conf {
-                       pins = "gpio27";
-                       drive-strength = <12>;
-                       bias-disable;
-               };
+       pcie_pins: pcie-state {
+               pins = "gpio27";
+               function = "gpio";
+               drive-strength = <12>;
+               bias-disable;
        };
 };
 
index 7c545c50847b6a26163deb0e9528cf9a382a7bf3..e53de709e9d108f8a9c47bed124e1a659ef54460 100644 (file)
 // SPDX-License-Identifier: GPL-2.0
 
 &tlmm_pinmux {
-       sdc4_gpios: sdc4-gpios {
-               pios {
-                       pins = "gpio63", "gpio64", "gpio65", "gpio66", "gpio67", "gpio68";
-                       function = "sdc4";
-               };
-       };
-
-       sdcc1_pins: sdcc1-pin-active {
-               clk {
+       sdcc1_default_state: sdcc1-default-state {
+               clk-pins {
                        pins = "sdc1_clk";
-                       drive-strengh = <16>;
+                       drive-strength = <16>;
                        bias-disable;
                };
 
-               cmd {
+               cmd-pins {
                        pins = "sdc1_cmd";
-                       drive-strengh = <10>;
+                       drive-strength = <10>;
                        bias-pull-up;
                };
 
-               data {
+               data-pins {
                        pins = "sdc1_data";
-                       drive-strengh = <10>;
+                       drive-strength = <10>;
                        bias-pull-up;
                };
        };
 
-       sdcc3_pins: sdcc3-pin-active {
-               clk {
+       sdcc3_default_state: sdcc3-default-state {
+               clk-pins {
                        pins = "sdc3_clk";
-                       drive-strengh = <8>;
+                       drive-strength = <8>;
                        bias-disable;
                };
 
-               cmd {
+               cmd-pins {
                        pins = "sdc3_cmd";
-                       drive-strengh = <8>;
+                       drive-strength = <8>;
                        bias-pull-up;
                };
 
-               data {
+               data-pins {
                        pins = "sdc3_data";
-                       drive-strengh = <8>;
+                       drive-strength = <8>;
                        bias-pull-up;
                };
        };
 
-       ps_hold: ps_hold {
-               mux {
-                       pins = "gpio78";
-                       function = "ps_hold";
-               };
+       sdc4_default_state: sdc4-default-state {
+               pins = "gpio63", "gpio64", "gpio65", "gpio66", "gpio67", "gpio68";
+               function = "sdc4";
        };
 
-       i2c1_pins: i2c1 {
-               mux {
-                       pins = "gpio20", "gpio21";
-                       function = "gsbi1";
-               };
+       gsbi1_uart_2pins: gsbi1-uart-2pins-state {
+               pins = "gpio18", "gpio19";
+               function = "gsbi1";
+       };
 
-               pinconf {
-                       pins = "gpio20", "gpio21";
-                       drive-strength = <16>;
-                       bias-disable;
-               };
+       gsbi1_uart_4pins: gsbi1-uart-4pins-state {
+               pins = "gpio18", "gpio19", "gpio20", "gpio21";
+               function = "gsbi1";
        };
 
-       i2c1_pins_sleep: i2c1_pins_sleep {
-               mux {
-                       pins = "gpio20", "gpio21";
-                       function = "gpio";
-               };
-               pinconf {
-                       pins = "gpio20", "gpio21";
+       gsbi4_uart_pin_a: gsbi4-uart-pin-active-state {
+               rx-pins {
+                       pins = "gpio11";
+                       function = "gsbi4";
                        drive-strength = <2>;
                        bias-disable;
                };
-       };
 
-       gsbi1_uart_2pins: gsbi1_uart_2pins {
-               mux {
-                       pins = "gpio18", "gpio19";
-                       function = "gsbi1";
+               tx-pins {
+                       pins = "gpio10";
+                       function = "gsbi4";
+                       drive-strength = <4>;
+                       bias-disable;
                };
        };
 
-       gsbi1_uart_4pins: gsbi1_uart_4pins {
-               mux {
-                       pins = "gpio18", "gpio19", "gpio20", "gpio21";
-                       function = "gsbi1";
-               };
+       gsbi6_uart_2pins: gsbi6-uart-2pins-state {
+               pins = "gpio14", "gpio15";
+               function = "gsbi6";
        };
 
-       i2c2_pins: i2c2 {
-               mux {
-                       pins = "gpio24", "gpio25";
-                       function = "gsbi2";
-               };
-
-               pinconf {
-                       pins = "gpio24", "gpio25";
-                       drive-strength = <16>;
-                       bias-disable;
-               };
+       gsbi6_uart_4pins: gsbi6-uart-4pins-state {
+               pins = "gpio14", "gpio15", "gpio16", "gpio17";
+               function = "gsbi6";
        };
 
-       i2c2_pins_sleep: i2c2_pins_sleep {
-               mux {
-                       pins = "gpio24", "gpio25";
-                       function = "gpio";
-               };
-
-               pinconf {
-                       pins = "gpio24", "gpio25";
-                       drive-strength = <2>;
-                       bias-disable;
-               };
+       gsbi7_uart_2pins: gsbi7-uart-2pins-state {
+               pins = "gpio82", "gpio83";
+               function = "gsbi7";
        };
 
-       i2c3_pins: i2c3 {
-               mux {
-                       pins = "gpio8", "gpio9";
-                       function = "gsbi3";
-               };
-
-               pinconf {
-                       pins = "gpio8", "gpio9";
-                       drive-strength = <16>;
-                       bias-disable;
-               };
+       gsbi7_uart_4pins: gsbi7_uart_4pins-state {
+               pins = "gpio82", "gpio83", "gpio84", "gpio85";
+               function = "gsbi7";
        };
 
-       i2c3_pins_sleep: i2c3_pins_sleep {
-               mux {
-                       pins = "gpio8", "gpio9";
-                       function = "gpio";
-               };
-               pinconf {
-                       pins = "gpio8", "gpio9";
-                       drive-strength = <2>;
-                       bias-disable;
-               };
+       i2c1_default_state: i2c1-default-state {
+               pins = "gpio20", "gpio21";
+               function = "gsbi1";
+               drive-strength = <16>;
+               bias-disable;
        };
 
-       i2c4_pins: i2c4 {
-               mux {
-                       pins = "gpio12", "gpio13";
-                       function = "gsbi4";
-               };
-
-               pinconf {
-                       pins = "gpio12", "gpio13";
-                       drive-strength = <16>;
-                       bias-disable;
-               };
+       i2c1_sleep_state: i2c1-sleep-state {
+               pins = "gpio20", "gpio21";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
        };
 
-       i2c4_pins_sleep: i2c4_pins_sleep {
-               mux {
-                       pins = "gpio12", "gpio13";
-                       function = "gpio";
-               };
-               pinconf {
-                       pins = "gpio12", "gpio13";
-                       drive-strength = <2>;
-                       bias-disable;
-               };
+       i2c2_default_state: i2c2-default-state {
+               pins = "gpio24", "gpio25";
+               function = "gsbi2";
+               drive-strength = <16>;
+               bias-disable;
        };
 
-       spi5_default: spi5_default {
-               pinmux {
-                       pins = "gpio51", "gpio52", "gpio54";
-                       function = "gsbi5";
-               };
-
-               pinmux_cs {
-                       function = "gpio";
-                       pins = "gpio53";
-               };
-
-               pinconf {
-                       pins = "gpio51", "gpio52", "gpio54";
-                       drive-strength = <16>;
-                       bias-disable;
-               };
-
-               pinconf_cs {
-                       pins = "gpio53";
-                       drive-strength = <16>;
-                       bias-disable;
-                       output-high;
-               };
+       i2c2_sleep_state: i2c2-sleep-state {
+               pins = "gpio24", "gpio25";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
        };
 
-       spi5_sleep: spi5_sleep {
-               pinmux {
-                       function = "gpio";
-                       pins = "gpio51", "gpio52", "gpio53", "gpio54";
-               };
-
-               pinconf {
-                       pins = "gpio51", "gpio52", "gpio53", "gpio54";
-                       drive-strength = <2>;
-                       bias-pull-down;
-               };
+       i2c3_default_state: i2c3-default-state {
+               pins = "gpio8", "gpio9";
+               function = "gsbi3";
+               drive-strength = <16>;
+               bias-disable;
        };
 
-       i2c6_pins: i2c6 {
-               mux {
-                       pins = "gpio16", "gpio17";
-                       function = "gsbi6";
-               };
-
-               pinconf {
-                       pins = "gpio16", "gpio17";
-                       drive-strength = <16>;
-                       bias-disable;
-               };
+       i2c3_sleep_state: i2c3-sleep-state {
+               pins = "gpio8", "gpio9";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
        };
 
-       i2c6_pins_sleep: i2c6_pins_sleep {
-               mux {
-                       pins = "gpio16", "gpio17";
-                       function = "gpio";
-               };
-               pinconf {
-                       pins = "gpio16", "gpio17";
-                       drive-strength = <2>;
-                       bias-disable;
-               };
+       i2c4_default_state: i2c4-default-state {
+               pins = "gpio12", "gpio13";
+               function = "gsbi4";
+               drive-strength = <16>;
+               bias-disable;
        };
 
-       gsbi4_uart_pin_a: gsbi4-uart-pin-active-state {
-               rx-pins {
-                       pins = "gpio11";
-                       function = "gsbi4";
-                       drive-strength = <2>;
-                       bias-disable;
-               };
-
-               tx-pins {
-                       pins = "gpio10";
-                       function = "gsbi4";
-                       drive-strength = <4>;
-                       bias-disable;
-               };
+       i2c4_sleep_state: i2c4-sleep-state {
+               pins = "gpio12", "gpio13";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
        };
 
-       gsbi6_uart_2pins: gsbi6_uart_2pins {
-               mux {
-                       pins = "gpio14", "gpio15";
-                       function = "gsbi6";
-               };
+       i2c6_default_state: i2c6-default-state {
+               pins = "gpio16", "gpio17";
+               function = "gsbi6";
+               drive-strength = <16>;
+               bias-disable;
        };
 
-       gsbi6_uart_4pins: gsbi6_uart_4pins {
-               mux {
-                       pins = "gpio14", "gpio15", "gpio16", "gpio17";
-                       function = "gsbi6";
-               };
+       i2c6_sleep_state: i2c6-sleep-state {
+               pins = "gpio16", "gpio17";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
        };
 
-       gsbi7_uart_2pins: gsbi7_uart_2pins {
-               mux {
-                       pins = "gpio82", "gpio83";
-                       function = "gsbi7";
-               };
+       i2c7_default_state: i2c7-default-state {
+               pins = "gpio84", "gpio85";
+               function = "gsbi7";
+               drive-strength = <16>;
+               bias-disable;
        };
 
-       gsbi7_uart_4pins: gsbi7_uart_4pins {
-               mux {
-                       pins = "gpio82", "gpio83", "gpio84", "gpio85";
-                       function = "gsbi7";
-               };
+       i2c7_sleep_state: i2c7-sleep-state {
+               pins = "gpio84", "gpio85";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
        };
 
-       i2c7_pins: i2c7 {
-               mux {
-                       pins = "gpio84", "gpio85";
-                       function = "gsbi7";
+       spi5_default_state: spi5-default-state {
+               spi5-pins {
+                       pins = "gpio51", "gpio52", "gpio54";
+                       function = "gsbi5";
+                       drive-strength = <16>;
+                       bias-disable;
                };
 
-               pinconf {
-                       pins = "gpio84", "gpio85";
+               spi5-cs-pins {
+                       pins = "gpio53";
+                       function = "gpio";
                        drive-strength = <16>;
                        bias-disable;
+                       output-high;
                };
        };
 
-       i2c7_pins_sleep: i2c7_pins_sleep {
-               mux {
-                       pins = "gpio84", "gpio85";
+       spi5_sleep_state: spi5-sleep-state {
+               spi5-pins {
+                       pins = "gpio51", "gpio52", "gpio53", "gpio54";
                        function = "gpio";
-               };
-               pinconf {
-                       pins = "gpio84", "gpio85";
                        drive-strength = <2>;
-                       bias-disable;
+                       bias-pull-down;
                };
        };
 
-       riva_fm_pin_a: riva-fm-active {
+       riva_fm_pin_a: riva-fm-active-state {
                pins = "gpio14", "gpio15";
                function = "riva_fm";
        };
 
-       riva_bt_pin_a: riva-bt-active {
+       riva_bt_pin_a: riva-bt-active-state {
                pins = "gpio16", "gpio17";
                function = "riva_bt";
        };
 
-       riva_wlan_pin_a: riva-wlan-active {
+       riva_wlan_pin_a: riva-wlan-active-state {
                pins = "gpio64", "gpio65", "gpio66", "gpio67", "gpio68";
                function = "riva_wlan";
 
                bias-pull-down;
        };
 
-       hdmi_pinctrl: hdmi-pinctrl {
-               mux {
-                       pins = "gpio70", "gpio71", "gpio72";
-                       function = "hdmi";
-               };
-
-               pinconf_ddc {
+       hdmi_pinctrl: hdmi-pinctrl-state {
+               ddc-pins {
                        pins = "gpio70", "gpio71";
+                       function = "hdmi";
                        bias-pull-up;
                        drive-strength = <2>;
                };
 
-               pinconf_hpd {
+               hpd-pins {
                        pins = "gpio72";
+                       function = "hdmi";
                        bias-pull-down;
                        drive-strength = <16>;
                };
        };
+
+       ps_hold_default_state: ps-hold-default-state {
+               pins = "gpio78";
+               function = "ps_hold";
+       };
 };
index 2412aa3e3e8dbabbce398fbc706048818b37556b..7752f07973f9eac6d8fc3855c042f8cb7f9c2cde 100644 (file)
        cd-gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
 
        pinctrl-names = "default";
-       pinctrl-0 = <&sdcc3_pins>, <&sdcc3_cd_pin_a>;
+       pinctrl-0 = <&sdcc3_default_state>, <&sdcc3_cd_pin_a>;
 
        status = "okay";
 };
 
 &tlmm_pinmux {
-       gsbi5_uart_pin_a: gsbi5-uart-pin-active {
-               rx {
+       gsbi5_uart_pin_a: gsbi5-uart-pin-active-state {
+               rx-pins {
                        pins = "gpio52";
                        function = "gsbi5";
                        drive-strength = <2>;
                        bias-pull-up;
                };
 
-               tx {
+               tx-pins {
                        pins = "gpio51";
                        function = "gsbi5";
                        drive-strength = <4>;
        };
 
 
-       sdcc3_cd_pin_a: sdcc3-cd-pin-active {
+       sdcc3_cd_pin_a: sdcc3-cd-pin-active-state {
                pins = "gpio26";
                function = "gpio";
 
index 769e151747c354f571304d66025a5b24a8fba313..ac7494ed633e1b8bf97927950d5af8727ed3db52 100644 (file)
                        interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
 
                        pinctrl-names = "default";
-                       pinctrl-0 = <&ps_hold>;
+                       pinctrl-0 = <&ps_hold_default_state>;
                };
 
                sfpb_wrapper_mutex: syscon@1200000 {
 
                        gsbi1_i2c: i2c@12460000 {
                                compatible = "qcom,i2c-qup-v1.1.1";
-                               pinctrl-0 = <&i2c1_pins>;
-                               pinctrl-1 = <&i2c1_pins_sleep>;
+                               pinctrl-0 = <&i2c1_default_state>;
+                               pinctrl-1 = <&i2c1_sleep_state>;
                                pinctrl-names = "default", "sleep";
                                reg = <0x12460000 0x1000>;
                                interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
                        gsbi2_i2c: i2c@124a0000 {
                                compatible = "qcom,i2c-qup-v1.1.1";
                                reg = <0x124a0000 0x1000>;
-                               pinctrl-0 = <&i2c2_pins>;
-                               pinctrl-1 = <&i2c2_pins_sleep>;
+                               pinctrl-0 = <&i2c2_default_state>;
+                               pinctrl-1 = <&i2c2_sleep_state>;
                                pinctrl-names = "default", "sleep";
                                interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>;
                        ranges;
                        gsbi3_i2c: i2c@16280000 {
                                compatible = "qcom,i2c-qup-v1.1.1";
-                               pinctrl-0 = <&i2c3_pins>;
-                               pinctrl-1 = <&i2c3_pins_sleep>;
+                               pinctrl-0 = <&i2c3_default_state>;
+                               pinctrl-1 = <&i2c3_sleep_state>;
                                pinctrl-names = "default", "sleep";
                                reg = <0x16280000 0x1000>;
                                interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
 
                        gsbi4_i2c: i2c@16380000 {
                                compatible = "qcom,i2c-qup-v1.1.1";
-                               pinctrl-0 = <&i2c4_pins>;
-                               pinctrl-1 = <&i2c4_pins_sleep>;
+                               pinctrl-0 = <&i2c4_default_state>;
+                               pinctrl-1 = <&i2c4_sleep_state>;
                                pinctrl-names = "default", "sleep";
                                reg = <0x16380000 0x1000>;
                                interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
                                compatible = "qcom,spi-qup-v1.1.1";
                                reg = <0x1a280000 0x1000>;
                                interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
-                               pinctrl-0 = <&spi5_default>;
-                               pinctrl-1 = <&spi5_sleep>;
+                               pinctrl-0 = <&spi5_default_state>;
+                               pinctrl-1 = <&spi5_sleep_state>;
                                pinctrl-names = "default", "sleep";
                                clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
                                clock-names = "core", "iface";
 
                        gsbi6_i2c: i2c@16580000 {
                                compatible = "qcom,i2c-qup-v1.1.1";
-                               pinctrl-0 = <&i2c6_pins>;
-                               pinctrl-1 = <&i2c6_pins_sleep>;
+                               pinctrl-0 = <&i2c6_default_state>;
+                               pinctrl-1 = <&i2c6_sleep_state>;
                                pinctrl-names = "default", "sleep";
                                reg = <0x16580000 0x1000>;
                                interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
 
                        gsbi7_i2c: i2c@16680000 {
                                compatible = "qcom,i2c-qup-v1.1.1";
-                               pinctrl-0 = <&i2c7_pins>;
-                               pinctrl-1 = <&i2c7_pins_sleep>;
+                               pinctrl-0 = <&i2c7_default_state>;
+                               pinctrl-1 = <&i2c7_sleep_state>;
                                pinctrl-names = "default", "sleep";
                                reg = <0x16680000 0x1000>;
                                interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
                        compatible = "qcom,apq8064-sata-phy";
                        status = "disabled";
                        reg = <0x1b400000 0x200>;
-                       reg-names = "phy_mem";
                        clocks = <&gcc SATA_PHY_CFG_CLK>;
                        clock-names = "cfg";
                        #phy-cells = <0>;
                                 <&gcc SATA_PMALIVE_CLK>;
                        clock-names = "slave_iface",
                                      "iface",
-                                     "bus",
+                                     "core",
                                      "rxoob",
-                                     "core_pmalive";
+                                     "pmalive";
 
                        assigned-clocks = <&gcc SATA_RXOOB_CLK>,
                                          <&gcc SATA_PMALIVE_CLK>;
                        dmas = <&sdcc4bam 2>, <&sdcc4bam 1>;
                        dma-names = "tx", "rx";
                        pinctrl-names = "default";
-                       pinctrl-0 = <&sdc4_gpios>;
+                       pinctrl-0 = <&sdc4_default_state>;
                };
 
                sdcc4bam: dma-controller@121c2000 {
                        status = "disabled";
                        compatible = "arm,pl18x", "arm,primecell";
                        pinctrl-names = "default";
-                       pinctrl-0 = <&sdcc1_pins>;
+                       pinctrl-0 = <&sdcc1_default_state>;
                        arm,primecell-periphid = <0x00051180>;
                        reg = <0x12400000 0x2000>;
                        interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
index 2b52e5d5eb5170997374164b0574fb2d3dcedf3e..014e6c5ee88984ff3b5f0b0446f45838d6ac4a47 100644 (file)
                        qcom,smd-edge = <15>;
 
                        rpm-requests {
-                               compatible = "qcom,rpm-apq8084";
+                               compatible = "qcom,rpm-apq8084", "qcom,smd-rpm";
                                qcom,smd-channels = "rpm_requests";
 
                                regulators-0 {
index da67d55fa55730f848b2a0070d909a67d30b84c0..0d23c03fae33f1db4459dff5192210317e8c8d67 100644 (file)
 };
 
 &tlmm {
-       i2c0_pins: i2c0_pinmux {
-               mux_i2c {
-                       function = "blsp_i2c0";
-                       pins = "gpio58", "gpio59";
-                       drive-strength = <16>;
-                       bias-disable;
-               };
+       i2c0_pins: i2c0-state {
+               function = "blsp_i2c0";
+               pins = "gpio58", "gpio59";
+               drive-strength = <16>;
+               bias-disable;
        };
 
-       mdio_pins: mdio_pinmux {
-               mux_mdio {
+       mdio_pins: mdio-state {
+               mdio-pins {
                        pins = "gpio53";
                        function = "mdio";
                        bias-pull-up;
                };
 
-               mux_mdc {
+               mdc-pins {
                        pins = "gpio52";
                        function = "mdc";
                        bias-pull-up;
                };
        };
 
-       serial0_pins: serial0_pinmux {
-               mux_uart {
-                       pins = "gpio60", "gpio61";
-                       function = "blsp_uart0";
-                       bias-disable;
-               };
+       serial0_pins: serial0-state {
+               pins = "gpio60", "gpio61";
+               function = "blsp_uart0";
+               bias-disable;
        };
 
-       spi0_pins: spi0_pinmux {
-               mux_spi {
+       spi0_pins: spi0-state {
+               spi0-pins {
                        function = "blsp_spi0";
                        pins = "gpio55", "gpio56", "gpio57";
                        drive-strength = <12>;
                        bias-disable;
                };
 
-               mux_cs {
+               spi0-cs-pins {
                        function = "gpio";
                        pins = "gpio54", "gpio4";
                        drive-strength = <2>;
index 365fbac417fd1303ed3919d473ce98b3e53b1487..ac3b30072a22718ae1e129f79abfeb41af2bed7c 100644 (file)
 };
 
 &tlmm {
-       mdio_pins: mdio_pinmux {
-               pinmux_1 {
+       mdio_pins: mdio-state {
+               mdio-pins {
                        pins = "gpio53";
                        function = "mdio";
+                       bias-pull-up;
                };
 
-               pinmux_2 {
+               mdc-pins {
                        pins = "gpio52";
                        function = "mdc";
-               };
-
-               pinconf {
-                       pins = "gpio52", "gpio53";
                        bias-pull-up;
                };
        };
 
-       serial_pins: serial_pinmux {
-               mux {
-                       pins = "gpio60", "gpio61";
-                       function = "blsp_uart0";
-                       bias-disable;
-               };
+       serial_pins: serial-state{
+               pins = "gpio60", "gpio61";
+               function = "blsp_uart0";
+               bias-disable;
        };
 
-       spi_0_pins: spi_0_pinmux {
-               pin {
+       spi_0_pins: spi-0-state {
+               spi0-pins {
                        function = "blsp_spi0";
                        pins = "gpio55", "gpio56", "gpio57";
                        drive-strength = <2>;
                        bias-disable;
                };
 
-               pin_cs {
+               spi0-cs-pins {
                        function = "gpio";
                        pins = "gpio54", "gpio59";
                        drive-strength = <2>;
index f7ac8f9d0b6fc00e6363f2f42e8356591fed9cc5..efbe89dd47937ffc670fb40afb1c1e953ac5dca4 100644 (file)
 };
 
 &tlmm {
-       serial_pins: serial_pinmux {
-               mux {
-                       pins = "gpio60", "gpio61";
-                       function = "blsp_uart0";
-                       bias-disable;
-               };
+       serial_pins: serial-state {
+               pins = "gpio60", "gpio61";
+               function = "blsp_uart0";
+               bias-disable;
        };
 
-       spi_0_pins: spi_0_pinmux {
-               pinmux {
-                       function = "blsp_spi0";
-                       pins = "gpio55", "gpio56", "gpio57";
-               };
-               pinmux_cs {
-                       function = "gpio";
-                       pins = "gpio54";
-               };
-               pinconf {
+       spi_0_pins: spi-0-state {
+               spi0-pins {
                        pins = "gpio55", "gpio56", "gpio57";
+                       function = "blsp_spi0";
                        drive-strength = <12>;
                        bias-disable;
                };
-               pinconf_cs {
+               spi0-cs-pins {
                        pins = "gpio54";
+                       function = "gpio";
                        drive-strength = <2>;
                        bias-disable;
                        output-high;
index 374af6dd360a72146071ec24b73b746adcacf636..91e296d2ea827ac56c678b1f51167f89ffd532fc 100644 (file)
 
        soc {
                pinctrl@1000000 {
-                       serial_0_pins: serial0-pinmux {
+                       serial_0_pins: serial0-state {
                                pins = "gpio16", "gpio17";
                                function = "blsp_uart0";
                                bias-disable;
                        };
 
-                       serial_1_pins: serial1-pinmux {
+                       serial_1_pins: serial1-state {
                                pins = "gpio8", "gpio9",
                                        "gpio10", "gpio11";
                                function = "blsp_uart1";
                                bias-disable;
                        };
 
-                       spi_0_pins: spi-0-pinmux {
-                               pinmux {
+                       spi_0_pins: spi-0-state {
+                               spi0-pins {
                                        function = "blsp_spi0";
                                        pins = "gpio13", "gpio14", "gpio15";
                                        bias-disable;
                                };
-                               pinmux_cs {
+                               spi0-cs-pins {
                                        function = "gpio";
                                        pins = "gpio12";
                                        bias-disable;
                                };
                        };
 
-                       i2c_0_pins: i2c-0-pinmux {
+                       i2c_0_pins: i2c-0-state {
                                pins = "gpio20", "gpio21";
                                function = "blsp_i2c0";
                                bias-disable;
                        };
 
-                       nand_pins: nand-pins {
+                       nand_pins: nand-state {
                                pins = "gpio53", "gpio55", "gpio56",
                                        "gpio57", "gpio58", "gpio59",
                                        "gpio60", "gpio62", "gpio63",
index ea2987fcbff8d374c4448cb8e6923d43b21d9f4b..41c5874f6f976bd5f03d592d39eed8c7ac5a66a7 100644 (file)
                };
 
                pinctrl@1000000 {
-                       serial_1_pins: serial1-pinmux {
+                       serial_1_pins: serial1-state {
                                pins = "gpio8", "gpio9",
                                        "gpio10", "gpio11";
                                function = "blsp_uart1";
                                bias-disable;
                        };
 
-                       spi_0_pins: spi-0-pinmux {
-                               pinmux {
+                       spi_0_pins: spi-0-state {
+                               spi0-pins {
                                        function = "blsp_spi0";
                                        pins = "gpio13", "gpio14", "gpio15";
                                        bias-disable;
                                };
-                               pinmux_cs {
+                               spio-cs-pins {
                                        function = "gpio";
                                        pins = "gpio12";
                                        bias-disable;
index bd3553dd2070bf456dd137e409d9525f66967bd2..67ee99d6975793ef1b978abe4cbbe36dc4de60c3 100644 (file)
@@ -9,7 +9,7 @@
 
        soc {
                pinctrl@1000000 {
-                       serial_1_pins: serial1-pinmux {
+                       serial_1_pins: serial1-state {
                                pins = "gpio8", "gpio9";
                                function = "blsp_uart1";
                                bias-disable;
index 7ef635997efa4595ad9905cc6e562d14a401aa6c..cc88cf5f0d9bae86460947f7f72614a6ecd68044 100644 (file)
 
        soc {
                pinctrl@1000000 {
-                       serial_0_pins: serial0-pinmux {
+                       serial_0_pins: serial0-state {
                                pins = "gpio16", "gpio17";
                                function = "blsp_uart0";
                                bias-disable;
                        };
 
-                       i2c_0_pins: i2c-0-pinmux {
+                       i2c_0_pins: i2c-0-state {
                                pins = "gpio20", "gpio21";
                                function = "blsp_i2c0";
                                bias-disable;
                        };
 
-                       nand_pins: nand-pins {
+                       nand_pins: nand-state {
                                pins = "gpio53", "gpio55", "gpio56",
                                       "gpio57", "gpio58", "gpio59",
                                       "gpio60", "gpio62", "gpio63",
index a654d3c22c4f557da2e0c0e2d4ea41a88fba0ce7..5a8bf1a6f5597b46df56200468bb18038e5f72fc 100644 (file)
@@ -7,12 +7,11 @@
 
        soc {
                pinmux@800000 {
-                       buttons_pins: buttons_pins {
-                               mux {
-                                       pins = "gpio54", "gpio65";
-                                       drive-strength = <2>;
-                                       bias-pull-up;
-                               };
+                       buttons_pins: buttons-state {
+                               pins = "gpio54", "gpio65";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-up;
                        };
                };
 
index 12e806adcda803ef4f2b577524cced65f3827cba..f09da9460c86af9c288a6493e3d5e2544878c08f 100644 (file)
 };
 
 &qcom_pinmux {
-       buttons_pins: buttons_pins {
-               mux {
-                       pins = "gpio66";
-                       drive-strength = <16>;
-                       bias-disable;
-               };
+       buttons_pins: buttons-state {
+               pins = "gpio66";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
        };
 
-       leds_pins: leds_pins {
-               mux {
-                       pins = "gpio33";
-                       drive-strength = <16>;
-                       bias-disable;
-               };
+       leds_pins: leds-state {
+               pins = "gpio33";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
        };
 
-       mdio1_pins: mdio1_pins {
-               mux {
-                       pins = "gpio10", "gpio11";
-                       function = "gpio";
-                       drive-strength = <8>;
-                       bias-disable;
-               };
+       mdio1_pins: mdio1-state {
+               pins = "gpio10", "gpio11";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
        };
 
-       sw0_reset_pin: sw0_reset_pin {
-               mux {
-                       pins = "gpio16";
-                       drive-strength = <16>;
-                       function = "gpio";
-                       bias-disable;
-                       input-disable;
-               };
+       sw0_reset_pin: sw0-reset-state {
+               pins = "gpio16";
+               drive-strength = <16>;
+               function = "gpio";
+               bias-disable;
+               input-disable;
        };
 
-       sw1_reset_pin: sw1_reset_pin {
-               mux {
-                       pins = "gpio17";
-                       drive-strength = <16>;
-                       function = "gpio";
-                       bias-disable;
-                       input-disable;
-               };
+       sw1_reset_pin: sw1-reset-state {
+               pins = "gpio17";
+               drive-strength = <16>;
+               function = "gpio";
+               bias-disable;
+               input-disable;
        };
 
-       usb1_pwr_en_pins: usb1_pwr_en_pins {
-               mux {
-                       pins = "gpio4";
-                       function = "gpio";
-                       drive-strength = <16>;
-                       bias-disable;
-                       output-high;
-               };
+       usb1_pwr_en_pins: usb1-pwr-en-state {
+               pins = "gpio4";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-high;
        };
 };
 
index da0fd75f4711117690f37578f6af44c7820ad046..759a59c2bdbcfa23685f7ff42183ff316cb48c3b 100644 (file)
                        #interrupt-cells = <2>;
                        interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
 
-                       pcie0_pins: pcie0_pinmux {
-                               mux {
-                                       pins = "gpio3";
-                                       function = "pcie1_rst";
-                                       drive-strength = <12>;
-                                       bias-disable;
-                               };
+                       pcie0_pins: pcie0-state {
+                               pins = "gpio3";
+                               function = "pcie1_rst";
+                               drive-strength = <12>;
+                               bias-disable;
                        };
 
-                       pcie1_pins: pcie1_pinmux {
-                               mux {
-                                       pins = "gpio48";
-                                       function = "pcie2_rst";
-                                       drive-strength = <12>;
-                                       bias-disable;
-                               };
+                       pcie1_pins: pcie1-state {
+                               pins = "gpio48";
+                               function = "pcie2_rst";
+                               drive-strength = <12>;
+                               bias-disable;
                        };
 
-                       pcie2_pins: pcie2_pinmux {
-                               mux {
-                                       pins = "gpio63";
-                                       function = "pcie3_rst";
-                                       drive-strength = <12>;
-                                       bias-disable;
-                               };
+                       pcie2_pins: pcie2-state {
+                               pins = "gpio63";
+                               function = "pcie3_rst";
+                               drive-strength = <12>;
+                               bias-disable;
                        };
 
-                       i2c4_pins: i2c4-default {
+                       i2c4_pins: i2c4-state {
                                pins = "gpio12", "gpio13";
                                function = "gsbi4";
                                drive-strength = <12>;
                                bias-disable;
                        };
 
-                       spi_pins: spi_pins {
-                               mux {
-                                       pins = "gpio18", "gpio19", "gpio21";
-                                       function = "gsbi5";
-                                       drive-strength = <10>;
-                                       bias-none;
-                               };
+                       spi_pins: spi-state {
+                               pins = "gpio18", "gpio19", "gpio21";
+                               function = "gsbi5";
+                               drive-strength = <10>;
+                               bias-disable;
                        };
 
-                       leds_pins: leds_pins {
-                               mux {
-                                       pins = "gpio7", "gpio8", "gpio9",
-                                              "gpio26", "gpio53";
-                                       function = "gpio";
-                                       drive-strength = <2>;
-                                       bias-pull-down;
-                                       output-low;
-                               };
+                       leds_pins: leds-state {
+                               pins = "gpio7", "gpio8", "gpio9",
+                                       "gpio26", "gpio53";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                               output-low;
                        };
 
-                       buttons_pins: buttons_pins {
-                               mux {
-                                       pins = "gpio54";
-                                       drive-strength = <2>;
-                                       bias-pull-up;
-                               };
+                       buttons_pins: buttons-state {
+                               pins = "gpio54";
+                               drive-strength = <2>;
+                               bias-pull-up;
                        };
 
-                       nand_pins: nand_pins {
-                               mux {
+                       nand_pins: nand-state {
+                               nand-pins {
                                        pins = "gpio34", "gpio35", "gpio36",
                                               "gpio37", "gpio38", "gpio39",
                                               "gpio40", "gpio41", "gpio42",
                                        bias-disable;
                                };
 
-                               pullups {
+                               nand-pullup-pins {
                                        pins = "gpio39";
                                        function = "nand";
                                        drive-strength = <10>;
                                        bias-pull-up;
                                };
 
-                               hold {
+                               nand-hold-pins {
                                        pins = "gpio40", "gpio41", "gpio42",
                                               "gpio43", "gpio44", "gpio45",
                                               "gpio46", "gpio47";
                                };
                        };
 
-                       mdio0_pins: mdio0-pins {
-                               mux {
-                                       pins = "gpio0", "gpio1";
-                                       function = "mdio";
-                                       drive-strength = <8>;
-                                       bias-disable;
-                               };
+                       mdio0_pins: mdio0-state {
+                               pins = "gpio0", "gpio1";
+                               function = "mdio";
+                               drive-strength = <8>;
+                               bias-disable;
                        };
 
-                       rgmii2_pins: rgmii2-pins {
-                               mux {
-                                       pins = "gpio27", "gpio28", "gpio29",
-                                              "gpio30", "gpio31", "gpio32",
-                                              "gpio51", "gpio52", "gpio59",
-                                              "gpio60", "gpio61", "gpio62";
-                                       function = "rgmii2";
-                                       drive-strength = <8>;
-                                       bias-disable;
-                               };
+                       rgmii2_pins: rgmii2-state {
+                               pins = "gpio27", "gpio28", "gpio29",
+                                       "gpio30", "gpio31", "gpio32",
+                                       "gpio51", "gpio52", "gpio59",
+                                       "gpio60", "gpio61", "gpio62";
+                               function = "rgmii2";
+                               drive-strength = <8>;
+                               bias-disable;
                        };
                };
 
                                 <&gcc SATA_A_CLK>,
                                 <&gcc SATA_RXOOB_CLK>,
                                 <&gcc SATA_PMALIVE_CLK>;
-                       clock-names = "slave_face", "iface", "core",
+                       clock-names = "slave_iface", "iface", "core",
                                        "rxoob", "pmalive";
 
                        assigned-clocks = <&gcc SATA_RXOOB_CLK>, <&gcc SATA_PMALIVE_CLK>;
index 8839b23fc69364377c25ecc8f554251c0ddaa99d..ca76bf8af75e463bc3a2a5cfc1c2b574f0ac17f5 100644 (file)
        };
 };
 
+&blsp1_i2c2 {
+       status = "okay";
+
+       magnetometer: magnetometer@c {
+               compatible = "asahi-kasei,ak09911";
+               reg = <0x0c>;
+
+               vdd-supply = <&pm8226_l15>;
+               vid-supply = <&pm8226_l6>;
+       };
+
+       accelerometer: accelerometer@1e {
+               compatible = "kionix,kx022-1020";
+               reg = <0x1e>;
+
+               interrupts-extended = <&tlmm 63 IRQ_TYPE_EDGE_RISING>;
+
+               vdd-supply = <&pm8226_l15>;
+               vddio-supply = <&pm8226_l6>;
+
+               mount-matrix = "1",  "0",  "0",
+                              "0", "-1",  "0",
+                              "0",  "0",  "1";
+       };
+};
+
 &blsp1_i2c5 {
        status = "okay";
 
index 992b7115b5f8f5da9c147514cde4a4c49c233c44..a28a83cb534055a36a55f907094b34f48b6266be 100644 (file)
@@ -10,6 +10,9 @@
 
 #include "qcom-msm8226-microsoft-common.dtsi"
 
+/* This device has no magnetometer */
+/delete-node/ &magnetometer;
+
 / {
        model = "Nokia Lumia 630";
        compatible = "microsoft,moneypenny", "qcom,msm8226";
index b2f92ad6499acd992601536edc41462dfd3adbcf..3a685ff7e8ccf505e2801607a70099f4b3c16137 100644 (file)
@@ -12,6 +12,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/reset/qcom,gcc-msm8974.h>
+#include <dt-bindings/thermal/thermal.h>
 
 / {
        #address-cells = <1>;
                        device_type = "cpu";
                        reg = <0>;
                        next-level-cache = <&L2>;
+                       clocks = <&apcs>;
+                       operating-points-v2 = <&cpu_opp_table>;
                        qcom,acc = <&acc0>;
                        qcom,saw = <&saw0>;
+                       #cooling-cells = <2>;
                };
 
                CPU1: cpu@1 {
                        device_type = "cpu";
                        reg = <1>;
                        next-level-cache = <&L2>;
+                       clocks = <&apcs>;
+                       operating-points-v2 = <&cpu_opp_table>;
                        qcom,acc = <&acc1>;
                        qcom,saw = <&saw1>;
+                       #cooling-cells = <2>;
                };
 
                CPU2: cpu@2 {
                        device_type = "cpu";
                        reg = <2>;
                        next-level-cache = <&L2>;
+                       clocks = <&apcs>;
+                       operating-points-v2 = <&cpu_opp_table>;
                        qcom,acc = <&acc2>;
                        qcom,saw = <&saw2>;
+                       #cooling-cells = <2>;
                };
 
                CPU3: cpu@3 {
                        device_type = "cpu";
                        reg = <3>;
                        next-level-cache = <&L2>;
+                       clocks = <&apcs>;
+                       operating-points-v2 = <&cpu_opp_table>;
                        qcom,acc = <&acc3>;
                        qcom,saw = <&saw3>;
+                       #cooling-cells = <2>;
                };
 
                L2: l2-cache {
                reg = <0x0 0x0>;
        };
 
+       cpu_opp_table: opp-table-cpu {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+               };
+
+               opp-384000000 {
+                       opp-hz = /bits/ 64 <384000000>;
+               };
+
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+               };
+
+               opp-787200000 {
+                       opp-hz = /bits/ 64 <787200000>;
+               };
+
+               /* Higher CPU frequencies need speedbin support */
+       };
+
        pmu {
                compatible = "arm,cortex-a7-pmu";
                interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
 
                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 {
-                               compatible = "qcom,rpm-msm8226";
+                               compatible = "qcom,rpm-msm8226", "qcom,smd-rpm";
                                qcom,smd-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
                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-cells = <3>;
                };
 
-               apcs: syscon@f9011000 {
-                       compatible = "syscon";
+               apcs: mailbox@f9011000 {
+                       compatible = "qcom,msm8226-apcs-kpss-global",
+                                    "qcom,msm8916-apcs-kpss-global", "syscon";
                        reg = <0xf9011000 0x1000>;
+                       #mbox-cells = <1>;
+                       clocks = <&a7pll>, <&gcc GPLL0_VOTE>;
+                       clock-names = "pll", "aux";
+                       #clock-cells = <0>;
+               };
+
+               a7pll: clock@f9016000 {
+                       compatible = "qcom,msm8226-a7pll";
+                       reg = <0xf9016000 0x40>;
+                       #clock-cells = <0>;
+                       clocks = <&xo_board>;
+                       clock-names = "xo";
+                       operating-points-v2 = <&a7pll_opp_table>;
+
+                       a7pll_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-768000000 {
+                                       opp-hz = /bits/ 64 <768000000>;
+                               };
+
+                               opp-787200000 {
+                                       opp-hz = /bits/ 64 <787200000>;
+                               };
+
+                               opp-998400000 {
+                                       opp-hz = /bits/ 64 <998400000>;
+                               };
+
+                               opp-1094400000 {
+                                       opp-hz = /bits/ 64 <1094400000>;
+                               };
+
+                               opp-1190400000 {
+                                       opp-hz = /bits/ 64 <1190400000>;
+                               };
+
+                               opp-1305600000 {
+                                       opp-hz = /bits/ 64 <1305600000>;
+                               };
+
+                               opp-1344000000 {
+                                       opp-hz = /bits/ 64 <1344000000>;
+                               };
+
+                               opp-1401600000 {
+                                       opp-hz = /bits/ 64 <1401600000>;
+                               };
+
+                               opp-1497600000 {
+                                       opp-hz = /bits/ 64 <1497600000>;
+                               };
+
+                               opp-1593600000 {
+                                       opp-hz = /bits/ 64 <1593600000>;
+                               };
+
+                               opp-1689600000 {
+                                       opp-hz = /bits/ 64 <1689600000>;
+                               };
+
+                               opp-1785600000 {
+                                       opp-hz = /bits/ 64 <1785600000>;
+                               };
+                       };
                };
 
                saw_l2: power-manager@f9012000 {
                        #reset-cells = <1>;
                        #power-domain-cells = <1>;
 
-                       clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
+                       clocks = <&xo_board>,
                                 <&sleep_clk>;
                        clock-names = "xo",
                                      "sleep_clk";
                        smd-edge {
                                interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
 
-                               qcom,ipc = <&apcs 8 8>;
+                               mboxes = <&apcs 8>;
                                qcom,smd-edge = <1>;
 
                                label = "lpass";
 
                        thermal-sensors = <&tsens 5>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert0>;
+                                       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>;
+                               };
+                       };
+
                        trips {
                                cpu_alert0: trip0 {
                                        temperature = <75000>;
 
                        thermal-sensors = <&tsens 2>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert1>;
+                                       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>;
+                               };
+                       };
+
                        trips {
                                cpu_alert1: trip0 {
                                        temperature = <75000>;
index 53a6d4e85959fb48b5e6b7e07637d714a4f8e378..55077a5f2e34f84857ee35d22157362759151c5a 100644 (file)
@@ -13,6 +13,9 @@
 /* This device has touchscreen on i2c1 instead */
 /delete-node/ &touchscreen;
 
+/* The magnetometer used on this device is currently unknown */
+/delete-node/ &magnetometer;
+
 / {
        model = "Nokia Lumia 830";
        compatible = "microsoft,tesla", "qcom,msm8926", "qcom,msm8226";
index 15568579459ab3b718040cedd30daa6af0993091..1bd87170252df7771bd8ebdcbf0d57cc99af04fc 100644 (file)
                        qcom,smd-edge = <15>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-msm8974";
+                               compatible = "qcom,rpm-msm8974", "qcom,smd-rpm";
                                qcom,smd-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
                };
        };
 
-       reserved-memory {
+       reserved_memory: reserved-memory {
                #address-cells = <1>;
                #size-cells = <1>;
                ranges;
index b5443fd5b425e01a03a2538d21c5ad4c7936582d..d3959741d2ea9e2a3dace149034d42353fbe9828 100644 (file)
        };
 };
 
+&reserved_memory {
+       ramoops@3e8e0000 {
+               compatible = "ramoops";
+               reg = <0x3e8e0000 0x200000>;
+
+               console-size = <0x100000>;
+               record-size = <0x10000>;
+               ftrace-size = <0x10000>;
+               pmsg-size = <0x80000>;
+               ecc-size = <8>;
+       };
+};
+
 &remoteproc_adsp {
        status = "okay";
        cx-supply = <&pma8084_s2>;
index e32c73d32f0aafd8bf4dad74f24110f60438bd90..2f84e28057121bfae9842b4931c21afe480bec7f 100644 (file)
 &i2c2 {
        status = "okay";
 
-       rt5616: rt5616@1b {
-               compatible = "rt5616";
+       rt5616: audio-codec@1b {
+               compatible = "realtek,rt5616";
                reg = <0x1b>;
                clocks = <&cru SCLK_I2S_OUT>;
                clock-names = "mclk";
index 96279d1e02fec540e5f317c62743ae6c3f3b40a1..63b9912be06a7c53ef83783a1c84ad745515c6c4 100644 (file)
                };
        };
 
-       acodec: acodec-ana@20030000 {
-               compatible = "rk3036-codec";
+       acodec: audio-codec@20030000 {
+               compatible = "rockchip,rk3036-codec";
                reg = <0x20030000 0x4000>;
-               rockchip,grf = <&grf>;
                clock-names = "acodec_pclk";
                clocks = <&cru PCLK_ACODEC>;
+               rockchip,grf = <&grf>;
+               #sound-dai-cells = <0>;
                status = "disabled";
        };
 
                interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru  PCLK_HDMI>;
                clock-names = "pclk";
-               rockchip,grf = <&grf>;
                pinctrl-names = "default";
                pinctrl-0 = <&hdmi_ctl>;
                #sound-dai-cells = <0>;
        };
 
        spi: spi@20074000 {
-               compatible = "rockchip,rockchip-spi";
+               compatible = "rockchip,rk3036-spi";
                reg = <0x20074000 0x1000>;
                interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru PCLK_SPI>, <&cru SCLK_SPI>;
-               clock-names = "apb-pclk","spi_pclk";
+               clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>;
+               clock-names = "spiclk", "apb_pclk";
                dmas = <&pdma 8>, <&pdma 9>;
                dma-names = "tx", "rx";
                pinctrl-names = "default";
index 23e633387c24ddcf606fbb8790763fdb7d23f9d4..d4572146d135d9ae0fd1222c745cf64496ed5c86 100644 (file)
                };
        };
 
+       vpu: video-codec@10106000 {
+               compatible = "rockchip,rk3128-vpu", "rockchip,rk3066-vpu";
+               reg = <0x10106000 0x800>;
+               interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "vepu", "vdpu";
+               clocks = <&cru ACLK_VDPU>, <&cru HCLK_VDPU>,
+                        <&cru ACLK_VEPU>, <&cru HCLK_VEPU>;
+               clock-names = "aclk_vdpu", "hclk_vdpu",
+                             "aclk_vepu", "hclk_vepu";
+               iommus = <&vpu_mmu>;
+               power-domains = <&power RK3128_PD_VIDEO>;
+       };
+
+       vpu_mmu: iommu@10106800 {
+               compatible = "rockchip,iommu";
+               reg = <0x10106800 0x100>;
+               interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru ACLK_VEPU>, <&cru HCLK_VDPU>;
+               clock-names = "aclk", "iface";
+               power-domains = <&power RK3128_PD_VIDEO>;
+               #iommu-cells = <0>;
+       };
+
        vop: vop@1010e000 {
                compatible = "rockchip,rk3126-vop";
                reg = <0x1010e000 0x300>;
                compatible = "rockchip,sfc";
                reg = <0x1020c000 0x8000>;
                interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&cru SCLK_SFC>, <&cru 479>;
+               clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
                clock-names = "clk_sfc", "hclk_sfc";
                status = "disabled";
        };
index 2d9994379eb235557564759197533574d0d5b323..89ca2f8d38098d716a9947bd5345fcd1c0b79be4 100644 (file)
        pinctrl-0 = <&spim1_clk &spim1_cs0 &spim1_tx &spim1_rx>;
        status = "okay";
 
-       dh2228fv: dac@0 {
-               compatible = "rohm,dh2228fv";
+       display: display@0 {
+               compatible = "elgin,jg10309-01";
                reg = <0>;
                spi-max-frequency = <24000000>;
                spi-cpha;
index 06b1d7f2d8585a5a99d4a4fd65f4f3741d9fe6e1..35ef6732281fd9afd9dd3115ab4a34603f782ab1 100644 (file)
                                <0 RK_PC3 1 &pcfg_pull_none_drv_level_0_smt>;
                };
        };
+       i2c3 {
+               /omit-if-no-ref/
+               i2c3m0_xfer: i2c3m0-xfer {
+                       rockchip,pins =
+                               /* i2c3_scl_m0 */
+                               <3 RK_PA4 5 &pcfg_pull_none>,
+                               /* i2c3_sda_m0 */
+                               <3 RK_PA5 5 &pcfg_pull_none>;
+               };
+               /omit-if-no-ref/
+               i2c3m1_xfer: i2c3m1-xfer {
+                       rockchip,pins =
+                               /* i2c3_scl_m1 */
+                               <2 RK_PD4 7 &pcfg_pull_none>,
+                               /* i2c3_sda_m1 */
+                               <2 RK_PD5 7 &pcfg_pull_none>;
+               };
+               /omit-if-no-ref/
+               i2c3m2_xfer: i2c3m2-xfer {
+                       rockchip,pins =
+                               /* i2c3_scl_m2 */
+                               <1 RK_PD6 3 &pcfg_pull_none>,
+                               /* i2c3_sda_m2 */
+                               <1 RK_PD7 3 &pcfg_pull_none>;
+               };
+       };
+       i2s0 {
+               i2s0m0_lrck_tx: i2s0m0-lrck-tx {
+                       rockchip,pins =
+                       /* i2s0_lrck_tx_m0 */
+                       <3 RK_PD3 1 &pcfg_pull_none>;
+               };
+               i2s0m0_lrck_rx: i2s0m0-lrck-rx {
+                       rockchip,pins =
+                       /* i2s0_lrck_rx_m0 */
+                       <3 RK_PD4 1 &pcfg_pull_none>;
+               };
+               i2s0m0_mclk: i2s0m0-mclk {
+                       rockchip,pins =
+                       /* i2s0_mclk_m0 */
+                       <3 RK_PD2 1 &pcfg_pull_none>;
+               };
+               i2s0m0_sclk_rx: i2s0m0-sclk-rx {
+                       rockchip,pins =
+                       /* i2s0_sclk_rx_m0 */
+                       <3 RK_PD1 1 &pcfg_pull_none>;
+               };
+               i2s0m0_sclk_tx: i2s0m0-sclk-tx {
+                       rockchip,pins =
+                       /* i2s0_sclk_tx_m0 */
+                       <3 RK_PD0 1 &pcfg_pull_none>;
+               };
+               i2s0m0_sdi0: i2s0m0-sdi0 {
+                       rockchip,pins =
+                       /* i2s0_sdi0_m0 */
+                       <3 RK_PD6 1 &pcfg_pull_none>;
+               };
+               i2s0m0_sdo0: i2s0m0-sdo0 {
+                       rockchip,pins =
+                       /* i2s0_sdo0_m0 */
+                       <3 RK_PD5 1 &pcfg_pull_none>;
+               };
+               i2s0m0_sdo1_sdi3: i2s0m0-sdo1-sdi3 {
+                       rockchip,pins =
+                       /* i2s0_sdo1_sdi3_m0 */
+                       <3 RK_PD7 1 &pcfg_pull_none>;
+               };
+               i2s0m0_sdo2_sdi2: i2s0m0-sdo2-sdi2 {
+                       rockchip,pins =
+                       /* i2s0_sdo2_sdi2_m0 */
+                       <4 RK_PA0 1 &pcfg_pull_none>;
+               };
+               i2s0m0_sdo3_sdi1: i2s0m0-sdo3-sdi1 {
+                       rockchip,pins =
+                       /* i2s0_sdo3_sdi1_m0 */
+                       <4 RK_PA1 1 &pcfg_pull_none>;
+               };
+               i2s0m1_lrck_tx: i2s0m1-lrck-tx {
+                       rockchip,pins =
+                       /* i2s0_lrck_tx_m1 */
+                       <3 RK_PA5 3 &pcfg_pull_none>;
+               };
+               i2s0m1_lrck_rx: i2s0m1-lrck-rx {
+                       rockchip,pins =
+                       /* i2s0_lrck_rx_m1 */
+                       <3 RK_PB2 3 &pcfg_pull_none>;
+               };
+               i2s0m1_mclk: i2s0m1-mclk {
+                       rockchip,pins =
+                       /* i2s0_mclk_m1 */
+                       <3 RK_PB0 3 &pcfg_pull_none>;
+               };
+               i2s0m1_sclk_rx: i2s0m1-sclk-rx {
+                       rockchip,pins =
+                       /* i2s0_sclk_rx_m1 */
+                       <3 RK_PB1 3 &pcfg_pull_none>;
+               };
+               i2s0m1_sclk_tx: i2s0m1-sclk-tx {
+                       rockchip,pins =
+                       /* i2s0_sclk_tx_m1 */
+                       <3 RK_PA4 3 &pcfg_pull_none>;
+               };
+               i2s0m1_sdi0: i2s0m1-sdi0 {
+                       rockchip,pins =
+                       /* i2s0_sdi0_m1 */
+                       <3 RK_PA7 3 &pcfg_pull_none>;
+               };
+               i2s0m1_sdo0: i2s0m1-sdo0 {
+                       rockchip,pins =
+                       /* i2s0_sdo0_m1 */
+                       <3 RK_PA6 3 &pcfg_pull_none>;
+               };
+               i2s0m1_sdo1_sdi3: i2s0m1-sdo1-sdi3 {
+                       rockchip,pins =
+                       /* i2s0_sdo1_sdi3_m1 */
+                       <3 RK_PB3 3 &pcfg_pull_none>;
+               };
+               i2s0m1_sdo2_sdi2: i2s0m1-sdo2-sdi2 {
+                       rockchip,pins =
+                       /* i2s0_sdo2_sdi2_m1 */
+                       <3 RK_PB4 3 &pcfg_pull_none>;
+               };
+               i2s0m1_sdo3_sdi1: i2s0m1-sdo3-sdi1 {
+                       rockchip,pins =
+                       /* i2s0_sdo3_sdi1_m1 */
+                       <3 RK_PB5 3 &pcfg_pull_none>;
+               };
+       };
+       pwm0 {
+               /omit-if-no-ref/
+               pwm0m0_pins: pwm0m0-pins {
+                       rockchip,pins =
+                               /* pwm0_pin_m0 */
+                               <0 RK_PB6 3 &pcfg_pull_none>;
+               };
+               /omit-if-no-ref/
+               pwm0m1_pins: pwm0m1-pins {
+                       rockchip,pins =
+                               /* pwm0_pin_m1 */
+                               <2 RK_PB3 5 &pcfg_pull_none>;
+               };
+       };
+       pwm1 {
+               /omit-if-no-ref/
+               pwm1m0_pins: pwm1m0-pins {
+                       rockchip,pins =
+                               /* pwm1_pin_m0 */
+                               <0 RK_PB7 3 &pcfg_pull_none>;
+               };
+       };
        pwm2 {
                /omit-if-no-ref/
                pwm2m0_pins: pwm2m0-pins {
                                /* pwm2_pin_m0 */
                                <0 RK_PC0 3 &pcfg_pull_none>;
                };
+               /omit-if-no-ref/
+               pwm2m1_pins: pwm2m1-pins {
+                       rockchip,pins =
+                               /* pwm2_pin_m1 */
+                               <2 RK_PB1 5 &pcfg_pull_none>;
+               };
+       };
+       pwm3 {
+               /omit-if-no-ref/
+               pwm3m0_pins: pwm3m0-pins {
+                       rockchip,pins =
+                               /* pwm3_pin_m0 */
+                               <0 RK_PC1 3 &pcfg_pull_none>;
+               };
+       };
+       pwm4 {
+               /omit-if-no-ref/
+               pwm4m0_pins: pwm4m0-pins {
+                       rockchip,pins =
+                               /* pwm4_pin_m0 */
+                               <0 RK_PC2 3 &pcfg_pull_none>;
+               };
+       };
+       pwm5 {
+               /omit-if-no-ref/
+               pwm5m0_pins: pwm5m0-pins {
+                       rockchip,pins =
+                               /* pwm5_pin_m0 */
+                               <0 RK_PC3 3 &pcfg_pull_none>;
+               };
+       };
+       pwm6 {
+               /omit-if-no-ref/
+               pwm6m0_pins: pwm6m0-pins {
+                       rockchip,pins =
+                               /* pwm6_pin_m0 */
+                               <0 RK_PB2 3 &pcfg_pull_none>;
+               };
+               /omit-if-no-ref/
+               pwm6m1_pins: pwm6m1-pins {
+                       rockchip,pins =
+                               /* pwm6_pin_m1 */
+                               <2 RK_PD4 5 &pcfg_pull_none>;
+               };
+       };
+       pwm7 {
+               /omit-if-no-ref/
+               pwm7m0_pins: pwm7m0-pins {
+                       rockchip,pins =
+                               /* pwm7_pin_m0 */
+                               <0 RK_PB1 3 &pcfg_pull_none>;
+               };
+               /omit-if-no-ref/
+               pwm7m1_pins: pwm7m1-pins {
+                       rockchip,pins =
+                               /* pwm7_pin_m1 */
+                               <3 RK_PA0 5 &pcfg_pull_none>;
+               };
+       };
+       pwm8 {
+               /omit-if-no-ref/
+               pwm8m0_pins: pwm8m0-pins {
+                       rockchip,pins =
+                               /* pwm8_pin_m0 */
+                               <3 RK_PA4 6 &pcfg_pull_none>;
+               };
+               /omit-if-no-ref/
+               pwm8m1_pins: pwm8m1-pins {
+                       rockchip,pins =
+                               /* pwm8_pin_m1 */
+                               <2 RK_PD7 5 &pcfg_pull_none>;
+               };
+       };
+       pwm9 {
+               /omit-if-no-ref/
+               pwm9m0_pins: pwm9m0-pins {
+                       rockchip,pins =
+                               /* pwm9_pin_m0 */
+                               <3 RK_PA5 6 &pcfg_pull_none>;
+               };
+               /omit-if-no-ref/
+               pwm9m1_pins: pwm9m1-pins {
+                       rockchip,pins =
+                               /* pwm9_pin_m1 */
+                               <2 RK_PD6 5 &pcfg_pull_none>;
+               };
+       };
+       pwm10 {
+               /omit-if-no-ref/
+               pwm10m0_pins: pwm10m0-pins {
+                       rockchip,pins =
+                               /* pwm10_pin_m0 */
+                               <3 RK_PA6 6 &pcfg_pull_none>;
+               };
+               /omit-if-no-ref/
+               pwm10m1_pins: pwm10m1-pins {
+                       rockchip,pins =
+                               /* pwm10_pin_m1 */
+                               <2 RK_PD5 5 &pcfg_pull_none>;
+               };
        };
        pwm11 {
                /omit-if-no-ref/
                                /* pwm11_pin_m0 */
                                <3 RK_PA7 6 &pcfg_pull_none>;
                };
+               /omit-if-no-ref/
+               pwm11m1_pins: pwm11m1-pins {
+                       rockchip,pins =
+                               /* pwm11_pin_m1 */
+                               <3 RK_PA1 5 &pcfg_pull_none>;
+               };
        };
        rgmii {
                /omit-if-no-ref/
index bb603cae13dfc7694bacc3cbbe24540cace1d9a4..434846b85c957faa773e2563bf696249fcce3d5d 100644 (file)
@@ -22,6 +22,7 @@
        aliases {
                i2c0 = &i2c0;
                i2c2 = &i2c2;
+               i2c3 = &i2c3;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &uart2;
                status = "disabled";
        };
 
+       pwm0: pwm@ff430000 {
+               compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
+               reg = <0xff430000 0x10>;
+               clock-names = "pwm", "pclk";
+               clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm0m0_pins>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm1: pwm@ff430010 {
+               compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
+               reg = <0xff430010 0x10>;
+               clock-names = "pwm", "pclk";
+               clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm1m0_pins>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
        pwm2: pwm@ff430020 {
                compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
                reg = <0xff430020 0x10>;
                status = "disabled";
        };
 
+       pwm3: pwm@ff430030 {
+               compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
+               reg = <0xff430030 0x10>;
+               clock-names = "pwm", "pclk";
+               clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm3m0_pins>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm4: pwm@ff440000 {
+               compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
+               reg = <0xff440000 0x10>;
+               clock-names = "pwm", "pclk";
+               clocks = <&pmucru CLK_PWM1>, <&pmucru PCLK_PWM1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm4m0_pins>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm5: pwm@ff440010 {
+               compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
+               reg = <0xff440010 0x10>;
+               clock-names = "pwm", "pclk";
+               clocks = <&pmucru CLK_PWM1>, <&pmucru PCLK_PWM1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm5m0_pins>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm6: pwm@ff440020 {
+               compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
+               reg = <0xff440020 0x10>;
+               clock-names = "pwm", "pclk";
+               clocks = <&pmucru CLK_PWM1>, <&pmucru PCLK_PWM1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm6m0_pins>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm7: pwm@ff440030 {
+               compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
+               reg = <0xff440030 0x10>;
+               clock-names = "pwm", "pclk";
+               clocks = <&pmucru CLK_PWM1>, <&pmucru PCLK_PWM1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm7m0_pins>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
        pmucru: clock-controller@ff480000 {
                compatible = "rockchip,rv1126-pmucru";
                reg = <0xff480000 0x1000>;
                clock-names = "apb_pclk";
        };
 
+       i2c3: i2c@ff520000 {
+               compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
+               reg = <0xff520000 0x1000>;
+               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
+               clock-names = "i2c", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c3m0_xfer>;
+               rockchip,grf = <&pmugrf>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       pwm8: pwm@ff550000 {
+               compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
+               reg = <0xff550000 0x10>;
+               clock-names = "pwm", "pclk";
+               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
+               pinctrl-0 = <&pwm8m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm9: pwm@ff550010 {
+               compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
+               reg = <0xff550010 0x10>;
+               clock-names = "pwm", "pclk";
+               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
+               pinctrl-0 = <&pwm9m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm10: pwm@ff550020 {
+               compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
+               reg = <0xff550020 0x10>;
+               clock-names = "pwm", "pclk";
+               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
+               pinctrl-0 = <&pwm10m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
        pwm11: pwm@ff550030 {
                compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
                reg = <0xff550030 0x10>;
                clock-names = "pclk", "timer";
        };
 
+       i2s0: i2s@ff800000 {
+               compatible = "rockchip,rv1126-i2s-tdm";
+               reg = <0xff800000 0x1000>;
+               interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru MCLK_I2S0_TX>, <&cru MCLK_I2S0_RX>, <&cru HCLK_I2S0>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               dmas = <&dmac 20>, <&dmac 19>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s0m0_sclk_tx>,
+                            <&i2s0m0_sclk_rx>,
+                            <&i2s0m0_mclk>,
+                            <&i2s0m0_lrck_tx>,
+                            <&i2s0m0_lrck_rx>,
+                            <&i2s0m0_sdi0>,
+                            <&i2s0m0_sdo0>,
+                            <&i2s0m0_sdo1_sdi3>,
+                            <&i2s0m0_sdo2_sdi2>,
+                            <&i2s0m0_sdo3_sdi1>;
+               resets = <&cru SRST_I2S0_TX_M>, <&cru SRST_I2S0_RX_M>;
+               reset-names = "tx-m", "rx-m";
+               rockchip,grf = <&grf>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
        vop: vop@ffb00000 {
                compatible = "rockchip,rv1126-vop";
                reg = <0xffb00000 0x200>, <0xffb00a00 0x400>;
index c9f588a650944596be31601584f4973798ca2801..8db1ec4a3b26865fda0e6246db8687a89a48f5d9 100644 (file)
        /omit-if-no-ref/
        eth1_rgmii_sleep_pins_a: eth1-rgmii-sleep-0 {
                pins1 {
+                       pinmux = <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('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 */
        /omit-if-no-ref/
        eth2_rgmii_sleep_pins_a: eth2-rgmii-sleep-0 {
                pins1 {
+                       pinmux = <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', 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 */
index bacb70b4256bc3e5c023bea8a54f77d5de3fc78b..853dc21449d99a8b12d3e27f779ef1b65d133d5d 100644 (file)
@@ -75,6 +75,8 @@
 };
 
 &ethernet1 {
+       nvmem-cell-names = "mac-address";
+       nvmem-cells = <&ethernet_mac1_address>;
        phy-handle = <&ethphy1>;
        phy-mode = "rgmii-id";
        pinctrl-0 = <&eth1_rgmii_pins_a>;
                        interrupt-parent = <&gpiog>;
                        interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
                        reg = <1>;
+                       realtek,clkout-disable;
                        reset-assert-us = <15000>;
                        reset-deassert-us = <55000>;
                        reset-gpios = <&gpioa 11 GPIO_ACTIVE_LOW>;
+
+                       leds {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       color = <LED_COLOR_ID_GREEN>;
+                                       function = LED_FUNCTION_WAN;
+                                       linux,default-trigger = "netdev";
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       color = <LED_COLOR_ID_YELLOW>;
+                                       function = LED_FUNCTION_WAN;
+                                       linux,default-trigger = "netdev";
+                               };
+                       };
                };
        };
 };
 
 &ethernet2 {
+       nvmem-cell-names = "mac-address";
+       nvmem-cells = <&ethernet_mac2_address>;
        phy-handle = <&ethphy2>;
        phy-mode = "rgmii-id";
        pinctrl-0 = <&eth2_rgmii_pins_a>;
                        interrupt-parent = <&gpiog>;
                        interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
                        reg = <1>;
+                       realtek,clkout-disable;
                        reset-assert-us = <15000>;
                        reset-deassert-us = <55000>;
                        reset-gpios = <&gpiog 8 GPIO_ACTIVE_LOW>;
+
+                       leds {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               led@0 {
+                                       reg = <0>;
+                                       color = <LED_COLOR_ID_GREEN>;
+                                       function = LED_FUNCTION_LAN;
+                                       linux,default-trigger = "netdev";
+                               };
+
+                               led@1 {
+                                       reg = <1>;
+                                       color = <LED_COLOR_ID_YELLOW>;
+                                       function = LED_FUNCTION_LAN;
+                                       linux,default-trigger = "netdev";
+                               };
+                       };
                };
        };
 };
index ae83e7b1023231a369a7f96fb6dbefb0cdf30286..70e132dc6147f574914a1618e5f1ebe1313b372f 100644 (file)
                                 <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
                                 <STM32_PINMUX('E', 5, AF9)>, /* SDMMC2_D6 */
                                 <STM32_PINMUX('C', 7, AF10)>; /* SDMMC2_D7 */
+                       slew-rate = <1>;
+                       drive-push-pull;
+                       bias-pull-up;
                };
        };
 
index 75874eafde11ef6e46f93da8591b10cf8b53ceb1..8e1dd84e0c0a4fe046e246a61e1e7579eb6c0ee4 100644 (file)
        };
 };
 
-&pwm5_pins_a {
-       pins {
-               pinmux = <STM32_PINMUX('A', 0, AF2)>; /* TIM5_CH1 */
-       };
+&{pwm5_pins_a/pins} {
+       pinmux = <STM32_PINMUX('A', 0, AF2)>; /* TIM5_CH1 */
 };
 
-&pwm5_sleep_pins_a {
-       pins {
-               pinmux = <STM32_PINMUX('A', 0, ANALOG)>; /* TIM5_CH1 */
-       };
+&{pwm5_sleep_pins_a/pins} {
+       pinmux = <STM32_PINMUX('A', 0, ANALOG)>; /* TIM5_CH1 */
 };
 
 &timers5 {
index c90d815f906b8fff1be6895106ff98669641e899..3b33b7093b6868e9d717f118d796833268a076d0 100644 (file)
        status = "okay";
 };
 
-&sdmmc2_b4_od_pins_a {
-       pins1 {
-               pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
-                        <STM32_PINMUX('B', 7, AF10)>, /* SDMMC2_D1 */
-                        <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
-                        <STM32_PINMUX('B', 4, AF9)>; /* SDMMC2_D3 */
-       };
+&{sdmmc2_b4_od_pins_a/pins1} {
+       pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
+                <STM32_PINMUX('B', 7, AF10)>, /* SDMMC2_D1 */
+                <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
+                <STM32_PINMUX('B', 4, AF9)>; /* SDMMC2_D3 */
 };
 
-&sdmmc2_b4_pins_a {
-       pins1 {
-               pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
-                        <STM32_PINMUX('B', 7, AF10)>, /* SDMMC2_D1 */
-                        <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
-                        <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
-                        <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
-       };
+&{sdmmc2_b4_pins_a/pins1} {
+       pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
+                <STM32_PINMUX('B', 7, AF10)>, /* SDMMC2_D1 */
+                <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
+                <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
+                <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
 };
 
-&sdmmc2_b4_sleep_pins_a {
-       pins {
-               pinmux = <STM32_PINMUX('B', 14, ANALOG)>, /* SDMMC2_D0 */
-                        <STM32_PINMUX('B', 7, ANALOG)>, /* SDMMC2_D1 */
-                        <STM32_PINMUX('B', 3, ANALOG)>, /* SDMMC2_D2 */
-                        <STM32_PINMUX('B', 4, ANALOG)>, /* SDMMC2_D3 */
-                        <STM32_PINMUX('E', 3, ANALOG)>, /* SDMMC2_CK */
-                        <STM32_PINMUX('G', 6, ANALOG)>; /* SDMMC2_CMD */
-       };
+&{sdmmc2_b4_sleep_pins_a/pins} {
+       pinmux = <STM32_PINMUX('B', 14, ANALOG)>, /* SDMMC2_D0 */
+                <STM32_PINMUX('B', 7, ANALOG)>, /* SDMMC2_D1 */
+                <STM32_PINMUX('B', 3, ANALOG)>, /* SDMMC2_D2 */
+                <STM32_PINMUX('B', 4, ANALOG)>, /* SDMMC2_D3 */
+                <STM32_PINMUX('E', 3, ANALOG)>, /* SDMMC2_CK */
+                <STM32_PINMUX('G', 6, ANALOG)>; /* SDMMC2_CMD */
 };
 
-&sdmmc2_d47_pins_a {
-       pins {
-               pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */
-                        <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
-                        <STM32_PINMUX('C', 6, AF10)>, /* SDMMC2_D6 */
-                        <STM32_PINMUX('C', 7, AF10)>; /* SDMMC2_D7 */
-       };
+&{sdmmc2_d47_pins_a/pins} {
+       pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */
+                <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
+                <STM32_PINMUX('C', 6, AF10)>, /* SDMMC2_D6 */
+                <STM32_PINMUX('C', 7, AF10)>; /* SDMMC2_D7 */
 };
 
-&sdmmc2_d47_sleep_pins_a {
-       pins {
-               pinmux = <STM32_PINMUX('A', 8, ANALOG)>, /* SDMMC2_D4 */
-                        <STM32_PINMUX('A', 9, ANALOG)>, /* SDMMC2_D5 */
-                        <STM32_PINMUX('C', 6, ANALOG)>, /* SDMMC2_D6 */
-                        <STM32_PINMUX('D', 3, ANALOG)>; /* SDMMC2_D7 */
-       };
+&{sdmmc2_d47_sleep_pins_a/pins} {
+       pinmux = <STM32_PINMUX('A', 8, ANALOG)>, /* SDMMC2_D4 */
+                <STM32_PINMUX('A', 9, ANALOG)>, /* SDMMC2_D5 */
+                <STM32_PINMUX('C', 6, ANALOG)>, /* SDMMC2_D6 */
+                <STM32_PINMUX('D', 3, ANALOG)>; /* SDMMC2_D7 */
 };
 
 &sdmmc3 {
        };
 };
 
-&sdmmc3_b4_od_pins_b {
-       pins1 {
-               pinmux = <STM32_PINMUX('D', 1, AF10)>, /* SDMMC3_D0 */
-                        <STM32_PINMUX('D', 4, AF10)>, /* SDMMC3_D1 */
-                        <STM32_PINMUX('D', 5, AF10)>, /* SDMMC3_D2 */
-                        <STM32_PINMUX('D', 7, AF10)>; /* SDMMC3_D3 */
-       };
+&{sdmmc3_b4_od_pins_b/pins1} {
+       pinmux = <STM32_PINMUX('D', 1, AF10)>, /* SDMMC3_D0 */
+                <STM32_PINMUX('D', 4, AF10)>, /* SDMMC3_D1 */
+                <STM32_PINMUX('D', 5, AF10)>, /* SDMMC3_D2 */
+                <STM32_PINMUX('D', 7, AF10)>; /* SDMMC3_D3 */
 };
 
-&sdmmc3_b4_pins_b {
-       pins1 {
-               pinmux = <STM32_PINMUX('D', 1, AF10)>, /* SDMMC3_D0 */
-                        <STM32_PINMUX('D', 4, AF10)>, /* SDMMC3_D1 */
-                        <STM32_PINMUX('D', 5, AF10)>, /* SDMMC3_D2 */
-                        <STM32_PINMUX('D', 7, AF10)>, /* SDMMC3_D3 */
-                        <STM32_PINMUX('D', 0, AF10)>; /* SDMMC3_CMD */
-       };
+&{sdmmc3_b4_pins_b/pins1} {
+       pinmux = <STM32_PINMUX('D', 1, AF10)>, /* SDMMC3_D0 */
+                <STM32_PINMUX('D', 4, AF10)>, /* SDMMC3_D1 */
+                <STM32_PINMUX('D', 5, AF10)>, /* SDMMC3_D2 */
+                <STM32_PINMUX('D', 7, AF10)>, /* SDMMC3_D3 */
+                <STM32_PINMUX('D', 0, AF10)>; /* SDMMC3_CMD */
 };
 
-&sdmmc3_b4_sleep_pins_b {
-       pins {
-               pinmux = <STM32_PINMUX('D', 1, ANALOG)>, /* SDMMC3_D0 */
-                        <STM32_PINMUX('D', 4, ANALOG)>, /* SDMMC3_D1 */
-                        <STM32_PINMUX('D', 5, ANALOG)>, /* SDMMC3_D2 */
-                        <STM32_PINMUX('D', 7, ANALOG)>, /* SDMMC3_D3 */
-                        <STM32_PINMUX('G', 15, ANALOG)>, /* SDMMC3_CK */
-                        <STM32_PINMUX('D', 0, ANALOG)>; /* SDMMC3_CMD */
-       };
+&{sdmmc3_b4_sleep_pins_b/pins} {
+       pinmux = <STM32_PINMUX('D', 1, ANALOG)>, /* SDMMC3_D0 */
+                <STM32_PINMUX('D', 4, ANALOG)>, /* SDMMC3_D1 */
+                <STM32_PINMUX('D', 5, ANALOG)>, /* SDMMC3_D2 */
+                <STM32_PINMUX('D', 7, ANALOG)>, /* SDMMC3_D3 */
+                <STM32_PINMUX('G', 15, ANALOG)>, /* SDMMC3_CK */
+                <STM32_PINMUX('D', 0, ANALOG)>; /* SDMMC3_CMD */
 };
 
 &spi1 {
index 3938d357e198f47a1aecf41848c899ae1554e31c..98a31c2b5d456a0a449e191a313ee0ba26d5775b 100644 (file)
        status = "okay";
 };
 
-&ethernet0_rmii_pins_a {
-       pins1 {
-               pinmux = <STM32_PINMUX('B', 12, AF11)>, /* ETH1_RMII_TXD0 */
-                        <STM32_PINMUX('B', 13, AF11)>, /* ETH1_RMII_TXD1 */
-                        <STM32_PINMUX('B', 11, AF11)>; /* ETH1_RMII_TX_EN */
-       };
-       pins2 {
-               pinmux = <STM32_PINMUX('C', 4, AF11)>,  /* ETH1_RMII_RXD0 */
-                        <STM32_PINMUX('C', 5, AF11)>,  /* ETH1_RMII_RXD1 */
-                        <STM32_PINMUX('A', 1, AF11)>,  /* ETH1_RMII_REF_CLK input */
-                        <STM32_PINMUX('A', 7, AF11)>;  /* ETH1_RMII_CRS_DV */
-       };
+&{ethernet0_rmii_pins_a/pins1} {
+       pinmux = <STM32_PINMUX('B', 12, AF11)>, /* ETH1_RMII_TXD0 */
+                <STM32_PINMUX('B', 13, AF11)>, /* ETH1_RMII_TXD1 */
+                <STM32_PINMUX('B', 11, AF11)>; /* ETH1_RMII_TX_EN */
 };
 
-&ethernet0_rmii_sleep_pins_a {
-       pins1 {
-               pinmux = <STM32_PINMUX('B', 12, ANALOG)>, /* ETH1_RMII_TXD0 */
-                        <STM32_PINMUX('B', 13, ANALOG)>, /* ETH1_RMII_TXD1 */
-                        <STM32_PINMUX('B', 11, ANALOG)>, /* ETH1_RMII_TX_EN */
-                        <STM32_PINMUX('C', 4, ANALOG)>,  /* ETH1_RMII_RXD0 */
-                        <STM32_PINMUX('C', 5, ANALOG)>,  /* ETH1_RMII_RXD1 */
-                        <STM32_PINMUX('A', 1, ANALOG)>,  /* ETH1_RMII_REF_CLK */
-                        <STM32_PINMUX('A', 7, ANALOG)>;  /* ETH1_RMII_CRS_DV */
-       };
+&{ethernet0_rmii_pins_a/pins2} {
+       pinmux = <STM32_PINMUX('C', 4, AF11)>,  /* ETH1_RMII_RXD0 */
+                <STM32_PINMUX('C', 5, AF11)>,  /* ETH1_RMII_RXD1 */
+                <STM32_PINMUX('A', 1, AF11)>,  /* ETH1_RMII_REF_CLK input */
+                <STM32_PINMUX('A', 7, AF11)>;  /* ETH1_RMII_CRS_DV */
+};
+
+&{ethernet0_rmii_sleep_pins_a/pins1} {
+       pinmux = <STM32_PINMUX('B', 12, ANALOG)>, /* ETH1_RMII_TXD0 */
+                <STM32_PINMUX('B', 13, ANALOG)>, /* ETH1_RMII_TXD1 */
+                <STM32_PINMUX('B', 11, ANALOG)>, /* ETH1_RMII_TX_EN */
+                <STM32_PINMUX('C', 4, ANALOG)>,  /* ETH1_RMII_RXD0 */
+                <STM32_PINMUX('C', 5, ANALOG)>,  /* ETH1_RMII_RXD1 */
+                <STM32_PINMUX('A', 1, ANALOG)>,  /* ETH1_RMII_REF_CLK */
+                <STM32_PINMUX('A', 7, ANALOG)>;  /* ETH1_RMII_CRS_DV */
 };
 
 &iwdg2 {
        };
 };
 
-&qspi_bk1_pins_a {
-       pins1 {
-               bias-pull-up;
-               drive-push-pull;
-               slew-rate = <1>;
-       };
+&{qspi_bk1_pins_a/pins} {
+       /delete-property/ bias-disable;
+       bias-pull-up;
+       drive-push-pull;
+       slew-rate = <1>;
 };
 
 &rng1 {
        status = "okay";
 };
 
-&sdmmc1_b4_od_pins_a {
-       pins1 {
-               bias-pull-up;
-       };
-       pins2 {
-               bias-pull-up;
-       };
+&{sdmmc1_b4_od_pins_a/pins1} {
+       /delete-property/ bias-disable;
+       bias-pull-up;
 };
 
-&sdmmc1_b4_pins_a {
-       pins1 {
-               bias-pull-up;
-       };
-       pins2 {
-               bias-pull-up;
-       };
+&{sdmmc1_b4_od_pins_a/pins2} {
+       /delete-property/ bias-disable;
+       bias-pull-up;
+};
+
+&{sdmmc1_b4_pins_a/pins1} {
+       /delete-property/ bias-disable;
+       bias-pull-up;
+};
+
+&{sdmmc1_b4_pins_a/pins2} {
+       /delete-property/ bias-disable;
+       bias-pull-up;
 };
 
 &uart4 {
        status = "okay";
 };
 
-&uart4_idle_pins_a {
-       pins1 {
-               pinmux = <STM32_PINMUX('B', 9, ANALOG)>; /* UART4_TX */
-       };
-       pins2 {
-               pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
-               bias-pull-up;
-       };
+&{uart4_idle_pins_a/pins1} {
+       pinmux = <STM32_PINMUX('B', 9, ANALOG)>; /* UART4_TX */
 };
 
-&uart4_pins_a {
-       pins1 {
-               pinmux = <STM32_PINMUX('B', 9, AF8)>; /* UART4_TX */
-               bias-disable;
-               drive-push-pull;
-               slew-rate = <0>;
-       };
-       pins2 {
-               pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
-               bias-pull-up;
-       };
+&{uart4_idle_pins_a/pins2} {
+       pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
+       /delete-property/ bias-disable;
+       bias-pull-up;
 };
 
-&uart4_sleep_pins_a {
-       pins {
-               pinmux = <STM32_PINMUX('B', 9, ANALOG)>, /* UART4_TX */
-                       <STM32_PINMUX('B', 2, ANALOG)>; /* UART4_RX */
-       };
+&{uart4_pins_a/pins1} {
+       pinmux = <STM32_PINMUX('B', 9, AF8)>; /* UART4_TX */
+       slew-rate = <0>;
+};
+
+&{uart4_pins_a/pins2} {
+       pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
+       /delete-property/ bias-disable;
+       bias-pull-up;
+};
+
+&{uart4_sleep_pins_a/pins} {
+       pinmux = <STM32_PINMUX('B', 9, ANALOG)>, /* UART4_TX */
+               <STM32_PINMUX('B', 2, ANALOG)>; /* UART4_RX */
 };
 
 &usbh_ehci {
index ad25929e64e6e0be04d979f27adb9bbaf9a12653..b6be61b159e72b9e4620fd7252be30527def805a 100644 (file)
        };
 };
 
-&i2c1_pins_a {
-       pins {
-               pinmux = <STM32_PINMUX('D', 12, AF5)>, /* I2C1_SCL */
-                        <STM32_PINMUX('D', 13, AF5)>; /* I2C1_SDA */
-       };
+&{i2c1_pins_a/pins} {
+       pinmux = <STM32_PINMUX('D', 12, AF5)>, /* I2C1_SCL */
+                <STM32_PINMUX('D', 13, AF5)>; /* I2C1_SDA */
 };
 
-&i2c1_sleep_pins_a {
-       pins {
-               pinmux = <STM32_PINMUX('D', 12, ANALOG)>, /* I2C1_SCL */
-                        <STM32_PINMUX('D', 13, ANALOG)>; /* I2C1_SDA */
-       };
+&{i2c1_sleep_pins_a/pins} {
+       pinmux = <STM32_PINMUX('D', 12, ANALOG)>, /* I2C1_SCL */
+                <STM32_PINMUX('D', 13, ANALOG)>; /* I2C1_SDA */
 };
 
 &mdio0 {
diff --git a/src/arm/st/stm32mp151c-mecio1r0.dts b/src/arm/st/stm32mp151c-mecio1r0.dts
new file mode 100644 (file)
index 0000000..a5ea143
--- /dev/null
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) Protonic Holland
+ * Author: David Jander <david@protonic.nl>
+ */
+/dts-v1/;
+
+#include "stm32mp151.dtsi"
+#include "stm32mp15xc.dtsi"
+#include "stm32mp15-pinctrl.dtsi"
+#include "stm32mp15xxaa-pinctrl.dtsi"
+#include "stm32mp15x-mecio1-io.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "Protonic MECIO1r0";
+       compatible = "prt,mecio1r0", "st,stm32mp151";
+
+       led {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_DEBUG;
+                       gpios = <&gpioa 13 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DEBUG;
+                       gpios = <&gpioa 14 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+};
+
+&clk_hse {
+       clock-frequency = <25000000>;
+};
+
+&ethernet0 {
+       assigned-clocks = <&rcc ETHCK_K>, <&rcc PLL3_Q>;
+       assigned-clock-parents = <&rcc PLL3_Q>;
+       assigned-clock-rates = <125000000>; /* Clock PLL3 to 625Mhz in tf-a. */
+       st,eth-clk-sel;
+};
diff --git a/src/arm/st/stm32mp151c-mect1s.dts b/src/arm/st/stm32mp151c-mect1s.dts
new file mode 100644 (file)
index 0000000..a1b8c36
--- /dev/null
@@ -0,0 +1,290 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) Protonic Holland
+ * Author: David Jander <david@protonic.nl>
+ */
+/dts-v1/;
+
+#include "stm32mp151.dtsi"
+#include "stm32mp15xc.dtsi"
+#include "stm32mp15-pinctrl.dtsi"
+#include "stm32mp15xxaa-pinctrl.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "Protonic MECT1S";
+       compatible = "prt,mect1s", "st,stm32mp151";
+
+       chosen {
+               stdout-path = "serial0:1500000n8";
+       };
+
+       aliases {
+               serial0 = &uart4;
+               ethernet0 = &ethernet0;
+               ethernet1 = &ethernet1;
+               ethernet2 = &ethernet2;
+               ethernet3 = &ethernet3;
+               ethernet4 = &ethernet4;
+       };
+
+       v3v3: regulator-v3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "v3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       v5v: regulator-v5v {
+               compatible = "regulator-fixed";
+               regulator-name = "v5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       led {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_DEBUG;
+                       gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
+               };
+
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DEBUG;
+                       gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+};
+
+&clk_hse {
+       clock-frequency = <24000000>;
+};
+
+&clk_lse {
+       status = "disabled";
+};
+
+&ethernet0 {
+       status = "okay";
+       pinctrl-0 = <&ethernet0_rmii_pins_a>;
+       pinctrl-1 = <&ethernet0_rmii_sleep_pins_a>;
+       pinctrl-names = "default", "sleep";
+       phy-mode = "rmii";
+       max-speed = <100>;
+       st,eth-clk-sel;
+
+       fixed-link {
+               speed = <100>;
+               full-duplex;
+       };
+
+       mdio0: mdio {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                compatible = "snps,dwmac-mdio";
+       };
+};
+
+&{ethernet0_rmii_pins_a/pins1} {
+       pinmux = <STM32_PINMUX('B', 12, AF11)>, /* ETH1_RMII_TXD0 */
+                <STM32_PINMUX('B', 13, AF11)>, /* ETH1_RMII_TXD1 */
+                <STM32_PINMUX('B', 11, AF11)>, /* ETH1_RMII_TX_EN */
+                <STM32_PINMUX('A', 2, AF11)>,  /* ETH1_MDIO */
+                <STM32_PINMUX('C', 1, AF11)>;  /* ETH1_MDC */
+};
+
+&{ethernet0_rmii_pins_a/pins2} {
+       pinmux = <STM32_PINMUX('C', 4, AF11)>,  /* ETH1_RMII_RXD0 */
+                <STM32_PINMUX('C', 5, AF11)>,  /* ETH1_RMII_RXD1 */
+                <STM32_PINMUX('A', 1, AF11)>,  /* ETH1_RMII_REF_CLK input */
+                <STM32_PINMUX('A', 7, AF11)>;  /* ETH1_RMII_CRS_DV */
+};
+
+&{ethernet0_rmii_sleep_pins_a/pins1} {
+       pinmux = <STM32_PINMUX('B', 12, ANALOG)>, /* ETH1_RMII_TXD0 */
+                <STM32_PINMUX('B', 13, ANALOG)>, /* ETH1_RMII_TXD1 */
+                <STM32_PINMUX('B', 11, ANALOG)>, /* ETH1_RMII_TX_EN */
+                <STM32_PINMUX('C', 4, ANALOG)>,  /* ETH1_RMII_RXD0 */
+                <STM32_PINMUX('C', 5, ANALOG)>,  /* ETH1_RMII_RXD1 */
+                <STM32_PINMUX('A', 1, ANALOG)>,  /* ETH1_RMII_REF_CLK */
+                <STM32_PINMUX('A', 7, ANALOG)>;  /* ETH1_RMII_CRS_DV */
+};
+
+&mdio0 {
+       /* All this DP83TG720R PHYs can't be probed before switch@0 is
+        * probed so we need to use compatible with PHYid
+        */
+       /* TI DP83TG720R */
+       t1_phy0: ethernet-phy@8 {
+               compatible = "ethernet-phy-id2000.a284";
+               reg = <8>;
+               interrupts-extended = <&gpioi 5 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&gpioh 13 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10>;
+               reset-deassert-us = <35>;
+       };
+
+       /* TI DP83TG720R */
+       t1_phy1: ethernet-phy@c {
+               compatible = "ethernet-phy-id2000.a284";
+               reg = <12>;
+               interrupts-extended = <&gpioj 0 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&gpioh 14 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10>;
+               reset-deassert-us = <35>;
+       };
+
+       /* TI DP83TG720R */
+       t1_phy2: ethernet-phy@4 {
+               compatible = "ethernet-phy-id2000.a284";
+               reg = <4>;
+               interrupts-extended = <&gpioi 7 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&gpioh 15 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10>;
+               reset-deassert-us = <35>;
+       };
+
+       /* TI DP83TG720R */
+       t1_phy3: ethernet-phy@d {
+               compatible = "ethernet-phy-id2000.a284";
+               reg = <13>;
+               interrupts-extended = <&gpioi 15 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&gpioi 13 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <1000>;
+       };
+};
+
+&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>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-rx-bus-width = <4>;
+               spi-max-frequency = <1000000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+};
+
+&{qspi_bk1_pins_a/pins} {
+       /delete-property/ bias-disable;
+       bias-pull-up;
+       drive-push-pull;
+       slew-rate = <1>;
+};
+
+&spi2 {
+       pinctrl-0 = <&spi2_pins_b>;
+       pinctrl-names = "default";
+       cs-gpios = <&gpioj 3 GPIO_ACTIVE_LOW>;
+       /delete-property/dmas;
+       /delete-property/dma-names;
+       status = "okay";
+
+       switch@0 {
+               compatible = "nxp,sja1105q";
+               reg = <0>;
+               spi-max-frequency = <1000000>;
+               spi-rx-delay-us = <1>;
+               spi-tx-delay-us = <1>;
+               spi-cpha;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       ethernet1: port@0 {
+                               reg = <0>;
+                               label = "t10";
+                               phy-mode = "rgmii-id";
+                               phy-handle = <&t1_phy0>;
+                       };
+
+                       ethernet2: port@1 {
+                               reg = <1>;
+                               label = "t11";
+                               phy-mode = "rgmii-id";
+                               phy-handle = <&t1_phy1>;
+                       };
+
+                       ethernet3: port@2 {
+                               reg = <2>;
+                               label = "t12";
+                               phy-mode = "rgmii-id";
+                               phy-handle = <&t1_phy2>;
+                       };
+
+                       ethernet4: port@3 {
+                               reg = <3>;
+                               label = "t13";
+                               phy-mode = "rgmii-id";
+                               phy-handle = <&t1_phy3>;
+                       };
+
+                       port@4 {
+                               reg = <4>;
+                               label = "cpu";
+                               ethernet = <&ethernet0>;
+                               phy-mode = "rmii";
+
+                               /* RGMII mode is not working properly, using RMII instead. */
+                               fixed-link {
+                                       speed = <100>;
+                                       full-duplex;
+                               };
+                       };
+               };
+       };
+};
+
+&uart4 {
+       pinctrl-names = "default", "sleep", "idle";
+       pinctrl-0 = <&uart4_pins_a>;
+       pinctrl-1 = <&uart4_sleep_pins_a>;
+       pinctrl-2 = <&uart4_idle_pins_a>;
+       /delete-property/dmas;
+       /delete-property/dma-names;
+       status = "okay";
+};
+
+&usbh_ehci {
+       status = "okay";
+};
+
+&usbotg_hs {
+       dr_mode = "host";
+       pinctrl-0 = <&usbotg_hs_pins_a>;
+       pinctrl-names = "default";
+       phys = <&usbphyc_port1 0>;
+       phy-names = "usb2-phy";
+       vbus-supply = <&v5v>;
+       status = "okay";
+};
+
+&usbphyc {
+       status = "okay";
+};
+
+&usbphyc_port0 {
+       phy-supply = <&v3v3>;
+};
+
+&usbphyc_port1 {
+       phy-supply = <&v3v3>;
+};
diff --git a/src/arm/st/stm32mp153c-mecio1r1.dts b/src/arm/st/stm32mp153c-mecio1r1.dts
new file mode 100644 (file)
index 0000000..16b814c
--- /dev/null
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) Protonic Holland
+ * Author: David Jander <david@protonic.nl>
+ */
+/dts-v1/;
+
+#include "stm32mp153.dtsi"
+#include "stm32mp15xc.dtsi"
+#include "stm32mp15-pinctrl.dtsi"
+#include "stm32mp15xxaa-pinctrl.dtsi"
+#include "stm32mp15x-mecio1-io.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "Protonic MECIO1r1";
+       compatible = "prt,mecio1r1", "st,stm32mp153";
+
+       led {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_DEBUG;
+                       gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
+               };
+
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DEBUG;
+                       gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+};
+
+&clk_hse {
+       clock-frequency = <24000000>;
+};
+
+&m_can1 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&m_can1_pins_b>;
+       pinctrl-1 = <&m_can1_sleep_pins_b>;
+       status = "okay";
+};
diff --git a/src/arm/st/stm32mp15x-mecio1-io.dtsi b/src/arm/st/stm32mp15x-mecio1-io.dtsi
new file mode 100644 (file)
index 0000000..915ba25
--- /dev/null
@@ -0,0 +1,527 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) Protonic Holland
+ * Author: David Jander <david@protonic.nl>
+ */
+
+#include "stm32mp15xc.dtsi"
+#include "stm32mp15-pinctrl.dtsi"
+#include "stm32mp15xxaa-pinctrl.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       chosen {
+               stdout-path = "serial0:1500000n8";
+       };
+
+       aliases {
+               serial0 = &uart4;
+               ethernet0 = &ethernet0;
+               spi1 = &spi1;
+               spi2 = &spi2;
+               spi3 = &spi3;
+               spi4 = &spi4;
+               spi5 = &spi5;
+               spi6 = &spi6;
+       };
+
+       memory@c0000000 {
+               device_type = "memory";
+               reg = <0xC0000000 0x10000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               mcuram2: mcuram2@10000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x10000000 0x40000>;
+                       no-map;
+               };
+
+               vdev0vring0: vdev0vring0@10040000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x10040000 0x1000>;
+                       no-map;
+               };
+
+               vdev0vring1: vdev0vring1@10041000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x10041000 0x1000>;
+                       no-map;
+               };
+
+               vdev0buffer: vdev0buffer@10042000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x10042000 0x4000>;
+                       no-map;
+               };
+
+               mcuram: mcuram@30000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x30000000 0x40000>;
+                       no-map;
+               };
+
+               retram: retram@38000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x38000000 0x10000>;
+                       no-map;
+               };
+       };
+
+       v3v3: regulator-v3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "v3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       v5v: regulator-v5v {
+               compatible = "regulator-fixed";
+               regulator-name = "v5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+};
+
+&adc {
+       /* ANA0, ANA1 are dedicated pins and don't need pinctrl: only in6. */
+       pinctrl-0 = <&adc12_pins_mecsbc>;
+       pinctrl-names = "default";
+       vdd-supply = <&v3v3>;
+       vdda-supply = <&v3v3>;
+       vref-supply = <&v3v3>;
+       status = "okay";
+};
+
+&adc1 {
+       status = "okay";
+
+       channel@0 {
+               reg = <0>;
+               /* 16.5 ck_cycles sampling time */
+               st,min-sample-time-ns = <5000>;
+               label = "p24v_stp";
+       };
+
+       channel@1 {
+               reg = <1>;
+               st,min-sample-time-ns = <5000>;
+               label = "p24v_hpdcm";
+       };
+
+       channel@2 {
+               reg = <2>;
+               st,min-sample-time-ns = <5000>;
+               label = "ain0";
+       };
+
+       channel@3 {
+               reg = <3>;
+               st,min-sample-time-ns = <5000>;
+               label = "hpdcm1_i2";
+       };
+
+       channel@5 {
+               reg = <5>;
+               st,min-sample-time-ns = <5000>;
+               label = "hpout1_i";
+       };
+
+       channel@6 {
+               reg = <6>;
+               st,min-sample-time-ns = <5000>;
+               label = "ain1";
+       };
+
+       channel@9 {
+               reg = <9>;
+               st,min-sample-time-ns = <5000>;
+               label = "hpout0_i";
+       };
+
+       channel@10 {
+               reg = <10>;
+               st,min-sample-time-ns = <5000>;
+               label = "phint0_ain";
+       };
+
+       channel@13 {
+               reg = <13>;
+               st,min-sample-time-ns = <5000>;
+               label = "phint1_ain";
+       };
+
+       channel@15 {
+               reg = <15>;
+               st,min-sample-time-ns = <5000>;
+               label = "hpdcm0_i1";
+       };
+
+       channel@16 {
+               reg = <16>;
+               st,min-sample-time-ns = <5000>;
+               label = "lsin";
+       };
+
+       channel@18 {
+               reg = <18>;
+               st,min-sample-time-ns = <5000>;
+               label = "hpdcm0_i2";
+       };
+
+       channel@19 {
+               reg = <19>;
+               st,min-sample-time-ns = <5000>;
+               label = "hpdcm1_i1";
+       };
+};
+
+&adc2 {
+       status = "okay";
+
+       channel@2 {
+               reg = <2>;
+               /* 16.5 ck_cycles sampling time */
+               st,min-sample-time-ns = <5000>;
+               label = "ain2";
+       };
+
+       channel@6 {
+               reg = <6>;
+               st,min-sample-time-ns = <5000>;
+               label = "ain3";
+       };
+};
+
+&ethernet0 {
+       status = "okay";
+       pinctrl-0 = <&ethernet0_rgmii_pins_x>;
+       pinctrl-1 = <&ethernet0_rgmii_sleep_pins_x>;
+       pinctrl-names = "default", "sleep";
+       phy-mode = "rgmii-id";
+       max-speed = <1000>;
+       phy-handle = <&phy0>;
+       st,eth-clk-sel;
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+               phy0: ethernet-phy@8 {
+                       reg = <8>;
+                       interrupts-extended = <&gpiog 7 IRQ_TYPE_LEVEL_LOW>;
+                       reset-gpios = <&gpiog 10 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10>;
+                       reset-deassert-us = <35>;
+               };
+       };
+};
+
+&gpiod {
+       gpio-line-names = "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "STP_RESETN", "STP_ENABLEN", "HPOUT0", "HPOUT0_ALERTN";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog_d_mecsbc>;
+};
+
+&gpioe {
+       gpio-line-names = "HPOUT0_RESETN", "HPOUT1", "HPOUT1_ALERTN", "",
+                         "", "", "HPOUT1_RESETN",
+                         "LPOUT0", "LPOUT0_ALERTN", "GPOUT0_RESETN",
+                         "LPOUT1", "LPOUT1_ALERTN", "GPOUT1_RESETN",
+                         "LPOUT2", "LPOUT2_ALERTN", "GPOUT2_RESETN";
+};
+
+&gpiof {
+       gpio-line-names = "LPOUT3", "LPOUT3_ALERTN", "GPOUT3_RESETN",
+                         "LPOUT4", "LPOUT4_ALERTN", "GPOUT4_RESETN",
+                         "", "",
+                         "", "", "", "",
+                         "", "", "", "";
+};
+
+&gpiog {
+       gpio-line-names = "LPOUT5", "LPOUT5_ALERTN", "", "LPOUT5_RESETN",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "";
+};
+
+&gpioh {
+       gpio-line-names = "", "", "", "",
+                         "", "", "", "",
+                         "GPIO0_RESETN", "", "", "",
+                         "", "", "", "";
+};
+
+&gpioi {
+       gpio-line-names = "", "", "", "",
+                         "", "", "", "",
+                         "HPDCM0_SLEEPN", "HPDCM1_SLEEPN", "GPIO1_RESETN", "",
+                         "", "", "", "";
+};
+
+&gpioj {
+       gpio-line-names = "HSIN10", "HSIN11", "HSIN12", "HSIN13",
+                         "HSIN14", "HSIN15", "", "",
+                         "", "", "", "",
+                         "", "RTD_RESETN", "", "";
+};
+
+&gpiok {
+       gpio-line-names = "", "", "HSIN0", "HSIN1",
+                         "HSIN2", "HSIN3", "HSIN4", "HSIN5";
+};
+
+&gpioz {
+       gpio-line-names = "", "", "", "HSIN6",
+                         "HSIN7", "HSIN8", "HSIN9", "";
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins_a>;
+       pinctrl-1 = <&i2c2_sleep_pins_a>;
+       status = "okay";
+
+       gpio0: gpio@20 {
+               compatible = "ti,tca6416";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names = "HSIN0_BIAS", "HSIN1_BIAS", "HSIN2_BIAS", "HSIN3_BIAS",
+                                 "", "", "HSIN_VREF0_LVL", "HSIN_VREF1_LVL",
+                                 "HSIN4_BIAS", "HSIN5_BIAS", "HSIN6_BIAS", "HSIN9_BIAS",
+                                 "", "", "", "";
+       };
+
+       gpio1: gpio@21 {
+               compatible = "ti,tca6416";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names = "HSIN8_BIAS", "HSIN9_BIAS", "HSIN10_BIAS", "HSIN11_BIAS",
+                                 "", "", "HSIN_VREF2_LVL", "HSIN_VREF3_LVL",
+                                 "HSIN12_BIAS", "HSIN13_BIAS", "HSIN14_BIAS", "HSIN15_BIAS",
+                                 "", "", "LSIN8_BIAS", "LSIN9_BIAS";
+       };
+};
+
+&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>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-rx-bus-width = <4>;
+               spi-max-frequency = <104000000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+};
+
+&{qspi_bk1_pins_a/pins} {
+       pinmux = <STM32_PINMUX('F', 8, AF10)>, /* QSPI_BK1_IO0 */
+                <STM32_PINMUX('F', 9, AF10)>, /* QSPI_BK1_IO1 */
+                <STM32_PINMUX('F', 7, AF9)>, /* QSPI_BK1_IO2 */
+                <STM32_PINMUX('F', 6, AF9)>; /* QSPI_BK1_IO3 */
+       /delete-property/ bias-disable;
+       bias-pull-up;
+};
+
+&timers1 {
+       /delete-property/dmas;
+       /delete-property/dma-names;
+       status = "okay";
+
+       hpdcm0_pwm: pwm {
+               pinctrl-names = "default", "sleep";
+               pinctrl-0 = <&pwm1_pins_mecio1>;
+               pinctrl-1 = <&pwm1_sleep_pins_mecio1>;
+               status = "okay";
+       };
+};
+
+&timers8 {
+       /delete-property/dmas;
+       /delete-property/dma-names;
+       status = "okay";
+
+       hpdcm1_pwm: pwm {
+               pinctrl-names = "default", "sleep";
+               pinctrl-0 = <&pwm8_pins_mecio1>;
+               pinctrl-1 = <&pwm8_sleep_pins_mecio1>;
+               status = "okay";
+       };
+};
+
+&uart4 {
+       pinctrl-names = "default", "sleep", "idle";
+       pinctrl-0 = <&uart4_pins_a>;
+       pinctrl-1 = <&uart4_sleep_pins_a>;
+       pinctrl-2 = <&uart4_idle_pins_a>;
+       /delete-property/dmas;
+       /delete-property/dma-names;
+       status = "okay";
+};
+
+&{uart4_pins_a/pins1} {
+       pinmux = <STM32_PINMUX('B', 9, AF8)>; /* UART4_TX */
+};
+
+&{uart4_pins_a/pins2} {
+       pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
+       /delete-property/ bias-disable;
+       bias-pull-up;
+};
+
+&usbotg_hs {
+       dr_mode = "host";
+       pinctrl-0 = <&usbotg_hs_pins_a>;
+       pinctrl-names = "default";
+       phys = <&usbphyc_port1 0>;
+       phy-names = "usb2-phy";
+       vbus-supply = <&v5v>;
+       status = "okay";
+};
+
+&usbphyc {
+       status = "okay";
+};
+
+&usbphyc_port0 {
+       phy-supply = <&v3v3>;
+};
+
+&usbphyc_port1 {
+       phy-supply = <&v3v3>;
+};
+
+&pinctrl {
+       adc12_pins_mecsbc: adc12-ain-mecsbc-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('F', 11, ANALOG)>, /* ADC1_INP2 */
+                                <STM32_PINMUX('F', 12, ANALOG)>, /* ADC1_INP6 */
+                                <STM32_PINMUX('F', 13, ANALOG)>, /* ADC2_INP2 */
+                                <STM32_PINMUX('F', 14, ANALOG)>, /* ADC2_INP6 */
+                                <STM32_PINMUX('A', 0, ANALOG)>, /* ADC1_INP16 */
+                                <STM32_PINMUX('A', 3, ANALOG)>, /* ADC1_INP15 */
+                                <STM32_PINMUX('A', 4, ANALOG)>, /* ADC1_INP18 */
+                                <STM32_PINMUX('A', 5, ANALOG)>, /* ADC1_INP19 */
+                                <STM32_PINMUX('A', 6, ANALOG)>, /* ADC1_INP3 */
+                                <STM32_PINMUX('B', 0, ANALOG)>, /* ADC1_INP9 */
+                                <STM32_PINMUX('B', 1, ANALOG)>, /* ADC1_INP5 */
+                                <STM32_PINMUX('C', 0, ANALOG)>, /* ADC1_INP10 */
+                                <STM32_PINMUX('C', 3, ANALOG)>; /* ADC1_INP13 */
+               };
+       };
+
+       pinctrl_hog_d_mecsbc: hog-d-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('D', 12, GPIO)>; /* STP_RESETn */
+                       bias-pull-up;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+       };
+
+       pwm1_pins_mecio1: pwm1-mecio1-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('A', 8, AF1)>, /* TIM1_CH1 */
+                                <STM32_PINMUX('A', 8, AF1)>; /* TIM1_CH2 */
+                       bias-pull-down;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+       };
+
+       pwm1_sleep_pins_mecio1: pwm1-sleep-mecio1-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('A', 8, ANALOG)>, /* TIM1_CH1 */
+                                <STM32_PINMUX('A', 8, ANALOG)>; /* TIM1_CH2 */
+               };
+       };
+
+       pwm8_pins_mecio1: pwm8-mecio1-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('I', 5, AF3)>, /* TIM8_CH1 */
+                                <STM32_PINMUX('I', 6, AF3)>; /* TIM8_CH2 */
+                       bias-pull-down;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+       };
+
+       pwm8_sleep_pins_mecio1: pwm8-sleep-mecio1-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('I', 5, ANALOG)>, /* TIM8_CH1 */
+                                <STM32_PINMUX('I', 6, ANALOG)>; /* TIM8_CH2 */
+               };
+       };
+
+       ethernet0_rgmii_pins_x: rgmii-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('G', 5, AF11)>, /* ETH_RGMII_CLK125 */
+                                <STM32_PINMUX('G', 4, AF11)>, /* ETH_RGMII_GTX_CLK */
+                                <STM32_PINMUX('B', 12, AF11)>, /* ETH_RGMII_TXD0 */
+                                <STM32_PINMUX('B', 13, AF11)>, /* ETH_RGMII_TXD1 */
+                                <STM32_PINMUX('C', 2, AF11)>, /* ETH_RGMII_TXD2 */
+                                <STM32_PINMUX('B', 8, AF11)>, /* ETH_RGMII_TXD3 */
+                                <STM32_PINMUX('B', 11, AF11)>, /* ETH_RGMII_TX_CTL */
+                                <STM32_PINMUX('C', 1, AF11)>; /* ETH_MDC */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <3>;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('A', 2, AF11)>; /* ETH_MDIO */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+               pins3 {
+                       pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH_RGMII_RXD0 */
+                                <STM32_PINMUX('C', 5, AF11)>, /* ETH_RGMII_RXD1 */
+                                <STM32_PINMUX('H', 6, AF11)>, /* ETH_RGMII_RXD2 */
+                                <STM32_PINMUX('H', 7, AF11)>, /* ETH_RGMII_RXD3 */
+                                <STM32_PINMUX('A', 1, AF11)>, /* ETH_RGMII_RX_CLK */
+                                <STM32_PINMUX('A', 7, AF11)>; /* ETH_RGMII_RX_CTL */
+                       bias-disable;
+               };
+       };
+
+       ethernet0_rgmii_sleep_pins_x: rgmii-sleep-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('G', 5, ANALOG)>, /* ETH_RGMII_CLK125 */
+                                <STM32_PINMUX('G', 4, ANALOG)>, /* ETH_RGMII_GTX_CLK */
+                                <STM32_PINMUX('B', 12, ANALOG)>, /* ETH_RGMII_TXD0 */
+                                <STM32_PINMUX('B', 13, ANALOG)>, /* ETH_RGMII_TXD1 */
+                                <STM32_PINMUX('C', 2, ANALOG)>, /* ETH_RGMII_TXD2 */
+                                <STM32_PINMUX('B', 8, ANALOG)>, /* ETH_RGMII_TXD3 */
+                                <STM32_PINMUX('B', 11, ANALOG)>, /* ETH_RGMII_TX_CTL */
+                                <STM32_PINMUX('A', 2, ANALOG)>, /* ETH_MDIO */
+                                <STM32_PINMUX('C', 1, ANALOG)>, /* ETH_MDC */
+                                <STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RGMII_RXD0 */
+                                <STM32_PINMUX('C', 5, ANALOG)>, /* ETH_RGMII_RXD1 */
+                                <STM32_PINMUX('H', 6, ANALOG)>, /* ETH_RGMII_RXD2 */
+                                <STM32_PINMUX('H', 7, ANALOG)>, /* ETH_RGMII_RXD3 */
+                                <STM32_PINMUX('A', 1, ANALOG)>, /* ETH_RGMII_RX_CLK */
+                                <STM32_PINMUX('A', 7, ANALOG)>; /* ETH_RGMII_RX_CTL */
+               };
+       };
+};
index 466d9701add0f69b4e6d8737dc0531411c190b54..171d7c7658fa86afbd73d36d28e08118041dce72 100644 (file)
                        sgtl5000_tx_endpoint: endpoint@0 {
                                reg = <0>;
                                remote-endpoint = <&sai2a_endpoint>;
-                               frame-master = <&sgtl5000_tx_endpoint>;
-                               bitclock-master = <&sgtl5000_tx_endpoint>;
                        };
 
                        sgtl5000_rx_endpoint: endpoint@1 {
                                reg = <1>;
                                remote-endpoint = <&sai2b_endpoint>;
-                               frame-master = <&sgtl5000_rx_endpoint>;
-                               bitclock-master = <&sgtl5000_rx_endpoint>;
                        };
                };
 
                sai2a_port: port {
                        sai2a_endpoint: endpoint {
                                remote-endpoint = <&sgtl5000_tx_endpoint>;
+                               bitclock-master;
                                dai-format = "i2s";
-                               mclk-fs = <512>;
                                dai-tdm-slot-num = <2>;
                                dai-tdm-slot-width = <16>;
+                               frame-master;
+                               mclk-fs = <256>;
                        };
                };
        };
                sai2b_port: port {
                        sai2b_endpoint: endpoint {
                                remote-endpoint = <&sgtl5000_rx_endpoint>;
+                               bitclock-master;
                                dai-format = "i2s";
-                               mclk-fs = <512>;
                                dai-tdm-slot-num = <2>;
                                dai-tdm-slot-width = <16>;
+                               frame-master;
+                               mclk-fs = <256>;
                        };
                };
        };
index 2d0216840ff5b280f812ce8e989d749df6efd8be..a0fb431aec8411d85804b7f8822f0d9ef1bfdf56 100644 (file)
                reg = <0x50>;
                vcc-supply = <&ldo4_reg>;
 
-               #address-cells = <1>;
-               #size-cells = <1>;
-               baseboard_data: baseboard_data@0 {
-                       reg = <0 0x100>;
+               nvmem-layout {
+                       compatible = "fixed-layout";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       baseboard_data: baseboard_data@0 {
+                               reg = <0 0x100>;
+                       };
                };
        };
 };
        cape_eeprom0: cape_eeprom0@54 {
                compatible = "atmel,24c256";
                reg = <0x54>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               cape0_data: cape_data@0 {
-                       reg = <0 0x100>;
+
+               nvmem-layout {
+                       compatible = "fixed-layout";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       cape0_data: cape_data@0 {
+                               reg = <0 0x100>;
+                       };
                };
        };
 
        cape_eeprom1: cape_eeprom1@55 {
                compatible = "atmel,24c256";
                reg = <0x55>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               cape1_data: cape_data@0 {
-                       reg = <0 0x100>;
+
+               nvmem-layout {
+                       compatible = "fixed-layout";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       cape1_data: cape_data@0 {
+                               reg = <0 0x100>;
+                       };
                };
        };
 
        cape_eeprom2: cape_eeprom2@56 {
                compatible = "atmel,24c256";
                reg = <0x56>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               cape2_data: cape_data@0 {
-                       reg = <0 0x100>;
+
+               nvmem-layout {
+                       compatible = "fixed-layout";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       cape2_data: cape_data@0 {
+                               reg = <0 0x100>;
+                       };
                };
        };
 
        cape_eeprom3: cape_eeprom3@57 {
                compatible = "atmel,24c256";
                reg = <0x57>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               cape3_data: cape_data@0 {
-                       reg = <0 0x100>;
+
+               nvmem-layout {
+                       compatible = "fixed-layout";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       cape3_data: cape_data@0 {
+                               reg = <0 0x100>;
+                       };
                };
        };
 };
                /* Support GPIO reset on revision C3 boards */
                reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
                reset-assert-us = <300>;
-               reset-deassert-us = <6500>;
+               reset-deassert-us = <13000>;
        };
 };
 
index 801399702547d0b0512271d0964626534c1914a1..8878da773d679017a6b409981c16105ac69a6cbc 100644 (file)
                compatible = "atmel,24c256";
                reg = <0x50>;
 
-               #address-cells = <1>;
-               #size-cells = <1>;
-               baseboard_data: baseboard_data@0 {
-                       reg = <0 0x100>;
+               nvmem-layout {
+                       compatible = "fixed-layout";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       baseboard_data: baseboard_data@0 {
+                               reg = <0 0x100>;
+                       };
                };
        };
 };
index 26b5510cb3d1661efd0584d149ea2e59aeb97111..56929059f5af093ee86442cc5c06ae51b332c9e6 100644 (file)
        };
 
        temperature-sensor@48 {
-               compatible = "lm75";
+               compatible = "national,lm75";
                reg = <0x48>;
        };
 
index 625db3bcd3656dc60545d7865a6c40b7ffae9f87..287d209a0ea92bb41cc33672037b274e5a0ca625 100644 (file)
@@ -5,6 +5,9 @@
  *
  */
 
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/am33xx.h>
+
 / {
        model = "Phytec AM335x phyBOARD-REGOR";
        compatible = "phytec,am335x-regor", "phytec,am335x-phycore-som", "ti,am33xx";
                pinctrl-single,pins = <
                        AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
                        AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_UART1_RTSN, PIN_OUTPUT_PULLUP, MUX_MODE0)
+                       AM33XX_PADCONF(AM335X_PIN_UART1_RTSN, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
                >;
        };
 };
        pinctrl-0 = <&uart1_rs485_pins>;
        status = "okay";
        linux,rs485-enabled-at-boot-time;
+       /*
+        * un-intuitively, yet with the default (active-high),
+        * am335x RTS is high on idle and gets low on active !
+        */
+       rs485-rts-active-low;
 };
index cb27ff464dbeb4090c049e3566f03d61b094d022..d0c290d7d0626259695e12aa21acd5b3fce71279 100644 (file)
@@ -14,7 +14,7 @@
                simple-audio-card,format = "i2s";
                simple-audio-card,bitclock-master = <&sound_iface_main>;
                simple-audio-card,frame-master = <&sound_iface_main>;
-               simple-audio-card,mclk-fs = <32>;
+               simple-audio-card,mclk-fs = <512>;
                simple-audio-card,widgets =
                                        "Line", "Line In",
                                        "Line", "Line Out",
                                        "LINE1L", "Line In",
                                        "LINE1R", "Line In";
 
-               simple-audio-card,cpu {
+               sound_iface_main: simple-audio-card,cpu {
                        sound-dai = <&mcasp0>;
                };
 
-               sound_iface_main: simple-audio-card,codec {
+               simple-audio-card,codec {
                        sound-dai = <&tlv320aic3007>;
-                       clocks = <&mcasp0_fck>;
                };
 
        };
index dfb1fbafe3aa4e78927c5da7a83878e079fd4b7d..33b02e05ce827309ffdca2643b67cae44d8c74c4 100644 (file)
@@ -97,9 +97,9 @@
        status = "okay";
        clock-frequency = <400000>;
 
-       stlm75@49 {
+       temperature-sensor@49 {
                status = "okay";
-               compatible = "lm75";
+               compatible = "st,stlm75";
                reg = <0x49>;
        };
 
index e868ca5ae753a926e102eff414a63e825296713a..a5c3920e0f048e4fd6e368093d58b99b2803568e 100644 (file)
                        polling-delay-passive = <0>;
                        polling-delay = <0>;
                        thermal-sensors = <&ths 1>;
+
+                       trips {
+                               gpu0_crit: gpu0-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
                };
 
                gpu1_thermal: gpu1-thermal {
                        polling-delay-passive = <0>;
                        polling-delay = <0>;
                        thermal-sensors = <&ths 2>;
+
+                       trips {
+                               gpu1_crit: gpu1-crit {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
                };
        };
 
index b69032c4455754cbe9fae604761d3b640d1a78eb..526443bb736c36bd88b493ce84e6c354d6b552be 100644 (file)
                startup-delay-us = <100000>;
                enable-active-high;
                gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
+               vin-supply = <&reg_vcc3v3>;
+       };
+
+       reg_gmac_2v5: gmac-2v5 {
+               /* 2V5 supply for GMAC PHY IO */
+               compatible = "regulator-fixed";
+               regulator-name = "gmac-2v5";
+               regulator-min-microvolt = <2500000>;
+               regulator-max-microvolt = <2500000>;
+               regulator-always-on;
+               vin-supply = <&reg_vcc3v3>;
+       };
+
+       reg_vcc5v: regulator-vcc5v {
+               /* board 5V supply from micro USB or pin headers */
+               compatible = "regulator-fixed";
+               regulator-name = "vcc-5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
        };
 
        reg_vcc3v3: vcc3v3 {
+               /* board 3V3 supply by SY8089A */
                compatible = "regulator-fixed";
                regulator-name = "vcc3v3";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               vin-supply = <&reg_vcc5v>;
        };
 
        vdd_cpux: gpio-regulator {
+               /* cpu voltage regulator MP2143DJ */
                compatible = "regulator-gpio";
                regulator-name = "vdd-cpux";
                regulator-type = "voltage";
@@ -66,6 +90,7 @@
                gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>;
                gpios-states = <0x1>;
                states = <1100000 0>, <1300000 1>;
+               vin-supply = <&reg_vcc5v>;
        };
 
        wifi_pwrseq: pwrseq {
        status = "okay";
 };
 
+&pio {
+       vcc-pa-supply = <&reg_vcc3v3>;
+       vcc-pc-supply = <&reg_vcc3v3>;
+       vcc-pd-supply = <&reg_gmac_2v5>;
+       vcc-pf-supply = <&reg_vcc3v3>;
+       vcc-pg-supply = <&reg_vcc3v3>;
+};
+
+&r_pio {
+       vcc-pl-supply = <&reg_vcc3v3>;
+};
+
 &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pa_pins>;
index b29ce7321317b647733cb3db108a4b935a5dda9a..e88c1fbac6acc8226b63701e6559caafae9b0901 100644 (file)
                        dmas = <&dma 48>, <&dma 48>;
                        dma-names = "rx", "tx";
                        resets = <&r_ccu RST_R_APB2_I2C>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&r_i2c_pins>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
index afb49e65859f9894f0873f15ea10db8a09e3ab48..80ccab7b5ba750b72019b0bcb73f7dc95115e0ea 100644 (file)
                serial0 = &uart0;
        };
 
+       battery: battery {
+               compatible = "simple-battery";
+               constant-charge-current-max-microamp = <1024000>;
+               voltage-max-design-microvolt = <4200000>;
+       };
+
        chosen {
                stdout-path = "serial0:115200n8";
        };
        vcc-pi-supply = <&reg_cldo3>;
 };
 
-&r_rsb {
+&r_i2c {
        status = "okay";
 
-       axp717: pmic@3a3 {
+       axp717: pmic@34 {
                compatible = "x-powers,axp717";
-               reg = <0x3a3>;
+               reg = <0x34>;
                interrupt-controller;
                #interrupt-cells = <1>;
                interrupt-parent = <&nmi_intc>;
                vin3-supply = <&reg_vcc5v>;
                vin4-supply = <&reg_vcc5v>;
 
+               axp_adc: adc {
+                       compatible = "x-powers,axp717-adc";
+                       #io-channel-cells = <1>;
+               };
+
+               battery_power: battery-power {
+                       compatible = "x-powers,axp717-battery-power-supply";
+                       monitored-battery = <&battery>;
+               };
+
                regulators {
                        reg_dcdc1: dcdc1 {
                                regulator-always-on;
                                /* unused */
                        };
                };
+
+               usb_power: usb-power {
+                       compatible = "x-powers,axp717-usb-power-supply";
+                       input-current-limit-microamp = <1500000>;
+               };
        };
 };
 
diff --git a/src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-sp.dts b/src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-sp.dts
new file mode 100644 (file)
index 0000000..0cf16dc
--- /dev/null
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Copyright (C) 2024 Ryan Walklin <ryan@testtoast.com>.
+ * Copyright (C) 2024 Chris Morgan <macroalpha82@gmail.com>.
+ */
+
+#include <dt-bindings/input/gpio-keys.h>
+#include "sun50i-h700-anbernic-rg35xx-plus.dts"
+
+/ {
+       model = "Anbernic RG35XX SP";
+       compatible = "anbernic,rg35xx-sp", "allwinner,sun50i-h700";
+
+       gpio-keys-lid {
+               compatible = "gpio-keys";
+
+               lid-switch {
+                       label = "Lid Switch";
+                       gpios = <&pio 4 7 GPIO_ACTIVE_LOW>; /* PE7 */
+                       linux,can-disable;
+                       linux,code = <SW_LID>;
+                       linux,input-type = <EV_SW>;
+                       wakeup-event-action = <EV_ACT_DEASSERTED>;
+                       wakeup-source;
+               };
+       };
+};
+
+&r_i2c {
+       rtc_ext: rtc@51 {
+               compatible = "nxp,pcf8563";
+               reg = <0x51>;
+       };
+};
index b6106ad4a07261b5d68be3058b970acc4648f536..54d7a2d56ef6490d0345876e73a6e15263e87210 100644 (file)
                        #size-cells = <2>;
                        ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>;
 
+                       watchdog@2100 {
+                               compatible = "amlogic,a4-wdt", "amlogic,t7-wdt";
+                               reg = <0x0 0x2100 0x0 0x10>;
+                               clocks = <&xtal>;
+                       };
+
                        uart_b: serial@7a000 {
                                compatible = "amlogic,a4-uart",
                                             "amlogic,meson-s4-uart";
                                clock-names = "xtal", "pclk", "baud";
                                status = "disabled";
                        };
+
+                       sec_ao: ao-secure@10220 {
+                               compatible = "amlogic,a4-ao-secure",
+                                            "amlogic,meson-gx-ao-secure",
+                                            "syscon";
+                               reg = <0x0 0x10220 0x0 0x140>;
+                               amlogic,has-chip-id;
+                       };
                };
        };
 };
index 43f68a7da2f7420e5a795a10d8a07c75bbacdb8e..17a6316de8918f31f3f7625f2eda06a60664139a 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include "amlogic-a4-common.dtsi"
+#include <dt-bindings/power/amlogic,a5-pwrc.h>
 / {
        cpus {
                #address-cells = <2>;
                        enable-method = "psci";
                };
        };
+
+       sm: secure-monitor {
+               compatible = "amlogic,meson-gxbb-sm";
+
+               pwrc: power-controller {
+                       compatible = "amlogic,a5-pwrc";
+                       #power-domain-cells = <1>;
+               };
+       };
 };
index edce8850b33860baa1e9b0be062c1a9480bc5bf6..a6736ad2a648e9888d52cfef3c6d4ca93ec4cd73 100644 (file)
 
        aliases {
                serial0 = &uart_b;
+               spi0 = &spifc;
        };
 
        memory@0 {
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x10000000>;
        };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* 9 MiB reserved for ARM Trusted Firmware */
+               secmon_reserved: secmon@7f00000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x07f00000 0x0 0x900000>;
+                       no-map;
+               };
+       };
+
+       main_12v: regulator-main-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "12V";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vcc_5v: regulator-vcc-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&main_12v>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vddq: regulator-vddq {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDQ";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               vin-supply = <&main_12v>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vddao_3v3: regulator-vddao-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDAO3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&main_12v>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vddao_1v8: regulator-vddao-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDAO1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vddao_3v3>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       ddr4_2v5: regulator-ddr4-2v5 {
+               compatible = "regulator-fixed";
+               regulator-name = "DDR4_2V5";
+               regulator-min-microvolt = <2500000>;
+               regulator-max-microvolt = <2500000>;
+               vin-supply = <&vddao_3v3>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vcc_3v3: regulator-vcc-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vddao_3v3>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vcc_1v8: regulator-vcc-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_3v3>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vdd_1v8: regulator-vdd-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD1V8_BOOT";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_3v3>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vddio_b: regulator-vddio-3v3-b {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDIO_B";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_3v3>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       sdcard: regulator-sdcard {
+               compatible = "regulator-fixed";
+               regulator-name = "SDCARD_POWER";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vddao_3v3>;
+               gpio = <&gpio GPIOA_4 GPIO_ACTIVE_LOW>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
 };
 
 &uart_b {
        status = "okay";
 };
+
+&nand {
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       pinctrl-0 = <&nand_pins>;
+       pinctrl-names = "default";
+
+       nand@0 {
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               nand-on-flash-bbt;
+
+               partition@0 {
+                       label = "boot";
+                       reg = <0x0 0x00200000>;
+               };
+               partition@200000 {
+                       label = "env";
+                       reg = <0x00200000 0x00400000>;
+               };
+               partition@600000 {
+                       label = "system";
+                       reg = <0x00600000 0x00a00000>;
+               };
+               partition@1000000 {
+                       label = "rootfs";
+                       reg = <0x01000000 0x03000000>;
+               };
+               partition@4000000 {
+                       label = "media";
+                       reg = <0x04000000 0x8000000>;
+               };
+       };
+};
+
+&ethmac {
+       status = "okay";
+       phy-handle = <&internal_ephy>;
+       phy-mode = "rmii";
+};
+
+&spifc {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       pinctrl-0 = <&spifc_pins>;
+       pinctrl-names = "default";
+
+       nand@0 {
+               compatible = "spi-nand";
+               reg = <0>;
+               spi-max-frequency = <83000000>;
+               spi-tx-bus-width = <4>;
+               spi-rx-bus-width = <4>;
+               status = "disabled";
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "boot";
+                               reg = <0 0x200000>;
+                       };
+
+                       partition@200000 {
+                               label = "env";
+                               reg = <0x200000 0x400000>;
+                       };
+
+                       partition@600000 {
+                               label = "system";
+                               reg = <0x600000 0xa00000>;
+                       };
+
+                       partition@1000000 {
+                               label = "rootfs";
+                               reg = <0x1000000 0x3000000>;
+                       };
+
+                       partition@4000000 {
+                               label = "data";
+                               reg = <0x4000000 0x8000000>;
+                       };
+               };
+       };
+};
+
+&sd {
+       status = "okay";
+       pinctrl-0 = <&sdcard_pins>;
+       pinctrl-1 = <&sdcard_clk_gate_pins>;
+       pinctrl-names = "default","clk-gate";
+
+       bus-width = <4>;
+       cap-sd-highspeed;
+       max-frequency = <50000000>;
+       disable-wp;
+
+       cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&sdcard>;
+       vqmmc-supply = <&sdcard>;
+};
diff --git a/src/arm64/amlogic/amlogic-c3-c308l-aw419.dts b/src/arm64/amlogic/amlogic-c3-c308l-aw419.dts
new file mode 100644 (file)
index 0000000..45f8631
--- /dev/null
@@ -0,0 +1,260 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Amlogic, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "amlogic-c3.dtsi"
+
+/ {
+       model = "Amlogic C308l aw419 Development Board";
+       compatible = "amlogic,aw419", "amlogic,c3";
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       aliases {
+               serial0 = &uart_b;
+               spi0 = &spifc;
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x80000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* 9 MiB reserved for ARM Trusted Firmware */
+               secmon_reserved: secmon@7f00000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x07f00000 0x0 0x900000>;
+                       no-map;
+               };
+       };
+
+       main_12v: regulator-main-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "12V";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vcc_5v: regulator-vcc-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&main_12v>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vddq: regulator-vddq {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDQ";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               vin-supply = <&main_12v>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vddao_3v3: regulator-vddao-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDAO3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&main_12v>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vddao_1v8: regulator-vddao-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDAO1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vddao_3v3>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       ddr4_2v5: regulator-ddr4-2v5 {
+               compatible = "regulator-fixed";
+               regulator-name = "DDR4_2V5";
+               regulator-min-microvolt = <2500000>;
+               regulator-max-microvolt = <2500000>;
+               vin-supply = <&vddao_3v3>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vcc_3v3: regulator-vcc-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vddao_3v3>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vcc_1v8: regulator-vcc-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_3v3>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vdd_1v8: regulator-vdd-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD1V8_BOOT";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_3v3>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vddio_b: regulator-vddio-3v3-b {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDIO_B";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_3v3>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       sdcard: regulator-sdcard {
+               compatible = "regulator-fixed";
+               regulator-name = "SDCARD_POWER";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vddao_3v3>;
+               gpio = <&gpio GPIOA_4 GPIO_ACTIVE_LOW>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+};
+
+&uart_b {
+       status = "okay";
+};
+
+&nand {
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       pinctrl-0 = <&nand_pins>;
+       pinctrl-names = "default";
+
+       nand@0 {
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               nand-on-flash-bbt;
+
+               partition@0 {
+                       label = "boot";
+                       reg = <0x0 0x00200000>;
+               };
+               partition@200000 {
+                       label = "env";
+                       reg = <0x00200000 0x00400000>;
+               };
+               partition@600000 {
+                       label = "system";
+                       reg = <0x00600000 0x00a00000>;
+               };
+               partition@1000000 {
+                       label = "rootfs";
+                       reg = <0x01000000 0x03000000>;
+               };
+               partition@4000000 {
+                       label = "media";
+                       reg = <0x04000000 0x8000000>;
+               };
+       };
+};
+
+&ethmac {
+       status = "okay";
+       phy-handle = <&internal_ephy>;
+       phy-mode = "rmii";
+};
+
+&spifc {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       pinctrl-0 = <&spifc_pins>;
+       pinctrl-names = "default";
+
+       nand@0 {
+               compatible = "spi-nand";
+               reg = <0>;
+               spi-max-frequency = <83000000>;
+               spi-tx-bus-width = <4>;
+               spi-rx-bus-width = <4>;
+               status = "disabled";
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "boot";
+                               reg = <0 0x200000>;
+                       };
+
+                       partition@200000 {
+                               label = "env";
+                               reg = <0x200000 0x400000>;
+                       };
+
+                       partition@600000 {
+                               label = "system";
+                               reg = <0x600000 0xa00000>;
+                       };
+
+                       partition@1000000 {
+                               label = "rootfs";
+                               reg = <0x1000000 0x3000000>;
+                       };
+
+                       partition@4000000 {
+                               label = "data";
+                               reg = <0x4000000 0x8000000>;
+                       };
+               };
+       };
+};
+
+&sd {
+       status = "okay";
+       pinctrl-0 = <&sdcard_pins>;
+       pinctrl-1 = <&sdcard_clk_gate_pins>;
+       pinctrl-names = "default","clk-gate";
+
+       bus-width = <4>;
+       cap-sd-highspeed;
+       max-frequency = <50000000>;
+       disable-wp;
+
+       cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&sdcard>;
+       vqmmc-supply = <&sdcard>;
+};
index f8fb060c49aebb50d1a4fde6270cf57600138f8d..d0cda759c25d0772d456683bb931c0b6f4a57a81 100644 (file)
@@ -7,6 +7,11 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/reset/amlogic,c3-reset.h>
+#include <dt-bindings/clock/amlogic,c3-pll-clkc.h>
+#include <dt-bindings/clock/amlogic,c3-scmi-clkc.h>
+#include <dt-bindings/clock/amlogic,c3-peripherals-clkc.h>
+#include <dt-bindings/power/amlogic,c3-pwrc.h>
+#include <dt-bindings/gpio/amlogic-c3-gpio.h>
 
 / {
        cpus {
                };
        };
 
+       sram@7f50e00 {
+               compatible = "mmio-sram";
+               reg = <0x0 0x07f50e00 0x0 0x100>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0x0 0x07f50e00 0x100>;
+
+               scmi_shmem: sram@0 {
+                       compatible = "arm,scmi-shmem";
+                       reg = <0x0 0x100>;
+               };
+       };
+
+       firmware {
+               scmi: scmi {
+                       compatible = "arm,scmi-smc";
+                       arm,smc-id = <0x820000C1>;
+                       shmem = <&scmi_shmem>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       scmi_clk: protocol@14 {
+                               reg = <0x14>;
+                               #clock-cells = <1>;
+                       };
+               };
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                        #size-cells = <2>;
                        ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>;
 
+                       clkc_periphs: clock-controller@0 {
+                               compatible = "amlogic,c3-peripherals-clkc";
+                               reg = <0x0 0x0 0x0 0x49c>;
+                               #clock-cells = <1>;
+                               clocks = <&xtal>,
+                                        <&scmi_clk CLKID_OSC>,
+                                        <&scmi_clk CLKID_FIXED_PLL_OSC>,
+                                        <&clkc_pll CLKID_FCLK_DIV2>,
+                                        <&clkc_pll CLKID_FCLK_DIV2P5>,
+                                        <&clkc_pll CLKID_FCLK_DIV3>,
+                                        <&clkc_pll CLKID_FCLK_DIV4>,
+                                        <&clkc_pll CLKID_FCLK_DIV5>,
+                                        <&clkc_pll CLKID_FCLK_DIV7>,
+                                        <&clkc_pll CLKID_GP0_PLL>,
+                                        <&scmi_clk CLKID_GP1_PLL_OSC>,
+                                        <&clkc_pll CLKID_HIFI_PLL>,
+                                        <&scmi_clk CLKID_SYS_CLK>,
+                                        <&scmi_clk CLKID_AXI_CLK>,
+                                        <&scmi_clk CLKID_SYS_PLL_DIV16>,
+                                        <&scmi_clk CLKID_CPU_CLK_DIV16>;
+                               clock-names = "xtal_24m",
+                                             "oscin",
+                                             "fix",
+                                             "fdiv2",
+                                             "fdiv2p5",
+                                             "fdiv3",
+                                             "fdiv4",
+                                             "fdiv5",
+                                             "fdiv7",
+                                             "gp0",
+                                             "gp1",
+                                             "hifi",
+                                             "sysclk",
+                                             "axiclk",
+                                             "sysplldiv16",
+                                             "cpudiv16";
+                       };
+
                        reset: reset-controller@2000 {
                                compatible = "amlogic,c3-reset";
                                reg = <0x0 0x2000 0x0 0x98>;
                                compatible = "amlogic,c3-periphs-pinctrl";
                                #address-cells = <2>;
                                #size-cells = <2>;
-                               ranges;
+                               ranges = <0x0 0x0 0x0 0x4000 0x0 0x02de>;
 
-                               gpio: bank@4000 {
-                                       reg = <0x0 0x4000 0x0 0x004c>,
-                                             <0x0 0x4100 0x0 0x01de>;
+                               gpio: bank@0 {
+                                       reg = <0x0 0x0 0x0 0x004c>,
+                                             <0x0 0x100 0x0 0x01de>;
                                        reg-names = "mux", "gpio";
                                        gpio-controller;
                                        #gpio-cells = <2>;
                                        gpio-ranges = <&periphs_pinctrl 0 0 55>;
                                };
+
+                               i2c0_pins1: i2c0-pins1 {
+                                       mux {
+                                               groups = "i2c0_sda_e",
+                                                        "i2c0_scl_e";
+                                               function = "i2c0";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               i2c0_pins2: i2c0-pins2 {
+                                       mux {
+                                               groups = "i2c0_sda_d",
+                                                        "i2c0_scl_d";
+                                               function = "i2c0";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               i2c1_pins1: i2c1-pins1 {
+                                       mux {
+                                               groups = "i2c1_sda_x",
+                                                        "i2c1_scl_x";
+                                               function = "i2c1";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               i2c1_pins2: i2c1-pins2 {
+                                       mux {
+                                               groups = "i2c1_sda_d",
+                                                        "i2c1_scl_d";
+                                               function = "i2c1";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               i2c1_pins3: i2c1-pins3 {
+                                       mux {
+                                               groups = "i2c1_sda_a",
+                                                        "i2c1_scl_a";
+                                               function = "i2c1";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               i2c1_pins4: i2c1-pins4 {
+                                       mux {
+                                               groups = "i2c1_sda_b",
+                                                        "i2c1_scl_b";
+                                               function = "i2c1";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               i2c2_pins1: i2c2-pins1 {
+                                       mux {
+                                               groups = "i2c2_sda",
+                                                        "i2c2_scl";
+                                               function = "i2c2";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               i2c3_pins1: i2c3-pins1 {
+                                       mux {
+                                               groups = "i2c3_sda_c",
+                                                        "i2c3_scl_c";
+                                               function = "i2c3";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               i2c3_pins2: i2c3-pins2 {
+                                       mux {
+                                               groups = "i2c3_sda_x",
+                                                        "i2c3_scl_x";
+                                               function = "i2c3";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               i2c3_pins3: i2c3-pins3 {
+                                       mux {
+                                               groups = "i2c3_sda_d",
+                                                        "i2c3_scl_d";
+                                               function = "i2c3";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               nand_pins: nand-pins {
+                                       mux {
+                                               groups = "emmc_nand_d0",
+                                                        "emmc_nand_d1",
+                                                        "emmc_nand_d2",
+                                                        "emmc_nand_d3",
+                                                        "emmc_nand_d4",
+                                                        "emmc_nand_d5",
+                                                        "emmc_nand_d6",
+                                                        "emmc_nand_d7",
+                                                        "nand_ce0",
+                                                        "nand_ale",
+                                                        "nand_cle",
+                                                        "nand_wen_clk",
+                                                        "nand_ren_wr";
+                                               function = "nand";
+                                               input-enable;
+                                       };
+                               };
+
+                               sdcard_pins: sdcard-pins {
+                                       mux {
+                                               groups = "sdcard_d0",
+                                                        "sdcard_d1",
+                                                        "sdcard_d2",
+                                                        "sdcard_d3",
+                                                        "sdcard_clk",
+                                                        "sdcard_cmd";
+                                               function = "sdcard";
+                                               bias-pull-up;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               sdcard_clk_gate_pins: sdcard-clk-cmd-pins {
+                                       mux {
+                                               groups = "GPIOC_4";
+                                               function = "gpio_periphs";
+                                               bias-pull-down;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               sdio_m_clk_gate_pins: sdio-m-clk-cmd-pins {
+                                       mux {
+                                               groups = "sdio_clk";
+                                               function = "sdio";
+                                               bias-pull-down;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               sdio_m_pins: sdio-m-all-pins {
+                                       mux {
+                                               groups = "sdio_d0",
+                                                        "sdio_d1",
+                                                        "sdio_d2",
+                                                        "sdio_d3",
+                                                        "sdio_clk",
+                                                        "sdio_cmd";
+                                               function = "sdio";
+                                               input-enable;
+                                               bias-pull-up;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               spicc0_pins1: spicc0-pins1 {
+                                       mux {
+                                               groups = "spi_a_mosi_b",
+                                                        "spi_a_miso_b",
+                                                        "spi_a_clk_b";
+                                               function = "spi_a";
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               spicc0_pins2: spicc0-pins2 {
+                                       mux {
+                                               groups = "spi_a_mosi_c",
+                                                        "spi_a_miso_c",
+                                                        "spi_a_clk_c";
+                                               function = "spi_a";
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               spicc0_pins3: spicc0-pins3 {
+                                       mux {
+                                               groups = "spi_a_mosi_x",
+                                                        "spi_a_miso_x",
+                                                        "spi_a_clk_x";
+                                               function = "spi_a";
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               spicc1_pins1: spicc1-pins1 {
+                                       mux {
+                                               groups = "spi_b_mosi_d",
+                                                        "spi_b_miso_d",
+                                                        "spi_b_clk_d";
+                                               function = "spi_b";
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               spicc1_pins2: spicc1-pins2 {
+                                       mux {
+                                               groups = "spi_b_mosi_x",
+                                                        "spi_b_miso_x",
+                                                        "spi_b_clk_x";
+                                               function = "spi_b";
+                                               drive-strength-microamp = <3000>;
+                                       };
+                               };
+
+                               spifc_pins: spifc-pins {
+                                       mux {
+                                               groups = "spif_mo",
+                                                        "spif_mi",
+                                                        "spif_clk",
+                                                        "spif_cs",
+                                                        "spif_hold",
+                                                        "spif_wp",
+                                                        "spif_clk_loop";
+                                               function = "spif";
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
                        };
 
                        gpio_intc: interrupt-controller@4080 {
                                        <10 11 12 13 14 15 16 17 18 19 20 21>;
                        };
 
+                       clkc_pll: clock-controller@8000 {
+                               compatible = "amlogic,c3-pll-clkc";
+                               reg = <0x0 0x8000 0x0 0x1a4>;
+                               #clock-cells = <1>;
+                               clocks = <&scmi_clk CLKID_TOP_PLL_OSC>,
+                                        <&scmi_clk CLKID_MCLK_PLL_OSC>,
+                                        <&scmi_clk CLKID_FIXED_PLL_OSC>;
+                               clock-names = "top",
+                                             "mclk",
+                                             "fix";
+                       };
+
+                       eth_phy: mdio-multiplexer@28000 {
+                               compatible = "amlogic,g12a-mdio-mux";
+                               reg = <0x0 0x28000 0x0 0xa4>;
+
+                               clocks = <&clkc_periphs CLKID_SYS_ETH_PHY>,
+                                        <&xtal>,
+                                        <&clkc_pll CLKID_FCLK_50M>;
+                               clock-names = "pclk", "clkin0", "clkin1";
+                               mdio-parent-bus = <&mdio0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               ext_mdio: mdio@0 {
+                                       reg = <0>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                               };
+
+                               int_mdio: mdio@1 {
+                                       reg = <1>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       internal_ephy: ethernet_phy@8 {
+                                               compatible = "ethernet-phy-id0180.3301",
+                                                            "ethernet-phy-ieee802.3-c22";
+                                               interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+                                               reg = <8>;
+                                               max-speed = <100>;
+                                       };
+                               };
+                       };
+
+                       spicc0: spi@50000 {
+                               compatible = "amlogic,meson-g12a-spicc";
+                               reg = <0x0 0x50000 0x0 0x44>;
+                               interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clkc_periphs CLKID_SYS_SPICC_0>,
+                                        <&clkc_periphs CLKID_SPICC_A>;
+                               clock-names = "core", "pclk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spicc1: spi@52000 {
+                               compatible = "amlogic,meson-g12a-spicc";
+                               reg = <0x0 0x52000 0x0 0x44>;
+                               interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clkc_periphs CLKID_SYS_SPICC_1>,
+                                        <&clkc_periphs CLKID_SPICC_B>;
+                               clock-names = "core", "pclk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spifc: spi@56000 {
+                               compatible = "amlogic,a1-spifc";
+                               reg = <0x0 0x56000 0x0 0x290>;
+                               interrupts = <GIC_SPI 182 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&clkc_periphs CLKID_SPIFC>;
+                               clock-names = "core";
+                               status = "disabled";
+                       };
+
+                       i2c0: i2c@66000 {
+                               compatible = "amlogic,meson-axg-i2c";
+                               reg = <0x0 0x66000 0x0 0x24>;
+                               interrupts = <GIC_SPI 160 IRQ_TYPE_EDGE_RISING>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&clkc_periphs CLKID_SYS_I2C_M_A>;
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@68000 {
+                               compatible = "amlogic,meson-axg-i2c";
+                               reg = <0x0 0x68000 0x0 0x24>;
+                               interrupts = <GIC_SPI 161 IRQ_TYPE_EDGE_RISING>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&clkc_periphs CLKID_SYS_I2C_M_B>;
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@6a000 {
+                               compatible = "amlogic,meson-axg-i2c";
+                               reg = <0x0 0x6a000 0x0 0x24>;
+                               interrupts = <GIC_SPI 162 IRQ_TYPE_EDGE_RISING>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&clkc_periphs CLKID_SYS_I2C_M_C>;
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@6c000 {
+                               compatible = "amlogic,meson-axg-i2c";
+                               reg = <0x0 0x6c000 0x0 0x24>;
+                               interrupts = <GIC_SPI 163 IRQ_TYPE_EDGE_RISING>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&clkc_periphs CLKID_SYS_I2C_M_D>;
+                               status = "disabled";
+                       };
+
                        uart_b: serial@7a000 {
                                compatible = "amlogic,meson-s4-uart",
                                           "amlogic,meson-ao-uart";
                                reg = <0x0 0x7a000 0x0 0x18>;
                                interrupts = <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>;
                                status = "disabled";
-                               clocks = <&xtal>, <&xtal>, <&xtal>;
+                               clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_B>, <&xtal>;
                                clock-names = "xtal", "pclk", "baud";
                        };
 
+                       sec_ao: ao-secure@10220 {
+                               compatible = "amlogic,c3-ao-secure",
+                                            "amlogic,meson-gx-ao-secure",
+                                            "syscon";
+                               reg = <0x0 0x10220 0x0 0x140>;
+                               amlogic,has-chip-id;
+                       };
+
+                       sdio: mmc@88000 {
+                               compatible = "amlogic,meson-axg-mmc";
+                               reg = <0x0 0x88000 0x0 0x800>;
+                               interrupts = <GIC_SPI 176 IRQ_TYPE_EDGE_RISING>;
+                               power-domains = <&pwrc PWRC_C3_SDIOA_ID>;
+                               clocks = <&clkc_periphs CLKID_SYS_SD_EMMC_A>,
+                                         <&clkc_periphs CLKID_SD_EMMC_A>,
+                                         <&clkc_pll CLKID_FCLK_DIV2>;
+                               clock-names = "core","clkin0", "clkin1";
+                               no-mmc;
+                               no-sd;
+                               resets = <&reset RESET_SD_EMMC_A>;
+                               status = "disabled";
+                       };
+
+                       sd: mmc@8a000 {
+                               compatible = "amlogic,meson-axg-mmc";
+                               reg = <0x0 0x8a000 0x0 0x800>;
+                               interrupts = <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>;
+                               power-domains = <&pwrc PWRC_C3_SDCARD_ID>;
+                               clocks = <&clkc_periphs CLKID_SYS_SD_EMMC_B>,
+                                       <&clkc_periphs CLKID_SD_EMMC_B>,
+                                       <&clkc_pll CLKID_FCLK_DIV2>;
+                               clock-names = "core", "clkin0", "clkin1";
+                               no-mmc;
+                               no-sdio;
+                               resets = <&reset RESET_SD_EMMC_B>;
+                               status = "disabled";
+                       };
+
+                       nand: nand-controller@8d000 {
+                               compatible = "amlogic,meson-axg-nfc";
+                               reg = <0x0 0x8d000 0x0 0x200>,
+                                       <0x0 0x8C000 0x0 0x4>;
+                               reg-names = "nfc", "emmc";
+                               interrupts = <GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&clkc_periphs CLKID_SYS_SD_EMMC_C>,
+                                       <&clkc_pll CLKID_FCLK_DIV2>;
+                               clock-names = "core", "device";
+                               status = "disabled";
+                       };
+               };
+
+               ethmac: ethernet@fdc00000 {
+                       compatible = "amlogic,meson-g12a-dwmac",
+                                    "snps,dwmac-3.70a",
+                                    "snps,dwmac";
+                       reg = <0x0 0xfdc00000 0x0 0x10000>,
+                             <0x0 0xfe024000 0x0 0x8>;
+                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       power-domains = <&pwrc PWRC_C3_ETH_ID>;
+                       clocks = <&clkc_periphs CLKID_SYS_ETH_MAC>,
+                                <&clkc_pll CLKID_FCLK_DIV2>,
+                                <&clkc_pll CLKID_FCLK_50M>;
+                       clock-names = "stmmaceth", "clkin0", "clkin1";
+                       rx-fifo-depth = <4096>;
+                       tx-fifo-depth = <2048>;
+                       status = "disabled";
+
+                       mdio0: mdio {
+                               compatible = "snps,dwmac-mdio";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
                };
        };
 };
index c23efc6c7ac0276af6303387338030516101063a..ec743cad57dbf99f3a4c38004f33e350c81b1d60 100644 (file)
                                interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
                                status = "disabled";
                        };
+
+                       sec_ao: ao-secure@10220 {
+                               compatible = "amlogic,t7-ao-secure",
+                                            "amlogic,meson-gx-ao-secure",
+                                            "syscon";
+                               reg = <0x0 0x10220 0x0 0x140>;
+                               amlogic,has-chip-id;
+                       };
                };
 
        };
index 7ed526f45175f607f4fe871e3aad088c2b8218c8..9611775b81eee3943bbc8a57a78eec7d1abea5a1 100644 (file)
                                "Speaker1 Right", "SPK1 OUT_D",
                                "Linein AINL", "Linein",
                                "Linein AINR", "Linein";
+               clocks = <&clkc CLKID_HIFI_PLL>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_HIFI_PLL>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index af211d8f39520db4f7d12f3db9bca9307085fd2c..a457b3f4397b33d1e327fb2f13e2c8d49253ae5f 100644 (file)
                                "SPDIFOUT_A IN 1", "FRDDR_B OUT 3",
                                "SPDIFOUT_A IN 2", "FRDDR_C OUT 3";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 15b9bc28070617d02ae92e998d644f8c0921b817..c779a5da7d1ea06f4b7dfb626928f4cb1b90f7e8 100644 (file)
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 61cb8135a392554169e9b6512965648fccd58270..ea51341f031b5cc3dfc45e2618fb054a47fffbdb 100644 (file)
                                "TODDR_B IN 1", "TDMIN_B OUT",
                                "TODDR_C IN 1", "TDMIN_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 0e239939ade6ccb86b933f2e7ee3d20f70252213..f70a46967e2b450b0a072c4e8df10300a6417b47 100644 (file)
                                "Lineout", "10U2 OUTL",
                                "Lineout", "10U2 OUTR";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 05c7a1e3f1b71afe923f1ae83ad072e2e9c4f3e4..32f98a1924942fb6162d53ca16f1e5d25621a1ae 100644 (file)
                                "SPDIFOUT_A IN 1", "FRDDR_B OUT 3",
                                "SPDIFOUT_A IN 2", "FRDDR_C OUT 3";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 13d478f9c89146c4f6932b7e71211022f150b737..2d74456e685df93d596c1de6202d6d6e28051144 100644 (file)
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 003efed529ba3b02772303068c92f6ce13794df7..0f48c32bec976cd14a8e3e9ef184eec0da757782 100644 (file)
                                "LINPUT1", "Mic Jack",
                                "Mic Jack", "MICB";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                        <&clkc CLKID_MPLL0>,
                                        <&clkc CLKID_MPLL1>;
index 6a346cb86a5394809c764e0412d747d727baabbf..d4e1990b5f26b8129fb5cc1617e759c568006a1e 100644 (file)
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 3a24c24115522b431319ec54e48d8342cd640288..de35fa2d7a6de3cc6b3a8b296c06daf677497e4a 100644 (file)
                                "SPDIFOUT_A IN 0", "FRDDR_A OUT 3",
                                "SPDIFOUT_A IN 1", "FRDDR_B OUT 3",
                                "SPDIFOUT_A IN 2", "FRDDR_C OUT 3";
+
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index bb73e10b5e741ec81b7cc725f0efa39450e09bd7..369c5cf889b6c88e8c33132b970e03f1c1bc89c8 100644 (file)
                                "TDMOUT_A IN 2", "FRDDR_C OUT 1",
                                "TDM_A Playback", "TDMOUT_A OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 6eeedd54ab917686b1df2f61fd21d762fbe0ac35..654449afd3a4cb76f8c873a64c6d6e826bfac8ad 100644 (file)
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 0da386cabe1a5ad1a9086ec5b69489917389ccf6..e203113867451e4226a145162f27d1f06d0a3743 100644 (file)
                                "SPDIFOUT_A IN 1", "FRDDR_B OUT 3",
                                "SPDIFOUT_A IN 2", "FRDDR_C OUT 3";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index eed2a23047caf04eef04633cd1b1279b89a86a26..e21831dfceeea728e05c7a4ecbf93bd22fc85aba 100644 (file)
                                "Internal Speakers", "Speaker Amplifier OUTL",
                                "Internal Speakers", "Speaker Amplifier OUTR";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 86eb81112232131f01e45c51dac871c781b8387e..3bca8023638d4b8b8bd32dd3c5846c64dd5e645d 100644 (file)
                                "Lineout", "U19 OUTL",
                                "Lineout", "U19 OUTR";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index e26f3e3258e1f87b918572e412e16a19ba56b61c..1b9097a302518b6fe17d35d9d85e90935f5bf743 100644 (file)
                                "TODDR_B IN 6", "TDMIN_LB OUT",
                                "TODDR_C IN 6", "TDMIN_LB OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 8445701100d0e40e850c189c1c5a927c45ed9173..39feba7f2d0830c72233824dbe08f98b073722a7 100644 (file)
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 6396f190d703ed450dff4d33d40c73e7217b856d..4c1a75b926ee34fe271c3b2c0fca09db05f50fe5 100644 (file)
                                "SPDIFOUT_A IN 1", "FRDDR_B OUT 3",
                                "SPDIFOUT_A IN 2", "FRDDR_C OUT 3";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index efd662a452e8812398133cf00fa6ed6a9adef459..d38c3a224fbed46fed0a96149d540575d4048149 100644 (file)
                                "AU2 INR", "ACODEC LORN",
                                "7J4-14 LEFT", "AU2 OUTL",
                                "7J4-11 RIGHT", "AU2 OUTR";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index 08d6b69ba469183d432da40ff6cccec78f20326b..45ccddd1aaf0546632c81a52c8917a923beae883 100644 (file)
                                "AU2 INR", "ACODEC LORN",
                                "Lineout", "AU2 OUTL",
                                "Lineout", "AU2 OUTR";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index f28452b9f00fdb5de66948bebbd438a46d1557b8..073b47ce8c3c4f5eccd04cf265aa830add20ee53 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "KII-PRO";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index 1fd2e56e6b085df6da1d14040244b6d35ec6f422..cf2e2ef816807766254086b8b89727d375cb6395 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "NANOPI-K2";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index cca129ce2c5834af7adda219963d7a59f459df94..7d7dde93fff3f94d85fbc23b9642b53de1db772f 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "NEXBOX-A95X";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index c37cc6b036cd71423e739846d349ceed43884331..959bd8d77a82ebc78c5e0592d7613e692e4ede4e 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "ODROID-C2";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index 7f94716876d39f593f2c3eb752f1bba15ea0c152..bfac00e76ba3e4ee303e48d7ad0bae1c66276172 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "P200";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index 6f81eed83becc3d451da914978bb0b169a60cf2f..c10f66031ecd4b2ac3447509cb567cc13be8a0bf 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "P201";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index 255e93a0b36d9ea5fba47ed5b57429132134c95a..3807a184810b869abcbc9081453f2f4552f66d75 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "VEGA-S95";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index af9ea32a2876b7e03384d02dbe1b52aef6fc3c78..ec281a9e9e7768fc172c930ff40f1b3922350792 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "WETEK-HUB";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index 376760d86766158d7d6c50fb87b8e6e29835de1c..924414861b72f1c822b6f39b12e82cf6b15c6be2 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "WETEK-PLAY2";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index 90ef9c17d80bac172843c7de5900b69b66954e84..c6132fb71dfc481d2690e091e7ea639ab90a3145 100644 (file)
                                "Speaker", "9J5-2 RIGHT";
                audio-routing = "9J5-3 LEFT", "ACODEC LOLN",
                                "9J5-2 RIGHT", "ACODEC LORN";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index 08a4718219b10876a59376e6d4a902559450acf1..c5e2306ad7a4b5b4270db9cbebf27a44b89147ad 100644 (file)
                                "AU2 INR", "ACODEC LORN",
                                "Lineout", "AU2 OUTL",
                                "Lineout", "AU2 OUTR";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index fea65f20523aa487ad6d34d8c3af1dff2b037ee1..a80f0ea2773be600436fb02e8164e2c5f2f040fb 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "KHADAS-VIM";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index 63b20860067c0939c7b9a3a5d3def29412813dd9..6cbdfde00e12a4b504696b10b020563e70677486 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "LIBRETECH-CC-V2";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index 8b26c9661be1f6d00593b40b8ceb9ca4b8c8c2b6..401064b0428de96a8f6ece2a48c1c6f779f084c9 100644 (file)
                                "AU2 INR", "ACODEC LORN",
                                "Lineout", "AU2 OUTL",
                                "Lineout", "AU2 OUTR";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index 9b4ea6a49398881e8501b6f45ff1f259c3810978..8b41e340f91997e0ec3c57de61c2ed664a45cc6c 100644 (file)
                                "AU2 INR", "ACODEC LORN",
                                "Lineout", "AU2 OUTL",
                                "Lineout", "AU2 OUTR";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index de996e930b824fa7482b3dcf36bcba59fc893470..a9c5881c9783bd46ed9bbfd1543e7aa06fc62145 100644 (file)
                                "AU2 INR", "ACODEC LORN",
                                "Lineout", "AU2 OUTL",
                                "Lineout", "AU2 OUTR";
+
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index 1221f454513089f6db2df801c1e3b2b2526a11ac..942df754a0ed29bcaa4adc6bf644f2cd1e17e7f6 100644 (file)
        };
 };
 
-&saradc {
-       compatible = "amlogic,meson-gxlx-saradc", "amlogic,meson-saradc";
-};
-
 &usb {
        dr_mode = "host";
 };
index 07e7c3bedea0084312f7916c4e1dee52926d6570..96a3dd2d8a99dda08225d60f2919c2f6ffe87856 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "KHADAS-VIM2";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index ad2dd4ad0a313fd64a2a38c38448ee5972054f34..773107cc47ddb57fdd4de3f89a1899d92500a634 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "NEXBOX-A1";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index d05dde8da5c566ed262921e983dc41eba1d17a7b..7356d3b628b162129eb123234833ed3143687059 100644 (file)
        sound {
                compatible = "amlogic,gx-sound-card";
                model = "RBOX-PRO";
+               clocks = <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>,
+                        <&clkc CLKID_MPLL2>;
+
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
index e78cc9b577a0551bcfb7c1fe4fe7c25a6076c3c5..7daa9b122d5c0573de0cfe41ee8730c6c5db77e9 100644 (file)
                                "TODDR_B IN 0", "TDMIN_A OUT",
                                "TODDR_C IN 0", "TDMIN_A OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 082b72703cdf952cd46de3882c02ce5bab3929f3..929e4720ae7683dd2a9d0ba4cb0aaff14d388257 100644 (file)
                                 <&tdmin_a>, <&tdmin_b>, <&tdmin_c>,
                                 <&dioo2133>;
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 983caddc409c35b4b396650935a1cfb84ab10d21..6730c44642d2910d42ec0c4adf49fefc3514dbec 100644 (file)
                        no-map;
                };
        };
+
+       sdio_32k: sdio-32k {
+               compatible = "pwm-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
+               clocks = <&sdio_32k>;
+               clock-names = "ext_clock";
+       };
+
+       main_12v: regulator-main-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "12V";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               regulator-always-on;
+       };
+
+       vddao_3v3: regulator-vddao-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDAO_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&main_12v>;
+               regulator-always-on;
+       };
+
+       vddio_ao1v8: regulator-vddio-ao1v8 {
+              compatible = "regulator-fixed";
+              regulator-name = "VDDIO_AO1V8";
+              regulator-min-microvolt = <1800000>;
+              regulator-max-microvolt = <1800000>;
+              vin-supply = <&vddao_3v3>;
+              regulator-always-on;
+       };
+
+       /* SY8120B1ABC DC/DC Regulator. */
+       vddcpu: regulator-vddcpu {
+               compatible = "pwm-regulator";
+
+               regulator-name = "VDDCPU";
+               regulator-min-microvolt = <689000>;
+               regulator-max-microvolt = <1049000>;
+
+               vin-supply = <&main_12v>;
+
+               pwms = <&pwm_ij 1 1500 0>;
+               pwm-dutycycle-range = <100 0>;
+
+               regulator-boot-on;
+               regulator-always-on;
+               /* Voltage Duty-Cycle */
+               voltage-table = <1049000 0>,
+                               <1039000 3>,
+                               <1029000 6>,
+                               <1019000 9>,
+                               <1009000 12>,
+                               <999000 14>,
+                               <989000 17>,
+                               <979000 20>,
+                               <969000 23>,
+                               <959000 26>,
+                               <949000 29>,
+                               <939000 31>,
+                               <929000 34>,
+                               <919000 37>,
+                               <909000 40>,
+                               <899000 43>,
+                               <889000 45>,
+                               <879000 48>,
+                               <869000 51>,
+                               <859000 54>,
+                               <849000 56>,
+                               <839000 59>,
+                               <829000 62>,
+                               <819000 65>,
+                               <809000 68>,
+                               <799000 70>,
+                               <789000 73>,
+                               <779000 76>,
+                               <769000 79>,
+                               <759000 81>,
+                               <749000 84>,
+                               <739000 87>,
+                               <729000 89>,
+                               <719000 92>,
+                               <709000 95>,
+                               <699000 98>,
+                               <689000 100>;
+       };
+};
+
+&pwm_ef {
+       status = "okay";
+       pinctrl-0 = <&pwm_e_pins1>;
+       pinctrl-names = "default";
+};
+
+&pwm_ij {
+       status = "okay";
 };
 
 &uart_b {
        pinctrl-names = "default";
 };
 
+&sdio {
+       pinctrl-0 = <&sdio_pins>;
+       pinctrl-1 = <&sdio_clk_gate_pins>;
+       pinctrl-names = "default", "clk-gate";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       max-frequency = <200000000>;
+       non-removable;
+       disable-wp;
+       no-sd;
+       no-mmc;
+       vmmc-supply = <&vddao_3v3>;
+       vqmmc-supply = <&vddio_ao1v8>;
+};
+
+&sd {
+       status = "okay";
+       pinctrl-0 = <&sdcard_pins>;
+       pinctrl-1 = <&sdcard_clk_gate_pins>;
+       pinctrl-names = "default", "clk-gate";
+       bus-width = <4>;
+       cap-sd-highspeed;
+       max-frequency = <200000000>;
+       disable-wp;
+
+       cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&vddao_3v3>;
+       vqmmc-supply = <&vddao_3v3>;
+};
+
 &nand {
        status = "okay";
        #address-cells = <1>;
        pinctrl-0 = <&spicc0_pins_x>;
        cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>;
 };
+
+&ethmac {
+       status = "okay";
+       phy-handle = <&internal_ephy>;
+       phy-mode = "rmii";
+};
index b686eacb966207e2d17b0c10e68daea25ee6babf..957577d986c0675a503115e1ccbc4387c2051620 100644 (file)
@@ -10,6 +10,7 @@
 #include <dt-bindings/clock/amlogic,s4-pll-clkc.h>
 #include <dt-bindings/clock/amlogic,s4-peripherals-clkc.h>
 #include <dt-bindings/power/meson-s4-power.h>
+#include <dt-bindings/reset/amlogic,meson-s4-reset.h>
 
 / {
        cpus {
                                        };
                                };
 
+                               sdcard_pins: sdcard-pins {
+                                       mux {
+                                               groups = "sdcard_d0_c",
+                                                        "sdcard_d1_c",
+                                                        "sdcard_d2_c",
+                                                        "sdcard_d3_c",
+                                                        "sdcard_clk_c",
+                                                        "sdcard_cmd_c";
+                                               function = "sdcard";
+                                               bias-pull-up;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               sdcard_clk_gate_pins: sdcard-clk-gate-pins {
+                                       mux {
+                                               groups = "GPIOC_4";
+                                               function = "gpio_periphs";
+                                               bias-pull-down;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               emmc_pins: emmc-pins {
+                                       mux-0 {
+                                               groups = "emmc_nand_d0",
+                                                        "emmc_nand_d1",
+                                                        "emmc_nand_d2",
+                                                        "emmc_nand_d3",
+                                                        "emmc_nand_d4",
+                                                        "emmc_nand_d5",
+                                                        "emmc_nand_d6",
+                                                        "emmc_nand_d7",
+                                                        "emmc_cmd";
+                                               function = "emmc";
+                                               bias-pull-up;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                                       mux-1 {
+                                               groups = "emmc_clk";
+                                               function = "emmc";
+                                               bias-pull-up;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               emmc_ds_pins: emmc-ds-pins {
+                                       mux {
+                                               groups = "emmc_nand_ds";
+                                               function = "emmc";
+                                               bias-pull-down;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               emmc_clk_gate_pins: emmc-clk-gate-pins {
+                                       mux {
+                                               groups = "GPIOB_8";
+                                               function = "gpio_periphs";
+                                               bias-pull-down;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               sdio_pins: sdio-pins {
+                                       mux {
+                                               groups = "sdio_d0",
+                                                        "sdio_d1",
+                                                        "sdio_d2",
+                                                        "sdio_d3",
+                                                        "sdio_clk",
+                                                        "sdio_cmd";
+                                               function = "sdio";
+                                               bias-pull-up;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               sdio_clk_gate_pins: sdio-clk-gate-pins {
+                                       mux {
+                                               groups = "GPIOX_4";
+                                               function = "gpio_periphs";
+                                               bias-pull-down;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
                                spicc0_pins_x: spicc0-pins_x {
                                        mux {
                                                groups = "spi_a_mosi_x",
                                #reset-cells = <1>;
                        };
 
+                       sec_ao: ao-secure@10220 {
+                               compatible = "amlogic,s4-ao-secure",
+                                            "amlogic,meson-gx-ao-secure",
+                                            "syscon";
+                               reg = <0x0 0x10220 0x0 0x140>;
+                               amlogic,has-chip-id;
+                       };
+
                        ir: ir@84040 {
                                compatible = "amlogic,meson-s4-ir";
                                reg = <0x0 0x84040 0x0 0x30>;
                                compatible = "snps,dwmac-mdio";
                        };
                };
+
+               sdio: mmc@fe088000 {
+                       compatible = "amlogic,meson-axg-mmc";
+                       reg = <0x0 0xfe088000 0x0 0x800>;
+                       interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clkc_periphs CLKID_SDEMMC_A>,
+                                <&xtal>,
+                                <&clkc_pll CLKID_FCLK_DIV2>;
+                       clock-names = "core", "clkin0", "clkin1";
+                       resets = <&reset RESET_SD_EMMC_A>;
+                       cap-sdio-irq;
+                       keep-power-in-suspend;
+                       status = "disabled";
+               };
+
+               sd: mmc@fe08a000 {
+                       compatible = "amlogic,meson-axg-mmc";
+                       reg = <0x0 0xfe08a000 0x0 0x800>;
+                       interrupts = <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&clkc_periphs CLKID_SDEMMC_B>,
+                                <&clkc_periphs CLKID_SD_EMMC_B>,
+                                <&clkc_pll CLKID_FCLK_DIV2>;
+                       clock-names = "core", "clkin0", "clkin1";
+                       resets = <&reset RESET_SD_EMMC_B>;
+                       status = "disabled";
+               };
+
+               emmc: mmc@fe08c000 {
+                       compatible = "amlogic,meson-axg-mmc";
+                       reg = <0x0 0xfe08c000 0x0 0x800>;
+                       interrupts = <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&clkc_periphs CLKID_NAND>,
+                                <&xtal>,
+                                <&clkc_pll CLKID_FCLK_DIV2>;
+                       clock-names = "core", "clkin0", "clkin1";
+                       resets = <&reset RESET_NAND_EMMC>;
+                       no-sdio;
+                       no-sd;
+                       status = "disabled";
+               };
        };
 };
index 9b2eb6e4265170b7b1d66539aeea94dc5e986b3d..3c43d3490e14a5d457974bf79133751e33def81e 100644 (file)
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 6e34fd80ed717b6c04c8e624fa0b0ab3036124c5..445c1671ede78c3b574e271c664413ea2f1626a4 100644 (file)
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 586034316ec3a667ebef928a7165aee8ff3d805c..eeaff22edade8fd0d6cdc4043343a4ed0a2d3e9f 100644 (file)
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index f045bf8516387e17a3d84607b06143d99f865a2d..697855fec4760f5771c7183361dbf99c809df66f 100644 (file)
                                "Lineout", "ACODEC LOLP",
                                "Lineout", "ACODEC LORP";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index e6e9410d40cb278ad49e1823e4d6a72557bc9c2f..7b3a014d4cde2e3d19138b84a952f502551871bf 100644 (file)
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 951eb8e3f0c0c92633adcc686801847affd5f040..7b0e9817a615dd3949bdbc54530318d8f17be6d4 100644 (file)
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 3581e14cbf18db7dd80a99ee23ab614786ffa816..2e3397e55da2b47bf3b1b388b8b1821aa0f1816c 100644 (file)
                                "TODDR_B IN 1", "TDMIN_B OUT",
                                "TODDR_C IN 1", "TDMIN_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index fc9b961133cdb18d6fad6c5c47b437384f7b4545..e4a3a2a8ad0647702f24da5c2a623b126975f879 100644 (file)
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 9ea969255b4f8a0b970006e5cdc7ef8da9251794..fff92e0d6dd51df28c3f42cb030265515b1d1013 100644 (file)
                                "TDMOUT_B IN 2", "FRDDR_C OUT 1",
                                "TDM_B Playback", "TDMOUT_B OUT";
 
+               clocks = <&clkc CLKID_MPLL2>,
+                        <&clkc CLKID_MPLL0>,
+                        <&clkc CLKID_MPLL1>;
+
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
index 532401bc9c6607c562068f541d9ca295f1691b3c..6ad4703925dc5fbbee04c29a4868a303246eba56 100644 (file)
                                compatible = "apm,xgene-mdio";
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               menetphy: menetphy@3 {
+                               menetphy: ethernet-phy@3 {
                                        compatible = "ethernet-phy-id001c.c915";
                                        reg = <0x3>;
                                };
index 93f1e7c026b8c3e6a4c221c11f5f20ea8b882dbf..083be35495b395a1759c4df1137a9b1166cd5afd 100644 (file)
@@ -18,7 +18,9 @@
        #address-cells = <2>;
        #size-cells = <2>;
 
-       chosen { };
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
 
        aliases {
                serial0 = &v2m_serial0;
index 85f1c15cc65d06187a74d19570c6fbd0ac32e5c8..19973ab4ea6b53ada24fe0ad76a0a594eb326c20 100644 (file)
@@ -24,7 +24,9 @@
        #address-cells = <2>;
        #size-cells = <2>;
 
-       chosen { };
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
 
        aliases {
                serial0 = &v2m_serial0;
index afdf954206f1d1a895b6c0106b0b7afd7d9053b8..7f7226711d4bb8446e9111894a0bea2eb0d22345 100644 (file)
@@ -23,7 +23,9 @@
        #address-cells = <2>;
        #size-cells = <2>;
 
-       chosen { };
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
 
        aliases {
                serial0 = &v2m_serial0;
diff --git a/src/arm64/broadcom/bcm2712-rpi-5-b.dts b/src/arm64/broadcom/bcm2712-rpi-5-b.dts
new file mode 100644 (file)
index 0000000..2bdbb67
--- /dev/null
@@ -0,0 +1,64 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "bcm2712.dtsi"
+
+/ {
+       compatible = "raspberrypi,5-model-b", "brcm,bcm2712";
+       model = "Raspberry Pi 5";
+
+       aliases {
+               serial10 = &uart10;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial10:115200n8";
+       };
+
+       /* Will be filled by the bootloader */
+       memory@0 {
+               device_type = "memory";
+               reg = <0 0 0 0x28000000>;
+       };
+
+       sd_io_1v8_reg: sd-io-1v8-reg {
+               compatible = "regulator-gpio";
+               regulator-name = "vdd-sd-io";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-settling-time-us = <5000>;
+               gpios = <&gio_aon 3 GPIO_ACTIVE_HIGH>;
+               states = <1800000 1>,
+                        <3300000 0>;
+       };
+
+       sd_vcc_reg: sd-vcc-reg {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc-sd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               enable-active-high;
+               gpios = <&gio_aon 4 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+/* The Debug UART, on Rpi5 it's on JST-SH 1.0mm 3-pin connector
+ * labeled "UART", i.e. the interface with the system console.
+ */
+&uart10 {
+       status = "okay";
+};
+
+/* SDIO1 is used to drive the SD card */
+&sdio1 {
+       vqmmc-supply = <&sd_io_1v8_reg>;
+       vmmc-supply = <&sd_vcc_reg>;
+       bus-width = <4>;
+       sd-uhs-sdr50;
+       sd-uhs-ddr50;
+       sd-uhs-sdr104;
+};
diff --git a/src/arm64/broadcom/bcm2712.dtsi b/src/arm64/broadcom/bcm2712.dtsi
new file mode 100644 (file)
index 0000000..6e5a984
--- /dev/null
@@ -0,0 +1,283 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       compatible = "brcm,bcm2712";
+
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       interrupt-parent = <&gicv2>;
+
+       clocks {
+               /* The oscillator is the root of the clock tree. */
+               clk_osc: clk-osc {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-output-names = "osc";
+                       clock-frequency = <54000000>;
+               };
+
+               clk_vpu: clk-vpu {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <750000000>;
+                       clock-output-names = "vpu-clock";
+               };
+
+               clk_uart: clk-uart {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <9216000>;
+                       clock-output-names = "uart-clock";
+               };
+
+               clk_emmc2: clk-emmc2 {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <200000000>;
+                       clock-output-names = "emmc2-clock";
+               };
+       };
+
+       cpus: cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* Source for L1 d/i cache-line-size, cache-sets, cache-size
+                * https://developer.arm.com/documentation/100798/0401/L1-memory-system/About-the-L1-memory-system?lang=en
+                * Source for L2 cache-line-size and cache-sets:
+                * https://developer.arm.com/documentation/100798/0401/L2-memory-system/About-the-L2-memory-system?lang=en
+                * and for cache-size:
+                * https://www.raspberrypi.com/documentation/computers/processors.html#bcm2712
+                */
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x000>;
+                       enable-method = "psci";
+                       d-cache-size = <0x10000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
+                       i-cache-size = <0x10000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
+                       next-level-cache = <&l2_cache_l0>;
+
+                       l2_cache_l0: l2-cache-l0 {
+                               compatible = "cache";
+                               cache-size = <0x80000>;
+                               cache-line-size = <128>;
+                               cache-sets = <1024>; //512KiB(size)/64(line-size)=8192ways/8-way set
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&l3_cache>;
+                       };
+               };
+
+               cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x100>;
+                       enable-method = "psci";
+                       d-cache-size = <0x10000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
+                       i-cache-size = <0x10000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
+                       next-level-cache = <&l2_cache_l1>;
+
+                       l2_cache_l1: l2-cache-l1 {
+                               compatible = "cache";
+                               cache-size = <0x80000>;
+                               cache-line-size = <128>;
+                               cache-sets = <1024>; //512KiB(size)/64(line-size)=8192ways/8-way set
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&l3_cache>;
+                       };
+               };
+
+               cpu2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x200>;
+                       enable-method = "psci";
+                       d-cache-size = <0x10000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
+                       i-cache-size = <0x10000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
+                       next-level-cache = <&l2_cache_l2>;
+
+                       l2_cache_l2: l2-cache-l2 {
+                               compatible = "cache";
+                               cache-size = <0x80000>;
+                               cache-line-size = <128>;
+                               cache-sets = <1024>; //512KiB(size)/64(line-size)=8192ways/8-way set
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&l3_cache>;
+                       };
+               };
+
+               cpu3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x300>;
+                       enable-method = "psci";
+                       d-cache-size = <0x10000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
+                       i-cache-size = <0x10000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
+                       next-level-cache = <&l2_cache_l3>;
+
+                       l2_cache_l3: l2-cache-l3 {
+                               compatible = "cache";
+                               cache-size = <0x80000>;
+                               cache-line-size = <128>;
+                               cache-sets = <1024>; //512KiB(size)/64(line-size)=8192ways/8-way set
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&l3_cache>;
+                       };
+               };
+
+               /* Source for cache-line-size and cache-sets:
+                * https://developer.arm.com/documentation/100453/0401/L3-cache?lang=en
+                * Source for cache-size:
+                * https://www.raspberrypi.com/documentation/computers/processors.html#bcm2712
+                */
+               l3_cache: l3-cache {
+                       compatible = "cache";
+                       cache-size = <0x200000>;
+                       cache-line-size = <64>;
+                       cache-sets = <2048>; // 2MiB(size)/64(line-size)=32768ways/16-way set
+                       cache-level = <3>;
+                       cache-unified;
+               };
+       };
+
+       psci {
+               method = "smc";
+               compatible = "arm,psci-1.0", "arm,psci-0.2";
+       };
+
+       rmem: reserved-memory {
+               ranges;
+               #address-cells = <2>;
+               #size-cells = <2>;
+
+               atf@0 {
+                       reg = <0x0 0x0 0x0 0x80000>;
+                       no-map;
+               };
+
+               cma: linux,cma {
+                       compatible = "shared-dma-pool";
+                       size = <0x0 0x4000000>; /* 64MB */
+                       reusable;
+                       linux,cma-default;
+                       alloc-ranges = <0x0 0x00000000 0x0 0x40000000>;
+               };
+       };
+
+       soc: soc@107c000000 {
+               compatible = "simple-bus";
+               ranges = <0x00000000  0x10 0x00000000  0x80000000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               sdio1: mmc@fff000 {
+                       compatible = "brcm,bcm2712-sdhci",
+                                    "brcm,sdhci-brcmstb";
+                       reg = <0x00fff000 0x260>,
+                             <0x00fff400 0x200>;
+                       reg-names = "host", "cfg";
+                       interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_emmc2>;
+                       clock-names = "sw_sdio";
+                       mmc-ddr-3_3v;
+               };
+
+               system_timer: timer@7c003000 {
+                       compatible = "brcm,bcm2835-system-timer";
+                       reg = <0x7c003000 0x1000>;
+                       interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-frequency = <1000000>;
+               };
+
+               mailbox: mailbox@7c013880 {
+                       compatible = "brcm,bcm2835-mbox";
+                       reg = <0x7c013880 0x40>;
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <0>;
+               };
+
+               local_intc: interrupt-controller@7cd00000 {
+                       compatible = "brcm,bcm2836-l1-intc";
+                       reg = <0x7cd00000 0x100>;
+               };
+
+               uart10: serial@7d001000 {
+                       compatible = "arm,pl011", "arm,primecell";
+                       reg = <0x7d001000 0x200>;
+                       interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_uart>, <&clk_vpu>;
+                       clock-names = "uartclk", "apb_pclk";
+                       arm,primecell-periphid = <0x00241011>;
+                       status = "disabled";
+               };
+
+               interrupt-controller@7d517000 {
+                       compatible = "brcm,bcm7271-l2-intc";
+                       reg = <0x7d517000 0x10>;
+                       interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+               };
+
+               gio_aon: gpio@7d517c00 {
+                       compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
+                       reg = <0x7d517c00 0x40>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       brcm,gpio-bank-widths = <17 6>;
+                       /* The lack of 'interrupt-controller' property here is intended:
+                        * don't use GIO_AON as an interrupt controller because it will
+                        * clash with the firmware monitoring the PMIC interrupt via the VPU.
+                        */
+               };
+
+               gicv2: interrupt-controller@7fff9000 {
+                       compatible = "arm,gic-400";
+                       reg = <0x7fff9000 0x1000>,
+                             <0x7fffa000 0x2000>,
+                             <0x7fffc000 0x2000>,
+                             <0x7fffe000 0x2000>;
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) |
+                                         IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) |
+                                         IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) |
+                                         IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) |
+                                         IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(4) |
+                                         IRQ_TYPE_LEVEL_LOW)>;
+       };
+};
index 47a389d9ff7d71b56bcd3771c44bca2ad0386b2f..9d74fa6bfed9fb2f8259683df0b56f1867a35e3f 100644 (file)
@@ -32,7 +32,7 @@
                device_type = "memory";
                reg = <0x0 0x80000000 0x3da00000>,
                      <0x0 0xc0000000 0x40000000>,
-                     <0x8 0x80000000 0x40000000>;
+                     <0x8 0x80000000 0x80000000>;
        };
 
        gpio-keys {
index 0248329da49a6393d2ec4a2e58b1498143419cbc..b36292a7db640815a3755e5b21c50c29e7b224cc 100644 (file)
                                      "dout_fsys2_clkcmu_ethernet";
                };
 
+               cmu_dpum: clock-controller@18c00000 {
+                       compatible = "samsung,exynosautov9-cmu-dpum";
+                       reg = <0x18c00000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&xtcxo>,
+                                <&cmu_top DOUT_CLKCMU_DPUM_BUS>;
+                       clock-names = "oscclk", "bus";
+               };
+
+               sysmmu_dpum_0: sysmmu@18c80000 {
+                       compatible = "samsung,exynos-sysmmu";
+                       reg = <0x18c80000 0x10000>;
+                       interrupts = <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cmu_dpum CLK_GOUT_DPUM_SYSMMU_D0_CLK>;
+                       clock-names = "sysmmu";
+                       #iommu-cells = <0>;
+               };
+
+               sysmmu_dpum_1: sysmmu@18c90000 {
+                       compatible = "samsung,exynos-sysmmu";
+                       reg = <0x18c90000 0x10000>;
+                       interrupts = <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cmu_dpum CLK_GOUT_DPUM_SYSMMU_D1_CLK>;
+                       clock-names = "sysmmu";
+                       #iommu-cells = <0>;
+               };
+
+               sysmmu_dpum_2: sysmmu@18ca0000 {
+                       compatible = "samsung,exynos-sysmmu";
+                       reg = <0x18ca0000 0x10000>;
+                       interrupts = <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cmu_dpum CLK_GOUT_DPUM_SYSMMU_D2_CLK>;
+                       clock-names = "sysmmu";
+                       #iommu-cells = <0>;
+               };
+
+               sysmmu_dpum_3: sysmmu@18cb0000 {
+                       compatible = "samsung,exynos-sysmmu";
+                       reg = <0x18cb0000 0x10000>;
+                       interrupts = <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cmu_dpum CLK_GOUT_DPUM_SYSMMU_D3_CLK>;
+                       clock-names = "sysmmu";
+                       #iommu-cells = <0>;
+               };
+
                cmu_core: clock-controller@1b030000 {
                        compatible = "samsung,exynosautov9-cmu-core";
                        reg = <0x1b030000 0x8000>;
index c1c8566d74f5978a52e7c2f898749b97288ff4b5..91882b37fdb32b2666400355c477dcf51a4080cd 100644 (file)
@@ -6,6 +6,7 @@
  *
  */
 
+#include <dt-bindings/clock/samsung,exynosautov920.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/soc/samsung,exynos-usi.h>
 
                clock-output-names = "oscclk";
        };
 
-       /*
-        * FIXME: Keep the stub clock for serial driver, until proper clock
-        * driver is implemented.
-        */
-       clock_usi: clock-usi {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <200000000>;
-               clock-output-names = "usi";
-       };
-
        cpus: cpus {
                #address-cells = <2>;
                #size-cells = <0>;
                        interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               cmu_peric0: clock-controller@10800000 {
+                       compatible = "samsung,exynosautov920-cmu-peric0";
+                       reg = <0x10800000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&xtcxo>,
+                                <&cmu_top DOUT_CLKCMU_PERIC0_NOC>,
+                                <&cmu_top DOUT_CLKCMU_PERIC0_IP>;
+                       clock-names = "oscclk",
+                                     "noc",
+                                     "ip";
+               };
+
                syscon_peric0: syscon@10820000 {
                        compatible = "samsung,exynosautov920-peric0-sysreg",
                                     "syscon";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
-                       clocks = <&clock_usi>, <&clock_usi>;
+                       clocks = <&cmu_peric0 CLK_MOUT_PERIC0_NOC_USER>,
+                                <&cmu_peric0 CLK_DOUT_PERIC0_USI00_USI>;
                        clock-names = "pclk", "ipclk";
                        status = "disabled";
 
                                interrupts = <GIC_SPI 764 IRQ_TYPE_LEVEL_HIGH>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&uart0_bus>;
-                               clocks = <&clock_usi>, <&clock_usi>;
+                               clocks = <&cmu_peric0 CLK_MOUT_PERIC0_NOC_USER>,
+                                        <&cmu_peric0 CLK_DOUT_PERIC0_USI00_USI>;
                                clock-names = "uart", "clk_uart_baud0";
                                samsung,uart-fifosize = <256>;
                                status = "disabled";
                        interrupts = <GIC_SPI 781 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               cmu_top: clock-controller@11000000 {
+                       compatible = "samsung,exynosautov920-cmu-top";
+                       reg = <0x11000000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&xtcxo>;
+                       clock-names = "oscclk";
+               };
+
                pinctrl_alive: pinctrl@11850000 {
                        compatible = "samsung,exynosautov920-pinctrl";
                        reg = <0x11850000 0x10000>;
index eadb8822e6d4fdfafaa15656ed1fa27ab8f8a47d..302c5beb224aa4917be087c337f9baab0870b25f 100644 (file)
                pmu_system_controller: system-controller@17460000 {
                        compatible = "google,gs101-pmu", "syscon";
                        reg = <0x17460000 0x10000>;
+
+                       poweroff: syscon-poweroff {
+                               compatible = "syscon-poweroff";
+                               regmap = <&pmu_system_controller>;
+                               offset = <0x3e9c>; /* PAD_CTRL_PWR_HOLD */
+                               mask = <0x100>; /* reset value */
+                       };
+
+                       reboot: syscon-reboot {
+                               compatible = "syscon-reboot";
+                               regmap = <&pmu_system_controller>;
+                               offset = <0x3a00>; /* SYSTEM_CONFIGURATION */
+                               mask = <0x2>; /* SWRESET_SYSTEM */
+                               value = <0x2>; /* reset value */
+                       };
                };
 
                pinctrl_gpio_alive: pinctrl@174d0000 {
index 2517528f684fe085a237d368aa8edb26ef702456..75081ce3e9a6f08c99e20753c8f12bd84f64ae46 100644 (file)
                clock-frequency = <25000000>;
        };
 
+       sc16is7xx_clk: clock-sc16is7xx {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <24000000>;
+       };
+
        reg_1p8v: regulator-1p8v {
                compatible = "regulator-fixed";
                regulator-name = "1P8V";
                clocks = <&sc16is7xx_clk>;
                interrupt-parent = <&gpio1>;
                interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
-
-               sc16is7xx_clk: clock-sc16is7xx {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-                       clock-frequency = <24000000>;
-               };
        };
 };
 
index e61ea7e0737e42b7cc78671edc587fd59e6dcaa2..dd479889658d452142e6d50b507147ba91c799af 100644 (file)
                                            QORIQ_CLK_PLL_DIV(1)>;
                        voltage-ranges = <1800 1800 3300 3300>;
                        sdhci,auto-cmd12;
-                       big-endian;
                        bus-width = <4>;
                        status = "disabled";
                };
                                            QORIQ_CLK_PLL_DIV(1)>;
                        voltage-ranges = <1800 1800 3300 3300>;
                        sdhci,auto-cmd12;
-                       big-endian;
                        broken-cd;
                        bus-width = <4>;
                        status = "disabled";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        device_type = "pci";
-                       num-viewport = <2>;
                        bus-range = <0x0 0xff>;
                        ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000   /* downstream I/O */
                                  0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
                        status = "disabled";
                };
 
-               rcpm: power-controller@1ee2140 {
+               rcpm: wakeup-controller@1ee2140 {
                        compatible = "fsl,ls1012a-rcpm", "fsl,qoriq-rcpm-2.1+";
                        reg = <0x0 0x1ee2140 0x0 0x4>;
                        #fsl,rcpm-wakeup-cells = <1>;
index 195bdbafdf7c9e0cf7dbcccfd75a6ec17ac56a2f..d9fac647f4327d2da6d07a1a7c4393aa61e0a05f 100644 (file)
                cooling-levels = <1 128 192 255>;
        };
 
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
        sound {
                #address-cells = <1>;
                #size-cells = <0>;
                clock-names = "mclk";
                assigned-clocks = <&mclk>;
                assigned-clock-rates = <1250000>;
+               AVDD-supply = <&reg_3p3v>;
+               CPVDD-supply = <&reg_3p3v>;
+               DBVDD-supply = <&reg_3p3v>;
+               DCVDD-supply = <&reg_3p3v>;
+               MICVDD-supply = <&reg_3p3v>;
        };
 };
 
index acf293310f7a099614c0339ff2a3cf3eae93e453..7d172d7e5737c4b6e42ee88676c5763fa7415260 100644 (file)
                };
        };
 
-       reboot {
-               compatible = "syscon-reboot";
-               regmap = <&rst>;
-               offset = <0>;
-               mask = <0x02>;
-       };
-
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
                its: msi-controller@6020000 {
                        compatible = "arm,gic-v3-its";
                        msi-controller;
+                       #msi-cells = <1>;
                        reg = <0x0 0x06020000 0 0x20000>;/* GIC Translater */
                };
        };
                        };
                };
 
-               rst: syscon@1e60000 {
-                       compatible = "syscon";
+               syscon@1e60000 {
+                       compatible = "fsl,ls1028a-reset", "syscon", "simple-mfd";
                        reg = <0x0 0x1e60000 0x0 0x10000>;
                        little-endian;
+
+                       reboot {
+                               compatible = "syscon-reboot";
+                               offset = <0>;
+                               mask = <0x02>;
+                       };
                };
 
                sfp: efuse@1e80000 {
                        dmas = <&edma0 0 62>, <&edma0 0 60>;
                        dma-names = "tx", "rx";
                        spi-num-chipselects = <4>;
-                       little-endian;
                        status = "disabled";
                };
 
                        dmas = <&edma0 0 58>, <&edma0 0 56>;
                        dma-names = "tx", "rx";
                        spi-num-chipselects = <4>;
-                       little-endian;
                        status = "disabled";
                };
 
                        dmas = <&edma0 0 54>, <&edma0 0 2>;
                        dma-names = "tx", "rx";
                        spi-num-chipselects = <3>;
-                       little-endian;
                        status = "disabled";
                };
 
                        bus-range = <0x0 0xff>;
                        ranges = <0x81000000 0x0 0x00000000 0x80 0x00010000 0x0 0x00010000   /* downstream I/O */
                                  0x82000000 0x0 0x40000000 0x80 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
                        bus-range = <0x0 0xff>;
                        ranges = <0x81000000 0x0 0x00000000 0x88 0x00010000 0x0 0x00010000   /* downstream I/O */
                                  0x82000000 0x0 0x40000000 0x88 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
                        reg = <0x01 0xf0000000 0x0 0x100000>;
                        #address-cells = <3>;
                        #size-cells = <2>;
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        device_type = "pci";
                        bus-range = <0x0 0x0>;
                        dma-coherent;
                        status = "disabled";
                };
 
-               rcpm: power-controller@1e34040 {
+               rcpm: wakeup-controller@1e34040 {
                        compatible = "fsl,ls1028a-rcpm", "fsl,qoriq-rcpm-2.1+";
                        reg = <0x0 0x1e34040 0x0 0x1c>;
                        #fsl,rcpm-wakeup-cells = <7>;
index 5c4d7eef8b615ab8ff4f4c5dfcc8a1b8e2944878..ca7cd7a33c017eb379b38cf6c16fdc6ab848757e 100644 (file)
@@ -29,6 +29,7 @@
 
        enet1: ethernet@e2000 {
                pcsphy-handle = <&pcsphy1>, <&qsgmiib_pcs1>;
+               pcs-handle = <&pcsphy1>, <&qsgmiib_pcs1>;
                pcs-handle-names = "sgmii", "qsgmii";
        };
 
 
        enet4: ethernet@e8000 {
                pcsphy-handle = <&pcsphy4>, <&qsgmiib_pcs2>;
+               pcs-handle = <&pcsphy4>, <&qsgmiib_pcs2>;
                pcs-handle-names = "sgmii", "qsgmii";
        };
 
        enet5: ethernet@ea000 {
                pcsphy-handle = <&pcsphy5>, <&qsgmiib_pcs3>;
+               pcs-handle = <&pcsphy5>, <&qsgmiib_pcs3>;
                pcs-handle-names = "sgmii", "qsgmii";
        };
 
index 11b1356e95d5bf2888593ed903907aa719426e68..e850551b16acb53589212e8a7be2ec81493d6b78 100644 (file)
 };
 
 &fpga {
-       mdio-mux-emi1@54 {
+       mdio-mux@54 {
                compatible = "mdio-mux-mmioreg", "mdio-mux";
                mdio-parent-bus = <&mdio0>;
                #address-cells = <1>;
index ab4c919e3e1659b38d799211e59008bd9c0ce833..c0e3e8fa1e79473ab0ae76f0cb89e40fc076b55d 100644 (file)
                        clock-frequency = <0>;
                        voltage-ranges = <1800 1800 3300 3300>;
                        sdhci,auto-cmd12;
-                       big-endian;
                        bus-width = <4>;
                };
 
                        compatible = "fsl,qoriq-memory-controller";
                        reg = <0x0 0x1080000 0x0 0x1000>;
                        interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
-                       big-endian;
                };
 
                tmu: tmu@1f00000 {
                        #interrupt-cells = <2>;
                };
 
-               uqe: uqe@2400000 {
+               uqe: uqe-bus@2400000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        compatible = "fsl,qe", "simple-bus";
                        qeic: qeic@80 {
                                compatible = "fsl,qe-ic";
                                reg = <0x80 0x80>;
-                               #address-cells = <0>;
                                interrupt-controller;
                                #interrupt-cells = <1>;
                                interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
                        };
 
                        si1: si@700 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
                                compatible = "fsl,ls1043-qe-si",
                                                "fsl,t1040-qe-si";
                                reg = <0x700 0x80>;
                        };
 
                        siram1: siram@1000 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
                                compatible = "fsl,ls1043-qe-siram",
                                                "fsl,t1040-qe-siram";
                                reg = <0x1000 0x800>;
                                            QORIQ_CLK_PLL_DIV(1)>;
                };
 
-               aux_bus: aux-bus {
+               aux_bus: bus {
                        #address-cells = <2>;
                        #size-cells = <2>;
                        compatible = "simple-bus";
                };
 
                qdma: dma-controller@8380000 {
-                       compatible = "fsl,ls1021a-qdma", "fsl,ls1043a-qdma";
+                       compatible = "fsl,ls1043a-qdma", "fsl,ls1021a-qdma";
                        reg = <0x0 0x8380000 0x0 0x1000>, /* Controller regs */
                              <0x0 0x8390000 0x0 0x10000>, /* Status regs */
                              <0x0 0x83a0000 0x0 0x40000>; /* Block regs */
                        big-endian;
                };
 
-               rcpm: power-controller@1ee2140 {
+               rcpm: wakeup-controller@1ee2140 {
                        compatible = "fsl,ls1043a-rcpm", "fsl,qoriq-rcpm-2.1+";
                        reg = <0x0 0x1ee2140 0x0 0x4>;
                        #fsl,rcpm-wakeup-cells = <1>;
index 4e33450939436f6134d8c028e4976b1fc99a31df..15ff7c569d288f8e265bd01143c94ae177c5be3f 100644 (file)
@@ -24,6 +24,7 @@
        /* these aliases provide the FMan ports mapping */
        enet0: ethernet@e0000 {
                pcsphy-handle = <&qsgmiib_pcs3>;
+               pcs-handle = <&qsgmiib_pcs3>;
                pcs-handle-names = "qsgmii";
        };
 
 
        enet4: ethernet@e8000 {
                pcsphy-handle = <&pcsphy4>, <&qsgmiib_pcs1>;
+               pcs-handle = <&pcsphy4>, <&qsgmiib_pcs1>;
                pcs-handle-names = "sgmii", "qsgmii";
        };
 
        enet5: ethernet@ea000 {
                pcsphy-handle = <&pcsphy5>, <&pcsphy5>;
+               pcs-handle = <&pcsphy5>, <&pcsphy5>;
                pcs-handle-names = "sgmii", "qsgmii";
        };
 
@@ -51,6 +54,7 @@
 
        enet7: ethernet@f2000 {
                pcsphy-handle = <&pcsphy7>, <&qsgmiib_pcs2>, <&pcsphy7>;
+               pcs-handle = <&pcsphy7>, <&qsgmiib_pcs2>, <&pcsphy7>;
                pcs-handle-names = "sgmii", "qsgmii", "xfi";
        };
 
index e5296e51f656fef17c441052b8159c44e01ce6df..a1d9102ff32be97b0e3599545764a6cb36b0b997 100644 (file)
        #address-cells = <1>;
        #size-cells = <1>;
 
-       mdio-mux-emi1 {
+       mdio-mux@54 {
                compatible = "mdio-mux-mmioreg", "mdio-mux";
                mdio-parent-bus = <&mdio0>;
                #address-cells = <1>;
index 55019866d6a25b3369eb8a3761032176c0e57088..0baf256b44003f83dd89e8c710c6911a3f7c3121 100644 (file)
                        compatible = "fsl,qoriq-memory-controller";
                        reg = <0x0 0x1080000 0x0 0x1000>;
                        interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
-                       big-endian;
                };
 
                ifc: memory-controller@1530000 {
                        clocks = <&clockgen QORIQ_CLK_HWACCEL 1>;
                        voltage-ranges = <1800 1800 3300 3300>;
                        sdhci,auto-cmd12;
-                       big-endian;
                        bus-width = <4>;
                };
 
                        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(2)>;
-                       big-endian;
                };
 
                edma0: dma-controller@2c00000 {
                                            QORIQ_CLK_PLL_DIV(2)>;
                };
 
-               aux_bus: aux-bus {
+               aux_bus: bus {
                        #address-cells = <2>;
                        #size-cells = <2>;
                        compatible = "simple-bus";
                };
 
                pcie_ep1: pcie_ep@3400000 {
-                       compatible = "fsl,ls1046a-pcie-ep","fsl,ls-pcie-ep";
+                       compatible = "fsl,ls1046a-pcie-ep";
                        reg = <0x00 0x03400000 0x0 0x00100000>,
                              <0x40 0x00000000 0x8 0x00000000>;
                        reg-names = "regs", "addr_space";
                };
 
                pcie_ep2: pcie_ep@3500000 {
-                       compatible = "fsl,ls1046a-pcie-ep","fsl,ls-pcie-ep";
+                       compatible = "fsl,ls1046a-pcie-ep";
                        reg = <0x00 0x03500000 0x0 0x00100000>,
                              <0x48 0x00000000 0x8 0x00000000>;
                        reg-names = "regs", "addr_space";
                };
 
                pcie_ep3: pcie_ep@3600000 {
-                       compatible = "fsl,ls1046a-pcie-ep", "fsl,ls-pcie-ep";
+                       compatible = "fsl,ls1046a-pcie-ep";
                        reg = <0x00 0x03600000 0x0 0x00100000>,
                              <0x50 0x00000000 0x8 0x00000000>;
                        reg-names = "regs", "addr_space";
                        big-endian;
                };
 
-               rcpm: power-controller@1ee2140 {
+               rcpm: wakeup-controller@1ee2140 {
                        compatible = "fsl,ls1046a-rcpm", "fsl,qoriq-rcpm-2.1+";
                        reg = <0x0 0x1ee2140 0x0 0x4>;
                        #fsl,rcpm-wakeup-cells = <1>;
index ee8e932628d17f1928a5bed57bbb871566ed291d..2df16bfb901c2ecfd2ae1cf1dd277136392657b8 100644 (file)
                                /* IRQ_RTC_B -> IRQ0_B(CPLD) -> IRQ00(CPU), active low */
                                interrupts-extended = <&extirq 0 IRQ_TYPE_LEVEL_LOW>;
                        };
+
+                       rtc@53 {
+                               compatible = "nxp,pcf2131";
+                               reg = <0x53>;
+                               /* IRQ_RTC_B -> IRQ0_B(CPLD) -> IRQ00(CPU), active low */
+                               interrupts-extended = <&extirq 0 IRQ_TYPE_LEVEL_LOW>;
+                       };
                };
        };
 };
index d4867d6cf47cdc79a8a8ebf507b96e7e0683717d..bc0d89427fbe5ae0e69544d64cdc0aeefe87c59a 100644 (file)
                #gpio-cells = <2>;
                gpio-controller;
 
-               admin_led_lower {
+               admin-led-lower-hog {
                        gpio-hog;
                        gpios = <13 GPIO_ACTIVE_HIGH>;
                        output-low;
                                reg = <0x580000 0x40000>;
                        };
 
-                       partition@5C0000 {
+                       partition@5c0000 {
                                label = "dpc";
-                               reg = <0x5C0000 0x40000>;
+                               reg = <0x5c0000 0x40000>;
                        };
 
                        partition@600000 {
index e3a7db21fe29a30b529950c9a121bf9362be8819..9d5726378aa015eff10578bf095908a58b9d9eee 100644 (file)
                its: msi-controller@6020000 {
                        compatible = "arm,gic-v3-its";
                        msi-controller;
+                       #msi-cells = <1>;
                        reg = <0x0 0x6020000 0 0x20000>;
                };
        };
                        bus-range = <0x0 0xff>;
                        ranges = <0x81000000 0x0 0x00000000 0x20 0x00010000 0x0 0x00010000   /* downstream I/O */
                                  0x82000000 0x0 0x40000000 0x20 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 0 109 IRQ_TYPE_LEVEL_HIGH>,
                };
 
                pcie_ep1: pcie-ep@3400000 {
-                       compatible = "fsl,ls1088a-pcie-ep", "fsl,ls-pcie-ep";
+                       compatible = "fsl,ls1088a-pcie-ep";
                        reg = <0x00 0x03400000 0x0 0x00100000>,
                              <0x20 0x00000000 0x8 0x00000000>;
                        reg-names = "regs", "addr_space";
                        bus-range = <0x0 0xff>;
                        ranges = <0x81000000 0x0 0x00000000 0x28 0x00010000 0x0 0x00010000   /* downstream I/O */
                                  0x82000000 0x0 0x40000000 0x28 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 0 114 IRQ_TYPE_LEVEL_HIGH>,
                };
 
                pcie_ep2: pcie-ep@3500000 {
-                       compatible = "fsl,ls1088a-pcie-ep", "fsl,ls-pcie-ep";
+                       compatible = "fsl,ls1088a-pcie-ep";
                        reg = <0x00 0x03500000 0x0 0x00100000>,
                              <0x28 0x00000000 0x8 0x00000000>;
                        reg-names = "regs", "addr_space";
                        bus-range = <0x0 0xff>;
                        ranges = <0x81000000 0x0 0x00000000 0x30 0x00010000 0x0 0x00010000   /* downstream I/O */
                                  0x82000000 0x0 0x40000000 0x30 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 0 119 IRQ_TYPE_LEVEL_HIGH>,
                };
 
                pcie_ep3: pcie-ep@3600000 {
-                       compatible = "fsl,ls1088a-pcie-ep", "fsl,ls-pcie-ep";
+                       compatible = "fsl,ls1088a-pcie-ep";
                        reg = <0x00 0x03600000 0x0 0x00100000>,
                              <0x30 0x00000000 0x8 0x00000000>;
                        reg-names = "regs", "addr_space";
                        compatible = "fsl,qoriq-mc";
                        reg = <0x00000008 0x0c000000 0 0x40>,    /* MC portal base */
                              <0x00000000 0x08340000 0 0x40000>; /* MC control reg */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        iommu-map = <0 &smmu 0 0>;      /* This is fixed-up by u-boot */
                        dma-coherent;
                        #address-cells = <3>;
                        };
                };
 
-               rcpm: power-controller@1e34040 {
+               rcpm: wakeup-controller@1e34040 {
                        compatible = "fsl,ls1088a-rcpm", "fsl,qoriq-rcpm-2.1+";
                        reg = <0x0 0x1e34040 0x0 0x18>;
                        #fsl,rcpm-wakeup-cells = <6>;
index 9178cd61c78691b6553e2a99ee65e56ee6baa745..556d8c5f3180a954f607e8cfa5a663dad037ca9f 100644 (file)
@@ -64,7 +64,7 @@
                reg = <3 0 0x1000>;
                ranges = <0 3 0 0x1000>;
 
-               mdio-mux-emi1@54 {
+               mdio-mux@54 {
                        compatible = "mdio-mux-mmioreg", "mdio-mux";
                        mdio-parent-bus = <&emdio1>;
                        reg = <0x54 1>;         /* BRDCFG4 */
index 1b306d6802ce3dc30c121c062a7a9936f21de361..9421fdd7e30e3524225220f215420097a0d5f67a 100644 (file)
                its: msi-controller@6020000 {
                        compatible = "arm,gic-v3-its";
                        msi-controller;
+                       #msi-cells = <1>;
                        reg = <0x0 0x6020000 0 0x20000>;
                };
        };
 
        rstcr: syscon@1e60000 {
-               compatible = "fsl,ls2080a-rstcr", "syscon";
+               compatible = "fsl,ls1028a-reset", "syscon", "simple-mfd";
                reg = <0x0 0x1e60000 0x0 0x4>;
-       };
 
-       reboot {
-               compatible = "syscon-reboot";
-               regmap = <&rstcr>;
-               offset = <0x0>;
-               mask = <0x2>;
+               reboot {
+                       compatible = "syscon-reboot";
+                       offset = <0x0>;
+                       mask = <0x2>;
+               };
        };
 
        thermal-zones {
                        compatible = "fsl,qoriq-mc";
                        reg = <0x00000008 0x0c000000 0 0x40>,    /* MC portal base */
                              <0x00000000 0x08340000 0 0x40000>; /* MC control reg */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        iommu-map = <0 &smmu 0 0>;      /* This is fixed-up by u-boot */
                        dma-coherent;
                        #address-cells = <3>;
                };
 
                pcie1: pcie@3400000 {
-                       compatible = "fsl,ls2080a-pcie", "fsl,ls2085a-pcie";
+                       compatible = "fsl,ls2080a-pcie";
                        reg-names = "regs", "config";
                        interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "intr";
                        dma-coherent;
                        num-viewport = <6>;
                        bus-range = <0x0 0xff>;
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 0 109 4>,
                };
 
                pcie2: pcie@3500000 {
-                       compatible = "fsl,ls2080a-pcie", "fsl,ls2085a-pcie";
+                       compatible = "fsl,ls2080a-pcie";
                        reg-names = "regs", "config";
                        interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "intr";
                        dma-coherent;
                        num-viewport = <6>;
                        bus-range = <0x0 0xff>;
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 0 114 4>,
                };
 
                pcie3: pcie@3600000 {
-                       compatible = "fsl,ls2080a-pcie", "fsl,ls2085a-pcie";
+                       compatible = "fsl,ls2080a-pcie";
                        reg-names = "regs", "config";
                        interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "intr";
                        dma-coherent;
                        num-viewport = <256>;
                        bus-range = <0x0 0xff>;
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 0 119 4>,
                };
 
                pcie4: pcie@3700000 {
-                       compatible = "fsl,ls2080a-pcie", "fsl,ls2085a-pcie";
+                       compatible = "fsl,ls2080a-pcie";
                        reg-names = "regs", "config";
                        interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "intr";
                        dma-coherent;
                        num-viewport = <6>;
                        bus-range = <0x0 0xff>;
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 0 124 4>,
                        interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
                };
 
-               rcpm: power-controller@1e34040 {
+               rcpm: wakeup-controller@1e34040 {
                        compatible = "fsl,ls208xa-rcpm", "fsl,qoriq-rcpm-2.1+";
                        reg = <0x0 0x1e34040 0x0 0x18>;
                        #fsl,rcpm-wakeup-cells = <6>;
index da0f58e26b9aae56527763187735a330e2dbd152..f6a4f8d5430156203e558df5d8ca6174dc81b7f9 100644 (file)
                reg = <1>;
                peer-hub = <&hub_3_0>;
                reset-gpios = <&gpioex1 0 GPIO_ACTIVE_LOW>;
-               vcc-supply = <&reg_vcc3v3>;
+               vdd-supply = <&reg_vcc3v3>;
        };
 
        hub_3_0: hub@2 {
                reg = <2>;
                peer-hub = <&hub_2_0>;
                reset-gpios = <&gpioex1 0 GPIO_ACTIVE_LOW>;
-               vcc-supply = <&reg_vcc3v3>;
+               vdd-supply = <&reg_vcc3v3>;
        };
 };
 
index bd75a658767ddf9fb52cb0ae511cc391bd376873..927ecf66a740422e7cff198fe23bd7ff1e723025 100644 (file)
                its: msi-controller@6020000 {
                        compatible = "arm,gic-v3-its";
                        msi-controller;
+                       #msi-cells = <1>;
                        reg = <0x0 0x6020000 0 0x20000>;
                };
        };
                        timeout-sec = <30>;
                };
 
-               rcpm: power-controller@1e34040 {
+               rcpm: wakeup-controller@1e34040 {
                        compatible = "fsl,lx2160a-rcpm", "fsl,qoriq-rcpm-2.1+";
                        reg = <0x0 0x1e34040 0x0 0x1c>;
                        #fsl,rcpm-wakeup-cells = <7>;
                        ppio-wins = <8>;
                        bus-range = <0x0 0xff>;
                        ranges = <0x82000000 0x0 0x40000000 0x80 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
                        ppio-wins = <8>;
                        bus-range = <0x0 0xff>;
                        ranges = <0x82000000 0x0 0x40000000 0x88 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
                        ppio-wins = <24>;
                        bus-range = <0x0 0xff>;
                        ranges = <0x82000000 0x0 0x40000000 0x90 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
                        ppio-wins = <8>;
                        bus-range = <0x0 0xff>;
                        ranges = <0x82000000 0x0 0x40000000 0x98 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
                        ppio-wins = <24>;
                        bus-range = <0x0 0xff>;
                        ranges = <0x82000000 0x0 0x40000000 0xa0 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
                        ppio-wins = <8>;
                        bus-range = <0x0 0xff>;
                        ranges = <0x82000000 0x0 0x40000000 0xa8 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0000 0 0 1 &gic 0 0 GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
                        compatible = "fsl,qoriq-mc";
                        reg = <0x00000008 0x0c000000 0 0x40>,
                              <0x00000000 0x08340000 0 0x40000>;
-                       msi-parent = <&its>;
+                       msi-parent = <&its 0>;
                        /* iommu-map property is fixed up by u-boot */
                        iommu-map = <0 &smmu 0 0>;
                        dma-coherent;
index f7a91d43a0ffe10e85e2b1e71ff6751c314b6ef7..575be8115e427e5eca1635af08dfe3450048a2b6 100644 (file)
@@ -34,6 +34,8 @@ dma_subsys: bus@5a000000 {
                assigned-clocks = <&clk IMX_SC_R_SPI_0 IMX_SC_PM_CLK_PER>;
                assigned-clock-rates = <60000000>;
                power-domains = <&pd IMX_SC_R_SPI_0>;
+               dmas = <&edma2 1 0 0>, <&edma2 0 0 FSL_EDMA_RX>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
@@ -50,6 +52,8 @@ dma_subsys: bus@5a000000 {
                assigned-clocks = <&clk IMX_SC_R_SPI_1 IMX_SC_PM_CLK_PER>;
                assigned-clock-rates = <60000000>;
                power-domains = <&pd IMX_SC_R_SPI_1>;
+               dmas = <&edma2 3 0 0>, <&edma2 2 0 FSL_EDMA_RX>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
@@ -66,6 +70,8 @@ dma_subsys: bus@5a000000 {
                assigned-clocks = <&clk IMX_SC_R_SPI_2 IMX_SC_PM_CLK_PER>;
                assigned-clock-rates = <60000000>;
                power-domains = <&pd IMX_SC_R_SPI_2>;
+               dmas = <&edma2 5 0 0>, <&edma2 4 0 FSL_EDMA_RX>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
@@ -82,6 +88,8 @@ dma_subsys: bus@5a000000 {
                assigned-clocks = <&clk IMX_SC_R_SPI_3 IMX_SC_PM_CLK_PER>;
                assigned-clock-rates = <60000000>;
                power-domains = <&pd IMX_SC_R_SPI_3>;
+               dmas = <&edma2 7 0 0>, <&edma2 6 0 FSL_EDMA_RX>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
@@ -303,6 +311,8 @@ dma_subsys: bus@5a000000 {
 
        i2c0: i2c@5a800000 {
                reg = <0x5a800000 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
                interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&i2c0_lpcg IMX_LPCG_CLK_0>,
                         <&i2c0_lpcg IMX_LPCG_CLK_4>;
@@ -315,6 +325,8 @@ dma_subsys: bus@5a000000 {
 
        i2c1: i2c@5a810000 {
                reg = <0x5a810000 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
                interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&i2c1_lpcg IMX_LPCG_CLK_0>,
                         <&i2c1_lpcg IMX_LPCG_CLK_4>;
@@ -327,6 +339,8 @@ dma_subsys: bus@5a000000 {
 
        i2c2: i2c@5a820000 {
                reg = <0x5a820000 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
                interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&i2c2_lpcg IMX_LPCG_CLK_0>,
                         <&i2c2_lpcg IMX_LPCG_CLK_4>;
@@ -339,6 +353,8 @@ dma_subsys: bus@5a000000 {
 
        i2c3: i2c@5a830000 {
                reg = <0x5a830000 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
                interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&i2c3_lpcg IMX_LPCG_CLK_0>,
                         <&i2c3_lpcg IMX_LPCG_CLK_4>;
@@ -362,7 +378,7 @@ dma_subsys: bus@5a000000 {
                assigned-clock-rates = <24000000>;
                power-domains = <&pd IMX_SC_R_ADC_0>;
                status = "disabled";
-        };
+       };
 
        adc1: adc@5a890000 {
                compatible = "nxp,imx8qxp-adc";
index 77d2928997b4be51a08ab2f0919dd707c21a5274..d39242c1b9f7955889d19869dcbe49c1e9b026ec 100644 (file)
@@ -26,7 +26,6 @@ img_subsys: bus@58000000 {
                assigned-clock-rates = <200000000>, <200000000>;
                power-domains = <&pd IMX_SC_R_MJPEG_DEC_MP>,
                                <&pd IMX_SC_R_MJPEG_DEC_S0>;
-               slot = <0>;
        };
 
        jpegenc: jpegenc@58450000 {
@@ -39,7 +38,6 @@ img_subsys: bus@58000000 {
                assigned-clock-rates = <200000000>, <200000000>;
                power-domains = <&pd IMX_SC_R_MJPEG_ENC_MP>,
                                <&pd IMX_SC_R_MJPEG_ENC_S0>;
-               slot = <0>;
        };
 
        img_jpeg_dec_lpcg: clock-controller@585d0000 {
diff --git a/src/arm64/freescale/imx8-ss-lvds0.dtsi b/src/arm64/freescale/imx8-ss-lvds0.dtsi
new file mode 100644 (file)
index 0000000..dad0dc8
--- /dev/null
@@ -0,0 +1,63 @@
+// SPDX-License-Identifier: GPL-2.0-only and MIT
+
+/*
+ * Copyright 2024 NXP
+ */
+
+lvds0_subsys: bus@56240000 {
+       compatible = "simple-bus";
+       #address-cells = <1>;
+       #size-cells = <1>;
+       ranges = <0x56240000 0x0 0x56240000 0x10000>;
+
+       qm_lvds0_lis_lpcg: qxp_mipi1_lis_lpcg: clock-controller@56243000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x56243000 0x4>;
+               #clock-cells = <1>;
+               clock-output-names = "lvds0_lis_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_1>;
+       };
+
+       qm_lvds0_pwm_lpcg: qxp_mipi1_pwm_lpcg: clock-controller@5624300c {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x5624300c 0x4>;
+               #clock-cells = <1>;
+               clock-output-names = "lvds0_pwm_lpcg_clk",
+                                    "lvds0_pwm_lpcg_ipg_clk",
+                                    "lvds0_pwm_lpcg_32k_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_1_PWM_0>;
+       };
+
+       qm_lvds0_i2c0_lpcg: qxp_mipi1_i2c0_lpcg: clock-controller@56243010 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x56243010 0x4>;
+               #clock-cells = <1>;
+               clock-output-names = "lvds0_i2c0_lpcg_clk",
+                                    "lvds0_i2c0_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_1_I2C_0>;
+       };
+
+       qm_pwm_lvds0: qxp_pwm_mipi_lvds1: pwm@56244000 {
+               compatible = "fsl,imx8qxp-pwm", "fsl,imx27-pwm";
+               reg = <0x56244000 0x1000>;
+               clock-names = "ipg", "per";
+               assigned-clocks = <&clk IMX_SC_R_MIPI_1_PWM_0 IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               #pwm-cells = <3>;
+               power-domains = <&pd IMX_SC_R_MIPI_1_PWM_0>;
+               status = "disabled";
+       };
+
+       qm_i2c0_lvds0: qxp_i2c0_mipi_lvds1: i2c@56246000 {
+               compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c";
+               reg = <0x56246000 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <8>;
+               clock-names = "per", "ipg";
+               assigned-clocks = <&clk IMX_SC_R_MIPI_1_I2C_0 IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               power-domains = <&pd IMX_SC_R_MIPI_1_I2C_0>;
+               status = "disabled";
+       };
+};
diff --git a/src/arm64/freescale/imx8-ss-lvds1.dtsi b/src/arm64/freescale/imx8-ss-lvds1.dtsi
new file mode 100644 (file)
index 0000000..12ae4f4
--- /dev/null
@@ -0,0 +1,114 @@
+// SPDX-License-Identifier: GPL-2.0-only and MIT
+
+/*
+ * Copyright 2024 NXP
+ */
+
+lvds1_subsys: bus@57240000 {
+       compatible = "simple-bus";
+       interrupt-parent = <&irqsteer_lvds1>;
+       #address-cells = <1>;
+       #size-cells = <1>;
+       ranges = <0x57240000 0x0 0x57240000 0x10000>;
+
+       irqsteer_lvds1: interrupt-controller@57240000 {
+               compatible = "fsl,imx8qm-irqsteer", "fsl,imx-irqsteer";
+               reg = <0x57240000 0x1000>;
+               interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-controller;
+               interrupt-parent = <&gic>;
+               #interrupt-cells = <1>;
+               clocks = <&lvds1_lis_lpcg IMX_LPCG_CLK_4>;
+               clock-names = "ipg";
+               power-domains = <&pd IMX_SC_R_LVDS_1>;
+               fsl,channel = <0>;
+               fsl,num-irqs = <32>;
+       };
+
+       lvds1_lis_lpcg: clock-controller@57243000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x57243000 0x4>;
+               #clock-cells = <1>;
+               clocks = <&lvds_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_4>;
+               clock-output-names = "lvds1_lis_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_LVDS_1>;
+       };
+
+       lvds1_pwm_lpcg: clock-controller@5724300c {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x5724300c 0x4>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_LVDS_1_PWM_0 IMX_SC_PM_CLK_PER>,
+                        <&lvds_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "lvds1_pwm_lpcg_clk",
+                                    "lvds1_pwm_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_LVDS_1_PWM_0>;
+       };
+
+       lvds1_i2c0_lpcg: clock-controller@57243010 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x57243010 0x4>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_LVDS_1_I2C_0 IMX_SC_PM_CLK_PER>,
+                        <&lvds_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "lvds1_i2c0_lpcg_clk",
+                                    "lvds1_i2c0_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_LVDS_1_I2C_0>;
+       };
+
+       lvds1_i2c1_lpcg: clock-controller@57243014 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x57243014 0x4>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_LVDS_1_I2C_0 IMX_SC_PM_CLK_PER>,
+                        <&lvds_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "lvds1_i2c1_lpcg_clk",
+                                    "lvds1_i2c1_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_LVDS_1_I2C_0>;
+       };
+
+       pwm_lvds1: pwm@57244000 {
+               compatible = "fsl,imx8qxp-pwm", "fsl,imx27-pwm";
+               reg = <0x57244000 0x1000>;
+               clocks = <&lvds1_pwm_lpcg IMX_LPCG_CLK_4>,
+                        <&lvds1_pwm_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "ipg", "per";
+               assigned-clocks = <&clk IMX_SC_R_LVDS_1_PWM_0 IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               #pwm-cells = <3>;
+               power-domains = <&pd IMX_SC_R_LVDS_1_PWM_0>;
+               status = "disabled";
+       };
+
+       i2c0_lvds1: i2c@57246000 {
+               compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
+               reg = <0x57246000 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <8>;
+               clocks = <&lvds1_i2c0_lpcg IMX_LPCG_CLK_0>,
+                        <&lvds1_i2c0_lpcg IMX_LPCG_CLK_4>;
+               clock-names = "per", "ipg";
+               assigned-clocks = <&clk IMX_SC_R_LVDS_1_I2C_0 IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               power-domains = <&pd IMX_SC_R_LVDS_1_I2C_0>;
+               status = "disabled";
+       };
+
+       i2c1_lvds1: i2c@57247000 {
+               compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
+               reg = <0x57247000 0x1000>;
+               interrupts = <9>;
+               clocks = <&lvds1_i2c1_lpcg IMX_LPCG_CLK_0>,
+                        <&lvds1_i2c1_lpcg IMX_LPCG_CLK_4>;
+               clock-names = "per", "ipg";
+               assigned-clocks = <&clk IMX_SC_R_LVDS_1_I2C_0 IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               power-domains = <&pd IMX_SC_R_LVDS_1_I2C_0>;
+               status = "disabled";
+       };
+};
diff --git a/src/arm64/freescale/imx8-ss-mipi0.dtsi b/src/arm64/freescale/imx8-ss-mipi0.dtsi
new file mode 100644 (file)
index 0000000..9c5b0cb
--- /dev/null
@@ -0,0 +1,129 @@
+// SPDX-License-Identifier: GPL-2.0-only and MIT
+
+/*
+ * Copyright 2024 NXP
+ */
+
+mipi0_subsys: bus@56220000 {
+       compatible = "simple-bus";
+       interrupt-parent = <&irqsteer_mipi0>;
+       #address-cells = <1>;
+       #size-cells = <1>;
+       ranges = <0x56220000 0x0 0x56220000 0x10000>;
+
+       irqsteer_mipi0: interrupt-controller@56220000 {
+               compatible = "fsl,imx8qxp-irqsteer", "fsl,imx-irqsteer";
+               reg = <0x56220000 0x1000>;
+               interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-controller;
+               interrupt-parent = <&gic>;
+               #interrupt-cells = <1>;
+               clocks = <&mipi0_lis_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "ipg";
+               power-domains = <&pd IMX_SC_R_MIPI_0>;
+               fsl,channel = <0>;
+               fsl,num-irqs = <32>;
+       };
+
+       mipi0_lis_lpcg: clock-controller@56223000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x56223000 0x4>;
+               #clock-cells = <1>;
+               power-domains = <&pd IMX_SC_R_MIPI_0>;
+       };
+
+       mipi0_pwm_lpcg: clock-controller@5622300c {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x5622300c 0x4>;
+               #clock-cells = <1>;
+               power-domains = <&pd IMX_SC_R_MIPI_0_PWM_0>;
+       };
+
+       mipi0_i2c0_lpcg_ipg_clk: clock-controller@56223014 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x56223014 0x4>;
+               #clock-cells = <1>;
+               clocks = <&mipi0_i2c0_lpcg_ipg_s_clk IMX_LPCG_CLK_0>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi0_i2c0_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_0_I2C_0>;
+       };
+
+       mipi0_i2c0_lpcg_ipg_s_clk: clock-controller@56223018 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x56223018 0x4>;
+               #clock-cells = <1>;
+               clocks = <&dsi_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi0_i2c0_lpcg_ipg_s_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_0_I2C_0>;
+       };
+
+       mipi0_i2c0_lpcg_clk: clock-controller@5622301c {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x5622301c 0x4>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_MIPI_0_I2C_0 IMX_SC_PM_CLK_MISC2>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi0_i2c0_lpcg_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_0_I2C_0>;
+       };
+
+       mipi0_i2c1_lpcg_ipg_clk: clock-controller@56223024 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x56223024 0x4>;
+               #clock-cells = <1>;
+               clocks = <&mipi0_i2c1_lpcg_ipg_s_clk IMX_LPCG_CLK_0>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi0_i2c1_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_0_I2C_1>;
+       };
+
+       mipi0_i2c1_lpcg_ipg_s_clk: clock-controller@56223028 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x56223028 0x4>;
+               #clock-cells = <1>;
+               clocks = <&dsi_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi0_i2c1_lpcg_ipg_s_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_0_I2C_1>;
+       };
+
+       mipi0_i2c1_lpcg_clk: clock-controller@5622302c {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x5622302c 0x4>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_MIPI_0_I2C_1 IMX_SC_PM_CLK_MISC2>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi0_i2c1_lpcg_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_0_I2C_1>;
+       };
+
+       pwm_mipi0: pwm@56224000 {
+               compatible = "fsl,imx8qxp-pwm", "fsl,imx27-pwm";
+               reg = <0x56224000 0x1000>;
+               clocks = <&mipi0_pwm_lpcg IMX_LPCG_CLK_4>,
+                        <&mipi0_pwm_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "ipg", "per";
+               assigned-clocks = <&clk IMX_SC_R_MIPI_0_PWM_0 IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               #pwm-cells = <3>;
+               power-domains = <&pd IMX_SC_R_MIPI_0_PWM_0>;
+               status = "disabled";
+       };
+
+       i2c0_mipi0: i2c@56226000 {
+               compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
+               reg = <0x56226000 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <8>;
+               clocks = <&mipi0_i2c0_lpcg_clk IMX_LPCG_CLK_0>,
+                        <&mipi0_i2c0_lpcg_ipg_clk IMX_LPCG_CLK_0>;
+               clock-names = "per", "ipg";
+               assigned-clocks = <&mipi0_i2c0_lpcg_clk IMX_LPCG_CLK_0>;
+               assigned-clock-rates = <24000000>;
+               power-domains = <&pd IMX_SC_R_MIPI_0_I2C_0>;
+               status = "disabled";
+       };
+};
diff --git a/src/arm64/freescale/imx8-ss-mipi1.dtsi b/src/arm64/freescale/imx8-ss-mipi1.dtsi
new file mode 100644 (file)
index 0000000..5b1f08e
--- /dev/null
@@ -0,0 +1,138 @@
+// SPDX-License-Identifier: GPL-2.0-only and MIT
+
+/*
+ * Copyright 2024 NXP
+ */
+
+mipi1_subsys: bus@57220000 {
+       compatible = "simple-bus";
+       interrupt-parent = <&irqsteer_mipi1>;
+       #address-cells = <1>;
+       #size-cells = <1>;
+       ranges = <0x57220000 0x0 0x57220000 0x10000>;
+
+       irqsteer_mipi1: interrupt-controller@57220000 {
+               compatible = "fsl,imx8qm-irqsteer", "fsl,imx-irqsteer";
+               reg = <0x57220000 0x1000>;
+               interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-controller;
+               interrupt-parent = <&gic>;
+               #interrupt-cells = <1>;
+               clocks = <&mipi1_lis_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "ipg";
+               power-domains = <&pd IMX_SC_R_MIPI_1>;
+               fsl,channel = <0>;
+               fsl,num-irqs = <32>;
+       };
+
+       mipi1_lis_lpcg: clock-controller@57223000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x57223000 0x4>;
+               #clock-cells = <1>;
+               clocks = <&dsi_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi1_lis_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_1>;
+       };
+
+       mipi1_pwm_lpcg: clock-controller@5722300c {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x5722300c 0x4>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_MIPI_1_PWM_0 IMX_SC_PM_CLK_PER>,
+                        <&dsi_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "mipi1_pwm_lpcg_clk",
+                                    "mipi1_pwm_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_1_PWM_0>;
+       };
+
+       mipi1_i2c0_lpcg_clk: clock-controller@5722301c {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x5722301c 0x4>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_MIPI_1_I2C_0 IMX_SC_PM_CLK_MISC2>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi1_i2c0_lpcg_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_1_I2C_0>;
+       };
+
+       mipi1_i2c0_lpcg_ipg_clk: clock-controller@57223014 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x57223014 0x4>;
+               #clock-cells = <1>;
+               clocks = <&mipi1_i2c0_lpcg_ipg_s_clk IMX_LPCG_CLK_0>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi1_i2c0_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_1_I2C_0>;
+       };
+
+       mipi1_i2c0_lpcg_ipg_s_clk: clock-controller@57223018 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x57223018 0x4>;
+               #clock-cells = <1>;
+               clocks = <&dsi_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi1_i2c0_lpcg_ipg_s_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_1_I2C_0>;
+       };
+
+       mipi1_i2c1_lpcg_ipg_clk: clock-controller@57223024 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x57223024 0x4>;
+               #clock-cells = <1>;
+               clocks = <&mipi1_i2c1_lpcg_ipg_s_clk IMX_LPCG_CLK_0>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi1_i2c1_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_1_I2C_1>;
+       };
+
+       mipi1_i2c1_lpcg_ipg_s_clk: clock-controller@57223028 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x57223028 0x4>;
+               #clock-cells = <1>;
+               clocks = <&dsi_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi1_i2c1_lpcg_ipg_s_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_1_I2C_1>;
+       };
+
+       mipi1_i2c1_lpcg_clk: clock-controller@5722302c {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x5722302c 0x4>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_MIPI_1_I2C_1 IMX_SC_PM_CLK_MISC2>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "mipi1_i2c1_lpcg_clk";
+               power-domains = <&pd IMX_SC_R_MIPI_1_I2C_1>;
+       };
+
+       pwm_mipi1: pwm@57224000 {
+               compatible = "fsl,imx8qxp-pwm", "fsl,imx27-pwm";
+               reg = <0x57224000 0x1000>;
+               clocks = <&mipi1_pwm_lpcg IMX_LPCG_CLK_4>,
+                        <&mipi1_pwm_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "ipg", "per";
+               assigned-clocks = <&clk IMX_SC_R_MIPI_1_PWM_0 IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               #pwm-cells = <3>;
+               power-domains = <&pd IMX_SC_R_MIPI_1_PWM_0>;
+               status = "disabled";
+       };
+
+       i2c0_mipi1: i2c@57226000 {
+               compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
+               reg = <0x57226000 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <8>;
+               interrupt-parent = <&irqsteer_mipi1>;
+               clocks = <&mipi1_i2c0_lpcg_clk IMX_LPCG_CLK_0>,
+                        <&mipi1_i2c0_lpcg_ipg_clk IMX_LPCG_CLK_0>;
+               clock-names = "per", "ipg";
+               assigned-clocks = <&mipi1_i2c0_lpcg_clk IMX_LPCG_CLK_0>;
+               assigned-clock-rates = <24000000>;
+               power-domains = <&pd IMX_SC_R_MIPI_1_I2C_0>;
+               status = "disabled";
+       };
+};
index c6540768bdb9265f74bf80cab55bfca52eeb68f4..87211c18d65a95cddaba6be4dcb33284940cb685 100644 (file)
@@ -15,7 +15,7 @@ vpu: vpu@2c000000 {
        mu_m0: mailbox@2d000000 {
                compatible = "fsl,imx6sx-mu";
                reg = <0x2d000000 0x20000>;
-               interrupts = <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>;
                #mbox-cells = <2>;
                power-domains = <&pd IMX_SC_R_VPU_MU_0>;
                status = "disabled";
@@ -24,7 +24,7 @@ vpu: vpu@2c000000 {
        mu1_m0: mailbox@2d020000 {
                compatible = "fsl,imx6sx-mu";
                reg = <0x2d020000 0x20000>;
-               interrupts = <GIC_SPI 470 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>;
                #mbox-cells = <2>;
                power-domains = <&pd IMX_SC_R_VPU_MU_1>;
                status = "disabled";
index 66b0fcc6687df3f16fe395019f43608efa1e0398..4d1ad052c5b661a06bb6076c180dbc951ff7d491 100644 (file)
@@ -9,3 +9,14 @@
 / {
        model = "Toradex Colibri iMX8DX Module";
 };
+
+&thermal_zones {
+       pmic-thermal {
+               cooling-maps {
+                       map0 {
+                               cooling-device = <&A35_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                <&A35_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                       };
+               };
+       };
+};
index 1a74ac3ee4ee90355ebc328fd628c53d264aad30..4caaecc1922771bc5b276d7f85cd03871fdfc013 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lpspi3>;
        status = "okay";
-
-       spidev0: spi@0 {
-               reg = <0>;
-               compatible = "rohm,dh2228fv";
-               spi-max-frequency = <30000000>;
-       };
 };
 
 &iomuxc {
index 6086dae2e5fbef37e9a583860b6fa9af57970e76..ea1d5b9c6bae047eb0863d5f492fc49cb68aac9b 100644 (file)
                enable-gpios = <&pca6416_1 2 GPIO_ACTIVE_LOW>;
        };
 
+       reg_1v5: regulator-1v5 {
+               compatible = "regulator-fixed";
+               regulator-name = "1V5";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+       };
+
+       reg_1v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
        reg_audio: regulator-audio {
                compatible = "regulator-fixed";
                regulator-name = "3v3_aud";
                assigned-clock-parents = <&clk IMX8MM_CLK_24M>;
                assigned-clock-rates = <24000000>;
                AVDD-supply = <&reg_camera>;  /* 2.8v */
+               DVDD-supply = <&reg_1v5>;
+               DOVDD-supply = <&reg_1v8>;
                powerdown-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
 
index 905c98cb080d2fc664df1c39759b08eda788086c..97ff1ddd6318882a29b5ac4f9b75fc03ff2a637c 100644 (file)
@@ -62,8 +62,8 @@
                compatible = "adi,adv7535";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_hdmi_bridge>;
-               reg = <0x3d>, <0x3c>, <0x3e>, <0x3f>;
-               reg-names = "main", "cec", "edid", "packet";
+               reg = <0x3d>, <0x3e>, <0x3c>, <0x3f>;
+               reg-names = "main", "edid", "cec", "packet";
                adi,dsi-lanes = <4>;
                avdd-supply = <&reg_hdmi>;
                a2vdd-supply = <&reg_hdmi>;
index b1f2beb40a98f00d8c9a5c003f1530a8e6eb654e..472c584fb3bd294dce18341ce1afc277be1c3825 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_fec1>;
        phy-mode = "rgmii-id";
-       phy-handle = <&fec1_phy>;
+       phy-handle = <&fec1_phy_bcm>;
        phy-supply = <&buck4_reg>;
        fsl,magic-packet;
        status = "okay";
                #size-cells = <0>;
 
                /* Atheros AR8031 PHY */
-               fec1_phy: ethernet-phy@0 {
+               fec1_phy_ath: ethernet-phy@0 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <0>;
                        /*
                        reset-deassert-us = <10000>;
                        qca,keep-pll-enabled;
                        vddio-supply = <&vddio>;
+                       status = "disabled";
 
                        vddio: vddio-regulator {
                                regulator-name = "VDDIO";
                                regulator-name = "VDDH";
                        };
                };
+
+               /* Broadcom BCM54213PE PHY */
+               fec1_phy_bcm: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+                       /*
+                        * Dedicated ENET_INT# and ENET_WOL# signals are
+                        * unused, the PHY does not provide cable detect
+                        * interrupt.
+                        */
+                       reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <10000>;
+               };
        };
 };
 
index 1c4e4d175989e670f33a7c88eaff8df367a4cc85..7d2cb74c64eeeefdb1f13a4390f78bf034c17e93 100644 (file)
        model = "Emtop Embedded Solutions i.MX8M Mini Baseboard V1";
        compatible = "ees,imx8mm-emtop-baseboard", "ees,imx8mm-emtop-som",
                "fsl,imx8mm";
+};
+
+&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@4 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <4>;
+                       reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       vddio-supply = <&vddio>;
+
+                       vddio: vddio-regulator {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+               };
+       };
+};
 
+&iomuxc {
+       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
+                       MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22                0x19
+               >;
+       };
 };
index 930e14fec42370e1be2c05f60c044bc984214ea4..5f8336217bb88b1d0501e6208c936c51ce23b312 100644 (file)
                };
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
+       spdif_in: spdif-in {
+               compatible = "linux,spdif-dir";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx-audio-spdif";
                model = "imx-spdif";
-               spdif-controller = <&spdif1>;
-               spdif-out;
-               spdif-in;
+               audio-cpu = <&spdif1>;
+               audio-codec = <&spdif_out>, <&spdif_in>;
        };
 };
 
index 92e62fe319290b44bc2961ffeb55f5195cbaaea2..5eacbd9611eef35520eaac19854128fc9303a2f8 100644 (file)
 };
 
 &rv3028 {
+       aux-voltage-chargeable = <1>;
        trickle-resistor-ohms = <3000>;
 };
 
index 353ace3601dc8d1d99c04a56f4d25818dc835933..78f4e8d5814daa2f9040c162886ac358872b689b 100644 (file)
 /dts-v1/;
 /plugin/;
 
-&{/} {
-       compatible = "phytec,imx8mm-phygate-tauri-l";
-
-};
-
 &gpio3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gpio3_hog>;
 
-       uart4_rs485_en {
+       uart4-rs485-en-hog {
                gpio-hog;
                gpios = <20 GPIO_ACTIVE_HIGH>;
                output-low;
index 8a75d6783ad2b4fa9a85cdadc4001f5dc7ae6559..66288948bdd39dde1434e3413fab18498dd8f425 100644 (file)
 /dts-v1/;
 /plugin/;
 
-&{/} {
-       compatible = "phytec,imx8mm-phygate-tauri-l";
-
-};
-
 &gpio3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gpio3_hog>;
 
-       uart4_rs485_en {
+       uart4-rs485-en-hog {
                gpio-hog;
                gpios = <20 GPIO_ACTIVE_HIGH>;
                output-high;
index 107f743fbb1c304b9941c41b31a8c90450a6479f..4719f5fbad030773f3924ead5f9f2514558a9ee5 100644 (file)
 /dts-v1/;
 /plugin/;
 
-
-&{/} {
-       compatible = "phytec,imx8mm-phygate-tauri-l";
-
-};
-
 &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
index ba6ce3c7f4779da8f91081083c43459f71cff298..c3835b2d860add974527e881f7000338f86ab26b 100644 (file)
 
 /* RTC */
 &rv3028 {
+       aux-voltage-chargeable = <1>;
        trickle-resistor-ohms = <3000>;
 };
 
index ca0205b9019e6fcd9c0b9a970c8bf8e169ccac37..8f58c84e14c8ebf7132f1c6cd79bfb4039e581f0 100644 (file)
@@ -83,7 +83,6 @@
 };
 
 &i2c1 {
-       clock-frequency = <100000>;
        pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c1>;
        pinctrl-1 = <&pinctrl_i2c1_gpio>;
index d7830df5b6f966e904350841bfeefd8f22bd175f..cdfacbc35db57b654f7b965a513cf04cb4a697b9 100644 (file)
@@ -8,7 +8,6 @@
 
 / {
        model = "Variscite VAR-SOM-MX8MM module";
-       compatible = "variscite,var-som-mx8mm", "fsl,imx8mm";
 
        chosen {
                stdout-path = &uart4;
index 4eaf8aabcbfff92afab96367063088fcc814e64a..c09aa80d2ba23beda3f1c622aaf42db064f2ff6d 100644 (file)
 &{/} {
        compatible = "gw,imx8mm-gw72xx-0x", "fsl,imx8mm";
 
+       reg_vana: regulator-2p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "2P8V";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+       };
+
+       reg_vddl: regulator-1p2v {
+               compatible = "regulator-fixed";
+               regulator-name = "1P2V";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+       };
+
        reg_cam: regulator-cam {
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_reg_cam>;
@@ -45,6 +59,8 @@
                reg = <0x10>;
                clocks = <&cam24m>;
                VDIG-supply = <&reg_cam>;
+               VANA-supply = <&reg_vana>;
+               VDDL-supply = <&reg_vddl>;
 
                port {
                        /* MIPI CSI-2 bus endpoint */
index f6ad1a4b8b6659f2b71c50a76ac572002bcbe0cd..bb2056746f8c9a3b2a93c5959028b280880f6650 100644 (file)
 /dts-v1/;
 /plugin/;
 
-&{/} {
-       compatible = "gw,imx8mm-gw72xx-0x";
-};
-
 &gpio4 {
-       rs485_en {
+       rs485-en-hog {
                gpio-hog;
                gpios = <0 GPIO_ACTIVE_HIGH>;
                output-low;
index c3cd9f2b0db342e15e1e65b595f08ac6e497aec2..45ac8bdce86995a52e4161997c5ed12cb4373142 100644 (file)
 /dts-v1/;
 /plugin/;
 
-&{/} {
-       compatible = "gw,imx8mm-gw72xx-0x";
-};
-
 &gpio4 {
-       rs485_en {
+       rs485-en-hog {
                gpio-hog;
                gpios = <0 GPIO_ACTIVE_HIGH>;
                output-high;
                line-name = "rs485_en";
        };
 
-       rs485_hd {
+       rs485-hd-hog {
                gpio-hog;
                gpios = <2 GPIO_ACTIVE_HIGH>;
                output-low;
index cc0a287226ab8f2b2677a8dfebae8b6c91be5ecf..30aa620d7004dd83b41dda568b2b96f90a31abdf 100644 (file)
 /dts-v1/;
 /plugin/;
 
-&{/} {
-       compatible = "gw,imx8mm-gw72xx-0x";
-};
-
 &gpio4 {
-       rs485_en {
+       rs485-en-hog {
                gpio-hog;
                gpios = <0 GPIO_ACTIVE_HIGH>;
                output-high;
                line-name = "rs485_en";
        };
 
-       rs485_hd {
+       rs485-hd-hog {
                gpio-hog;
                gpios = <2 GPIO_ACTIVE_HIGH>;
                output-high;
index f3ece4b7fbbded54ccd68e43f66a449d7e1e4a7c..cfc014eb038d695476dee57dcd749c2b3aec16ce 100644 (file)
 &{/} {
        compatible = "gw,imx8mm-gw73xx-0x", "fsl,imx8mm";
 
+       reg_vana: regulator-2p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "2P8V";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+       };
+
+       reg_vddl: regulator-1p2v {
+               compatible = "regulator-fixed";
+               regulator-name = "1P2V";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+       };
+
        reg_cam: regulator-cam {
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_reg_cam>;
@@ -45,6 +59,8 @@
                reg = <0x10>;
                clocks = <&cam24m>;
                VDIG-supply = <&reg_cam>;
+               VANA-supply = <&reg_vana>;
+               VDDL-supply = <&reg_vddl>;
 
                port {
                        /* MIPI CSI-2 bus endpoint */
index 1f8ea20dfafcb970b284bdd875292c1ef1ac92e5..9bee7159a67b5763b579bc44ec574e626b7da428 100644 (file)
@@ -20,7 +20,7 @@
 };
 
 &gpio4 {
-       rs485_en {
+       rs485-en-hog {
                gpio-hog;
                gpios = <0 GPIO_ACTIVE_HIGH>;
                output-low;
index 3e6404340d5299c1cf3f3e248f11fec42b10447a..e98f50bcec57fe7ee1c7a4b93ab2abf26872e068 100644 (file)
 };
 
 &gpio4 {
-       rs485_en {
+       rs485-en-hog {
                gpio-hog;
                gpios = <0 GPIO_ACTIVE_HIGH>;
                output-high;
                line-name = "rs485_en";
        };
 
-       rs485_hd {
+       rs485-hd-hog {
                gpio-hog;
                gpios = <2 GPIO_ACTIVE_HIGH>;
                output-low;
index 2c71ab9854cb36f8e95a75fcbc359e73d439f330..e875ff4637bd51594464ffe84e46fb364f1af7e1 100644 (file)
 };
 
 &gpio4 {
-       rs485_en {
+       rs485-en-hog {
                gpio-hog;
                gpios = <0 GPIO_ACTIVE_HIGH>;
                output-high;
                line-name = "rs485_en";
        };
 
-       rs485_hd {
+       rs485-hd-hog {
                gpio-hog;
                gpios = <2 GPIO_ACTIVE_HIGH>;
                output-high;
similarity index 67%
rename from src/arm64/freescale/imx8mm-venice-gw7905-0x.dts
rename to src/arm64/freescale/imx8mm-venice-gw75xx-0x.dts
index 914753f062cd7fd3bcb8e8bdfe13ab5e5c24c8f9..04f06a55da5ce0b36d334b2f731c2fac697e5106 100644 (file)
@@ -7,11 +7,11 @@
 
 #include "imx8mm.dtsi"
 #include "imx8mm-venice-gw700x.dtsi"
-#include "imx8mm-venice-gw7905.dtsi"
+#include "imx8mm-venice-gw75xx.dtsi"
 
 / {
-       model = "Gateworks Venice GW7905-0x i.MX8MM Development Kit";
-       compatible = "gateworks,imx8mm-gw7905-0x", "fsl,imx8mm";
+       model = "Gateworks Venice GW75xx-0x i.MX8MM Development Kit";
+       compatible = "gateworks,imx8mm-gw75xx-0x", "fsl,imx8mm";
 
        chosen {
                stdout-path = &uart2;
index 136cb30df03a66dd8efa2e8f2a7db0c4aa5b2c4c..35ae0faa815bc5d436c2665882e7127bf5ff3bb1 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 1d56f2a6c06a5ccccd00f4cfcdcccb187608dc51..c11260c26d0b43b67c19852119eda98e3364cb9a 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 45470160f98f51ee107873c053ff61394f9e5a60..db1737bf637df13f3eb1a43a330a600705a9a20a 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 ef951bc9f0dd41bc1f73e6cc2f9afe30be4ab425..05489a31e7fd8d85efb36a75b1c341705bb95676 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 20018ee2c803e334573cb5bf1015f5df0d1a0c9b..77d14ea459e57f740c722a5c65030d10cc85e84b 100644 (file)
                };
        };
 
+       reg_1v5: regulator-1v5 {
+               compatible = "regulator-fixed";
+               regulator-name = "1V5";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+       };
+
+       reg_1v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
        reg_audio: regulator-audio {
                compatible = "regulator-fixed";
                regulator-name = "3v3_aud";
                assigned-clock-parents = <&clk IMX8MN_CLK_24M>;
                assigned-clock-rates = <24000000>;
                AVDD-supply = <&reg_camera>;  /* 2.8v */
+               DVDD-supply = <&reg_1v5>;
+               DOVDD-supply = <&reg_1v8>;
                powerdown-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
 
index bbd80896db9648bfdeb56a9e502b9c8d20c4e0b7..1df5ceb1138793a0e9a1b54ff2f552eb9f3100f9 100644 (file)
@@ -62,8 +62,8 @@
                compatible = "adi,adv7535";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_hdmi_bridge>;
-               reg = <0x3d>, <0x3c>, <0x3e>, <0x3f>;
-               reg-names = "main", "cec", "edid", "packet";
+               reg = <0x3d>, <0x3e>, <0x3c>, <0x3f>;
+               reg-names = "main", "edid", "cec", "packet";
                adi,dsi-lanes = <4>;
                avdd-supply = <&reg_hdmi>;
                a2vdd-supply = <&reg_hdmi>;
index 9e0259ddf4bca36966010bbcee0d7b06400e1c59..33d73f3dc18759295207fae76d67100387b86461 100644 (file)
                        "Line Out Jack", "LINEVOUTR";
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
+       spdif_in: spdif-in {
+               compatible = "linux,spdif-dir";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx-audio-spdif";
                model = "imx-spdif";
-               spdif-controller = <&spdif1>;
-               spdif-out;
-               spdif-in;
+               audio-cpu = <&spdif1>;
+               audio-codec = <&spdif_out>, <&spdif_in>;
        };
 
        sound-micfil {
index 72004ab6bda55047cb488c10f1f32a64537c2a29..0b1fa04f1d678190f3c88713fe6b7bc0c7a5e4d3 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 cc9b81d4618868f83a0d2197fa495d700bdedade..31c33acb560c6c80b64f36757298a65449ff6592 100644 (file)
                };
        };
 
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_connector: endpoint {
+                               remote-endpoint = <&hdmi_to_connector>;
+                       };
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
        };
 };
 
+&hdmi_tx {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi>;
+       status = "okay";
+
+       ports {
+               port@1 {
+                       reg = <1>;
+
+                       hdmi_to_connector:endpoint {
+                               remote-endpoint = <&hdmi_connector>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 &i2c2 {
        clock-frequency = <384000>;
        pinctrl-names = "default";
        };
 };
 
+&hdmi_pvi {
+       status = "okay";
+};
+
 &i2c3 {
        /* Connected to USB Hub */
        usb-typec@52 {
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 &micfil {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pdm>;
                >;
        };
 
+       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         0x40000010
+               >;
+       };
+
        pinctrl_i2c2: i2c2grp {
                fsl,pins = <
                        MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL 0x400001c2
index 7e1b58dbe23a7f2d1e17dfb32a9ce4650356e959..d0fc5977258fbf14fa5c957f897c073aafcb2ec7 100644 (file)
                pwms = <&pwm4 0 83 0>;
        };
 
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "J17";
+               type = "a";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        panel: panel {
                /* Compatible string is filled in by panel board DT Overlay. */
                backlight = <&backlight>;
                "", "SPI3_CS#", "", "", "", "", "", "";
 };
 
+&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";
+};
+
 &i2c1 {
        clock-frequency = <100000>;
        pinctrl-names = "default", "gpio";
 };
 
 &sai3 {
-       #clock-cells = <0>;
        #sound-dai-cells = <0>;
        assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
        assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
                >;
        };
 
+       pinctrl_hdmi: hdmi-grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC         0x154
+                       MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD         0x154
+               >;
+       };
+
        pinctrl_hog_feature: hog-feature-grp {
                fsl,pins = <
                        /* GPIO5_IO03 */
index 938347704136ac583258e8ed08ae48d41dfe20a9..d26930f1a9e9d026050a827e6f94c4559727f444 100644 (file)
                      <0x1 0x00000000 0 0xc0000000>;
        };
 
+       native-hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "HDMI OUT";
+               type = "a";
+
+               port {
+                       hdmi_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        pcie0_refclk: pcie0-refclk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
        status = "disabled";/* can2 pin conflict with pdm */
 };
 
+&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_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 &i2c1 {
        clock-frequency = <400000>;
        pinctrl-names = "default";
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 &micfil {
        #sound-dai-cells = <0>;
        pinctrl-names = "default";
                >;
        };
 
+       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
+               >;
+       };
+
        pinctrl_hog: hoggrp {
                fsl,pins = <
                        MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD         0x40000010
index 00a240484c254e02707463da6b89cb5aed60018f..9c102acb8052cb79f94a4e847d599ea7c61d52ae 100644 (file)
@@ -6,6 +6,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/phy/phy-imx8-pcie.h>
 #include <dt-bindings/leds/leds-pca9532.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "imx8mp-phycore-som.dtsi"
                };
        };
 
+       reg_vcc_5v_sw: regulator-vcc-5v-sw {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "VCC_5V_SW";
+       };
+
        reg_can1_stby: regulator-can1-stby {
                compatible = "regulator-fixed";
                pinctrl-names = "default";
        };
 };
 
+/* TPM */
+&ecspi1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>;
+       status = "okay";
+
+       tpm: tpm@0 {
+               compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
+               reg = <0>;
+               spi-max-frequency = <38000000>;
+       };
+};
+
 &eqos {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_eqos>;
                compatible = "atmel,24c02";
                reg = <0x51>;
                pagesize = <16>;
+               vcc-supply = <&reg_vcc_3v3_sw>;
        };
 
        leds@62 {
        };
 };
 
+&media_blk_ctrl {
+       /*
+        * The LVDS panel on this device uses 72.4 MHz pixel clock,
+        * set IMX8MP_VIDEO_PLL1 to 72.4 * 7 = 506.8 MHz so the LDB
+        * serializer and LCDIFv3 scanout engine can reach accurate
+        * pixel clock of exactly 72.4 MHz.
+        */
+       assigned-clock-rates = <500000000>, <200000000>,
+                              <0>, <0>, <500000000>,
+                              <506800000>;
+};
+
 &snvs_pwrkey {
        status = "okay";
 };
 
+&pcie_phy {
+       clocks = <&hsio_blk_ctrl>;
+       clock-names = "ref";
+       fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_OUTPUT>;
+       fsl,clkreq-unsupported;
+       status = "okay";
+};
+
+/* Mini PCIe */
+&pcie {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcie0>;
+       reset-gpio = <&gpio1 8 GPIO_ACTIVE_LOW>;
+       vpcie-supply = <&reg_vcc_3v3_sw>;
+       status = "okay";
+};
+
 &pwm3 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_rtc>;
        interrupt-parent = <&gpio4>;
        interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
+       aux-voltage-chargeable = <1>;
        wakeup-source;
        trickle-resistor-ohms = <3000>;
 };
 
 /* USB2 4-port USB3.0 HUB */
 &usb3_phy1 {
+       vbus-supply = <&reg_vcc_5v_sw>;
        status = "okay";
 };
 
        pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_pins>;
        pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_pins>;
        cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+       disable-wp;
        vmmc-supply = <&reg_usdhc2_vmmc>;
+       vqmmc-supply = <&ldo5>;
        bus-width = <4>;
        status = "okay";
 };
 };
 
 &iomuxc {
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO   0x80
+                       MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI   0x80
+                       MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK   0x80
+                       MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09     0x00
+               >;
+       };
+
        pinctrl_eqos: eqosgrp {
                fsl,pins = <
                        MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC                     0x2
                >;
        };
 
+       pinctrl_pcie0: pcie0grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO08__GPIO1_IO08     0x40
+                       MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10     0x60
+                       MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11     0x60 /* open drain, pull up */
+                       MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14     0x40
+               >;
+       };
+
        pinctrl_pwm3: pwm3grp {
                fsl,pins = <
                        MX8MP_IOMUXC_SPDIF_TX__PWM3_OUT         0x12
diff --git a/src/arm64/freescale/imx8mp-phycore-no-eth.dtso b/src/arm64/freescale/imx8mp-phycore-no-eth.dtso
new file mode 100644 (file)
index 0000000..5f0278b
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2024 PHYTEC Messtechnik GmbH
+ * Author: Cem Tenruh <c.tenruh@phytec.de>
+ */
+
+/dts-v1/;
+/plugin/;
+
+&ethphy1 {
+       status = "disabled";
+};
+
+&fec {
+       status = "disabled";
+};
index e6ffa6a6b68bb4c022c39d830b6acbaae0720d53..a5ecdca8bc0ead36162de12de7542605101252a3 100644 (file)
                device_type = "memory";
                reg = <0x0 0x40000000 0 0x80000000>;
        };
+
+       reg_vdd_io: regulator-vdd-io {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "VDD_IO";
+       };
 };
 
 &A53_0 {
                compatible = "atmel,24c32";
                reg = <0x51>;
                pagesize = <32>;
+               vcc-supply = <&reg_vdd_io>;
        };
 
        rv3028: rtc@52 {
index 3c2efdc59bfad34d19bf9b07ccbfe1f9e170bd32..30962922b361c9d05887722769c7585eb85b44a0 100644 (file)
@@ -71,6 +71,7 @@
        assigned-clock-rates = <500000000>, <200000000>, <0>,
                /* IMX8MP_CLK_MEDIA_DISP2_PIX = pixelclk of lvds panel */
                <68900000>,
+               <500000000>,
                /* IMX8MP_VIDEO_PLL1 = IMX8MP_CLK_MEDIA_LDB * 2 */
                <964600000>;
 };
diff --git a/src/arm64/freescale/imx8mp-var-som-symphony.dts b/src/arm64/freescale/imx8mp-var-som-symphony.dts
new file mode 100644 (file)
index 0000000..36d3eb8
--- /dev/null
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 Variscite Ltd.
+ */
+
+#include "imx8mp-var-som.dtsi"
+
+/ {
+       model = "Variscite VAR-SOM-MX8M-PLUS on Symphony-Board";
+       compatible = "variscite,var-som-mx8mp-symphony", "variscite,var-som-mx8mp", "fsl,imx8mp";
+};
diff --git a/src/arm64/freescale/imx8mp-var-som.dtsi b/src/arm64/freescale/imx8mp-var-som.dtsi
new file mode 100644 (file)
index 0000000..b2ac258
--- /dev/null
@@ -0,0 +1,359 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 Variscite Ltd.
+ *
+ * Author: Tarang Raval <tarang.raval@siliconsignals.io>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/phy/phy-imx8-pcie.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/usb/pd.h>
+#include "imx8mp.dtsi"
+
+/ {
+       model = "Variscite VAR-SOM-MX8M Plus module";
+
+       chosen {
+               stdout-path = &uart2;
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&pca9534 0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0x0 0x40000000 0 0xc0000000>,
+                     <0x1 0x00000000 0 0xc0000000>;
+       };
+
+
+       reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
+               compatible = "regulator-fixed";
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <100>;
+               off-on-delay-us = <12000>;
+       };
+};
+
+&A53_0 {
+       cpu-supply = <&buck2>;
+};
+
+&A53_1 {
+       cpu-supply = <&buck2>;
+};
+
+&A53_2 {
+       cpu-supply = <&buck2>;
+};
+
+&A53_3 {
+       cpu-supply = <&buck2>;
+};
+
+&i2c1 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       pmic@25 {
+               compatible = "nxp,pca9450c";
+               reg = <0x25>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
+
+               regulators {
+                       buck1: BUCK1 {
+                               regulator-name = "BUCK1";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <2187500>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck2: BUCK2 {
+                               regulator-name = "BUCK2";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <2187500>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                               nxp,dvs-run-voltage = <950000>;
+                               nxp,dvs-standby-voltage = <850000>;
+                       };
+
+                       buck4: 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;
+                       };
+
+                       ldo2: LDO2 {
+                               regulator-name = "LDO2";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1150000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo3: LDO3 {
+                               regulator-name = "LDO3";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo4: LDO4 {
+                               regulator-name = "LDO4";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
+
+                       ldo5: LDO5 {
+                               regulator-name = "LDO5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+               };
+       };
+};
+
+&i2c3 {
+        clock-frequency = <400000>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&pinctrl_i2c3>;
+        status = "okay";
+
+       /* GPIO expander */
+       pca9534: gpio@20 {
+               compatible = "nxp,pca9534";
+               reg = <0x20>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pca9534>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
+               wakeup-source;
+
+               usb3-sata-sel-hog {
+                       gpio-hog;
+                       gpios = <4 0>;
+                       output-low;
+                       line-name = "usb3_sata_sel";
+               };
+       };
+};
+
+/* Console */
+&uart2 {
+        pinctrl-names = "default";
+        pinctrl-0 = <&pinctrl_uart2>;
+        status = "okay";
+};
+
+/* SD-card */
+&usdhc2 {
+        pinctrl-names = "default", "state_100mhz", "state_200mhz";
+        pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+        pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+        pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+        cd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+        vmmc-supply = <&reg_usdhc2_vmmc>;
+        bus-width = <4>;
+        status = "okay";
+};
+
+/* eMMC */
+&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;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD1_DATA4__I2C1_SCL                                0x400001c2
+                       MX8MP_IOMUXC_SD1_DATA5__I2C1_SDA                                0x400001c2
+               >;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL                                 0x400001c2
+                       MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA                                 0x400001c2
+               >;
+       };
+
+       pinctrl_pca9534: pca9534grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO15__GPIO1_IO15                             0xc0
+               >;
+       };
+
+       pinctrl_pmic: pmicgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SPDIF_RX__GPIO5_IO04                               0x1c0
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX                            0x40
+                       MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX                            0x40
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14                             0x1c4
+                       MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22                               0x10
+                       MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12                               0xc0
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK                                0x190
+                       MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD                                0x1d0
+                       MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0                            0x1d0
+                       MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1                            0x1d0
+                       MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2                            0x1d0
+                       MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3                            0x1d0
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK                                0x194
+                       MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD                                0x1d4
+                       MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0                            0x1d4
+                       MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1                            0x1d4
+                       MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2                            0x1d4
+                       MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3                            0x1d4
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK                                0x196
+                       MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD                                0x1d6
+                       MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0                            0x1d6
+                       MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1                            0x1d6
+                       MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2                            0x1d6
+                       MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3                            0x1d6
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK                              0x190
+                       MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD                              0x1d0
+                       MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0                          0x1d0
+                       MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1                          0x1d0
+                       MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2                          0x1d0
+                       MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3                          0x1d0
+                       MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4                            0x1d0
+                       MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5                           0x1d0
+                       MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6                           0x1d0
+                       MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7                             0x1d0
+                       MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE                          0x190
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK                              0x194
+                       MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD                              0x1d4
+                       MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0                          0x1d4
+                       MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1                          0x1d4
+                       MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2                          0x1d4
+                       MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3                          0x1d4
+                       MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4                            0x1d4
+                       MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5                           0x1d4
+                       MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6                           0x1d4
+                       MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7                             0x1d4
+                       MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE                          0x194
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK                              0x196
+                       MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD                              0x1d6
+                       MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0                          0x1d6
+                       MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1                          0x1d6
+                       MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2                          0x1d6
+                       MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3                          0x1d6
+                       MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4                            0x1d6
+                       MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5                           0x1d6
+                       MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6                           0x1d6
+                       MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7                             0x1d6
+                       MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE                          0x196
+               >;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B                           0xc6
+               >;
+       };
+};
index edf22ff549a476e441c8764356d4c4267a2a39c1..7d9fcdee58a7ff6f0d8cb2d945cb34099d9d6245 100644 (file)
 /plugin/;
 
 &{/} {
-       compatible = "gw,imx8mp-gw74xx", "fsl,imx8mp";
+       reg_vana: regulator-2p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "2P8V";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+       };
+
+       reg_vddl: regulator-1p2v {
+               compatible = "regulator-fixed";
+               regulator-name = "1P2V";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+       };
 
        reg_cam: regulator-cam {
                pinctrl-names = "default";
@@ -41,6 +53,8 @@
                reg = <0x10>;
                clocks = <&cam24m>;
                VDIG-supply = <&reg_cam>;
+               VANA-supply = <&reg_vana>;
+               VDDL-supply = <&reg_vddl>;
 
                port {
                        /* MIPI CSI-2 bus endpoint */
similarity index 67%
rename from src/arm64/freescale/imx8mp-venice-gw7905-2x.dts
rename to src/arm64/freescale/imx8mp-venice-gw75xx-2x.dts
index 4a1bbbbe19e66a6b9274a7a2ef735e00e833875d..7ca68df9e516cd5ed931a9ebdbf421b0bff55d78 100644 (file)
@@ -7,11 +7,11 @@
 
 #include "imx8mp.dtsi"
 #include "imx8mp-venice-gw702x.dtsi"
-#include "imx8mp-venice-gw7905.dtsi"
+#include "imx8mp-venice-gw75xx.dtsi"
 
 / {
-       model = "Gateworks Venice GW7905-2x i.MX8MP Development Kit";
-       compatible = "gateworks,imx8mp-gw7905-2x", "fsl,imx8mp";
+       model = "Gateworks Venice GW75xx-2x i.MX8MP Development Kit";
+       compatible = "gateworks,imx8mp-gw75xx-2x", "fsl,imx8mp";
 
        chosen {
                stdout-path = &uart2;
index fbcd93e33aeaa0864be6ac66b8a33baed39795fc..da8902c5f7e5b2bc84f26cf9b204cb58ca68b5f4 100644 (file)
        };
 };
 
+/* Verdin HDMI_1 Audio */
+&aud2htx {
+       status = "okay";
+};
+
 &backlight {
        power-supply = <&reg_3p3v>;
 };
        status = "okay";
 };
 
+/* Verdin HDMI_1 Audio */
+&sound_hdmi {
+       status = "okay";
+};
+
 /* Verdin UART_1 */
 &uart1 {
        status = "okay";
index 09733fea036dd30b481e1fa286dc723c40705cef..a38e7c947a421cac689c14661530ced445697d47 100644 (file)
        };
 };
 
+/* Verdin HDMI_1 Audio */
+&aud2htx {
+       status = "okay";
+};
+
 &backlight {
        power-supply = <&reg_3p3v>;
 };
        status = "okay";
 };
 
+/* Verdin HDMI_1 Audio */
+&sound_hdmi {
+       status = "okay";
+};
+
 /* Verdin UART_1, connector X50 through RS485 transceiver */
 &uart1 {
        linux,rs485-enabled-at-boot-time;
index 3a40338cf2d88f853a2dd8dc6977bf704a97aaae..11cf3bdc95c4ee276d0f29faf2476c6033e3850e 100644 (file)
        };
 };
 
+/* Verdin HDMI_1 Audio */
+&aud2htx {
+       status = "okay";
+};
+
 &backlight {
        power-supply = <&reg_3p3v>;
 };
        vin-supply = <&reg_3p3v>;
 };
 
+/* Verdin HDMI_1 Audio */
+&sound_hdmi {
+       status = "okay";
+};
+
 /* Verdin UART_1 */
 &uart1 {
        status = "okay";
index efcab00c0142138e05e39fc28dc41482c882770d..cae06cb67cd3eab802738e866ce09dbc6a52d63b 100644 (file)
@@ -75,7 +75,6 @@
 &usdhc1 {
        bus-width = <4>;
        keep-power-in-suspend;
-       max-frequency = <100000000>;
        non-removable;
        pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_wifi_ctrl>;
index 533b7fe218ce6662e092db1d023a919d1092a97c..cc389cda2af2ebf72a0c4f833115da3cfb8cb2a6 100644 (file)
        };
 };
 
+/* Verdin HDMI_1 Audio */
+&aud2htx {
+       status = "okay";
+};
+
 &backlight {
        power-supply = <&reg_3p3v>;
 };
        vin-supply = <&reg_3p3v>;
 };
 
+/* Verdin HDMI_1 Audio */
+&sound_hdmi {
+       status = "okay";
+};
+
 /* Verdin UART_1 */
 &uart1 {
        status = "okay";
index d23a3942174d8aaad152b17f5da80fa057ceb1ce..a19ad5ee7f792b000add1d90b523eb8d0e8fd376 100644 (file)
                };
        };
 
+       sound_hdmi: sound-hdmi {
+               compatible = "fsl,imx-audio-hdmi";
+               model = "audio-hdmi";
+               audio-cpu = <&aud2htx>;
+               hdmi-out;
+               status = "disabled";
+       };
+
        /* Carrier Board Supplies */
        reg_1p8v: regulator-1p8v {
                compatible = "regulator-fixed";
index 603dfe80216f8804c5bee14dc3fdc5039060e0b4..40e847bc0b7f81302a0269a8286b1a0a078f3d56 100644 (file)
                                compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
                                reg = <0x30b40000 0x10000>;
                                interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clk IMX8MP_CLK_DUMMY>,
+                               clocks = <&clk IMX8MP_CLK_IPG_ROOT>,
                                         <&clk IMX8MP_CLK_NAND_USDHC_BUS>,
                                         <&clk IMX8MP_CLK_USDHC1_ROOT>;
                                clock-names = "ipg", "ahb", "per";
                                compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
                                reg = <0x30b50000 0x10000>;
                                interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clk IMX8MP_CLK_DUMMY>,
+                               clocks = <&clk IMX8MP_CLK_IPG_ROOT>,
                                         <&clk IMX8MP_CLK_NAND_USDHC_BUS>,
                                         <&clk IMX8MP_CLK_USDHC2_ROOT>;
                                clock-names = "ipg", "ahb", "per";
                                compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
                                reg = <0x30b60000 0x10000>;
                                interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clk IMX8MP_CLK_DUMMY>,
+                               clocks = <&clk IMX8MP_CLK_IPG_ROOT>,
                                         <&clk IMX8MP_CLK_NAND_USDHC_BUS>,
                                         <&clk IMX8MP_CLK_USDHC3_ROOT>;
                                clock-names = "ipg", "ahb", "per";
                                };
                        };
 
+                       isp_0: isp@32e10000 {
+                               compatible = "fsl,imx8mp-isp";
+                               reg = <0x32e10000 0x10000>;
+                               interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
+                                        <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
+                                        <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
+                               clock-names = "isp", "aclk", "hclk";
+                               power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISP>;
+                               fsl,blk-ctrl = <&media_blk_ctrl 0>;
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@1 {
+                                               reg = <1>;
+                                       };
+                               };
+                       };
+
+                       isp_1: isp@32e20000 {
+                               compatible = "fsl,imx8mp-isp";
+                               reg = <0x32e20000 0x10000>;
+                               interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
+                                        <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
+                                        <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
+                               clock-names = "isp", "aclk", "hclk";
+                               power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_ISP>;
+                               fsl,blk-ctrl = <&media_blk_ctrl 1>;
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@1 {
+                                               reg = <1>;
+                                       };
+                               };
+                       };
+
                        dewarp: dwe@32e30000 {
                                compatible = "nxp,imx8mp-dw100";
                                reg = <0x32e30000 0x10000>;
                                compatible = "fsl,imx8mp-mipi-csi2", "fsl,imx8mm-mipi-csi2";
                                reg = <0x32e40000 0x10000>;
                                interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
-                               clock-frequency = <266000000>;
+                               clock-frequency = <250000000>;
                                clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
                                         <&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>,
                                         <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>,
                                clock-names = "pclk", "wrap", "phy", "axi";
                                assigned-clocks = <&clk IMX8MP_CLK_MEDIA_CAM1_PIX>,
                                                  <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF>;
-                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>,
+                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_250M>,
                                                         <&clk IMX8MP_CLK_24M>;
-                               assigned-clock-rates = <266000000>;
                                power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_MIPI_CSI2_1>;
                                status = "disabled";
 
                                compatible = "fsl,imx8mp-mipi-csi2", "fsl,imx8mm-mipi-csi2";
                                reg = <0x32e50000 0x10000>;
                                interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
-                               clock-frequency = <266000000>;
+                               clock-frequency = <250000000>;
                                clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
                                         <&clk IMX8MP_CLK_MEDIA_CAM2_PIX_ROOT>,
                                         <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>,
                                clock-names = "pclk", "wrap", "phy", "axi";
                                assigned-clocks = <&clk IMX8MP_CLK_MEDIA_CAM2_PIX>,
                                                  <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF>;
-                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>,
+                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_250M>,
                                                         <&clk IMX8MP_CLK_24M>;
-                               assigned-clock-rates = <266000000>;
                                power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_MIPI_CSI2_2>;
                                status = "disabled";
 
                                clock-names = "apb", "axi", "cam1", "cam2",
                                              "disp1", "disp2", "isp", "phy";
 
+                               /*
+                                * The ISP maximum frequency is 400MHz in normal mode
+                                * and 500MHz in overdrive mode. The 400MHz operating
+                                * point hasn't been successfully tested yet, so set
+                                * IMX8MP_CLK_MEDIA_ISP to 500MHz for the time being.
+                                */
                                assigned-clocks = <&clk IMX8MP_CLK_MEDIA_AXI>,
                                                  <&clk IMX8MP_CLK_MEDIA_APB>,
                                                  <&clk IMX8MP_CLK_MEDIA_DISP1_PIX>,
                                                  <&clk IMX8MP_CLK_MEDIA_DISP2_PIX>,
+                                                 <&clk IMX8MP_CLK_MEDIA_ISP>,
                                                  <&clk IMX8MP_VIDEO_PLL1>;
                                assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>,
                                                         <&clk IMX8MP_SYS_PLL1_800M>,
                                                         <&clk IMX8MP_VIDEO_PLL1_OUT>,
-                                                        <&clk IMX8MP_VIDEO_PLL1_OUT>;
+                                                        <&clk IMX8MP_VIDEO_PLL1_OUT>,
+                                                        <&clk IMX8MP_SYS_PLL2_500M>;
                                assigned-clock-rates = <500000000>, <200000000>,
-                                                      <0>, <0>, <1039500000>;
+                                                      <0>, <0>, <500000000>,
+                                                      <1039500000>;
                                #power-domain-cells = <1>;
 
                                lvds_bridge: bridge@5c {
index 7507548cdb16bbd87b8e64f98461379e6e257037..a87d0692c3bb372f77c04d5190e3741f93a142ec 100644 (file)
                };
        };
 
+       spdif_out: spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
+       spdif_in: spdif-in {
+               compatible = "linux,spdif-dir";
+               #sound-dai-cells = <0>;
+       };
+
        sound-spdif {
                compatible = "fsl,imx-audio-spdif";
                model = "imx-spdif";
-               spdif-controller = <&spdif1>;
-               spdif-out;
-               spdif-in;
+               audio-cpu = <&spdif1>;
+               audio-codec = <&spdif_out>, <&spdif_in>;
+       };
+
+       hdmi_arc_in: hdmi-arc-in {
+               compatible = "linux,spdif-dir";
+               #sound-dai-cells = <0>;
        };
 
        sound-hdmi-arc {
                compatible = "fsl,imx-audio-spdif";
                model = "imx-hdmi-arc";
-               spdif-controller = <&spdif2>;
-               spdif-in;
+               audio-cpu = <&spdif2>;
+               audio-codec = <&hdmi_arc_in>;
        };
 };
 
index 778741dbbb33819fae225638e6d155238ca293ac..62203eed6a6cb144dde3cfc59173f74e8f068ccb 100644 (file)
@@ -6,6 +6,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/usb/pd.h>
 #include "imx8qm.dtsi"
 
 / {
                reg = <0x00000000 0x80000000 0 0x40000000>;
        };
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               vdev0vring0: memory@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_table0: memory@900ff000 {
+                       reg = <0 0x900ff000 0 0x1000>;
+                       no-map;
+               };
+
+               vdev2vring0: memory@90100000 {
+                       reg = <0 0x90100000 0 0x8000>;
+                       no-map;
+               };
+
+               vdev2vring1: memory@90108000 {
+                       reg = <0 0x90108000 0 0x8000>;
+                       no-map;
+               };
+
+               vdev3vring0: memory@90110000 {
+                       reg = <0 0x90110000 0 0x8000>;
+                       no-map;
+               };
+
+               vdev3vring1: memory@90118000 {
+                       reg = <0 0x90118000 0 0x8000>;
+                       no-map;
+               };
+
+               rsc_table1: memory@901ff000 {
+                       reg = <0 0x901ff000 0 0x1000>;
+                       no-map;
+               };
+
+               vdevbuffer: memory@90400000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x90400000 0 0x100000>;
+                       no-map;
+               };
+       };
+
+       lvds_backlight0: backlight-lvds0 {
+               compatible = "pwm-backlight";
+               pwms = <&qm_pwm_lvds0 0 100000 0>;
+               brightness-levels = <0 100>;
+               num-interpolated-steps = <100>;
+               default-brightness-level = <80>;
+       };
+
+       lvds_backlight1: backlight-lvds1 {
+               compatible = "pwm-backlight";
+               pwms = <&pwm_lvds1 0 100000 0>;
+               brightness-levels = <0 100>;
+               num-interpolated-steps = <100>;
+               default-brightness-level = <80>;
+       };
+
+       mux-controller {
+               compatible = "nxp,cbdtu02043", "gpio-sbu-mux";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec_mux>;
+               select-gpios = <&lsio_gpio4 6 GPIO_ACTIVE_LOW>;
+               enable-gpios = <&lsio_gpio4 19 GPIO_ACTIVE_HIGH>;
+               orientation-switch;
+
+               port {
+                       usb3_data_ss: endpoint {
+                               remote-endpoint = <&typec_con_ss>;
+                       };
+               };
+       };
+
        reg_usdhc2_vmmc: usdhc2-vmmc {
                compatible = "regulator-fixed";
                regulator-name = "SD1_SPWR";
                                "LINPUT1", "Mic Jack",
                                "Mic Jack", "MICB";
        };
+
+       imx8qm-cm4-0 {
+               compatible = "fsl,imx8qm-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_table0>;
+               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>;
+       };
+
+       imx8qm-cm4-1 {
+               compatible = "fsl,imx8qm-cm4";
+               clocks = <&clk_dummy>;
+               mbox-names = "tx", "rx", "rxdb";
+               mboxes = <&lsio_mu6 0 1
+                         &lsio_mu6 1 1
+                         &lsio_mu6 3 1>;
+               memory-region = <&vdevbuffer>, <&vdev2vring0>, <&vdev2vring1>,
+                               <&vdev3vring0>, <&vdev3vring1>, <&rsc_table1>;
+               power-domains = <&pd IMX_SC_R_M4_1_PID0>, <&pd IMX_SC_R_M4_1_MU_1A>;
+
+               fsl,resource-id = <IMX_SC_R_M4_1_PID0>;
+               fsl,entry-address = <0x38fe0000>;
+       };
+
 };
 
 &adc0 {
                compatible = "st,l3g4200d-gyro";
                reg = <0x69>;
        };
+
+       ptn5110: tcpc@51 {
+               compatible = "nxp,ptn5110", "tcpci";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec>;
+               reg = <0x51>;
+               interrupt-parent = <&lsio_gpio4>;
+               interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
+               status = "okay";
+
+               usb_con1: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "source";
+                       data-role = "dual";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec_dr_sw: endpoint {
+                                               remote-endpoint = <&usb3_drd_sw>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       typec_con_ss: endpoint {
+                                               remote-endpoint = <&usb3_data_ss>;
+                                       };
+                               };
+                       };
+               };
+       };
 };
 
 &i2c1 {
        };
 };
 
+&i2c1_lvds0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lvds0_lpi2c1>;
+       clock-frequency = <100000>;
+       status = "okay";
+};
+
+&i2c1_lvds1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lvds1_lpi2c1>;
+       clock-frequency = <100000>;
+       status = "okay";
+};
+
+&i2c0_mipi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_mipi0_lpi2c0>;
+       clock-frequency = <100000>;
+       status = "okay";
+};
+
+&i2c0_mipi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_mipi1_lpi2c0>;
+       clock-frequency = <100000>;
+       status = "okay";
+};
+
 &flexcan1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_flexcan1>;
        pinctrl-0 = <&pinctrl_lpspi2 &pinctrl_lpspi2_cs>;
        cs-gpios = <&lsio_gpio3 10 GPIO_ACTIVE_LOW>;
        status = "okay";
-
-       spidev0: spi@0 {
-               reg = <0>;
-               compatible = "rohm,dh2228fv";
-               spi-max-frequency = <30000000>;
-       };
 };
 
 &lsio_mu5 {
        status = "okay";
 };
 
+&qm_pwm_lvds0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm_lvds0>;
+       status = "okay";
+};
+
+&pwm_lvds1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm_lvds1>;
+       status = "okay";
+};
+
 &usdhc1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc1>;
        status = "okay";
 };
 
+&usb3_phy {
+       status = "okay";
+};
+
+&usbotg3 {
+       status = "okay";
+};
+
+&usbotg3_cdns3 {
+       dr_mode = "otg";
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               usb3_drd_sw: endpoint {
+                       remote-endpoint = <&typec_dr_sw>;
+               };
+       };
+};
+
 &sai0 {
        #sound-dai-cells = <0>;
        assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
                >;
        };
 
+       pinctrl_mipi0_lpi2c0: mipi0_lpi2c0grp {
+               fsl,pins = <
+                       IMX8QM_MIPI_DSI0_I2C0_SCL_MIPI_DSI0_I2C0_SCL      0xc6000020
+                       IMX8QM_MIPI_DSI0_I2C0_SDA_MIPI_DSI0_I2C0_SDA      0xc6000020
+                       IMX8QM_MIPI_DSI0_GPIO0_01_LSIO_GPIO1_IO19         0x00000020
+               >;
+       };
+
+       pinctrl_mipi1_lpi2c0: mipi1_lpi2c0grp {
+               fsl,pins = <
+                       IMX8QM_MIPI_DSI1_I2C0_SCL_MIPI_DSI1_I2C0_SCL      0xc6000020
+                       IMX8QM_MIPI_DSI1_I2C0_SDA_MIPI_DSI1_I2C0_SDA      0xc6000020
+                       IMX8QM_MIPI_DSI1_GPIO0_01_LSIO_GPIO1_IO23         0x00000020
+               >;
+       };
+
        pinctrl_flexspi0: flexspi0grp {
                fsl,pins = <
                        IMX8QM_QSPI0A_DATA0_LSIO_QSPI0A_DATA0     0x06000021
                >;
        };
 
+       pinctrl_lvds0_lpi2c1: lvds0lpi2c1grp {
+               fsl,pins = <
+                       IMX8QM_LVDS0_I2C1_SCL_LVDS0_I2C1_SCL    0xc600004c
+                       IMX8QM_LVDS0_I2C1_SDA_LVDS0_I2C1_SDA    0xc600004c
+               >;
+       };
+
+       pinctrl_lvds1_lpi2c1: lvds1lpi2c1grp {
+               fsl,pins = <
+                       IMX8QM_LVDS1_I2C1_SCL_LVDS1_I2C1_SCL    0xc600004c
+                       IMX8QM_LVDS1_I2C1_SDA_LVDS1_I2C1_SDA    0xc600004c
+               >;
+       };
+
+       pinctrl_pwm_lvds0: pwmlvds0grp {
+               fsl,pins = <
+                       IMX8QM_LVDS0_GPIO00_LVDS0_PWM0_OUT              0x00000020
+               >;
+       };
+
+       pinctrl_pwm_lvds1: pwmlvds1grp {
+               fsl,pins = <
+                       IMX8QM_LVDS1_GPIO00_LVDS1_PWM0_OUT              0x00000020
+               >;
+       };
+
        pinctrl_sai0: sai0grp {
                fsl,pins = <
                        IMX8QM_SPI0_CS1_AUD_SAI0_TXC                            0x0600004c
                >;
        };
 
+       pinctrl_typec: typecgrp {
+               fsl,pins = <
+                       IMX8QM_QSPI1A_DATA0_LSIO_GPIO4_IO26             0x00000021
+               >;
+       };
+
+       pinctrl_typec_mux: typecmuxgrp {
+               fsl,pins = <
+                       IMX8QM_QSPI1A_SS0_B_LSIO_GPIO4_IO19             0x60
+                       IMX8QM_USB_SS3_TC3_LSIO_GPIO4_IO06              0x60
+               >;
+       };
+
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
                        IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK                         0x06000041
diff --git a/src/arm64/freescale/imx8qm-ss-lvds.dtsi b/src/arm64/freescale/imx8qm-ss-lvds.dtsi
new file mode 100644 (file)
index 0000000..0514d8b
--- /dev/null
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+/*
+ * Copyright 2024 NXP
+ */
+
+&qm_lvds0_lis_lpcg {
+       clocks = <&lvds_ipg_clk>;
+       clock-indices = <IMX_LPCG_CLK_4>;
+};
+
+&qm_lvds0_pwm_lpcg {
+       clocks = <&clk IMX_SC_R_LVDS_0_PWM_0 IMX_SC_PM_CLK_PER>,
+                <&lvds_ipg_clk>;
+       clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+};
+
+&qm_lvds0_i2c0_lpcg {
+       clocks = <&clk IMX_SC_R_LVDS_0_I2C_0 IMX_SC_PM_CLK_PER>,
+                <&lvds_ipg_clk>;
+       clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+};
+
+&qm_pwm_lvds0 {
+       clocks = <&qm_lvds0_pwm_lpcg IMX_LPCG_CLK_4>,
+                <&qm_lvds0_pwm_lpcg IMX_LPCG_CLK_0>;
+};
+
+&qm_i2c0_lvds0 {
+       clocks = <&qm_lvds0_i2c0_lpcg IMX_LPCG_CLK_0>,
+                <&qm_lvds0_i2c0_lpcg IMX_LPCG_CLK_4>;
+};
+
+&lvds0_subsys {
+       interrupt-parent = <&irqsteer_lvds0>;
+
+       irqsteer_lvds0: interrupt-controller@56240000 {
+               compatible = "fsl,imx8qm-irqsteer", "fsl,imx-irqsteer";
+               reg = <0x56240000 0x1000>;
+               interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-controller;
+               interrupt-parent = <&gic>;
+               #interrupt-cells = <1>;
+               clocks = <&qm_lvds0_lis_lpcg IMX_LPCG_CLK_4>;
+               clock-names = "ipg";
+               power-domains = <&pd IMX_SC_R_LVDS_0>;
+
+               fsl,channel = <0>;
+               fsl,num-irqs = <32>;
+       };
+
+       lvds0_i2c1_lpcg: clock-controller@56243014 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x56243014 0x4>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_LVDS_0_I2C_0 IMX_SC_PM_CLK_PER>,
+                        <&lvds_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "lvds0_i2c1_lpcg_clk",
+                                    "lvds0_i2c1_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_LVDS_0_I2C_0>;
+       };
+
+       i2c1_lvds0: i2c@56247000 {
+               compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
+               reg = <0x56247000 0x1000>;
+               interrupts = <9>;
+               clocks = <&lvds0_i2c1_lpcg IMX_LPCG_CLK_0>,
+                        <&lvds0_i2c1_lpcg IMX_LPCG_CLK_4>;
+               clock-names = "per", "ipg";
+               assigned-clocks = <&clk IMX_SC_R_LVDS_0_I2C_0 IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               power-domains = <&pd IMX_SC_R_LVDS_0_I2C_0>;
+               status = "disabled";
+       };
+};
diff --git a/src/arm64/freescale/imx8qm-ss-mipi.dtsi b/src/arm64/freescale/imx8qm-ss-mipi.dtsi
new file mode 100644 (file)
index 0000000..f4c393f
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+/*
+ * Copyright 2024 NXP
+ */
+
+&mipi0_lis_lpcg {
+       clocks = <&dsi_ipg_clk>;
+       clock-indices = <IMX_LPCG_CLK_0>;
+       clock-output-names = "mipi0_lis_lpcg_ipg_clk";
+};
+
+&mipi0_pwm_lpcg {
+       clocks = <&clk IMX_SC_R_MIPI_0_PWM_0 IMX_SC_PM_CLK_PER>,
+                <&dsi_ipg_clk>;
+       clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+       clock-output-names = "mipi0_pwm_lpcg_clk",
+                            "mipi0_pwm_lpcg_ipg_clk";
+};
\ No newline at end of file
index 61986e0639e531f372505645a887df9d916f7bd7..3ee6e2869e3cf55de0a9eebd227d594e29078efc 100644 (file)
                clock-output-names = "spdif1_rx";
        };
 
+       lvds_ipg_clk: clock-controller-lvds-ipg {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <24000000>;
+               clock-output-names = "lvds0_ipg_clk";
+       };
+
+       dsi_ipg_clk: clock-controller-dsi-ipg {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <120000000>;
+               clock-output-names = "dsi_ipg_clk";
+       };
+
+       mipi_pll_div2_clk: clock-controller-mipi-div2-pll {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <432000000>;
+               clock-output-names = "mipi_pll_div2_clk";
+       };
+
        /* 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-mipi0.dtsi"
+       #include "imx8-ss-lvds0.dtsi"
+       #include "imx8-ss-mipi1.dtsi"
+       #include "imx8-ss-lvds1.dtsi"
        #include "imx8-ss-img.dtsi"
        #include "imx8-ss-dma.dtsi"
        #include "imx8-ss-conn.dtsi"
 #include "imx8qm-ss-conn.dtsi"
 #include "imx8qm-ss-lsio.dtsi"
 #include "imx8qm-ss-audio.dtsi"
+#include "imx8qm-ss-lvds.dtsi"
+#include "imx8qm-ss-mipi.dtsi"
index 7894a3ab26d6bc4c130ef239ed4337bb695acfff..f81937b5fb720d29ac93e09f08448fb4f4752c76 100644 (file)
@@ -5,6 +5,14 @@
  * Author: Alexander Stein
  */
 
+&mu_m0 {
+       interrupts = <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&mu1_m0 {
+       interrupts = <GIC_SPI 470 IRQ_TYPE_LEVEL_HIGH>;
+};
+
 &vpu_core0 {
        reg = <0x2d040000 0x10000>;
 };
index e32d5afcf4a96218ad5fabeb20447a5b09beec1d..43f5437684448b8f9cf730aaf4be1bf64f69ba85 100644 (file)
                        };
 
                        flexspi2: spi@29810000 {
-                               compatible = "nxp,imx8mm-fspi";
+                               compatible = "nxp,imx8ulp-fspi";
                                reg = <0x29810000 0x10000>, <0x60000000 0x10000000>;
                                reg-names = "fspi_base", "fspi_mmap";
                                #address-cells = <1>;
index bc659066e19af096d67e53945eda7a38fa29513c..f7bbb2153ae01a2e97f1e28be0c23f9de4172102 100644 (file)
@@ -3,10 +3,24 @@
  * Copyright 2018-2021 Toradex
  */
 
+/* Colibri Analogue Inputs */
+&adc0 {
+       status = "okay";
+};
+
+/* Colibri PWM_A */
+&adma_pwm {
+       status = "okay";
+};
+
 &colibri_gpio_keys {
        status = "okay";
 };
 
+&extcon_usbc_det {
+       status = "okay";
+};
+
 /* Colibri Ethernet */
 &fec1 {
        status = "okay";
        status = "okay";
 };
 
+/* USB PHY for usbotg3 */
+&usb3_phy {
+       status = "okay";
+};
+
+&usbotg1 {
+       status = "okay";
+};
+
+&usbotg3 {
+       status = "okay";
+};
+
+&usbotg3_cdns3 {
+       status = "okay";
+};
+
+/* USB PHY for usbotg1 */
+&usbphy1 {
+       status = "okay";
+};
+
 /* Colibri SDCard */
 &usdhc2 {
        status = "okay";
index 9af769ab8cebbdab47accd034fdc331d36e694f9..f75499765d85dc78808af9ddadc92e133b0c3499 100644 (file)
        };
 };
 
+/* Colibri Analogue Inputs */
+&adc0 {
+       status = "okay";
+};
+
+/* Colibri PWM_A */
+&adma_pwm {
+       status = "okay";
+};
+
 &colibri_gpio_keys {
        status = "okay";
 };
 
+&extcon_usbc_det {
+       status = "okay";
+};
+
 &i2c1 {
        status = "okay";
 
        status = "okay";
 };
 
+/* USB PHY for usbotg3 */
+&usb3_phy {
+       status = "okay";
+};
+
+&usbotg1 {
+       status = "okay";
+};
+
+&usbotg3 {
+       status = "okay";
+};
+
+&usbotg3_cdns3 {
+       status = "okay";
+};
+
+/* USB PHY for usbotg1 */
+&usbphy1 {
+       status = "okay";
+};
+
 /* Colibri SD/MMC Card */
 &usdhc2 {
        status = "okay";
index 8d06925a8ebd05c38572db081bfd66927935dbea..54393a0c5cbfcd55dae080a9f07879748bbd4486 100644 (file)
        };
 };
 
+/* Colibri Analogue Inputs */
+&adc0 {
+       status = "okay";
+};
+
+/* Colibri PWM_A */
+&adma_pwm {
+       status = "okay";
+};
+
 &colibri_gpio_keys {
        status = "okay";
 };
 
+&extcon_usbc_det {
+       status = "okay";
+};
+
 /* Colibri FastEthernet */
 &fec1 {
        status = "okay";
        status = "okay";
 };
 
+/* USB PHY for usbotg3 */
+&usb3_phy {
+       status = "okay";
+};
+
+&usbotg1 {
+       status = "okay";
+};
+
+&usbotg3 {
+       status = "okay";
+};
+
+&usbotg3_cdns3 {
+       status = "okay";
+};
+
+/* USB PHY for usbotg1 */
+&usbphy1 {
+       status = "okay";
+};
+
 /* Colibri SD/MMC Card */
 &usdhc2 {
        status = "okay";
index 49d105eb4769197af85317886bbb4acd13ef3248..edba5b582414655a0d8ebf05dc5bc31816f62f70 100644 (file)
                };
        };
 
+       extcon_usbc_det: usbc-det {
+               compatible = "linux,extcon-usb-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbc_det>;
+               id-gpios = <&lsio_gpio5 9 GPIO_ACTIVE_HIGH>;
+               status = "disabled";
+       };
+
        reg_module_3v3: regulator-module-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "+V3.3";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
        };
+
+       reg_module_3v3_avdd: regulator-module-3v3-avdd {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "+V3.3_AVDD_AUDIO";
+       };
+
+       reg_module_vref_1v8: regulator-module-vref-1v8 {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               regulator-name = "vref-1v8";
+       };
+
+       reg_usbh_vbus: regulator-usbh-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbh1_reg>;
+               gpio = <&lsio_gpio4 3 GPIO_ACTIVE_LOW>;
+               regulator-always-on;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "usbh_vbus";
+       };
+
+       sound-card {
+               compatible = "simple-audio-card";
+               simple-audio-card,bitclock-master = <&dailink_master>;
+               simple-audio-card,format = "i2s";
+               simple-audio-card,frame-master = <&dailink_master>;
+               simple-audio-card,name = "colibri-imx8x";
+
+               dailink_master: simple-audio-card,codec {
+                       clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+                       sound-dai = <&sgtl5000_a>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&sai0>;
+               };
+       };
 };
 
-/* TODO Analogue Inputs */
+/* Colibri Analogue Inputs */
+&adc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc0>;
+       vref-supply = <&reg_module_vref_1v8>;
+};
 
-/* TODO Cooling maps for DX */
+/* Colibri PWM_A */
+&adma_pwm {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm_a>;
+};
 
 &cpu_alert0 {
        hysteresis = <2000>;
        type = "critical";
 };
 
-/* TODO flexcan1 - 3 */
-
-/* TODO GPU */
+&enet0_lpcg {
+       clocks = <&clk IMX_SC_R_ENET_0 IMX_SC_PM_CLK_PER>,
+                <&clk IMX_SC_R_ENET_0 IMX_SC_PM_CLK_PER>,
+                <&conn_axi_clk>,
+                <&clk IMX_SC_R_ENET_0 IMX_SC_C_DISABLE_50>,
+                <&conn_ipg_clk>,
+                <&conn_ipg_clk>;
+       clock-output-names = "enet0_lpcg_timer_clk",
+                            "enet0_lpcg_txc_sampling_clk",
+                            "enet0_lpcg_ahb_clk",
+                            "enet0_lpcg_ref_50mhz_clk",
+                            "enet0_lpcg_ipg_clk",
+                            "enet0_lpcg_ipg_s_clk";
+};
 
 /* On-module I2C */
 &i2c0 {
        pinctrl-0 = <&pinctrl_i2c0>, <&pinctrl_sgtl5000_usb_clk>;
        status = "okay";
 
+       /* USB HUB USB3803 */
+       usb-hub@8 {
+               compatible = "smsc,usb3803";
+               reg = <0x8>;
+               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>, <12000000>, <12000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb3503a>;
+               bypass-gpios = <&gpio_expander_43 5 GPIO_ACTIVE_LOW>;
+               clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "refclk";
+               disabled-ports = <2>;
+               initial-mode = <1>;
+               intn-gpios = <&lsio_gpio3 4 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&gpio_expander_43 4 GPIO_ACTIVE_LOW>;
+       };
+
+       sgtl5000_a: audio-codec@a {
+               compatible = "fsl,sgtl5000";
+               reg = <0xa>;
+               #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>,
+                                 <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+               assigned-clock-rates = <786432000>, <49152000>, <12000000>, <12000000>;
+               clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+               VDDA-supply = <&reg_module_3v3_avdd>;
+               VDDD-supply = <&reg_module_vref_1v8>;
+               VDDIO-supply = <&reg_module_3v3>;
+       };
+
        /* Touch controller */
        touchscreen@2c {
                compatible = "adi,ad7879-1";
                adi,conversion-interval = /bits/ 8 <255>;
                status = "disabled";
        };
+
+       gpio_expander_43: gpio@43 {
+               compatible = "fcs,fxl6408";
+               reg = <0x43>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names = "Wi-Fi_W_DISABLE",
+                                 "Wi-Fi_WKUP_WLAN",
+                                 "PWR_EN_+V3.3_WiFi_N",
+                                 "PCIe_REF_CLK_EN",
+                                 "USB_RESET_N",
+                                 "USB_BYPASS_N",
+                                 "Wi-Fi_PDn",
+                                 "Wi-Fi_WKUP_BT";
+       };
 };
 
 /* TODO i2c lvds0 accessible on FFC (X2) */
        pinctrl-names = "default";
 };
 
+/* VPU Mailboxes */
+&mu_m0 {
+       status="okay";
+};
+
+&mu1_m0 {
+       status="okay";
+};
+
 /* TODO MIPI CSI */
 
 /* TODO MIPI DSI with DSI-to-HDMI bridge lt8912 */
 
 /* TODO on-module PCIe for Wi-Fi */
 
-/* TODO On-module i2s / Audio */
+/* On-module I2S */
+&sai0 {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai0>;
+       status = "okay";
+};
+
+&thermal_zones {
+       pmic-thermal {
+               polling-delay-passive = <250>;
+               polling-delay = <2000>;
+               thermal-sensors = <&tsens IMX_SC_R_PMIC_0>;
+
+               trips {
+                       pmic_alert0: trip0 {
+                               temperature = <110000>;
+                               hysteresis = <2000>;
+                               type = "passive";
+                       };
+
+                       pmic_crit0: trip1 {
+                               temperature = <125000>;
+                               hysteresis = <2000>;
+                               type = "critical";
+                       };
+               };
+
+               cooling-maps {
+                       pmic_cooling_map0: map0 {
+                               trip = <&pmic_alert0>;
+                               cooling-device = <&A35_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                <&A35_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                <&A35_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                <&A35_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                       };
+               };
+       };
+};
+
+&usbotg1 {
+       adp-disable;
+       disable-over-current;
+       extcon = <&extcon_usbc_det &extcon_usbc_det>;
+       hnp-disable;
+       power-active-high;
+       srp-disable;
+       vbus-supply = <&reg_usbh_vbus>;
+};
+
+&usbotg3_cdns3 {
+       dr_mode = "host";
+};
 
 /* On-module eMMC */
 &usdhc1 {
        no-1-8-v;
 };
 
-/* TODO USB Client/Host */
+&vpu {
+       compatible = "nxp,imx8qxp-vpu";
+       status = "okay";
+};
 
-/* TODO USB Host */
+/* VPU Decoder */
+&vpu_core0 {
+       reg = <0x2d040000 0x10000>;
+       memory-region = <&decoder_boot>, <&decoder_rpc>;
+       status = "okay";
+};
 
-/* TODO VPU Encoder/Decoder */
+/* VPU Encoder */
+&vpu_core1 {
+       reg = <0x2d050000 0x10000>;
+       memory-region = <&encoder_boot>, <&encoder_rpc>;
+       status = "okay";
+};
 
 &iomuxc {
        /* On-module touch pen-down interrupt */
index a15987f49e8d6beb4d6e3e5d8e894cd0a2fa057f..8d036b3962e9d1e306bd2b810b170207db43c1dd 100644 (file)
 
        };
 
+       reg_vdd_12v: regulator-vdd-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_12V";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               gpio = <&pcal6524 14 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
        reg_vref_1v8: regulator-adc-vref {
                compatible = "regulator-fixed";
                regulator-name = "vref_1v8";
                off-on-delay-us = <12000>;
                enable-active-high;
        };
+
+       backlight_lvds: backlight-lvds {
+               compatible = "pwm-backlight";
+               pwms = <&adp5585 0 100000 0>;
+               brightness-levels = <0 100>;
+               num-interpolated-steps = <100>;
+               default-brightness-level = <100>;
+               power-supply = <&reg_vdd_12v>;
+               enable-gpios = <&adp5585 9 GPIO_ACTIVE_HIGH>;
+               status = "disabled";
+       };
+
+       bt_sco_codec: bt-sco-codec {
+               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 = <&sai1>;
+                       dai-tdm-slot-num = <2>;
+                       dai-tdm-slot-width = <16>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&bt_sco_codec 1>;
+               };
+       };
+
+       sound-micfil {
+               compatible = "fsl,imx-audio-card";
+               model = "micfil-audio";
+
+               pri-dai-link {
+                       link-name = "micfil hifi";
+                       format = "i2s";
+
+                       cpu {
+                               sound-dai = <&micfil>;
+                       };
+               };
+       };
+
+       sound-xcvr {
+               compatible = "fsl,imx-audio-card";
+               model = "imx-audio-xcvr";
+
+               pri-dai-link {
+                       link-name = "XCVR PCM";
+
+                       cpu {
+                               sound-dai = <&xcvr>;
+                       };
+               };
+       };
 };
 
 &adc1 {
        };
 };
 
+&lpi2c1 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c1>;
+       status = "okay";
+
+       inertial-meter@6a {
+               compatible = "st,lsm6dso";
+               reg = <0x6a>;
+       };
+};
+
 &lpi2c2 {
-       #address-cells = <1>;
-       #size-cells = <0>;
        clock-frequency = <400000>;
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&pinctrl_lpi2c2>;
                        };
                };
        };
+
+       adp5585: io-expander@34 {
+               compatible = "adi,adp5585-00", "adi,adp5585";
+               reg = <0x34>;
+               vdd-supply = <&buck4>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-reserved-ranges = <5 1>;
+               #pwm-cells = <3>;
+       };
 };
 
 &lpi2c3 {
-       #address-cells = <1>;
-       #size-cells = <0>;
        clock-frequency = <400000>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lpi2c3>;
        status = "okay";
 };
 
+&micfil {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_pdm>;
+       pinctrl-1 = <&pinctrl_pdm_sleep>;
+       assigned-clocks = <&clk IMX93_CLK_PDM>;
+       assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
+       assigned-clock-rates = <49152000>;
+       status = "okay";
+};
+
 &mu1 {
        status = "okay";
 };
        status = "okay";
 };
 
+&sai1 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_sai1>;
+       pinctrl-1 = <&pinctrl_sai1_sleep>;
+       assigned-clocks = <&clk IMX93_CLK_SAI1>;
+       assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
+       assigned-clock-rates = <12288000>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
 &usbotg1 {
        dr_mode = "otg";
        hnp-disable;
        status = "okay";
 };
 
+&xcvr {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_spdif>;
+       pinctrl-1 = <&pinctrl_spdif_sleep>;
+       assigned-clocks = <&clk IMX93_CLK_SPDIF>,
+                        <&clk IMX93_CLK_AUDIO_XCVR>;
+       assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>,
+                        <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
+       assigned-clock-rates = <12288000>, <200000000>;
+       status = "okay";
+};
+
 &iomuxc {
        pinctrl_eqos: eqosgrp {
                fsl,pins = <
                >;
        };
 
+       pinctrl_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
                >;
        };
 
+       pinctrl_pdm: pdmgrp {
+               fsl,pins = <
+                       MX93_PAD_PDM_CLK__PDM_CLK                       0x31e
+                       MX93_PAD_PDM_BIT_STREAM0__PDM_BIT_STREAM00      0x31e
+                       MX93_PAD_PDM_BIT_STREAM1__PDM_BIT_STREAM01      0x31e
+               >;
+       };
+
+       pinctrl_pdm_sleep: pdmsleepgrp {
+               fsl,pins = <
+                       MX93_PAD_PDM_CLK__GPIO1_IO08                    0x31e
+                       MX93_PAD_PDM_BIT_STREAM0__GPIO1_IO09            0x31e
+                       MX93_PAD_PDM_BIT_STREAM1__GPIO1_IO10            0x31e
+               >;
+       };
+
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       MX93_PAD_SAI1_TXC__SAI1_TX_BCLK                 0x31e
+                       MX93_PAD_SAI1_TXFS__SAI1_TX_SYNC                0x31e
+                       MX93_PAD_SAI1_TXD0__SAI1_TX_DATA00              0x31e
+                       MX93_PAD_SAI1_RXD0__SAI1_RX_DATA00              0x31e
+               >;
+       };
+
+       pinctrl_sai1_sleep: sai1sleepgrp {
+               fsl,pins = <
+                       MX93_PAD_SAI1_TXC__GPIO1_IO12                   0x51e
+                       MX93_PAD_SAI1_TXFS__GPIO1_IO11                  0x51e
+                       MX93_PAD_SAI1_TXD0__GPIO1_IO13                  0x51e
+                       MX93_PAD_SAI1_RXD0__GPIO1_IO14                  0x51e
+               >;
+       };
+
        /* need to config the SION for data and cmd pad, refer to ERR052021 */
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
                >;
        };
 
+       pinctrl_spdif: spdifgrp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO22__SPDIF_IN            0x31e
+                       MX93_PAD_GPIO_IO23__SPDIF_OUT           0x31e
+               >;
+       };
+
+       pinctrl_spdif_sleep: spdifsleepgrp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO22__GPIO2_IO22          0x31e
+                       MX93_PAD_GPIO_IO23__GPIO2_IO23          0x31e
+               >;
+       };
+
        pinctrl_usdhc2_gpio: usdhc2gpiogrp {
                fsl,pins = <
                        MX93_PAD_SD2_CD_B__GPIO3_IO00           0x31e
diff --git a/src/arm64/freescale/imx93-14x14-evk.dts b/src/arm64/freescale/imx93-14x14-evk.dts
new file mode 100644 (file)
index 0000000..236a44c
--- /dev/null
@@ -0,0 +1,468 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/usb/pd.h>
+#include "imx93.dtsi"
+
+/ {
+       model = "NXP i.MX93 14X14 EVK board";
+       compatible = "fsl,imx93-14x14-evk", "fsl,imx93";
+
+       chosen {
+               stdout-path = &lpuart1;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       alloc-ranges = <0 0x80000000 0 0x40000000>;
+                       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_can1_stby: regulator-can1-stby {
+               compatible = "regulator-fixed";
+               regulator-name = "can1-stby";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pcal6524_2 10 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&reg_can1_en>;
+       };
+
+       reg_can1_en: regulator-can1-en {
+               compatible = "regulator-fixed";
+               regulator-name = "can1-en";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pcal6524_2 12 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_can2_stby: regulator-can2-stby {
+               compatible = "regulator-fixed";
+               regulator-name = "can2-stby";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pcal6524_2 11 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&reg_can2_en>;
+       };
+
+       reg_can2_en: regulator-can2-en {
+               compatible = "regulator-fixed";
+               regulator-name = "can2-en";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pcal6524_2 13 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>;
+       };
+
+       reg_vdd_12v: regulator-vdd-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "reg_vdd_12v";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               gpio = <&pcal6524 14 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_vref_1v8: regulator-adc-vref {
+               compatible = "regulator-fixed";
+               regulator-name = "vref_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+};
+
+&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";
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy2>;
+       fsl,magic-packet;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clock-frequency = <5000000>;
+
+               ethphy2: ethernet-phy@2 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <2>;
+                       eee-broken-1000t;
+                       reset-gpios = <&pcal6524 16 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <80000>;
+                       realtek,clkout-disable;
+               };
+       };
+};
+
+&flexcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       xceiver-supply = <&reg_can1_stby>;
+       status = "okay";
+};
+
+&flexcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_can2_stby>;
+       status = "okay";
+};
+
+&lpi2c1 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c1>;
+       status = "okay";
+
+       lsm6dsm@6a {
+               compatible = "st,lsm6dso";
+               reg = <0x6a>;
+       };
+};
+
+&lpi2c2 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c2>;
+       status = "okay";
+
+       pcal6524_2: gpio@20 {
+               compatible = "nxp,pcal6524";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       pcal6524: gpio@22 {
+               compatible = "nxp,pcal6524";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pcal6524>;
+               reg = <0x22>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&lpi2c3 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c3>;
+       status = "okay";
+};
+
+&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;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+};
+
+&usbotg2 {
+       dr_mode = "host";
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+};
+
+&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 00 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       bus-width = <4>;
+       no-mmc;
+       status = "okay";
+};
+
+&wdog3 {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins = <
+                       MX93_PAD_PDM_CLK__CAN1_TX               0x139e
+                       MX93_PAD_PDM_BIT_STREAM0__CAN1_RX       0x139e
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO25__CAN2_TX     0x139e
+                       MX93_PAD_GPIO_IO27__CAN2_RX     0x139e
+               >;
+       };
+
+       pinctrl_lpi2c1: lpi2c1grp {
+               fsl,pins = <
+                       MX93_PAD_I2C1_SCL__LPI2C1_SCL                   0x40000b9e
+                       MX93_PAD_I2C1_SDA__LPI2C1_SDA                   0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c2: lpi2c2grp {
+               fsl,pins = <
+                       MX93_PAD_I2C2_SCL__LPI2C2_SCL                   0x40000b9e
+                       MX93_PAD_I2C2_SDA__LPI2C2_SDA                   0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c3: lpi2c3grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO28__LPI2C3_SDA                  0x40000b9e
+                       MX93_PAD_GPIO_IO29__LPI2C3_SCL                  0x40000b9e
+               >;
+       };
+
+       pinctrl_pcal6524: pcal6524grp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO2__GPIO3_IO27                  0x31e
+               >;
+       };
+
+       pinctrl_fec: fecgrp {
+               fsl,pins = <
+                       MX93_PAD_ENET2_MDC__ENET1_MDC                   0x57e
+                       MX93_PAD_ENET2_MDIO__ENET1_MDIO                 0x57e
+                       MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0             0x57e
+                       MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1             0x57e
+                       MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2             0x57e
+                       MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3             0x57e
+                       MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC             0x58e
+                       MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL       0x57e
+                       MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0             0x57e
+                       MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1             0x57e
+                       MX93_PAD_ENET2_TD2__ENET1_RGMII_TD2             0x57e
+                       MX93_PAD_ENET2_TD3__ENET1_RGMII_TD3             0x57e
+                       MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC             0x58e
+                       MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL       0x57e
+               >;
+       };
+
+       pinctrl_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 950dece83c24665c17944da052cf8808c0ecc6ed..f8a73612fa0514fce23260f1403cb84111f89012 100644 (file)
 };
 
 &lpi2c2 {
-       #address-cells = <1>;
-       #size-cells = <0>;
        clock-frequency = <400000>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lpi2c2>;
diff --git a/src/arm64/freescale/imx93-kontron-bl-osm-s.dts b/src/arm64/freescale/imx93-kontron-bl-osm-s.dts
new file mode 100644 (file)
index 0000000..89e97c6
--- /dev/null
@@ -0,0 +1,163 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Copyright (C) 2024 Kontron Electronics GmbH
+ */
+
+/dts-v1/;
+
+#include "imx93-kontron-osm-s.dtsi"
+
+/ {
+       model = "Kontron BL i.MX93 OSM-S";
+       compatible = "kontron,imx93-bl-osm-s", "kontron,imx93-osm-s", "fsl,imx93";
+
+       aliases {
+               ethernet0 = &fec;
+               ethernet1 = &eqos;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led1 {
+                       label = "led1";
+                       gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       pwm-beeper {
+               compatible = "pwm-beeper";
+               pwms = <&tpm6 1 5000 0>;
+       };
+
+       reg_vcc_panel: regulator-vcc-panel {
+               compatible = "regulator-fixed";
+               gpio = <&gpio4 3 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "VCC_PANEL";
+       };
+};
+
+&eqos { /* Second ethernet (OSM-S ETH_B) */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_eqos_rgmii>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy1>;
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy1: ethernet-phy@1 {
+                       compatible = "ethernet-phy-id4f51.e91b";
+                       reg = <1>;
+                       reset-assert-us = <10000>;
+                       reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&fec { /* First ethernet (OSM-S ETH_A) */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet_rgmii>;
+       phy-connection-type = "rgmii-id";
+       phy-handle = <&ethphy0>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@1 {
+                       compatible = "ethernet-phy-id4f51.e91b";
+                       reg = <1>;
+                       reset-assert-us = <10000>;
+                       reset-gpios = <&gpio2 18 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&flexcan1 {
+       status = "okay";
+};
+
+&lpi2c2 {
+       status = "okay";
+
+       gpio_expander_dio: gpio@20 {
+               compatible = "ti,tca6408";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names = "DIO1_OUT","DIO1_IN", "DIO2_OUT","DIO2_IN",
+                                 "DIO3_OUT","DIO3_IN", "DIO4_OUT","DIO4_IN";
+               interrupt-parent = <&gpio4>;
+               interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&lpspi8 {
+       assigned-clocks = <&clk IMX93_CLK_LPSPI8>;
+       assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>;
+       assigned-clock-rates = <100000000>;
+       status = "okay";
+
+       eeram@0 {
+               compatible = "microchip,48l640";
+               reg = <0>;
+               spi-max-frequency = <20000000>;
+       };
+};
+
+&lpuart1 {
+       status = "okay";
+};
+
+&lpuart7 {
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&lpuart6 {
+       linux,rs485-enabled-at-boot-time;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&tpm6 {
+       status = "okay";
+};
+
+&usbotg1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       disable-over-current;
+       dr_mode = "host";
+       status = "okay";
+
+       usb1@1 {
+               compatible = "usb424,2514";
+               reg = <1>;
+       };
+};
+
+&usbotg2 {
+       adp-disable;
+       hnp-disable;
+       srp-disable;
+       disable-over-current;
+       dr_mode = "otg";
+       usb-role-switch;
+       status = "okay";
+};
+
+&usdhc2 {
+       vmmc-supply = <&reg_vdd_3v3>;
+       status = "okay";
+};
diff --git a/src/arm64/freescale/imx93-kontron-osm-s.dtsi b/src/arm64/freescale/imx93-kontron-osm-s.dtsi
new file mode 100644 (file)
index 0000000..47c1363
--- /dev/null
@@ -0,0 +1,628 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Copyright (C) 2024 Kontron Electronics GmbH
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "imx93.dtsi"
+
+/ {
+       model = "Kontron OSM-S i.MX93";
+       compatible = "kontron,imx93-osm-s", "fsl,imx93";
+
+       aliases {
+               rtc0 = &rv3028;
+               rtc1 = &bbnsm_rtc;
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0x0 0x40000000 0 0x80000000>;
+       };
+
+       chosen {
+               stdout-path = &lpuart1;
+       };
+
+       reg_usdhc2_vcc: regulator-usdhc2-vcc {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vcc>;
+               gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "VCC_SDIO_A";
+       };
+
+       reg_vdd_carrier: regulator-vdd-carrier {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_vdd_carrier>;
+               gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "VDD_CARRIER";
+
+               regulator-state-standby {
+                       regulator-on-in-suspend;
+               };
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+
+               regulator-state-disk {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&flexcan1 { /* OSM-S CAN_A */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+};
+
+&flexcan2 { /* OSM-S CAN_B */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+};
+
+&gpio1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio1>;
+       gpio-line-names = "", "", "I2C_A_SCL", "I2C_A_SDA",
+                         "UART_CON_RX", "UART_CON_TX", "UART_C_RX", "UART_C_TX",
+                         "CAN_A_TX", "CAN_A_RX", "GPIO_A_0", "SPI_A_CS0",
+                         "SPI_A_SDI", "SPI_A_SCK","SPI_A_SDO";
+};
+
+&gpio2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio2>;
+       gpio-line-names = "I2C_B_SDA", "I2C_B_SCL", "GPIO_B_1", "GPIO_A_2",
+                         "UART_B_TX", "UART_B_RX", "UART_B_RTS", "UART_B_CTS",
+                         "UART_A_TX", "UART_A_RX", "UART_A_RTS", "UART_A_CTS",
+                         "SPI_B_CS0", "SPI_B_SDI", "SPI_B_SDO", "SPI_B_SCK",
+                         "I2S_BITCLK", "I2S_MCLK", "GPIO_A_1", "I2S_A_DATA_OUT",
+                         "I2S_A_DATA_IN", "PWM_2", "GPIO_A_3", "PWM_1",
+                         "PWM_0", "CAN_B_TX", "I2S_LRCLK", "CAN_B_RX", "GPIO_A_4",
+                         "GPIO_A_5";
+};
+
+&gpio3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio3>;
+       gpio-line-names = "SDIO_A_CD", "SDIO_A_CLK", "SDIO_A_CMD", "SDIO_A_D0",
+                         "SDIO_A_D1", "SDIO_A_D2", "SDIO_A_D3", "SDIO_A_PWR_EN",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "SDIO_B_CLK", "SDIO_B_CMD", "SDIO_B_D0", "SDIO_B_D1",
+                         "SDIO_B_D2", "SDIO_B_D3", "GPIO_A_6", "GPIO_A_7";
+};
+
+&gpio4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio4>;
+       gpio-line-names = "ETH_B_MDC", "ETH_B_MDIO", "ETH_B_TXD4", "ETH_B_TXD3",
+                         "ETH_B_TXD2", "ETH_B_TXD1", "ETH_B_TX_EN", "ETH_B_TX_CLK",
+                         "ETH_B_RX_CTL", "ETH_B_RX_CLK", "ETH_B_RXD0", "ETH_B_RXD1",
+                         "ETH_B_RXD2", "ETH_B_RXD3", "ETH_MDC", "ETH_MDIO",
+                         "ETH_A_TXD3", "ETH_A_TXD2", "ETH_A_TXD1", "ETH_A_TXD0",
+                         "ETH_A_TX_EN", "ETH_A_TX_CLK", "ETH_A_RX_CTL", "ETH_A_RX_CLK",
+                         "ETH_A_RXD0", "ETH_A_RXD1", "ETH_A_RXD2", "ETH_A_RXD3",
+                         "GPIO_B_0", "CARRIER_PWR_EN";
+};
+
+&lpi2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c1>;
+       status = "okay";
+
+       pca9451: pmic@25 {
+               compatible = "nxp,pca9451a";
+               reg = <0x25>;
+               nxp,i2c-lt-enable;
+
+               regulators {
+                       reg_vdd_soc: BUCK1 { /* dual phase with BUCK3 */
+                               regulator-name = "+0V8_VDD_SOC (BUCK1)";
+                               regulator-min-microvolt = <650000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       reg_vddq_ddr: BUCK2 {
+                               regulator-name = "+0V6_VDDQ_DDR (BUCK2)";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <600000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       reg_vdd_3v3: BUCK4 {
+                               regulator-name = "+3V3 (BUCK4)";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_vdd_1v8: BUCK5 {
+                               regulator-name = "+1V8 (BUCK5)";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_nvcc_dram: BUCK6 {
+                               regulator-name = "+1V1_NVCC_DRAM (BUCK6)";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_nvcc_snvs: LDO1 {
+                               regulator-name = "+1V8_NVCC_SNVS (LDO1)";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_vdd_ana: LDO4 {
+                               regulator-name = "+0V8_VDD_ANA (LDO4)";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_nvcc_sd: LDO5 {
+                               regulator-name = "NVCC_SD (LDO5)";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+               };
+       };
+
+       eeprom@50 {
+               compatible = "onnn,n24s64b", "atmel,24c64";
+               reg = <0x50>;
+               pagesize = <32>;
+               size = <8192>;
+               num-addresses = <1>;
+       };
+
+       rv3028: rtc@52 {
+               compatible = "microcrystal,rv3028";
+               reg = <0x52>;
+       };
+};
+
+&lpi2c2 { /* OSM-S I2C_A */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c2>;
+};
+
+&lpi2c3 { /* OSM-S I2C_B */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c3>;
+};
+
+&lpspi1 { /* OSM-S SPI_A */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpspi1>;
+       cs-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
+};
+
+&lpspi8 { /* OSM-S SPI_B */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpspi8>;
+       cs-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+};
+
+&lpuart1 { /* OSM-S UART_CON */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpuart1>;
+};
+
+&lpuart2 { /* OSM-S UART_C */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpuart2>;
+};
+
+&lpuart6 { /* OSM-S UART_B */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpuart6>;
+};
+
+&lpuart7 { /* OSM-S UART_A */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpuart7>;
+};
+
+&tpm3 { /* OSM-S PWM_0 */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_tpm3>;
+};
+
+&tpm4 { /* OSM-S PWM_2 */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_tpm4>;
+};
+
+&tpm6 { /* OSM-S PWM_1 */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_tpm6>;
+};
+
+&usdhc1 { /* eMMC */
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       vmmc-supply = <&reg_vdd_3v3>;
+       vqmmc-supply = <&reg_vdd_1v8>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
+
+&usdhc2 { /* OSM-S SDIO_A */
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       vmmc-supply = <&reg_usdhc2_vcc>;
+       cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+};
+
+&usdhc3 { /* OSM-S SDIO_B */
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       vqmmc-supply = <&reg_vdd_1v8>;
+};
+
+&wdog3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_enet_rgmii: enetrgmiigrp {
+               fsl,pins = <
+                       MX93_PAD_ENET2_MDC__ENET1_MDC                   0x57e /* ETH_MDC */
+                       MX93_PAD_ENET2_MDIO__ENET1_MDIO                 0x57e /* ETH_MDIO */
+                       MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0             0x57e /* ETH_A_(S)(R)(G)MII_RXD0 */
+                       MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1             0x57e /* ETH_A_(S)(R)(G)MII_RXD1 */
+                       MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2             0x57e /* ETH_A_(R)(G)MII_RXD2 */
+                       MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3             0x57e /* ETH_A_(R)(G)MII_RXD3 */
+                       MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC             0x5fe /* ETH_A_(R)(G)MII_RX_CLK */
+                       MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL       0x57e /* ETH_A_(R)(G)MII_RX_DV(_ER) */
+                       MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0             0x57e /* ETH_A_(S)(R)(G)MII_TXD0 */
+                       MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1             0x57e /* ETH_A_(S)(R)(G)MII_TXD1 */
+                       MX93_PAD_ENET2_TD2__ENET1_RGMII_TD2             0x57e /* ETH_A_(S)(R)(G)MII_TXD2 */
+                       MX93_PAD_ENET2_TD3__ENET1_RGMII_TD3             0x57e /* ETH_A_(S)(R)(G)MII_TXD3 */
+                       MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC             0x5fe /* ETH_A_(R)(G)MII_TX_CLK */
+                       MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL       0x57e /* ETH_A_(R)(G)MII_TX_EN(_ER) */
+               >;
+       };
+
+       pinctrl_eqos_rgmii: eqosrgmiigrp {
+               fsl,pins = <
+                       MX93_PAD_ENET1_MDC__ENET_QOS_MDC                0x57e /* ETH_B_MDC */
+                       MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO              0x57e /* ETH_B_MDIO */
+                       MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0          0x57e /* ETH_B_(S)(R)(G)MII_RXD0 */
+                       MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1          0x57e /* ETH_B_(S)(R)(G)MII_RXD1 */
+                       MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2          0x57e /* ETH_B_(R)(G)MII_RXD2 */
+                       MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3          0x57e /* ETH_B_(R)(G)MII_RXD3 */
+                       MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x57e /* ETH_B_(R)(G)MII_RX_CLK */
+                       MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL    0x57e /* ETH_B_(R)(G)MII_RX_DV(_ER) */
+                       MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0          0x57e /* ETH_B_(S)(R)(G)MII_TXD0 */
+                       MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1          0x57e /* ETH_B_(S)(R)(G)MII_TXD1 */
+                       MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2          0x57e /* ETH_B_(S)(R)(G)MII_TXD2 */
+                       MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3          0x57e /* ETH_B_(S)(R)(G)MII_TXD3 */
+                       MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x57e /* ETH_B_(R)(G)MII_TX_CLK */
+                       MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL    0x57e /* ETH_B_(R)(G)MII_TX_EN(_ER) */
+               >;
+       };
+
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins = <
+                       MX93_PAD_PDM_CLK__CAN1_TX                       0x139e /* CAN_A_TX */
+                       MX93_PAD_PDM_BIT_STREAM0__CAN1_RX               0x139e /* CAN_A_RX */
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO25__CAN2_TX                     0x139e /* CAN_B_TX */
+                       MX93_PAD_GPIO_IO27__CAN2_RX                     0x139e /* CAN_B_RX */
+               >;
+       };
+
+       pinctrl_gpio1: gpio1grp {
+               fsl,pins = <
+                       MX93_PAD_PDM_BIT_STREAM1__GPIO1_IO10            0x31e /* GPIO_A_0 */
+               >;
+       };
+
+       pinctrl_gpio2: gpio2grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO18__GPIO2_IO18                  0x31e /* GPIO_A_1 */
+                       MX93_PAD_GPIO_IO03__GPIO2_IO03                  0x31e /* GPIO_A_2 */
+                       MX93_PAD_GPIO_IO22__GPIO2_IO22                  0x31e /* GPIO_A_3 */
+                       MX93_PAD_GPIO_IO28__GPIO2_IO28                  0x31e /* GPIO_A_4 */
+                       MX93_PAD_GPIO_IO29__GPIO2_IO29                  0x31e /* GPIO_A_5 */
+                       MX93_PAD_GPIO_IO02__GPIO2_IO02                  0x31e /* GPIO_B_1 */
+               >;
+       };
+
+       pinctrl_gpio3: gpio3grp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO1__GPIO3_IO26                  0x31e /* GPIO_A_6 */
+                       MX93_PAD_CCM_CLKO2__GPIO3_IO27                  0x31e /* GPIO_A_7 */
+               >;
+       };
+
+       pinctrl_gpio4: gpio4grp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO3__GPIO4_IO28                  0x31e /* GPIO_B_0 */
+               >;
+       };
+
+       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 /* I2C_A_SCL */
+                       MX93_PAD_I2C2_SDA__LPI2C2_SDA                   0x40000b9e /* I2C_A_SDA */
+               >;
+       };
+
+       pinctrl_lpi2c3: lpi2c3grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO01__LPI2C3_SCL                  0x40000b9e /* I2C_B_SCL */
+                       MX93_PAD_GPIO_IO00__LPI2C3_SDA                  0x40000b9e /* I2C_B_SDA */
+               >;
+       };
+
+       pinctrl_lpspi1: lpspi1grp {
+               fsl,pins = <
+                       MX93_PAD_SAI1_TXC__LPSPI1_SIN                   0x3fe /* SPI_A_SDI_(IO0) */
+                       MX93_PAD_SAI1_RXD0__LPSPI1_SOUT                 0x3fe /* SPI_A_SDO_(IO1) */
+                       MX93_PAD_SAI1_TXD0__LPSPI1_SCK                  0x3fe /* SPI_A_SCK */
+                       MX93_PAD_SAI1_TXFS__GPIO1_IO11                  0x3fe /* SPI_A_CS0# */
+               >;
+       };
+
+       pinctrl_lpspi8: lpspi8grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO13__LPSPI8_SIN                  0x3fe /* SPI_B_SDI */
+                       MX93_PAD_GPIO_IO14__LPSPI8_SOUT                 0x3fe /* SPI_B_SDO */
+                       MX93_PAD_GPIO_IO15__LPSPI8_SCK                  0x3fe /* SPI_B_SCK */
+                       MX93_PAD_GPIO_IO12__GPIO2_IO12                  0x3fe /* SPI_B_CS0# */
+               >;
+       };
+
+       pinctrl_lpuart1: lpuart1grp {
+               fsl,pins = <
+                       MX93_PAD_UART1_RXD__LPUART1_RX                  0x31e /* UART_CON_RX */
+                       MX93_PAD_UART1_TXD__LPUART1_TX                  0x31e /* UART_CON_TX */
+               >;
+       };
+
+       pinctrl_lpuart2: lpuart2grp {
+               fsl,pins = <
+                       MX93_PAD_UART2_RXD__LPUART2_RX                  0x31e /* UART_C_RX */
+                       MX93_PAD_UART2_TXD__LPUART2_TX                  0x31e /* UART_C_TX */
+               >;
+       };
+
+       pinctrl_lpuart6: lpuart6grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO05__LPUART6_RX                  0x31e /* UART_B_RX */
+                       MX93_PAD_GPIO_IO04__LPUART6_TX                  0x31e /* UART_B_TX */
+                       MX93_PAD_GPIO_IO07__LPUART6_RTS_B               0x31e /* UART_B_CTS */
+                       MX93_PAD_GPIO_IO06__LPUART6_CTS_B               0x31e /* UART_B_RTS */
+               >;
+       };
+
+       pinctrl_lpuart7: lpuart7grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO09__LPUART7_RX                  0x31e /* UART_A_RX */
+                       MX93_PAD_GPIO_IO08__LPUART7_TX                  0x31e /* UART_A_TX */
+                       MX93_PAD_GPIO_IO11__LPUART7_RTS_B               0x31e /* UART_A_CTS */
+                       MX93_PAD_GPIO_IO10__LPUART7_CTS_B               0x31e /* UART_A_RTS */
+               >;
+       };
+
+       pinctrl_reg_usdhc2_vcc: regusdhc2vccgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_RESET_B__GPIO3_IO07                0x31e /* SDIO_A_PWR_EN */
+               >;
+       };
+
+       pinctrl_reg_vdd_carrier: regvddcarriergrp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO4__GPIO4_IO29                  0x31e /* CARRIER_PWR_EN */
+               >;
+       };
+
+       pinctrl_sai3: sai3grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO20__SAI3_RX_DATA00              0x31e /* I2S_A_DATA_IN */
+                       MX93_PAD_GPIO_IO19__SAI3_TX_DATA00              0x31e /* I2S_A_DATA_OUT */
+                       MX93_PAD_GPIO_IO17__SAI3_MCLK                   0x31e /* I2S_MCLK */
+                       MX93_PAD_GPIO_IO26__SAI3_TX_SYNC                0x31e /* I2S_LRCLK */
+                       MX93_PAD_GPIO_IO16__SAI3_TX_BCLK                0x31e /* I2S_BITCLK */
+               >;
+       };
+
+       pinctrl_tpm3: tpm3grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO24__TPM3_CH3                    0x57e /* PWM_0 */
+               >;
+       };
+
+       pinctrl_tpm4: tpm4grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO21__TPM4_CH1                    0x57e /* PWM_2 */
+               >;
+       };
+
+       pinctrl_tpm6: tpm6grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO23__TPM6_CH1                    0x57e /* PWM_1 */
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x1582
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x40001382
+                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x40001382
+                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x40001382
+                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x40001382
+                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x40001382
+                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x40001382
+                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x40001382
+                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x40001382
+                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x40001382
+                       MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x1582
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x158e
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x4000138e
+                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x4000138e
+                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x4000138e
+                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x4000138e
+                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x4000138e
+                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x4000138e
+                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x4000138e
+                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x4000138e
+                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x4000138e
+                       MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x158e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x15fe
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x400013fe
+                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x400013fe
+                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x400013fe
+                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x400013fe
+                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x400013fe
+                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x400013fe
+                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x400013fe
+                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x400013fe
+                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x400013fe
+                       MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x15fe
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__USDHC2_CLK                    0x1582 /* SDIO_A_CLK */
+                       MX93_PAD_SD2_CMD__USDHC2_CMD                    0x40001382 /* SDIO_A_CMD */
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0                0x40001382 /* SDIO_A_D0 */
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1                0x40001382 /* SDIO_A_D1 */
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2                0x40001382 /* SDIO_A_D2 */
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3                0x40001382 /* SDIO_A_D3 */
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT            0x1d0
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__USDHC2_CLK                    0x158e /* SDIO_A_CLK */
+                       MX93_PAD_SD2_CMD__USDHC2_CMD                    0x4000138e /* SDIO_A_CMD */
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0                0x4000138e /* SDIO_A_D0 */
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1                0x4000138e /* SDIO_A_D1 */
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2                0x4000138e /* SDIO_A_D2 */
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3                0x4000138e /* SDIO_A_D3 */
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT            0x1d0
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__USDHC2_CLK                    0x15fe /* SDIO_A_CLK */
+                       MX93_PAD_SD2_CMD__USDHC2_CMD                    0x400013fe /* SDIO_A_CMD */
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0                0x400013fe /* SDIO_A_D0 */
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1                0x400013fe /* SDIO_A_D1 */
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2                0x400013fe /* SDIO_A_D2 */
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3                0x400013fe /* SDIO_A_D3 */
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT            0x1d0
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CD_B__GPIO3_IO00                   0x31e /* SDIO_A_CD# */
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK                    0x1582 /* SDIO_B_CLK */
+                       MX93_PAD_SD3_CMD__USDHC3_CMD                    0x40001382 /* SDIO_B_CMD */
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0                0x40001382 /* SDIO_B_D0 */
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1                0x40001382 /* SDIO_B_D1 */
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2                0x40001382 /* SDIO_B_D2 */
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3                0x40001382 /* SDIO_B_D3 */
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK                    0x158e /* SDIO_B_CLK */
+                       MX93_PAD_SD3_CMD__USDHC3_CMD                    0x4000138e /* SDIO_B_CMD */
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0                0x4000138e /* SDIO_B_D0 */
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1                0x4000138e /* SDIO_B_D1 */
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2                0x4000138e /* SDIO_B_D2 */
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3                0x4000138e /* SDIO_B_D3 */
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK                    0x15fe /* SDIO_B_CLK */
+                       MX93_PAD_SD3_CMD__USDHC3_CMD                    0x400013fe /* SDIO_B_CMD */
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0                0x400013fe /* SDIO_B_D0 */
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1                0x400013fe /* SDIO_B_D1 */
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2                0x400013fe /* SDIO_B_D2 */
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3                0x400013fe /* SDIO_B_D3 */
+               >;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY               0xc6
+               >;
+       };
+};
index 852dd3d2eac74d457b4731f3bab2c8107a79d704..599df32976e2458e29c8d3566f0c8de75cda258f 100644 (file)
@@ -26,6 +26,8 @@
 
        aliases {
                eeprom0 = &eeprom0;
+               ethernet0 = &fec;
+               ethernet1 = &eqos;
                rtc0 = &pcf85063;
                rtc1 = &bbnsm_rtc;
        };
 };
 
 &gpio1 {
+       gpio-line-names =
+               /* 00 */ "", "", "USB_C_ALERT#", "PMIC_IRQ#",
+               /* 04 */ "", "", "", "",
+               /* 08 */ "", "", "", "BM2_TEMP_EVENT_MOD#",
+               /* 12 */ "PEX_INT#", "", "RTC_EVENT#", "",
+               /* 16 */ "", "", "", "",
+               /* 20 */ "", "", "", "",
+               /* 24 */ "", "", "", "",
+               /* 28 */ "", "", "", "";
+
        expander-irq-hog {
                gpio-hog;
                gpios = <12 GPIO_ACTIVE_LOW>;
        };
 };
 
+&gpio2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio2>;
+
+       gpio-line-names =
+               /* 00 */ "SPI6_PCS0#", "", "", "",
+               /* 04 */ "", "", "", "",
+               /* 08 */ "", "FAN_RPM", "MIPI_CSI_TRIGGER", "MIPI_CSI_SYNC",
+               /* 12 */ "", "", "", "",
+               /* 16 */ "X1_11", "X1_21", "X1_17", "X1_13",
+               /* 20 */ "X1_15", "X1_9", "", "",
+               /* 24 */ "", "", "X1_7", "",
+               /* 28 */ "", "", "", "";
+};
+
+&gpio3 {
+       gpio-line-names =
+               /* 00 */ "SD2_CD#", "", "", "",
+               /* 04 */ "", "", "", "SD2_RST#",
+               /* 08 */ "", "", "", "",
+               /* 12 */ "", "", "", "",
+               /* 16 */ "", "", "", "",
+               /* 20 */ "", "", "", "",
+               /* 24 */ "", "", "ENET1_INT#", "ENET2_INT#",
+               /* 28 */ "", "", "", "";
+};
+
+&gpio4 {
+       gpio-line-names =
+               /* 00 */ "", "", "", "",
+               /* 04 */ "", "", "", "",
+               /* 08 */ "", "", "", "",
+               /* 12 */ "", "", "", "",
+               /* 16 */ "", "", "", "",
+               /* 20 */ "", "", "", "",
+               /* 24 */ "", "", "", "",
+               /* 28 */ "", "DP_INT", "", "";
+};
+
 &lpi2c3 {
        #address-cells = <1>;
        #size-cells = <0>;
        status = "okay";
 };
 
+&pcf85063 {
+       /* RTC_EVENT# from SoM is connected on mainboard */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcf85063>;
+       interrupt-parent = <&gpio1>;
+       interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
+};
+
+&se97_som {
+       /* TEMP_EVENT# from SoM is connected on mainboard */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_temp_sensor_som>;
+       interrupt-parent = <&gpio1>;
+       interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
+};
+
 &tpm5 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_tpm5>;
        samsung,picophy-dc-vol-level-adjust = <7>;
        status = "okay";
 
-       hub_2_0: hub@1 {
+       hub_2_0: usb-hub@1 {
                compatible = "usb424,2517";
                reg = <1>;
                reset-gpios = <&expander1 2 GPIO_ACTIVE_LOW>;
        pinctrl_eqos: eqosgrp {
                fsl,pins = <
                        /* PD | FSEL_2 | DSE X4 */
-                       MX93_PAD_ENET1_MDC__ENET_QOS_MDC                0x51e
-                       MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO              0x4000051e
-                       /* PD | FSEL_2 | DSE X6 */
-                       MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0          0x57e
-                       MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1          0x57e
-                       MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2          0x57e
-                       MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3          0x57e
-                       /* PD | FSEL_3 | DSE X6 */
-                       MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK  0x5fe
-                       MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL    0x57e
+                       MX93_PAD_ENET1_MDC__ENET_QOS_MDC                        0x51e
+                       /* SION | HYS | FSEL_2 | DSE X4 */
+                       MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO                      0x4000111e
+                       /* HYS | FSEL_0 | DSE no drive */
+                       MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0                  0x1000
+                       MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1                  0x1000
+                       MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2                  0x1000
+                       MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3                  0x1000
+                       MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL            0x1000
+                       /* HYS | PD | FSEL_0 | DSE no drive */
+                       MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK  0x1400
                        /* PD | FSEL_2 | DSE X4 */
-                       MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0          0x51e
-                       MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1          0x51e
-                       MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2          0x51e
-                       MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3          0x51e
-                       MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL    0x51e
+                       MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0                  0x51e
+                       MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1                  0x51e
+                       MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2                  0x51e
+                       MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3                  0x51e
+                       MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL            0x51e
                        /* PD | FSEL_3 | DSE X3 */
                        MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK  0x58e
                >;
 
        pinctrl_eqos_phy: eqosphygrp {
                fsl,pins = <
-                       MX93_PAD_CCM_CLKO1__GPIO3_IO26          0x1306
+                       /* HYS | FSEL_0 | DSE no drive */
+                       MX93_PAD_CCM_CLKO1__GPIO3_IO26                  0x1000
                >;
        };
 
                fsl,pins = <
                        /* PD | FSEL_2 | DSE X4 */
                        MX93_PAD_ENET2_MDC__ENET1_MDC                   0x51e
-                       MX93_PAD_ENET2_MDIO__ENET1_MDIO                 0x4000051e
-                       /* PD | FSEL_2 | DSE X6 */
-                       MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0             0x57e
-                       MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1             0x57e
-                       MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2             0x57e
-                       MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3             0x57e
-                       /* PD | FSEL_3 | DSE X6 */
-                       MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC             0x5fe
-                       MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL       0x57e
+                       /* SION | HYS | FSEL_2 | DSE X4 */
+                       MX93_PAD_ENET2_MDIO__ENET1_MDIO                 0x4000111e
+                       /* HYS | FSEL_0 | DSE no drive */
+                       MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0             0x1000
+                       MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1             0x1000
+                       MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2             0x1000
+                       MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3             0x1000
+                       MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL       0x1000
+                       /* HYS | PD | FSEL_0 | DSE no drive */
+                       MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC             0x1400
                        /* PD | FSEL_2 | DSE X4 */
                        MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0             0x51e
                        MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1             0x51e
 
        pinctrl_fec_phy: fecphygrp {
                fsl,pins = <
-                       MX93_PAD_CCM_CLKO2__GPIO3_IO27          0x1306
+                       /* HYS | FSEL_0 | DSE no drive */
+                       MX93_PAD_CCM_CLKO2__GPIO3_IO27                  0x1000
                >;
        };
 
        pinctrl_flexcan1: flexcan1grp {
                fsl,pins = <
-                       MX93_PAD_PDM_BIT_STREAM0__CAN1_RX       0x139e
-                       MX93_PAD_PDM_CLK__CAN1_TX               0x139e
+                       /* HYS | PU | FSEL_0 | DSE no drive */
+                       MX93_PAD_PDM_BIT_STREAM0__CAN1_RX               0x1200
+                       /* PU | FSEL_3 | DSE X4 */
+                       MX93_PAD_PDM_CLK__CAN1_TX                       0x039e
                >;
        };
 
        pinctrl_flexcan2: flexcan2grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO25__CAN2_TX             0x139e
-                       MX93_PAD_GPIO_IO27__CAN2_RX             0x139e
+                       /* HYS | PU | FSEL_0 | DSE no drive */
+                       MX93_PAD_GPIO_IO27__CAN2_RX                     0x1200
+                       /* PU | FSEL_3 | DSE X4 */
+                       MX93_PAD_GPIO_IO25__CAN2_TX                     0x039e
+               >;
+       };
+
+       pinctrl_gpio2: gpio2grp {
+               fsl,pins = <
+                       /* HYS | PD | FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO16__GPIO2_IO16                  0x151e
+                       MX93_PAD_GPIO_IO17__GPIO2_IO17                  0x151e
+                       MX93_PAD_GPIO_IO18__GPIO2_IO18                  0x151e
+                       MX93_PAD_GPIO_IO19__GPIO2_IO19                  0x151e
+                       MX93_PAD_GPIO_IO20__GPIO2_IO20                  0x151e
+                       MX93_PAD_GPIO_IO21__GPIO2_IO21                  0x151e
+                       MX93_PAD_GPIO_IO26__GPIO2_IO26                  0x151e
+               >;
+       };
+
+       pinctrl_jtag: jtaggrp {
+               fsl,pins = <
+                       MX93_PAD_DAP_TCLK_SWCLK__JTAG_MUX_TCK           0x051e
+                       MX93_PAD_DAP_TDI__JTAG_MUX_TDI                  0x1200
+                       MX93_PAD_DAP_TDO_TRACESWO__JTAG_MUX_TDO         0x031e
+                       MX93_PAD_DAP_TMS_SWDIO__JTAG_MUX_TMS            0x1200
                >;
        };
 
        pinctrl_lpi2c3: lpi2c3grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO28__LPI2C3_SDA          0x40000b9e
-                       MX93_PAD_GPIO_IO29__LPI2C3_SCL          0x40000b9e
+                       /* SION | HYS | OD | FSEL_3 | DSE X4 */
+                       MX93_PAD_GPIO_IO28__LPI2C3_SDA                  0x4000199e
+                       MX93_PAD_GPIO_IO29__LPI2C3_SCL                  0x4000199e
                >;
        };
 
        pinctrl_lpi2c5: lpi2c5grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO22__LPI2C5_SDA          0x40000b9e
-                       MX93_PAD_GPIO_IO23__LPI2C5_SCL          0x40000b9e
+                       /* SION | HYS | OD | FSEL_3 | DSE X4 */
+                       MX93_PAD_GPIO_IO22__LPI2C5_SDA                  0x4000199e
+                       MX93_PAD_GPIO_IO23__LPI2C5_SCL                  0x4000199e
                >;
        };
 
        pinctrl_lpspi6: lpspi6grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO00__LPSPI6_PCS0         0x3fe
-                       MX93_PAD_GPIO_IO01__LPSPI6_SIN          0x3fe
-                       MX93_PAD_GPIO_IO02__LPSPI6_SOUT         0x3fe
-                       MX93_PAD_GPIO_IO03__LPSPI6_SCK          0x3fe
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO00__LPSPI6_PCS0                 0x011e
+                       /* HYS | PD | FSEL_0 | DSE no drive */
+                       MX93_PAD_GPIO_IO01__LPSPI6_SIN                  0x1400
+                       /* PD | FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO02__LPSPI6_SOUT                 0x051e
+                       MX93_PAD_GPIO_IO03__LPSPI6_SCK                  0x051e
+               >;
+       };
+
+       pinctrl_pcf85063: pcf85063grp {
+               fsl,pins = <
+                       MX93_PAD_SAI1_RXD0__GPIO1_IO14                  0x1000
+               >;
+       };
+
+       pinctrl_mipi_csi: mipicsigrp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO3__CCMSRCGPCMIX_CLKO3          0x051e /* MCLK */
+                       MX93_PAD_GPIO_IO10__GPIO2_IO10                  0x051e /* TRIGGER */
+                       MX93_PAD_GPIO_IO11__GPIO2_IO11                  0x1400 /* SYNC */
                >;
        };
 
        pinctrl_pexp_irq: pexpirqgrp {
                fsl,pins = <
-                       MX93_PAD_SAI1_TXC__GPIO1_IO12           0x1306
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_SAI1_TXC__GPIO1_IO12                   0x1000
                >;
        };
 
        pinctrl_pwmfan: pwmfangrp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO09__GPIO2_IO09          0x1306
+                       /* HYS | PU | FSEL_0 | no DSE */
+                       MX93_PAD_GPIO_IO09__GPIO2_IO09                  0x1200
+               >;
+       };
+
+       pinctrl_temp_sensor_som: tempsensorsomgrp {
+               fsl,pins = <
+                       /* HYS | FSEL_0 | no DSE */
+                       MX93_PAD_SAI1_TXFS__GPIO1_IO11                  0x1000
+               >;
+       };
+
+       pinctrl_tc9595: tc9595-grp {
+               fsl,pins = <
+                       /* HYS | PD | FSEL_0 | no DSE */
+                       MX93_PAD_CCM_CLKO4__GPIO4_IO29                  0x1400
                >;
        };
 
        pinctrl_tpm5: tpm5grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO06__TPM5_CH0            0x57e
+                       MX93_PAD_GPIO_IO06__TPM5_CH0                    0x57e
                >;
        };
 
        pinctrl_tpm6: tpm6grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO08__TPM6_CH0            0x57e
+                       MX93_PAD_GPIO_IO08__TPM6_CH0                    0x57e
                >;
        };
 
        pinctrl_typec: typecgrp {
                fsl,pins = <
-                       MX93_PAD_I2C2_SCL__GPIO1_IO02           0x1306
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_I2C2_SCL__GPIO1_IO02                   0x1000
                >;
        };
 
        pinctrl_uart1: uart1grp {
                fsl,pins = <
-                       MX93_PAD_UART1_RXD__LPUART1_RX          0x31e
-                       MX93_PAD_UART1_TXD__LPUART1_TX          0x31e
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_UART1_RXD__LPUART1_RX                  0x1000
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_UART1_TXD__LPUART1_TX                  0x011e
                >;
        };
 
        pinctrl_uart2: uart2grp {
                fsl,pins = <
-                       MX93_PAD_UART2_TXD__LPUART2_TX          0x31e
-                       MX93_PAD_UART2_RXD__LPUART2_RX          0x31e
-                       MX93_PAD_SAI1_TXD0__LPUART2_RTS_B   0x51e
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_UART2_RXD__LPUART2_RX                  0x1000
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_UART2_TXD__LPUART2_TX                  0x011e
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_SAI1_TXD0__LPUART2_RTS_B               0x011e
                >;
        };
 
        pinctrl_uart3: uart3grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO14__LPUART3_TX          0x31e
-                       MX93_PAD_GPIO_IO15__LPUART3_RX          0x31e
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_GPIO_IO15__LPUART3_RX                  0x1000
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO14__LPUART3_TX                  0x011e
                >;
        };
 
        pinctrl_uart6: uart6grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO04__LPUART6_TX          0x31e
-                       MX93_PAD_GPIO_IO05__LPUART6_RX          0x31e
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_GPIO_IO05__LPUART6_RX                  0x1000
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO04__LPUART6_TX                  0x011e
                >;
        };
 
        pinctrl_uart8: uart8grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO12__LPUART8_TX          0x31e
-                       MX93_PAD_GPIO_IO13__LPUART8_RX          0x31e
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_GPIO_IO13__LPUART8_RX                  0x1000
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO12__LPUART8_TX                  0x011e
                >;
        };
 
        pinctrl_usdhc2_gpio: usdhc2gpiogrp {
                fsl,pins = <
-                       MX93_PAD_SD2_CD_B__GPIO3_IO00           0x31e
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_SD2_CD_B__GPIO3_IO00                   0x1000
                >;
        };
 
+       /* enable SION for data and cmd pad due to ERR052021 */
        pinctrl_usdhc2_hs: usdhc2hsgrp {
                fsl,pins = <
-                       /* HYS | PD | PU | FSEL_3 | DSE X5 */
-                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x17be
-                       /* HYS | PD | PU | FSEL_3 | DSE X4 */
-                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x139e
-                       /* HYS | PD | PU | FSEL_3 | DSE X3 */
-                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x138e
-                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x138e
-                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x138e
-                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x138e
-                       /* PD | PU | FSEL_2 | DSE X3 */
-                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x50e
+                       /* PD | FSEL_3 | DSE X5 */
+                       MX93_PAD_SD2_CLK__USDHC2_CLK                    0x05be
+                       /* HYS | PU | FSEL_3 | DSE X4 */
+                       MX93_PAD_SD2_CMD__USDHC2_CMD                    0x4000139e
+                       /* HYS | PU | FSEL_3 | DSE X3 */
+                       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
+                       /* FSEL_2 | DSE X3 */
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT            0x010e
                >;
        };
 
+       /* enable SION for data and cmd pad due to ERR052021 */
        pinctrl_usdhc2_uhs: usdhc2uhsgrp {
                fsl,pins = <
-                       /* HYS | PD | PU | FSEL_3 | DSE X6 */
-                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x17fe
-                       /* HYS | PD | PU | FSEL_3 | DSE X4 */
-                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x139e
-                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x139e
-                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x139e
-                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x139e
-                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x139e
-                       /* PD | PU | FSEL_2 | DSE X3 */
-                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x50e
+                       /* PD | FSEL_3 | DSE X6 */
+                       MX93_PAD_SD2_CLK__USDHC2_CLK                    0x05fe
+                       /* HYS | PU | FSEL_3 | DSE X4 */
+                       MX93_PAD_SD2_CMD__USDHC2_CMD                    0x4000139e
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0                0x4000139e
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1                0x4000139e
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2                0x4000139e
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3                0x4000139e
+                       /* FSEL_2 | DSE X3 */
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT            0x010e
                >;
        };
 };
index e2ee9f5a042cb11d368e34bcc54a402113e1ed71..0b4b3bb866d06492978b1a011659da88bb38291d 100644 (file)
@@ -26,6 +26,8 @@
 
        aliases {
                eeprom0 = &eeprom0;
+               ethernet0 = &fec;
+               ethernet1 = &eqos;
                rtc0 = &pcf85063;
                rtc1 = &bbnsm_rtc;
        };
 };
 
 &gpio1 {
+       gpio-line-names =
+               /* 00 */ "", "", "USB_C_ALERT#", "PMIC_IRQ#",
+               /* 04 */ "", "", "", "",
+               /* 08 */ "", "", "", "BM2_TEMP_EVENT_MOD#",
+               /* 12 */ "PEX_INT#", "", "RTC_EVENT#", "",
+               /* 16 */ "", "", "", "",
+               /* 20 */ "", "", "", "",
+               /* 24 */ "", "", "", "",
+               /* 28 */ "", "", "", "";
+
        expander-irq-hog {
                gpio-hog;
                gpios = <12 GPIO_ACTIVE_LOW>;
        };
 };
 
+&gpio2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio2>;
+
+       gpio-line-names =
+               /* 00 */ "", "", "", "",
+               /* 04 */ "", "", "", "AFE_RESET#",
+               /* 08 */ "AFE_SYNC", "AFE_DRDY", "MIPI_CSI_TRIGGER", "MIPI_CSI_SYNC",
+               /* 12 */ "", "", "", "",
+               /* 16 */ "X1_19", "X1_29", "X1_25", "X1_21",
+               /* 20 */ "X1_23", "X1_17", "", "",
+               /* 24 */ "AFE_INT#", "", "X1_15", "",
+               /* 28 */ "", "", "", "";
+};
+
 &gpio3 {
+       gpio-line-names =
+               /* 00 */ "SD2_CD#", "", "", "",
+               /* 04 */ "", "", "", "SD2_RST#",
+               /* 08 */ "", "", "", "",
+               /* 12 */ "", "", "", "",
+               /* 16 */ "", "", "", "",
+               /* 20 */ "", "", "", "",
+               /* 24 */ "", "", "ENET1_INT#", "ENET2_INT#",
+               /* 28 */ "", "", "", "";
+
        ethphy-eqos-irq-hog {
                gpio-hog;
                gpios = <26 GPIO_ACTIVE_LOW>;
                input;
-               line-name = "ENET0_IRQ#";
+               line-name = "ENET1_INT#";
        };
 
        ethphy-fec-irq-hog {
                gpio-hog;
                gpios = <27 GPIO_ACTIVE_LOW>;
                input;
-               line-name = "ENET1_IRQ#";
+               line-name = "ENET2_INT#";
+       };
+};
+
+&gpio4 {
+       gpio-line-names =
+               /* 00 */ "", "", "", "",
+               /* 04 */ "", "", "", "",
+               /* 08 */ "", "", "", "",
+               /* 12 */ "", "", "", "",
+               /* 16 */ "", "", "", "",
+               /* 20 */ "", "", "", "",
+               /* 24 */ "", "", "", "",
+               /* 28 */ "", "DP_INT", "", "";
+
+       dp-int-hog {
+               gpio-hog;
+               gpios = <29 GPIO_ACTIVE_LOW>;
+               input;
+               line-name = "DP_INT";
        };
 };
 
                #gpio-cells = <2>;
                vcc-supply = <&reg_3v3>;
                gpio-line-names = "LCD_RESET#", "LCD_PWR_EN",
-                                 "LCD_BL_EN", "DP_EN",
+                                 "LCD_BLT_EN", "DP_EN",
                                  "MIPI_CSI_EN", "MIPI_CSI_RST#",
                                  "USER_LED1", "USER_LED2";
        };
        };
 };
 
+&lpspi6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpspi6>, <&pinctrl_lpspi6_cs>;
+       cs-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
 &lpuart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
 };
 
 &pcf85063 {
-       /* RTC_EVENT# is connected on MBa93xxLA */
+       /* RTC_EVENT# from SoM is connected on mainboard */
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pcf85063>;
        interrupt-parent = <&gpio1>;
        interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
 };
 
+&se97_som {
+       /* TEMP_EVENT# from SoM is connected on mainboard */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_temp_sensor_som>;
+       interrupt-parent = <&gpio1>;
+       interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
+};
+
 &tpm5 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_tpm5>;
        samsung,picophy-dc-vol-level-adjust = <7>;
        status = "okay";
 
-       hub_2_0: hub@1 {
+       hub_2_0: usb-hub@1 {
                compatible = "usb424,2517";
                reg = <1>;
                reset-gpios = <&expander1 2 GPIO_ACTIVE_LOW>;
 };
 
 &iomuxc {
+       pinctrl_afe: afegrp {
+               fsl,pins = <
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO07__GPIO2_IO07                  0x011e
+                       /* PD | FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO08__GPIO2_IO08                  0x051e
+                       /* HYS | PD */
+                       MX93_PAD_GPIO_IO09__GPIO2_IO09                  0x1400
+                       /* HYS */
+                       MX93_PAD_GPIO_IO24__GPIO2_IO24                  0x1000
+               >;
+       };
+
        pinctrl_eqos: eqosgrp {
                fsl,pins = <
                        /* PD | FSEL_2 | DSE X4 */
-                       MX93_PAD_ENET1_MDC__ENET_QOS_MDC                0x51e
-                       MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO              0x4000051e
-                       /* PD | FSEL_2 | DSE X6 */
-                       MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0          0x57e
-                       MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1          0x57e
-                       MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2          0x57e
-                       MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3          0x57e
-                       /* PD | FSEL_3 | DSE X6 */
-                       MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK  0x5fe
-                       MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL    0x57e
+                       MX93_PAD_ENET1_MDC__ENET_QOS_MDC                        0x51e
+                       /* SION | HYS | FSEL_2 | DSE X4 */
+                       MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO                      0x4000111e
+                       /* HYS | FSEL_0 | DSE no drive */
+                       MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0                  0x1000
+                       MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1                  0x1000
+                       MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2                  0x1000
+                       MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3                  0x1000
+                       MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL            0x1000
+                       /* HYS | PD | FSEL_0 | DSE no drive */
+                       MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK  0x1400
                        /* PD | FSEL_2 | DSE X4 */
-                       MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0          0x51e
-                       MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1          0x51e
-                       MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2          0x51e
-                       MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3          0x51e
-                       MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL    0x51e
+                       MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0                  0x51e
+                       MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1                  0x51e
+                       MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2                  0x51e
+                       MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3                  0x51e
+                       MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL            0x51e
                        /* PD | FSEL_3 | DSE X3 */
                        MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK  0x58e
                >;
 
        pinctrl_eqos_phy: eqosphygrp {
                fsl,pins = <
-                       MX93_PAD_CCM_CLKO1__GPIO3_IO26          0x1306
+                       /* HYS | FSEL_0 | DSE no drive */
+                       MX93_PAD_CCM_CLKO1__GPIO3_IO26                  0x1000
                >;
        };
 
                fsl,pins = <
                        /* PD | FSEL_2 | DSE X4 */
                        MX93_PAD_ENET2_MDC__ENET1_MDC                   0x51e
-                       MX93_PAD_ENET2_MDIO__ENET1_MDIO                 0x4000051e
-                       /* PD | FSEL_2 | DSE X6 */
-                       MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0             0x57e
-                       MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1             0x57e
-                       MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2             0x57e
-                       MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3             0x57e
-                       /* PD | FSEL_3 | DSE X6 */
-                       MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC             0x5fe
-                       MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL       0x57e
+                       /* SION | HYS | FSEL_2 | DSE X4 */
+                       MX93_PAD_ENET2_MDIO__ENET1_MDIO                 0x4000111e
+                       /* HYS | FSEL_0 | DSE no drive */
+                       MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0             0x1000
+                       MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1             0x1000
+                       MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2             0x1000
+                       MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3             0x1000
+                       MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL       0x1000
+                       /* HYS | PD | FSEL_0 | DSE no drive */
+                       MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC             0x1400
                        /* PD | FSEL_2 | DSE X4 */
                        MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0             0x51e
                        MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1             0x51e
 
        pinctrl_fec_phy: fecphygrp {
                fsl,pins = <
-                       MX93_PAD_CCM_CLKO2__GPIO3_IO27          0x1306
+                       /* HYS | FSEL_0 | DSE no drive */
+                       MX93_PAD_CCM_CLKO2__GPIO3_IO27                  0x1000
                >;
        };
 
        pinctrl_flexcan1: flexcan1grp {
                fsl,pins = <
-                       MX93_PAD_PDM_BIT_STREAM0__CAN1_RX       0x139e
-                       MX93_PAD_PDM_CLK__CAN1_TX               0x139e
+                       /* HYS | PU | FSEL_0 | DSE no drive */
+                       MX93_PAD_PDM_BIT_STREAM0__CAN1_RX               0x1200
+                       /* PU | FSEL_3 | DSE X4 */
+                       MX93_PAD_PDM_CLK__CAN1_TX                       0x039e
                >;
        };
 
        pinctrl_flexcan2: flexcan2grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO25__CAN2_TX             0x139e
-                       MX93_PAD_GPIO_IO27__CAN2_RX             0x139e
+                       /* HYS | PU | FSEL_0 | DSE no drive */
+                       MX93_PAD_GPIO_IO27__CAN2_RX                     0x1200
+                       /* PU | FSEL_3 | DSE X4 */
+                       MX93_PAD_GPIO_IO25__CAN2_TX                     0x039e
+               >;
+       };
+
+       pinctrl_gpio2: gpio2grp {
+               fsl,pins = <
+                       /* HYS | PD | FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO16__GPIO2_IO16                  0x151e
+                       MX93_PAD_GPIO_IO17__GPIO2_IO17                  0x151e
+                       MX93_PAD_GPIO_IO18__GPIO2_IO18                  0x151e
+                       MX93_PAD_GPIO_IO19__GPIO2_IO19                  0x151e
+                       MX93_PAD_GPIO_IO20__GPIO2_IO20                  0x151e
+                       MX93_PAD_GPIO_IO21__GPIO2_IO21                  0x151e
+                       MX93_PAD_GPIO_IO26__GPIO2_IO26                  0x151e
+               >;
+       };
+
+       pinctrl_jtag: jtaggrp {
+               fsl,pins = <
+                       MX93_PAD_DAP_TCLK_SWCLK__JTAG_MUX_TCK           0x051e
+                       MX93_PAD_DAP_TDI__JTAG_MUX_TDI                  0x1200
+                       MX93_PAD_DAP_TDO_TRACESWO__JTAG_MUX_TDO         0x031e
+                       MX93_PAD_DAP_TMS_SWDIO__JTAG_MUX_TMS            0x1200
                >;
        };
 
        pinctrl_lpi2c3: lpi2c3grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO28__LPI2C3_SDA          0x40000b9e
-                       MX93_PAD_GPIO_IO29__LPI2C3_SCL          0x40000b9e
+                       /* SION | HYS | OD | FSEL_3 | DSE X4 */
+                       MX93_PAD_GPIO_IO28__LPI2C3_SDA                  0x4000199e
+                       MX93_PAD_GPIO_IO29__LPI2C3_SCL                  0x4000199e
                >;
        };
 
        pinctrl_lpi2c5: lpi2c5grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO22__LPI2C5_SDA          0x40000b9e
-                       MX93_PAD_GPIO_IO23__LPI2C5_SCL          0x40000b9e
+                       /* SION | HYS | OD | FSEL_3 | DSE X4 */
+                       MX93_PAD_GPIO_IO22__LPI2C5_SDA                  0x4000199e
+                       MX93_PAD_GPIO_IO23__LPI2C5_SCL                  0x4000199e
+               >;
+       };
+
+       pinctrl_lpspi6: lpspi6grp {
+               fsl,pins = <
+                       /* HYS | PD | FSEL_0 | DSE no drive */
+                       MX93_PAD_GPIO_IO01__LPSPI6_SIN                  0x1400
+                       /* PD | FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO02__LPSPI6_SOUT                 0x051e
+                       MX93_PAD_GPIO_IO03__LPSPI6_SCK                  0x051e
+               >;
+       };
+
+       pinctrl_lpspi6_cs: lpspi6csgrp {
+               fsl,pins = <
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO00__GPIO2_IO00                  0x011e
+               >;
+       };
+
+       pinctrl_mipi_csi: mipicsigrp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO3__CCMSRCGPCMIX_CLKO3          0x051e /* MCLK */
+                       MX93_PAD_GPIO_IO10__GPIO2_IO10                  0x051e /* TRIGGER */
+                       MX93_PAD_GPIO_IO11__GPIO2_IO11                  0x1400 /* SYNC */
                >;
        };
 
        pinctrl_pcf85063: pcf85063grp {
                fsl,pins = <
-                       MX93_PAD_SAI1_RXD0__GPIO1_IO14          0x1306
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_SAI1_RXD0__GPIO1_IO14                  0x1000
                >;
        };
 
        pinctrl_pexp_irq: pexpirqgrp {
                fsl,pins = <
-                       MX93_PAD_SAI1_TXC__GPIO1_IO12           0x1306
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_SAI1_TXC__GPIO1_IO12                   0x1000
                >;
        };
 
        pinctrl_tc9595: tc9595-grp {
                fsl,pins = <
-                       /* DP_IRQ */
-                       MX93_PAD_CCM_CLKO4__GPIO4_IO29          0x1306
+                       /* HYS | PD | FSEL_0 | no DSE */
+                       MX93_PAD_CCM_CLKO4__GPIO4_IO29                  0x1400
+               >;
+       };
+
+       pinctrl_temp_sensor_som: tempsensorsomgrp {
+               fsl,pins = <
+                       /* HYS | FSEL_0 | no DSE */
+                       MX93_PAD_SAI1_TXFS__GPIO1_IO11                  0x1000
                >;
        };
 
        pinctrl_tpm5: tpm5grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO06__TPM5_CH0            0x57e
+                       MX93_PAD_GPIO_IO06__TPM5_CH0                    0x57e
                >;
        };
 
        pinctrl_typec: typecgrp {
                fsl,pins = <
-                       MX93_PAD_I2C2_SCL__GPIO1_IO02           0x1306
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_I2C2_SCL__GPIO1_IO02                   0x1000
                >;
        };
 
        pinctrl_uart1: uart1grp {
                fsl,pins = <
-                       MX93_PAD_UART1_RXD__LPUART1_RX          0x31e
-                       MX93_PAD_UART1_TXD__LPUART1_TX          0x31e
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_UART1_RXD__LPUART1_RX                  0x1000
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_UART1_TXD__LPUART1_TX                  0x011e
                >;
        };
 
        pinctrl_uart2: uart2grp {
                fsl,pins = <
-                       MX93_PAD_UART2_TXD__LPUART2_TX          0x31e
-                       MX93_PAD_UART2_RXD__LPUART2_RX          0x31e
-                       MX93_PAD_SAI1_TXD0__LPUART2_RTS_B       0x51e
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_UART2_RXD__LPUART2_RX                  0x1000
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_UART2_TXD__LPUART2_TX                  0x011e
+                       MX93_PAD_SAI1_TXD0__LPUART2_RTS_B               0x011e
                >;
        };
 
        pinctrl_uart3: uart3grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO14__LPUART3_TX          0x31e
-                       MX93_PAD_GPIO_IO15__LPUART3_RX          0x31e
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_GPIO_IO15__LPUART3_RX                  0x1000
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO14__LPUART3_TX                  0x011e
                >;
        };
 
        pinctrl_uart6: uart6grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO04__LPUART6_TX          0x31e
-                       MX93_PAD_GPIO_IO05__LPUART6_RX          0x31e
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_GPIO_IO05__LPUART6_RX                  0x1000
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO04__LPUART6_TX                  0x011e
                >;
        };
 
        pinctrl_uart8: uart8grp {
                fsl,pins = <
-                       MX93_PAD_GPIO_IO12__LPUART8_TX          0x31e
-                       MX93_PAD_GPIO_IO13__LPUART8_RX          0x31e
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_GPIO_IO13__LPUART8_RX                  0x1000
+                       /* FSEL_2 | DSE X4 */
+                       MX93_PAD_GPIO_IO12__LPUART8_TX                  0x011e
                >;
        };
 
        pinctrl_usdhc2_gpio: usdhc2gpiogrp {
                fsl,pins = <
-                       MX93_PAD_SD2_CD_B__GPIO3_IO00           0x31e
+                       /* HYS | FSEL_0 | No DSE */
+                       MX93_PAD_SD2_CD_B__GPIO3_IO00                   0x1000
                >;
        };
 
+       /* enable SION for data and cmd pad due to ERR052021 */
        pinctrl_usdhc2_hs: usdhc2hsgrp {
                fsl,pins = <
-                       /* HYS | PD | PU | FSEL_3 | DSE X5 */
-                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x17be
-                       /* HYS | PD | PU | FSEL_3 | DSE X4 */
-                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x139e
-                       /* HYS | PD | PU | FSEL_3 | DSE X3 */
-                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x138e
-                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x138e
-                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x138e
-                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x138e
-                       /* PD | PU | FSEL_2 | DSE X3 */
-                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x50e
+                       /* PD | FSEL_3 | DSE X5 */
+                       MX93_PAD_SD2_CLK__USDHC2_CLK                    0x05be
+                       /* HYS | PU | FSEL_3 | DSE X4 */
+                       MX93_PAD_SD2_CMD__USDHC2_CMD                    0x4000139e
+                       /* HYS | PU | FSEL_3 | DSE X3 */
+                       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
+                       /* FSEL_2 | DSE X3 */
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT            0x010e
                >;
        };
 
+       /* enable SION for data and cmd pad due to ERR052021 */
        pinctrl_usdhc2_uhs: usdhc2uhsgrp {
                fsl,pins = <
-                       /* HYS | PD | PU | FSEL_3 | DSE X6 */
-                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x17fe
-                       /* HYS | PD | PU | FSEL_3 | DSE X4 */
-                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x139e
-                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x139e
-                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x139e
-                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x139e
-                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x139e
-                       /* PD | PU | FSEL_2 | DSE X3 */
-                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x50e
+                       /* PD | FSEL_3 | DSE X6 */
+                       MX93_PAD_SD2_CLK__USDHC2_CLK                    0x05fe
+                       /* HYS | PU | FSEL_3 | DSE X4 */
+                       MX93_PAD_SD2_CMD__USDHC2_CMD                    0x4000139e
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0                0x4000139e
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1                0x4000139e
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2                0x4000139e
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3                0x4000139e
+                       /* FSEL_2 | DSE X3 */
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT            0x010e
                >;
        };
 };
index 72a9a5d4e27a3ccc6eb68983b6f4de69f06c4db0..2cabdae2422739c1f38d4adb6652c87be70f9dd8 100644 (file)
                };
        };
 
-       reg_v1v8: regulator-v1v8 {
-               compatible = "regulator-fixed";
-               regulator-name = "V_1V8";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       reg_v3v3: regulator-v3v3 {
-               compatible = "regulator-fixed";
-               regulator-name = "V_3V3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
        /* SD2 RST# via PMIC SW_EN */
        reg_usdhc2_vmmc: regulator-usdhc2 {
                compatible = "regulator-fixed";
                regulator-name = "VSD_3V3";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
-               vin-supply = <&reg_v3v3>;
+               vin-supply = <&buck4>;
                gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
                enable-active-high;
        };
 };
 
 &adc1 {
-       vref-supply = <&reg_v1v8>;
+       vref-supply = <&buck5>;
 };
 
 &flexspi1 {
                reg = <0x1b>;
        };
 
+       pca9451a: pmic@25 {
+               compatible = "nxp,pca9451a";
+               reg = <0x25>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pca9451>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+
+               regulators {
+                       /* V_0V8_SOC - hw developer guide: 0.75 .. 0.9 */
+                       buck1: BUCK1 {
+                               regulator-name = "BUCK1";
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       /* V_DDRQ - 1.1 LPDDR4 or 0.6 LPDDR4X */
+                       buck2: BUCK2 {
+                               regulator-name = "BUCK2";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       /* V_3V3 - EEPROM, RTC, ... */
+                       buck4: BUCK4 {
+                               regulator-name = "BUCK4";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_1V8 - SPI NOR, eMMC, RAM VDD1... */
+                       buck5: BUCK5 {
+                               regulator-name = "BUCK5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_1V1 - RAM VDD2*/
+                       buck6: BUCK6 {
+                               regulator-name = "BUCK6";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_1V8_BBSM, fix 1.8 */
+                       ldo1: LDO1 {
+                               regulator-name = "LDO1";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_0V8_ANA */
+                       ldo4: LDO4 {
+                               regulator-name = "LDO4";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_SD2 - 3.3/1.8V USDHC2 io Voltage */
+                       ldo5: LDO5 {
+                               regulator-name = "LDO5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+
        pcf85063: rtc@51 {
                compatible = "nxp,pcf85063a";
                reg = <0x51>;
                reg = <0x53>;
                pagesize = <16>;
                read-only;
-               vcc-supply = <&reg_v3v3>;
+               vcc-supply = <&buck4>;
        };
 
        eeprom1: eeprom@57 {
                compatible = "atmel,24c64";
                reg = <0x57>;
                pagesize = <32>;
-               vcc-supply = <&reg_v3v3>;
+               vcc-supply = <&buck4>;
        };
 
        /* protectable identification memory (part of M24C64-D @57) */
        eeprom@5f {
                compatible = "atmel,24c64d-wl";
                reg = <0x5f>;
-               vcc-supply = <&reg_v3v3>;
+               vcc-supply = <&buck4>;
        };
 
        imu@6a {
                compatible = "st,ism330dhcx";
                reg = <0x6a>;
-               vdd-supply = <&reg_v3v3>;
-               vddio-supply = <&reg_v3v3>;
+               vdd-supply = <&buck4>;
+               vddio-supply = <&buck4>;
        };
 };
 
        pinctrl-0 = <&pinctrl_usdhc1>;
        pinctrl-1 = <&pinctrl_usdhc1>;
        pinctrl-2 = <&pinctrl_usdhc1>;
+       vmmc-supply = <&buck4>;
+       vqmmc-supply = <&buck5>;
        bus-width = <8>;
        non-removable;
        no-sdio;
 &iomuxc {
        pinctrl_flexspi1: flexspi1grp {
                fsl,pins = <
-                       MX93_PAD_SD3_CMD__FLEXSPI1_A_SS0_B      0x3fe
-                       MX93_PAD_SD3_CLK__FLEXSPI1_A_SCLK       0x3fe
-                       MX93_PAD_SD3_DATA0__FLEXSPI1_A_DATA00   0x3fe
-                       MX93_PAD_SD3_DATA1__FLEXSPI1_A_DATA01   0x3fe
-                       MX93_PAD_SD3_DATA2__FLEXSPI1_A_DATA02   0x3fe
-                       MX93_PAD_SD3_DATA3__FLEXSPI1_A_DATA03   0x3fe
+                       /* FSEL 3  | DSE X6 */
+                       MX93_PAD_SD3_CMD__FLEXSPI1_A_SS0_B      0x01fe
+                       MX93_PAD_SD3_CLK__FLEXSPI1_A_SCLK       0x01fe
+                       /* HYS | PU | FSEL 3  | DSE X6 */
+                       MX93_PAD_SD3_DATA0__FLEXSPI1_A_DATA00   0x13fe
+                       MX93_PAD_SD3_DATA1__FLEXSPI1_A_DATA01   0x13fe
+                       /* HYS | FSEL 3  | DSE X6 (external PU) */
+                       MX93_PAD_SD3_DATA2__FLEXSPI1_A_DATA02   0x11fe
+                       MX93_PAD_SD3_DATA3__FLEXSPI1_A_DATA03   0x11fe
                >;
        };
 
        pinctrl_lpi2c1: lpi2c1grp {
                fsl,pins = <
-                       MX93_PAD_I2C1_SCL__LPI2C1_SCL           0x40000b9e
-                       MX93_PAD_I2C1_SDA__LPI2C1_SDA           0x40000b9e
+                       /* SION | OD | FSEL 3 | DSE X4 */
+                       MX93_PAD_I2C1_SCL__LPI2C1_SCL           0x4000199e
+                       MX93_PAD_I2C1_SDA__LPI2C1_SDA           0x4000199e
                >;
        };
 
        pinctrl_pca9451: pca9451grp {
                fsl,pins = <
-                       MX93_PAD_I2C2_SDA__GPIO1_IO03           0x1306
+                       /* HYS | PU */
+                       MX93_PAD_I2C2_SDA__GPIO1_IO03           0x1200
                >;
        };
 
        pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
                fsl,pins = <
-                       MX93_PAD_SD2_RESET_B__GPIO3_IO07        0x1306
+                       /* FSEL 2 | DSE X2 */
+                       MX93_PAD_SD2_RESET_B__GPIO3_IO07        0x106
                >;
        };
 
+       /* enable SION for data and cmd pad due to ERR052021 */
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
-                       /* HYS | PU | PD | FSEL_3 | X5 */
-                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x17be
-                       MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x17be
-                       /* HYS | PU | FSEL_3 | X5 */
-                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x13be
-                       /* HYS | PU | FSEL_3 | X4 */
-                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x139e
-                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x139e
-                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x139e
-                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x139e
-                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x139e
-                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x139e
-                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x139e
-                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x139e
+                       /* PD | FSEL 3 | DSE X5 */
+                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x5be
+                       /* HYS | FSEL 0 | no drive */
+                       MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x1000
+                       /* HYS | FSEL 3 | X5 */
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x400011be
+                       /* HYS | FSEL 3 | X4 */
+                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x4000119e
+                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x4000119e
+                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x4000119e
+                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x4000119e
+                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x4000119e
+                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x4000119e
+                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x4000119e
+                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x4000119e
                >;
        };
 
        pinctrl_wdog: wdoggrp {
                fsl,pins = <
+                       /* PU | FSEL 1 | DSE X4 */
                        MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY       0x31e
                >;
        };
index a0993022c102da243822c9161e56fa400f999f75..04b9b3d31f4faffae41b8051a1aa2e00ee53ad04 100644 (file)
                        enable-method = "psci";
                        #cooling-cells = <2>;
                        cpu-idle-states = <&cpu_pd_wait>;
+                       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 {
                        enable-method = "psci";
                        #cooling-cells = <2>;
                        cpu-idle-states = <&cpu_pd_wait>;
+                       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>;
                };
 
+               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>;
+               };
+
+               l3_cache: l3-cache {
+                       compatible = "cache";
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <256>;
+                       cache-level = <3>;
+                       cache-unified;
+               };
        };
 
        osc_32k: clock-osc-32k {
                                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
                                dmas = <&edma1 22 0 FSL_EDMA_RX>, <&edma1 21 0 0>;
                                dma-names = "rx", "tx";
+                               #sound-dai-cells = <0>;
                                status = "disabled";
                        };
 
                                clock-names = "ipg_clk", "ipg_clk_app", "pll8k";
                                dmas = <&edma1 29 0 5>;
                                dma-names = "rx";
+                               #sound-dai-cells = <0>;
                                status = "disabled";
                        };
 
                                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
                                dmas = <&edma2 59 0 FSL_EDMA_RX>, <&edma2 58 0 0>;
                                dma-names = "rx", "tx";
+                               #sound-dai-cells = <0>;
                                status = "disabled";
                        };
 
                                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
                                dmas = <&edma2 61 0 FSL_EDMA_RX>, <&edma2 60 0 0>;
                                dma-names = "rx", "tx";
+                               #sound-dai-cells = <0>;
                                status = "disabled";
                        };
 
                                clock-names = "ipg", "phy", "spba", "pll_ipg";
                                dmas = <&edma2 65 0 FSL_EDMA_RX>, <&edma2 66 0 0>;
                                dma-names = "rx", "tx";
+                               #sound-dai-cells = <0>;
                                status = "disabled";
                        };
 
index d14a54ab4fd47362510e2ba644606bcc4174615f..37a1d4ca1b2079880f6a0397027c22c5e471bd40 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/pwm/pwm.h>
 #include "imx95.dtsi"
 
 / {
                serial0 = &lpuart1;
        };
 
+       bt_sco_codec: audio-codec-bt-sco {
+               #sound-dai-cells = <1>;
+               compatible = "linux,bt-sco";
+       };
+
        chosen {
                stdout-path = &lpuart1;
        };
                reg = <0x0 0x80000000 0 0x80000000>;
        };
 
+       fan0: pwm-fan {
+               compatible = "pwm-fan";
+               #cooling-cells = <2>;
+               pwms = <&tpm6 2 4000000 PWM_POLARITY_INVERTED>;
+               cooling-levels = <64 128 192 255>;
+       };
+
        reserved-memory {
                #address-cells = <2>;
                #size-cells = <2>;
                };
        };
 
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "+V3.3_SW";
+       };
+
+       reg_audio_pwr: regulator-audio-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "audio-pwr";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&i2c4_gpio_expander_21 1 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       reg_audio_slot: regulator-audio-slot {
+               compatible = "regulator-fixed";
+               regulator-name = "audio-wm8962";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&i2c4_gpio_expander_21 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+               status = "disabled";
+       };
+
        reg_m2_pwr: regulator-m2-pwr {
                compatible = "regulator-fixed";
                regulator-name = "M.2-power";
                enable-active-high;
                off-on-delay-us = <12000>;
        };
+
+       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 = <&sai1>;
+                       dai-tdm-slot-num = <2>;
+                       dai-tdm-slot-width = <16>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&bt_sco_codec 1>;
+               };
+       };
+
+       sound-micfil {
+               compatible = "fsl,imx-audio-card";
+               model = "micfil-audio";
+
+               pri-dai-link {
+                       link-name = "micfil hifi";
+                       format = "i2s";
+                       cpu {
+                               sound-dai = <&micfil>;
+                       };
+               };
+       };
+
+       sound-wm8962 {
+               compatible = "fsl,imx-audio-wm8962";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_hp>;
+               model = "wm8962-audio";
+               audio-cpu = <&sai3>;
+               audio-codec = <&wm8962>;
+               hp-det-gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+               audio-routing = "Headphone Jack", "HPOUTL",
+                               "Headphone Jack", "HPOUTR",
+                               "Ext Spk", "SPKOUTL",
+                               "Ext Spk", "SPKOUTR",
+                               "AMIC", "MICBIAS",
+                               "IN3R", "AMIC",
+                               "IN1R", "AMIC";
+       };
+};
+
+&flexspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexspi1>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_flexspi1_reset>;
+               reset-gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <200000000>;
+               spi-tx-bus-width = <8>;
+               spi-rx-bus-width = <8>;
+       };
+};
+
+&lpi2c4 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c4>;
+       status = "okay";
+
+       wm8962: audio-codec@1a {
+               compatible = "wlf,wm8962";
+               reg = <0x1a>;
+               clocks = <&scmi_clk IMX95_CLK_SAI3>;
+               DCVDD-supply = <&reg_audio_pwr>;
+               DBVDD-supply = <&reg_audio_pwr>;
+               AVDD-supply = <&reg_audio_pwr>;
+               CPVDD-supply = <&reg_audio_pwr>;
+               MICVDD-supply = <&reg_audio_pwr>;
+               PLLVDD-supply = <&reg_audio_pwr>;
+               SPKVDD1-supply = <&reg_audio_pwr>;
+               SPKVDD2-supply = <&reg_audio_pwr>;
+               gpio-cfg = < 0x0000 /* 0:Default */
+                            0x0000 /* 1:Default */
+                            0x0000 /* 2:FN_DMICCLK */
+                            0x0000 /* 3:Default */
+                            0x0000 /* 4:FN_DMICCDAT */
+                            0x0000 /* 5:Default */
+                          >;
+       };
+
+       i2c4_gpio_expander_21: gpio@21 {
+               compatible = "nxp,pcal6408";
+               reg = <0x21>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c4_pcal6408>;
+               vcc-supply = <&reg_3p3v>;
+       };
 };
 
 &lpi2c7 {
        status = "okay";
 };
 
+&micfil {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pdm>;
+       assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>,
+                         <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>,
+                         <&scmi_clk IMX95_CLK_AUDIOPLL1>,
+                         <&scmi_clk IMX95_CLK_AUDIOPLL2>,
+                         <&scmi_clk IMX95_CLK_PDM>;
+       assigned-clock-parents = <0>, <0>, <0>, <0>,
+                                <&scmi_clk IMX95_CLK_AUDIOPLL1>;
+       assigned-clock-rates = <3932160000>,
+                              <3612672000>, <393216000>,
+                              <361267200>, <49152000>;
+       status = "okay";
+};
+
 &mu7 {
        status = "okay";
 };
        status = "okay";
 };
 
+&sai1 {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>,
+                         <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>,
+                         <&scmi_clk IMX95_CLK_AUDIOPLL1>,
+                         <&scmi_clk IMX95_CLK_AUDIOPLL2>,
+                         <&scmi_clk IMX95_CLK_SAI1>;
+       assigned-clock-parents = <0>, <0>, <0>, <0>,
+                                <&scmi_clk IMX95_CLK_AUDIOPLL1>;
+       assigned-clock-rates = <3932160000>,
+                              <3612672000>, <393216000>,
+                              <361267200>, <12288000>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
+&sai3 {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai3>;
+       assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>,
+                         <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>,
+                         <&scmi_clk IMX95_CLK_AUDIOPLL1>,
+                         <&scmi_clk IMX95_CLK_AUDIOPLL2>,
+                         <&scmi_clk IMX95_CLK_SAI3>;
+       assigned-clock-parents = <0>, <0>, <0>, <0>,
+                                <&scmi_clk IMX95_CLK_AUDIOPLL1>;
+       assigned-clock-rates = <3932160000>,
+                              <3612672000>, <393216000>,
+                              <361267200>, <12288000>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
 &usdhc1 {
        pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
        pinctrl-0 = <&pinctrl_usdhc1>;
 };
 
 &scmi_iomuxc {
+       pinctrl_flexspi1: flexspi1grp {
+               fsl,pins = <
+                       IMX95_PAD_XSPI1_SS0_B__FLEXSPI1_A_SS0_B                 0x3fe
+                       IMX95_PAD_XSPI1_SCLK__FLEXSPI1_A_SCLK                   0x3fe
+                       IMX95_PAD_XSPI1_DQS__FLEXSPI1_A_DQS                     0x3fe
+                       IMX95_PAD_XSPI1_DATA0__FLEXSPI1_A_DATA_BIT0             0x3fe
+                       IMX95_PAD_XSPI1_DATA1__FLEXSPI1_A_DATA_BIT1             0x3fe
+                       IMX95_PAD_XSPI1_DATA2__FLEXSPI1_A_DATA_BIT2             0x3fe
+                       IMX95_PAD_XSPI1_DATA3__FLEXSPI1_A_DATA_BIT3             0x3fe
+                       IMX95_PAD_XSPI1_DATA4__FLEXSPI1_A_DATA_BIT4             0x3fe
+                       IMX95_PAD_XSPI1_DATA5__FLEXSPI1_A_DATA_BIT5             0x3fe
+                       IMX95_PAD_XSPI1_DATA6__FLEXSPI1_A_DATA_BIT6             0x3fe
+                       IMX95_PAD_XSPI1_DATA7__FLEXSPI1_A_DATA_BIT7             0x3fe
+               >;
+       };
+
+       pinctrl_flexspi1_reset: flexspi1-reset-grp {
+               fsl,pins = <
+                       IMX95_PAD_XSPI1_SS1_B__GPIO5_IO_BIT11                   0x3fe
+               >;
+       };
+
+       pinctrl_hp: hpgrp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO11__GPIO2_IO_BIT11             0x31e
+               >;
+       };
+
+       pinctrl_i2c4_pcal6408: i2c4pcal6498grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO18__GPIO2_IO_BIT18                     0x31e
+               >;
+       };
+
        pinctrl_i2c7_pcal6524: i2c7pcal6524grp {
                fsl,pins = <
                        IMX95_PAD_GPIO_IO36__GPIO5_IO_BIT16                     0x31e
                >;
        };
 
+       pinctrl_lpi2c4: lpi2c4grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO30__LPI2C4_SDA                 0x40000b9e
+                       IMX95_PAD_GPIO_IO31__LPI2C4_SCL                 0x40000b9e
+               >;
+       };
+
        pinctrl_lpi2c7: lpi2c7grp {
                fsl,pins = <
                        IMX95_PAD_GPIO_IO08__LPI2C7_SDA                 0x40000b9e
                >;
        };
 
+       pinctrl_pdm: pdmgrp {
+               fsl,pins = <
+                       IMX95_PAD_PDM_CLK__AONMIX_TOP_PDM_CLK                           0x31e
+                       IMX95_PAD_PDM_BIT_STREAM0__AONMIX_TOP_PDM_BIT_STREAM_BIT0       0x31e
+               >;
+       };
+
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       IMX95_PAD_SAI1_RXD0__AONMIX_TOP_SAI1_RX_DATA_BIT0    0x31e
+                       IMX95_PAD_SAI1_TXC__AONMIX_TOP_SAI1_TX_BCLK      0x31e
+                       IMX95_PAD_SAI1_TXFS__AONMIX_TOP_SAI1_TX_SYNC     0x31e
+                       IMX95_PAD_SAI1_TXD0__AONMIX_TOP_SAI1_TX_DATA_BIT0    0x31e
+               >;
+       };
+
+       pinctrl_sai2: sai2grp {
+               fsl,pins = <
+                       IMX95_PAD_ENET2_MDIO__NETCMIX_TOP_SAI2_RX_BCLK                  0x31e
+                       IMX95_PAD_ENET2_MDC__NETCMIX_TOP_SAI2_RX_SYNC                   0x31e
+                       IMX95_PAD_ENET2_TD3__NETCMIX_TOP_SAI2_RX_DATA_BIT0              0x31e
+                       IMX95_PAD_ENET2_TD2__NETCMIX_TOP_SAI2_RX_DATA_BIT1              0x31e
+                       IMX95_PAD_ENET2_TXC__NETCMIX_TOP_SAI2_TX_BCLK                   0x31e
+                       IMX95_PAD_ENET2_TX_CTL__NETCMIX_TOP_SAI2_TX_SYNC                0x31e
+                       IMX95_PAD_ENET2_RX_CTL__NETCMIX_TOP_SAI2_TX_DATA_BIT0           0x31e
+                       IMX95_PAD_ENET2_RXC__NETCMIX_TOP_SAI2_TX_DATA_BIT1              0x31e
+                       IMX95_PAD_ENET2_RD0__NETCMIX_TOP_SAI2_TX_DATA_BIT2              0x31e
+                       IMX95_PAD_ENET2_RD1__NETCMIX_TOP_SAI2_TX_DATA_BIT3              0x31e
+                       IMX95_PAD_ENET2_RD2__NETCMIX_TOP_SAI2_MCLK                      0x31e
+               >;
+       };
+
+       pinctrl_sai3: sai3grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO17__SAI3_MCLK                          0x31e
+                       IMX95_PAD_GPIO_IO16__SAI3_TX_BCLK                       0x31e
+                       IMX95_PAD_GPIO_IO26__SAI3_TX_SYNC                       0x31e
+                       IMX95_PAD_GPIO_IO20__SAI3_RX_DATA_BIT0                  0x31e
+                       IMX95_PAD_GPIO_IO21__SAI3_TX_DATA_BIT0                  0x31e
+               >;
+       };
+
+       pinctrl_tpm6: tpm6grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO19__TPM6_CH2                   0x51e
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        IMX95_PAD_UART1_RXD__AONMIX_TOP_LPUART1_RX      0x31e
                >;
        };
 };
+
+&thermal_zones {
+       a55-thermal {
+               trips {
+                       atrip2: trip2 {
+                               temperature = <55000>;
+                               hysteresis = <2000>;
+                               type = "active";
+                       };
+
+                       atrip3: trip3 {
+                               temperature = <65000>;
+                               hysteresis = <2000>;
+                               type = "active";
+                       };
+
+                       atrip4: trip4 {
+                               temperature = <75000>;
+                               hysteresis = <2000>;
+                               type = "active";
+                       };
+               };
+
+               cooling-maps {
+                       map1 {
+                               trip = <&atrip2>;
+                               cooling-device = <&fan0 0 1>;
+                       };
+
+                       map2 {
+                               trip = <&atrip3>;
+                               cooling-device = <&fan0 1 2>;
+                       };
+
+                       map3 {
+                               trip = <&atrip4>;
+                               cooling-device = <&fan0 2 3>;
+                       };
+               };
+       };
+};
+
+&tpm6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_tpm6>;
+       status = "okay";
+};
index 425272aa5a81605551f52f70886077bb157bbf45..03661e76550f4d5b8e5e706ad51d6f7620cb1dc3 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright 2024 NXP
  */
 
+#include <dt-bindings/dma/fsl-edma.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
                };
        };
 
+       dummy: clock-dummy {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "dummy";
+       };
+
        clk_ext1: clock-ext1 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
        firmware {
                scmi {
                        compatible = "arm,scmi";
-                       mboxes = <&mu2 5 0>, <&mu2 3 0>, <&mu2 3 1>;
+                       mboxes = <&mu2 5 0>, <&mu2 3 0>, <&mu2 3 1>, <&mu2 5 1>;
                        shmem = <&scmi_buf0>, <&scmi_buf1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
        };
 
-       thermal-zones {
+       thermal_zones: thermal-zones {
                a55-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <2000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
 
+                       edma2: dma-controller@42000000 {
+                               compatible = "fsl,imx95-edma5";
+                               reg = <0x42000000 0x210000>;
+                               #dma-cells = <3>;
+                               dma-channels = <64>;
+                               interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "dma";
+                       };
+
+                       edma3: dma-controller@42210000 {
+                               compatible = "fsl,imx95-edma5";
+                               reg = <0x42210000 0x210000>;
+                               #dma-cells = <3>;
+                               dma-channels = <64>;
+                               interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "dma";
+                       };
+
                        mu7: mailbox@42430000 {
                                compatible = "fsl,imx95-mu";
                                reg = <0x42430000 0x10000>;
                                clock-names = "per", "ipg";
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               dmas = <&edma2 8 0 0>, <&edma2 9 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clock-names = "per", "ipg";
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               dmas = <&edma2 10 0 0>, <&edma2 11 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&scmi_clk IMX95_CLK_LPSPI3>,
                                         <&scmi_clk IMX95_CLK_BUSWAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 12 0 0>, <&edma2 13 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&scmi_clk IMX95_CLK_LPSPI4>,
                                         <&scmi_clk IMX95_CLK_BUSWAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 14 0 0>, <&edma2 15 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&scmi_clk IMX95_CLK_LPUART3>;
                                clock-names = "ipg";
+                               dmas = <&edma2 18 0 FSL_EDMA_RX>, <&edma2 17 0 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&scmi_clk IMX95_CLK_LPUART4>;
                                clock-names = "ipg";
+                               dmas = <&edma2 20 0 FSL_EDMA_RX>, <&edma2 19 0 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&scmi_clk IMX95_CLK_LPUART5>;
                                clock-names = "ipg";
+                               dmas = <&edma2 22 0 FSL_EDMA_RX>, <&edma2 21 0 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&scmi_clk IMX95_CLK_LPUART6>;
                                clock-names = "ipg";
+                               dmas = <&edma2 24 0 FSL_EDMA_RX>, <&edma2 23 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       flexcan2: can@425b0000 {
+                               compatible = "fsl,imx95-flexcan";
+                               reg = <0x425b0000 0x10000>;
+                               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX95_CLK_CAN2>;
+                               clock-names = "ipg", "per";
+                               assigned-clocks = <&scmi_clk IMX95_CLK_CAN2>;
+                               assigned-clock-parents = <&scmi_clk IMX95_CLK_SYSPLL1_PFD1_DIV2>;
+                               assigned-clock-rates = <40000000>;
+                               fsl,clk-source = /bits/ 8 <0>;
+                               status = "disabled";
+                       };
+
+                       flexcan3: can@42600000 {
+                               compatible = "fsl,imx95-flexcan";
+                               reg = <0x42600000 0x10000>;
+                               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX95_CLK_CAN3>;
+                               clock-names = "ipg", "per";
+                               assigned-clocks = <&scmi_clk IMX95_CLK_CAN3>;
+                               assigned-clock-parents = <&scmi_clk IMX95_CLK_SYSPLL1_PFD1_DIV2>;
+                               assigned-clock-rates = <40000000>;
+                               fsl,clk-source = /bits/ 8 <0>;
+                               status = "disabled";
+                       };
+
+                       flexspi1: spi@425e0000 {
+                               compatible = "nxp,imx8mm-fspi";
+                               reg = <0x425e0000 0x10000>, <0x28000000 0x8000000>;
+                               reg-names = "fspi_base", "fspi_mmap";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_FLEXSPI1>,
+                                        <&scmi_clk IMX95_CLK_FLEXSPI1>;
+                               clock-names = "fspi_en", "fspi";
+                               assigned-clocks = <&scmi_clk IMX95_CLK_FLEXSPI1>;
+                               assigned-clock-parents = <&scmi_clk IMX95_CLK_SYSPLL1_PFD1>;
+                               assigned-clock-rates = <200000000>;
+                               status = "disabled";
+                       };
+
+                       sai3: sai@42650000 {
+                               compatible = "fsl,imx95-sai";
+                               reg = <0x42650000 0x10000>;
+                               interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>, <&dummy>,
+                                        <&scmi_clk IMX95_CLK_SAI3>, <&dummy>,
+                                        <&dummy>;
+                               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+                               dmas = <&edma2 61 0 FSL_EDMA_RX>, <&edma2 60 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       sai4: sai@42660000 {
+                               compatible = "fsl,imx95-sai";
+                               reg = <0x42660000 0x10000>;
+                               interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>, <&dummy>,
+                                        <&scmi_clk IMX95_CLK_SAI4>, <&dummy>,
+                                        <&dummy>;
+                               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+                               dmas = <&edma2 68 0 FSL_EDMA_RX>, <&edma2 67 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       sai5: sai@42670000 {
+                               compatible = "fsl,imx95-sai";
+                               reg = <0x42670000 0x10000>;
+                               interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>, <&dummy>,
+                                        <&scmi_clk IMX95_CLK_SAI5>, <&dummy>,
+                                        <&dummy>;
+                               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+                               dmas = <&edma2 70 0 FSL_EDMA_RX>, <&edma2 69 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       xcvr: xcvr@42680000 {
+                               compatible = "fsl,imx95-xcvr";
+                               reg = <0x42680000 0x800>, <0x42680800 0x400>,
+                                     <0x42680c00 0x080>, <0x42680e00 0x080>;
+                               reg-names = "ram", "regs", "rxfifo", "txfifo";
+                               interrupts = /* XCVR IRQ 0 */
+                                            <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
+                                            /* XCVR IRQ 1 */
+                                            <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX95_CLK_SPDIF>,
+                                        <&dummy>,
+                                        <&scmi_clk IMX95_CLK_AUDIOXCVR>;
+                               clock-names = "ipg", "phy", "spba", "pll_ipg";
+                               dmas = <&edma2 65 0 1>, <&edma2 66 0 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&scmi_clk IMX95_CLK_LPUART7>;
                                clock-names = "ipg";
+                               dmas = <&edma2 26 0 FSL_EDMA_RX>, <&edma2 25 0 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&scmi_clk IMX95_CLK_LPUART8>;
                                clock-names = "ipg";
+                               dmas = <&edma2 28 0 FSL_EDMA_RX>, <&edma2 27 0 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                clock-names = "per", "ipg";
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               dmas = <&edma2 71 0 0>, <&edma2 72 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clock-names = "per", "ipg";
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               dmas = <&edma2 73 0 0>, <&edma2 74 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clock-names = "per", "ipg";
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               dmas = <&edma2 75 0 0>, <&edma2 76 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clock-names = "per", "ipg";
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               dmas = <&edma2 77 0 0>, <&edma2 78 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&scmi_clk IMX95_CLK_LPSPI5>,
                                         <&scmi_clk IMX95_CLK_BUSWAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 79 0 0>, <&edma2 80 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&scmi_clk IMX95_CLK_LPSPI6>,
                                         <&scmi_clk IMX95_CLK_BUSWAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 81 0 0>, <&edma2 82 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&scmi_clk IMX95_CLK_LPSPI7>,
                                         <&scmi_clk IMX95_CLK_BUSWAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 83 0 0>, <&edma2 84 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&scmi_clk IMX95_CLK_LPSPI8>,
                                         <&scmi_clk IMX95_CLK_BUSWAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 85 0 0>, <&edma2 86 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                #mbox-cells = <2>;
                                status = "disabled";
                        };
+
+                       flexcan4: can@427c0000 {
+                               compatible = "fsl,imx95-flexcan";
+                               reg = <0x427c0000 0x10000>;
+                               interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX95_CLK_CAN4>;
+                               clock-names = "ipg", "per";
+                               assigned-clocks = <&scmi_clk IMX95_CLK_CAN4>;
+                               assigned-clock-parents = <&scmi_clk IMX95_CLK_SYSPLL1_PFD1_DIV2>;
+                               assigned-clock-rates = <40000000>;
+                               fsl,clk-source = /bits/ 8 <0>;
+                               status = "disabled";
+                       };
+
+                       flexcan5: can@427d0000 {
+                               compatible = "fsl,imx95-flexcan";
+                               reg = <0x427d0000 0x10000>;
+                               interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX95_CLK_CAN5>;
+                               clock-names = "ipg", "per";
+                               assigned-clocks = <&scmi_clk IMX95_CLK_CAN5>;
+                               assigned-clock-parents = <&scmi_clk IMX95_CLK_SYSPLL1_PFD1_DIV2>;
+                               assigned-clock-rates = <40000000>;
+                               fsl,clk-source = /bits/ 8 <0>;
+                               status = "disabled";
+                       };
                };
 
                aips3: bus@42800000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
 
+                       edma1: dma-controller@44000000 {
+                               compatible = "fsl,imx93-edma3";
+                               reg = <0x44000000 0x200000>;
+                               #dma-cells = <3>;
+                               dma-channels = <31>;
+                               interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSAON>;
+                               clock-names = "dma";
+                       };
+
                        mu1: mailbox@44220000 {
                                compatible = "fsl,imx95-mu";
                                reg = <0x44220000 0x10000>;
                                clock-names = "per", "ipg";
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               dmas = <&edma1 12 0 0>, <&edma1 13 0 FSL_EDMA_RX> ;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clock-names = "per", "ipg";
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               dmas = <&edma1 14 0 0>, <&edma1 15 0 FSL_EDMA_RX> ;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&scmi_clk IMX95_CLK_LPSPI1>,
                                         <&scmi_clk IMX95_CLK_BUSAON>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma1 16 0 FSL_EDMA_RX>, <&edma1 17 0 0> ;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&scmi_clk IMX95_CLK_LPSPI2>,
                                         <&scmi_clk IMX95_CLK_BUSAON>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma1 18 0 FSL_EDMA_RX>, <&edma1 19 0 0> ;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&scmi_clk IMX95_CLK_LPUART1>;
                                clock-names = "ipg";
+                               dmas = <&edma1 21 0 FSL_EDMA_RX>, <&edma1 20 0 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&scmi_clk IMX95_CLK_LPUART2>;
                                clock-names = "ipg";
+                               dmas = <&edma1 23 0 FSL_EDMA_RX>, <&edma1 22 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       flexcan1: can@443a0000 {
+                               compatible = "fsl,imx95-flexcan";
+                               reg = <0x443a0000 0x10000>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSAON>,
+                                        <&scmi_clk IMX95_CLK_CAN1>;
+                               clock-names = "ipg", "per";
+                               assigned-clocks = <&scmi_clk IMX95_CLK_CAN1>;
+                               assigned-clock-parents = <&scmi_clk IMX95_CLK_SYSPLL1_PFD1_DIV2>;
+                               assigned-clock-rates = <40000000>;
+                               fsl,clk-source = /bits/ 8 <0>;
+                               status = "disabled";
+                       };
+
+                       sai1: sai@443b0000 {
+                               compatible = "fsl,imx95-sai";
+                               reg = <0x443b0000 0x10000>;
+                               interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSAON>, <&dummy>,
+                                        <&scmi_clk IMX95_CLK_SAI1>, <&dummy>,
+                                        <&dummy>;
+                               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+                               dmas = <&edma1 25 0 FSL_EDMA_RX>, <&edma1 24 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       micfil: micfil@44520000 {
+                               compatible = "fsl,imx95-micfil", "fsl,imx93-micfil";
+                               reg = <0x44520000 0x10000>;
+                               interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSAON>,
+                                        <&scmi_clk IMX95_CLK_PDM>,
+                                        <&scmi_clk IMX95_CLK_AUDIOPLL1>,
+                                        <&scmi_clk IMX95_CLK_AUDIOPLL2>,
+                                        <&dummy>;
+                               clock-names = "ipg_clk", "ipg_clk_app",
+                                             "pll8k", "pll11k", "clkext3";
+                               dmas = <&edma1 6 0 5>;
+                               dma-names = "rx";
                                status = "disabled";
                        };
 
                        power-domains = <&scmi_devpd IMX95_PD_HSIO_TOP>;
                        status = "disabled";
                };
+
+               netcmix_blk_ctrl: syscon@4c810000 {
+                       compatible = "nxp,imx95-netcmix-blk-ctrl", "syscon";
+                       reg = <0x0 0x4c810000 0x0 0x10000>;
+                       #clock-cells = <1>;
+                       clocks = <&scmi_clk IMX95_CLK_BUSNETCMIX>;
+                       assigned-clocks = <&scmi_clk IMX95_CLK_BUSNETCMIX>;
+                       assigned-clock-parents = <&scmi_clk IMX95_CLK_SYSPLL1_PFD1_DIV2>;
+                       assigned-clock-rates = <133333333>;
+                       power-domains = <&scmi_devpd IMX95_PD_NETC>;
+                       status = "disabled";
+               };
+
+               sai2: sai@4c880000 {
+                       compatible = "fsl,imx95-sai";
+                       reg = <0x0 0x4c880000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&scmi_clk IMX95_CLK_BUSNETCMIX>, <&dummy>,
+                                <&scmi_clk IMX95_CLK_SAI2>, <&dummy>,
+                                <&dummy>;
+                       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+                       power-domains = <&scmi_devpd IMX95_PD_NETC>;
+                       dmas = <&edma2 59 0 FSL_EDMA_RX>, <&edma2 58 0 0>;
+                       dma-names = "rx", "tx";
+                       status = "disabled";
+               };
+
+               ddr-pmu@4e090dc0 {
+                       compatible = "fsl,imx95-ddr-pmu", "fsl,imx93-ddr-pmu";
+                       reg = <0x0 0x4e090dc0 0x0 0x200>;
+                       interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+               };
        };
 };
index 815241526a0d3da100c465622c1cf90c02e5398f..c60c7a9e54aff9c8f61784f092cba2f3635c174d 100644 (file)
                        reset-gpios = <&expander2 7 GPIO_ACTIVE_LOW>;
                        reset-assert-us = <500000>;
                        reset-deassert-us = <500>;
+                       interrupt-parent = <&expander2>;
+                       interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
                };
        };
 };
 };
 
 &i2c2 {
-       clock-frequency = <100000>;
        pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c2>;
        pinctrl-1 = <&pinctrl_i2c2_gpio>;
                reg = <0x1f>;
        };
 
+       /*
+        * TUSB8041 is at 0x41, but not connected by default
+        * Note: TUSB8041 only supports 100 kHz!
+        */
+
        eeprom3: eeprom@57 {
                compatible = "nxp,se97b", "atmel,24c02";
                reg = <0x57>;
 };
 
 &i2c3 {
-       clock-frequency = <100000>;
        pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c3>;
        pinctrl-1 = <&pinctrl_i2c3_gpio>;
index 65f7b5a50eb51d678bdf3f27efff2b5d92debd66..1b2b20c6126dc2aac83a93b7bc228d48c6942b91 100644 (file)
@@ -27,6 +27,7 @@ fman@1a00000 {
                reg = <0xf0000 0x1000>;
                fsl,fman-ports = <&fman0_rx_0x10 &fman0_tx_0x30>;
                pcsphy-handle = <&pcsphy6>;
+               pcs-handle = <&pcsphy6>;
        };
 
        mdio@f1000 {
index 3f70482c98c30ec2526a006c26c98e7d856cc91f..55d78f6f7c6ca1e961b3d77c45ae44ebd77650fc 100644 (file)
@@ -27,6 +27,7 @@ fman@1a00000 {
                reg = <0xf2000 0x1000>;
                fsl,fman-ports = <&fman0_rx_0x11 &fman0_tx_0x31>;
                pcsphy-handle = <&pcsphy7>;
+               pcs-handle = <&pcsphy7>;
        };
 
        mdio@f3000 {
index 78841c1f32527e562dc32e46d8d2c2898d7e2734..18916a860c2ed9646a12a337fdd427fa502e2812 100644 (file)
@@ -26,6 +26,7 @@ fman@1a00000 {
                fsl,fman-ports = <&fman0_rx_0x08 &fman0_tx_0x28>;
                ptp-timer = <&ptp_timer0>;
                pcsphy-handle = <&pcsphy0>;
+               pcs-handle = <&pcsphy0>;
        };
 
        mdio@e1000 {
index 1f43fa66622218fa4a9da77bc48b9501e196f40e..e90af445a293d791daf0e81c4bdc0207c6f5e5a8 100644 (file)
@@ -26,6 +26,7 @@ fman@1a00000 {
                fsl,fman-ports = <&fman0_rx_0x09 &fman0_tx_0x29>;
                ptp-timer = <&ptp_timer0>;
                pcsphy-handle = <&pcsphy1>;
+               pcs-handle = <&pcsphy1>;
        };
 
        mdio@e3000 {
index de0aa017701dd9129a6fd3934f341e8403e72526..fec93905bc818e9e641f49a74b1209eed3babbd0 100644 (file)
@@ -26,6 +26,7 @@ fman@1a00000 {
                fsl,fman-ports = <&fman0_rx_0x0a &fman0_tx_0x2a>;
                ptp-timer = <&ptp_timer0>;
                pcsphy-handle = <&pcsphy2>;
+               pcs-handle = <&pcsphy2>;
        };
 
        mdio@e5000 {
index 6904aa5d8e5479e6761bb936f862838d876fca0c..2aa953faa62b1187e9d68cf8b5b9bda534c671fd 100644 (file)
@@ -26,6 +26,7 @@ fman@1a00000 {
                fsl,fman-ports = <&fman0_rx_0x0b &fman0_tx_0x2b>;
                ptp-timer = <&ptp_timer0>;
                pcsphy-handle = <&pcsphy3>;
+               pcs-handle = <&pcsphy3>;
        };
 
        mdio@e7000 {
index a3d29d470297e649e9d753c57c84d6fb894220c7..948e39411415e6ab656137d5b9a05cc0aa06d456 100644 (file)
@@ -26,6 +26,7 @@ fman@1a00000 {
                fsl,fman-ports = <&fman0_rx_0x0c &fman0_tx_0x2c>;
                ptp-timer = <&ptp_timer0>;
                pcsphy-handle = <&pcsphy4>;
+               pcs-handle = <&pcsphy4>;
        };
 
        mdio@e9000 {
index fc19ae2e8d3bc4b2e40bc34bcbe402782f4e77ca..fa054bfe7d5c556046050ce9a6edbc02b29b789c 100644 (file)
                #size-cells = <1>;
                ranges = <0 0 0 0x80000000>;
 
+               pinctrl: pinctrl@4009c240 {
+                       compatible = "nxp,s32g2-siul2-pinctrl";
+                               /* MSCR0-MSCR101 registers on siul2_0 */
+                       reg = <0x4009c240 0x198>,
+                               /* MSCR112-MSCR122 registers on siul2_1 */
+                             <0x44010400 0x2c>,
+                               /* MSCR144-MSCR190 registers on siul2_1 */
+                             <0x44010480 0xbc>,
+                               /* IMCR0-IMCR83 registers on siul2_0 */
+                             <0x4009ca40 0x150>,
+                               /* IMCR119-IMCR397 registers on siul2_1 */
+                             <0x44010c1c 0x45c>,
+                               /* IMCR430-IMCR495 registers on siul2_1 */
+                             <0x440110f8 0x108>;
+
+                       jtag_pins: jtag-pins {
+                               jtag-grp0 {
+                                       pinmux = <0x0>;
+                                       input-enable;
+                                       bias-pull-up;
+                                       slew-rate = <166>;
+                               };
+
+                               jtag-grp1 {
+                                       pinmux = <0x11>;
+                                       slew-rate = <166>;
+                               };
+
+                               jtag-grp2 {
+                                       pinmux = <0x40>;
+                                       input-enable;
+                                       bias-pull-down;
+                                       slew-rate = <166>;
+                               };
+
+                               jtag-grp3 {
+                                       pinmux = <0x23c0>,
+                                                <0x23d0>,
+                                                <0x2320>;
+                               };
+
+                               jtag-grp4 {
+                                       pinmux = <0x51>;
+                                       input-enable;
+                                       bias-pull-up;
+                                       slew-rate = <166>;
+                               };
+                       };
+               };
+
                uart0: serial@401c8000 {
                        compatible = "nxp,s32g2-linflexuart",
                                     "fsl,s32v234-linflexuart";
index 00070c949e2ab2b97ae310ecf660776a0a824cf9..dbe498798bd912a203b037b55d6825c0cc70d4f5 100644 (file)
@@ -34,5 +34,6 @@
 };
 
 &usdhc0 {
+       disable-wp;
        status = "okay";
 };
index b3fc12899cae52971da507f4a71e5fe33116210a..ab1e5caaeae74e6642b31fb54931eb4f76db5507 100644 (file)
@@ -40,5 +40,6 @@
 };
 
 &usdhc0 {
+       disable-wp;
        status = "okay";
 };
index c1b08992754b0c877f9eba5dd231682546de849c..b4226a9143c80eeb396dd625c7806ed4bad58159 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
 /*
- * Copyright 2021-2023 NXP
+ * Copyright 2021-2024 NXP
  *
  * Authors: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
  *          Ciprian Costea <ciprianmarian.costea@nxp.com>
                #size-cells = <1>;
                ranges = <0 0 0 0x80000000>;
 
+               pinctrl: pinctrl@4009c240 {
+                       compatible = "nxp,s32g2-siul2-pinctrl";
+                               /* MSCR0-MSCR101 registers on siul2_0 */
+                       reg = <0x4009c240 0x198>,
+                               /* MSCR112-MSCR122 registers on siul2_1 */
+                             <0x44010400 0x2c>,
+                               /* MSCR144-MSCR190 registers on siul2_1 */
+                             <0x44010480 0xbc>,
+                               /* IMCR0-IMCR83 registers on siul2_0 */
+                             <0x4009ca40 0x150>,
+                               /* IMCR119-IMCR397 registers on siul2_1 */
+                             <0x44010c1c 0x45c>,
+                               /* IMCR430-IMCR495 registers on siul2_1 */
+                             <0x440110f8 0x108>;
+
+                       jtag_pins: jtag-pins {
+                               jtag-grp0 {
+                                       pinmux = <0x0>;
+                                       input-enable;
+                                       bias-pull-up;
+                                       slew-rate = <166>;
+                               };
+
+                               jtag-grp1 {
+                                       pinmux = <0x11>;
+                                       slew-rate = <166>;
+                               };
+
+                               jtag-grp2 {
+                                       pinmux = <0x40>;
+                                       input-enable;
+                                       bias-pull-down;
+                                       slew-rate = <166>;
+                               };
+
+                               jtag-grp3 {
+                                       pinmux = <0x23c0>,
+                                                <0x23d0>,
+                                                <0x2320>;
+                               };
+
+                               jtag-grp4 {
+                                       pinmux = <0x51>;
+                                       input-enable;
+                                       bias-pull-up;
+                                       slew-rate = <166>;
+                               };
+                       };
+               };
+
                uart0: serial@401c8000 {
                        compatible = "nxp,s32g3-linflexuart",
                                     "fsl,s32v234-linflexuart";
index 9d674819876e7f565907c58d042dfc9e38b96264..176e5af191c84ac6cd82ac3d9267723903ad2ea1 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
 /*
- * Copyright 2021-2023 NXP
+ * Copyright 2021-2024 NXP
  *
  * NXP S32G3 Reference Design Board 3 (S32G-VNP-RDB3)
  */
@@ -41,5 +41,6 @@
 
 &usdhc0 {
        bus-width = <8>;
+       disable-wp;
        status = "okay";
 };
index 42409ec567925f68317ca239f083784159d2f1c1..bf608ded5dda6e76a15737c71f9e5ec50307a716 100644 (file)
@@ -89,7 +89,7 @@
        };
 
        gic: interrupt-controller@7d001000 {
-               compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
+               compatible = "arm,cortex-a15-gic";
                #interrupt-cells = <3>;
                #address-cells = <0>;
                interrupt-controller;
index 4676e3488f54d53041696d877b510b8d51dcd984..cb8d54895a77753c760b58b8b5103149e21e2094 100644 (file)
                };
 
                cp0_mdio_pins: cp0-mdio-pins {
-                       marvell,pins = "mpp40", "mpp41";
+                       marvell,pins = "mpp0", "mpp1";
                        marvell,function = "ge";
                };
 
index 3330a03c2f74531f04893323c0eeecf7ea25633e..5fafa842d312f3b01e7d71ddc04ef48ca52bc89d 100644 (file)
        mt6357_pmic: pmic {
                compatible = "mediatek,mt6357";
 
+               pmic_adc: adc {
+                       compatible = "mediatek,mt6357-auxadc";
+                       #io-channel-cells = <1>;
+               };
+
                regulators {
                        mt6357_vproc_reg: buck-vproc {
                                regulator-name = "vproc";
index a1b96013f8141a00ef9d208d822e9c29da2beec9..641d452fbc0830dbef81ed7ba05f081ae21415f1 100644 (file)
                interrupt-controller;
                #interrupt-cells = <2>;
 
+               pmic_adc: adc {
+                       compatible = "mediatek,mt6358-auxadc";
+                       #io-channel-cells = <1>;
+               };
+
                mt6358codec: mt6358codec {
                        compatible = "mediatek,mt6358-sound";
                        mediatek,dmic-mode = <0>; /* two-wires */
index df3e822232d340ca1a4885f5f57a0a408e6024de..8e1b8c85c6ede94a7beaefcdfc74ce47b3ab50fe 100644 (file)
@@ -9,6 +9,11 @@
                interrupt-controller;
                #interrupt-cells = <2>;
 
+               pmic_adc: adc {
+                       compatible = "mediatek,mt6359-auxadc";
+                       #io-channel-cells = <1>;
+               };
+
                mt6359codec: mt6359codec {
                };
 
index 64aeeb24efac872e45e6721ccd0ad9ac1de57cd4..5cbea9cd411fb2898c3a18fc38e3c01cdbaffa6e 100644 (file)
                        #pwm-cells = <2>;
                };
 
+               serial@11002000 {
+                       compatible = "mediatek,mt7981-uart", "mediatek,mt6577-uart";
+                       reg = <0 0x11002000 0 0x100>;
+                       interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uart", "wakeup";
+                       clocks = <&infracfg CLK_INFRA_UART0_SEL>,
+                                <&infracfg CLK_INFRA_UART0_CK>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
+               serial@11003000 {
+                       compatible = "mediatek,mt7981-uart", "mediatek,mt6577-uart";
+                       reg = <0 0x11003000 0 0x100>;
+                       interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uart", "wakeup";
+                       clocks = <&infracfg CLK_INFRA_UART1_SEL>,
+                                <&infracfg CLK_INFRA_UART1_CK>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
+               serial@11004000 {
+                       compatible = "mediatek,mt7981-uart", "mediatek,mt6577-uart";
+                       reg = <0 0x11004000 0 0x100>;
+                       interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uart", "wakeup";
+                       clocks = <&infracfg CLK_INFRA_UART2_SEL>,
+                                <&infracfg CLK_INFRA_UART2_CK>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
                i2c@11007000 {
                        compatible = "mediatek,mt7981-i2c";
                        reg = <0 0x11007000 0 0x1000>,
                        status = "disabled";
                };
 
+               spi@11009000 {
+                       compatible = "mediatek,mt7981-spi-ipm", "mediatek,spi-ipm";
+                       reg = <0 0x11009000 0 0x1000>;
+                       interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&topckgen CLK_TOP_CB_M_D2>,
+                                <&topckgen CLK_TOP_SPI_SEL>,
+                                <&infracfg CLK_INFRA_SPI2_CK>,
+                                <&infracfg CLK_INFRA_SPI2_HCK_CK>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk", "hclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               spi@1100a000 {
+                       compatible = "mediatek,mt7981-spi-ipm", "mediatek,spi-ipm";
+                       reg = <0 0x1100a000 0 0x1000>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&topckgen CLK_TOP_CB_M_D2>,
+                                <&topckgen CLK_TOP_SPI_SEL>,
+                                <&infracfg CLK_INFRA_SPI0_CK>,
+                                <&infracfg CLK_INFRA_SPI0_HCK_CK>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk", "hclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               spi@1100b000 {
+                       compatible = "mediatek,mt7981-spi-ipm", "mediatek,spi-ipm";
+                       reg = <0 0x1100b000 0 0x1000>;
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&topckgen CLK_TOP_CB_M_D2>,
+                                <&topckgen CLK_TOP_SPI_SEL>,
+                                <&infracfg CLK_INFRA_SPI1_CK>,
+                                <&infracfg CLK_INFRA_SPI1_HCK_CK>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk", "hclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                pio: pinctrl@11d00000 {
                        compatible = "mediatek,mt7981-pinctrl";
                        reg = <0 0x11d00000 0 0x1000>,
index fa4ab4d2899f9b7f866414335b703e6843aa25e7..783c333107bcbf7368398feae0a29e5f0ee50c19 100644 (file)
 
 &dsi0 {
        status = "okay";
-       /delete-property/#size-cells;
-       /delete-property/#address-cells;
        /delete-node/panel@0;
-       ports {
-               port {
-                       dsi_out: endpoint {
-                               remote-endpoint = <&anx7625_in>;
-                       };
-               };
-       };
+};
+
+&dsi_out {
+       remote-endpoint = <&anx7625_in>;
 };
 
 &i2c0 {
index 6345e969efae5fe8e574b840cc781717a6d375a3..22924f61ec9ed26536f4940cb4439eedeadf0f89 100644 (file)
@@ -24,7 +24,7 @@
        backlight_lcd0: backlight_lcd0 {
                compatible = "pwm-backlight";
                pwms = <&pwm0 0 500000>;
-               power-supply = <&bl_pp5000>;
+               power-supply = <&reg_vsys>;
                enable-gpios = <&pio 176 0>;
                brightness-levels = <0 1023>;
                num-interpolated-steps = <1023>;
        it6505_pp18_reg: regulator0 {
                compatible = "regulator-fixed";
                regulator-name = "it6505_pp18";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
                gpio = <&pio 178 0>;
                enable-active-high;
+               vin-supply = <&pp1800_alw>;
        };
 
        lcd_pp3300: regulator1 {
                regulator-boot-on;
        };
 
-       bl_pp5000: regulator2 {
-               compatible = "regulator-fixed";
-               regulator-name = "bl_pp5000";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               regulator-always-on;
-               regulator-boot-on;
-       };
-
        mmc1_fixed_power: regulator3 {
                compatible = "regulator-fixed";
                regulator-name = "mmc1_power";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
+               vin-supply = <&pp3300_alw>;
        };
 
        mmc1_fixed_io: regulator4 {
                compatible = "regulator-fixed";
                regulator-name = "mmc1_io";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
+               vin-supply = <&pp1800_alw>;
        };
 
        pp1800_alw: regulator5 {
@@ -92,6 +80,7 @@
                regulator-boot-on;
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
+               vin-supply = <&reg_vsys>;
        };
 
        pp3300_alw: regulator6 {
                regulator-boot-on;
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
+               vin-supply = <&reg_vsys>;
        };
 
        /* system wide semi-regulated power rail from charger */
        domain-supply = <&mt6358_vgpu_reg>;
 };
 
-&soc_data {
-       status = "okay";
-};
-
 &spi0 {
        pinctrl-names = "default";
        pinctrl-0 = <&spi0_pins>;
index fbf145639b8c90b2c69da1cb4bac4f61ca7a1c9e..266441e999f2113618197554282b5f6cf441ad7f 100644 (file)
 
                                mfg_async: power-domain@MT8183_POWER_DOMAIN_MFG_ASYNC {
                                        reg = <MT8183_POWER_DOMAIN_MFG_ASYNC>;
-                                       clocks = <&topckgen CLK_TOP_MUX_MFG>;
-                                       clock-names = "mfg";
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        #power-domain-cells = <1>;
                        phy-names = "dphy";
                };
 
+               dpi0: dpi@14015000 {
+                       compatible = "mediatek,mt8183-dpi";
+                       reg = <0 0x14015000 0 0x1000>;
+                       interrupts = <GIC_SPI 237 IRQ_TYPE_LEVEL_LOW>;
+                       power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
+                       clocks = <&mmsys CLK_MM_DPI_IF>,
+                                <&mmsys CLK_MM_DPI_MM>,
+                                <&apmixedsys CLK_APMIXED_TVDPLL>;
+                       clock-names = "pixel", "engine", "pll";
+               };
+
                mutex: mutex@14016000 {
                        compatible = "mediatek,mt8183-disp-mutex";
                        reg = <0 0x14016000 0 0x1000>;
index afdab5724eaaac2da889ba93d018f349b78d5d5f..682c6ad2574d00fe113d0455ceabd61808a9afb8 100644 (file)
 
                adsp_mem: memory@60000000 {
                        compatible = "shared-dma-pool";
-                       reg = <0 0x60000000 0 0xA00000>;
+                       reg = <0 0x60000000 0 0x1000000>;
                        no-map;
                };
 
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&dpi_pins_default>;
        pinctrl-1 = <&dpi_pins_sleep>;
-       status = "okay";
+       /* TODO Re-enable after DP to Type-C port muxing can be described */
+       status = "disabled";
 };
 
 &dpi_out {
index 4763ed5dc86cfb5ab8c0a9eafa5a766554f6240e..148c332018b0d86550d968367df4ed18b8d778b5 100644 (file)
@@ -13,6 +13,8 @@
 #include <dt-bindings/power/mt8186-power.h>
 #include <dt-bindings/phy/phy.h>
 #include <dt-bindings/reset/mt8186-resets.h>
+#include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/thermal/mediatek,lvts-thermal.h>
 
 / {
        compatible = "mediatek,mt8186";
                opp-900000000-3 {
                        opp-hz = /bits/ 64 <900000000>;
                        opp-microvolt = <850000>;
-                       opp-supported-hw = <0x8>;
+                       opp-supported-hw = <0xcf>;
                };
 
                opp-900000000-4 {
                opp-900000000-5 {
                        opp-hz = /bits/ 64 <900000000>;
                        opp-microvolt = <825000>;
-                       opp-supported-hw = <0x30>;
+                       opp-supported-hw = <0x20>;
                };
 
                opp-950000000-3 {
                        opp-hz = /bits/ 64 <950000000>;
                        opp-microvolt = <900000>;
-                       opp-supported-hw = <0x8>;
+                       opp-supported-hw = <0xcf>;
                };
 
                opp-950000000-4 {
                opp-950000000-5 {
                        opp-hz = /bits/ 64 <950000000>;
                        opp-microvolt = <850000>;
-                       opp-supported-hw = <0x30>;
+                       opp-supported-hw = <0x20>;
                };
 
                opp-1000000000-3 {
                        opp-hz = /bits/ 64 <1000000000>;
                        opp-microvolt = <950000>;
-                       opp-supported-hw = <0x8>;
+                       opp-supported-hw = <0xcf>;
                };
 
                opp-1000000000-4 {
                opp-1000000000-5 {
                        opp-hz = /bits/ 64 <1000000000>;
                        opp-microvolt = <875000>;
-                       opp-supported-hw = <0x30>;
+                       opp-supported-hw = <0x20>;
                };
        };
 
                        status = "disabled";
                };
 
+               lvts: thermal-sensor@1100b000 {
+                       compatible = "mediatek,mt8186-lvts";
+                       reg = <0 0x1100b000 0 0x1000>;
+                       interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_THERM>;
+                       resets = <&infracfg_ao MT8186_INFRA_THERMAL_CTRL_RST>;
+                       nvmem-cells = <&lvts_efuse_data1 &lvts_efuse_data2>;
+                       nvmem-cell-names = "lvts-calib-data-1", "lvts-calib-data-2";
+                       #thermal-sensor-cells = <1>;
+               };
+
+               svs: svs@1100bc00 {
+                       compatible = "mediatek,mt8186-svs";
+                       reg = <0 0x1100bc00 0 0x400>;
+                       interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_THERM>;
+                       clock-names = "main";
+                       nvmem-cells = <&svs_calibration>, <&lvts_efuse_data1>;
+                       nvmem-cell-names = "svs-calibration-data", "t-calibration-data";
+                       resets = <&infracfg_ao MT8186_INFRA_PTP_CTRL_RST>;
+                       reset-names = "svs_rst";
+               };
+
                pwm0: pwm@1100e000 {
                        compatible = "mediatek,mt8186-disp-pwm", "mediatek,mt8183-disp-pwm";
                        reg = <0 0x1100e000 0 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
 
+                       lvts_efuse_data1: lvts1-calib@1cc {
+                               reg = <0x1cc 0x14>;
+                       };
+
+                       lvts_efuse_data2: lvts2-calib@2f8 {
+                               reg = <0x2f8 0x14>;
+                       };
+
+                       svs_calibration: calib@550 {
+                               reg = <0x550 0x50>;
+                       };
+
                        gpu_speedbin: gpu-speedbin@59c {
                                reg = <0x59c 0x4>;
                                bits = <0 3>;
                        assigned-clocks = <&topckgen CLK_TOP_DPI>;
                        assigned-clock-parents = <&topckgen CLK_TOP_TVDPLL_D2>;
                        interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_LOW 0>;
+                       power-domains = <&spm MT8186_POWER_DOMAIN_DIS>;
                        status = "disabled";
 
                        port {
                        power-domains = <&spm MT8186_POWER_DOMAIN_IPE>;
                };
        };
+
+       thermal_zones: thermal-zones {
+               cpu-little0-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <150>;
+                       thermal-sensors = <&lvts MT8186_LITTLE_CPU0>;
+
+                       trips {
+                               cpu_little0_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_little0_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpu_little0_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_little0_alert0>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu-little1-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <150>;
+                       thermal-sensors = <&lvts MT8186_LITTLE_CPU1>;
+
+                       trips {
+                               cpu_little1_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_little1_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpu_little1_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_little1_alert0>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu-little2-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <150>;
+                       thermal-sensors = <&lvts MT8186_LITTLE_CPU2>;
+
+                       trips {
+                               cpu_little2_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_little2_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpu_little2_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_little2_alert0>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cam-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts MT8186_CAM>;
+
+                       trips {
+                               cam_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cam_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cam_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nna-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts MT8186_NNA>;
+
+                       trips {
+                               nna_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               nna_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               nna_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               adsp-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts MT8186_ADSP>;
+
+                       trips {
+                               adsp_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               adsp_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               adsp_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpu-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts MT8186_GPU>;
+
+                       trips {
+                               gpu_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               gpu_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               gpu_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu-big0-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <100>;
+                       thermal-sensors = <&lvts MT8186_BIG_CPU0>;
+
+                       trips {
+                               cpu_big0_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_big0_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpu_big0_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_big0_alert0>;
+                                       cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu-big1-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <100>;
+                       thermal-sensors = <&lvts MT8186_BIG_CPU1>;
+
+                       trips {
+                               cpu_big1_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_big1_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpu_big1_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_big1_alert0>;
+                                       cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
 };
index 29d012d28edb1b81f1e5cbc0d3228d24818dcd7a..cd27966d2e3c05833f11294cfa8f6a984d4e0dbc 100644 (file)
@@ -12,6 +12,9 @@
 #include <dt-bindings/phy/phy.h>
 #include <dt-bindings/pinctrl/mediatek,mt8188-pinfunc.h>
 #include <dt-bindings/power/mediatek,mt8188-power.h>
+#include <dt-bindings/reset/mt8188-resets.h>
+#include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/thermal/mediatek,lvts-thermal.h>
 
 / {
        compatible = "mediatek,mt8188";
                method = "smc";
        };
 
+       thermal_zones: thermal-zones {
+               cpu-little0-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <150>;
+                       thermal-sensors = <&lvts_mcu MT8188_MCU_LITTLE_CPU0>;
+
+                       trips {
+                               cpu_little0_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_little0_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpu_little0_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_little0_alert0>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu-little1-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <150>;
+                       thermal-sensors = <&lvts_mcu MT8188_MCU_LITTLE_CPU1>;
+
+                       trips {
+                               cpu_little1_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_little1_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpu_little1_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_little1_alert0>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu-little2-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <150>;
+                       thermal-sensors = <&lvts_mcu MT8188_MCU_LITTLE_CPU2>;
+
+                       trips {
+                               cpu_little2_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_little2_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpu_little2_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_little2_alert0>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu-little3-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <150>;
+                       thermal-sensors = <&lvts_mcu MT8188_MCU_LITTLE_CPU3>;
+
+                       trips {
+                               cpu_little3_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_little3_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpu_little3_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_little3_alert0>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu-big0-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <100>;
+                       thermal-sensors = <&lvts_mcu MT8188_MCU_BIG_CPU0>;
+
+                       trips {
+                               cpu_big0_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_big0_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpu_big0_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_big0_alert0>;
+                                       cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu-big1-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <100>;
+                       thermal-sensors = <&lvts_mcu MT8188_MCU_BIG_CPU1>;
+
+                       trips {
+                               cpu_big1_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_big1_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpu_big1_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_big1_alert0>;
+                                       cooling-device = <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               apu-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8188_AP_APU>;
+
+                       trips {
+                               apu_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               apu_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               apu_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpu-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8188_AP_GPU0>;
+
+                       trips {
+                               gpu_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               gpu_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               gpu_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               gpu1-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8188_AP_GPU1>;
+
+                       trips {
+                               gpu1_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               gpu1_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               gpu1_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu1_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               adsp-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8188_AP_ADSP>;
+
+                       trips {
+                               soc_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               soc_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               soc_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               vdo-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8188_AP_VDO>;
+
+                       trips {
+                               soc1_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               soc1_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               soc1_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               infra-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8188_AP_INFRA>;
+
+                       trips {
+                               soc2_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               soc2_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               soc2_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cam1-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8188_AP_CAM1>;
+
+                       trips {
+                               cam1_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cam1_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cam1_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cam2-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&lvts_ap MT8188_AP_CAM2>;
+
+                       trips {
+                               cam2_alert0: trip-alert0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cam2_alert1: trip-alert1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cam2_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        timer: timer {
                compatible = "arm,armv8-timer";
                interrupt-parent = <&gic>;
                        compatible = "mediatek,mt8188-infracfg-ao", "syscon";
                        reg = <0 0x10001000 0 0x1000>;
                        #clock-cells = <1>;
+                       #reset-cells = <1>;
                };
 
                pericfg: syscon@10003000 {
                        status = "disabled";
                };
 
+               lvts_ap: thermal-sensor@1100b000 {
+                       compatible = "mediatek,mt8188-lvts-ap";
+                       reg = <0 0x1100b000 0 0xc00>;
+                       interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_THERM>;
+                       resets = <&infracfg_ao MT8188_INFRA_RST1_THERMAL_CTRL_RST>;
+                       nvmem-cells = <&lvts_efuse_data1>;
+                       nvmem-cell-names = "lvts-calib-data-1";
+                       #thermal-sensor-cells = <1>;
+               };
+
                spi1: spi@11010000 {
                        compatible = "mediatek,mt8188-spi-ipm", "mediatek,spi-ipm";
                        #address-cells = <1>;
                        status = "disabled";
                };
 
+               lvts_mcu: thermal-sensor@11278000 {
+                       compatible = "mediatek,mt8188-lvts-mcu";
+                       reg = <0 0x11278000 0 0x1000>;
+                       interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_THERM>;
+                       resets = <&infracfg_ao MT8188_INFRA_RST1_THERMAL_MCU_RST>;
+                       nvmem-cells = <&lvts_efuse_data1>;
+                       nvmem-cell-names = "lvts-calib-data-1";
+                       #thermal-sensor-cells = <1>;
+               };
+
                i2c0: i2c@11280000 {
                        compatible = "mediatek,mt8188-i2c";
                        reg = <0 0x11280000 0 0x1000>,
                        #clock-cells = <1>;
                };
 
+               efuse: efuse@11f20000 {
+                       compatible = "mediatek,mt8188-efuse", "mediatek,efuse";
+                       reg = <0 0x11f20000 0 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       lvts_efuse_data1: lvts1-calib@1ac {
+                               reg = <0x1ac 0x40>;
+                       };
+               };
+
                gpu: gpu@13000000 {
                        compatible = "mediatek,mt8188-mali", "arm,mali-valhall-jm";
                        reg = <0 0x13000000 0 0x4000>;
                                        <&spm MT8188_POWER_DOMAIN_MFG3>,
                                        <&spm MT8188_POWER_DOMAIN_MFG4>;
                        power-domain-names = "core0", "core1", "core2";
+                       #cooling-cells = <2>;
                        status = "disabled";
                };
 
index 88123842c818d3109b8fad562aa226106f5b9be3..49664de99b882700dd8566658b21fafc3cc8c2ad 100644 (file)
        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>;
+                        <PINMUX_GPIO33__FUNC_GPIO33>;
                input-enable;
                bias-pull-down;
        };
+
+       pins-low-power-hdmi-rsel-disable {
+               pinmux = <PINMUX_GPIO34__FUNC_GPIO34>,
+                        <PINMUX_GPIO35__FUNC_GPIO35>;
+               input-enable;
+               bias-pull-down = <75000>;
+       };
 };
 
 &sound {
index 2fe20e0dad836d8b191d3f1e8b997d4e864cde19..2d6522c144b751736e5a5e57044f75e9e3ddc2d9 100644 (file)
        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>;
+                        <PINMUX_GPIO33__FUNC_GPIO33>;
                input-enable;
                bias-pull-down;
        };
 
+       pins-low-power-hdmi-rsel-disable {
+               pinmux = <PINMUX_GPIO34__FUNC_GPIO34>,
+                        <PINMUX_GPIO35__FUNC_GPIO35>;
+               input-enable;
+               bias-pull-down = <75000>;
+       };
+
        pins-low-power-pcie0-disable {
                pinmux = <PINMUX_GPIO19__FUNC_GPIO19>,
                         <PINMUX_GPIO20__FUNC_GPIO20>,
index dd294ca98194ccfb2853f8f4a0b2e175618983b6..9049d362a5e015e70626071e70bcdaf17afc2108 100644 (file)
        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>;
+                        <PINMUX_GPIO33__FUNC_GPIO33>;
                input-enable;
                bias-pull-down;
        };
 
+       pins-low-power-hdmi-rsel-disable {
+               pinmux = <PINMUX_GPIO34__FUNC_GPIO34>,
+                        <PINMUX_GPIO35__FUNC_GPIO35>;
+               input-enable;
+               bias-pull-down = <75000>;
+       };
+
        pins-low-power-pcie0-disable {
                pinmux = <PINMUX_GPIO19__FUNC_GPIO19>,
                         <PINMUX_GPIO20__FUNC_GPIO20>,
index fe5400e17b0f4392628868a91380ab556c070b26..75d56b2d5a3d346734012062db8cb0ac885b88da 100644 (file)
                spi-max-frequency = <3000000>;
                wakeup-source;
 
-               keyboard-backlight {
-                       compatible = "google,cros-kbd-led-backlight";
-               };
-
                i2c_tunnel: i2c-tunnel {
                        compatible = "google,cros-ec-i2c-tunnel";
                        google,remote-bus = <0>;
 &xhci1 {
        status = "okay";
 
+       phys = <&u2port1 PHY_TYPE_USB2>;
        rx-fifo-depth = <3072>;
        vusb33-supply = <&mt6359_vusb_ldo_reg>;
        vbus-supply = <&usb_vbus>;
+       mediatek,u3p-dis-msk = <1>;
 };
 
 &xhci2 {
index 2ee45752583c00330c90cb92db742324c2b0a4fe..e89ba384c4aafcc444dacd02887f7a4f434d0d1b 100644 (file)
                              <0 0x11293e00 0 0x0100>;
                        reg-names = "mac", "ippc";
                        interrupts = <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH 0>;
-                       phys = <&u2port1 PHY_TYPE_USB2>;
+                       phys = <&u2port1 PHY_TYPE_USB2>, <&u3port1 PHY_TYPE_USB3>;
                        assigned-clocks = <&topckgen CLK_TOP_USB_TOP_1P>,
                                          <&topckgen CLK_TOP_SSUSB_XHCI_1P>;
                        assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
                        mediatek,gce-client-reg = <&gce1 SUBSYS_1400XXXX 0x1000 0x1000>;
                        mediatek,gce-events = <CMDQ_EVENT_VPP0_MDP_RDMA_SOF>,
                                              <CMDQ_EVENT_VPP0_MDP_RDMA_FRAME_DONE>;
+                       mediatek,scp = <&scp>;
                        power-domains = <&spm MT8195_POWER_DOMAIN_VPPSYS0>;
                        iommus = <&iommu_vpp M4U_PORT_L4_MDP_RDMA>;
                        clocks = <&vppsys0 CLK_VPP0_MDP_RDMA>;
                        compatible = "mediatek,mt8195-dp-intf";
                        reg = <0 0x1c015000 0 0x1000>;
                        interrupts = <GIC_SPI 657 IRQ_TYPE_LEVEL_HIGH 0>;
-                       clocks = <&vdosys0  CLK_VDO0_DP_INTF0>,
-                                <&vdosys0 CLK_VDO0_DP_INTF0_DP_INTF>,
+                       clocks = <&vdosys0 CLK_VDO0_DP_INTF0_DP_INTF>,
+                                <&vdosys0  CLK_VDO0_DP_INTF0>,
                                 <&apmixedsys CLK_APMIXED_TVDPLL1>;
-                       clock-names = "engine", "pixel", "pll";
+                       clock-names = "pixel", "engine", "pll";
                        status = "disabled";
                };
 
                        reg = <0 0x1c113000 0 0x1000>;
                        interrupts = <GIC_SPI 513 IRQ_TYPE_LEVEL_HIGH 0>;
                        power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
-                       clocks = <&vdosys1 CLK_VDO1_DP_INTF0_MM>,
-                                <&vdosys1 CLK_VDO1_DPINTF>,
+                       clocks = <&vdosys1 CLK_VDO1_DPINTF>,
+                                <&vdosys1 CLK_VDO1_DP_INTF0_MM>,
                                 <&apmixedsys CLK_APMIXED_TVDPLL2>;
-                       clock-names = "engine", "pixel", "pll";
+                       clock-names = "pixel", "engine", "pll";
                        status = "disabled";
                };
 
index 4211a992dd9db4b9625dbc3c00bea4ed503a6759..7d90112a7e274667baa20d905483a570c799e1d6 100644 (file)
@@ -4,6 +4,7 @@
  * Authors:
  * Fabien Parent <fparent@baylibre.com>
  * Bernhard Rosenkränzer <bero@baylibre.com>
+ * Alexandre Mergnat <amergnat@baylibre.com>
  */
 
 /dts-v1/;
                        reg = <0 0x43200000 0 0x00c00000>;
                };
        };
+
+       sound: sound {
+               compatible = "mediatek,mt8365-mt6357";
+               pinctrl-names = "default",
+                               "dmic",
+                               "miso_off",
+                               "miso_on",
+                               "mosi_off",
+                               "mosi_on";
+               pinctrl-0 = <&aud_default_pins>;
+               pinctrl-1 = <&aud_dmic_pins>;
+               pinctrl-2 = <&aud_miso_off_pins>;
+               pinctrl-3 = <&aud_miso_on_pins>;
+               pinctrl-4 = <&aud_mosi_off_pins>;
+               pinctrl-5 = <&aud_mosi_on_pins>;
+               mediatek,platform = <&afe>;
+       };
+};
+
+&afe {
+       mediatek,dmic-mode = <1>;
+       status = "okay";
 };
 
 &cpu0 {
        interrupts-extended = <&pio 145 IRQ_TYPE_LEVEL_HIGH>;
        interrupt-controller;
        #interrupt-cells = <2>;
+       mediatek,micbias0-microvolt = <1900000>;
+       mediatek,micbias1-microvolt = <1700000>;
 };
 
 &pio {
+       aud_default_pins: audiodefault-pins {
+               clk-dat-pins {
+                       pinmux = <MT8365_PIN_72_CMDAT4__FUNC_I2S3_BCK>,
+                                <MT8365_PIN_73_CMDAT5__FUNC_I2S3_LRCK>,
+                                <MT8365_PIN_74_CMDAT6__FUNC_I2S3_MCK>,
+                                <MT8365_PIN_75_CMDAT7__FUNC_I2S3_DO>;
+               };
+       };
+
+       aud_dmic_pins: audiodmic-pins {
+               clk-dat-pins {
+                       pinmux = <MT8365_PIN_117_DMIC0_CLK__FUNC_DMIC0_CLK>,
+                                <MT8365_PIN_118_DMIC0_DAT0__FUNC_DMIC0_DAT0>,
+                                <MT8365_PIN_119_DMIC0_DAT1__FUNC_DMIC0_DAT1>;
+               };
+       };
+
+       aud_miso_off_pins: misooff-pins {
+               clk-dat-pins {
+                       pinmux = <MT8365_PIN_53_AUD_CLK_MISO__FUNC_GPIO53>,
+                                <MT8365_PIN_54_AUD_SYNC_MISO__FUNC_GPIO54>,
+                                <MT8365_PIN_55_AUD_DAT_MISO0__FUNC_GPIO55>,
+                                <MT8365_PIN_56_AUD_DAT_MISO1__FUNC_GPIO56>;
+                       input-enable;
+                       bias-pull-down;
+                       drive-strength = <2>;
+               };
+       };
+
+       aud_miso_on_pins: misoon-pins {
+               clk-dat-pins {
+                       pinmux = <MT8365_PIN_53_AUD_CLK_MISO__FUNC_AUD_CLK_MISO>,
+                                <MT8365_PIN_54_AUD_SYNC_MISO__FUNC_AUD_SYNC_MISO>,
+                                <MT8365_PIN_55_AUD_DAT_MISO0__FUNC_AUD_DAT_MISO0>,
+                                <MT8365_PIN_56_AUD_DAT_MISO1__FUNC_AUD_DAT_MISO1>;
+                       drive-strength = <6>;
+               };
+       };
+
+       aud_mosi_off_pins: mosioff-pins {
+               clk-dat-pins {
+                       pinmux = <MT8365_PIN_49_AUD_CLK_MOSI__FUNC_GPIO49>,
+                                <MT8365_PIN_50_AUD_SYNC_MOSI__FUNC_GPIO50>,
+                                <MT8365_PIN_51_AUD_DAT_MOSI0__FUNC_GPIO51>,
+                                <MT8365_PIN_52_AUD_DAT_MOSI1__FUNC_GPIO52>;
+                       input-enable;
+                       bias-pull-down;
+                       drive-strength = <2>;
+               };
+       };
+
+       aud_mosi_on_pins: mosion-pins {
+               clk-dat-pins {
+                       pinmux = <MT8365_PIN_49_AUD_CLK_MOSI__FUNC_AUD_CLK_MOSI>,
+                                <MT8365_PIN_50_AUD_SYNC_MOSI__FUNC_AUD_SYNC_MOSI>,
+                                <MT8365_PIN_51_AUD_DAT_MOSI0__FUNC_AUD_DAT_MOSI0>,
+                                <MT8365_PIN_52_AUD_DAT_MOSI1__FUNC_AUD_DAT_MOSI1>;
+                       drive-strength = <6>;
+               };
+       };
+
        ethernet_pins: ethernet-pins {
                phy_reset_pins {
                        pinmux = <MT8365_PIN_133_TDM_TX_DATA1__FUNC_GPIO133>;
index eb449bfa88030c5a9757cb9c4aab8cee751e9dbc..9c91fe8ea0f969770a611f90b593683f93ff3e22 100644 (file)
@@ -2,9 +2,11 @@
 /*
  * (C) 2018 MediaTek Inc.
  * Copyright (C) 2022 BayLibre SAS
- * Fabien Parent <fparent@baylibre.com>
- * Bernhard Rosenkränzer <bero@baylibre.com>
+ * Authors: Fabien Parent <fparent@baylibre.com>
+ *         Bernhard Rosenkränzer <bero@baylibre.com>
+ *         Alexandre Mergnat <amergnat@baylibre.com>
  */
+
 #include <dt-bindings/clock/mediatek,mt8365-clk.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/interrupt-controller/irq.h>
                        reg = <0 0x19020000 0 0x1000>;
                        #clock-cells = <1>;
                };
+
+               afe: audio-controller@11220000 {
+                       compatible = "mediatek,mt8365-afe-pcm";
+                       reg = <0 0x11220000 0 0x1000>;
+                       #sound-dai-cells = <0>;
+                       clocks = <&clk26m>,
+                                <&topckgen CLK_TOP_AUDIO_SEL>,
+                                <&topckgen CLK_TOP_AUD_I2S0_M>,
+                                <&topckgen CLK_TOP_AUD_I2S1_M>,
+                                <&topckgen CLK_TOP_AUD_I2S2_M>,
+                                <&topckgen CLK_TOP_AUD_I2S3_M>,
+                                <&topckgen CLK_TOP_AUD_ENGEN1_SEL>,
+                                <&topckgen CLK_TOP_AUD_ENGEN2_SEL>,
+                                <&topckgen CLK_TOP_AUD_1_SEL>,
+                                <&topckgen CLK_TOP_AUD_2_SEL>,
+                                <&topckgen CLK_TOP_APLL_I2S0_SEL>,
+                                <&topckgen CLK_TOP_APLL_I2S1_SEL>,
+                                <&topckgen CLK_TOP_APLL_I2S2_SEL>,
+                                <&topckgen CLK_TOP_APLL_I2S3_SEL>;
+                       clock-names = "top_clk26m_clk",
+                                     "top_audio_sel",
+                                     "audio_i2s0_m",
+                                     "audio_i2s1_m",
+                                     "audio_i2s2_m",
+                                     "audio_i2s3_m",
+                                     "engen1",
+                                     "engen2",
+                                     "aud1",
+                                     "aud2",
+                                     "i2s0_m_sel",
+                                     "i2s1_m_sel",
+                                     "i2s2_m_sel",
+                                     "i2s3_m_sel";
+                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
+                       power-domains = <&spm MT8365_POWER_DOMAIN_AUDIO>;
+                       status = "disabled";
+               };
        };
 
        timer {
index a06610fff8adef57c2b5c0e0db3bab95e05ca5d6..1ef6262b65c9ac0cfc2f9dd3c7dc25daf673010d 100644 (file)
 };
 
 &xhci1 {
-       phys = <&u2port1 PHY_TYPE_USB2>,
-              <&u3port1 PHY_TYPE_USB3>;
        vusb33-supply = <&mt6359_vusb_ldo_reg>;
        status = "okay";
 };
index e4b2af9489a8931fa75ca821511e931f02303ea3..e2e75b8ff91880711c82f783c7ccbef4128b7ab4 100644 (file)
 
 /* USB2.0 M.2 Key-B */
 &xhci1 {
+       phys = <&u2port1 PHY_TYPE_USB2>;
        vusb33-supply = <&mt6359_vusb_ldo_reg>;
        mediatek,u3p-dis-msk = <0x01>;
        status = "okay";
index 4b5f6cf16f7076d91aa50e2dcf56e82b7499424c..14ec970c4e491fbd69bf2800639abf726d47589a 100644 (file)
 };
 
 &xhci1 {
+       phys = <&u2port1 PHY_TYPE_USB2>;
        /* MT7921's USB Bluetooth has issues with USB2 LPM */
        usb2-lpm-disable;
        vusb33-supply = <&mt6359_vusb_ldo_reg>;
        vbus-supply = <&vsys>;
+       mediatek,u3p-dis-msk = <1>;
        status = "okay";
 };
 
index b89e2be6abaeb045c5a75e52a79d141b30fa6781..9482bec1aa5736360a54c9f943bdb2a4641c9fa8 100644 (file)
 
        aliases {
                serial0 = &uart0;
+               serial10 = &uart10;
+               serial12 = &uart12;
+               serial13 = &uart13;
+               serial14 = &uart14;
        };
 
        chosen {
        };
 };
 
-&uart0 {
-       status = "okay";
-};
-
 &clk {
        assigned-clocks = <&clk CAPLL>,
                          <&clk DDRPLL>,
                           "integer",
                           "integer";
 };
+
+&pinctrl {
+       uart-grp {
+               pinctrl_uart0: uart0-pins {
+                       nuvoton,pins = <4 14 1>,
+                                      <4 15 1>;
+                       bias-disable;
+                       power-source = <1>;
+               };
+
+               pinctrl_uart10: uart10-pins {
+                       nuvoton,pins = <7 4 2>,
+                                      <7 5 2>,
+                                      <7 6 2>,
+                                      <7 7 2>;
+                       bias-disable;
+                       power-source = <1>;
+               };
+
+               pinctrl_uart12: uart12-pins {
+                       nuvoton,pins = <2 13 2>,
+                                      <2 14 2>,
+                                      <2 15 2>;
+                       bias-disable;
+                       power-source = <1>;
+               };
+
+               pinctrl_uart13: uart13-pins {
+                       nuvoton,pins = <7 12 3>,
+                                      <7 13 3>;
+                       bias-disable;
+                       power-source = <1>;
+               };
+
+               pinctrl_uart14: uart14-pins {
+                       nuvoton,pins = <7 14 2>,
+                                      <7 15 2>;
+                       bias-disable;
+                       power-source = <1>;
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart0>;
+       status = "okay";
+};
+
+&uart10 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart10>;
+       status = "okay";
+};
+
+&uart12 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart12>;
+       status = "okay";
+};
+
+&uart13 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart13>;
+       status = "okay";
+};
+
+&uart14 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart14>;
+       status = "okay";
+};
index a1ebddecb7f8166bf83ed4a39e1542c8d5232b80..f6f20a17e501877ebc33f1da7d116bfd2e24fb20 100644 (file)
 
        aliases {
                serial0 = &uart0;
+               serial11 = &uart11;
+               serial12 = &uart12;
+               serial14 = &uart14;
+               serial16 = &uart16;
        };
 
        chosen {
        };
 };
 
-&uart0 {
-       status = "okay";
-};
-
 &clk {
        assigned-clocks = <&clk CAPLL>,
                          <&clk DDRPLL>,
                           "integer",
                           "integer";
 };
+
+&pinctrl {
+       uart-grp {
+               pinctrl_uart0: uart0-pins {
+                       nuvoton,pins = <4 14 1>,
+                                      <4 15 1>;
+                       bias-disable;
+                       power-source = <1>;
+               };
+
+               pinctrl_uart11: uart11-pins {
+                       nuvoton,pins = <11 0 2>,
+                                      <11 1 2>,
+                                      <11 2 2>,
+                                      <11 3 2>;
+                       bias-disable;
+                       power-source = <1>;
+               };
+
+               pinctrl_uart12: uart12-pins {
+                       nuvoton,pins = <8 1 2>,
+                                      <8 2 2>,
+                                      <8 3 2>;
+                       bias-disable;
+                       power-source = <1>;
+               };
+
+               pinctrl_uart14: uart14-pins {
+                       nuvoton,pins = <8 5 2>,
+                                      <8 6 2>,
+                                      <8 7 2>;
+                       bias-disable;
+                       power-source = <1>;
+               };
+
+               pinctrl_uart16: uart16-pins {
+                       nuvoton,pins = <10 0 2>,
+                                      <10 1 2>,
+                                      <10 2 2>,
+                                      <10 3 2>;
+                       bias-disable;
+                       power-source = <1>;
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart0>;
+       status = "okay";
+};
+
+&uart11 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart11>;
+       status = "okay";
+};
+
+&uart12 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart12>;
+       status = "okay";
+};
+
+&uart14 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart14>;
+       status = "okay";
+};
+
+&uart16 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart16>;
+       status = "okay";
+};
index 781cdae566a012e53af085960d8ade9f9b0bc99f..e51b98f5bdce4c6594c48375aaf04a54b0582bac 100644 (file)
@@ -83,7 +83,7 @@
                ranges;
 
                sys: system-management@40460000 {
-                       compatible = "nuvoton,ma35d1-reset";
+                       compatible = "nuvoton,ma35d1-reset", "syscon";
                        reg = <0x0 0x40460000 0x0 0x200>;
                        #reset-cells = <1>;
                };
                        clocks = <&clk_hxt>;
                };
 
+               pinctrl: pinctrl@40040000 {
+                       compatible = "nuvoton,ma35d1-pinctrl";
+                       reg = <0x0 0x40040000 0x0 0xc00>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       nuvoton,sys = <&sys>;
+                       ranges = <0x0 0x0 0x40040000 0x400>;
+
+                       gpioa: 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>;
+                       };
+
+                       gpiob: gpio@40 {
+                               reg = <0x40 0x40>;
+                               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPB_GATE>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpioc: gpio@80 {
+                               reg = <0x80 0x40>;
+                               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPC_GATE>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpiod: gpio@c0 {
+                               reg = <0xc0 0x40>;
+                               interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPD_GATE>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpioe: gpio@100 {
+                               reg = <0x100 0x40>;
+                               interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPE_GATE>;
+                               #gpio-cells = <2>;
+                               gpio-controller;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpiof: gpio@140 {
+                               reg = <0x140 0x40>;
+                               interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPF_GATE>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpiog: gpio@180 {
+                               reg = <0x180 0x40>;
+                               interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPG_GATE>;
+                               #gpio-cells = <2>;
+                               gpio-controller;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpioh: gpio@1c0 {
+                               reg = <0x1c0 0x40>;
+                               interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPH_GATE>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpioi: gpio@200 {
+                               reg = <0x200 0x40>;
+                               interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPI_GATE>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpioj: gpio@240 {
+                               reg = <0x240 0x40>;
+                               interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPJ_GATE>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpiok: gpio@280 {
+                               reg = <0x280 0x40>;
+                               interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPK_GATE>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpiol: gpio@2c0 {
+                               reg = <0x2c0 0x40>;
+                               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPL_GATE>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpiom: gpio@300 {
+                               reg = <0x300 0x40>;
+                               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPM_GATE>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpion: gpio@340 {
+                               reg = <0x340 0x40>;
+                               interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk GPN_GATE>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+               };
+
                uart0: serial@40700000 {
                        compatible = "nuvoton,ma35d1-uart";
                        reg = <0x0 0x40700000 0x0 0x100>;
index 0ae5a44f7d07002f5b0742185b3e4419751ce539..c00db75e391057fd7a09d4465c9dbd58835c79df 100644 (file)
                status = "okay";
        };
 
+       serial@70006300 {
+               /delete-property/ reg-shift;
+               status = "okay";
+               compatible = "nvidia,tegra30-hsuart";
+               reset-names = "serial";
+
+               bluetooth {
+                       compatible = "brcm,bcm43540-bt";
+                       device-wakeup-gpios = <&gpio TEGRA_GPIO(H, 3) GPIO_ACTIVE_HIGH>;
+                       shutdown-gpios = <&gpio TEGRA_GPIO(H, 4) GPIO_ACTIVE_HIGH>;
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(H, 5) IRQ_TYPE_LEVEL_LOW>;
+                       interrupt-names = "host-wakeup";
+               };
+       };
+
+       i2c@7000c400 {
+               status = "okay";
+
+               power-sensor@40 {
+                       compatible = "ti,ina3221";
+                       reg = <0x40>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       input@0 {
+                               reg = <0x0>;
+                               label = "VDD_IN";
+                               shunt-resistor-micro-ohms = <20000>;
+                       };
+
+                       input@1 {
+                               reg = <0x1>;
+                               label = "VDD_GPU";
+                               shunt-resistor-micro-ohms = <10000>;
+                       };
+
+                       input@2 {
+                               reg = <0x2>;
+                               label = "VDD_CPU";
+                               shunt-resistor-micro-ohms = <10000>;
+                       };
+               };
+       };
+
        i2c@7000c500 {
                status = "okay";
 
                nvidia,sys-clock-req-active-high;
        };
 
+       mmc@700b0200 {
+               status = "okay";
+               bus-width = <4>;
+               non-removable;
+               power-gpios = <&gpio TEGRA_GPIO(H, 0) GPIO_ACTIVE_HIGH>;
+               vqmmc-supply = <&vdd_1v8>;
+               vmmc-supply = <&vdd_3v3_sys>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               wifi@1 {
+                       compatible = "brcm,bcm4354-fmac";
+                       reg = <1>;
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(H, 2) IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "host-wake";
+               };
+       };
+
        /* eMMC */
        mmc@700b0600 {
                status = "okay";
index b4a1108c2dd74f66ef9bef4d9c22bb25d28e8bd5..63b94a04308e86bd442d6c1d6558bdcf2fc65825 100644 (file)
                status = "okay";
                clock-frequency = <100000>;
 
+               power-sensor@42 {
+                       compatible = "ti,ina3221";
+                       reg = <0x42>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       input@0 {
+                               reg = <0x0>;
+                               label = "VDD_MUX";
+                               shunt-resistor-micro-ohms = <20000>;
+                       };
+
+                       input@1 {
+                               reg = <0x1>;
+                               label = "VDD_5V_IO_SYS";
+                               shunt-resistor-micro-ohms = <5000>;
+                       };
+
+                       input@2 {
+                               reg = <0x2>;
+                               label = "VDD_3V3_SYS";
+                               shunt-resistor-micro-ohms = <10000>;
+                       };
+               };
+
+               power-sensor@43 {
+                       compatible = "ti,ina3221";
+                       reg = <0x43>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       input@0 {
+                               reg = <0x0>;
+                               label = "VDD_3V3_IO";
+                               shunt-resistor-micro-ohms = <10000>;
+                       };
+
+                       input@1 {
+                               reg = <0x1>;
+                               label = "VDD_1V8_IO";
+                               shunt-resistor-micro-ohms = <10000>;
+                       };
+
+                       input@2 {
+                               reg = <0x2>;
+                               label = "VDD_M2_IN";
+                               shunt-resistor-micro-ohms = <10000>;
+                       };
+               };
+
                exp1: gpio@74 {
                        compatible = "ti,tca9539";
                        reg = <0x74>;
                bus-width = <4>;
 
                cd-gpios = <&gpio TEGRA_GPIO(Z, 1) GPIO_ACTIVE_LOW>;
+               wp-gpios = <&gpio TEGRA_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
 
                vqmmc-supply = <&vddio_sdmmc>;
                vmmc-supply = <&vdd_3v3_sd>;
                regulator-name = "VDD_3V3_SD";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
-               gpio = <&gpio TEGRA_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
+               gpio = <&gpio TEGRA_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
                enable-active-high;
                vin-supply = <&vdd_3v3_sys>;
 
index cb792041fc621db2722ca0cee30d23f46df75244..d977f4901c0947280c8a1df450a1e96baaf3bb47 100644 (file)
 // SPDX-License-Identifier: GPL-2.0
 
-#include "tegra234.dtsi"
 #include "tegra234-p3701.dtsi"
 
 / {
        model = "NVIDIA Jetson AGX Orin";
        compatible = "nvidia,p3701-0000", "nvidia,tegra234";
 
-       bus@0 {
-               i2c@3160000 {
-                       status = "okay";
-
-                       eeprom@50 {
-                               compatible = "atmel,24c02";
-                               reg = <0x50>;
-
-                               label = "module";
-                               vcc-supply = <&vdd_1v8_hs>;
-                               address-width = <8>;
-                               pagesize = <8>;
-                               size = <256>;
-                               read-only;
-                       };
-               };
-
-               spi@3270000 {
-                       status = "okay";
-
-                       flash@0 {
-                               compatible = "jedec,spi-nor";
-                               reg = <0>;
-                               spi-max-frequency = <102000000>;
-                               spi-tx-bus-width = <4>;
-                               spi-rx-bus-width = <4>;
-                       };
-               };
-
-               mmc@3400000 {
-                       status = "okay";
-                       bus-width = <4>;
-                       cd-gpios = <&gpio TEGRA234_MAIN_GPIO(G, 7) GPIO_ACTIVE_LOW>;
-                       disable-wp;
-               };
-
-               mmc@3460000 {
-                       status = "okay";
-                       bus-width = <8>;
-                       non-removable;
-               };
-
-               padctl@3520000 {
-                       vclamp-usb-supply = <&vdd_1v8_ao>;
-                       avdd-usb-supply = <&vdd_3v3_ao>;
-
-                       ports {
-                               usb2-0 {
-                                       vbus-supply = <&vdd_5v0_sys>;
-                               };
-
-                               usb2-1 {
-                                       vbus-supply = <&vdd_5v0_sys>;
-                               };
-
-                               usb2-2 {
-                                       vbus-supply = <&vdd_5v0_sys>;
-                               };
-
-                               usb2-3 {
-                                       vbus-supply = <&vdd_5v0_sys>;
-                               };
-                       };
-               };
-
-               rtc@c2a0000 {
-                       status = "okay";
-               };
-
-               pmc@c360000 {
-                       nvidia,invert-interrupt;
-               };
-       };
-
-       vdd_5v0_sys: regulator-vdd-5v0-sys {
-               compatible = "regulator-fixed";
-               regulator-name = "VIN_SYS_5V0";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               regulator-always-on;
-               regulator-boot-on;
-       };
-
-       vdd_1v8_ls: regulator-vdd-1v8-ls {
-               compatible = "regulator-fixed";
-               regulator-name = "VDD_1V8_LS";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               regulator-always-on;
-       };
-
-       vdd_1v8_hs: regulator-vdd-1v8-hs {
-               compatible = "regulator-fixed";
-               regulator-name = "VDD_1V8_HS";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               regulator-always-on;
-       };
-
-       vdd_1v8_ao: regulator-vdd-1v8-ao {
-               compatible = "regulator-fixed";
-               regulator-name = "VDD_1V8_AO";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               regulator-always-on;
-       };
-
-       vdd_3v3_ao: regulator-vdd-3v3-ao {
-               compatible = "regulator-fixed";
-               regulator-name = "VDD_3V3_AO";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-always-on;
-       };
-
-       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 TEGRA234_MAIN_GPIO(H, 4) GPIO_ACTIVE_HIGH>;
-               regulator-boot-on;
-               enable-active-high;
-       };
-
-       vdd_12v_pcie: regulator-vdd-12v-pcie {
-               compatible = "regulator-fixed";
-               regulator-name = "VDD_12V_PCIE";
-               regulator-min-microvolt = <12000000>;
-               regulator-max-microvolt = <12000000>;
-               gpio = <&gpio TEGRA234_MAIN_GPIO(A, 1) GPIO_ACTIVE_LOW>;
-               regulator-boot-on;
-       };
-
        thermal-zones {
                tj-thermal {
                        polling-delay = <1000>;
index 553fa4ba1cd48a99dbf7c4a497608663ed527d19..0809634e57320d9069d5f68a79a3148ee45e36fa 100644 (file)
 // SPDX-License-Identifier: GPL-2.0
 
-#include "tegra234.dtsi"
 #include "tegra234-p3701.dtsi"
 
 / {
        compatible = "nvidia,p3701-0008", "nvidia,tegra234";
 
-       bus@0 {
-               i2c@3160000 {
+       thermal-zones {
+               tj-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <1000>;
                        status = "okay";
 
-                       eeprom@50 {
-                               compatible = "atmel,24c02";
-                               reg = <0x50>;
-                               label = "module";
-                               vcc-supply = <&vdd_1v8_hs>;
-                               address-width = <8>;
-                               pagesize = <8>;
-                               size = <256>;
-                               read-only;
-                       };
-               };
-
-               spi@3270000 {
-                       status = "okay";
-
-                       flash@0 {
-                               compatible = "jedec,spi-nor";
-                               reg = <0>;
-                               spi-max-frequency = <102000000>;
-                               spi-tx-bus-width = <4>;
-                               spi-rx-bus-width = <4>;
-                       };
-               };
-
-               mmc@3460000 {
-                       status = "okay";
-                       bus-width = <8>;
-                       non-removable;
-               };
-
-               i2c@c240000 {
-                       status = "okay";
-               };
-
-               i2c@c250000 {
-                       power-sensor@41 {
-                               compatible = "ti,ina3221";
-                               reg = <0x41>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               input@0 {
-                                       reg = <0x0>;
-                                       label = "CVB_ATX_12V";
-                                       shunt-resistor-micro-ohms = <2000>;
-                               };
-
-                               input@1 {
-                                       reg = <0x1>;
-                                       label = "CVB_ATX_3V3";
-                                       shunt-resistor-micro-ohms = <2000>;
+                       trips {
+                               tj_trip_active0: active-0 {
+                                       temperature = <85000>;
+                                       hysteresis = <4000>;
+                                       type = "active";
                                };
 
-                               input@2 {
-                                       reg = <0x2>;
-                                       label = "CVB_ATX_5V";
-                                       shunt-resistor-micro-ohms = <2000>;
+                               tj_trip_active1: active-1 {
+                                       temperature = <105000>;
+                                       hysteresis = <4000>;
+                                       type = "active";
                                };
                        };
-
-                       power-sensor@44 {
-                               compatible = "ti,ina219";
-                               reg = <0x44>;
-                               shunt-resistor = <2000>;
-                       };
-               };
-
-               rtc@c2a0000 {
-                       status = "okay";
                };
-
-               pmc@c360000 {
-                       nvidia,invert-interrupt;
-               };
-       };
-
-       bpmp {
-               i2c {
-                       status = "okay";
-
-                       thermal-sensor@4c {
-                               status = "okay";
-                               reg = <0x4c>;
-                               vcc-supply = <&vdd_1v8_ao>;
-                       };
-               };
-
-               thermal {
-                       status = "okay";
-               };
-       };
-
-       vdd_1v8_ao: regulator-vdd-1v8-ao {
-               compatible = "regulator-fixed";
-               regulator-name = "VDD_1V8_AO";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               regulator-always-on;
-       };
-
-       vdd_1v8_hs: regulator-vdd-1v8-hs {
-               compatible = "regulator-fixed";
-               regulator-name = "VDD_1V8_HS";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               regulator-always-on;
-       };
-
-       vdd_1v8_ls: regulator-vdd-1v8-ls {
-               compatible = "regulator-fixed";
-               regulator-name = "VDD_1V8_LS";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               regulator-always-on;
-       };
-
-       vdd_3v3_ao: regulator-vdd-3v3-ao {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd-AO-3v3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-always-on;
-       };
-
-       vdd_5v0_sys: regulator-vdd-5v0-sys {
-               compatible = "regulator-fixed";
-               regulator-name = "VIN_SYS_5V0";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               regulator-always-on;
-               regulator-boot-on;
        };
 };
index 320c8e9b06b46d743ca958fd0f2cc663021042e8..9086a0d010e5c5f834f905fe76ad699dcc6ccd27 100644 (file)
@@ -1,5 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 
+#include "tegra234.dtsi"
+
 / {
        compatible = "nvidia,p3701", "nvidia,tegra234";
 
                        };
                };
 
+               i2c@3160000 {
+                       status = "okay";
+
+                       eeprom@50 {
+                               compatible = "atmel,24c02";
+                               reg = <0x50>;
+
+                               label = "module";
+                               vcc-supply = <&vdd_1v8_hs>;
+                               address-width = <8>;
+                               pagesize = <8>;
+                               size = <256>;
+                               read-only;
+                       };
+               };
+
+               spi@3270000 {
+                       status = "okay";
+
+                       flash@0 {
+                               compatible = "jedec,spi-nor";
+                               reg = <0>;
+                               spi-max-frequency = <102000000>;
+                               spi-tx-bus-width = <4>;
+                               spi-rx-bus-width = <4>;
+                       };
+               };
+
+               mmc@3460000 {
+                       status = "okay";
+                       bus-width = <8>;
+                       non-removable;
+               };
+
+               padctl@3520000 {
+                       vclamp-usb-supply = <&vdd_1v8_ao>;
+                       avdd-usb-supply = <&vdd_3v3_ao>;
+
+                       ports {
+                               usb2-0 {
+                                       vbus-supply = <&vdd_5v0_sys>;
+                               };
+
+                               usb2-1 {
+                                       vbus-supply = <&vdd_5v0_sys>;
+                               };
+
+                               usb2-2 {
+                                       vbus-supply = <&vdd_5v0_sys>;
+                               };
+
+                               usb2-3 {
+                                       vbus-supply = <&vdd_5v0_sys>;
+                               };
+                       };
+               };
+
                i2c@c240000 {
                        status = "okay";
 
                                };
                        };
                };
+
+               rtc@c2a0000 {
+                       status = "okay";
+               };
+
+               pmc@c360000 {
+                       nvidia,invert-interrupt;
+               };
+       };
+
+       bpmp {
+               i2c {
+                       status = "okay";
+
+                       thermal-sensor@4c {
+                               compatible = "ti,tmp451";
+                               status = "okay";
+                               reg = <0x4c>;
+                               vcc-supply = <&vdd_1v8_ao>;
+                       };
+               };
+
+               thermal {
+                       status = "okay";
+               };
+       };
+
+       vdd_1v8_ao: regulator-vdd-1v8-ao {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V8_AO";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       vdd_1v8_hs: regulator-vdd-1v8-hs {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V8_HS";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       vdd_1v8_ls: regulator-vdd-1v8-ls {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V8_LS";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       vdd_3v3_ao: regulator-vdd-3v3-ao {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_3V3_AO";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       vdd_5v0_sys: regulator-vdd-5v0-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "VIN_SYS_5V0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
        };
 };
index 69db584253dae88b5d0d80f6530ad2fc9897e2ad..90f12277aede8bb5a73f22a967897b5fa9810449 100644 (file)
@@ -3,9 +3,9 @@
 
 #include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/sound/rt5640.h>
 
 #include "tegra234-p3701-0000.dtsi"
-#include "tegra234-p3737-0000.dtsi"
 
 / {
        model = "NVIDIA Jetson AGX Orin Developer Kit";
        };
 
        bus@0 {
+               aconnect@2900000 {
+                       ahub@2900800 {
+                               i2s@2901000 {
+                                       ports {
+                                               port@1 {
+                                                       endpoint {
+                                                               dai-format = "i2s";
+                                                               remote-endpoint = <&rt5640_ep>;
+                                                       };
+                                               };
+                                       };
+                               };
+                       };
+               };
+
                serial@3100000 {
                        compatible = "nvidia,tegra194-hsuart";
                        reset-names = "serial";
                        status = "okay";
                };
 
+               i2c@3160000 {
+                       status = "okay";
+
+                       eeprom@56 {
+                               compatible = "atmel,24c02";
+                               reg = <0x56>;
+
+                               label = "system";
+                               vcc-supply = <&vdd_1v8_sys>;
+                               address-width = <8>;
+                               pagesize = <8>;
+                               size = <256>;
+                               read-only;
+                       };
+               };
+
                serial@31d0000 {
                        current-speed = <115200>;
                        status = "okay";
                };
 
+               i2c@31e0000 {
+                       status = "okay";
+
+                       audio-codec@1c {
+                               compatible = "realtek,rt5640";
+                               reg = <0x1c>;
+                               interrupt-parent = <&gpio>;
+                               interrupts = <TEGRA234_MAIN_GPIO(AC, 5) GPIO_ACTIVE_HIGH>;
+                               clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>;
+                               clock-names = "mclk";
+                               realtek,dmic1-data-pin = <RT5640_DMIC1_DATA_PIN_NONE>;
+                               realtek,dmic2-data-pin = <RT5640_DMIC2_DATA_PIN_NONE>;
+                               realtek,jack-detect-source = <RT5640_JD_SRC_HDA_HEADER>;
+                               sound-name-prefix = "CVB-RT";
+
+                               port {
+                                       rt5640_ep: endpoint {
+                                               remote-endpoint = <&i2s1_dap>;
+                                               mclk-fs = <256>;
+                                       };
+                               };
+                       };
+               };
+
+               pwm@3280000 {
+                       status = "okay";
+               };
+
                pwm@32a0000 {
                        assigned-clocks = <&bpmp TEGRA234_CLK_PWM3>;
                        assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
                        status = "okay";
                };
 
+               pwm@32c0000 {
+                       status = "okay";
+               };
+
+               pwm@32f0000 {
+                       status = "okay";
+               };
+
+               mmc@3400000 {
+                       status = "okay";
+                       bus-width = <4>;
+                       cd-gpios = <&gpio TEGRA234_MAIN_GPIO(G, 7) GPIO_ACTIVE_LOW>;
+                       disable-wp;
+               };
+
                hda@3510000 {
                        nvidia,model = "NVIDIA Jetson AGX Orin HDA";
                        status = "okay";
                };
        };
 
-       pwm-fan {
+       fan: pwm-fan {
+               compatible = "pwm-fan";
                cooling-levels = <66 215 255>;
+               pwms = <&pwm3 0 45334>;
+               #cooling-cells = <2>;
        };
 
        serial {
                        };
                };
        };
+
+       vdd_1v8_sys: regulator-vdd-1v8-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V8_SYS";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       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 TEGRA234_MAIN_GPIO(H, 4) GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               enable-active-high;
+       };
+
+       vdd_12v_pcie: regulator-vdd-12v-pcie {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_12V_PCIE";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               gpio = <&gpio TEGRA234_MAIN_GPIO(A, 1) GPIO_ACTIVE_LOW>;
+               regulator-boot-on;
+       };
 };
diff --git a/src/arm64/nvidia/tegra234-p3737-0000.dtsi b/src/arm64/nvidia/tegra234-p3737-0000.dtsi
deleted file mode 100644 (file)
index eb79e80..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-
-#include <dt-bindings/sound/rt5640.h>
-
-/ {
-       compatible = "nvidia,p3737-0000";
-
-       bus@0 {
-               aconnect@2900000 {
-                       ahub@2900800 {
-                               i2s@2901000 {
-                                       ports {
-                                               port@1 {
-                                                       endpoint {
-                                                               dai-format = "i2s";
-                                                               remote-endpoint = <&rt5640_ep>;
-                                                       };
-                                               };
-                                       };
-                               };
-                       };
-               };
-
-               i2c@3160000 {
-                       status = "okay";
-
-                       eeprom@56 {
-                               compatible = "atmel,24c02";
-                               reg = <0x56>;
-
-                               label = "system";
-                               vcc-supply = <&vdd_1v8_sys>;
-                               address-width = <8>;
-                               pagesize = <8>;
-                               size = <256>;
-                               read-only;
-                       };
-               };
-
-               i2c@31e0000 {
-                       status = "okay";
-
-                       audio-codec@1c {
-                               compatible = "realtek,rt5640";
-                               reg = <0x1c>;
-                               interrupt-parent = <&gpio>;
-                               interrupts = <TEGRA234_MAIN_GPIO(AC, 5) GPIO_ACTIVE_HIGH>;
-                               clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>;
-                               clock-names = "mclk";
-                               realtek,dmic1-data-pin = <RT5640_DMIC1_DATA_PIN_NONE>;
-                               realtek,dmic2-data-pin = <RT5640_DMIC2_DATA_PIN_NONE>;
-                               realtek,jack-detect-source = <RT5640_JD_SRC_HDA_HEADER>;
-                               sound-name-prefix = "CVB-RT";
-
-                               port {
-                                       rt5640_ep: endpoint {
-                                               remote-endpoint = <&i2s1_dap>;
-                                               mclk-fs = <256>;
-                                       };
-                               };
-                       };
-               };
-
-               pwm@3280000 {
-                       status = "okay";
-               };
-
-               pwm@32c0000 {
-                       status = "okay";
-               };
-
-               pwm@32f0000 {
-                       status = "okay";
-               };
-       };
-
-       fan: pwm-fan {
-               compatible = "pwm-fan";
-               pwms = <&pwm3 0 45334>;
-               #cooling-cells = <2>;
-       };
-
-       vdd_1v8_sys: regulator-vdd-1v8-sys {
-               compatible = "regulator-fixed";
-               regulator-name = "VDD_1V8_SYS";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               regulator-always-on;
-       };
-};
index bac611d735c58957d9be57b4c7b116ee72e75a36..36e8880537460611ffe64d37159b2db4015e7d90 100644 (file)
@@ -3,8 +3,8 @@
 
 #include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/sound/rt5640.h>
 #include "tegra234-p3701-0008.dtsi"
-#include "tegra234-p3740-0002.dtsi"
 
 / {
        model = "NVIDIA IGX Orin Development Kit";
        };
 
        bus@0 {
+               aconnect@2900000 {
+                       ahub@2900800 {
+                               i2s@2901300 {
+                                       ports {
+                                               port@1 {
+                                                       endpoint {
+                                                               dai-format = "i2s";
+                                                               remote-endpoint = <&rt5640_ep>;
+                                                       };
+                                               };
+                                       };
+                               };
+
+                               i2s@2901500 {
+                                       ports {
+                                               port@1 {
+                                                       endpoint {
+                                                               bitclock-master;
+                                                               frame-master;
+                                                       };
+                                               };
+                                       };
+                               };
+                       };
+               };
+
                serial@3100000 {
                        compatible = "nvidia,tegra194-hsuart";
                        reset-names = "serial";
                i2c@31c0000 {
                        status = "okay";
 
+                       rt5640: audio-codec@1c {
+                               compatible = "realtek,rt5640";
+                               reg = <0x1c>;
+                               interrupt-parent = <&gpio>;
+                               interrupts = <TEGRA234_MAIN_GPIO(F, 3) GPIO_ACTIVE_HIGH>;
+                               clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>;
+                               clock-names = "mclk";
+
+                               realtek,dmic1-data-pin = <RT5640_DMIC1_DATA_PIN_NONE>;
+                               realtek,dmic2-data-pin = <RT5640_DMIC2_DATA_PIN_NONE>;
+                               realtek,jack-detect-source = <RT5640_JD_SRC_HDA_HEADER>;
+
+                               sound-name-prefix = "CVB-RT";
+
+                               port {
+                                       rt5640_ep: endpoint {
+                                               remote-endpoint = <&i2s4_dap>;
+                                               mclk-fs = <256>;
+                                       };
+                               };
+                       };
+
+                       /* carrier board ID EEPROM */
+                       eeprom@55 {
+                               compatible = "atmel,24c02";
+                               reg = <0x55>;
+
+                               label = "system";
+                               vcc-supply = <&vdd_1v8_ls>;
+                               address-width = <8>;
+                               pagesize = <8>;
+                               size = <256>;
+                               read-only;
+                       };
                };
 
                i2c@31e0000 {
                        status = "okay";
                };
 
+               padctl@3520000 {
+                       status = "okay";
+
+                       pads {
+                               usb2 {
+                                       lanes {
+                                               usb2-0 {
+                                                       nvidia,function = "xusb";
+                                                       status = "okay";
+                                               };
+
+                                               usb2-1 {
+                                                       nvidia,function = "xusb";
+                                                       status = "okay";
+                                               };
+
+                                               usb2-2 {
+                                                       nvidia,function = "xusb";
+                                                       status = "okay";
+                                               };
+
+                                               usb2-3 {
+                                                       nvidia,function = "xusb";
+                                                       status = "okay";
+                                               };
+                                       };
+                               };
+
+                               usb3 {
+                                       lanes {
+                                               usb3-0 {
+                                                       nvidia,function = "xusb";
+                                                       status = "okay";
+                                               };
+
+                                               usb3-1 {
+                                                       nvidia,function = "xusb";
+                                                       status = "okay";
+                                               };
+
+                                               usb3-2 {
+                                                       nvidia,function = "xusb";
+                                                       status = "okay";
+                                               };
+                                       };
+                               };
+                       };
+
+                       ports {
+                               usb2-0 {
+                                       mode = "otg";
+                                       usb-role-switch;
+                                       status = "okay";
+                               };
+
+                               usb2-1 {
+                                       mode = "host";
+                                       status = "okay";
+                               };
+
+                               usb2-2 {
+                                       mode = "host";
+                                       status = "okay";
+                               };
+
+                               usb2-3 {
+                                       mode = "host";
+                                       status = "okay";
+                               };
+
+                               usb3-0 {
+                                       nvidia,usb2-companion = <2>;
+                                       status = "okay";
+                               };
+
+                               usb3-1 {
+                                       nvidia,usb2-companion = <0>;
+                                       status = "okay";
+                               };
+
+                               usb3-2 {
+                                       nvidia,usb2-companion = <1>;
+                                       status = "okay";
+                               };
+                       };
+               };
+
+               usb@3550000 {
+                       status = "okay";
+
+                       phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
+                               <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>;
+                       phy-names = "usb2-0", "usb3-0";
+               };
+
+               usb@3610000 {
+                       status = "okay";
+
+                       phys =  <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
+                               <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>,
+                               <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>,
+                               <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-3}>,
+                               <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
+                               <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>,
+                               <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>;
+                       phy-names = "usb2-0", "usb2-1", "usb2-2", "usb2-3",
+                               "usb3-0", "usb3-1", "usb3-2";
+               };
+
                fuse@3810000 {
                        status = "okay";
                };
 
                i2c@c250000 {
                        status = "okay";
+
+                       power-sensor@41 {
+                               compatible = "ti,ina3221";
+                               reg = <0x41>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               input@0 {
+                                       reg = <0x0>;
+                                       label = "CVB_ATX_12V";
+                                       shunt-resistor-micro-ohms = <2000>;
+                               };
+
+                               input@1 {
+                                       reg = <0x1>;
+                                       label = "CVB_ATX_3V3";
+                                       shunt-resistor-micro-ohms = <2000>;
+                               };
+
+                               input@2 {
+                                       reg = <0x2>;
+                                       label = "CVB_ATX_5V";
+                                       shunt-resistor-micro-ohms = <2000>;
+                               };
+                       };
+
+                       power-sensor@44 {
+                               compatible = "ti,ina219";
+                               reg = <0x44>;
+                               shunt-resistor = <2000>;
+                       };
                };
 
                host1x@13e00000 {
                          "CVB-RT DMIC1",               "CVB-RT MIC",
                          "CVB-RT DMIC2",               "CVB-RT MIC";
        };
+
+       vdd_3v3_dp: regulator-vdd-3v3-dp {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_3V3_DP";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vdd_3v3_sys>;
+               gpio = <&gpio TEGRA234_MAIN_GPIO(H, 6) 0>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       vdd_3v3_sys: regulator-vdd-3v3-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_3V3_SYS";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       vdd_3v3_wifi: regulator-vdd-3v3-wifi {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_3V3_WIFI";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio TEGRA234_MAIN_GPIO(G, 3) GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               enable-active-high;
+       };
 };
diff --git a/src/arm64/nvidia/tegra234-p3740-0002.dtsi b/src/arm64/nvidia/tegra234-p3740-0002.dtsi
deleted file mode 100644 (file)
index 527f2f3..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-
-#include <dt-bindings/sound/rt5640.h>
-
-/ {
-       compatible = "nvidia,p3740-0002";
-
-       bus@0 {
-               aconnect@2900000 {
-                       ahub@2900800 {
-                               i2s@2901300 {
-                                       ports {
-                                               port@1 {
-                                                       endpoint {
-                                                               dai-format = "i2s";
-                                                               remote-endpoint = <&rt5640_ep>;
-                                                       };
-                                               };
-                                       };
-                               };
-
-                               i2s@2901500 {
-                                       ports {
-                                               port@1 {
-                                                       endpoint {
-                                                               bitclock-master;
-                                                               frame-master;
-                                                       };
-                                               };
-                                       };
-                               };
-                       };
-               };
-
-               i2c@31c0000 {
-                       rt5640: audio-codec@1c {
-                               compatible = "realtek,rt5640";
-                               reg = <0x1c>;
-                               interrupt-parent = <&gpio>;
-                               interrupts = <TEGRA234_MAIN_GPIO(F, 3) GPIO_ACTIVE_HIGH>;
-                               clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>;
-                               clock-names = "mclk";
-
-                               realtek,dmic1-data-pin = <RT5640_DMIC1_DATA_PIN_NONE>;
-                               realtek,dmic2-data-pin = <RT5640_DMIC2_DATA_PIN_NONE>;
-                               realtek,jack-detect-source = <RT5640_JD_SRC_HDA_HEADER>;
-
-                               sound-name-prefix = "CVB-RT";
-
-                               port {
-                                       rt5640_ep: endpoint {
-                                               remote-endpoint = <&i2s4_dap>;
-                                               mclk-fs = <256>;
-                                       };
-                               };
-                       };
-
-                       /* carrier board ID EEPROM */
-                       eeprom@55 {
-                               compatible = "atmel,24c02";
-                               reg = <0x55>;
-
-                               label = "system";
-                               vcc-supply = <&vdd_1v8_ls>;
-                               address-width = <8>;
-                               pagesize = <8>;
-                               size = <256>;
-                               read-only;
-                       };
-               };
-
-               padctl@3520000 {
-                       vclamp-usb-supply = <&vdd_1v8_ao>;
-                       avdd-usb-supply = <&vdd_3v3_ao>;
-                       status = "okay";
-
-                       pads {
-                               usb2 {
-                                       lanes {
-                                               usb2-0 {
-                                                       nvidia,function = "xusb";
-                                                       status = "okay";
-                                               };
-
-                                               usb2-1 {
-                                                       nvidia,function = "xusb";
-                                                       status = "okay";
-                                               };
-
-                                               usb2-2 {
-                                                       nvidia,function = "xusb";
-                                                       status = "okay";
-                                               };
-
-                                               usb2-3 {
-                                                       nvidia,function = "xusb";
-                                                       status = "okay";
-                                               };
-                                       };
-                               };
-
-                               usb3 {
-                                       lanes {
-                                               usb3-0 {
-                                                       nvidia,function = "xusb";
-                                                       status = "okay";
-                                               };
-
-                                               usb3-1 {
-                                                       nvidia,function = "xusb";
-                                                       status = "okay";
-                                               };
-
-                                               usb3-2 {
-                                                       nvidia,function = "xusb";
-                                                       status = "okay";
-                                               };
-                                       };
-                               };
-                       };
-
-                       ports {
-                               usb2-0 {
-                                       mode = "otg";
-                                       usb-role-switch;
-                                       status = "okay";
-                                       vbus-supply = <&vdd_5v0_sys>;
-                               };
-
-                               usb2-1 {
-                                       mode = "host";
-                                       status = "okay";
-                                       vbus-supply = <&vdd_5v0_sys>;
-                               };
-
-                               usb2-2 {
-                                       mode = "host";
-                                       status = "okay";
-                                       vbus-supply = <&vdd_5v0_sys>;
-                               };
-
-                               usb2-3 {
-                                       mode = "host";
-                                       status = "okay";
-                                       vbus-supply = <&vdd_5v0_sys>;
-                               };
-
-                               usb3-0 {
-                                       nvidia,usb2-companion = <2>;
-                                       status = "okay";
-                               };
-
-                               usb3-1 {
-                                       nvidia,usb2-companion = <0>;
-                                       status = "okay";
-                               };
-
-                               usb3-2 {
-                                       nvidia,usb2-companion = <1>;
-                                       status = "okay";
-                               };
-                       };
-               };
-
-               usb@3550000 {
-                       status = "okay";
-
-                       phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
-                               <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>;
-                       phy-names = "usb2-0", "usb3-0";
-               };
-
-               usb@3610000 {
-                       status = "okay";
-
-                       phys =  <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
-                               <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>,
-                               <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>,
-                               <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-3}>,
-                               <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
-                               <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>,
-                               <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>;
-                       phy-names = "usb2-0", "usb2-1", "usb2-2", "usb2-3",
-                               "usb3-0", "usb3-1", "usb3-2";
-               };
-       };
-
-       vdd_3v3_dp: regulator-vdd-3v3-dp {
-                               compatible = "regulator-fixed";
-                               regulator-name = "VDD_3V3_DP";
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3300000>;
-                               vin-supply = <&vdd_3v3_sys>;
-                               gpio = <&gpio TEGRA234_MAIN_GPIO(H, 6) 0>;
-                               enable-active-high;
-                               regulator-always-on;
-       };
-
-       vdd_3v3_sys: regulator-vdd-3v3-sys {
-                               compatible = "regulator-fixed";
-                               regulator-name = "VDD_3V3_SYS";
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3300000>;
-       };
-
-       vdd_3v3_wifi: regulator-vdd-3v3-wifi {
-                               compatible = "regulator-fixed";
-                               regulator-name = "VDD_3V3_WIFI";
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3300000>;
-                               gpio = <&gpio TEGRA234_MAIN_GPIO(G, 3) GPIO_ACTIVE_HIGH>;
-                               regulator-boot-on;
-                               enable-active-high;
-       };
-};
index 82a59e33c46c9b9f4cf6f1913d0205edcdbbd7a9..5dc974bb360cd3c8862ad6344e8826a64cee6015 100644 (file)
@@ -7,24 +7,7 @@
        compatible = "nvidia,p3768-0000+p3767-0000", "nvidia,p3767-0000", "nvidia,tegra234";
        model = "NVIDIA Jetson Orin NX Engineering Reference Developer Kit";
 
-       aliases {
-               serial1 = &uarta;
-               serial2 = &uarte;
-       };
-
        bus@0 {
-               serial@3100000 {
-                       compatible = "nvidia,tegra194-hsuart";
-                       reset-names = "serial";
-                       status = "okay";
-               };
-
-               serial@3140000 {
-                       compatible = "nvidia,tegra194-hsuart";
-                       reset-names = "serial";
-                       status = "okay";
-               };
-
                hda@3510000 {
                        nvidia,model = "NVIDIA Jetson Orin NX HDA";
                };
index 6d64a24fa2519354bed481a5d4427342f2d84beb..19340d13f789f07ed98d32a7b5683a2ee98b6fce 100644 (file)
@@ -9,6 +9,8 @@
 
        aliases {
                serial0 = &tcu;
+               serial1 = &uarta;
+               serial2 = &uarte;
        };
 
        chosen {
        };
 
        bus@0 {
+               serial@3100000 {
+                       compatible = "nvidia,tegra194-hsuart";
+                       reset-names = "serial";
+                       status = "okay";
+               };
+
+               serial@3140000 {
+                       compatible = "nvidia,tegra194-hsuart";
+                       reset-names = "serial";
+                       status = "okay";
+               };
+
                i2c@3160000 {
                        status = "okay";
 
                        phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3";
                };
 
+               pcie-ep@14160000 {/* C4 - End Point */
+                       phys = <&p2u_hsio_4>, <&p2u_hsio_5>, <&p2u_hsio_6>,
+                                       <&p2u_hsio_7>;
+                       phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3";
+                       reset-gpios = <&gpio
+                                       TEGRA234_MAIN_GPIO(L, 1)
+                                       GPIO_ACTIVE_LOW>;
+                       nvidia,refclk-select-gpios = <&gpio_aon
+                                                       TEGRA234_AON_GPIO(AA, 4)
+                                                       GPIO_ACTIVE_HIGH>;
+               };
+
                /* C7 - M.2 Key-M */
                pcie@141e0000 {
                        status = "okay";
index f2e2d8d6845bf1b95cf059fcba24725e49c5d5d9..984c85eab41afda5ab73cf7c43116781ad2a1aff 100644 (file)
                        interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&bpmp TEGRA234_CLK_UARTA>;
                        resets = <&bpmp TEGRA234_RESET_UARTA>;
+                       dmas = <&gpcdma 8>, <&gpcdma 8>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
                        status = "disabled";
                };
 
+               pcie-ep@14160000 {
+                       compatible = "nvidia,tegra234-pcie-ep";
+                       power-domains = <&bpmp TEGRA234_POWER_DOMAIN_PCIEX4BB>;
+                       reg = <0x00 0x14160000 0x0 0x00020000     /* appl registers (128K)      */
+                               0x00 0x36040000 0x0 0x00040000    /* iATU_DMA reg space (256K)  */
+                               0x00 0x36080000 0x0 0x00040000    /* DBI space (256K)           */
+                               0x21 0x40000000 0x3 0x00000000>;  /* Address Space (12G)        */
+                       reg-names = "appl", "atu_dma", "dbi", "addr_space";
+                       num-lanes = <4>;
+                       clocks = <&bpmp TEGRA234_CLK_PEX0_C4_CORE>;
+                       clock-names = "core";
+                       resets = <&bpmp TEGRA234_RESET_PEX0_CORE_4_APB>,
+                              <&bpmp TEGRA234_RESET_PEX0_CORE_4>;
+                       reset-names = "apb", "core";
+
+                       interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;  /* controller interrupt */
+                       interrupt-names = "intr";
+                       nvidia,bpmp = <&bpmp 4>;
+                       nvidia,enable-ext-refclk;
+                       nvidia,aspm-cmrt-us = <60>;
+                       nvidia,aspm-pwr-on-t-us = <20>;
+                       nvidia,aspm-l0s-entrance-latency-us = <3>;
+
+                       interconnects = <&mc TEGRA234_MEMORY_CLIENT_PCIE4R &emc>,
+                                     <&mc TEGRA234_MEMORY_CLIENT_PCIE4W &emc>;
+                       interconnect-names = "dma-mem", "write";
+                       iommus = <&smmu_niso0 TEGRA234_SID_PCIE4>;
+                       dma-coherent;
+                       status = "disabled";
+               };
+
                pcie@14180000 {
                        compatible = "nvidia,tegra234-pcie";
                        power-domains = <&bpmp TEGRA234_POWER_DOMAIN_PCIEX4BA>;
index 0a74ed4f72cc77659f0362764dea1f1d4646ec24..71328b22353114f21404450fcf54e2767fa50cd9 100644 (file)
@@ -7,6 +7,7 @@
 
 #include <dt-bindings/clock/qcom,apss-ipq.h>
 #include <dt-bindings/clock/qcom,ipq5332-gcc.h>
+#include <dt-bindings/interconnect/qcom,ipq5332.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
 / {
                        reg = <0x01800000 0x80000>;
                        #clock-cells = <1>;
                        #reset-cells = <1>;
+                       #interconnect-cells = <1>;
                        clocks = <&xo_board>,
                                 <&sleep_clk>,
                                 <0>,
                                          "dm_hs_phy_irq";
 
                        clocks = <&gcc GCC_USB0_MASTER_CLK>,
-                                <&gcc GCC_SNOC_USB_CLK>,
                                 <&gcc GCC_USB0_SLEEP_CLK>,
                                 <&gcc GCC_USB0_MOCK_UTMI_CLK>;
                        clock-names = "core",
-                                     "iface",
                                      "sleep",
                                      "mock_utmi";
 
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
+                       interconnects = <&gcc MASTER_SNOC_USB &gcc SLAVE_SNOC_USB>,
+                                       <&gcc MASTER_SNOC_USB &gcc SLAVE_SNOC_USB>;
+                       interconnect-names = "usb-ddr", "apps-usb";
 
                        status = "disabled";
 
index e1e45da7f787ea7f67e80c664688effc5bd81727..8edd535a188f2ddc8af2f564f514c8be4a8d7a43 100644 (file)
                        mboxes = <&apcs_glb 0>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-ipq6018";
+                               compatible = "qcom,rpm-ipq6018", "qcom,glink-smd-rpm";
                                qcom,glink-channels = "rpm_requests";
 
                                regulators {
index 48dfafea46a74783a1fd0b91766658f4e663c9f7..08a82a5cf667582706da106b4dbbde8120e0695f 100644 (file)
                        mboxes = <&apcs_glb 0>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-ipq9574";
+                               compatible = "qcom,rpm-ipq9574", "qcom,glink-smd-rpm";
                                qcom,glink-channels = "rpm_requests";
                        };
                };
index 3b7fdb6797a942298ac399a3a434b3cdc2795396..2cc54eaf72027a213f9d779c57fa22386bda934a 100644 (file)
                        };
                };
        };
+
+       flash-led-controller@53 {
+               compatible = "silergy,sy7802";
+               reg = <0x53>;
+
+               enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&camera_rear_flash_default>;
+               pinctrl-names = "default";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@0 {
+                       reg = <0>;
+                       function = LED_FUNCTION_FLASH;
+                       color = <LED_COLOR_ID_WHITE>;
+                       led-sources = <0>, <1>;
+               };
+       };
 };
 
 &blsp_i2c3 {
                bias-disable;
        };
 
+       camera_rear_flash_default: camera-rear-flash-default-state {
+               pins = "gpio9", "gpio16", "gpio117";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        gpio_keys_default: gpio-keys-default-state {
                pins = "gpio107";
                function = "gpio";
index 81b3e0760154f7601992edc33aa2e988eeba2377..7a7e99b015d9bf9686d2b41f7efb76a093c1730d 100644 (file)
 
                pinctrl-0 = <&tsp_int_default>;
                pinctrl-names = "default";
+
+               linux,keycodes = <KEY_APPSELECT KEY_BACK>;
        };
 };
 
index 135df1739dbda1e4a2f3415881671d5d21e8eb50..5ddb69bf8e78a98a5a057c8a655c5b57f8e7bf00 100644 (file)
        constant-charge-voltage-max-microvolt = <4400000>;
 };
 
+&blsp_i2c5 {
+       status = "okay";
+
+       touchscreen@50 {
+               compatible = "imagis,ist3038";
+               reg = <0x50>;
+
+               interrupts-extended = <&tlmm 13 IRQ_TYPE_EDGE_FALLING>;
+
+               touchscreen-size-x = <720>;
+               touchscreen-size-y = <1280>;
+
+               vdd-supply = <&reg_vdd_tsp_a>;
+               vddio-supply = <&pm8916_l6>;
+
+               pinctrl-0 = <&ts_int_default>;
+               pinctrl-names = "default";
+
+               linux,keycodes = <KEY_APPSELECT KEY_BACK>;
+       };
+};
+
 &reg_motor_vdd {
        gpio = <&tlmm 72 GPIO_ACTIVE_HIGH>;
 };
 
 &reg_touch_key {
-       status = "disabled";
+       status = "disabled"; /* Using Imagis touch key */
 };
 
 &sound {
index 579312ed53ce1a3654c4163774e719a9c07e6906..3d6d9dd3b8a89aa0c0906b3bf592c34eb2152086 100644 (file)
@@ -75,6 +75,7 @@
 
                touchscreen-size-x = <768>;
                touchscreen-size-y = <1024>;
+               linux,keycodes = <KEY_APPSELECT KEY_BACK>;
 
                vcca-supply = <&reg_vdd_tsp>;
                vdd-supply = <&pm8916_l6>;
diff --git a/src/arm64/qcom/msm8916-samsung-j3-common.dtsi b/src/arm64/qcom/msm8916-samsung-j3-common.dtsi
new file mode 100644 (file)
index 0000000..1d74ccc
--- /dev/null
@@ -0,0 +1,62 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include "msm8916-samsung-j5-common.dtsi"
+
+/ {
+       reserved-memory {
+               /delete-node/ tz-apps@85500000;
+
+               /* Additional memory used by Samsung firmware modifications */
+               tz-apps@85800000 {
+                       reg = <0x0 0x85800000 0x0 0x800000>;
+                       no-map;
+               };
+       };
+
+       reg_vdd_tsp_a: regulator-vdd-tsp-a {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_tsp_a";
+               regulator-min-microvolt = <3000000>;
+               regulator-max-microvolt = <3000000>;
+
+               gpio = <&tlmm 16 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&tsp_ldo_en_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&accelerometer {
+       vdd-supply = <&pm8916_l5>;
+       vddio-supply = <&pm8916_l5>;
+
+       mount-matrix = "0", "-1", "0",
+                      "1", "0", "0",
+                      "0", "0", "-1";
+};
+
+&gpio_hall_sensor {
+       status = "disabled";
+};
+
+&i2c_muic {
+       /* GPIO pins vary depending on model variant */
+};
+
+&i2c_sensors {
+       /* GPIO pins vary depending on model variant */
+};
+
+&touchscreen {
+       vdd-supply = <&reg_vdd_tsp_a>;
+};
+
+&tlmm {
+       tsp_ldo_en_default: tsp-ldo-en-default-state {
+               pins = "gpio16";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
diff --git a/src/arm64/qcom/msm8916-samsung-j3ltetw.dts b/src/arm64/qcom/msm8916-samsung-j3ltetw.dts
new file mode 100644 (file)
index 0000000..a26d2fd
--- /dev/null
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8916-samsung-j3-common.dtsi"
+
+/ {
+       model = "Samsung Galaxy J3 (2016) (SM-J320YZ)";
+       compatible = "samsung,j3ltetw", "qcom,msm8916";
+       chassis-type = "handset";
+};
+
+&i2c_muic {
+       sda-gpios = <&tlmm 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+       scl-gpios = <&tlmm 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+};
+
+&i2c_sensors {
+       /* I2C2 */
+       sda-gpios = <&tlmm 6 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+       scl-gpios = <&tlmm 7 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+};
+
+&muic_i2c_default {
+       pins = "gpio0", "gpio1";
+};
+
+&sensors_i2c_default {
+       /* I2C2 */
+       pins = "gpio6", "gpio7";
+};
index 1981bb71f6a928def5b6e9d1ed5197af4fcd2194..3413b0970c4abcb613e8f4dba64a805ac8737dd5 100644 (file)
        constant-charge-voltage-max-microvolt = <4400000>;
 };
 
+&blsp_i2c5 {
+       touchscreen@50 {
+               compatible = "imagis,ist3038";
+               reg = <0x50>;
+
+               interrupts-extended = <&tlmm 13 IRQ_TYPE_EDGE_FALLING>;
+
+               touchscreen-size-x = <480>;
+               touchscreen-size-y = <800>;
+
+               vdd-supply = <&reg_vdd_tsp_a>;
+               vddio-supply = <&pm8916_l6>;
+
+               pinctrl-0 = <&tsp_int_default>;
+               pinctrl-names = "default";
+
+               linux,keycodes = <KEY_APPSELECT KEY_BACK>;
+       };
+};
+
 &mpss_mem {
        /* Firmware for rossa needs more space */
        reg = <0x0 0x86800000 0x0 0x5800000>;
diff --git a/src/arm64/qcom/msm8916-wingtech-wt86518.dts b/src/arm64/qcom/msm8916-wingtech-wt86518.dts
new file mode 100644 (file)
index 0000000..3cfa80e
--- /dev/null
@@ -0,0 +1,87 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8916-wingtech-wt865x8.dtsi"
+
+/ {
+       model = "Lenovo A6000 (Wingtech WT86518)";
+       compatible = "wingtech,wt86518", "qcom,msm8916";
+       chassis-type = "handset";
+
+       speaker_amp: audio-amplifier {
+               compatible = "awinic,aw8738";
+
+               pinctrl-0 = <&spk_ext_pa_default>;
+               pinctrl-names = "default";
+
+               mode-gpios = <&tlmm 119 GPIO_ACTIVE_HIGH>;
+               sound-name-prefix = "Speaker Amp";
+               awinic,mode = <1>;
+       };
+};
+
+&blsp_i2c2 {
+       accelerometer@e {
+               compatible = "kionix,kxcj91008";
+               reg = <0xe>;
+
+               vdd-supply = <&pm8916_l6>;
+               vddio-supply = <&pm8916_l6>;
+
+               mount-matrix = "0", "-1", "0",
+                              "-1", "0", "0",
+                              "0",  "0", "1";
+       };
+};
+
+&headphones_switch {
+       VCC-supply = <&pm8916_l17>;
+};
+
+&pm8916_bms {
+       power-supplies = <&pm8916_charger>;
+};
+
+&pm8916_charger {
+       qcom,fast-charge-safe-current = <900000>;
+       qcom,fast-charge-safe-voltage = <4300000>;
+
+       monitored-battery = <&battery>;
+
+       status = "okay";
+};
+
+&sound {
+       model = "wt88047";
+       widgets = "Speaker", "Speaker",
+                 "Headphone", "Headphones";
+       pin-switches = "Speaker", "Headphones";
+       audio-routing = "Speaker", "Speaker Amp OUT",
+                       "Speaker Amp IN", "HPH_R",
+                       "Headphones", "Headphones Switch OUTL",
+                       "Headphones", "Headphones Switch OUTR",
+                       "Headphones Switch INL", "HPH_L",
+                       "Headphones Switch INR", "HPH_R",
+                       "AMIC1", "MIC BIAS Internal1",
+                       "AMIC2", "MIC BIAS Internal2";
+       aux-devs = <&speaker_amp>, <&headphones_switch>;
+};
+
+&usb {
+       dr_mode = "peripheral";
+       extcon = <&pm8916_charger>;
+};
+
+&usb_hs_phy {
+       extcon = <&pm8916_charger>;
+};
+
+&tlmm {
+       spk_ext_pa_default: spk-ext-pa-default-state {
+               pins = "gpio119";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
diff --git a/src/arm64/qcom/msm8916-wingtech-wt86528.dts b/src/arm64/qcom/msm8916-wingtech-wt86528.dts
new file mode 100644 (file)
index 0000000..ec2c4dc
--- /dev/null
@@ -0,0 +1,158 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8916-wingtech-wt865x8.dtsi"
+
+/ {
+       model = "Lenovo A6010 (Wingtech WT86528)";
+       compatible = "wingtech,wt86528", "qcom,msm8916";
+       chassis-type = "handset";
+
+       /* left AW8736 */
+       speaker_amp_left: audio-amplifier-left {
+               compatible = "awinic,aw8738";
+
+               pinctrl-0 = <&spk_ext_pa_left_default>;
+               pinctrl-names = "default";
+
+               mode-gpios = <&tlmm 119 GPIO_ACTIVE_HIGH>;
+               sound-name-prefix = "Speaker Amp L";
+               awinic,mode = <3>;
+       };
+
+       /* right AW8736 */
+       speaker_amp_right: audio-amplifier-right {
+               compatible = "awinic,aw8738";
+
+               pinctrl-0 = <&spk_ext_pa_right_default>;
+               pinctrl-names = "default";
+
+               mode-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>;
+               sound-name-prefix = "Speaker Amp R";
+               awinic,mode = <3>;
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               pinctrl-0 = <&gpio_leds_default>;
+               pinctrl-names = "default";
+
+               led-0 {
+                       gpios = <&tlmm 16 GPIO_ACTIVE_LOW>;
+                       label = "red";
+                       default-state = "off";
+                       retain-state-suspended;
+               };
+
+               led-1 {
+                       gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
+                       label = "green";
+                       default-state = "off";
+                       retain-state-suspended;
+               };
+       };
+
+       usb_id: usb-id {
+               compatible = "linux,extcon-usb-gpio";
+               id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb_id_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp_i2c2 {
+       magnetometer@c {
+               compatible = "asahi-kasei,ak09911";
+               reg = <0x0c>;
+
+               vdd-supply = <&pm8916_l17>;
+               vid-supply = <&pm8916_l6>;
+       };
+
+       imu@68 {
+               compatible = "invensense,mpu6880";
+               reg = <0x68>;
+
+               interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_RISING>;
+
+               vdd-supply = <&pm8916_l17>;
+               vddio-supply = <&pm8916_l6>;
+
+               pinctrl-0 = <&imu_default>;
+               pinctrl-names = "default";
+
+               mount-matrix = "1",  "0", "0",
+                              "0", "-1", "0",
+                              "0",  "0", "1";
+       };
+};
+
+&pm8916_codec {
+       qcom,micbias1-ext-cap;
+};
+
+&sound {
+       model = "wt86528";
+       widgets = "Speaker", "Speaker",
+                 "Headphone", "Headphones";
+       pin-switches = "Speaker", "Headphones";
+       audio-routing = "Speaker", "Speaker Amp L OUT",
+                       "Speaker", "Speaker Amp R OUT",
+                       "Speaker Amp L IN", "HPH_L",
+                       "Speaker Amp R IN", "HPH_R",
+                       "Headphones", "Headphones Switch OUTL",
+                       "Headphones", "Headphones Switch OUTR",
+                       "Headphones Switch INL", "HPH_L",
+                       "Headphones Switch INR", "HPH_R",
+                       "AMIC1", "MIC BIAS External1",
+                       "AMIC2", "MIC BIAS Internal2",
+                       "AMIC3", "MIC BIAS External1";
+       aux-devs = <&speaker_amp_left>, <&speaker_amp_right>, <&headphones_switch>;
+};
+
+&usb {
+       extcon = <&usb_id>, <&usb_id>;
+};
+
+&usb_hs_phy {
+       extcon = <&usb_id>;
+};
+
+&tlmm {
+       gpio_leds_default: gpio-leds-default-state {
+               pins = "gpio16", "gpio17";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       imu_default: imu-default-state {
+               pins = "gpio115";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       spk_ext_pa_left_default: spk-ext-pa-left-default-state {
+               pins = "gpio119";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       spk_ext_pa_right_default: spk-ext-pa-right-default-state {
+               pins = "gpio121";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       usb_id_default: usb-id-default-state {
+               pins = "gpio110";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+};
diff --git a/src/arm64/qcom/msm8916-wingtech-wt865x8.dtsi b/src/arm64/qcom/msm8916-wingtech-wt865x8.dtsi
new file mode 100644 (file)
index 0000000..1a7c347
--- /dev/null
@@ -0,0 +1,215 @@
+// 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/pinctrl/qcom,pmic-mpp.h>
+
+/ {
+       aliases {
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0";
+       };
+
+       headphones_switch: audio-switch {
+               compatible = "simple-audio-amplifier";
+
+               pinctrl-0 = <&headphones_switch_default>;
+               pinctrl-names = "default";
+
+               enable-gpios = <&tlmm 120 GPIO_ACTIVE_HIGH>;
+               sound-name-prefix = "Headphones Switch";
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pm8916_pwm 0 100000>;
+
+               brightness-levels = <0 255>;
+               num-interpolated-steps = <255>;
+               default-brightness-level = <255>;
+       };
+
+       battery: battery {
+               compatible = "simple-battery";
+               voltage-min-design-microvolt = <3400000>;
+               voltage-max-design-microvolt = <4350000>;
+               energy-full-design-microwatt-hours = <8740000>;
+               charge-full-design-microamp-hours = <2300000>;
+
+               ocv-capacity-celsius = <25>;
+               ocv-capacity-table-0 = <4328000 100>, <4266000 95>, <4208000 90>,
+                       <4154000 85>, <4102000 80>, <4062000 75>, <3992000 70>,
+                       <3960000 65>, <3914000 60>, <3870000 55>, <3840000 50>,
+                       <3818000 45>, <3800000 40>, <3784000 35>, <3770000 30>,
+                       <3756000 25>, <3736000 20>, <3714000 16>, <3696000 13>,
+                       <3690000 11>, <3689000 10>, <3688000 9>, <3686000 8>,
+                       <3682000 7>, <3670000 6>, <3639000 5>, <3592000 4>,
+                       <3530000 3>, <3448000 2>, <3320000 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>;
+               };
+       };
+};
+
+&blsp_i2c5 {
+       status = "okay";
+
+       touchscreen@38 {
+               compatible = "edt,edt-ft5306";
+               reg = <0x38>;
+
+               interrupts-extended = <&tlmm 13 IRQ_TYPE_EDGE_FALLING>;
+
+               vcc-supply = <&pm8916_l17>;
+               iovcc-supply = <&pm8916_l6>;
+
+               reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
+
+               touchscreen-size-x = <720>;
+               touchscreen-size-y = <1280>;
+
+               pinctrl-0 = <&touchscreen_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp_uart2 {
+       status = "okay";
+};
+
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5500000>;
+};
+
+&pm8916_bms {
+       monitored-battery = <&battery>;
+       status = "okay";
+};
+
+&pm8916_codec {
+       qcom,micbias-lvl = <2800>;
+       qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
+       qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
+       qcom,hphl-jack-type-normally-open;
+};
+
+&pm8916_pwm {
+       pinctrl-0 = <&pwm_out>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pm8916_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&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>;
+       pinctrl-1 = <&sdc2_sleep>;
+       pinctrl-names = "default", "sleep";
+
+       non-removable;
+
+       status = "okay";
+};
+
+&usb {
+       status = "okay";
+};
+
+&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";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       headphones_switch_default: headphones-switch-default-state {
+               pins = "gpio120";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       touchscreen_default: touchscreen-default-state {
+               touchscreen-pins {
+                       pins = "gpio13";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               reset-pins {
+                       pins = "gpio12";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+};
+
+&pm8916_mpps {
+       pwm_out: mpp4-state {
+               pins = "mpp4";
+               function = "digital";
+               power-source = <PM8916_MPP_VPH>;
+               output-low;
+               qcom,dtest = <1>;
+       };
+};
index 7383bcc603abc257c27121c690aa03be772e92e1..0ee44706b70ba3844a5bdd63298f318fb9e1d7c5 100644 (file)
                        qcom,smd-edge = <15>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-msm8916";
+                               compatible = "qcom,rpm-msm8916", "qcom,smd-rpm";
                                qcom,smd-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
diff --git a/src/arm64/qcom/msm8929-pm8916.dtsi b/src/arm64/qcom/msm8929-pm8916.dtsi
new file mode 100644 (file)
index 0000000..c2bf259
--- /dev/null
@@ -0,0 +1,162 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * msm8929-pm8916.dtsi describes common properties (e.g. regulator connections)
+ * that apply to most devices that make use of the MSM8929 SoC and PM8916 PMIC.
+ * Many regulators have a fixed purpose in the original reference design and
+ * were rarely re-used for different purposes. Devices that deviate from the
+ * typical reference design should not make use of this include and instead add
+ * the necessary properties in the board-specific device tree.
+ */
+
+#include "msm8929.dtsi"
+#include "pm8916.dtsi"
+
+&mdss_dsi0 {
+       vdda-supply = <&pm8916_l2>;
+       vddio-supply = <&pm8916_l6>;
+};
+
+&mdss_dsi0_phy {
+       vddio-supply = <&pm8916_l6>;
+};
+
+&mdss_dsi1 {
+       vdda-supply = <&pm8916_l2>;
+       vddio-supply = <&pm8916_l6>;
+};
+
+&mdss_dsi1_phy {
+       vddio-supply = <&pm8916_l6>;
+};
+
+&mpss {
+       pll-supply = <&pm8916_l7>;
+};
+
+&pm8916_codec {
+       vdd-cdc-io-supply = <&pm8916_l5>;
+       vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
+       vdd-micbias-supply = <&pm8916_l13>;
+};
+
+&rpm_requests {
+       pm8916_rpm_regulators: regulators {
+               compatible = "qcom,rpm-pm8916-regulators";
+               vdd_l1_l2_l3-supply = <&pm8916_s3>;
+               vdd_l4_l5_l6-supply = <&pm8916_s4>;
+               vdd_l7-supply = <&pm8916_s4>;
+
+               /* pm8916_s1 is managed by rpmpd (MSM8939_VDDMDCX) */
+               /* pm8916_s2 is managed by rpmpd (MSM8939_VDDCX) */
+               pm8916_s3: s3 {
+                       regulator-min-microvolt = <1250000>;
+                       regulator-max-microvolt = <1350000>;
+                       regulator-always-on; /* Needed for L2 */
+               };
+               pm8916_s4: s4 {
+                       regulator-min-microvolt = <1850000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-always-on; /* Needed for L5/L7 */
+               };
+
+               /*
+                * Some of the regulators are unused or managed by another
+                * processor (e.g. the modem). We should still define nodes for
+                * them to ensure the vote from the application processor can be
+                * dropped in case the regulators are already on during boot.
+                *
+                * The labels for these nodes are omitted on purpose because
+                * boards should configure a proper voltage before using them.
+                */
+               l1 {};
+
+               pm8916_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-always-on; /* Needed for LPDDR RAM */
+               };
+
+               /* pm8916_l3 is managed by rpmpd (MSM8939_VDDMX) */
+
+               l4 {};
+
+               pm8916_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on; /* Needed for most digital I/O */
+               };
+
+               pm8916_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8916_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on; /* Needed for CPU PLL */
+               };
+
+               pm8916_l8: l8 {
+                       regulator-min-microvolt = <2900000>;
+                       regulator-max-microvolt = <2900000>;
+               };
+
+               pm8916_l9: l9 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               l10 {};
+
+               pm8916_l11: l11 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-allow-set-load;
+                       regulator-system-load = <200000>;
+               };
+
+               pm8916_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8916_l13: l13 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+
+               l14 {};
+               l15 {};
+               l16 {};
+               l17 {};
+               l18 {};
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm8916_l8>;
+       vqmmc-supply = <&pm8916_l5>;
+};
+
+&sdhc_2 {
+       vmmc-supply = <&pm8916_l11>;
+       vqmmc-supply = <&pm8916_l12>;
+};
+
+&usb_hs_phy {
+       v1p8-supply = <&pm8916_l7>;
+       v3p3-supply = <&pm8916_l13>;
+};
+
+&wcnss {
+       vddpx-supply = <&pm8916_l7>;
+};
+
+&wcnss_iris {
+       vddxo-supply = <&pm8916_l7>;
+       vddrfa-supply = <&pm8916_s3>;
+       vddpa-supply = <&pm8916_l9>;
+       vdddig-supply = <&pm8916_l5>;
+};
+
diff --git a/src/arm64/qcom/msm8929-wingtech-wt82918hd.dts b/src/arm64/qcom/msm8929-wingtech-wt82918hd.dts
new file mode 100644 (file)
index 0000000..8feecff
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8929-pm8916.dtsi"
+#include "msm8939-wingtech-wt82918.dtsi"
+
+/ {
+       model = "Lenovo Vibe K5 (HD) (Wingtech WT82918)";
+       compatible = "wingtech,wt82918hd", "qcom,msm8929";
+       chassis-type = "handset";
+};
+
+&touchscreen {
+       touchscreen-size-x = <720>;
+       touchscreen-size-y = <1280>;
+};
diff --git a/src/arm64/qcom/msm8929.dtsi b/src/arm64/qcom/msm8929.dtsi
new file mode 100644 (file)
index 0000000..ef7bb1c
--- /dev/null
@@ -0,0 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include "msm8939.dtsi"
+
+&opp_table {
+       /delete-node/ opp-550000000;
+};
index e3404c4455cf8d08d559cd4554c7898d10c68024..b845da4fa23e612f04cf8a8f15b8892e396a8c41 100644 (file)
                        };
                };
        };
+
+       flash-led-controller@53 {
+               compatible = "silergy,sy7802";
+               reg = <0x53>;
+
+               enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&camera_rear_flash_default>;
+               pinctrl-names = "default";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@0 {
+                       reg = <0>;
+                       function = LED_FUNCTION_FLASH;
+                       color = <LED_COLOR_ID_WHITE>;
+                       led-sources = <0>, <1>;
+               };
+       };
 };
 
 &blsp_i2c3 {
                bias-disable;
        };
 
+       camera_rear_flash_default: camera-rear-flash-default-state {
+               pins = "gpio9", "gpio16", "gpio51";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        gpio_hall_sensor_default: gpio-hall-sensor-default-state {
                pins = "gpio20";
                function = "gpio";
index 91acdb160227114e0961ce06f1b3a1a0602bc00b..ceba6e73b2112687d16ee595003c80ea1a93143a 100644 (file)
                };
        };
 
-       pwm_vibrator: pwm-vibrator {
+       pwm_vibrator: pwm {
                compatible = "clk-pwm";
                #pwm-cells = <2>;
 
diff --git a/src/arm64/qcom/msm8939-wingtech-wt82918.dts b/src/arm64/qcom/msm8939-wingtech-wt82918.dts
new file mode 100644 (file)
index 0000000..aa6b699
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8939-pm8916.dtsi"
+#include "msm8939-wingtech-wt82918.dtsi"
+
+/ {
+       model = "Lenovo Vibe K5 (Wingtech WT82918)";
+       compatible = "wingtech,wt82918", "qcom,msm8939";
+       chassis-type = "handset";
+};
+
+&touchscreen {
+       touchscreen-size-x = <1080>;
+       touchscreen-size-y = <1920>;
+};
diff --git a/src/arm64/qcom/msm8939-wingtech-wt82918.dtsi b/src/arm64/qcom/msm8939-wingtech-wt82918.dtsi
new file mode 100644 (file)
index 0000000..800e074
--- /dev/null
@@ -0,0 +1,252 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include "msm8916-modem-qdsp6.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
+
+/ {
+       aliases {
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0";
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pm8916_pwm 0 100000>;
+               brightness-levels = <0 255>;
+               num-interpolated-steps = <255>;
+               default-brightness-level = <128>;
+       };
+
+       flash-led-controller {
+               compatible = "sgmicro,sgm3140";
+               enable-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
+               flash-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&camera_front_flash_default>;
+               pinctrl-names = "default";
+
+               flash_led: led {
+                       function = LED_FUNCTION_FLASH;
+                       color = <LED_COLOR_ID_WHITE>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_keys_default>;
+               pinctrl-names = "default";
+
+               label = "GPIO Buttons";
+
+               button-volume-up {
+                       label = "Volume Up";
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               pinctrl-0 = <&gpio_leds_default>;
+               pinctrl-names = "default";
+
+               led-0 {
+                       gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
+                       function = LED_FUNCTION_CHARGING;
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "off";
+                       retain-state-suspended;
+               };
+
+               led-1 {
+                       gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "off";
+                       retain-state-suspended;
+               };
+       };
+
+       usb_id: usb-id {
+               compatible = "linux,extcon-usb-gpio";
+               id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb_id_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp_i2c2 {
+       status = "okay";
+
+       accelerometer@68 {
+               compatible = "invensense,icm20608";
+               reg = <0x68>;
+
+               interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_FALLING>;
+
+               pinctrl-0 = <&accelerometer_default>;
+               pinctrl-names = "default";
+
+               vdd-supply = <&pm8916_l17>;
+               vddio-supply = <&pm8916_l6>;
+
+               mount-matrix = "-1", "0", "0",
+                               "0", "1", "0",
+                               "0", "0", "1";
+       };
+};
+
+&blsp_i2c5 {
+       status = "okay";
+
+       touchscreen: touchscreen@38 {
+               compatible = "edt,edt-ft5306";
+               reg = <0x38>;
+
+               interrupts-extended = <&tlmm 13 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&touchscreen_default>;
+               pinctrl-names = "default";
+
+               vcc-supply = <&pm8916_l17>;
+               iovcc-supply = <&pm8916_l6>;
+
+               reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&blsp_uart2 {
+       status = "okay";
+};
+
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5500000>;
+};
+
+&pm8916_pwm {
+       pinctrl-0 = <&pwm_out>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pm8916_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&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>;
+       pinctrl-1 = <&sdc2_sleep>;
+       pinctrl-names = "default", "sleep";
+       non-removable;
+       status = "okay";
+};
+
+&usb {
+       extcon = <&usb_id>, <&usb_id>;
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&usb_id>;
+};
+
+&wcnss {
+       status = "okay";
+};
+
+&wcnss_iris {
+       compatible = "qcom,wcn3620";
+};
+
+&wcnss_mem {
+       status = "okay";
+};
+
+&tlmm {
+       accelerometer_default: accelerometer-default-state {
+               pins = "gpio115";
+               function = "gpio";
+               drive-strength = <6>;
+               bias-pull-up;
+       };
+
+       camera_front_flash_default: camera-front-flash-default-state {
+               pins = "gpio31", "gpio32";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       gpio_keys_default: gpio-keys-default-state {
+               pins = "gpio107";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       gpio_leds_default: gpio-leds-default-state {
+               pins = "gpio36", "gpio69";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       touchscreen_default: touchscreen-default-state {
+               reset-pins {
+                       pins = "gpio12";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               touchscreen-pins {
+                       pins = "gpio13";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       usb_id_default: usb-id-default-state {
+               pins = "gpio110";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+};
+
+&pm8916_mpps {
+       pwm_out: mpp4-state {
+               pins = "mpp4";
+               function = "digital";
+               power-source = <PM8916_MPP_VPH>;
+               output-low;
+               qcom,dtest = <1>;
+       };
+};
diff --git a/src/arm64/qcom/msm8939-wingtech-wt82918hd.dts b/src/arm64/qcom/msm8939-wingtech-wt82918hd.dts
new file mode 100644 (file)
index 0000000..59414db
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8939-pm8916.dtsi"
+#include "msm8939-wingtech-wt82918.dtsi"
+
+/ {
+       model = "Lenovo Vibe K5 (HD) (Wingtech WT82918)";
+       compatible = "wingtech,wt82918hdhw39", "qcom,msm8939";
+       chassis-type = "handset";
+};
+
+&touchscreen {
+       touchscreen-size-x = <720>;
+       touchscreen-size-y = <1280>;
+};
index 46d9480cd46456045f8b7ea71a87799e23200d5a..7af210789879af380d98e5b79f6b51dcb27be873 100644 (file)
 
                smd-edge {
                        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-                       mboxes = <&apcs1_mbox 0>;
+                       qcom,ipc = <&apcs1_mbox 8 0>;
                        qcom,smd-edge = <15>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-msm8936";
+                               compatible = "qcom,rpm-msm8936", "qcom,smd-rpm";
                                qcom,smd-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
index a4bfb624fb8ada27ea494e77e8a743319e1ae42b..d20fd3d7c46e4f93a4436c39d5286f69ed7a99c7 100644 (file)
                        qcom,smd-edge = <15>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-msm8953";
+                               compatible = "qcom,rpm-msm8953", "qcom,smd-rpm";
                                qcom,smd-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
index d62dcb76fa48547b3dc7fe51494a0acf7666f878..06af6e5ec578ed5e6061ce976d0026c45b5d8fc3 100644 (file)
                        qcom,smd-edge = <15>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-msm8976";
+                               compatible = "qcom,rpm-msm8976", "qcom,smd-rpm";
                                qcom,smd-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
                        #thermal-sensor-cells = <1>;
                };
 
+               restart@4ab000 {
+                       compatible = "qcom,pshold";
+                       reg = <0x004ab000 0x4>;
+               };
+
                tlmm: pinctrl@1000000 {
                        compatible = "qcom,msm8976-pinctrl";
                        reg = <0x01000000 0x300000>;
diff --git a/src/arm64/qcom/msm8992-lg-h815.dts b/src/arm64/qcom/msm8992-lg-h815.dts
new file mode 100644 (file)
index 0000000..38b3058
--- /dev/null
@@ -0,0 +1,231 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * MSM8992 LG G4 (h815) device tree.
+ *
+ * Copyright (c) 2024, Alexander Reimelt <alexander.reimelt@posteo.de>
+ */
+
+/dts-v1/;
+
+#include "msm8992.dtsi"
+#include "pm8994.dtsi"
+#include "pmi8994.dtsi"
+#include <dt-bindings/leds/common.h>
+
+/* different mapping */
+/delete-node/ &cont_splash_mem;
+
+/* disabled downstream */
+/delete-node/ &dfps_data_mem;
+
+/ {
+       model = "LG G4 (H815)";
+       compatible = "lg,h815", "qcom,msm8992";
+       chassis-type = "handset";
+
+       qcom,msm-id = <0xfb 0x0>;
+       qcom,pmic-id = <0x10009 0x1000a 0x0 0x0>;
+       qcom,board-id = <0xb64 0x0>;
+
+       /* psci is broken */
+       /delete-node/ psci;
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               spin-table@6000000 {
+                       reg = <0x0 0x06000000 0x0 0x00001000>;
+                       no-map;
+               };
+
+               ramoops@ff00000 {
+                       compatible = "ramoops";
+                       reg = <0x0 0x0ff00000 0x0 0x00100000>;
+                       console-size = <0x20000>;
+                       pmsg-size = <0x20000>;
+                       record-size = <0x10000>;
+                       ecc-size = <0x10>;
+               };
+
+               cont_splash_mem: fb@3400000 {
+                       reg = <0x0 0x03400000 0x0 0x00c00000>;
+                       no-map;
+               };
+
+               crash_fb_mem: crash-fb@4000000 {
+                       reg = <0x0 0x04000000 0x0 0x00c00000>;
+                       no-map;
+               };
+       };
+
+       gpio-hall-sensor {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&hall_sensor_default>;
+               pinctrl-names = "default";
+
+               label = "Hall Effect Sensor";
+
+               event-hall-sensor {
+                       gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
+                       label = "hall effect sensor";
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               key-vol-up {
+                       label = "volume up";
+                       gpios = <&pm8994_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+       };
+};
+
+&CPU0 {
+       enable-method = "spin-table";
+};
+
+&CPU1 {
+       enable-method = "spin-table";
+};
+
+&CPU2 {
+       enable-method = "spin-table";
+};
+
+&CPU3 {
+       enable-method = "spin-table";
+};
+
+&CPU4 {
+       enable-method = "spin-table";
+};
+
+&CPU5 {
+       enable-method = "spin-table";
+};
+
+&pm8994_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators-0 {
+               compatible = "qcom,rpm-pm8994-regulators";
+
+               vdd_s3-supply = <&vph_pwr>;
+               vdd_s4-supply = <&vph_pwr>;
+               vdd_s5-supply = <&vph_pwr>;
+               vdd_s7-supply = <&vph_pwr>;
+               vdd_l1-supply = <&pmi8994_s1>;
+               vdd_l2_26_28-supply = <&pm8994_s3>;
+               vdd_l3_11-supply = <&pm8994_s3>;
+               vdd_l4_27_31-supply = <&pm8994_s3>;
+               vdd_l5_7-supply = <&pm8994_s5>;
+               vdd_l6_12_32-supply = <&pm8994_s5>;
+               vdd_l8_16_30-supply = <&vph_pwr>;
+               vdd_l9_10_18_22-supply = <&pmi8994_bby>;
+               vdd_l13_19_23_24-supply = <&pmi8994_bby>;
+               vdd_l14_15-supply = <&pm8994_s5>;
+               vdd_l17_29-supply = <&pmi8994_bby>;
+               vdd_l20_21-supply = <&pmi8994_bby>;
+               vdd_l25-supply = <&pm8994_s5>;
+               vdd_lvs1_2-supply = <&pm8994_s4>;
+
+               pm8994_s3: s3 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               /* sdhc1 vqmmc and bcm */
+               pm8994_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-system-load = <325000>;
+                       regulator-allow-set-load;
+               };
+
+               pm8994_s5: s5 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+               };
+
+               /* sdhc2 vqmmc */
+               pm8994_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <22000>;
+                       regulator-allow-set-load;
+               };
+
+               /* sdhc1 vmmc */
+               pm8994_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <570000>;
+                       regulator-allow-set-load;
+               };
+
+               /* sdhc2 vmmc */
+               pm8994_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <800000>;
+                       regulator-allow-set-load;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,rpm-pmi8994-regulators";
+
+               vdd_s1-supply = <&vph_pwr>;
+               vdd_bst_byp-supply = <&vph_pwr>;
+
+               pmi8994_s1: s1 {
+                       regulator-min-microvolt = <1025000>;
+                       regulator-max-microvolt = <1025000>;
+               };
+
+               /* S2 & S3 - VDD_GFX */
+
+               pmi8994_bby: boost-bypass {
+                       regulator-min-microvolt = <3150000>;
+                       regulator-max-microvolt = <3600000>;
+               };
+       };
+};
+
+&sdhc1 {
+       mmc-hs400-1_8v;
+       vmmc-supply = <&pm8994_l20>;
+       vqmmc-supply = <&pm8994_s4>;
+       non-removable;
+       status = "okay";
+};
+
+&sdhc2 {
+       vmmc-supply = <&pm8994_l21>;
+       vqmmc-supply = <&pm8994_l13>;
+       cd-gpios = <&pm8994_gpios 8 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&tlmm {
+       hall_sensor_default: hall-sensor-default-state {
+               pins = "gpio75";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+};
index 917fa246857d7e957fa86c905eac502519882e6f..fc2a7f13f690ee1c640c78b13bfe419321a61a3a 100644 (file)
                        qcom,remote-pid = <6>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-msm8994";
+                               compatible = "qcom,rpm-msm8994", "qcom,smd-rpm";
                                qcom,smd-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
index 0fd2b1b944a5e646bc2b14c90e538490bab2deff..e5966724f37c691ce871df9313e41c56ca84c419 100644 (file)
                        mboxes = <&apcs_glb 0>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-msm8996";
+                               compatible = "qcom,rpm-msm8996", "qcom,glink-smd-rpm";
                                qcom,glink-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
index 7f44807b1b974506f2ec7b223555da56529c9f60..9aa9c5cee355b2818e31b867cf335637600b3dd5 100644 (file)
                        mboxes = <&apcs_glb 0>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-msm8998";
+                               compatible = "qcom,rpm-msm8998", "qcom,glink-smd-rpm";
                                qcom,glink-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
                                      "gpll0";
                };
 
+               lpass_q6_smmu: iommu@5100000 {
+                       compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
+                       reg = <0x05100000 0x40000>;
+                       clocks = <&gcc HLOS1_VOTE_LPASS_ADSP_SMMU_CLK>;
+                       clock-names = "bus";
+
+                       #global-interrupts = <0>;
+                       #iommu-cells = <1>;
+                       interrupts =
+                               <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+
+                       power-domains = <&gcc LPASS_ADSP_GDSC>;
+                       status = "disabled";
+               };
+
                remoteproc_slpi: remoteproc@5800000 {
                        compatible = "qcom,msm8998-slpi-pas";
                        reg = <0x05800000 0x4040>;
index f03095779de0578990d28c4b16a70cd218bdbf4b..ed72c61018130d775074e12b5509137aab6ba07d 100644 (file)
@@ -18,7 +18,7 @@
                #address-cells = <1>;
                #size-cells = <0>;
 
-               pon@800 {
+               pm8950_pon: pon@800 {
                        compatible = "qcom,pm8916-pon";
                        reg = <0x0800>;
                        mode-bootloader = <0x2>;
                                bias-pull-up;
                                linux,code = <KEY_POWER>;
                        };
+
+                       pm8950_resin: resin {
+                               compatible = "qcom,pm8941-resin";
+                               interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
+                               debounce = <15625>;
+                               bias-pull-up;
+                               status = "disabled";
+                       };
                };
 
                pm8950_temp: temp-alarm@2400 {
index b4822cb17a377f2d63533d367ca14e6bdcb2634c..4aff437263a2930489216c81c53e0d7ef7d14b35 100644 (file)
@@ -84,9 +84,8 @@
                #address-cells = <1>;
                #size-cells = <0>;
 
-               pmi8950_pwm: pwm@b000 {
+               pmi8950_pwm: pwm {
                        compatible = "qcom,pmi8950-pwm";
-                       reg = <0xb000 0x100>;
                        #pwm-cells = <2>;
 
                        status = "disabled";
index 36d6a1fb553ac305067657ab106bed14c19914f8..9ee59e6d2cdb9d978d0962ca134b45bc3baa7ef4 100644 (file)
                        interrupts = <0x3 0xd8 0x1 IRQ_TYPE_EDGE_RISING>,
                                     <0x3 0xd8 0x2 IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "ovp", "short";
+                       label = "backlight";
+
                        qcom,cabc;
                        qcom,external-pfet;
+
                        status = "disabled";
                };
        };
index 8f3be4c75db389d78557f09b46bcfe0022e7e64e..79bc42ffb6a1ffa257b4c2efd744bb390362ded3 100644 (file)
                        mboxes = <&apcs_glb 0>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-qcm2290";
+                               compatible = "qcom,rpm-qcm2290", "qcom,glink-smd-rpm";
                                qcom,glink-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
index a0668f767e4bf9c8a749adf180dc65f785eb389e..84c45419cb8d13e32744350132f381a400d1ee7c 100644 (file)
        status = "okay";
 };
 
+&sdc2_clk {
+       bias-disable;
+       drive-strength = <16>;
+};
+
+&sdc2_cmd {
+       bias-pull-up;
+       drive-strength = <10>;
+};
+
+&sdc2_data {
+       bias-pull-up;
+       drive-strength = <10>;
+};
+
 &sdhc_1 {
        non-removable;
        no-sd;
        status = "okay";
 };
 
+&sdhc_2 {
+       status = "okay";
+
+       pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>, <&sd_cd>;
+       pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>, <&sd_cd>;
+
+       vmmc-supply = <&vreg_l9c_2p96>;
+       vqmmc-supply = <&vreg_l6c_2p96>;
+
+       cd-gpios = <&tlmm 91 GPIO_ACTIVE_LOW>;
+};
+
 &tlmm {
        gpio-reserved-ranges = <32 2>, /* ADSP */
                               <48 4>; /* NFC */
+
+       sd_cd: sd-cd-state {
+               pins = "gpio91";
+               function = "gpio";
+               bias-pull-up;
+       };
 };
 
 &uart5 {
index c291bbed6073ea0764522a7dc36f80b1b5762edf..cddc16bac0cea4a95e65d1849fe84f34c6ddbfce 100644 (file)
                        mboxes = <&apcs_glb 0>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-qcs404";
+                               compatible = "qcom,rpm-qcs404", "qcom,glink-smd-rpm";
                                qcom,glink-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
index 9e70effc72e105dc65fb468d9f3f93ea3e66b25e..d678ed822378b54418e4c93787f5678cf4e2a798 100644 (file)
@@ -9,6 +9,10 @@
 
 #include "sm8150.dtsi"
 
+&camcc {
+       power-domains = <&rpmhpd SA8155P_CX>;
+};
+
 &dispcc {
        power-domains = <&rpmhpd SA8155P_CX>;
 };
index 78e933c42c3144324da581687fd712f39fb796ec..2fd1dafe63ce7a4f409d19946b9f10ffe324fba3 100644 (file)
@@ -9,6 +9,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include <dt-bindings/spmi/spmi.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
 #include "sa8540p.dtsi"
 #include "sa8540p-pmics.dtsi"
                };
        };
 
+       regulator-usb2-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "USB2_VBUS";
+               gpio = <&pmm8540c_gpios 9 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb2_en>;
+               pinctrl-names = "default";
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       regulator-usb3-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "USB3_VBUS";
+               gpio = <&pmm8540e_gpios 5 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb3_en>;
+               pinctrl-names = "default";
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       regulator-usb4-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "USB4_VBUS";
+               gpio = <&pmm8540g_gpios 5 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb4_en>;
+               pinctrl-names = "default";
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       regulator-usb5-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "USB5_VBUS";
+               gpio = <&pmm8540g_gpios 9 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb5_en>;
+               pinctrl-names = "default";
+               enable-active-high;
+               regulator-always-on;
+       };
+
        reserved-memory {
                gpu_mem: gpu-mem@8bf00000 {
                        reg = <0 0x8bf00000 0 0x2000>;
        status = "okay";
 };
 
+&usb_2 {
+       status = "okay";
+};
+
 &usb_2_hsphy0 {
        vdda-pll-supply = <&vreg_l5a>;
        vdda18-supply = <&vreg_l7g>;
        };
 };
 
+&pmm8540c_gpios {
+       usb2_en: usb2-en-state {
+               pins = "gpio9";
+               function = "normal";
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+               output-enable;
+               power-source = <0>;
+       };
+};
+
+&pmm8540e_gpios {
+       usb3_en: usb3-en-state {
+               pins = "gpio5";
+               function = "normal";
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+               output-enable;
+               power-source = <0>;
+       };
+};
+
+&pmm8540g_gpios {
+       usb4_en: usb4-en-state {
+               pins = "gpio5";
+               function = "normal";
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+               output-enable;
+               power-source = <0>;
+       };
+
+       usb5_en: usb5-en-state {
+               pins = "gpio9";
+               function = "normal";
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+               output-enable;
+               power-source = <0>;
+       };
+};
+
 &tlmm {
        pcie2a_default: pcie2a-default-state {
                clkreq-n-pins {
index 2a6170623ea95ad34625b7eb3b729a3e1018f99a..0c1b21def4b62cc65a693552983ec0bc7eec697d 100644 (file)
        status = "okay";
 };
 
+&remoteproc_adsp {
+       firmware-name = "qcom/sa8775p/adsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_cdsp0 {
+       firmware-name = "qcom/sa8775p/cdsp0.mbn";
+       status = "okay";
+};
+
+&remoteproc_cdsp1 {
+       firmware-name = "qcom/sa8775p/cdsp1.mbn";
+       status = "okay";
+};
+
+&remoteproc_gpdsp0 {
+       firmware-name = "qcom/sa8775p/gpdsp0.mbn";
+       status = "okay";
+};
+
+&remoteproc_gpdsp1 {
+       firmware-name = "qcom/sa8775p/gpdsp1.mbn";
+       status = "okay";
+};
+
 &uart10 {
        compatible = "qcom,geni-debug-uart";
        pinctrl-0 = <&qup_uart10_default>;
index 23f1b2e5e62471396d8dd5eaf5ecb23e01a5e458..e8dbc8d820a64f45c62edebca7ce4583a5c716e0 100644 (file)
@@ -10,6 +10,8 @@
 #include <dt-bindings/clock/qcom,sa8775p-gpucc.h>
 #include <dt-bindings/interconnect/qcom,sa8775p-rpmh.h>
 #include <dt-bindings/mailbox/qcom-ipcc.h>
+#include <dt-bindings/firmware/qcom,scm.h>
+#include <dt-bindings/power/qcom,rpmhpd.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
 
@@ -42,6 +44,8 @@
                        enable-method = "psci";
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        next-level-cache = <&L2_0>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        L2_0: l2-cache {
                                compatible = "cache";
                                cache-level = <2>;
@@ -62,6 +66,8 @@
                        enable-method = "psci";
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        next-level-cache = <&L2_1>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        L2_1: l2-cache {
                                compatible = "cache";
                                cache-level = <2>;
@@ -77,6 +83,8 @@
                        enable-method = "psci";
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        next-level-cache = <&L2_2>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        L2_2: l2-cache {
                                compatible = "cache";
                                cache-level = <2>;
                        enable-method = "psci";
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        next-level-cache = <&L2_3>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        L2_3: l2-cache {
                                compatible = "cache";
                                cache-level = <2>;
                        enable-method = "psci";
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        next-level-cache = <&L2_4>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        L2_4: l2-cache {
                                compatible = "cache";
                                cache-level = <2>;
                        enable-method = "psci";
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        next-level-cache = <&L2_5>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        L2_5: l2-cache {
                                compatible = "cache";
                                cache-level = <2>;
                        enable-method = "psci";
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        next-level-cache = <&L2_6>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        L2_6: l2-cache {
                                compatible = "cache";
                                cache-level = <2>;
                        enable-method = "psci";
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        next-level-cache = <&L2_7>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
                        L2_7: l2-cache {
                                compatible = "cache";
                                cache-level = <2>;
                                };
                        };
                };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       GOLD_CPU_SLEEP_0: cpu-sleep-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "gold-power-collapse";
+                               arm,psci-suspend-param = <0x40000003>;
+                               entry-latency-us = <549>;
+                               exit-latency-us = <901>;
+                               min-residency-us = <1774>;
+                               local-timer-stop;
+                       };
+
+                       GOLD_RAIL_CPU_SLEEP_0: cpu-sleep-1 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "gold-rail-power-collapse";
+                               arm,psci-suspend-param = <0x40000004>;
+                               entry-latency-us = <702>;
+                               exit-latency-us = <1061>;
+                               min-residency-us = <4488>;
+                               local-timer-stop;
+                       };
+               };
+
+               domain-idle-states {
+                       CLUSTER_SLEEP_GOLD: cluster-sleep-0 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x41000044>;
+                               entry-latency-us = <2752>;
+                               exit-latency-us = <3048>;
+                               min-residency-us = <6118>;
+                       };
+
+                       CLUSTER_SLEEP_APSS_RSC_PC: cluster-sleep-1 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x42000144>;
+                               entry-latency-us = <3263>;
+                               exit-latency-us = <6562>;
+                               min-residency-us = <9987>;
+                       };
+               };
        };
 
        dummy-sink {
        psci {
                compatible = "arm,psci-1.0";
                method = "smc";
+
+               CPU_PD0: power-domain-cpu0 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_0_PD>;
+                       domain-idle-states = <&GOLD_CPU_SLEEP_0>,
+                                            <&GOLD_RAIL_CPU_SLEEP_0>;
+               };
+
+               CPU_PD1: power-domain-cpu1 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_0_PD>;
+                       domain-idle-states = <&GOLD_CPU_SLEEP_0>,
+                                            <&GOLD_RAIL_CPU_SLEEP_0>;
+               };
+
+               CPU_PD2: power-domain-cpu2 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_0_PD>;
+                       domain-idle-states = <&GOLD_CPU_SLEEP_0>,
+                                            <&GOLD_RAIL_CPU_SLEEP_0>;
+               };
+
+               CPU_PD3: power-domain-cpu3 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_0_PD>;
+                       domain-idle-states = <&GOLD_CPU_SLEEP_0>,
+                                            <&GOLD_RAIL_CPU_SLEEP_0>;
+               };
+
+               CPU_PD4: power-domain-cpu4 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_1_PD>;
+                       domain-idle-states = <&GOLD_CPU_SLEEP_0>,
+                                            <&GOLD_RAIL_CPU_SLEEP_0>;
+               };
+
+               CPU_PD5: power-domain-cpu5 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_1_PD>;
+                       domain-idle-states = <&GOLD_CPU_SLEEP_0>,
+                                            <&GOLD_RAIL_CPU_SLEEP_0>;
+               };
+
+               CPU_PD6: power-domain-cpu6 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_1_PD>;
+                       domain-idle-states = <&GOLD_CPU_SLEEP_0>,
+                                            <&GOLD_RAIL_CPU_SLEEP_0>;
+               };
+
+               CPU_PD7: power-domain-cpu7 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_1_PD>;
+                       domain-idle-states = <&GOLD_CPU_SLEEP_0>,
+                                            <&GOLD_RAIL_CPU_SLEEP_0>;
+               };
+
+               CLUSTER_0_PD: power-domain-cluster0 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_2_PD>;
+                       domain-idle-states = <&CLUSTER_SLEEP_GOLD>;
+               };
+
+               CLUSTER_1_PD: power-domain-cluster1 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_2_PD>;
+                       domain-idle-states = <&CLUSTER_SLEEP_GOLD>;
+               };
+
+               CLUSTER_2_PD: power-domain-cluster2 {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&CLUSTER_SLEEP_APSS_RSC_PC>;
+               };
        };
 
        reserved-memory {
                };
        };
 
+       smp2p-adsp {
+               compatible = "qcom,smp2p";
+               qcom,smem = <443>, <429>;
+               interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_LPASS IPCC_MPROC_SIGNAL_SMP2P>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <2>;
+
+               smp2p_adsp_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_adsp_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smp2p-cdsp0 {
+               compatible = "qcom,smp2p";
+               qcom,smem = <94>, <432>;
+               interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_CDSP IPCC_MPROC_SIGNAL_SMP2P>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <5>;
+
+               smp2p_cdsp0_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_cdsp0_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smp2p-cdsp1 {
+               compatible = "qcom,smp2p";
+               qcom,smem = <617>, <616>;
+               interrupts-extended = <&ipcc IPCC_CLIENT_NSP1
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_NSP1 IPCC_MPROC_SIGNAL_SMP2P>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <12>;
+
+               smp2p_cdsp1_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_cdsp1_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smp2p-gpdsp0 {
+               compatible = "qcom,smp2p";
+               qcom,smem = <617>, <616>;
+               interrupts-extended = <&ipcc IPCC_CLIENT_GPDSP0
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_GPDSP0 IPCC_MPROC_SIGNAL_SMP2P>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <17>;
+
+               smp2p_gpdsp0_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_gpdsp0_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smp2p-gpdsp1 {
+               compatible = "qcom,smp2p";
+               qcom,smem = <617>, <616>;
+               interrupts-extended = <&ipcc IPCC_CLIENT_GPDSP1
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_GPDSP1 IPCC_MPROC_SIGNAL_SMP2P>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <18>;
+
+               smp2p_gpdsp1_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_gpdsp1_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
        soc: soc@0 {
                compatible = "simple-bus";
                #address-cells = <2>;
                        status = "disabled";
                };
 
+               pmu@9091000 {
+                       compatible = "qcom,sa8775p-llcc-bwmon", "qcom,sc7280-llcc-bwmon";
+                       reg = <0x0 0x9091000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 620 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 = <762000>;
+                               };
+
+                               opp-1 {
+                                       opp-peak-kBps = <1720000>;
+                               };
+
+                               opp-2 {
+                                       opp-peak-kBps = <2086000>;
+                               };
+
+                               opp-3 {
+                                       opp-peak-kBps = <2601000>;
+                               };
+
+                               opp-4 {
+                                       opp-peak-kBps = <2929000>;
+                               };
+
+                               opp-5 {
+                                       opp-peak-kBps = <5931000>;
+                               };
+
+                               opp-6 {
+                                       opp-peak-kBps = <6515000>;
+                               };
+
+                               opp-7 {
+                                       opp-peak-kBps = <7984000>;
+                               };
+
+                               opp-8 {
+                                       opp-peak-kBps = <10437000>;
+                               };
+
+                               opp-9 {
+                                       opp-peak-kBps = <12195000>;
+                               };
+                       };
+               };
+
+               pmu@90b5400 {
+                       compatible = "qcom,sa8775p-cpu-bwmon", "qcom,sdm845-bwmon";
+                       reg = <0x0 0x90b5400 0x0 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 = <9155000>;
+                               };
+
+                               opp-1 {
+                                       opp-peak-kBps = <12298000>;
+                               };
+
+                               opp-2 {
+                                       opp-peak-kBps = <14236000>;
+                               };
+
+                               opp-3 {
+                                       opp-peak-kBps = <16265000>;
+                               };
+                       };
+
+               };
+
+               pmu@90b6400 {
+                       compatible = "qcom,sa8775p-cpu-bwmon", "qcom,sdm845-bwmon";
+                       reg = <0x0 0x90b6400 0x0 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>;
+               };
+
                llcc: system-cache-controller@9200000 {
                        compatible = "qcom,sa8775p-llcc";
                        reg = <0x0 0x09200000 0x0 0x80000>,
                        reg = <0x0 0x15000000 0x0 0x100000>;
                        #iommu-cells = <2>;
                        #global-interrupts = <2>;
+                       dma-coherent;
 
                        interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
                        reg = <0x0 0x15200000 0x0 0x80000>;
                        #iommu-cells = <2>;
                        #global-interrupts = <2>;
+                       dma-coherent;
 
                        interrupts = <GIC_SPI 920 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 921 IRQ_TYPE_LEVEL_HIGH>,
                        #freq-domain-cells = <1>;
                };
 
+               remoteproc_gpdsp0: remoteproc@20c00000 {
+                       compatible = "qcom,sa8775p-gpdsp0-pas";
+                       reg = <0x0 0x20c00000 0x0 0x10000>;
+
+                       interrupts-extended = <&intc GIC_SPI 768 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_gpdsp0_in 0 0>,
+                                             <&smp2p_gpdsp0_in 2 0>,
+                                             <&smp2p_gpdsp0_in 1 0>,
+                                             <&smp2p_gpdsp0_in 3 0>;
+                       interrupt-names = "wdog", "fatal", "ready",
+                                         "handover", "stop-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd RPMHPD_CX>,
+                                       <&rpmhpd RPMHPD_MXC>;
+                       power-domain-names = "cx", "mxc";
+
+                       interconnects = <&gpdsp_anoc MASTER_DSP0 0
+                                        &config_noc SLAVE_CLK_CTL 0>;
+
+                       memory-region = <&pil_gdsp0_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_gpdsp0_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_GPDSP0
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_GPDSP0
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "gpdsp0";
+                               qcom,remote-pid = <17>;
+                       };
+               };
+
+               remoteproc_gpdsp1: remoteproc@21c00000 {
+                       compatible = "qcom,sa8775p-gpdsp1-pas";
+                       reg = <0x0 0x21c00000 0x0 0x10000>;
+
+                       interrupts-extended = <&intc GIC_SPI 624 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_gpdsp1_in 0 0>,
+                                             <&smp2p_gpdsp1_in 2 0>,
+                                             <&smp2p_gpdsp1_in 1 0>,
+                                             <&smp2p_gpdsp1_in 3 0>;
+                       interrupt-names = "wdog", "fatal", "ready",
+                                         "handover", "stop-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd RPMHPD_CX>,
+                                       <&rpmhpd RPMHPD_MXC>;
+                       power-domain-names = "cx", "mxc";
+
+                       interconnects = <&gpdsp_anoc MASTER_DSP1 0
+                                        &config_noc SLAVE_CLK_CTL 0>;
+
+                       memory-region = <&pil_gdsp1_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_gpdsp1_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_GPDSP1
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_GPDSP1
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "gpdsp1";
+                               qcom,remote-pid = <18>;
+                       };
+               };
+
                ethernet1: ethernet@23000000 {
                        compatible = "qcom,sa8775p-ethqos";
                        reg = <0x0 0x23000000 0x0 0x10000>,
                                      "ptp_ref",
                                      "phyaux";
 
+                       interconnects = <&aggre1_noc MASTER_EMAC_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_EMAC1_CFG QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "mac-mem", "cpu-mac";
+
                        power-domains = <&gcc EMAC1_GDSC>;
 
                        phys = <&serdes1>;
                                      "ptp_ref",
                                      "phyaux";
 
+                       interconnects = <&aggre1_noc MASTER_EMAC QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &config_noc SLAVE_EMAC_CFG QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "mac-mem", "cpu-mac";
+
                        power-domains = <&gcc EMAC0_GDSC>;
 
                        phys = <&serdes0>;
 
                        status = "disabled";
                };
+
+               remoteproc_cdsp0: remoteproc@26300000 {
+                       compatible = "qcom,sa8775p-cdsp0-pas";
+                       reg = <0x0 0x26300000 0x0 0x10000>;
+
+                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp0_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp0_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp0_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp0_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_CX>,
+                                       <&rpmhpd RPMHPD_MXC>,
+                                       <&rpmhpd RPMHPD_NSP0>;
+                       power-domain-names = "cx", "mxc", "nsp";
+
+                       interconnects = <&nspa_noc MASTER_CDSP_PROC 0
+                                        &mc_virt SLAVE_EBI1 0>;
+
+                       memory-region = <&pil_cdsp0_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_cdsp0_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_CDSP
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "cdsp";
+                               qcom,remote-pid = <5>;
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "cdsp";
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@1 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <1>;
+                                               iommus = <&apps_smmu 0x2141 0x04a0>,
+                                                        <&apps_smmu 0x2161 0x04a0>,
+                                                        <&apps_smmu 0x2181 0x0400>,
+                                                        <&apps_smmu 0x21c1 0x04a0>,
+                                                        <&apps_smmu 0x21e1 0x04a0>,
+                                                        <&apps_smmu 0x2541 0x04a0>,
+                                                        <&apps_smmu 0x2561 0x04a0>,
+                                                        <&apps_smmu 0x2581 0x0400>,
+                                                        <&apps_smmu 0x25c1 0x04a0>,
+                                                        <&apps_smmu 0x25e1 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@2 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <2>;
+                                               iommus = <&apps_smmu 0x2142 0x04a0>,
+                                                        <&apps_smmu 0x2162 0x04a0>,
+                                                        <&apps_smmu 0x2182 0x0400>,
+                                                        <&apps_smmu 0x21c2 0x04a0>,
+                                                        <&apps_smmu 0x21e2 0x04a0>,
+                                                        <&apps_smmu 0x2542 0x04a0>,
+                                                        <&apps_smmu 0x2562 0x04a0>,
+                                                        <&apps_smmu 0x2582 0x0400>,
+                                                        <&apps_smmu 0x25c2 0x04a0>,
+                                                        <&apps_smmu 0x25e2 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x2143 0x04a0>,
+                                                        <&apps_smmu 0x2163 0x04a0>,
+                                                        <&apps_smmu 0x2183 0x0400>,
+                                                        <&apps_smmu 0x21c3 0x04a0>,
+                                                        <&apps_smmu 0x21e3 0x04a0>,
+                                                        <&apps_smmu 0x2543 0x04a0>,
+                                                        <&apps_smmu 0x2563 0x04a0>,
+                                                        <&apps_smmu 0x2583 0x0400>,
+                                                        <&apps_smmu 0x25c3 0x04a0>,
+                                                        <&apps_smmu 0x25e3 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x2144 0x04a0>,
+                                                        <&apps_smmu 0x2164 0x04a0>,
+                                                        <&apps_smmu 0x2184 0x0400>,
+                                                        <&apps_smmu 0x21c4 0x04a0>,
+                                                        <&apps_smmu 0x21e4 0x04a0>,
+                                                        <&apps_smmu 0x2544 0x04a0>,
+                                                        <&apps_smmu 0x2564 0x04a0>,
+                                                        <&apps_smmu 0x2584 0x0400>,
+                                                        <&apps_smmu 0x25c4 0x04a0>,
+                                                        <&apps_smmu 0x25e4 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x2145 0x04a0>,
+                                                        <&apps_smmu 0x2165 0x04a0>,
+                                                        <&apps_smmu 0x2185 0x0400>,
+                                                        <&apps_smmu 0x21c5 0x04a0>,
+                                                        <&apps_smmu 0x21e5 0x04a0>,
+                                                        <&apps_smmu 0x2545 0x04a0>,
+                                                        <&apps_smmu 0x2565 0x04a0>,
+                                                        <&apps_smmu 0x2585 0x0400>,
+                                                        <&apps_smmu 0x25c5 0x04a0>,
+                                                        <&apps_smmu 0x25e5 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+                                               iommus = <&apps_smmu 0x2146 0x04a0>,
+                                                        <&apps_smmu 0x2166 0x04a0>,
+                                                        <&apps_smmu 0x2186 0x0400>,
+                                                        <&apps_smmu 0x21c6 0x04a0>,
+                                                        <&apps_smmu 0x21e6 0x04a0>,
+                                                        <&apps_smmu 0x2546 0x04a0>,
+                                                        <&apps_smmu 0x2566 0x04a0>,
+                                                        <&apps_smmu 0x2586 0x0400>,
+                                                        <&apps_smmu 0x25c6 0x04a0>,
+                                                        <&apps_smmu 0x25e6 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+                                               iommus = <&apps_smmu 0x2147 0x04a0>,
+                                                        <&apps_smmu 0x2167 0x04a0>,
+                                                        <&apps_smmu 0x2187 0x0400>,
+                                                        <&apps_smmu 0x21c7 0x04a0>,
+                                                        <&apps_smmu 0x21e7 0x04a0>,
+                                                        <&apps_smmu 0x2547 0x04a0>,
+                                                        <&apps_smmu 0x2567 0x04a0>,
+                                                        <&apps_smmu 0x2587 0x0400>,
+                                                        <&apps_smmu 0x25c7 0x04a0>,
+                                                        <&apps_smmu 0x25e7 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@8 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <8>;
+                                               iommus = <&apps_smmu 0x2148 0x04a0>,
+                                                        <&apps_smmu 0x2168 0x04a0>,
+                                                        <&apps_smmu 0x2188 0x0400>,
+                                                        <&apps_smmu 0x21c8 0x04a0>,
+                                                        <&apps_smmu 0x21e8 0x04a0>,
+                                                        <&apps_smmu 0x2548 0x04a0>,
+                                                        <&apps_smmu 0x2568 0x04a0>,
+                                                        <&apps_smmu 0x2588 0x0400>,
+                                                        <&apps_smmu 0x25c8 0x04a0>,
+                                                        <&apps_smmu 0x25e8 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@9 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <9>;
+                                               iommus = <&apps_smmu 0x2149 0x04a0>,
+                                                        <&apps_smmu 0x2169 0x04a0>,
+                                                        <&apps_smmu 0x2189 0x0400>,
+                                                        <&apps_smmu 0x21c9 0x04a0>,
+                                                        <&apps_smmu 0x21e9 0x04a0>,
+                                                        <&apps_smmu 0x2549 0x04a0>,
+                                                        <&apps_smmu 0x2569 0x04a0>,
+                                                        <&apps_smmu 0x2589 0x0400>,
+                                                        <&apps_smmu 0x25c9 0x04a0>,
+                                                        <&apps_smmu 0x25e9 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@10 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <10>;
+                                               iommus = <&apps_smmu 0x214a 0x04a0>,
+                                                        <&apps_smmu 0x216a 0x04a0>,
+                                                        <&apps_smmu 0x218a 0x0400>,
+                                                        <&apps_smmu 0x21ca 0x04a0>,
+                                                        <&apps_smmu 0x21ea 0x04a0>,
+                                                        <&apps_smmu 0x254a 0x04a0>,
+                                                        <&apps_smmu 0x256a 0x04a0>,
+                                                        <&apps_smmu 0x258a 0x0400>,
+                                                        <&apps_smmu 0x25ca 0x04a0>,
+                                                        <&apps_smmu 0x25ea 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@11 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <11>;
+                                               iommus = <&apps_smmu 0x214b 0x04a0>,
+                                                        <&apps_smmu 0x216b 0x04a0>,
+                                                        <&apps_smmu 0x218b 0x0400>,
+                                                        <&apps_smmu 0x21cb 0x04a0>,
+                                                        <&apps_smmu 0x21eb 0x04a0>,
+                                                        <&apps_smmu 0x254b 0x04a0>,
+                                                        <&apps_smmu 0x256b 0x04a0>,
+                                                        <&apps_smmu 0x258b 0x0400>,
+                                                        <&apps_smmu 0x25cb 0x04a0>,
+                                                        <&apps_smmu 0x25eb 0x04a0>;
+                                               dma-coherent;
+                                       };
+                               };
+                       };
+               };
+
+               remoteproc_cdsp1: remoteproc@2a300000 {
+                       compatible = "qcom,sa8775p-cdsp1-pas";
+                       reg = <0x0 0x2A300000 0x0 0x10000>;
+
+                       interrupts-extended = <&intc GIC_SPI 798 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp1_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp1_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp1_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp1_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_CX>,
+                                       <&rpmhpd RPMHPD_MXC>,
+                                       <&rpmhpd RPMHPD_NSP1>;
+                       power-domain-names = "cx", "mxc", "nsp";
+
+                       interconnects = <&nspb_noc MASTER_CDSP_PROC_B 0
+                                        &mc_virt SLAVE_EBI1 0>;
+
+                       memory-region = <&pil_cdsp1_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_cdsp1_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_NSP1
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_NSP1
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "cdsp";
+                               qcom,remote-pid = <12>;
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "cdsp1";
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@1 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <1>;
+                                               iommus = <&apps_smmu 0x2941 0x04a0>,
+                                                        <&apps_smmu 0x2961 0x04a0>,
+                                                        <&apps_smmu 0x2981 0x0400>,
+                                                        <&apps_smmu 0x29c1 0x04a0>,
+                                                        <&apps_smmu 0x29e1 0x04a0>,
+                                                        <&apps_smmu 0x2d41 0x04a0>,
+                                                        <&apps_smmu 0x2d61 0x04a0>,
+                                                        <&apps_smmu 0x2d81 0x0400>,
+                                                        <&apps_smmu 0x2dc1 0x04a0>,
+                                                        <&apps_smmu 0x2de1 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@2 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <2>;
+                                               iommus = <&apps_smmu 0x2942 0x04a0>,
+                                                        <&apps_smmu 0x2962 0x04a0>,
+                                                        <&apps_smmu 0x2982 0x0400>,
+                                                        <&apps_smmu 0x29c2 0x04a0>,
+                                                        <&apps_smmu 0x29e2 0x04a0>,
+                                                        <&apps_smmu 0x2d42 0x04a0>,
+                                                        <&apps_smmu 0x2d62 0x04a0>,
+                                                        <&apps_smmu 0x2d82 0x0400>,
+                                                        <&apps_smmu 0x2dc2 0x04a0>,
+                                                        <&apps_smmu 0x2de2 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x2943 0x04a0>,
+                                                        <&apps_smmu 0x2963 0x04a0>,
+                                                        <&apps_smmu 0x2983 0x0400>,
+                                                        <&apps_smmu 0x29c3 0x04a0>,
+                                                        <&apps_smmu 0x29e3 0x04a0>,
+                                                        <&apps_smmu 0x2d43 0x04a0>,
+                                                        <&apps_smmu 0x2d63 0x04a0>,
+                                                        <&apps_smmu 0x2d83 0x0400>,
+                                                        <&apps_smmu 0x2dc3 0x04a0>,
+                                                        <&apps_smmu 0x2de3 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x2944 0x04a0>,
+                                                        <&apps_smmu 0x2964 0x04a0>,
+                                                        <&apps_smmu 0x2984 0x0400>,
+                                                        <&apps_smmu 0x29c4 0x04a0>,
+                                                        <&apps_smmu 0x29e4 0x04a0>,
+                                                        <&apps_smmu 0x2d44 0x04a0>,
+                                                        <&apps_smmu 0x2d64 0x04a0>,
+                                                        <&apps_smmu 0x2d84 0x0400>,
+                                                        <&apps_smmu 0x2dc4 0x04a0>,
+                                                        <&apps_smmu 0x2de4 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x2945 0x04a0>,
+                                                        <&apps_smmu 0x2965 0x04a0>,
+                                                        <&apps_smmu 0x2985 0x0400>,
+                                                        <&apps_smmu 0x29c5 0x04a0>,
+                                                        <&apps_smmu 0x29e5 0x04a0>,
+                                                        <&apps_smmu 0x2d45 0x04a0>,
+                                                        <&apps_smmu 0x2d65 0x04a0>,
+                                                        <&apps_smmu 0x2d85 0x0400>,
+                                                        <&apps_smmu 0x2dc5 0x04a0>,
+                                                        <&apps_smmu 0x2de5 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+                                               iommus = <&apps_smmu 0x2946 0x04a0>,
+                                                        <&apps_smmu 0x2966 0x04a0>,
+                                                        <&apps_smmu 0x2986 0x0400>,
+                                                        <&apps_smmu 0x29c6 0x04a0>,
+                                                        <&apps_smmu 0x29e6 0x04a0>,
+                                                        <&apps_smmu 0x2d46 0x04a0>,
+                                                        <&apps_smmu 0x2d66 0x04a0>,
+                                                        <&apps_smmu 0x2d86 0x0400>,
+                                                        <&apps_smmu 0x2dc6 0x04a0>,
+                                                        <&apps_smmu 0x2de6 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+                                               iommus = <&apps_smmu 0x2947 0x04a0>,
+                                                        <&apps_smmu 0x2967 0x04a0>,
+                                                        <&apps_smmu 0x2987 0x0400>,
+                                                        <&apps_smmu 0x29c7 0x04a0>,
+                                                        <&apps_smmu 0x29e7 0x04a0>,
+                                                        <&apps_smmu 0x2d47 0x04a0>,
+                                                        <&apps_smmu 0x2d67 0x04a0>,
+                                                        <&apps_smmu 0x2d87 0x0400>,
+                                                        <&apps_smmu 0x2dc7 0x04a0>,
+                                                        <&apps_smmu 0x2de7 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@8 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <8>;
+                                               iommus = <&apps_smmu 0x2948 0x04a0>,
+                                                        <&apps_smmu 0x2968 0x04a0>,
+                                                        <&apps_smmu 0x2988 0x0400>,
+                                                        <&apps_smmu 0x29c8 0x04a0>,
+                                                        <&apps_smmu 0x29e8 0x04a0>,
+                                                        <&apps_smmu 0x2d48 0x04a0>,
+                                                        <&apps_smmu 0x2d68 0x04a0>,
+                                                        <&apps_smmu 0x2d88 0x0400>,
+                                                        <&apps_smmu 0x2dc8 0x04a0>,
+                                                        <&apps_smmu 0x2de8 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@9 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <9>;
+                                               iommus = <&apps_smmu 0x2949 0x04a0>,
+                                                        <&apps_smmu 0x2969 0x04a0>,
+                                                        <&apps_smmu 0x2989 0x0400>,
+                                                        <&apps_smmu 0x29c9 0x04a0>,
+                                                        <&apps_smmu 0x29e9 0x04a0>,
+                                                        <&apps_smmu 0x2d49 0x04a0>,
+                                                        <&apps_smmu 0x2d69 0x04a0>,
+                                                        <&apps_smmu 0x2d89 0x0400>,
+                                                        <&apps_smmu 0x2dc9 0x04a0>,
+                                                        <&apps_smmu 0x2de9 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@10 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <10>;
+                                               iommus = <&apps_smmu 0x294a 0x04a0>,
+                                                        <&apps_smmu 0x296a 0x04a0>,
+                                                        <&apps_smmu 0x298a 0x0400>,
+                                                        <&apps_smmu 0x29ca 0x04a0>,
+                                                        <&apps_smmu 0x29ea 0x04a0>,
+                                                        <&apps_smmu 0x2d4a 0x04a0>,
+                                                        <&apps_smmu 0x2d6a 0x04a0>,
+                                                        <&apps_smmu 0x2d8a 0x0400>,
+                                                        <&apps_smmu 0x2dca 0x04a0>,
+                                                        <&apps_smmu 0x2dea 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@11 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <11>;
+                                               iommus = <&apps_smmu 0x294b 0x04a0>,
+                                                        <&apps_smmu 0x296b 0x04a0>,
+                                                        <&apps_smmu 0x298b 0x0400>,
+                                                        <&apps_smmu 0x29cb 0x04a0>,
+                                                        <&apps_smmu 0x29eb 0x04a0>,
+                                                        <&apps_smmu 0x2d4b 0x04a0>,
+                                                        <&apps_smmu 0x2d6b 0x04a0>,
+                                                        <&apps_smmu 0x2d8b 0x0400>,
+                                                        <&apps_smmu 0x2dcb 0x04a0>,
+                                                        <&apps_smmu 0x2deb 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@12 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <12>;
+                                               iommus = <&apps_smmu 0x294c 0x04a0>,
+                                                        <&apps_smmu 0x296c 0x04a0>,
+                                                        <&apps_smmu 0x298c 0x0400>,
+                                                        <&apps_smmu 0x29cc 0x04a0>,
+                                                        <&apps_smmu 0x29ec 0x04a0>,
+                                                        <&apps_smmu 0x2d4c 0x04a0>,
+                                                        <&apps_smmu 0x2d6c 0x04a0>,
+                                                        <&apps_smmu 0x2d8c 0x0400>,
+                                                        <&apps_smmu 0x2dcc 0x04a0>,
+                                                        <&apps_smmu 0x2dec 0x04a0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@13 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <13>;
+                                               iommus = <&apps_smmu 0x294d 0x04a0>,
+                                                        <&apps_smmu 0x296d 0x04a0>,
+                                                        <&apps_smmu 0x298d 0x0400>,
+                                                        <&apps_smmu 0x29Cd 0x04a0>,
+                                                        <&apps_smmu 0x29ed 0x04a0>,
+                                                        <&apps_smmu 0x2d4d 0x04a0>,
+                                                        <&apps_smmu 0x2d6d 0x04a0>,
+                                                        <&apps_smmu 0x2d8d 0x0400>,
+                                                        <&apps_smmu 0x2dcd 0x04a0>,
+                                                        <&apps_smmu 0x2ded 0x04a0>;
+                                               dma-coherent;
+                                       };
+                               };
+                       };
+               };
+
+               remoteproc_adsp: remoteproc@30000000 {
+                       compatible = "qcom,sa8775p-adsp-pas";
+                       reg = <0x0 0x30000000 0x0 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";
+
+                       status = "disabled";
+
+                       remoteproc_adsp_glink: glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_LPASS
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "lpass";
+                               qcom,remote-pid = <2>;
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "adsp";
+                                       memory-region = <&adsp_rpc_remote_heap_mem>;
+                                       qcom,vmids = <QCOM_SCM_VMID_LPASS
+                                                         QCOM_SCM_VMID_ADSP_HEAP>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x3003 0x0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x3004 0x0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x3005 0x0>;
+                                               qcom,nsessions = <5>;
+                                               dma-coherent;
+                                       };
+                               };
+                       };
+               };
        };
 
        thermal-zones {
index 5b226577f9d8afccaf7f77fc40ec3dea8d96510d..62de4774c556d3954a797287ba2ecb36d979dc9f 100644 (file)
        status = "okay";
 };
 
+&pmc8180_pwrkey {
+       status = "okay";
+};
+
 &pmc8180c_lpg {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_mp {
+       status = "okay";
+};
+
+&usb_mp_hsphy0 {
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+       vdda18-supply = <&vreg_l12a_1p8>;
+       vdda33-supply = <&vreg_l16e_3p0>;
+
+       status = "okay";
+};
+
+&usb_mp_hsphy1 {
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+       vdda18-supply = <&vreg_l12a_1p8>;
+       vdda33-supply = <&vreg_l16e_3p0>;
+
+       status = "okay";
+};
+
+&usb_mp_qmpphy0 {
+       vdda-phy-supply = <&vreg_l3c_1p2>;
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+
+       status = "okay";
+};
+
+&usb_mp_qmpphy1 {
+       vdda-phy-supply = <&vreg_l3c_1p2>;
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+
+       status = "okay";
+};
+
 &usb_prim_hsphy {
        vdda-pll-supply = <&vreg_l5e_0p88>;
        vdda18-supply = <&vreg_l12a_1p8>;
index 1c6f12fafe1d402c068324ed4d5f9e29fc6f6f18..451c9b984f1fd9aebaeb36e3d7ae7be8deecaf8c 100644 (file)
@@ -75,7 +75,7 @@
                pon: pon@800 {
                        compatible = "qcom,pm8916-pon";
                        reg = <0x0800>;
-                       pwrkey {
+                       pmc8180_pwrkey: pwrkey {
                                compatible = "qcom,pm8941-pwrkey";
                                interrupts = <0x0 0x8 0x0 IRQ_TYPE_EDGE_BOTH>;
                                debounce = <15625>;
                        interrupts = <0x0 0x61 0x1 IRQ_TYPE_NONE>;
                };
 
-               pmc8180_gpios: gpio@c000 {
+               pmc8180_1_gpios: gpio@c000 {
                        compatible = "qcom,pmc8180-gpio", "qcom,spmi-gpio";
                        reg = <0xc000>;
                        gpio-controller;
-                       gpio-ranges = <&pmc8180_gpios 0 0 10>;
+                       gpio-ranges = <&pmc8180_1_gpios 0 0 10>;
                        #gpio-cells = <2>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                #size-cells = <0>;
        };
 
-       pmic@8 {
+       pmc8180_2: pmic@8 {
                compatible = "qcom,pm8150", "qcom,spmi-pmic";
                reg = <0x8 SPMI_USID>;
                #address-cells = <1>;
                #size-cells = <0>;
+
+               pmc8180_2_gpios: gpio@c000 {
+                       compatible = "qcom,pmc8180-gpio", "qcom,spmi-gpio";
+                       reg = <0xc000>;
+                       gpio-controller;
+                       gpio-ranges = <&pmc8180_2_gpios 0 0 10>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
        };
 
        pmic@a {
index 65d923497a057d94f2619a950435b1530466a376..79b4d293ea1e70d68346e7c5458c94f7c2b6f1eb 100644 (file)
                vin-supply = <&vph_pwr>;
        };
 
+       vreg_usb2_host_en: regulator-usb2-host-en {
+               compatible = "regulator-fixed";
+               regulator-name = "usb2_host_en";
+
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+
+               gpio = <&pmc8180_1_gpios 9 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               regulator-always-on;
+       };
+
+       vreg_usb3_host_en: regulator-usb3-host-en {
+               compatible = "regulator-fixed";
+               regulator-name = "usb3_host_en";
+
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+
+               gpio = <&pmc8180_2_gpios 9 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               regulator-always-on;
+       };
+
        usbprim-sbu-mux {
                compatible = "pericom,pi3usb102", "gpio-sbu-mux";
 
        status = "okay";
 };
 
+&pmc8180_pwrkey {
+       status = "okay";
+};
+
 &pmc8180c_lpg {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_mp {
+       status = "okay";
+};
+
+&usb_mp_hsphy0 {
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+       vdda18-supply = <&vreg_l12a_1p8>;
+       vdda33-supply = <&vreg_l16e_3p0>;
+
+       status = "okay";
+};
+
+&usb_mp_hsphy1 {
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+       vdda18-supply = <&vreg_l12a_1p8>;
+       vdda33-supply = <&vreg_l16e_3p0>;
+
+       status = "okay";
+};
+
+&usb_mp_qmpphy0 {
+       vdda-phy-supply = <&vreg_l3c_1p2>;
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+
+       status = "okay";
+};
+
+&usb_mp_qmpphy1 {
+       vdda-phy-supply = <&vreg_l3c_1p2>;
+       vdda-pll-supply = <&vreg_l5e_0p88>;
+
+       status = "okay";
+};
+
 &usb_prim_hsphy {
        vdda-pll-supply = <&vreg_l5e_0p88>;
        vdda18-supply = <&vreg_l12a_1p8>;
index 6e707d993aeb36425af18c818cb3baf6f144d37f..0e9429684dd97bc2d93185815b29e9db0fad892b 100644 (file)
                        status = "disabled";
                };
 
+               usb_mp_hsphy0: phy@88e4000 {
+                       compatible = "qcom,sc8180x-usb-hs-phy",
+                                    "qcom,usb-snps-hs-7nm-phy";
+                       reg = <0 0x088e4000 0 0x400>;
+                       #phy-cells = <0>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "ref";
+
+                       resets = <&gcc GCC_QUSB2PHY_MP0_BCR>;
+
+                       status = "disabled";
+               };
+
+               usb_mp_hsphy1: phy@88e5000 {
+                       compatible = "qcom,sc8180x-usb-hs-phy",
+                                    "qcom,usb-snps-hs-7nm-phy";
+                       reg = <0 0x088e5000 0 0x400>;
+                       #phy-cells = <0>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "ref";
+
+                       resets = <&gcc GCC_QUSB2PHY_MP1_BCR>;
+
+                       status = "disabled";
+               };
+
                usb_prim_qmpphy: phy@88e8000 {
                        compatible = "qcom,sc8180x-qmp-usb3-dp-phy";
                        reg = <0 0x088e8000 0 0x3000>;
                        };
                };
 
+               usb_mp_qmpphy0: phy@88eb000 {
+                       compatible = "qcom,sc8180x-qmp-usb3-uni-phy";
+                       reg = <0 0x088eb000 0 0x1000>;
+
+                       clocks = <&gcc GCC_USB3_MP_PHY_AUX_CLK>,
+                                <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
+                                <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_MP_PHY_PIPE_0_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "com_aux",
+                                     "pipe";
+
+                       resets = <&gcc GCC_USB3_UNIPHY_MP0_BCR>,
+                                <&gcc GCC_USB3UNIPHY_PHY_MP0_BCR>;
+                       reset-names = "phy", "phy_phy";
+
+                       power-domains = <&gcc USB30_MP_GDSC>;
+
+                       #clock-cells = <0>;
+                       clock-output-names = "usb2_phy0_pipe_clk";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               usb_mp_qmpphy1: phy@88ec000 {
+                       compatible = "qcom,sc8180x-qmp-usb3-uni-phy";
+                       reg = <0 0x088ec000 0 0x1000>;
+
+                       clocks = <&gcc GCC_USB3_MP_PHY_AUX_CLK>,
+                                <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
+                                <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_MP_PHY_PIPE_1_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "com_aux",
+                                     "pipe";
+
+                       resets = <&gcc GCC_USB3_UNIPHY_MP1_BCR>,
+                                <&gcc GCC_USB3UNIPHY_PHY_MP1_BCR>;
+                       reset-names = "phy", "phy_phy";
+
+                       power-domains = <&gcc USB30_MP_GDSC>;
+
+                       #clock-cells = <0>;
+                       clock-output-names = "usb2_phy1_pipe_clk";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
                usb_sec_qmpphy: phy@88ee000 {
                        compatible = "qcom,sc8180x-qmp-usb3-dp-phy";
                        reg = <0 0x088ed000 0 0x3000>;
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
+               usb_mp: usb@a4f8800 {
+                       compatible = "qcom,sc8180x-dwc3-mp", "qcom,dwc3";
+                       reg = <0 0x0a4f8800 0 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       dma-ranges;
+
+                       clocks = <&gcc GCC_CFG_NOC_USB3_MP_AXI_CLK>,
+                                <&gcc GCC_USB30_MP_MASTER_CLK>,
+                                <&gcc GCC_AGGRE_USB3_MP_AXI_CLK>,
+                                <&gcc GCC_USB30_MP_SLEEP_CLK>,
+                                <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>,
+                                <&gcc GCC_USB3_SEC_CLKREF_CLK>;
+                       clock-names = "cfg_noc",
+                                     "core",
+                                     "iface",
+                                     "sleep",
+                                     "mock_utmi",
+                                     "xo";
+
+                       interconnects = <&aggre1_noc MASTER_USB3_2 0 &mc_virt SLAVE_EBI_CH0 0>,
+                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_USB3_2 0>;
+                       interconnect-names = "usb-ddr", "apps-usb";
+
+                       assigned-clocks = <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_MP_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       interrupts-extended = <&intc GIC_SPI 656 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 655 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 658 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 657 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 59 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 46 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 71 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 68 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 7 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pwr_event_1", "pwr_event_2",
+                                         "hs_phy_1",    "hs_phy_2",
+                                         "dp_hs_phy_1", "dm_hs_phy_1",
+                                         "dp_hs_phy_2", "dm_hs_phy_2",
+                                         "ss_phy_1",    "ss_phy_2";
+
+                       power-domains = <&gcc USB30_MP_GDSC>;
+
+                       resets = <&gcc GCC_USB30_MP_BCR>;
+
+                       status = "disabled";
+
+                       usb_mp_dwc3: usb@a400000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a400000 0 0xcd00>;
+                               interrupts = <GIC_SPI 654 IRQ_TYPE_LEVEL_HIGH>;
+                               iommus = <&apps_smmu 0x60 0>;
+                               snps,dis_u2_susphy_quirk;
+                               snps,dis_enblslpm_quirk;
+                               phys = <&usb_mp_hsphy0>,
+                                      <&usb_mp_qmpphy0>,
+                                      <&usb_mp_hsphy1>,
+                                      <&usb_mp_qmpphy1>;
+                               phy-names = "usb2-0",
+                                           "usb3-0",
+                                           "usb2-1",
+                                           "usb3-1";
+                               dr_mode = "host";
+                       };
+               };
+
                usb_prim: usb@a6f8800 {
                        compatible = "qcom,sc8180x-dwc3", "qcom,dwc3";
                        reg = <0 0x0a6f8800 0 0x400>;
-                       interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 9 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
-                                             <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
-                       interrupt-names = "hs_phy_irq",
-                                         "ss_phy_irq",
+                                             <&pdc 6 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pwr_event",
+                                         "hs_phy_irq",
+                                         "dp_hs_phy_irq",
                                          "dm_hs_phy_irq",
-                                         "dp_hs_phy_irq";
+                                         "ss_phy_irq";
 
                        clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
                                 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
                                      "xo";
                        resets = <&gcc GCC_USB30_SEC_BCR>;
                        power-domains = <&gcc USB30_SEC_GDSC>;
-                       interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 40 IRQ_TYPE_LEVEL_HIGH>,
+
+                       interrupts-extended = <&intc GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 11 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 10 IRQ_TYPE_EDGE_BOTH>,
-                                             <&pdc 11 IRQ_TYPE_EDGE_BOTH>;
-                       interrupt-names = "hs_phy_irq", "ss_phy_irq",
-                                         "dm_hs_phy_irq", "dp_hs_phy_irq";
+                                             <&pdc 40 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pwr_event",
+                                         "hs_phy_irq",
+                                         "dp_hs_phy_irq",
+                                         "dm_hs_phy_irq",
+                                         "ss_phy_irq";
 
                        assigned-clocks = <&gcc GCC_USB30_SEC_MOCK_UTMI_CLK>,
                                          <&gcc GCC_USB30_SEC_MASTER_CLK>;
index b98b2f7752b5b2c930b6bce4f53ebb00138600c1..6020582b0a59d73514ea8fdba4f47d0c13d81316 100644 (file)
                        pins = "gpio143";
                        function = "gpio";
                        drive-strength = <2>;
-                       bias-pull-down;
+                       bias-disable;
                };
 
                wake-n-pins {
-                      pins = "gpio145";
-                      function = "gpio";
-                      drive-strength = <2>;
-                      bias-pull-up;
-              };
+                       pins = "gpio145";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
        };
 
        pcie3a_default: pcie3a-default-state {
                        pins = "gpio151";
                        function = "gpio";
                        drive-strength = <2>;
-                       bias-pull-down;
+                       bias-disable;
                };
 
                wake-n-pins {
                        pins = "gpio141";
                        function = "gpio";
                        drive-strength = <2>;
-                       bias-pull-down;
+                       bias-disable;
                };
 
                wake-n-pins {
index b27143f81867ab874a9426bed472052d6901a38d..6a28cab971891d327bf7fa5558a382799c178e6e 100644 (file)
        };
 };
 
+&camss {
+       vdda-phy-supply = <&vreg_l6d>;
+       vdda-pll-supply = <&vreg_l4d>;
+
+       status = "okay";
+
+       ports {
+               port@0 {
+                       csiphy0_lanes01_ep: endpoint@0 {
+                               reg = <0>;
+                               clock-lanes = <7>;
+                               data-lanes = <0 1>;
+                               remote-endpoint = <&ov5675_ep>;
+                       };
+               };
+       };
+};
+
+&cci2 {
+       status = "okay";
+};
+
+&cci2_i2c1 {
+       camera@10 {
+               compatible = "ovti,ov5675";
+               reg = <0x10>;
+
+               reset-gpios = <&tlmm 15 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&cam_rgb_default>;
+
+               clocks = <&camcc CAMCC_MCLK3_CLK>;
+
+               orientation = <0>;      /* Front facing */
+
+               avdd-supply = <&vreg_l6q>;
+               dvdd-supply = <&vreg_l2q>;
+               dovdd-supply = <&vreg_l7q>;
+
+               port {
+                       ov5675_ep: endpoint {
+                               clock-lanes = <0>;
+                               data-lanes = <1 2>;
+                               link-frequencies = /bits/ 64 <450000000>;
+                               remote-endpoint = <&csiphy0_lanes01_ep>;
+                       };
+               };
+
+       };
+};
+
 &dispcc0 {
        status = "okay";
 };
                bias-disable;
        };
 
+       cam_rgb_default: cam-rgb-default-state {
+               mclk-pins {
+                       pins = "gpio17";
+                       function = "cam_mclk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               sc-rgb-xshut-n-pins {
+                       pins = "gpio15";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+
        edp_reg_en: edp-reg-en-state {
                pins = "gpio25";
                function = "gpio";
                        pins = "gpio143";
                        function = "gpio";
                        drive-strength = <2>;
-                       bias-pull-down;
+                       bias-disable;
                };
 
                wake-n-pins {
-                      pins = "gpio145";
-                      function = "gpio";
-                      drive-strength = <2>;
-                      bias-pull-up;
-              };
+                       pins = "gpio145";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
        };
 
        pcie3a_default: pcie3a-default-state {
                        pins = "gpio151";
                        function = "gpio";
                        drive-strength = <2>;
-                       bias-pull-down;
+                       bias-disable;
                };
 
                wake-n-pins {
                        pins = "gpio141";
                        function = "gpio";
                        drive-strength = <2>;
-                       bias-pull-down;
+                       bias-disable;
                };
 
                wake-n-pins {
index c7e3764a8cf321536c620617a1b97815eaa0c7d5..c8da5cb8d04e997142005d7f7744c1268b56f19b 100644 (file)
                        mboxes = <&apcs_glb 0>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-sdm660";
+                               compatible = "qcom,rpm-sdm660", "qcom,glink-smd-rpm";
                                qcom,glink-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
index fde16308c7e24e2704e5d52890e48a6a45c99a69..f1bbe7ab01ab0be466b971727f7737a866dc89d7 100644 (file)
        status = "okay";
 };
 
+&remoteproc_mpss {
+       firmware-name = "qcom/sdx75/modem.mbn",
+                       "qcom/sdx75/modem_dtb.mbn";
+       status = "okay";
+};
+
 &sdhc {
        cd-gpios = <&tlmm 103 GPIO_ACTIVE_LOW>;
        vmmc-supply = <&reg_2v95_vdd>;
index 9b93f6501d55c7e5d74075fbdcbf09bb47ac260e..7cf3fcb469a8682f0898f5d66d4ec0964cd0c80f 100644 (file)
                        no-map;
                };
 
-               qdss_mem: qdss@88800000 {
+               qdss_mem: qdss@88500000 {
+                       reg = <0x0 0x88500000 0x0 0x300000>;
+                       no-map;
+               };
+
+               qlink_logging_mem: qlink-logging@88800000 {
                        reg = <0x0 0x88800000 0x0 0x300000>;
                        no-map;
                };
                        no-map;
                };
 
-               mpss_dsmharq_mem: mpss-dsmharq@88f00000 {
-                       reg = <0x0 0x88f00000 0x0 0x5080000>;
+               mpss_dsm_mem_2: mpss-dsm-2@88f00000 {
+                       reg = <0x0 0x88f00000 0x0 0x2500000>;
+                       no-map;
+               };
+
+               mpss_dsm_mem: mpss-dsm@8b400000 {
+                       reg = <0x0 0x8b400000 0x0 0x2b80000>;
                        no-map;
                };
 
                };
 
                mpssadsp_mem: mpssadsp@8e000000 {
-                       reg = <0x0 0x8e000000 0x0 0xf400000>;
+                       reg = <0x0 0x8e000000 0x0 0xf100000>;
                        no-map;
                };
 
                        reg = <0x0 0x01fc0000 0x0 0x30000>;
                };
 
+               remoteproc_mpss: remoteproc@4080000 {
+                       compatible = "qcom,sdx75-mpss-pas";
+                       reg = <0 0x04080000 0 0x4040>;
+
+                       interrupts-extended = <&intc GIC_SPI 250 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 3 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 7 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog",
+                                         "fatal",
+                                         "ready",
+                                         "handover",
+                                         "stop-ack",
+                                         "shutdown-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd RPMHPD_CX>,
+                                       <&rpmhpd RPMHPD_MSS>;
+                       power-domain-names = "cx",
+                                            "mss";
+
+                       memory-region = <&mpssadsp_mem>, <&q6_mpss_dtb_mem>,
+                                       <&mpss_dsm_mem>, <&mpss_dsm_mem_2>,
+                                       <&qlink_logging_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_modem_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
+                                                            IPCC_MPROC_SIGNAL_PING
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_MPSS
+                                               IPCC_MPROC_SIGNAL_PING>;
+                               label = "mpss";
+                               qcom,remote-pid = <1>;
+                       };
+               };
+
                sdhc: mmc@8804000 {
                        compatible = "qcom,sdx75-sdhci", "qcom,sdhci-msm-v5";
                        reg = <0x0 0x08804000 0x0 0x1000>;
index 9c9919e78fbdbf4dab77e0bd5b611804de178439..1e05cd00b635ee803857cb9107e1406520f016f5 100644 (file)
@@ -4,7 +4,10 @@
  */
 
 #include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/clock/qcom,sm4450-camcc.h>
+#include <dt-bindings/clock/qcom,sm4450-dispcc.h>
 #include <dt-bindings/clock/qcom,sm4450-gcc.h>
+#include <dt-bindings/clock/qcom,sm4450-gpucc.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
                        #hwlock-cells = <1>;
                };
 
+               gpucc: clock-controller@3d90000 {
+                       compatible = "qcom,sm4450-gpucc";
+                       reg = <0x0 0x03d90000 0x0 0xa000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+                                <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               camcc: clock-controller@ade0000 {
+                       compatible = "qcom,sm4450-camcc";
+                       reg = <0x0 0x0ade0000 0x0 0x20000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_CAMERA_AHB_CLK>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               dispcc: clock-controller@af00000 {
+                       compatible = "qcom,sm4450-dispcc";
+                       reg = <0x0 0x0af00000 0x0 0x20000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK_A>,
+                                <&gcc GCC_DISP_AHB_CLK>,
+                                <&sleep_clk>,
+                                <0>,
+                                <0>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                pdc: interrupt-controller@b220000 {
                        compatible = "qcom,sm4450-pdc", "qcom,pdc";
                        reg = <0 0x0b220000 0 0x30000>, <0 0x174000f0 0 0x64>;
index 4a30024aa48fb47822c24f91e2dabb49d5bf3308..f60d36c03b9b51d1ba5fb2db7d619916fe42f084 100644 (file)
@@ -1,13 +1,16 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
 /*
- * Copyright (c) 2023, Dang Huynh <danct12@riseup.net>
+ * Copyright (c) 2023 - 2024, Dang Huynh <danct12@riseup.net>
  */
 
 /dts-v1/;
 
 #include "sm6115.dtsi"
 #include "pm6125.dtsi"
+#include "pmi632.dtsi"
 #include <dt-bindings/arm/qcom,ids.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/usb/pd.h>
 
 / {
        model = "F(x)tec Pro1X (QX1050)";
                };
        };
 
+       disp_elvdd_supply: disp-elvdd-supply {
+               compatible = "regulator-fixed";
+               regulator-name = "disp_elvdd_supply";
+       };
+
+       disp_elvss_supply: disp-elvss-supply {
+               compatible = "regulator-fixed";
+               regulator-name = "disp_elvss_supply";
+       };
+
+       disp_vcc_supply: disp-vcc-supply {
+               compatible = "regulator-fixed";
+               regulator-name = "disp_vcc_supply";
+       };
+
+       disp_vci_supply: disp-vci-supply {
+               compatible = "regulator-fixed";
+               regulator-name = "disp_vci_supply";
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
-               pinctrl-0 = <&vol_up_n>;
+               pinctrl-0 = <&hall_sensor_n>, <&key_camera_n>, <&vol_up_n>;
                pinctrl-names = "default";
 
+               hall-switch {
+                       label = "Hall Switch";
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_KEYPAD_SLIDE>;
+                       gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+                       debounce-interval = <90>;
+                       wakeup-source;
+               };
+
+               key-camera {
+                       label = "Camera Button";
+                       linux,code = <KEY_CAMERA>;
+                       gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+               };
+
                key-volume-up {
                        label = "Volume Up";
                        linux,code = <KEY_VOLUMEUP>;
                        wakeup-source;
                };
        };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               capslock-led {
+                       label = "green:capslock";
+                       function = LED_FUNCTION_CAPSLOCK;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&pca9534 1 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "kbd-capslock";
+                       default-state = "off";
+               };
+       };
+
+       ts_vdd_supply: ts-vdd-supply {
+               compatible = "regulator-fixed";
+               regulator-name = "ts_vdd_supply";
+               gpio = <&pca9534 3 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       ts_vddio_supply: ts-vddio-supply {
+               compatible = "regulator-fixed";
+               regulator-name = "ts_vddio_supply";
+               gpio = <&pca9534 2 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
 };
 
-&dispcc {
-       /* HACK: disable until a panel driver is ready to retain simplefb */
-       status = "disabled";
+&gpi_dma0 {
+       status = "okay";
+};
+
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/sm6115/Fxtec/QX1050/a610_zap.mbn";
+       };
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+
+       status = "okay";
+
+       pca9534: gpio@21 {
+               compatible = "nxp,pca9534";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+};
+
+&i2c2 {
+       status = "okay";
+       /* Clock frequency was not specified downstream, let's park it to 100 KHz */
+       clock-frequency = <100000>;
+
+       touchscreen@14 {
+               compatible = "goodix,gt9286";
+               reg = <0x14>;
+
+               interrupts-extended = <&tlmm 80 IRQ_TYPE_LEVEL_LOW>;
+
+               irq-gpios = <&tlmm 80 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&tlmm 71 GPIO_ACTIVE_HIGH>;
+               AVDD28-supply = <&ts_vdd_supply>;
+               VDDIO-supply = <&ts_vddio_supply>;
+
+               pinctrl-0 = <&ts_int_n>, <&ts_rst_n>;
+               pinctrl-names = "default";
+       };
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi0 {
+       vdda-supply = <&pm6125_l18a>;
+       status = "okay";
+
+       panel: panel@0 {
+               compatible = "boe,bf060y8m-aj0";
+               reg = <0>;
+
+               reset-gpios = <&tlmm 82 GPIO_ACTIVE_LOW>;
+
+               elvdd-supply = <&disp_elvdd_supply>;
+               elvss-supply = <&disp_elvss_supply>;
+               vcc-supply = <&disp_vcc_supply>;
+               vci-supply = <&disp_vci_supply>;
+               vddio-supply = <&pm6125_l9a>;
+
+               pinctrl-0 = <&mdss_dsi_n &panel_en_n>;
+               pinctrl-names = "default";
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_out {
+       data-lanes = <0 1 2 3>;
+       remote-endpoint = <&panel_in>;
+};
+
+&mdss_dsi0_phy {
+       status = "okay";
 };
 
 &pm6125_gpios {
        };
 };
 
+&pmi632_lpg {
+       status = "okay";
+
+       multi-led {
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@1 {
+                       reg = <1>;
+                       color = <LED_COLOR_ID_RED>;
+               };
+
+               led@2 {
+                       reg = <2>;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+
+               led@3 {
+                       reg = <3>;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+       };
+};
+
+&pmi632_typec {
+       status = "okay";
+
+       connector {
+               compatible = "usb-c-connector";
+
+               power-role = "dual";
+               data-role = "dual";
+               self-powered;
+
+               typec-power-opmode = "default";
+               pd-disable;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               pmi632_hs_in: endpoint {
+                                       remote-endpoint = <&usb_dwc3_hs>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               pmi632_ss_in: endpoint {
+                                       remote-endpoint = <&usb_qmpphy_out>;
+                               };
+                       };
+               };
+       };
+};
+
+&pmi632_vbus {
+       regulator-min-microamp = <500000>;
+       regulator-max-microamp = <1000000>;
+       status = "okay";
+};
+
 &pon_pwrkey {
        status = "okay";
 };
        status = "okay";
 };
 
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/sm6115/Fxtec/QX1050/adsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/sm6115/Fxtec/QX1050/cdsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/sm6115/Fxtec/QX1050/modem.mbn";
+       status = "okay";
+};
+
 &rpm_requests {
        regulators-0 {
                compatible = "qcom,rpm-pm6125-regulators";
                pm6125_l5a: l5 {
                        regulator-min-microvolt = <1648000>;
                        regulator-max-microvolt = <3056000>;
+                       regulator-allow-set-load;
                };
 
                pm6125_l6a: l6 {
        };
 };
 
+&sdc2_state_off {
+       cd-pins {
+               pins = "gpio88";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
+
+&sdc2_state_on {
+       cd-pins {
+               pins = "gpio88";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+};
+
+&sdhc_2 {
+       pinctrl-0 = <&sdc2_state_on>;
+       pinctrl-1 = <&sdc2_state_off>;
+       pinctrl-names = "default", "sleep";
+
+       cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>;
+
+       vmmc-supply = <&pm6125_l22a>;
+       vqmmc-supply = <&pm6125_l5a>;
+
+       status = "okay";
+};
+
 &sleep_clk {
        clock-frequency = <32764>;
 };
 
 &tlmm {
        gpio-reserved-ranges = <0 4>, <14 4>;
+
+       key_camera_n: key-camera-n-state {
+               pins = "gpio18";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       panel_en_n: panel-en-n-state {
+               pins = "gpio65";
+               function = "gpio";
+               bias-disable;
+       };
+
+       ts_rst_n: ts-rst-n-state {
+               pins = "gpio71";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       ts_int_n: ts-int-n-state {
+               pins = "gpio80";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       mdss_dsi_n: mdss-dsi-n-state {
+               pins = "gpio82";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       hall_sensor_n: hall-sensor-n-state {
+               pins = "gpio96";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
 };
 
 &ufs_mem_hc {
        status = "okay";
 };
 
-&usb_dwc3 {
-       /delete-property/ usb-role-switch;
-       maximum-speed = "high-speed";
-       dr_mode = "peripheral";
+&usb_dwc3_hs {
+       remote-endpoint = <&pmi632_hs_in>;
 };
 
 &usb_hsphy {
        status = "okay";
 };
 
+&usb_qmpphy {
+       vdda-phy-supply = <&pm6125_l4a>;
+       vdda-pll-supply = <&pm6125_l12a>;
+       status = "okay";
+};
+
+&usb_qmpphy_out {
+       remote-endpoint = <&pmi632_ss_in>;
+};
+
+&wifi {
+       vdd-0.8-cx-mx-supply = <&pm6125_l8a>;
+       vdd-1.8-xo-supply = <&pm6125_l16a>;
+       vdd-1.3-rfa-supply = <&pm6125_l17a>;
+       vdd-3.3-ch0-supply = <&pm6125_l23a>;
+
+       qcom,ath10k-calibration-variant = "Fxtec_QX1050";
+
+       status = "okay";
+};
+
 &xo_board {
        clock-frequency = <19200000>;
 };
index e374733f3b856eacdc22efd2f698e37d041f5390..41216cc319d65e34737b2e1e4376c6ac6bc1a646 100644 (file)
                        mboxes = <&apcs_glb 0>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-sm6115";
+                               compatible = "qcom,rpm-sm6115", "qcom,glink-smd-rpm";
                                qcom,glink-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
index 777c380c2fa044bb9e713de5bbfc98f700c80c6f..133610d14fc41a524a2d570ccdad621155342728 100644 (file)
                        mboxes = <&apcs_glb 0>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-sm6125";
+                               compatible = "qcom,rpm-sm6125", "qcom,glink-smd-rpm";
                                qcom,glink-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
index ddea681b536db0f0fcb76cd8320edce0a50e40ad..4d519dd6e7ef2f9c13a3c26da185ddbdfd2f334d 100644 (file)
                        mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
 
                        rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-sm6375";
+                               compatible = "qcom,rpm-sm6375", "qcom,glink-smd-rpm";
                                qcom,glink-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
index 29289fa41b1344c002e31920ef2dd230eef1bc67..b9cff60efe6fc07811d01f927ac3e4145e5e6961 100644 (file)
 };
 
 &ufs_mem_hc {
+       reset-gpios = <&tlmm 119 GPIO_ACTIVE_LOW>;
+
        vcc-supply = <&vreg_l19a_3p0>;
        vcc-max-microamp = <600000>;
        vccq2-supply = <&vreg_l12a_1p8>;
index 286350ac77517e354d1ac74372a4df039fd30a19..256a1ba9494560b93dc324751ee8327f763aad90 100644 (file)
 };
 
 &gpu {
-       /*
-        * NOTE: "amd,imageon" makes Adreno start in headless mode, remove it
-        * after display support is added on this board.
-        */
-       compatible = "qcom,adreno-640.1", "qcom,adreno", "amd,imageon";
        status = "okay";
 };
 
index 3e236adb9397b6d364fa6a1dc1bf0eabb5983342..27f87835bc5595f5023319f77878a8ea4090a3f6 100644 (file)
@@ -17,6 +17,7 @@
 #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/clock/qcom,sm8150-camcc.h>
 #include <dt-bindings/thermal/thermal.h>
 
 / {
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
+               camcc: clock-controller@ad00000 {
+                       compatible = "qcom,sm8150-camcc";
+                       reg = <0 0x0ad00000 0 0x10000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_CAMERA_AHB_CLK>;
+                       power-domains = <&rpmhpd SM8150_MMCX>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                mdss: display-subsystem@ae00000 {
                        compatible = "qcom,sm8150-mdss";
                        reg = <0 0x0ae00000 0 0x1000>;
index 9d6c97d1fd9d6e12e4f88900bd04555ac244b0db..630f4eff20bf810e347685066dce74ab92a23b56 100644 (file)
@@ -8,8 +8,6 @@
 #include <dt-bindings/clock/qcom,gcc-sm8250.h>
 #include <dt-bindings/clock/qcom,gpucc-sm8250.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
-#include <dt-bindings/clock/qcom,sm8250-lpass-aoncc.h>
-#include <dt-bindings/clock/qcom,sm8250-lpass-audiocc.h>
 #include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interconnect/qcom,osm-l3.h>
                wsamacro: codec@3240000 {
                        compatible = "qcom,sm8250-lpass-wsa-macro";
                        reg = <0 0x03240000 0 0x1000>;
-                       clocks = <&audiocc LPASS_CDC_WSA_MCLK>,
-                                <&audiocc LPASS_CDC_WSA_NPL>,
+                       clocks = <&q6afecc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6afecc LPASS_CLK_ID_TX_CORE_NPL_MCLK  LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
                                 <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
                                 <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
-                                <&aoncc LPASS_CDC_VA_MCLK>,
                                 <&vamacro>;
 
-                       clock-names = "mclk", "npl", "macro", "dcodec", "va", "fsgen";
+                       clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
 
                        #clock-cells = <0>;
                        clock-output-names = "mclk";
                        status = "disabled";
                };
 
-               audiocc: clock-controller@3300000 {
-                       compatible = "qcom,sm8250-lpass-audiocc";
-                       reg = <0 0x03300000 0 0x30000>;
-                       #clock-cells = <1>;
-                       clocks = <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
-                               <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
-                               <&q6afecc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
-                       clock-names = "core", "audio", "bus";
-               };
-
                vamacro: codec@3370000 {
                        compatible = "qcom,sm8250-lpass-va-macro";
                        reg = <0 0x03370000 0 0x1000>;
-                       clocks = <&aoncc LPASS_CDC_VA_MCLK>,
+                       clocks = <&q6afecc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
                                <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
                                <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
 
                        #size-cells = <0>;
                };
 
-               aoncc: clock-controller@3380000 {
-                       compatible = "qcom,sm8250-lpass-aoncc";
-                       reg = <0 0x03380000 0 0x40000>;
-                       #clock-cells = <1>;
-                       clocks = <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
-                               <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
-                               <&q6afecc LPASS_CLK_ID_TX_CORE_NPL_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
-                       clock-names = "core", "audio", "bus";
-               };
-
                lpass_tlmm: pinctrl@33c0000 {
                        compatible = "qcom,sm8250-lpass-lpi-pinctrl";
                        reg = <0 0x033c0000 0x0 0x20000>,
index 38ee0850c33582e690b9a575356d3b22151f489e..37a2aba0d4cae0421c8ddc09d70373836dac8b33 100644 (file)
                        resets = <&gcc GCC_QUSB2PHY_SEC_BCR>;
                };
 
+               refgen: regulator@88e7000 {
+                       compatible = "qcom,sm8350-refgen-regulator",
+                                    "qcom,sm8250-refgen-regulator";
+                       reg = <0x0 0x088e7000 0x0 0x84>;
+               };
+
                usb_1_qmpphy: phy@88e8000 {
                        compatible = "qcom,sm8350-qmp-usb3-dp-phy";
                        reg = <0 0x088e8000 0 0x3000>;
                        reg-names = "mdss";
 
                        interconnects = <&mmss_noc MASTER_MDP0 0 &mc_virt SLAVE_EBI1 0>,
-                                       <&mmss_noc MASTER_MDP1 0 &mc_virt SLAVE_EBI1 0>;
-                       interconnect-names = "mdp0-mem", "mdp1-mem";
+                                       <&mmss_noc MASTER_MDP1 0 &mc_virt SLAVE_EBI1 0>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_DISPLAY_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       interconnect-names = "mdp0-mem",
+                                            "mdp1-mem",
+                                            "cpu-cfg";
 
                        power-domains = <&dispcc MDSS_GDSC>;
                        resets = <&dispcc DISP_CC_MDSS_CORE_BCR>;
 
                                operating-points-v2 = <&dsi0_opp_table>;
                                power-domains = <&rpmhpd RPMHPD_MMCX>;
+                               refgen-supply = <&refgen>;
 
                                phys = <&mdss_dsi0_phy>;
 
 
                                operating-points-v2 = <&dsi1_opp_table>;
                                power-domains = <&rpmhpd RPMHPD_MMCX>;
+                               refgen-supply = <&refgen>;
 
                                phys = <&mdss_dsi1_phy>;
 
index 9bafb3b350ff627277514be83910b72a283c1935..38cb524cc56893bd287c78e6616654667b4d5a85 100644 (file)
 
                        clocks = <&gcc GCC_PCIE_1_PIPE_CLK>,
                                 <&gcc GCC_PCIE_1_PIPE_CLK_SRC>,
-                                <&pcie1_phy>,
+                                <&pcie1_phy QMP_PCIE_PIPE_CLK>,
                                 <&rpmhcc RPMH_CXO_CLK>,
                                 <&gcc GCC_PCIE_1_AUX_CLK>,
                                 <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
index 2e12219006c92243d40217d822ad7eda98fba6c9..01c921602605726928bcba71abd937869880ea0d 100644 (file)
                        };
                };
        };
+
+       wcn7850-pmu {
+               compatible = "qcom,wcn7850-pmu";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_en>, <&bt_default>, <&pmk8550_sleep_clk>;
+
+               wlan-enable-gpios = <&tlmm 80 GPIO_ACTIVE_HIGH>;
+               bt-enable-gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
+
+               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";
 };
 
+&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";
 };
 
+&pmk8550_gpios {
+       pmk8550_sleep_clk: sleep-clk-state {
+               pins = "gpio3";
+               function = "func1";
+               input-disable;
+               output-enable;
+               bias-disable;
+               power-source = <0>;
+       };
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
                bias-disable;
                output-low;
        };
+
+       wlan_en: wlan-en-state {
+               pins = "gpio80";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-down;
+       };
 };
 
 &uart7 {
        bluetooth {
                compatible = "qcom,wcn7850-bt";
 
-               vddio-supply = <&vreg_l15b_1p8>;
-               vddaon-supply = <&vreg_s4e_0p95>;
-               vdddig-supply = <&vreg_s4e_0p95>;
-               vddrfa0p8-supply = <&vreg_s4e_0p95>;
-               vddrfa1p2-supply = <&vreg_s4g_1p25>;
-               vddrfa1p9-supply = <&vreg_s6g_1p86>;
+               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>;
 
                max-speed = <3200000>;
-
-               enable-gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
-               swctrl-gpios = <&tlmm 82 GPIO_ACTIVE_HIGH>;
-
-               pinctrl-0 = <&bt_default>;
-               pinctrl-names = "default";
        };
 };
 
index 774bdfcffec3247eca42d97ee5ca8d7cd627f1b9..6052dd922ec55c65089e6b08e36c355b01bf24fa 100644 (file)
                compatible = "qcom,wcn7850-pmu";
 
                pinctrl-names = "default";
-               pinctrl-0 = <&wlan_en>, <&pmk8550_sleep_clk>;
+               pinctrl-0 = <&wlan_en>, <&bt_default>, <&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.
-                */
+               bt-enable-gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
 
                vdd-supply = <&vreg_s5g_0p85>;
                vddio-supply = <&vreg_l15b_1p8>;
        bluetooth {
                compatible = "qcom,wcn7850-bt";
 
-               vddio-supply = <&vreg_l15b_1p8>;
-               vddaon-supply = <&vreg_s4e_0p95>;
-               vdddig-supply = <&vreg_s4e_0p95>;
-               vddrfa0p8-supply = <&vreg_s4e_0p95>;
-               vddrfa1p2-supply = <&vreg_s4g_1p25>;
-               vddrfa1p9-supply = <&vreg_s6g_1p86>;
+               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>;
 
                max-speed = <3200000>;
-
-               enable-gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
-               swctrl-gpios = <&tlmm 82 GPIO_ACTIVE_HIGH>;
-
-               pinctrl-0 = <&bt_default>;
-               pinctrl-names = "default";
        };
 };
 
index 4c9820adcf52d496cbca4a6bd4042f458f837c83..9dc0ee3eb98f8711e01934e47331b99e3bb73682 100644 (file)
                        #power-domain-cells = <1>;
                };
 
+               cci0: cci@ac15000 {
+                       compatible = "qcom,sm8550-cci", "qcom,msm8996-cci";
+                       reg = <0 0x0ac15000 0 0x1000>;
+                       interrupts = <GIC_SPI 426 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CCI_0_CLK>;
+                       clock-names = "camnoc_axi",
+                                     "cpas_ahb",
+                                     "cci";
+                       pinctrl-0 = <&cci0_0_default &cci0_1_default>;
+                       pinctrl-1 = <&cci0_0_sleep &cci0_1_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cci0_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       cci0_i2c1: i2c-bus@1 {
+                               reg = <1>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               cci1: cci@ac16000 {
+                       compatible = "qcom,sm8550-cci", "qcom,msm8996-cci";
+                       reg = <0 0x0ac16000 0 0x1000>;
+                       interrupts = <GIC_SPI 427 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CCI_1_CLK>;
+                       clock-names = "camnoc_axi",
+                                     "cpas_ahb",
+                                     "cci";
+                       pinctrl-0 = <&cci1_0_default>;
+                       pinctrl-1 = <&cci1_0_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cci1_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               cci2: cci@ac17000 {
+                       compatible = "qcom,sm8550-cci", "qcom,msm8996-cci";
+                       reg = <0 0x0ac17000 0 0x1000>;
+                       interrupts = <GIC_SPI 428 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CCI_2_CLK>;
+                       clock-names = "camnoc_axi",
+                                     "cpas_ahb",
+                                     "cci";
+                       pinctrl-0 = <&cci2_0_default &cci2_1_default>;
+                       pinctrl-1 = <&cci2_0_sleep &cci2_1_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cci2_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       cci2_i2c1: i2c-bus@1 {
+                               reg = <1>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
                camcc: clock-controller@ade0000 {
                        compatible = "qcom,sm8550-camcc";
                        reg = <0 0x0ade0000 0 0x20000>;
                        gpio-ranges = <&tlmm 0 0 211>;
                        wakeup-parent = <&pdc>;
 
+                       cci0_0_default: cci0-0-default-state {
+                               sda-pins {
+                                       pins = "gpio110";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio111";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+                       };
+
+                       cci0_0_sleep: cci0-0-sleep-state {
+                               sda-pins {
+                                       pins = "gpio110";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio111";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       cci0_1_default: cci0-1-default-state {
+                               sda-pins {
+                                       pins = "gpio112";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio113";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+                       };
+
+                       cci0_1_sleep: cci0-1-sleep-state {
+                               sda-pins {
+                                       pins = "gpio112";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio113";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       cci1_0_default: cci1-0-default-state {
+                               sda-pins {
+                                       pins = "gpio114";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio115";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+                       };
+
+                       cci1_0_sleep: cci1-0-sleep-state {
+                               sda-pins {
+                                       pins = "gpio114";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio115";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       cci2_0_default: cci2-0-default-state {
+                               sda-pins {
+                                       pins = "gpio74";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio75";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+                       };
+
+                       cci2_0_sleep: cci2-0-sleep-state {
+                               sda-pins {
+                                       pins = "gpio74";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio75";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       cci2_1_default: cci2-1-default-state {
+                               sda-pins {
+                                       pins = "gpio0";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio1";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+                       };
+
+                       cci2_1_sleep: cci2-1-sleep-state {
+                               sda-pins {
+                                       pins = "gpio0";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio1";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+                       };
+
                        hub_i2c0_data_clk: hub-i2c0-data-clk-state {
                                /* SDA, SCL */
                                pins = "gpio16", "gpio17";
index 591e6ab9bf5b3df1582ec5ca287c9524f82527f9..127c7aacd4fc31d06356a4919f68446b48f107a1 100644 (file)
                compatible = "qcom,wcn7850-pmu";
 
                pinctrl-names = "default";
-               pinctrl-0 = <&wlan_en>;
+               pinctrl-0 = <&wlan_en>, <&bt_default>;
 
                wlan-enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
-               /*
-                * TODO Add bt-enable-gpios once the Bluetooth driver is
-                * converted to using the power sequencer.
-                */
+               bt-enable-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
 
                vdd-supply = <&vreg_s4i_0p85>;
                vddio-supply = <&vreg_l15b_1p8>;
        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>;
+               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>;
 
                max-speed = <3200000>;
-
-               enable-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
-               swctrl-gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>;
-
-               pinctrl-0 = <&bt_default>;
-               pinctrl-names = "default";
        };
 };
 
index b0d7927b708f1d01877c9177da5e02180a333029..8ca0d28eba9bd050bb09a11ac267d77a8439a954 100644 (file)
                compatible = "qcom,wcn7850-pmu";
 
                pinctrl-names = "default";
-               pinctrl-0 = <&wlan_en>;
+               pinctrl-0 = <&wlan_en>, <&bt_default>;
 
                wlan-enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
-               /*
-                * TODO Add bt-enable-gpios once the Bluetooth driver is
-                * converted to using the power sequencer.
-                */
+               bt-enable-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
 
                vdd-supply = <&vreg_s4i_0p85>;
                vddio-supply = <&vreg_l15b_1p8>;
        bluetooth {
                compatible = "qcom,wcn7850-bt";
 
-               clocks = <&rpmhcc RPMH_RF_CLK1>;
-
-               vddio-supply = <&vreg_l3c_1p2>;
-               vddaon-supply = <&vreg_l15b_1p8>;
-               vdddig-supply = <&vreg_s3c_0p9>;
-               vddrfa0p8-supply = <&vreg_s3c_0p9>;
-               vddrfa1p2-supply = <&vreg_s1c_1p2>;
-               vddrfa1p9-supply = <&vreg_s6c_1p8>;
+               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>;
 
                max-speed = <3200000>;
-
-               enable-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
-               swctrl-gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>;
-
-               pinctrl-0 = <&bt_default>;
-               pinctrl-names = "default";
        };
 };
 
index 9d9bbb9aca64456fa8e6eee0aad6bd3524dfca8d..01ac3769ffa62ffb83c5c51878e2823e1982eb67 100644 (file)
                        #power-domain-cells = <1>;
                };
 
+               cci0: cci@ac15000 {
+                       compatible = "qcom,sm8650-cci", "qcom,msm8996-cci";
+                       reg = <0 0x0ac15000 0 0x1000>;
+                       interrupts = <GIC_SPI 426 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_NRT_CLK>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CCI_0_CLK>;
+                       clock-names = "camnoc_axi",
+                                     "cpas_ahb",
+                                     "cci";
+                       pinctrl-0 = <&cci0_0_default &cci0_1_default>;
+                       pinctrl-1 = <&cci0_0_sleep &cci0_1_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cci0_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       cci0_i2c1: i2c-bus@1 {
+                               reg = <1>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               cci1: cci@ac16000 {
+                       compatible = "qcom,sm8650-cci", "qcom,msm8996-cci";
+                       reg = <0 0x0ac16000 0 0x1000>;
+                       interrupts = <GIC_SPI 427 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_NRT_CLK>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CCI_1_CLK>;
+                       clock-names = "camnoc_axi",
+                                     "cpas_ahb",
+                                     "cci";
+                       pinctrl-0 = <&cci1_0_default &cci1_1_default>;
+                       pinctrl-1 = <&cci1_0_sleep &cci1_1_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cci1_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       cci1_i2c1: i2c-bus@1 {
+                               reg = <1>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               cci2: cci@ac17000 {
+                       compatible = "qcom,sm8650-cci", "qcom,msm8996-cci";
+                       reg = <0 0x0ac17000 0 0x1000>;
+                       interrupts = <GIC_SPI 428 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_NRT_CLK>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CCI_2_CLK>;
+                       clock-names = "camnoc_axi",
+                                     "cpas_ahb",
+                                     "cci";
+                       pinctrl-0 = <&cci2_0_default &cci2_1_default>;
+                       pinctrl-1 = <&cci2_0_sleep &cci2_1_sleep>;
+                       pinctrl-names = "default", "sleep";
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cci2_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       cci2_i2c1: i2c-bus@1 {
+                               reg = <1>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
                camcc: clock-controller@ade0000 {
                        compatible = "qcom,sm8650-camcc";
                        reg = <0 0x0ade0000 0 0x20000>;
 
                        wakeup-parent = <&pdc>;
 
+                       cci0_0_default: cci0-0-default-state {
+                               sda-pins {
+                                       pins = "gpio113";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio114";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+                       };
+
+                       cci0_0_sleep: cci0-0-sleep-state {
+                               sda-pins {
+                                       pins = "gpio113";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio114";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       cci0_1_default: cci0-1-default-state {
+                               sda-pins {
+                                       pins = "gpio115";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio116";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+                       };
+
+                       cci0_1_sleep: cci0-1-sleep-state {
+                               sda-pins {
+                                       pins = "gpio115";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio116";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       cci1_0_default: cci1-0-default-state {
+                               sda-pins {
+                                       pins = "gpio117";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio118";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+                       };
+
+                       cci1_0_sleep: cci1-0-sleep-state {
+                               sda-pins {
+                                       pins = "gpio117";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio118";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       cci1_1_default: cci1-1-default-state {
+                               sda-pins {
+                                       pins = "gpio12";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio13";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+                       };
+
+                       cci1_1_sleep: cci1-1-sleep-state {
+                               sda-pins {
+                                       pins = "gpio12";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio13";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       cci2_0_default: cci2-0-default-state {
+                               sda-pins {
+                                       pins = "gpio112";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio153";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+                       };
+
+                       cci2_0_sleep: cci2-0-sleep-state {
+                               sda-pins {
+                                       pins = "gpio112";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio153";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+                       };
+
+                       cci2_1_default: cci2-1-default-state {
+                               sda-pins {
+                                       pins = "gpio119";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio120";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-up = <2200>;
+                               };
+                       };
+
+                       cci2_1_sleep: cci2-1-sleep-state {
+                               sda-pins {
+                                       pins = "gpio119";
+                                       function = "cci_i2c_sda";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               scl-pins {
+                                       pins = "gpio120";
+                                       function = "cci_i2c_scl";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+                       };
+
                        hub_i2c0_data_clk: hub-i2c0-data-clk-state {
                                /* SDA, SCL */
                                pins = "gpio64", "gpio65";
diff --git a/src/arm64/qcom/x1e78100-lenovo-thinkpad-t14s.dts b/src/arm64/qcom/x1e78100-lenovo-thinkpad-t14s.dts
new file mode 100644 (file)
index 0000000..fdde988
--- /dev/null
@@ -0,0 +1,809 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2024, Linaro Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "x1e80100.dtsi"
+#include "x1e80100-pmics.dtsi"
+
+/ {
+       model = "Lenovo ThinkPad T14s Gen 6";
+       compatible = "lenovo,thinkpad-t14s", "qcom,x1e78100", "qcom,x1e80100";
+       chassis-type = "laptop";
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&hall_int_n_default>;
+               pinctrl-names = "default";
+
+               switch-lid {
+                       gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       wakeup-source;
+                       wakeup-event-action = <EV_ACT_DEASSERTED>;
+               };
+       };
+
+       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>;
+
+               /* Display-adjacent 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>;
+                                       };
+                               };
+                       };
+               };
+
+               /* User-adjacent 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>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       reserved-memory {
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       size = <0x0 0x8000000>;
+                       reusable;
+                       linux,cma-default;
+               };
+       };
+
+       vreg_edp_3p3: regulator-edp-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_EDP_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&edp_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_nvme: regulator-nvme {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_NVME_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&nvme_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vph_pwr: regulator-vph-pwr {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&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 = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4b_1p8: ldo4 {
+                       regulator-name = "vreg_l4b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p8: ldo6 {
+                       regulator-name = "vreg_l6b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_3p0: ldo8 {
+                       regulator-name = "vreg_l8b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_2p9: ldo9 {
+                       regulator-name = "vreg_l9b_2p9";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10b_1p8: ldo10 {
+                       regulator-name = "vreg_l10b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b_1p2: ldo12 {
+                       regulator-name = "vreg_l12b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b_3p0: ldo13 {
+                       regulator-name = "vreg_l13b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b_3p0: ldo14 {
+                       regulator-name = "vreg_l14b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15b_1p8: ldo15 {
+                       regulator-name = "vreg_l15b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17b_2p5: ldo17 {
+                       regulator-name = "vreg_l17b_2p5";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <2504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-l1-supply = <&vreg_s5j_1p2>;
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s4-supply = <&vph_pwr>;
+
+               vreg_s4c_1p8: smps4 {
+                       regulator-name = "vreg_s4c_1p8";
+                       regulator-min-microvolt = <1856000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1c_1p2: ldo1 {
+                       regulator-name = "vreg_l1c_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c_0p8: ldo2 {
+                       regulator-name = "vreg_l2c_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_0p8: ldo3 {
+                       regulator-name = "vreg_l3c_0p8";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "d";
+
+               vdd-l1-supply = <&vreg_s1f_0p7>;
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s4c_1p8>;
+               vdd-s1-supply = <&vph_pwr>;
+
+               vreg_l1d_0p8: ldo1 {
+                       regulator-name = "vreg_l1d_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2d_0p9: ldo2 {
+                       regulator-name = "vreg_l2d_0p9";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3d_1p8: ldo3 {
+                       regulator-name = "vreg_l3d_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s5j_1p2>;
+
+               vreg_l2e_0p8: ldo2 {
+                       regulator-name = "vreg_l2e_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3e_1p2: ldo3 {
+                       regulator-name = "vreg_l3e_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-4 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "f";
+
+               vdd-l1-supply = <&vreg_s5j_1p2>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s5j_1p2>;
+               vdd-s1-supply = <&vph_pwr>;
+
+               vreg_s1f_0p7: smps1 {
+                       regulator-name = "vreg_s1f_0p7";
+                       regulator-min-microvolt = <700000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-6 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "i";
+
+               vdd-l1-supply = <&vreg_s4c_1p8>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+
+               vreg_l1i_1p8: ldo1 {
+                       regulator-name = "vreg_l1i_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2i_1p2: ldo2 {
+                       regulator-name = "vreg_l2i_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3i_0p8: ldo3 {
+                       regulator-name = "vreg_l3i_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-7 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "j";
+
+               vdd-l1-supply = <&vreg_s1f_0p7>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s5-supply = <&vph_pwr>;
+
+               vreg_s5j_1p2: smps5 {
+                       regulator-name = "vreg_s5j_1p2";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1j_0p8: ldo1 {
+                       regulator-name = "vreg_l1j_0p8";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2j_1p2: ldo2 {
+                       regulator-name = "vreg_l2j_1p2";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1256000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3j_0p8: ldo3 {
+                       regulator-name = "vreg_l3j_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/x1e80100/LENOVO/21N1/qcdxkmsuc8380.mbn";
+       };
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       /* ELAN06E2 or ELAN06E3 */
+       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;
+       };
+
+       /* TODO: second-sourced SYNA8022 or SYNA8024 touchpad @ 0x2c */
+
+       /* ELAN06F1 or SYNA06F2 */
+       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";
+
+       /* ILIT2911 or GTCH1563 */
+       touchscreen@10 {
+               compatible = "hid-over-i2c";
+               reg = <0x10>;
+
+               hid-descr-addr = <0x1>;
+               interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&ts0_default>;
+               pinctrl-names = "default";
+       };
+
+       /* TODO: second-sourced touchscreen @ 0x41 */
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dp3 {
+       compatible = "qcom,x1e80100-dp";
+       /delete-property/ #sound-dai-cells;
+
+       status = "okay";
+
+       aux-bus {
+               panel {
+                       compatible = "edp-panel";
+                       enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
+                       power-supply = <&vreg_edp_3p3>;
+
+                       pinctrl-0 = <&edp_bl_en>;
+                       pinctrl-names = "default";
+
+                       port {
+                               edp_panel_in: endpoint {
+                                       remote-endpoint = <&mdss_dp3_out>;
+                               };
+                       };
+               };
+       };
+
+       ports {
+               port@1 {
+                       reg = <1>;
+
+                       mdss_dp3_out: endpoint {
+                               data-lanes = <0 1 2 3>;
+                               link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+                               remote-endpoint = <&edp_panel_in>;
+                       };
+               };
+       };
+};
+
+&mdss_dp3_phy {
+       vdda-phy-supply = <&vreg_l3j_0p8>;
+       vdda-pll-supply = <&vreg_l2j_1p2>;
+
+       status = "okay";
+};
+
+&pcie4 {
+       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";
+};
+
+&pmc8380_3_gpios {
+       edp_bl_en: edp-bl-en-state {
+               pins = "gpio4";
+               function = "normal";
+               power-source = <1>;
+               input-disable;
+               output-enable;
+       };
+};
+
+&qupv3_0 {
+       status = "okay";
+};
+
+&qupv3_1 {
+       status = "okay";
+};
+
+&qupv3_2 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/x1e80100/LENOVO/21N1/qcadsp8380.mbn",
+                       "qcom/x1e80100/LENOVO/21N1/adsp_dtbs.elf";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/x1e80100/LENOVO/21N1/qccdsp8380.mbn",
+                       "qcom/x1e80100/LENOVO/21N1/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>;
+};
+
+&tlmm {
+       gpio-reserved-ranges = <34 2>, /* Unused */
+                              <44 4>, /* SPI (TPM) */
+                              <72 2>, /* Secure EC I2C connection (?) */
+                              <238 1>; /* UFS Reset */
+
+       tpad_default: tpad-default-state {
+               pins = "gpio3";
+               function = "gpio";
+               bias-pull-up;
+       };
+
+       nvme_reg_en: nvme-reg-en-state {
+               pins = "gpio18";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       ts0_default: ts0-default-state {
+               reset-n-pins {
+                       pins = "gpio48";
+                       function = "gpio";
+                       output-high;
+                       drive-strength = <16>;
+               };
+
+               int-n-pins {
+                       pins = "gpio51";
+                       function = "gpio";
+                       bias-disable;
+               };
+       };
+
+       kybd_default: kybd-default-state {
+               pins = "gpio67";
+               function = "gpio";
+               bias-disable;
+       };
+
+       edp_reg_en: edp-reg-en-state {
+               pins = "gpio70";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       hall_int_n_default: hall-int-n-state {
+               pins = "gpio92";
+               function = "gpio";
+               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;
+       };
+};
+
+&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>;
+
+       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>;
+
+       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 9caa14dda5855254f13f1d1ed999d9e665952e61..fb4a48a1e2a8a5f3a8ca8a265f7333a3c6a520bb 100644 (file)
 
                pinctrl-0 = <&nvme_reg_en>;
                pinctrl-names = "default";
+
+               regulator-boot-on;
        };
 };
 
        vdd3-supply = <&vreg_l14b_3p0>;
 };
 
-&smb2360_2 {
-       status = "disabled";
-};
-
 &tlmm {
        gpio-reserved-ranges = <34 2>, /* Unused */
                               <44 4>, /* SPI (TPM) */
index e17ab8251e2a550d74ee0f899da89f5cd8531c32..c6e0356ed9a2a209859556413d50d6408121ad30 100644 (file)
@@ -6,6 +6,8 @@
 /dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
 #include "x1e80100.dtsi"
                stdout-path = "serial0:115200n8";
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&hall_int_n_default>;
+               pinctrl-names = "default";
+
+               switch-lid {
+                       gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       wakeup-source;
+                       wakeup-event-action = <EV_ACT_DEASSERTED>;
+               };
+       };
+
        pmic-glink {
                compatible = "qcom,x1e80100-pmic-glink",
                             "qcom,sm8550-pmic-glink",
                compatible = "qcom,x1e80100-sndcard";
                model = "X1E80100-CRD";
                audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT",
-                               "TwitterLeft IN", "WSA WSA_SPK2 OUT",
+                               "TweeterLeft IN", "WSA WSA_SPK2 OUT",
                                "WooferRight IN", "WSA2 WSA_SPK2 OUT",
-                               "TwitterRight IN", "WSA2 WSA_SPK2 OUT",
+                               "TweeterRight IN", "WSA2 WSA_SPK2 OUT",
                                "IN1_HPHL", "HPHL_OUT",
                                "IN2_HPHR", "HPHR_OUT",
                                "AMIC2", "MIC BIAS2",
 
                pinctrl-names = "default";
                pinctrl-0 = <&nvme_reg_en>;
+
+               regulator-boot-on;
+       };
+
+       vreg_wwan: regulator-wwan {
+               compatible = "regulator-fixed";
+
+               regulator-name = "SDX_VPH_PWR";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 221 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&wwan_sw_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
        };
 };
 
        status = "okay";
 };
 
+&pcie5 {
+       perst-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+
+       vddpe-3v3-supply = <&vreg_wwan>;
+
+       pinctrl-0 = <&pcie5_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie5_phy {
+       vdda-phy-supply = <&vreg_l3i_0p8>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
+
+       status = "okay";
+};
+
 &pcie6a {
        perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
        wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
        vdd3-supply = <&vreg_l14b_3p0>;
 };
 
+&smb2360_2 {
+       status = "okay";
+};
+
 &smb2360_2_eusb2_repeater {
        vdd18-supply = <&vreg_l3d_1p8>;
        vdd3-supply = <&vreg_l8b_3p0>;
                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 */
                reg = <0 1>;
                reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
                #sound-dai-cells = <0>;
-               sound-name-prefix = "TwitterLeft";
+               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>;
        };
 };
 
                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 */
                reg = <0 1>;
                reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
                #sound-dai-cells = <0>;
-               sound-name-prefix = "TwitterRight";
+               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>;
        };
 };
 
                bias-disable;
        };
 
+       hall_int_n_default: hall-int-n-state {
+               pins = "gpio92";
+               function = "gpio";
+               bias-disable;
+       };
+
        kybd_default: kybd-default-state {
                pins = "gpio67";
                function = "gpio";
                };
        };
 
+       pcie5_default: pcie5-default-state {
+               clkreq-n-pins {
+                       pins = "gpio150";
+                       function = "pcie5_clk";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               perst-n-pins {
+                       pins = "gpio149";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               wake-n-pins {
+                       pins = "gpio151";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
        pcie6a_default: pcie6a-default-state {
                clkreq-n-pins {
                        pins = "gpio153";
                bias-disable;
                output-low;
        };
+
+       wwan_sw_en: wwan-sw-en-state {
+               pins = "gpio221";
+               function = "gpio";
+               drive-strength = <4>;
+               bias-disable;
+       };
 };
 
 &uart21 {
index 1943bdbfb8c00c0bc14dce9d8a7b98dc0c06633f..0cdaff9c8cf0fce8616fbeeeb153913a726b5b5f 100644 (file)
                pinctrl-0 = <&edp_reg_en>;
                pinctrl-names = "default";
 
-               regulator-always-on;
                regulator-boot-on;
        };
 
 
                pinctrl-0 = <&nvme_reg_en>;
                pinctrl-names = "default";
+
+               regulator-boot-on;
        };
 };
 
 
        aux-bus {
                panel {
-                       compatible = "edp-panel";
+                       compatible = "samsung,atna45dc02", "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>;
        status = "okay";
 };
 
+&pmc8380_3_gpios {
+       edp_bl_en: edp-bl-en-state {
+               pins = "gpio4";
+               function = "normal";
+               power-source = <0>;
+               input-disable;
+               output-enable;
+       };
+};
+
 &qupv3_0 {
        status = "okay";
 };
        vdd3-supply = <&vreg_l14b_3p0>;
 };
 
+&smb2360_2 {
+       status = "okay";
+};
+
 &smb2360_2_eusb2_repeater {
        vdd18-supply = <&vreg_l3d_1p8>;
        vdd3-supply = <&vreg_l8b_3p0>;
diff --git a/src/arm64/qcom/x1e80100-microsoft-romulus.dtsi b/src/arm64/qcom/x1e80100-microsoft-romulus.dtsi
new file mode 100644 (file)
index 0000000..cdb4017
--- /dev/null
@@ -0,0 +1,837 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "x1e80100.dtsi"
+#include "x1e80100-pmics.dtsi"
+
+/ {
+       aliases {
+               serial0 = &uart2;
+               i2c0 = &i2c0;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
+               i2c7 = &i2c7;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pmk8550_pwm 0 5000000>;
+               enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
+               /* TODO: power-supply? */
+
+               pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>;
+               pinctrl-names = "default";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&cam_indicator_en>;
+
+               led-camera-indicator {
+                       label = "white:camera-indicator";
+                       function = LED_FUNCTION_INDICATOR;
+                       color = <LED_COLOR_ID_WHITE>;
+                       gpios = <&tlmm 225 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "none";
+                       default-state = "off";
+                       /* Reuse as a panic indicator until we get a "camera on" trigger */
+                       panic-indicator;
+               };
+       };
+
+       pmic-glink {
+               compatible = "qcom,x1e80100-pmic-glink",
+                            "qcom,sm8550-pmic-glink",
+                            "qcom,pmic-glink";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
+                                   <&tlmm 123 GPIO_ACTIVE_HIGH>;
+
+               /* Left-side 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>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       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-boot-on;
+       };
+
+       vreg_nvme: regulator-nvme {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_NVME_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&nvme_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+};
+
+&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>;
+               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>;
+               vdd-l15-supply = <&vreg_s4c>;
+               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: ldo1 {
+                       regulator-name = "vreg_l1b";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b: ldo2 {
+                       regulator-name = "vreg_l2b";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4b: ldo4 {
+                       regulator-name = "vreg_l4b";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5b: ldo5 {
+                       regulator-name = "vreg_l5b";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b: ldo6 {
+                       regulator-name = "vreg_l6b";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b: ldo7 {
+                       regulator-name = "vreg_l7b";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b: ldo8 {
+                       regulator-name = "vreg_l8b";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b: ldo9 {
+                       regulator-name = "vreg_l9b";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10b: ldo10 {
+                       regulator-name = "vreg_l10b";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b: ldo12 {
+                       regulator-name = "vreg_l12b";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b: ldo13 {
+                       regulator-name = "vreg_l13b";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b: ldo14 {
+                       regulator-name = "vreg_l14b";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15b: ldo15 {
+                       regulator-name = "vreg_l15b";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16b: ldo16 {
+                       regulator-name = "vreg_l16b";
+                       regulator-min-microvolt = <2912000>;
+                       regulator-max-microvolt = <2912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17b: ldo17 {
+                       regulator-name = "vreg_l17b";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <2504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-l1-supply = <&vreg_s5j>;
+               vdd-l2-supply = <&vreg_s1f>;
+               vdd-l3-supply = <&vreg_s1f>;
+               vdd-s4-supply = <&vph_pwr>;
+
+               vreg_s4c: smps4 {
+                       regulator-name = "vreg_s4c";
+                       regulator-min-microvolt = <1856000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1c: ldo1 {
+                       regulator-name = "vreg_l1c";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c: ldo2 {
+                       regulator-name = "vreg_l2c";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c: ldo3 {
+                       regulator-name = "vreg_l3c";
+                       regulator-min-microvolt = <912000>;
+                       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>;
+               vdd-l2-supply = <&vreg_s1f>;
+               vdd-l3-supply = <&vreg_s4c>;
+               vdd-s1-supply = <&vph_pwr>;
+
+               vreg_l1d: ldo1 {
+                       regulator-name = "vreg_l1d";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2d: ldo2 {
+                       regulator-name = "vreg_l2d";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3d: ldo3 {
+                       regulator-name = "vreg_l3d";
+                       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>;
+               vdd-l3-supply = <&vreg_s5j>;
+
+               vreg_l2e: ldo2 {
+                       regulator-name = "vreg_l2e";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3e: ldo3 {
+                       regulator-name = "vreg_l3e";
+                       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>;
+               vdd-l2-supply = <&vreg_s5j>;
+               vdd-l3-supply = <&vreg_s5j>;
+               vdd-s1-supply = <&vph_pwr>;
+
+               vreg_s1f: smps1 {
+                       regulator-name = "vreg_s1f";
+                       regulator-min-microvolt = <700000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1f: ldo1 {
+                       regulator-name = "vreg_l1f";
+                       regulator-min-microvolt = <1024000>;
+                       regulator-max-microvolt = <1024000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2f: ldo2 {
+                       regulator-name = "vreg_l2f";
+                       regulator-min-microvolt = <1024000>;
+                       regulator-max-microvolt = <1024000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3f: ldo3 {
+                       regulator-name = "vreg_l3f";
+                       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>;
+               vdd-l2-supply = <&vreg_s5j>;
+               vdd-l3-supply = <&vreg_s1f>;
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+
+               vreg_s1i: smps1 {
+                       regulator-name = "vreg_s1i";
+                       regulator-min-microvolt = <900000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2i: smps2 {
+                       regulator-name = "vreg_s2i";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1i: ldo1 {
+                       regulator-name = "vreg_l1i";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2i: ldo2 {
+                       regulator-name = "vreg_l2i";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3i: ldo3 {
+                       regulator-name = "vreg_l3i";
+                       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>;
+               vdd-l2-supply = <&vreg_s5j>;
+               vdd-l3-supply = <&vreg_s1f>;
+               vdd-s5-supply = <&vph_pwr>;
+
+               vreg_s5j: smps5 {
+                       regulator-name = "vreg_s5j";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1j: ldo1 {
+                       regulator-name = "vreg_l1j";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2j: ldo2 {
+                       regulator-name = "vreg_l2j";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1256000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3j: ldo3 {
+                       regulator-name = "vreg_l3j";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               memory-region = <&gpu_microcode_mem>;
+               firmware-name = "qcom/x1e80100/microsoft/qcdxkmsuc8380.mbn";
+       };
+};
+
+&i2c0 {
+       clock-frequency = <100000>;
+
+       status = "okay";
+
+       /* Something @39, @3e, @44 */
+};
+
+&i2c3 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       /* PS8830 USB retimer @8 */
+};
+
+&i2c4 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       /* Something @18, @2c, @2e */
+};
+
+&i2c5 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       /* Something @4f */
+};
+
+&i2c7 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       /* PS8830 USB retimer @8 */
+};
+
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dp3 {
+       compatible = "qcom,x1e80100-dp";
+       /delete-property/ #sound-dai-cells;
+
+       status = "okay";
+
+       aux-bus {
+               panel {
+                       compatible = "edp-panel";
+
+                       backlight = <&backlight>;
+                       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>;
+       vdda-pll-supply = <&vreg_l2j>;
+
+       status = "okay";
+};
+
+&pcie4 {
+       status = "okay";
+};
+
+&pcie4_phy {
+       vdda-phy-supply = <&vreg_l3i>;
+       vdda-pll-supply = <&vreg_l3e>;
+
+       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>;
+       vdda-pll-supply = <&vreg_l2j>;
+
+       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;
+       };
+};
+
+&pmk8550_pwm {
+       status = "okay";
+};
+
+&pmk8550_gpios {
+       edp_bl_pwm: edp-bl-pwm-state {
+               pins = "gpio5";
+               function = "func3";
+       };
+};
+
+&qupv3_0 {
+       status = "okay";
+};
+
+&qupv3_1 {
+       status = "okay";
+};
+
+&qupv3_2 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/x1e80100/microsoft/Romulus/qcadsp8380.mbn",
+                       "qcom/x1e80100/microsoft/Romulus/adsp_dtb.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/x1e80100/microsoft/Romulus/qccdsp8380.mbn",
+                       "qcom/x1e80100/microsoft/Romulus/cdsp_dtb.mbn";
+
+       status = "okay";
+};
+
+&smb2360_0_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d>;
+       vdd3-supply = <&vreg_l2b>;
+};
+
+&smb2360_1_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d>;
+       vdd3-supply = <&vreg_l14b>;
+};
+
+&tlmm {
+       gpio-reserved-ranges = <44 4>, /* SPI (TPM) */
+                              <238 1>; /* UFS Reset */
+
+       nvme_reg_en: nvme-reg-en-state {
+               pins = "gpio18";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       edp_reg_en: edp-reg-en-state {
+               pins = "gpio70";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       ssam_state: ssam-state-state {
+               pins = "gpio91";
+               function = "gpio";
+               bias-disable;
+       };
+
+       pcie6a_default: pcie6a-default-state {
+               perst-n-pins {
+                       pins = "gpio152";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               clkreq-n-pins {
+                       pins = "gpio153";
+                       function = "pcie6a_clk";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               wake-n-pins {
+                       pins = "gpio154";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       cam_indicator_en: cam-indicator-en-state {
+               pins = "gpio225";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
+
+&uart2 {
+       status = "okay";
+
+       embedded-controller {
+               compatible = "microsoft,surface-sam";
+
+               interrupts-extended = <&tlmm 91 IRQ_TYPE_EDGE_RISING>;
+
+               current-speed = <4000000>;
+
+               pinctrl-0 = <&ssam_state>;
+               pinctrl-names = "default";
+       };
+};
+
+&usb_1_ss0_hsphy {
+       vdd-supply = <&vreg_l3j>;
+       vdda12-supply = <&vreg_l2j>;
+
+       phys = <&smb2360_0_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_1_ss0_qmpphy {
+       vdda-phy-supply = <&vreg_l3e>;
+       vdda-pll-supply = <&vreg_l1j>;
+
+       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>;
+       vdda12-supply = <&vreg_l2j>;
+
+       phys = <&smb2360_1_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_1_ss1_qmpphy {
+       vdda-phy-supply = <&vreg_l3e>;
+       vdda-pll-supply = <&vreg_l2d>;
+
+       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>;
+};
diff --git a/src/arm64/qcom/x1e80100-microsoft-romulus13.dts b/src/arm64/qcom/x1e80100-microsoft-romulus13.dts
new file mode 100644 (file)
index 0000000..eb7580d
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "x1e80100-microsoft-romulus.dtsi"
+
+/ {
+       model = "Microsoft Surface Laptop 7 (13.8 inch)";
+       compatible = "microsoft,romulus13", "qcom,x1e80100";
+};
diff --git a/src/arm64/qcom/x1e80100-microsoft-romulus15.dts b/src/arm64/qcom/x1e80100-microsoft-romulus15.dts
new file mode 100644 (file)
index 0000000..4751ad9
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "x1e80100-microsoft-romulus.dtsi"
+
+/ {
+       model = "Microsoft Surface Laptop 7 (15 inch)";
+       compatible = "microsoft,romulus15", "qcom,x1e80100";
+};
index e34e70922cd3355ecb36a9f4d0c44dadafdb5380..5b54ee79f048e3208cbcd6f91e0cec073420fe63 100644 (file)
                        interrupt-controller;
                        #interrupt-cells = <2>;
                };
+
+               pmk8550_pwm: pwm {
+                       compatible = "qcom,pmk8550-pwm";
+
+                       #pwm-cells = <2>;
+
+                       status = "disabled";
+               };
        };
 
        /* PMC8380C */
                #address-cells = <1>;
                #size-cells = <0>;
 
+               status = "disabled";
+
                smb2360_2_eusb2_repeater: phy@fd00 {
                        compatible = "qcom,smb2360-eusb2-repeater";
                        reg = <0xfd00>;
index 8098e6730ae52f0e29cc25b756aa4ea47e3c930e..5ef030c60abe2998d093ee60a6754a90cd5aaf72 100644 (file)
 
                pinctrl-names = "default";
                pinctrl-0 = <&nvme_reg_en>;
+
+               regulator-boot-on;
        };
 };
 
        status = "okay";
 };
 
-&smb2360_3 {
-       status = "okay";
-};
-
 &smb2360_0_eusb2_repeater {
        vdd18-supply = <&vreg_l3d_1p8>;
        vdd3-supply = <&vreg_l2b_3p0>;
        vdd3-supply = <&vreg_l14b_3p0>;
 };
 
+&smb2360_2 {
+       status = "okay";
+};
+
 &smb2360_2_eusb2_repeater {
        vdd18-supply = <&vreg_l3d_1p8>;
        vdd3-supply = <&vreg_l8b_3p0>;
 };
 
+&smb2360_3 {
+       status = "okay";
+};
+
 &swr0 {
        pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
        pinctrl-names = "default";
                sound-name-prefix = "SpkrLeft";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
                vdd-io-supply = <&vreg_l12b_1p2>;
+               qcom,port-mapping = <1 2 3 7 10 13>;
        };
 
        /* WSA8845, Right Speaker */
                sound-name-prefix = "SpkrRight";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
                vdd-io-supply = <&vreg_l12b_1p2>;
+               qcom,port-mapping = <4 5 6 7 11 13>;
        };
 };
 
index cd732ef88cd8e0a775863e2ceb0e8ca5dcd43cd9..0510abc0edf0ffa5766430e550a64bd2e18873d2 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/clock/qcom,sc8280xp-lpasscc.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>
                                 <&sleep_clk>,
                                 <0>,
                                 <&pcie4_phy>,
-                                <0>,
+                                <&pcie5_phy>,
                                 <&pcie6a_phy>,
                                 <0>,
                                 <&usb_1_ss0_qmpphy QMP_USB43DP_USB3_PIPE_CLK>,
 
                        i2c0: i2c@b80000 {
                                compatible = "qcom,geni-i2c";
-                               reg = <0 0xb80000 0 0x4000>;
+                               reg = <0 0x00b80000 0 0x4000>;
 
                                interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
 
                                status = "disabled";
                        };
 
+                       uart2: serial@b88000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00b88000 0 0x4000>;
+
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               clock-names = "se";
+
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&qup_uart2_default>;
+                               pinctrl-names = "default";
+
+                               status = "disabled";
+                       };
+
                        spi2: spi@b88000 {
                                compatible = "qcom,geni-spi";
-                               reg = <0 0xb88000 0 0x4000>;
+                               reg = <0 0x00b88000 0 0x4000>;
 
                                interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
 
 
                        i2c4: i2c@b90000 {
                                compatible = "qcom,geni-i2c";
-                               reg = <0 0xb90000 0 0x4000>;
+                               reg = <0 0x00b90000 0 0x4000>;
 
                                interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
 
                        #clock-cells = <1>;
                        #phy-cells = <1>;
 
+                       orientation-switch;
+
                        status = "disabled";
 
                        ports {
                        #clock-cells = <1>;
                        #phy-cells = <1>;
 
+                       orientation-switch;
+
                        status = "disabled";
 
                        ports {
                        #clock-cells = <1>;
                        #phy-cells = <1>;
 
+                       orientation-switch;
+
                        status = "disabled";
 
                        ports {
 
                cnoc_main: interconnect@1500000 {
                        compatible = "qcom,x1e80100-cnoc-main";
-                       reg = <0 0x1500000 0 0x14400>;
+                       reg = <0 0x01500000 0 0x14400>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                config_noc: interconnect@1600000 {
                        compatible = "qcom,x1e80100-cnoc-cfg";
-                       reg = <0 0x1600000 0 0x6600>;
+                       reg = <0 0x01600000 0 0x6600>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                system_noc: interconnect@1680000 {
                        compatible = "qcom,x1e80100-system-noc";
-                       reg = <0 0x1680000 0 0x1c080>;
+                       reg = <0 0x01680000 0 0x1c080>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                pcie_south_anoc: interconnect@16c0000 {
                        compatible = "qcom,x1e80100-pcie-south-anoc";
-                       reg = <0 0x16c0000 0 0xd080>;
+                       reg = <0 0x016c0000 0 0xd080>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                pcie_center_anoc: interconnect@16d0000 {
                        compatible = "qcom,x1e80100-pcie-center-anoc";
-                       reg = <0 0x16d0000 0 0x7000>;
+                       reg = <0 0x016d0000 0 0x7000>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                aggre1_noc: interconnect@16e0000 {
                        compatible = "qcom,x1e80100-aggre1-noc";
-                       reg = <0 0x16E0000 0 0x14400>;
+                       reg = <0 0x016e0000 0 0x14400>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                aggre2_noc: interconnect@1700000 {
                        compatible = "qcom,x1e80100-aggre2-noc";
-                       reg = <0 0x1700000 0 0x1c400>;
+                       reg = <0 0x01700000 0 0x1c400>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                pcie_north_anoc: interconnect@1740000 {
                        compatible = "qcom,x1e80100-pcie-north-anoc";
-                       reg = <0 0x1740000 0 0x9080>;
+                       reg = <0 0x01740000 0 0x9080>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                usb_center_anoc: interconnect@1750000 {
                        compatible = "qcom,x1e80100-usb-center-anoc";
-                       reg = <0 0x1750000 0 0x8800>;
+                       reg = <0 0x01750000 0 0x8800>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                usb_north_anoc: interconnect@1760000 {
                        compatible = "qcom,x1e80100-usb-north-anoc";
-                       reg = <0 0x1760000 0 0x7080>;
+                       reg = <0 0x01760000 0 0x7080>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                usb_south_anoc: interconnect@1770000 {
                        compatible = "qcom,x1e80100-usb-south-anoc";
-                       reg = <0 0x1770000 0 0xf080>;
+                       reg = <0 0x01770000 0 0xf080>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                mmss_noc: interconnect@1780000 {
                        compatible = "qcom,x1e80100-mmss-noc";
-                       reg = <0 0x1780000 0 0x5B800>;
+                       reg = <0 0x01780000 0 0x5B800>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
                                    "mhi";
                        #address-cells = <3>;
                        #size-cells = <2>;
-                       ranges = <0x01000000 0 0x00000000 0 0x70200000 0 0x100000>,
-                                <0x02000000 0 0x70300000 0 0x70300000 0 0x3d00000>;
-                       bus-range = <0 0xff>;
+                       ranges = <0x01000000 0x0 0x00000000 0x0 0x70200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x70300000 0x0 0x70300000 0x0 0x1d00000>;
+                       bus-range = <0x00 0xff>;
 
                        dma-coherent;
 
                        linux,pci-domain = <6>;
-                       num-lanes = <2>;
+                       num-lanes = <4>;
 
                        interrupts = <GIC_SPI 773 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 774 IRQ_TYPE_LEVEL_HIGH>,
                };
 
                pcie6a_phy: phy@1bfc000 {
-                       compatible = "qcom,x1e80100-qmp-gen4x2-pcie-phy";
-                       reg = <0 0x01bfc000 0 0x2000>;
+                       compatible = "qcom,x1e80100-qmp-gen4x4-pcie-phy";
+                       reg = <0 0x01bfc000 0 0x2000>,
+                             <0 0x01bfe000 0 0x2000>;
 
                        clocks = <&gcc GCC_PCIE_6A_PHY_AUX_CLK>,
                                 <&gcc GCC_PCIE_6A_CFG_AHB_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&tcsr TCSR_PCIE_4L_CLKREF_EN>,
                                 <&gcc GCC_PCIE_6A_PHY_RCHNG_CLK>,
-                                <&gcc GCC_PCIE_6A_PIPE_CLK>;
+                                <&gcc GCC_PCIE_6A_PIPE_CLK>,
+                                <&gcc GCC_PCIE_6A_PIPEDIV2_CLK>;
                        clock-names = "aux",
                                      "cfg_ahb",
                                      "ref",
                                      "rchng",
-                                     "pipe";
+                                     "pipe",
+                                     "pipediv2";
 
                        resets = <&gcc GCC_PCIE_6A_PHY_BCR>,
                                 <&gcc GCC_PCIE_6A_NOCSR_COM_PHY_BCR>;
 
                        power-domains = <&gcc GCC_PCIE_6_PHY_GDSC>;
 
+                       qcom,4ln-config-sel = <&tcsr 0x1a000 0>;
+
                        #clock-cells = <0>;
                        clock-output-names = "pcie6a_pipe_clk";
 
                        status = "disabled";
                };
 
+               pcie5: pci@1c00000 {
+                       device_type = "pci";
+                       compatible = "qcom,pcie-x1e80100";
+                       reg = <0 0x01c00000 0 0x3000>,
+                             <0 0x7e000000 0 0xf1d>,
+                             <0 0x7e000f40 0 0xa8>,
+                             <0 0x7e001000 0 0x1000>,
+                             <0 0x7e100000 0 0x100000>,
+                             <0 0x01c03000 0 0x1000>;
+                       reg-names = "parf",
+                                   "dbi",
+                                   "elbi",
+                                   "atu",
+                                   "config",
+                                   "mhi";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x01000000 0x0 0x00000000 0x0 0x7e200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x7e300000 0x0 0x7e300000 0x0 0x1d00000>;
+                       bus-range = <0x00 0xff>;
+
+                       dma-coherent;
+
+                       linux,pci-domain = <5>;
+                       num-lanes = <2>;
+
+                       interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi0",
+                                         "msi1",
+                                         "msi2",
+                                         "msi3",
+                                         "msi4",
+                                         "msi5",
+                                         "msi6",
+                                         "msi7";
+
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 0 0 70 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &intc 0 0 0 71 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &intc 0 0 0 72 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &intc 0 0 0 73 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_PCIE_5_AUX_CLK>,
+                                <&gcc GCC_PCIE_5_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_5_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_5_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_5_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_CFG_NOC_PCIE_ANOC_NORTH_AHB_CLK>,
+                                <&gcc GCC_CNOC_PCIE_NORTH_SF_AXI_CLK>;
+                       clock-names = "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "noc_aggr",
+                                     "cnoc_sf_axi";
+
+                       assigned-clocks = <&gcc GCC_PCIE_5_AUX_CLK>;
+                       assigned-clock-rates = <19200000>;
+
+                       interconnects = <&pcie_north_anoc MASTER_PCIE_5 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &cnoc_main SLAVE_PCIE_5 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "pcie-mem",
+                                            "cpu-pcie";
+
+                       resets = <&gcc GCC_PCIE_5_BCR>,
+                                <&gcc GCC_PCIE_5_LINK_DOWN_BCR>;
+                       reset-names = "pci",
+                                     "link_down";
+
+                       power-domains = <&gcc GCC_PCIE_5_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       phys = <&pcie5_phy>;
+                       phy-names = "pciephy";
+
+                       status = "disabled";
+               };
+
+               pcie5_phy: phy@1c06000 {
+                       compatible = "qcom,x1e80100-qmp-gen3x2-pcie-phy";
+                       reg = <0 0x01c06000 0 0x2000>;
+
+                       clocks = <&gcc GCC_PCIE_5_AUX_CLK>,
+                                <&gcc GCC_PCIE_5_CFG_AHB_CLK>,
+                                <&tcsr TCSR_PCIE_2L_5_CLKREF_EN>,
+                                <&gcc GCC_PCIE_5_PHY_RCHNG_CLK>,
+                                <&gcc GCC_PCIE_5_PIPE_CLK>,
+                                <&gcc GCC_PCIE_5_PIPEDIV2_CLK>;
+                       clock-names = "aux",
+                                     "cfg_ahb",
+                                     "ref",
+                                     "rchng",
+                                     "pipe",
+                                     "pipediv2";
+
+                       resets = <&gcc GCC_PCIE_5_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE_5_PHY_RCHNG_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       power-domains = <&gcc GCC_PCIE_5_PHY_GDSC>;
+
+                       #clock-cells = <0>;
+                       clock-output-names = "pcie5_pipe_clk";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
                pcie4: pci@1c08000 {
                        device_type = "pci";
                        compatible = "qcom,pcie-x1e80100";
                                    "mhi";
                        #address-cells = <3>;
                        #size-cells = <2>;
-                       ranges = <0x01000000 0 0x00000000 0 0x7c200000 0 0x100000>,
-                                <0x02000000 0 0x7c300000 0 0x7c300000 0 0x3d00000>;
+                       ranges = <0x01000000 0x0 0x00000000 0x0 0x7c200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x7c300000 0x0 0x7c300000 0x0 0x1d00000>;
                        bus-range = <0x00 0xff>;
 
                        dma-coherent;
                        assigned-clocks = <&gcc GCC_PCIE_4_AUX_CLK>;
                        assigned-clock-rates = <19200000>;
 
-                       interconnects = <&pcie_south_anoc MASTER_PCIE_4 QCOM_ICC_TAG_ALWAYS
+                       interconnects = <&pcie_north_anoc MASTER_PCIE_4 QCOM_ICC_TAG_ALWAYS
                                         &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
                                        <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
                                         &cnoc_main SLAVE_PCIE_4 QCOM_ICC_TAG_ALWAYS>;
 
                        clocks = <&gcc GCC_PCIE_4_AUX_CLK>,
                                 <&gcc GCC_PCIE_4_CFG_AHB_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&tcsr TCSR_PCIE_2L_4_CLKREF_EN>,
                                 <&gcc GCC_PCIE_4_PHY_RCHNG_CLK>,
-                                <&gcc GCC_PCIE_4_PIPE_CLK>;
+                                <&gcc GCC_PCIE_4_PIPE_CLK>,
+                                <&gcc GCC_PCIE_4_PIPEDIV2_CLK>;
                        clock-names = "aux",
                                      "cfg_ahb",
                                      "ref",
                                      "rchng",
-                                     "pipe";
+                                     "pipe",
+                                     "pipediv2";
 
                        resets = <&gcc GCC_PCIE_4_PHY_BCR>;
                        reset-names = "phy";
 
                nsp_noc: interconnect@320c0000 {
                        compatible = "qcom,x1e80100-nsp-noc";
-                       reg = <0 0x320C0000 0 0xE080>;
+                       reg = <0 0x320C0000 0 0xe080>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                        pinctrl-0 = <&wsa2_swr_active>;
                        pinctrl-names = "default";
+                       resets = <&lpass_audiocc LPASS_AUDIO_SWR_WSA2_CGCR>;
+                       reset-names = "swr_audio_cgcr";
 
                        qcom,din-ports = <4>;
                        qcom,dout-ports = <9>;
                        pinctrl-0 = <&rx_swr_active>;
                        pinctrl-names = "default";
 
+                       resets = <&lpass_audiocc LPASS_AUDIO_SWR_RX_CGCR>;
+                       reset-names = "swr_audio_cgcr";
                        qcom,din-ports = <1>;
                        qcom,dout-ports = <11>;
 
 
                        pinctrl-0 = <&wsa_swr_active>;
                        pinctrl-names = "default";
+                       resets = <&lpass_audiocc LPASS_AUDIO_SWR_WSA_CGCR>;
+                       reset-names = "swr_audio_cgcr";
 
                        qcom,din-ports = <4>;
                        qcom,dout-ports = <9>;
                        status = "disabled";
                };
 
+               lpass_audiocc: clock-controller@6b6c000 {
+                       compatible = "qcom,x1e80100-lpassaudiocc", "qcom,sc8280xp-lpassaudiocc";
+                       reg = <0 0x06b6c000 0 0x1000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };
+
                swr2: soundwire@6d30000 {
                        compatible = "qcom,soundwire-v2.0.0";
                        reg = <0 0x06d30000 0 0x10000>;
                                     <GIC_SPI 520 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "core", "wakeup";
                        label = "TX";
+                       resets = <&lpasscc LPASS_AUDIO_SWR_TX_CGCR>;
+                       reset-names = "swr_audio_cgcr";
 
                        pinctrl-0 = <&tx_swr_active>;
                        pinctrl-names = "default";
                        };
                };
 
+               lpasscc: clock-controller@6ea0000 {
+                       compatible = "qcom,x1e80100-lpasscc", "qcom,sc8280xp-lpasscc";
+                       reg = <0 0x06ea0000 0 0x12000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };
+
                lpass_ag_noc: interconnect@7e40000 {
                        compatible = "qcom,x1e80100-lpass-ag-noc";
-                       reg = <0 0x7e40000 0 0xE080>;
+                       reg = <0 0x07e40000 0 0xe080>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                lpass_lpiaon_noc: interconnect@7400000 {
                        compatible = "qcom,x1e80100-lpass-lpiaon-noc";
-                       reg = <0 0x7400000 0 0x19080>;
+                       reg = <0 0x07400000 0 0x19080>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                lpass_lpicx_noc: interconnect@7430000 {
                        compatible = "qcom,x1e80100-lpass-lpicx-noc";
-                       reg = <0 0x7430000 0 0x3A200>;
+                       reg = <0 0x07430000 0 0x3A200>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
                        status = "disabled";
                };
 
+               usb_mp_hsphy0: phy@88e1000 {
+                       compatible = "qcom,x1e80100-snps-eusb2-phy",
+                                    "qcom,sm8550-snps-eusb2-phy";
+                       reg = <0 0x088e1000 0 0x154>;
+                       #phy-cells = <0>;
+
+                       clocks = <&tcsr TCSR_USB3_MP0_CLKREF_EN>;
+                       clock-names = "ref";
+
+                       resets = <&gcc GCC_QUSB2PHY_HS0_MP_BCR>;
+
+                       status = "disabled";
+               };
+
+               usb_mp_hsphy1: phy@88e2000 {
+                       compatible = "qcom,x1e80100-snps-eusb2-phy",
+                                    "qcom,sm8550-snps-eusb2-phy";
+                       reg = <0 0x088e2000 0 0x154>;
+                       #phy-cells = <0>;
+
+                       clocks = <&tcsr TCSR_USB3_MP1_CLKREF_EN>;
+                       clock-names = "ref";
+
+                       resets = <&gcc GCC_QUSB2PHY_HS1_MP_BCR>;
+
+                       status = "disabled";
+               };
+
+               usb_mp_qmpphy0: phy@88e3000 {
+                       compatible = "qcom,x1e80100-qmp-usb3-uni-phy";
+                       reg = <0 0x088e3000 0 0x2000>;
+
+                       clocks = <&gcc GCC_USB3_MP_PHY_AUX_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_MP_PHY_PIPE_0_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "com_aux",
+                                     "pipe";
+
+                       resets = <&gcc GCC_USB3_UNIPHY_MP0_BCR>,
+                                <&gcc GCC_USB3UNIPHY_PHY_MP0_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
+
+                       power-domains = <&gcc GCC_USB3_MP_SS0_PHY_GDSC>;
+
+                       #clock-cells = <0>;
+                       clock-output-names = "usb_mp_phy0_pipe_clk";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               usb_mp_qmpphy1: phy@88e5000 {
+                       compatible = "qcom,x1e80100-qmp-usb3-uni-phy";
+                       reg = <0 0x088e5000 0 0x2000>;
+
+                       clocks = <&gcc GCC_USB3_MP_PHY_AUX_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_MP_PHY_PIPE_1_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "com_aux",
+                                     "pipe";
+
+                       resets = <&gcc GCC_USB3_UNIPHY_MP1_BCR>,
+                                <&gcc GCC_USB3UNIPHY_PHY_MP1_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
+
+                       power-domains = <&gcc GCC_USB3_MP_SS1_PHY_GDSC>;
+
+                       #clock-cells = <0>;
+                       clock-output-names = "usb_mp_phy1_pipe_clk";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
                usb_1_ss2: usb@a0f8800 {
                        compatible = "qcom,x1e80100-dwc3", "qcom,dwc3";
                        reg = <0 0x0a0f8800 0 0x400>;
                        };
                };
 
+               usb_mp: usb@a4f8800 {
+                       compatible = "qcom,x1e80100-dwc3-mp", "qcom,dwc3";
+                       reg = <0 0x0a4f8800 0 0x400>;
+
+                       clocks = <&gcc GCC_CFG_NOC_USB3_MP_AXI_CLK>,
+                                <&gcc GCC_USB30_MP_MASTER_CLK>,
+                                <&gcc GCC_AGGRE_USB3_MP_AXI_CLK>,
+                                <&gcc GCC_USB30_MP_SLEEP_CLK>,
+                                <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>,
+                                <&gcc GCC_AGGRE_USB_NOC_AXI_CLK>,
+                                <&gcc GCC_AGGRE_NOC_USB_NORTH_AXI_CLK>,
+                                <&gcc GCC_AGGRE_NOC_USB_SOUTH_AXI_CLK>,
+                                <&gcc GCC_SYS_NOC_USB_AXI_CLK>;
+                       clock-names = "cfg_noc",
+                                     "core",
+                                     "iface",
+                                     "sleep",
+                                     "mock_utmi",
+                                     "noc_aggr",
+                                     "noc_aggr_north",
+                                     "noc_aggr_south",
+                                     "noc_sys";
+
+                       assigned-clocks = <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_MP_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>,
+                                              <200000000>;
+
+                       interrupts-extended = <&intc GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 52 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 51 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 54 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 53 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 55 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 56 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pwr_event_1", "pwr_event_2",
+                                         "hs_phy_1",    "hs_phy_2",
+                                         "dp_hs_phy_1", "dm_hs_phy_1",
+                                         "dp_hs_phy_2", "dm_hs_phy_2",
+                                         "ss_phy_1",    "ss_phy_2";
+
+                       power-domains = <&gcc GCC_USB30_MP_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       resets = <&gcc GCC_USB30_MP_BCR>;
+
+                       interconnects = <&usb_north_anoc MASTER_USB3_MP QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &config_noc SLAVE_USB3_MP QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "usb-ddr",
+                                            "apps-usb";
+
+                       wakeup-source;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       usb_mp_dwc3: usb@a400000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a400000 0 0xcd00>;
+
+                               interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
+
+                               iommus = <&apps_smmu 0x1400 0x0>;
+
+                               phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>,
+                                      <&usb_mp_hsphy1>, <&usb_mp_qmpphy1>;
+                               phy-names = "usb2-0", "usb3-0",
+                                           "usb2-1", "usb3-1";
+                               dr_mode = "host";
+
+                               snps,dis_u2_susphy_quirk;
+                               snps,dis_enblslpm_quirk;
+                               snps,usb3_lpm_capable;
+
+                               dma-coherent;
+                       };
+               };
+
                usb_1_ss0: usb@a6f8800 {
                        compatible = "qcom,x1e80100-dwc3", "qcom,dwc3";
                        reg = <0 0x0a6f8800 0 0x400>;
 
                        mdss_dp0: displayport-controller@ae90000 {
                                compatible = "qcom,x1e80100-dp";
-                               reg = <0 0xae90000 0 0x200>,
-                                     <0 0xae90200 0 0x200>,
-                                     <0 0xae90400 0 0x600>,
-                                     <0 0xae91000 0 0x400>,
-                                     <0 0xae91400 0 0x400>;
+                               reg = <0 0x0ae90000 0 0x200>,
+                                     <0 0x0ae90200 0 0x200>,
+                                     <0 0x0ae90400 0 0x600>,
+                                     <0 0x0ae91000 0 0x400>,
+                                     <0 0x0ae91400 0 0x400>;
 
                                interrupts-extended = <&mdss 12>;
 
 
                        mdss_dp1: displayport-controller@ae98000 {
                                compatible = "qcom,x1e80100-dp";
-                               reg = <0 0xae98000 0 0x200>,
-                                     <0 0xae98200 0 0x200>,
-                                     <0 0xae98400 0 0x600>,
-                                     <0 0xae99000 0 0x400>,
-                                     <0 0xae99400 0 0x400>;
+                               reg = <0 0x0ae98000 0 0x200>,
+                                     <0 0x0ae98200 0 0x200>,
+                                     <0 0x0ae98400 0 0x600>,
+                                     <0 0x0ae99000 0 0x400>,
+                                     <0 0x0ae99400 0 0x400>;
 
                                interrupts-extended = <&mdss 13>;
 
 
                        mdss_dp2: displayport-controller@ae9a000 {
                                compatible = "qcom,x1e80100-dp";
-                               reg = <0 0xae9a000 0 0x200>,
-                                     <0 0xae9a200 0 0x200>,
-                                     <0 0xae9a400 0 0x600>,
-                                     <0 0xae9b000 0 0x400>,
-                                     <0 0xae9b400 0 0x400>;
+                               reg = <0 0x0ae9a000 0 0x200>,
+                                     <0 0x0ae9a200 0 0x200>,
+                                     <0 0x0ae9a400 0 0x600>,
+                                     <0 0x0ae9b000 0 0x400>,
+                                     <0 0x0ae9b400 0 0x400>;
 
                                interrupts-extended = <&mdss 14>;
 
 
                                assigned-clocks = <&dispcc DISP_CC_MDSS_DPTX2_LINK_CLK_SRC>,
                                                  <&dispcc DISP_CC_MDSS_DPTX2_PIXEL0_CLK_SRC>;
-                               assigned-clock-parents = <&mdss_dp2_phy 0>,
-                                                        <&mdss_dp2_phy 1>;
+                               assigned-clock-parents = <&usb_1_ss2_qmpphy QMP_USB43DP_DP_LINK_CLK>,
+                                                        <&usb_1_ss2_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
 
                                operating-points-v2 = <&mdss_dp2_opp_table>;
 
                                power-domains = <&rpmhpd RPMHPD_MMCX>;
 
-                               phys = <&mdss_dp2_phy>;
+                               phys = <&usb_1_ss2_qmpphy QMP_USB43DP_DP_PHY>;
                                phy-names = "dp";
 
                                #sound-dai-cells = <0>;
 
                        mdss_dp3: displayport-controller@aea0000 {
                                compatible = "qcom,x1e80100-dp";
-                               reg = <0 0xaea0000 0 0x200>,
-                                     <0 0xaea0200 0 0x200>,
-                                     <0 0xaea0400 0 0x600>,
-                                     <0 0xaea1000 0 0x400>,
-                                     <0 0xaea1400 0 0x400>;
+                               reg = <0 0x0aea0000 0 0x200>,
+                                     <0 0x0aea0200 0 0x200>,
+                                     <0 0x0aea0400 0 0x600>,
+                                     <0 0x0aea1000 0 0x400>,
+                                     <0 0x0aea1400 0 0x400>;
 
                                interrupts-extended = <&mdss 15>;
 
                                 <&usb_1_ss0_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>,
                                 <&usb_1_ss1_qmpphy QMP_USB43DP_DP_LINK_CLK>, /* dp1 */
                                 <&usb_1_ss1_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>,
-                                <&mdss_dp2_phy 0>, /* dp2 */
-                                <&mdss_dp2_phy 1>,
+                                <&usb_1_ss2_qmpphy QMP_USB43DP_DP_LINK_CLK>, /* dp2 */
+                                <&usb_1_ss2_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>,
                                 <&mdss_dp3_phy 0>, /* dp3 */
                                 <&mdss_dp3_phy 1>;
                        power-domains = <&rpmhpd RPMHPD_MMCX>;
                        #clock-cells = <0>;
                };
 
+               sram@c3f0000 {
+                       compatible = "qcom,rpmh-stats";
+                       reg = <0 0x0c3f0000 0 0x400>;
+               };
+
                spmi: arbiter@c400000 {
                        compatible = "qcom,x1e80100-spmi-pmic-arb";
                        reg = <0 0x0c400000 0 0x3000>,
                                bias-disable;
                        };
 
+                       qup_uart2_default: qup-uart2-default-state {
+                               cts-pins {
+                                       pins = "gpio8";
+                                       function = "qup0_se2";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+
+                               rts-pins {
+                                       pins = "gpio9";
+                                       function = "qup0_se2";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+
+                               tx-pins {
+                                       pins = "gpio10";
+                                       function = "qup0_se2";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+
+                               rx-pins {
+                                       pins = "gpio11";
+                                       function = "qup0_se2";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+                       };
+
                        qup_uart21_default: qup-uart21-default-state {
-                               /* TX, RX */
-                               pins = "gpio86", "gpio87";
-                               function = "qup2_se5";
-                               drive-strength = <2>;
-                               bias-disable;
+                               tx-pins {
+                                       pins = "gpio86";
+                                       function = "qup2_se5";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+
+                               rx-pins {
+                                       pins = "gpio87";
+                                       function = "qup2_se5";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
                        };
                };
 
                              <0 0x25a00000 0 0x200000>,
                              <0 0x25c00000 0 0x200000>,
                              <0 0x25e00000 0 0x200000>,
-                             <0 0x26000000 0 0x200000>;
+                             <0 0x26000000 0 0x200000>,
+                             <0 0x26200000 0 0x200000>;
                        reg-names = "llcc0_base",
                                    "llcc1_base",
                                    "llcc2_base",
                                    "llcc5_base",
                                    "llcc6_base",
                                    "llcc7_base",
-                                   "llcc_broadcast_base";
+                                   "llcc_broadcast_base",
+                                   "llcc_broadcast_and_base";
                        interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
                };
 
index 1dbf9d56c68da8c69290be395c727c22675c2a8d..f065ee90649a4a5e45e80fa8463faec5654479ed 100644 (file)
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
+                       iommus = <&ipmmu_ds1 32>;
                        status = "disabled";
                };
 
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>;
                        resets = <&cpg 313>;
+                       iommus = <&ipmmu_ds1 33>;
                        status = "disabled";
                };
 
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>;
                        resets = <&cpg 312>;
+                       iommus = <&ipmmu_ds1 34>;
                        status = "disabled";
                };
 
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>;
                        resets = <&cpg 311>;
+                       iommus = <&ipmmu_ds1 35>;
                        status = "disabled";
                };
 
                        clocks = <&cpg CPG_MOD 615>;
                        power-domains = <&sysc R8A774A1_PD_A3VC>;
                        resets = <&cpg 615>;
+                       iommus = <&ipmmu_vc0 16>;
                };
 
                fcpvb0: fcp@fe96f000 {
                        clocks = <&cpg CPG_MOD 607>;
                        power-domains = <&sysc R8A774A1_PD_A3VC>;
                        resets = <&cpg 607>;
+                       iommus = <&ipmmu_vi0 5>;
                };
 
                fcpvd0: fcp@fea27000 {
index 10f22c52e79ecfca710b4d57c3430ddf536f641d..117cb6950f91f9341df0cb1994722d1ad9810944 100644 (file)
                        resets = <&cpg 502>;
                        #dma-cells = <1>;
                        dma-channels = <16>;
+                       iommus = <&ipmmu_mp 0>, <&ipmmu_mp 1>,
+                                <&ipmmu_mp 2>, <&ipmmu_mp 3>,
+                                <&ipmmu_mp 4>, <&ipmmu_mp 5>,
+                                <&ipmmu_mp 6>, <&ipmmu_mp 7>,
+                                <&ipmmu_mp 8>, <&ipmmu_mp 9>,
+                                <&ipmmu_mp 10>, <&ipmmu_mp 11>,
+                                <&ipmmu_mp 12>, <&ipmmu_mp 13>,
+                                <&ipmmu_mp 14>, <&ipmmu_mp 15>;
                };
 
                audma1: dma-controller@ec720000 {
                        resets = <&cpg 501>;
                        #dma-cells = <1>;
                        dma-channels = <16>;
+                       iommus = <&ipmmu_mp 16>, <&ipmmu_mp 17>,
+                                <&ipmmu_mp 18>, <&ipmmu_mp 19>,
+                                <&ipmmu_mp 20>, <&ipmmu_mp 21>,
+                                <&ipmmu_mp 22>, <&ipmmu_mp 23>,
+                                <&ipmmu_mp 24>, <&ipmmu_mp 25>,
+                                <&ipmmu_mp 26>, <&ipmmu_mp 27>,
+                                <&ipmmu_mp 28>, <&ipmmu_mp 29>,
+                                <&ipmmu_mp 30>, <&ipmmu_mp 31>;
                };
 
                xhci0: usb@ee000000 {
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
+                       iommus = <&ipmmu_ds1 32>;
                        status = "disabled";
                };
 
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
                        resets = <&cpg 313>;
+                       iommus = <&ipmmu_ds1 33>;
                        status = "disabled";
                };
 
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
                        resets = <&cpg 312>;
+                       iommus = <&ipmmu_ds1 34>;
                        status = "disabled";
                };
 
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
                        resets = <&cpg 311>;
+                       iommus = <&ipmmu_ds1 35>;
                        status = "disabled";
                };
 
                        clocks = <&cpg CPG_MOD 815>;
                        power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
                        resets = <&cpg 815>;
+                       iommus = <&ipmmu_hc 2>;
                        status = "disabled";
                };
 
                        clocks = <&cpg CPG_MOD 615>;
                        power-domains = <&sysc R8A774B1_PD_A3VP>;
                        resets = <&cpg 615>;
+                       iommus = <&ipmmu_vp0 0>;
                };
 
                vspb: vsp@fe960000 {
                        clocks = <&cpg CPG_MOD 607>;
                        power-domains = <&sysc R8A774B1_PD_A3VP>;
                        resets = <&cpg 607>;
+                       iommus = <&ipmmu_vp0 5>;
                };
 
                fcpvd0: fcp@fea27000 {
                        clocks = <&cpg CPG_MOD 603>;
                        power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
                        resets = <&cpg 603>;
+                       iommus = <&ipmmu_vi0 8>;
                };
 
                fcpvd1: fcp@fea2f000 {
                        clocks = <&cpg CPG_MOD 602>;
                        power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
                        resets = <&cpg 602>;
+                       iommus = <&ipmmu_vi0 9>;
                };
 
                fcpvi0: fcp@fe9af000 {
                        clocks = <&cpg CPG_MOD 611>;
                        power-domains = <&sysc R8A774B1_PD_A3VP>;
                        resets = <&cpg 611>;
+                       iommus = <&ipmmu_vp0 8>;
                };
 
                csi20: csi2@fea80000 {
index 3e2af50ce7c64bef9f2373f8ab196ef2cbea7b31..7655d5e3a034166ecb20adde2cac9adcf58996e6 100644 (file)
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
+                       iommus = <&ipmmu_ds1 32>;
                        status = "disabled";
                };
 
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
                        resets = <&cpg 313>;
+                       iommus = <&ipmmu_ds1 33>;
                        status = "disabled";
                };
 
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
                        resets = <&cpg 311>;
+                       iommus = <&ipmmu_ds1 35>;
                        status = "disabled";
                };
 
index 1eeb4c7b4c4b92824ab0c13b7ee58c9c0b50df7a..f845ca604de0696ef8667e52b125f278a7c60085 100644 (file)
                        clocks = <&cpg CPG_MOD 615>;
                        power-domains = <&sysc R8A774E1_PD_A3VP>;
                        resets = <&cpg 615>;
+                       iommus = <&ipmmu_vp0 0>;
                };
 
                fcpf1: fcp@fe951000 {
                        clocks = <&cpg CPG_MOD 614>;
                        power-domains = <&sysc R8A774E1_PD_A3VP>;
                        resets = <&cpg 614>;
+                       iommus = <&ipmmu_vp1 1>;
                };
 
                fcpvb0: fcp@fe96f000 {
                        clocks = <&cpg CPG_MOD 607>;
                        power-domains = <&sysc R8A774E1_PD_A3VP>;
                        resets = <&cpg 607>;
+                       iommus = <&ipmmu_vp0 5>;
                };
 
                fcpvb1: fcp@fe92f000 {
                        clocks = <&cpg CPG_MOD 606>;
                        power-domains = <&sysc R8A774E1_PD_A3VP>;
                        resets = <&cpg 606>;
+                       iommus = <&ipmmu_vp1 7>;
                };
 
                fcpvi0: fcp@fe9af000 {
                        clocks = <&cpg CPG_MOD 611>;
                        power-domains = <&sysc R8A774E1_PD_A3VP>;
                        resets = <&cpg 611>;
+                       iommus = <&ipmmu_vp0 8>;
                };
 
                fcpvi1: fcp@fe9bf000 {
                        clocks = <&cpg CPG_MOD 610>;
                        power-domains = <&sysc R8A774E1_PD_A3VP>;
                        resets = <&cpg 610>;
+                       iommus = <&ipmmu_vp1 9>;
                };
 
                fcpvd0: fcp@fea27000 {
                        clocks = <&cpg CPG_MOD 603>;
                        power-domains = <&sysc R8A774E1_PD_ALWAYS_ON>;
                        resets = <&cpg 603>;
+                       iommus = <&ipmmu_vi0 8>;
                };
 
                fcpvd1: fcp@fea2f000 {
                        clocks = <&cpg CPG_MOD 602>;
                        power-domains = <&sysc R8A774E1_PD_ALWAYS_ON>;
                        resets = <&cpg 602>;
+                       iommus = <&ipmmu_vi0 9>;
                };
 
                csi20: csi2@fea80000 {
index 1122c470b72f871581d678b4e670ea9f440a0ebe..ee80f52dc7cf456ab0af9560ed56810d1ffc2d48 100644 (file)
                        clocks = <&cpg CPG_MOD 615>;
                        power-domains = <&sysc R8A7796_PD_A3VC>;
                        resets = <&cpg 615>;
+                       iommus = <&ipmmu_vc0 16>;
                };
 
                fcpvb0: fcp@fe96f000 {
                        clocks = <&cpg CPG_MOD 607>;
                        power-domains = <&sysc R8A7796_PD_A3VC>;
                        resets = <&cpg 607>;
+                       iommus = <&ipmmu_vi0 5>;
                };
 
                fcpvi0: fcp@fe9af000 {
index bf1130af7de39ce05a0636ee24be86e96e8a9dcb..3b9066043a71e81f2565fa1aa033fb90c39f072e 100644 (file)
                        clocks = <&cpg CPG_MOD 615>;
                        power-domains = <&sysc R8A77961_PD_A3VC>;
                        resets = <&cpg 615>;
+                       iommus = <&ipmmu_vc0 16>;
                };
 
                fcpvb0: fcp@fe96f000 {
                        clocks = <&cpg CPG_MOD 607>;
                        power-domains = <&sysc R8A77961_PD_A3VC>;
                        resets = <&cpg 607>;
+                       iommus = <&ipmmu_vi0 5>;
                };
 
                fcpvi0: fcp@fe9af000 {
index f02d1547b881716abb6977225d66d15f1dd8ad6d..557bdf8fab179cf73335016143703ccea93aea9d 100644 (file)
                        resets = <&cpg 502>;
                        #dma-cells = <1>;
                        dma-channels = <16>;
+                       iommus = <&ipmmu_mp 0>, <&ipmmu_mp 1>,
+                                <&ipmmu_mp 2>, <&ipmmu_mp 3>,
+                                <&ipmmu_mp 4>, <&ipmmu_mp 5>,
+                                <&ipmmu_mp 6>, <&ipmmu_mp 7>,
+                                <&ipmmu_mp 8>, <&ipmmu_mp 9>,
+                                <&ipmmu_mp 10>, <&ipmmu_mp 11>,
+                                <&ipmmu_mp 12>, <&ipmmu_mp 13>,
+                                <&ipmmu_mp 14>, <&ipmmu_mp 15>;
                };
 
                audma1: dma-controller@ec720000 {
                        resets = <&cpg 501>;
                        #dma-cells = <1>;
                        dma-channels = <16>;
+                       iommus = <&ipmmu_mp 16>, <&ipmmu_mp 17>,
+                                <&ipmmu_mp 18>, <&ipmmu_mp 19>,
+                                <&ipmmu_mp 20>, <&ipmmu_mp 21>,
+                                <&ipmmu_mp 22>, <&ipmmu_mp 23>,
+                                <&ipmmu_mp 24>, <&ipmmu_mp 25>,
+                                <&ipmmu_mp 26>, <&ipmmu_mp 27>,
+                                <&ipmmu_mp 28>, <&ipmmu_mp 29>,
+                                <&ipmmu_mp 30>, <&ipmmu_mp 31>;
                };
 
                xhci0: usb@ee000000 {
                        clocks = <&cpg CPG_MOD 815>;
                        power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
                        resets = <&cpg 815>;
+                       iommus = <&ipmmu_hc 2>;
                        status = "disabled";
                };
 
                        clocks = <&cpg CPG_MOD 615>;
                        power-domains = <&sysc R8A77965_PD_A3VP>;
                        resets = <&cpg 615>;
+                       iommus = <&ipmmu_vp0 0>;
                };
 
                vspb: vsp@fe960000 {
                        clocks = <&cpg CPG_MOD 607>;
                        power-domains = <&sysc R8A77965_PD_A3VP>;
                        resets = <&cpg 607>;
+                       iommus = <&ipmmu_vp0 5>;
                };
 
                fcpvd0: fcp@fea27000 {
                        clocks = <&cpg CPG_MOD 603>;
                        power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
                        resets = <&cpg 603>;
+                       iommus = <&ipmmu_vi0 8>;
                };
 
                fcpvd1: fcp@fea2f000 {
                        clocks = <&cpg CPG_MOD 602>;
                        power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
                        resets = <&cpg 602>;
+                       iommus = <&ipmmu_vi0 9>;
                };
 
                fcpvi0: fcp@fe9af000 {
                        clocks = <&cpg CPG_MOD 611>;
                        power-domains = <&sysc R8A77965_PD_A3VP>;
                        resets = <&cpg 611>;
+                       iommus = <&ipmmu_vp0 8>;
                };
 
                cmm0: cmm@fea40000 {
index 64fb95b1c89ac63abf3bf7613ad6a92fa744d26e..38145fd6acf024d9e345210bdb6ec899f98bfcaa 100644 (file)
                        clocks = <&cpg CPG_MOD 603>;
                        power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
                        resets = <&cpg 603>;
+                       iommus = <&ipmmu_vi0 8>;
                };
 
                csi40: csi2@feaa0000 {
index 0c2b157036e75e36d9bf7b485cc66bc9a0fda5d5..55a6c622f873250fbc1fa50435faa7b38c13b6e9 100644 (file)
                        clocks = <&cpg CPG_MOD 813>;
                        power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
                        resets = <&cpg 813>;
+                       iommus = <&ipmmu_ds1 34>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        clocks = <&cpg CPG_MOD 603>;
                        power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
                        resets = <&cpg 603>;
+                       iommus = <&ipmmu_vi0 8>;
                };
 
                csi40: csi2@feaa0000 {
index d76347001cc13c65bfee5c160bb30f336dcb0cce..1f4ab27acc339895665e979f5fc4d5ae0939e6a4 100644 (file)
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_ds1 0>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_ds1 1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_ds1 2>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_ds1 3>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_ds1 4>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_ds1 11>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                };
 
                vin00: video@e6ef0000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef0000 0 0x1000>;
                        interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 730>;
                };
 
                vin01: video@e6ef1000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef1000 0 0x1000>;
                        interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 731>;
                };
 
                vin02: video@e6ef2000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef2000 0 0x1000>;
                        interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 800>;
                };
 
                vin03: video@e6ef3000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef3000 0 0x1000>;
                        interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 801>;
                };
 
                vin04: video@e6ef4000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef4000 0 0x1000>;
                        interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 802>;
                };
 
                vin05: video@e6ef5000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef5000 0 0x1000>;
                        interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 803>;
                };
 
                vin06: video@e6ef6000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef6000 0 0x1000>;
                        interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 804>;
                };
 
                vin07: video@e6ef7000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef7000 0 0x1000>;
                        interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 805>;
                };
 
                vin08: video@e6ef8000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef8000 0 0x1000>;
                        interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 806>;
                };
 
                vin09: video@e6ef9000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef9000 0 0x1000>;
                        interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 807>;
                };
 
                vin10: video@e6efa000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efa000 0 0x1000>;
                        interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 808>;
                };
 
                vin11: video@e6efb000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efb000 0 0x1000>;
                        interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 809>;
                };
 
                vin12: video@e6efc000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efc000 0 0x1000>;
                        interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 810>;
                };
 
                vin13: video@e6efd000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efd000 0 0x1000>;
                        interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 811>;
                };
 
                vin14: video@e6efe000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efe000 0 0x1000>;
                        interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 812>;
                };
 
                vin15: video@e6eff000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6eff000 0 0x1000>;
                        interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 813>;
                };
 
                vin16: video@e6ed0000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ed0000 0 0x1000>;
                        interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 814>;
                };
 
                vin17: video@e6ed1000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ed1000 0 0x1000>;
                        interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 815>;
                };
 
                vin18: video@e6ed2000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ed2000 0 0x1000>;
                        interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 816>;
                };
 
                vin19: video@e6ed3000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ed3000 0 0x1000>;
                        interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 817>;
                };
 
                vin20: video@e6ed4000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ed4000 0 0x1000>;
                        interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 818>;
                };
 
                vin21: video@e6ed5000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ed5000 0 0x1000>;
                        interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 819>;
                };
 
                vin22: video@e6ed6000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ed6000 0 0x1000>;
                        interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 820>;
                };
 
                vin23: video@e6ed7000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ed7000 0 0x1000>;
                        interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 821>;
                };
 
                vin24: video@e6ed8000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ed8000 0 0x1000>;
                        interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 822>;
                };
 
                vin25: video@e6ed9000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ed9000 0 0x1000>;
                        interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 823>;
                };
 
                vin26: video@e6eda000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6eda000 0 0x1000>;
                        interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 824>;
                };
 
                vin27: video@e6edb000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6edb000 0 0x1000>;
                        interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 825>;
                };
 
                vin28: video@e6edc000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6edc000 0 0x1000>;
                        interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 826>;
                };
 
                vin29: video@e6edd000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6edd000 0 0x1000>;
                        interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 827>;
                };
 
                vin30: video@e6ede000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ede000 0 0x1000>;
                        interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 828>;
                };
 
                vin31: video@e6edf000 {
-                       compatible = "renesas,vin-r8a779a0";
+                       compatible = "renesas,vin-r8a779a0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6edf000 0 0x1000>;
                        interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 829>;
                        resets = <&cpg 709>;
                        #dma-cells = <1>;
                        dma-channels = <16>;
+                       iommus = <&ipmmu_ds0 0>, <&ipmmu_ds0 1>,
+                                <&ipmmu_ds0 2>, <&ipmmu_ds0 3>,
+                                <&ipmmu_ds0 4>, <&ipmmu_ds0 5>,
+                                <&ipmmu_ds0 6>, <&ipmmu_ds0 7>,
+                                <&ipmmu_ds0 8>, <&ipmmu_ds0 9>,
+                                <&ipmmu_ds0 10>, <&ipmmu_ds0 11>,
+                                <&ipmmu_ds0 12>, <&ipmmu_ds0 13>,
+                                <&ipmmu_ds0 14>, <&ipmmu_ds0 15>;
                };
 
                dmac2: dma-controller@e7351000 {
                        resets = <&cpg 710>;
                        #dma-cells = <1>;
                        dma-channels = <8>;
+                       iommus = <&ipmmu_ds0 16>, <&ipmmu_ds0 17>,
+                                <&ipmmu_ds0 18>, <&ipmmu_ds0 19>,
+                                <&ipmmu_ds0 20>, <&ipmmu_ds0 21>,
+                                <&ipmmu_ds0 22>, <&ipmmu_ds0 23>;
                };
 
                mmc0: mmc@ee140000 {
                        clocks = <&cpg CPG_MOD 508>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                        resets = <&cpg 508>;
+                       iommus = <&ipmmu_vi1 6>;
                };
 
                fcpvd1: fcp@fea11000 {
                        clocks = <&cpg CPG_MOD 509>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                        resets = <&cpg 509>;
+                       iommus = <&ipmmu_vi1 7>;
                };
 
                vspd0: vsp@fea20000 {
                };
 
                isp0: isp@fed00000 {
-                       compatible = "renesas,r8a779a0-isp";
+                       compatible = "renesas,r8a779a0-isp",
+                                    "renesas,rcar-gen4-isp";
                        reg = <0 0xfed00000 0 0x10000>;
                        interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 612>;
                };
 
                isp1: isp@fed20000 {
-                       compatible = "renesas,r8a779a0-isp";
+                       compatible = "renesas,r8a779a0-isp",
+                                    "renesas,rcar-gen4-isp";
                        reg = <0 0xfed20000 0 0x10000>;
                        interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 613>;
                };
 
                isp2: isp@fed30000 {
-                       compatible = "renesas,r8a779a0-isp";
+                       compatible = "renesas,r8a779a0-isp",
+                                    "renesas,rcar-gen4-isp";
                        reg = <0 0xfed30000 0 0x10000>;
                        interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 614>;
                };
 
                isp3: isp@fed40000 {
-                       compatible = "renesas,r8a779a0-isp";
+                       compatible = "renesas,r8a779a0-isp",
+                                    "renesas,rcar-gen4-isp";
                        reg = <0 0xfed40000 0 0x10000>;
                        interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 615>;
index 53d1d4d8197af5dd701ddbb856286f2e3ef19dc5..12900ebd098b0b78d4bbd9040efc441a8b74d38c 100644 (file)
                clock-frequency = <0>;
        };
 
+       pcie0_clkref: pcie0-clkref {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board */
+               clock-frequency = <0>;
+       };
+
+       pcie1_clkref: pcie1-clkref {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board */
+               clock-frequency = <0>;
+       };
+
        pmu_a76 {
                compatible = "arm,cortex-a76-pmu";
                interrupts-extended = <&gic GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
                        status = "disabled";
                };
 
+               tsn0: ethernet@e6460000 {
+                       compatible = "renesas,r8a779g0-ethertsn", "renesas,rcar-gen4-ethertsn";
+                       reg = <0 0xe6460000 0 0x7000>,
+                             <0 0xe6449000 0 0x500>;
+                       reg-names = "tsnes", "gptp";
+                       interrupts = <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tx", "rx";
+                       clocks = <&cpg CPG_MOD 2723>;
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 2723>;
+                       status = "disabled";
+               };
+
                i2c0: i2c@e6500000 {
                        compatible = "renesas,i2c-r8a779g0",
                                     "renesas,rcar-gen4-i2c";
                        status = "disabled";
                };
 
+               pciec0: pcie@e65d0000 {
+                       compatible = "renesas,r8a779g0-pcie",
+                                    "renesas,rcar-gen4-pcie";
+                       reg = <0 0xe65d0000 0 0x1000>, <0 0xe65d2000 0 0x0800>,
+                             <0 0xe65d3000 0 0x2000>, <0 0xe65d5000 0 0x1200>,
+                             <0 0xe65d6200 0 0x0e00>, <0 0xe65d7000 0 0x0400>,
+                             <0 0xfe000000 0 0x400000>;
+                       reg-names = "dbi", "dbi2", "atu", "dma", "app", "phy", "config";
+                       interrupts = <GIC_SPI 449 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 450 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 451 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 455 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi", "dma", "sft_ce", "app";
+                       clocks = <&cpg CPG_MOD 624>, <&pcie0_clkref>;
+                       clock-names = "core", "ref";
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 624>;
+                       reset-names = "pwr";
+                       max-link-speed = <4>;
+                       num-lanes = <2>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       bus-range = <0x00 0xff>;
+                       device_type = "pci";
+                       ranges = <0x01000000 0 0x00000000 0 0xfe000000 0 0x00400000>,
+                                <0x02000000 0 0x30000000 0 0x30000000 0 0x10000000>;
+                       dma-ranges = <0x42000000 0 0x00000000 0 0x00000000 1 0x00000000>;
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 7>;
+                       interrupt-map = <0 0 0 1 &gic GIC_SPI 449 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &gic GIC_SPI 449 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &gic GIC_SPI 449 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &gic GIC_SPI 449 IRQ_TYPE_LEVEL_HIGH>;
+                       snps,enable-cdm-check;
+                       status = "disabled";
+               };
+
+               pciec1: pcie@e65d8000 {
+                       compatible = "renesas,r8a779g0-pcie",
+                                    "renesas,rcar-gen4-pcie";
+                       reg = <0 0xe65d8000 0 0x1000>, <0 0xe65da000 0 0x0800>,
+                             <0 0xe65db000 0 0x2000>, <0 0xe65dd000 0 0x1200>,
+                             <0 0xe65de200 0 0x0e00>, <0 0xe65df000 0 0x0400>,
+                             <0 0xee900000 0 0x400000>;
+                       reg-names = "dbi", "dbi2", "atu", "dma", "app", "phy", "config";
+                       interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi", "dma", "sft_ce", "app";
+                       clocks = <&cpg CPG_MOD 625>, <&pcie1_clkref>;
+                       clock-names = "core", "ref";
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 625>;
+                       reset-names = "pwr";
+                       max-link-speed = <4>;
+                       num-lanes = <2>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       bus-range = <0x00 0xff>;
+                       device_type = "pci";
+                       ranges = <0x01000000 0 0x00000000 0 0xee900000 0 0x00400000>,
+                                <0x02000000 0 0xc0000000 0 0xc0000000 0 0x10000000>;
+                       dma-ranges = <0x42000000 0 0x00000000 0 0x00000000 1 0x00000000>;
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 7>;
+                       interrupt-map = <0 0 0 1 &gic GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &gic GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &gic GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &gic GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>;
+                       snps,enable-cdm-check;
+                       status = "disabled";
+               };
+
+               pciec0_ep: pcie-ep@e65d0000 {
+                       compatible = "renesas,r8a779g0-pcie-ep",
+                                    "renesas,rcar-gen4-pcie-ep";
+                       reg = <0 0xe65d0000 0 0x2000>, <0 0xe65d2000 0 0x1000>,
+                             <0 0xe65d3000 0 0x2000>, <0 0xe65d5000 0 0x1200>,
+                             <0 0xe65d6200 0 0x0e00>, <0 0xe65d7000 0 0x0400>,
+                             <0 0xfe000000 0 0x400000>;
+                       reg-names = "dbi", "dbi2", "atu", "dma", "app", "phy", "addr_space";
+                       interrupts = <GIC_SPI 450 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 451 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 455 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dma", "sft_ce", "app";
+                       clocks = <&cpg CPG_MOD 624>, <&pcie0_clkref>;
+                       clock-names = "core", "ref";
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 624>;
+                       reset-names = "pwr";
+                       max-link-speed = <4>;
+                       num-lanes = <2>;
+                       max-functions = /bits/ 8 <2>;
+                       status = "disabled";
+               };
+
+               pciec1_ep: pcie-ep@e65d8000 {
+                       compatible = "renesas,r8a779g0-pcie-ep",
+                                    "renesas,rcar-gen4-pcie-ep";
+                       reg = <0 0xe65d8000 0 0x2000>, <0 0xe65da000 0 0x1000>,
+                             <0 0xe65db000 0 0x2000>, <0 0xe65dd000 0 0x1200>,
+                             <0 0xe65de200 0 0x0e00>, <0 0xe65df000 0 0x0400>,
+                             <0 0xee900000 0 0x400000>;
+                       reg-names = "dbi", "dbi2", "atu", "dma", "app", "phy", "addr_space";
+                       interrupts = <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dma", "sft_ce", "app";
+                       clocks = <&cpg CPG_MOD 625>, <&pcie1_clkref>;
+                       clock-names = "core", "ref";
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 625>;
+                       reset-names = "pwr";
+                       max-link-speed = <4>;
+                       num-lanes = <2>;
+                       max-functions = /bits/ 8 <2>;
+                       status = "disabled";
+               };
+
                canfd: can@e6660000 {
                        compatible = "renesas,r8a779g0-canfd",
                                     "renesas,rcar-gen4-canfd";
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_hc 0>;
                        status = "disabled";
                };
 
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_hc 1>;
                        status = "disabled";
                };
 
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_hc 2>;
                        status = "disabled";
                };
 
                };
 
                vin00: video@e6ef0000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef0000 0 0x1000>;
                        interrupts = <GIC_SPI 529 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 730>;
                };
 
                vin01: video@e6ef1000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef1000 0 0x1000>;
                        interrupts = <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 731>;
                };
 
                vin02: video@e6ef2000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef2000 0 0x1000>;
                        interrupts = <GIC_SPI 531 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 800>;
                };
 
                vin03: video@e6ef3000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef3000 0 0x1000>;
                        interrupts = <GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 801>;
                };
 
                vin04: video@e6ef4000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef4000 0 0x1000>;
                        interrupts = <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 802>;
                };
 
                vin05: video@e6ef5000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef5000 0 0x1000>;
                        interrupts = <GIC_SPI 534 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 803>;
                };
 
                vin06: video@e6ef6000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef6000 0 0x1000>;
                        interrupts = <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 804>;
                };
 
                vin07: video@e6ef7000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef7000 0 0x1000>;
                        interrupts = <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 805>;
                };
 
                vin08: video@e6ef8000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef8000 0 0x1000>;
                        interrupts = <GIC_SPI 537 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 806>;
                };
 
                vin09: video@e6ef9000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef9000 0 0x1000>;
                        interrupts = <GIC_SPI 538 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 807>;
                };
 
                vin10: video@e6efa000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efa000 0 0x1000>;
                        interrupts = <GIC_SPI 539 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 808>;
                };
 
                vin11: video@e6efb000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efb000 0 0x1000>;
                        interrupts = <GIC_SPI 540 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 809>;
                };
 
                vin12: video@e6efc000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efc000 0 0x1000>;
                        interrupts = <GIC_SPI 541 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 810>;
                };
 
                vin13: video@e6efd000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efd000 0 0x1000>;
                        interrupts = <GIC_SPI 542 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 811>;
                };
 
                vin14: video@e6efe000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efe000 0 0x1000>;
                        interrupts = <GIC_SPI 543 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 812>;
                };
 
                vin15: video@e6eff000 {
-                       compatible = "renesas,vin-r8a779g0";
+                       compatible = "renesas,vin-r8a779g0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6eff000 0 0x1000>;
                        interrupts = <GIC_SPI 544 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 813>;
                        clocks = <&cpg CPG_MOD 508>;
                        power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
                        resets = <&cpg 508>;
+                       iommus = <&ipmmu_vi1 6>;
                };
 
                fcpvd1: fcp@fea11000 {
                        clocks = <&cpg CPG_MOD 509>;
                        power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
                        resets = <&cpg 509>;
+                       iommus = <&ipmmu_vi1 7>;
                };
 
                vspd0: vsp@fea20000 {
                };
 
                isp0: isp@fed00000 {
-                       compatible = "renesas,r8a779g0-isp";
+                       compatible = "renesas,r8a779g0-isp",
+                                    "renesas,rcar-gen4-isp";
                        reg = <0 0xfed00000 0 0x10000>;
                        interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_LOW>;
                        clocks = <&cpg CPG_MOD 612>;
                };
 
                isp1: isp@fed20000 {
-                       compatible = "renesas,r8a779g0-isp";
+                       compatible = "renesas,r8a779g0-isp",
+                                    "renesas,rcar-gen4-isp";
                        reg = <0 0xfed20000 0 0x10000>;
                        interrupts = <GIC_SPI 474 IRQ_TYPE_LEVEL_LOW>;
                        clocks = <&cpg CPG_MOD 613>;
index 2f79e5a6124897ef7902eef4cccf4bfefa629502..50a428572d9bd93343c7e630145b1a5125ac5181 100644 (file)
        groups = "hscif0_data", "hscif0_ctrl";
        function = "hscif0";
 };
+
+&pfc {
+       tsn0_pins: tsn0 {
+               mux {
+                       groups = "tsn0_link", "tsn0_mdio", "tsn0_rgmii",
+                                "tsn0_txcrefclk";
+                       function = "tsn0";
+               };
+
+               link {
+                       groups = "tsn0_link";
+                       bias-disable;
+               };
+
+               mdio {
+                       groups = "tsn0_mdio";
+                       drive-strength = <24>;
+                       bias-disable;
+               };
+
+               rgmii {
+                       groups = "tsn0_rgmii";
+                       drive-strength = <24>;
+                       bias-disable;
+               };
+       };
+};
+
+&tsn0 {
+       pinctrl-0 = <&tsn0_pins>;
+       pinctrl-names = "default";
+       phy-mode = "rgmii";
+       phy-handle = <&phy3>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               reset-gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
+               reset-post-delay-us = <4000>;
+
+               phy3: ethernet-phy@0 {
+                       compatible = "ethernet-phy-id002b.0980",
+                                    "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+                       interrupt-parent = <&gpio4>;
+                       interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+               };
+       };
+};
index 2b9a19bb1c5d30d5151bfdf4efab73aacec4f6ea..9a1917b87f6138af053e2530e9c55177ecdd0126 100644 (file)
@@ -5,10 +5,31 @@
  * Copyright (C) 2023 Renesas Electronics Corp.
  * Copyright (C) 2024 Glider bv
  */
+/*
+ * [How to use Sound]
+ *
+ * Because R-Car V4M has only 1 SSI, it cannot handle both Playback/Capture
+ * at the same time. You need to switch the direction which is controlled
+ * by the GP0_01 pin via amixer.
+ *
+ * Playback (CN9500)
+ *     > amixer set "MUX" "Playback"   // for GP0_01
+ *     > amixer set "DAC 1" 85%
+ *     > aplay xxx.wav
+ *
+ * Capture (CN9501)
+ *     > amixer set "MUX" "Capture"    // for GP0_01
+ *     > amixer set "Mic 1" 80%
+ *     > amixer set "ADC 1" on
+ *     > amixer set 'ADC 1' 80%
+ *     > arecord xxx hoge.wav
+ */
 
 /dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
 
 #include "r8a779h0.dtsi"
 
                ethernet0 = &avb0;
        };
 
+       can_transceiver0: can-phy0 {
+               compatible = "nxp,tjr1443";
+               #phy-cells = <0>;
+               enable-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+               max-bitrate = <5000000>;
+       };
+
        chosen {
                bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
                stdout-path = "serial0:921600n8";
        };
 
+       keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&keys_pins>;
+               pinctrl-names = "default";
+
+               key-1 {
+                       gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_1>;
+                       label = "SW47";
+                       wakeup-source;
+                       debounce-interval = <20>;
+               };
+
+               key-2 {
+                       gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_2>;
+                       label = "SW48";
+                       wakeup-source;
+                       debounce-interval = <20>;
+               };
+
+               key-3 {
+                       gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_3>;
+                       label = "SW49";
+                       wakeup-source;
+                       debounce-interval = <20>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-1 {
+                       gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_INDICATOR;
+                       function-enumerator = <1>;
+               };
+
+               led-2 {
+                       gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_INDICATOR;
+                       function-enumerator = <2>;
+               };
+
+               led-3 {
+                       gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_INDICATOR;
+                       function-enumerator = <3>;
+               };
+       };
+
        memory@48000000 {
                device_type = "memory";
                /* first 128MB is reserved for secure area. */
                        regulator-boot-on;
                        regulator-always-on;
        };
+
+       sound_mux: sound-mux {
+               compatible = "simple-audio-mux";
+               mux-gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
+               state-labels = "Playback", "Capture";
+       };
+
+       sound_card: sound {
+               compatible = "audio-graph-card2";
+               label = "rcar-sound";
+               aux-devs = <&sound_mux>; // for GP0_01
+
+               links = <&rsnd_port>; // AK4619 Audio Codec
+       };
+};
+
+&audio_clkin {
+       clock-frequency = <24576000>;
 };
 
 &avb0 {
        };
 };
 
+&can_clk {
+       clock-frequency = <40000000>;
+};
+
+&canfd {
+       pinctrl-0 = <&canfd0_pins>, <&canfd1_pins>, <&can_clk_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       channel0 {
+               status = "okay";
+               phys = <&can_transceiver0>;
+       };
+
+       channel1 {
+               status = "okay";
+       };
+};
+
 &extal_clk {
        clock-frequency = <16666666>;
 };
        clock-frequency = <32768>;
 };
 
+&gpio1 {
+       audio-power-hog {
+               gpio-hog;
+               gpios = <8 GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "Audio-Power";
+       };
+};
+
 &hscif0 {
        pinctrl-0 = <&hscif0_pins>;
        pinctrl-names = "default";
        };
 };
 
+&i2c3 {
+       pinctrl-0 = <&i2c3_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+       clock-frequency = <400000>;
+
+       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>;
+                       };
+               };
+       };
+};
+
 &mmc0 {
        pinctrl-0 = <&mmc_pins>;
        pinctrl-1 = <&mmc_pins>;
                };
        };
 
+       can_clk_pins: can-clk {
+               groups = "can_clk";
+               function = "can_clk";
+       };
+
+       canfd0_pins: canfd0 {
+               groups = "canfd0_data";
+               function = "canfd0";
+       };
+
+       canfd1_pins: canfd1 {
+               groups = "canfd1_data";
+               function = "canfd1";
+       };
+
        hscif0_pins: hscif0 {
                groups = "hscif0_data", "hscif0_ctrl";
                function = "hscif0";
                function = "i2c0";
        };
 
+       i2c3_pins: i2c3 {
+               groups = "i2c3";
+               function = "i2c3";
+       };
+
+       keys_pins: keys {
+               pins = "GP_5_0", "GP_5_1", "GP_5_2";
+               bias-pull-up;
+       };
+
        mmc_pins: mmc {
                groups = "mmc_data8", "mmc_ctrl", "mmc_ds";
                function = "mmc";
                groups = "scif_clk2";
                function = "scif_clk2";
        };
+
+       sound_clk_pins: sound_clk {
+               groups = "audio_clkin", "audio_clkout";
+               function = "audio_clk";
+       };
+
+       sound_pins: sound {
+               groups = "ssi_ctrl", "ssi_data";
+               function = "ssi";
+       };
+};
+
+&rcar_sound {
+       pinctrl-0 = <&sound_clk_pins>, <&sound_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       /* audio_clkout */
+       clock-frequency = <12288000>;
+
+       ports {
+               rsnd_port: port {
+                       rsnd_endpoint: endpoint {
+                               remote-endpoint = <&ak4619_endpoint>;
+                               bitclock-master;
+                               frame-master;
+
+                               /* see above [How to use Sound] */
+                               playback = <&ssi0>;
+                               capture  = <&ssi0>;
+                       };
+               };
+       };
 };
 
 &rpc {
index a03ab2b6a859b75e87bb4a47de890b665aedd1cd..12d8be3fd579cb3e17de6889e5e993ade338c4eb 100644 (file)
                clock-frequency = <0>;
        };
 
+       /* External CAN clock - to be overridden by boards that provide it */
+       can_clk: can-clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+       };
+
        cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
 
                        status = "disabled";
                };
 
+               canfd: can@e6660000 {
+                       compatible = "renesas,r8a779h0-canfd",
+                                    "renesas,rcar-gen4-canfd";
+                       reg = <0 0xe6660000 0 0x8500>;
+                       interrupts = <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
+                       clocks = <&cpg CPG_MOD 328>,
+                                <&cpg CPG_CORE R8A779H0_CLK_CANFD>,
+                                <&can_clk>;
+                       clock-names = "fck", "canfd", "can_clk";
+                       assigned-clocks = <&cpg CPG_CORE R8A779H0_CLK_CANFD>;
+                       assigned-clock-rates = <80000000>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 328>;
+                       status = "disabled";
+
+                       channel0 {
+                               status = "disabled";
+                       };
+
+                       channel1 {
+                               status = "disabled";
+                       };
+
+                       channel2 {
+                               status = "disabled";
+                       };
+
+                       channel3 {
+                               status = "disabled";
+                       };
+               };
+
                avb0: ethernet@e6800000 {
                        compatible = "renesas,etheravb-r8a779h0",
                                     "renesas,etheravb-rcar-gen4";
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_hc 1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_hc 2>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                };
 
+               pwm0: pwm@e6e30000 {
+                       compatible = "renesas,pwm-r8a779h0", "renesas,pwm-rcar";
+                       reg = <0 0xe6e30000 0 0x10>;
+                       #pwm-cells = <2>;
+                       clocks = <&cpg CPG_MOD 628>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 628>;
+                       status = "disabled";
+               };
+
+               pwm1: pwm@e6e31000 {
+                       compatible = "renesas,pwm-r8a779h0", "renesas,pwm-rcar";
+                       reg = <0 0xe6e31000 0 0x10>;
+                       #pwm-cells = <2>;
+                       clocks = <&cpg CPG_MOD 628>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 628>;
+                       status = "disabled";
+               };
+
+               pwm2: pwm@e6e32000 {
+                       compatible = "renesas,pwm-r8a779h0", "renesas,pwm-rcar";
+                       reg = <0 0xe6e32000 0 0x10>;
+                       #pwm-cells = <2>;
+                       clocks = <&cpg CPG_MOD 628>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 628>;
+                       status = "disabled";
+               };
+
+               pwm3: pwm@e6e33000 {
+                       compatible = "renesas,pwm-r8a779h0", "renesas,pwm-rcar";
+                       reg = <0 0xe6e33000 0 0x10>;
+                       #pwm-cells = <2>;
+                       clocks = <&cpg CPG_MOD 628>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 628>;
+                       status = "disabled";
+               };
+
+               pwm4: pwm@e6e34000 {
+                       compatible = "renesas,pwm-r8a779h0", "renesas,pwm-rcar";
+                       reg = <0 0xe6e34000 0 0x10>;
+                       #pwm-cells = <2>;
+                       clocks = <&cpg CPG_MOD 628>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 628>;
+                       status = "disabled";
+               };
+
                scif0: serial@e6e60000 {
                        compatible = "renesas,scif-r8a779h0",
                                     "renesas,rcar-gen4-scif", "renesas,scif";
                };
 
                vin00: video@e6ef0000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef0000 0 0x1000>;
                        interrupts = <GIC_SPI 529 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 730>;
                };
 
                vin01: video@e6ef1000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef1000 0 0x1000>;
                        interrupts = <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 731>;
                };
 
                vin02: video@e6ef2000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef2000 0 0x1000>;
                        interrupts = <GIC_SPI 531 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 800>;
                };
 
                vin03: video@e6ef3000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef3000 0 0x1000>;
                        interrupts = <GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 801>;
                };
 
                vin04: video@e6ef4000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef4000 0 0x1000>;
                        interrupts = <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 802>;
                };
 
                vin05: video@e6ef5000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef5000 0 0x1000>;
                        interrupts = <GIC_SPI 534 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 803>;
                };
 
                vin06: video@e6ef6000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef6000 0 0x1000>;
                        interrupts = <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 804>;
                };
 
                vin07: video@e6ef7000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef7000 0 0x1000>;
                        interrupts = <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 805>;
                };
 
                vin08: video@e6ef8000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef8000 0 0x1000>;
                        interrupts = <GIC_SPI 537 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 806>;
                };
 
                vin09: video@e6ef9000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6ef9000 0 0x1000>;
                        interrupts = <GIC_SPI 538 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 807>;
                };
 
                vin10: video@e6efa000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efa000 0 0x1000>;
                        interrupts = <GIC_SPI 539 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 808>;
                };
 
                vin11: video@e6efb000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efb000 0 0x1000>;
                        interrupts = <GIC_SPI 540 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 809>;
                };
 
                vin12: video@e6efc000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efc000 0 0x1000>;
                        interrupts = <GIC_SPI 541 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 810>;
                };
 
                vin13: video@e6efd000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efd000 0 0x1000>;
                        interrupts = <GIC_SPI 542 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 811>;
                };
 
                vin14: video@e6efe000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6efe000 0 0x1000>;
                        interrupts = <GIC_SPI 543 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 812>;
                };
 
                vin15: video@e6eff000 {
-                       compatible = "renesas,vin-r8a779h0";
+                       compatible = "renesas,vin-r8a779h0",
+                                    "renesas,rcar-gen4-vin";
                        reg = <0 0xe6eff000 0 0x1000>;
                        interrupts = <GIC_SPI 544 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 813>;
                };
 
                isp0: isp@fed00000 {
-                       compatible = "renesas,r8a779h0-isp";
+                       compatible = "renesas,r8a779h0-isp",
+                                    "renesas,rcar-gen4-isp";
                        reg = <0 0xfed00000 0 0x10000>;
                        interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_LOW>;
                        clocks = <&cpg CPG_MOD 612>;
                };
 
                isp1: isp@fed20000 {
-                       compatible = "renesas,r8a779h0-isp";
+                       compatible = "renesas,r8a779h0-isp",
+                                    "renesas,rcar-gen4-isp";
                        reg = <0 0xfed20000 0 0x10000>;
                        interrupts = <GIC_SPI 474 IRQ_TYPE_LEVEL_LOW>;
                        clocks = <&cpg CPG_MOD 613>;
index 2eccab9c896202f3c552a4d98d8122e60131a9e2..593c66b27ad126d476777ff439567fcc905b8c75 100644 (file)
                        power-domains = <&cpg>;
                        #reset-cells = <1>;
                        status = "disabled";
+
+                       usb0_vbus_otg: regulator-vbus {
+                               regulator-name = "vbus";
+                       };
                };
 
                ohci0: usb@11c50000 {
index 18ef297db9336362ff7d9daf57f00a529ce26f41..a3998e5928f7c9a287edb5a3708f20726456eeae 100644 (file)
                };
        };
 
+       vspd: vsp@10870000 {
+               compatible = "renesas,r9a07g043u-vsp2", "renesas,r9a07g044-vsp2";
+               reg = <0 0x10870000 0 0x10000>;
+               interrupts = <SOC_PERIPHERAL_IRQ(149) IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cpg CPG_MOD R9A07G043_LCDC_CLK_A>,
+                        <&cpg CPG_MOD R9A07G043_LCDC_CLK_P>,
+                        <&cpg CPG_MOD R9A07G043_LCDC_CLK_D>;
+               clock-names = "aclk", "pclk", "vclk";
+               power-domains = <&cpg>;
+               resets = <&cpg R9A07G043_LCDC_RESET_N>;
+               renesas,fcp = <&fcpvd>;
+       };
+
+       fcpvd: fcp@10880000 {
+               compatible = "renesas,r9a07g043u-fcpvd", "renesas,fcpv";
+               reg = <0 0x10880000 0 0x10000>;
+               clocks = <&cpg CPG_MOD R9A07G043_LCDC_CLK_A>,
+                        <&cpg CPG_MOD R9A07G043_LCDC_CLK_P>,
+                        <&cpg CPG_MOD R9A07G043_LCDC_CLK_D>;
+               clock-names = "aclk", "pclk", "vclk";
+               power-domains = <&cpg>;
+               resets = <&cpg R9A07G043_LCDC_RESET_N>;
+       };
+
+       du: display@10890000 {
+               compatible = "renesas,r9a07g043u-du";
+               reg = <0 0x10890000 0 0x10000>;
+               interrupts = <SOC_PERIPHERAL_IRQ(152) IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cpg CPG_MOD R9A07G043_LCDC_CLK_A>,
+                        <&cpg CPG_MOD R9A07G043_LCDC_CLK_P>,
+                        <&cpg CPG_MOD R9A07G043_LCDC_CLK_D>;
+               clock-names = "aclk", "pclk", "vclk";
+               power-domains = <&cpg>;
+               resets = <&cpg R9A07G043_LCDC_RESET_N>;
+               renesas,vsps = <&vspd 0>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               du_out_rgb: endpoint {
+                               };
+                       };
+               };
+       };
+
        irqc: interrupt-controller@110a0000 {
                compatible = "renesas,r9a07g043u-irqc",
                             "renesas,rzg2l-irqc";
                #interrupt-cells = <3>;
                #address-cells = <0>;
                interrupt-controller;
-               reg = <0x0 0x11900000 0 0x40000>,
-                     <0x0 0x11940000 0 0x60000>;
+               reg = <0x0 0x11900000 0 0x20000>,
+                     <0x0 0x11940000 0 0x40000>;
                interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
        };
 };
diff --git a/src/arm64/renesas/r9a07g043u11-smarc-du-adv7513.dtso b/src/arm64/renesas/r9a07g043u11-smarc-du-adv7513.dtso
new file mode 100644 (file)
index 0000000..ecd43a6
--- /dev/null
@@ -0,0 +1,62 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree overlay for the RZ/G2UL SMARC EVK with ADV7513 transmitter
+ * connected to DU enabled.
+ *
+ * Copyright (C) 2024 Renesas Electronics Corp.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
+
+#define ADV7513_PARENT_I2C i2c1
+#include "rz-smarc-du-adv7513.dtsi"
+
+&pinctrl {
+       du_pins: du {
+               data {
+                       pinmux = <RZG2L_PORT_PINMUX(11, 2, 6)>,
+                                <RZG2L_PORT_PINMUX(13, 1, 6)>,
+                                <RZG2L_PORT_PINMUX(13, 0, 6)>,
+                                <RZG2L_PORT_PINMUX(13, 4, 6)>,
+                                <RZG2L_PORT_PINMUX(13, 3, 6)>,
+                                <RZG2L_PORT_PINMUX(12, 1, 6)>,
+                                <RZG2L_PORT_PINMUX(13, 2, 6)>,
+                                <RZG2L_PORT_PINMUX(14, 0, 6)>,
+                                <RZG2L_PORT_PINMUX(14, 2, 6)>,
+                                <RZG2L_PORT_PINMUX(14, 1, 6)>,
+                                <RZG2L_PORT_PINMUX(16, 0, 6)>,
+                                <RZG2L_PORT_PINMUX(15, 0, 6)>,
+                                <RZG2L_PORT_PINMUX(16, 1, 6)>,
+                                <RZG2L_PORT_PINMUX(15, 1, 6)>,
+                                <RZG2L_PORT_PINMUX(15, 3, 6)>,
+                                <RZG2L_PORT_PINMUX(18, 0, 6)>,
+                                <RZG2L_PORT_PINMUX(15, 2, 6)>,
+                                <RZG2L_PORT_PINMUX(17, 0, 6)>,
+                                <RZG2L_PORT_PINMUX(17, 2, 6)>,
+                                <RZG2L_PORT_PINMUX(17, 1, 6)>,
+                                <RZG2L_PORT_PINMUX(18, 1, 6)>,
+                                <RZG2L_PORT_PINMUX(18, 2, 6)>,
+                                <RZG2L_PORT_PINMUX(17, 3, 6)>,
+                                <RZG2L_PORT_PINMUX(18, 3, 6)>;
+                       drive-strength = <2>;
+               };
+
+               sync {
+                       pinmux = <RZG2L_PORT_PINMUX(11, 0, 6)>, /* HSYNC */
+                                <RZG2L_PORT_PINMUX(12, 0, 6)>; /* VSYNC */
+                       drive-strength = <2>;
+               };
+
+               de {
+                       pinmux = <RZG2L_PORT_PINMUX(11, 1, 6)>; /* DE */
+                       drive-strength = <2>;
+               };
+
+               clk {
+                       pinmux = <RZG2L_PORT_PINMUX(11, 3, 6)>; /* CLK */
+               };
+       };
+};
index d3838e5820fca19fe99340297aa5acf2bc0024f9..6b1c77cd8261ca3e04570737e718f76bc179d0ed 100644 (file)
                        #interrupt-cells = <3>;
                        #address-cells = <0>;
                        interrupt-controller;
-                       reg = <0x0 0x11900000 0 0x40000>,
-                             <0x0 0x11940000 0 0x60000>;
+                       reg = <0x0 0x11900000 0 0x20000>,
+                             <0x0 0x11940000 0 0x40000>;
                        interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
                };
 
                        power-domains = <&cpg>;
                        #reset-cells = <1>;
                        status = "disabled";
+
+                       usb0_vbus_otg: regulator-vbus {
+                               regulator-name = "vbus";
+                       };
                };
 
                ohci0: usb@11c50000 {
index 0b90367b6d1e3138fd03fef3d455c9303975e316..ee5bf2c5805114dab741c23f89ca6ee5ef8efe43 100644 (file)
@@ -47,6 +47,9 @@
 #error "Cannot set as both PMOD_MTU3 and SW_RSPI_CAN are mutually exclusive"
 #endif
 
+/* Please set SW_I2S0_I2S1. Default value is 0 */
+#define SW_I2S0_I2S1   0
+
 #include "r9a07g044c2.dtsi"
 #include "rzg2lc-smarc-som.dtsi"
 #include "rzg2lc-smarc.dtsi"
index 1de2e5f0917d91f45571898d90d97611d5cb603f..01f59914dd09975f5922817f2882896797c614ca 100644 (file)
                        #interrupt-cells = <3>;
                        #address-cells = <0>;
                        interrupt-controller;
-                       reg = <0x0 0x11900000 0 0x40000>,
-                             <0x0 0x11940000 0 0x60000>;
+                       reg = <0x0 0x11900000 0 0x20000>,
+                             <0x0 0x11940000 0 0x40000>;
                        interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
                };
 
                        power-domains = <&cpg>;
                        #reset-cells = <1>;
                        status = "disabled";
+
+                       usb0_vbus_otg: regulator-vbus {
+                               regulator-name = "vbus";
+                       };
                };
 
                ohci0: usb@11c50000 {
index 0d5c47a65e46c584f79a1ec3a3dac011413520a7..067a26a66c24ca1f0d56e9b4808b888f2bc6b6f7 100644 (file)
                        status = "disabled";
                };
 
+               i2c0: i2c@10090000 {
+                       compatible = "renesas,riic-r9a08g045", "renesas,riic-r9a09g057";
+                       reg = <0 0x10090000 0 0x400>;
+                       interrupts = <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 263 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 264 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD R9A08G045_I2C0_PCLK>;
+                       clock-frequency = <100000>;
+                       resets = <&cpg R9A08G045_I2C0_MRST>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@10090400 {
+                       compatible = "renesas,riic-r9a08g045", "renesas,riic-r9a09g057";
+                       reg = <0 0x10090400 0 0x400>;
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 271 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 272 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD R9A08G045_I2C1_PCLK>;
+                       clock-frequency = <100000>;
+                       resets = <&cpg R9A08G045_I2C1_MRST>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@10090800 {
+                       compatible = "renesas,riic-r9a08g045", "renesas,riic-r9a09g057";
+                       reg = <0 0x10090800 0 0x400>;
+                       interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 279 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 280 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD R9A08G045_I2C2_PCLK>;
+                       clock-frequency = <100000>;
+                       resets = <&cpg R9A08G045_I2C2_MRST>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@10090c00 {
+                       compatible = "renesas,riic-r9a08g045", "renesas,riic-r9a09g057";
+                       reg = <0 0x10090c00 0 0x400>;
+                       interrupts = <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 287 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 288 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD R9A08G045_I2C3_PCLK>;
+                       clock-frequency = <100000>;
+                       resets = <&cpg R9A08G045_I2C3_MRST>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                cpg: clock-controller@11010000 {
                        compatible = "renesas,r9a08g045-cpg";
                        reg = <0 0x11010000 0 0x10000>;
                        resets = <&cpg R9A08G045_IA55_RESETN>;
                };
 
+               dmac: dma-controller@11820000 {
+                       compatible = "renesas,r9a08g045-dmac",
+                                    "renesas,rz-dmac";
+                       reg = <0 0x11820000 0 0x10000>,
+                             <0 0x11830000 0 0x10000>;
+                       interrupts = <GIC_SPI 111 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 112 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 113 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 114 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 115 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 116 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 117 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 118 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 119 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 120 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 121 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 122 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 123 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 124 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 125 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 126 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 127 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "error",
+                                         "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_MOD R9A08G045_DMAC_ACLK>,
+                                <&cpg CPG_MOD R9A08G045_DMAC_PCLK>;
+                       clock-names = "main", "register";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A08G045_DMAC_ARESETN>,
+                                <&cpg R9A08G045_DMAC_RST_ASYNC>;
+                       reset-names = "arst", "rst_async";
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+               };
+
                sdhi0: mmc@11c00000  {
                        compatible = "renesas,sdhi-r9a08g045", "renesas,rzg2l-sdhi";
                        reg = <0x0 0x11c00000 0 0x10000>;
                        #interrupt-cells = <3>;
                        #address-cells = <0>;
                        interrupt-controller;
-                       reg = <0x0 0x12400000 0 0x40000>,
-                             <0x0 0x12440000 0 0x60000>;
+                       reg = <0x0 0x12400000 0 0x20000>,
+                             <0x0 0x12440000 0 0x40000>;
                        interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
                };
 
diff --git a/src/arm64/renesas/r9a09g057.dtsi b/src/arm64/renesas/r9a09g057.dtsi
new file mode 100644 (file)
index 0000000..1ad5a1b
--- /dev/null
@@ -0,0 +1,513 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the RZ/V2H(P) SoC
+ *
+ * Copyright (C) 2024 Renesas Electronics Corp.
+ */
+
+#include <dt-bindings/clock/renesas,r9a09g057-cpg.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       compatible = "renesas,r9a09g057";
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       audio_extal_clk: audio-clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board */
+               clock-frequency = <0>;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       compatible = "arm,cortex-a55";
+                       reg = <0>;
+                       device_type = "cpu";
+                       next-level-cache = <&L3_CA55>;
+                       enable-method = "psci";
+               };
+
+               cpu1: cpu@100 {
+                       compatible = "arm,cortex-a55";
+                       reg = <0x100>;
+                       device_type = "cpu";
+                       next-level-cache = <&L3_CA55>;
+                       enable-method = "psci";
+               };
+
+               cpu2: cpu@200 {
+                       compatible = "arm,cortex-a55";
+                       reg = <0x200>;
+                       device_type = "cpu";
+                       next-level-cache = <&L3_CA55>;
+                       enable-method = "psci";
+               };
+
+               cpu3: cpu@300 {
+                       compatible = "arm,cortex-a55";
+                       reg = <0x300>;
+                       device_type = "cpu";
+                       next-level-cache = <&L3_CA55>;
+                       enable-method = "psci";
+               };
+
+               L3_CA55: cache-controller-0 {
+                       compatible = "cache";
+                       cache-unified;
+                       cache-size = <0x100000>;
+                       cache-level = <3>;
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-1.0", "arm,psci-0.2";
+               method = "smc";
+       };
+
+       qextal_clk: qextal-clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board */
+               clock-frequency = <0>;
+       };
+
+       rtxin_clk: rtxin-clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board */
+               clock-frequency = <0>;
+       };
+
+       soc: soc {
+               compatible = "simple-bus";
+               interrupt-parent = <&gic>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               pinctrl: pinctrl@10410000 {
+                       compatible = "renesas,r9a09g057-pinctrl";
+                       reg = <0 0x10410000 0 0x10000>;
+                       clocks = <&cpg CPG_CORE R9A09G057_IOTOP_0_SHCLK>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 0 96>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xa5>, <&cpg 0xa6>;
+               };
+
+               cpg: clock-controller@10420000 {
+                       compatible = "renesas,r9a09g057-cpg";
+                       reg = <0 0x10420000 0 0x10000>;
+                       clocks = <&audio_extal_clk>, <&rtxin_clk>, <&qextal_clk>;
+                       clock-names = "audio_extal", "rtxin", "qextal";
+                       #clock-cells = <2>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <0>;
+               };
+
+               sys: system-controller@10430000 {
+                       compatible = "renesas,r9a09g057-sys";
+                       reg = <0 0x10430000 0 0x10000>;
+                       clocks = <&cpg CPG_CORE R9A09G057_SYS_0_PCLK>;
+                       resets = <&cpg 0x30>;
+                       status = "disabled";
+               };
+
+               ostm0: timer@11800000 {
+                       compatible = "renesas,r9a09g057-ostm", "renesas,ostm";
+                       reg = <0x0 0x11800000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 17 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD 0x43>;
+                       resets = <&cpg 0x6d>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm1: timer@11801000 {
+                       compatible = "renesas,r9a09g057-ostm", "renesas,ostm";
+                       reg = <0x0 0x11801000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 18 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD 0x44>;
+                       resets = <&cpg 0x6e>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm2: timer@14000000 {
+                       compatible = "renesas,r9a09g057-ostm", "renesas,ostm";
+                       reg = <0x0 0x14000000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD 0x45>;
+                       resets = <&cpg 0x6f>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm3: timer@14001000 {
+                       compatible = "renesas,r9a09g057-ostm", "renesas,ostm";
+                       reg = <0x0 0x14001000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 20 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD 0x46>;
+                       resets = <&cpg 0x70>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm4: timer@12c00000 {
+                       compatible = "renesas,r9a09g057-ostm", "renesas,ostm";
+                       reg = <0x0 0x12c00000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD 0x47>;
+                       resets = <&cpg 0x71>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm5: timer@12c01000 {
+                       compatible = "renesas,r9a09g057-ostm", "renesas,ostm";
+                       reg = <0x0 0x12c01000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD 0x48>;
+                       resets = <&cpg 0x72>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm6: timer@12c02000 {
+                       compatible = "renesas,r9a09g057-ostm", "renesas,ostm";
+                       reg = <0x0 0x12c02000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD 0x49>;
+                       resets = <&cpg 0x73>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm7: timer@12c03000 {
+                       compatible = "renesas,r9a09g057-ostm", "renesas,ostm";
+                       reg = <0x0 0x12c03000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 24 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD 0x4a>;
+                       resets = <&cpg 0x74>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               wdt0: watchdog@11c00400 {
+                       compatible = "renesas,r9a09g057-wdt";
+                       reg = <0 0x11c00400 0 0x400>;
+                       clocks = <&cpg CPG_MOD 0x4b>, <&cpg CPG_MOD 0x4c>;
+                       clock-names = "pclk", "oscclk";
+                       resets = <&cpg 0x75>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               wdt1: watchdog@14400000 {
+                       compatible = "renesas,r9a09g057-wdt";
+                       reg = <0 0x14400000 0 0x400>;
+                       clocks = <&cpg CPG_MOD 0x4d>, <&cpg CPG_MOD 0x4e>;
+                       clock-names = "pclk", "oscclk";
+                       resets = <&cpg 0x76>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               wdt2: watchdog@13000000 {
+                       compatible = "renesas,r9a09g057-wdt";
+                       reg = <0 0x13000000 0 0x400>;
+                       clocks = <&cpg CPG_MOD 0x4f>, <&cpg CPG_MOD 0x50>;
+                       clock-names = "pclk", "oscclk";
+                       resets = <&cpg 0x77>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               wdt3: watchdog@13000400 {
+                       compatible = "renesas,r9a09g057-wdt";
+                       reg = <0 0x13000400 0 0x400>;
+                       clocks = <&cpg CPG_MOD 0x51>, <&cpg CPG_MOD 0x52>;
+                       clock-names = "pclk", "oscclk";
+                       resets = <&cpg 0x78>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               scif: serial@11c01400 {
+                       compatible = "renesas,scif-r9a09g057";
+                       reg = <0 0x11c01400 0 0x400>;
+                       interrupts = <GIC_SPI 529 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 534 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 531 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 536 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 537 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "eri", "rxi", "txi", "bri", "dri",
+                                         "tei", "tei-dri", "rxi-edge", "txi-edge";
+                       clocks = <&cpg CPG_MOD 0x8f>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x95>;
+                       status = "disabled";
+               };
+
+               i2c0: i2c@14400400 {
+                       compatible = "renesas,riic-r9a09g057";
+                       reg = <0 0x14400400 0 0x400>;
+                       interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 507 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 506 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD 0x94>;
+                       resets = <&cpg 0x98>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@14400800 {
+                       compatible = "renesas,riic-r9a09g057";
+                       reg = <0 0x14400800 0 0x400>;
+                       interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 509 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 508 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD 0x95>;
+                       resets = <&cpg 0x99>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@14400c00 {
+                       compatible = "renesas,riic-r9a09g057";
+                       reg = <0 0x14400c00 0 0x400>;
+                       interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 511 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 510 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD 0x96>;
+                       resets = <&cpg 0x9a>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@14401000 {
+                       compatible = "renesas,riic-r9a09g057";
+                       reg = <0 0x14401000 0 0x400>;
+                       interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 513 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 512 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD 0x97>;
+                       resets = <&cpg 0x9b>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c4: i2c@14401400 {
+                       compatible = "renesas,riic-r9a09g057";
+                       reg = <0 0x14401400 0 0x400>;
+                       interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 515 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 514 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD 0x98>;
+                       resets = <&cpg 0x9c>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c5: i2c@14401800 {
+                       compatible = "renesas,riic-r9a09g057";
+                       reg = <0 0x14401800 0 0x400>;
+                       interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 517 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 516 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD 0x99>;
+                       resets = <&cpg 0x9d>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c6: i2c@14401c00 {
+                       compatible = "renesas,riic-r9a09g057";
+                       reg = <0 0x14401c00 0 0x400>;
+                       interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 519 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 518 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD 0x9a>;
+                       resets = <&cpg 0x9e>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c7: i2c@14402000 {
+                       compatible = "renesas,riic-r9a09g057";
+                       reg = <0 0x14402000 0 0x400>;
+                       interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 521 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 520 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD 0x9b>;
+                       resets = <&cpg 0x9f>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c8: i2c@11c01000 {
+                       compatible = "renesas,riic-r9a09g057";
+                       reg = <0 0x11c01000 0 0x400>;
+                       interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 523 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 522 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD 0x93>;
+                       resets = <&cpg 0xa0>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               gic: interrupt-controller@14900000 {
+                       compatible = "arm,gic-v3";
+                       reg = <0x0 0x14900000 0 0x20000>,
+                             <0x0 0x14940000 0 0x80000>;
+                       #interrupt-cells = <3>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
+               };
+
+               sdhi0: mmc@15c00000  {
+                       compatible = "renesas,sdhi-r9a09g057";
+                       reg = <0x0 0x15c00000 0 0x10000>;
+                       interrupts = <GIC_SPI 735 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 736 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 0xa3>, <&cpg CPG_MOD 0xa5>,
+                                <&cpg CPG_MOD 0xa4>, <&cpg CPG_MOD 0xa6>;
+                       clock-names = "core", "clkh", "cd", "aclk";
+                       resets = <&cpg 0xa7>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               sdhi1: mmc@15c10000 {
+                       compatible = "renesas,sdhi-r9a09g057";
+                       reg = <0x0 0x15c10000 0 0x10000>;
+                       interrupts = <GIC_SPI 737 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 738 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 0xa7>, <&cpg CPG_MOD 0xa9>,
+                                <&cpg CPG_MOD 0xa8>, <&cpg CPG_MOD 0xaa>;
+                       clock-names = "core", "clkh", "cd", "aclk";
+                       resets = <&cpg 0xa8>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               sdhi2: mmc@15c20000 {
+                       compatible = "renesas,sdhi-r9a09g057";
+                       reg = <0x0 0x15c20000 0 0x10000>;
+                       interrupts = <GIC_SPI 739 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 740 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 0xab>, <&cpg CPG_MOD 0xad>,
+                                <&cpg CPG_MOD 0xac>, <&cpg CPG_MOD 0xae>;
+                       clock-names = "core", "clkh", "cd", "aclk";
+                       resets = <&cpg 0xa9>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               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 12 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys", "hyp-virt";
+       };
+};
diff --git a/src/arm64/renesas/r9a09g057h44-rzv2h-evk.dts b/src/arm64/renesas/r9a09g057h44-rzv2h-evk.dts
new file mode 100644 (file)
index 0000000..4703da8
--- /dev/null
@@ -0,0 +1,256 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the RZ/V2H EVK board
+ *
+ * Copyright (C) 2024 Renesas Electronics Corp.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
+#include <dt-bindings/gpio/gpio.h>
+#include "r9a09g057.dtsi"
+
+/ {
+       model = "Renesas RZ/V2H EVK Board based on r9a09g057h44";
+       compatible = "renesas,rzv2h-evk", "renesas,r9a09g057h44", "renesas,r9a09g057";
+
+       aliases {
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c6 = &i2c6;
+               i2c7 = &i2c7;
+               i2c8 = &i2c8;
+               mmc1 = &sdhi1;
+               serial0 = &scif;
+       };
+
+       chosen {
+               bootargs = "ignore_loglevel";
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@48000000 {
+               device_type = "memory";
+               /* first 128MB is reserved for secure area. */
+               reg = <0x0 0x48000000 0x1 0xF8000000>;
+       };
+
+       memory@240000000 {
+               device_type = "memory";
+               reg = <0x2 0x40000000 0x2 0x00000000>;
+       };
+
+       reg_3p3v: regulator1 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "fixed-3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       vqmmc_sdhi1: regulator-vccq-sdhi1 {
+               compatible = "regulator-gpio";
+               regulator-name = "SDHI1 VccQ";
+               gpios = <&pinctrl RZG2L_GPIO(10, 2) GPIO_ACTIVE_HIGH>;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               gpios-states = <0>;
+               states = <3300000 0>, <1800000 1>;
+       };
+};
+
+&audio_extal_clk {
+       clock-frequency = <22579200>;
+};
+
+&i2c0 {
+       pinctrl-0 = <&i2c0_pins>;
+       pinctrl-names = "default";
+       clock-frequency = <400000>;
+
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-0 = <&i2c1_pins>;
+       pinctrl-names = "default";
+       clock-frequency = <400000>;
+
+       status = "okay";
+};
+
+&i2c2 {
+       pinctrl-0 = <&i2c2_pins>;
+       pinctrl-names = "default";
+       clock-frequency = <400000>;
+
+       status = "okay";
+};
+
+&i2c3 {
+       pinctrl-0 = <&i2c3_pins>;
+       pinctrl-names = "default";
+       clock-frequency = <400000>;
+
+       status = "okay";
+};
+
+&i2c6 {
+       pinctrl-0 = <&i2c6_pins>;
+       pinctrl-names = "default";
+       clock-frequency = <400000>;
+
+       status = "okay";
+};
+
+&i2c7 {
+       pinctrl-0 = <&i2c7_pins>;
+       pinctrl-names = "default";
+       clock-frequency = <400000>;
+
+       status = "okay";
+};
+
+&i2c8 {
+       pinctrl-0 = <&i2c8_pins>;
+       pinctrl-names = "default";
+       clock-frequency = <400000>;
+
+       status = "okay";
+};
+
+&ostm0 {
+       status = "okay";
+};
+
+&ostm1 {
+       status = "okay";
+};
+
+&ostm2 {
+       status = "okay";
+};
+
+&ostm3 {
+       status = "okay";
+};
+
+&ostm4 {
+       status = "okay";
+};
+
+&ostm5 {
+       status = "okay";
+};
+
+&ostm6 {
+       status = "okay";
+};
+
+&ostm7 {
+       status = "okay";
+};
+
+&pinctrl {
+       i2c0_pins: i2c0 {
+               pinmux = <RZG2L_PORT_PINMUX(3, 0, 1)>, /* I2C0_SDA */
+                        <RZG2L_PORT_PINMUX(3, 1, 1)>; /* I2C0_SCL */
+       };
+
+       i2c1_pins: i2c1 {
+               pinmux = <RZG2L_PORT_PINMUX(3, 2, 1)>, /* I2C1_SDA */
+                        <RZG2L_PORT_PINMUX(3, 3, 1)>; /* I2C1_SCL */
+       };
+
+       i2c2_pins: i2c2 {
+               pinmux = <RZG2L_PORT_PINMUX(2, 0, 4)>, /* I2C2_SDA */
+                        <RZG2L_PORT_PINMUX(2, 1, 4)>; /* I2C2_SCL */
+       };
+
+       i2c3_pins: i2c3 {
+               pinmux = <RZG2L_PORT_PINMUX(3, 6, 1)>, /* I2C3_SDA */
+                        <RZG2L_PORT_PINMUX(3, 7, 1)>; /* I2C3_SCL */
+       };
+
+       i2c6_pins: i2c6 {
+               pinmux = <RZG2L_PORT_PINMUX(4, 4, 1)>, /* I2C6_SDA */
+                        <RZG2L_PORT_PINMUX(4, 5, 1)>; /* I2C6_SCL */
+       };
+
+       i2c7_pins: i2c7 {
+               pinmux = <RZG2L_PORT_PINMUX(4, 6, 1)>, /* I2C7_SDA */
+                        <RZG2L_PORT_PINMUX(4, 7, 1)>; /* I2C7_SCL */
+       };
+
+       i2c8_pins: i2c8 {
+               pinmux = <RZG2L_PORT_PINMUX(0, 6, 1)>, /* I2C8_SDA */
+                        <RZG2L_PORT_PINMUX(0, 7, 1)>; /* I2C8_SCL */
+       };
+
+       scif_pins: scif {
+               pins = "SCIF_TXD", "SCIF_RXD";
+               renesas,output-impedance = <1>;
+       };
+
+       sd1-pwr-en-hog {
+               gpio-hog;
+               gpios = <RZG2L_GPIO(10, 3) GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "sd1_pwr_en";
+       };
+
+       sdhi1_pins: sd1 {
+               sd1_dat_cmd {
+                       pins = "SD1DAT0", "SD1DAT1", "SD1DAT2", "SD1DAT3", "SD1CMD";
+                       input-enable;
+                       renesas,output-impedance = <3>;
+                       slew-rate = <0>;
+               };
+
+               sd1_clk {
+                       pins = "SD1CLK";
+                       renesas,output-impedance = <3>;
+                       slew-rate = <0>;
+               };
+
+               sd1_cd {
+                       pinmux = <RZG2L_PORT_PINMUX(9, 4, 14)>; /* SD1_CD */
+               };
+       };
+};
+
+&qextal_clk {
+       clock-frequency = <24000000>;
+};
+
+&rtxin_clk {
+       clock-frequency = <32768>;
+};
+
+&scif {
+       pinctrl-0 = <&scif_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&sdhi1 {
+       pinctrl-0 = <&sdhi1_pins>;
+       pinctrl-1 = <&sdhi1_pins>;
+       pinctrl-names = "default", "state_uhs";
+       vmmc-supply = <&reg_3p3v>;
+       vqmmc-supply = <&vqmmc_sdhi1>;
+       bus-width = <4>;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       status = "okay";
+};
+
+&wdt1 {
+       status = "okay";
+};
index b34855956ae0114618b9ea770dcd2244a6f55c12..63fa5cf1061b3b9892be9d34cb17286c827d7dde 100644 (file)
 
 &phyrst {
        status = "okay";
-       usb0_vbus_otg: regulator-vbus {
-               regulator-name = "vbus";
-       };
 };
 
 &scif0 {
diff --git a/src/arm64/renesas/rz-smarc-du-adv7513.dtsi b/src/arm64/renesas/rz-smarc-du-adv7513.dtsi
new file mode 100644 (file)
index 0000000..3670757
--- /dev/null
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Common Device Tree for the RZ/G2UL SMARC EVK (and alike EVKs) with
+ * ADV7513 transmitter connected to DU enabled.
+ *
+ * Copyright (C) 2024 Renesas Electronics Corp.
+ */
+
+&{/} {
+       hdmi-out {
+               compatible = "hdmi-connector";
+               type = "d";
+
+               port {
+                       hdmi_con_out: endpoint {
+                               remote-endpoint = <&adv7513_out>;
+                       };
+               };
+       };
+};
+
+&du {
+       pinctrl-0 = <&du_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       ports {
+               port@0 {
+                       du_out_rgb: endpoint {
+                               remote-endpoint = <&adv7513_in>;
+                       };
+               };
+       };
+};
+
+&ADV7513_PARENT_I2C {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       adv7513: adv7513@39 {
+               compatible = "adi,adv7513";
+               reg = <0x39>;
+
+               adi,input-depth = <8>;
+               adi,input-colorspace = "rgb";
+               adi,input-clock = "1x";
+
+               avdd-supply = <&reg_1p8v>;
+               dvdd-supply = <&reg_1p8v>;
+               pvdd-supply = <&reg_1p8v>;
+               dvdd-3v-supply = <&reg_3p3v>;
+               bgvdd-supply = <&reg_1p8v>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               adv7513_in: endpoint {
+                                       remote-endpoint = <&du_out_rgb>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               adv7513_out: endpoint {
+                                       remote-endpoint = <&hdmi_con_out>;
+                               };
+                       };
+               };
+       };
+};
index 18c526c7a4cfe0a6e1a1ab57fc000029491f8d24..e9f244c33d558e63467c9ca44b3951a5ac8e51ba 100644 (file)
                         <RZG2L_PORT_PINMUX(45, 3, 1)>; /* RXD */
        };
 
+       ssi1_pins: ssi1 {
+               pinmux = <RZG2L_PORT_PINMUX(46, 0, 1)>, /* BCK */
+                        <RZG2L_PORT_PINMUX(46, 1, 1)>, /* RCK */
+                        <RZG2L_PORT_PINMUX(46, 2, 1)>; /* TXD */
+       };
+
        usb0_pins: usb0 {
                pinmux = <RZG2L_PORT_PINMUX(4, 0, 1)>, /* VBUS */
                         <RZG2L_PORT_PINMUX(5, 0, 1)>, /* OVC */
index 4409c47239b9824099174f7fd3033b4d7d3fbdd8..83f5642d0d35c244223617eda5bf7c83793a6ed4 100644 (file)
        };
 
        eth0_pins: eth0 {
-               pinmux = <RZG2L_PORT_PINMUX(28, 1, 1)>, /* ET0_LINKSTA */
-                        <RZG2L_PORT_PINMUX(27, 1, 1)>, /* ET0_MDC */
-                        <RZG2L_PORT_PINMUX(28, 0, 1)>, /* ET0_MDIO */
-                        <RZG2L_PORT_PINMUX(20, 0, 1)>, /* ET0_TXC */
-                        <RZG2L_PORT_PINMUX(20, 1, 1)>, /* ET0_TX_CTL */
-                        <RZG2L_PORT_PINMUX(20, 2, 1)>, /* ET0_TXD0 */
-                        <RZG2L_PORT_PINMUX(21, 0, 1)>, /* ET0_TXD1 */
-                        <RZG2L_PORT_PINMUX(21, 1, 1)>, /* ET0_TXD2 */
-                        <RZG2L_PORT_PINMUX(22, 0, 1)>, /* ET0_TXD3 */
-                        <RZG2L_PORT_PINMUX(24, 0, 1)>, /* ET0_RXC */
-                        <RZG2L_PORT_PINMUX(24, 1, 1)>, /* ET0_RX_CTL */
-                        <RZG2L_PORT_PINMUX(25, 0, 1)>, /* ET0_RXD0 */
-                        <RZG2L_PORT_PINMUX(25, 1, 1)>, /* ET0_RXD1 */
-                        <RZG2L_PORT_PINMUX(26, 0, 1)>, /* ET0_RXD2 */
-                        <RZG2L_PORT_PINMUX(26, 1, 1)>, /* ET0_RXD3 */
-                        <RZG2L_PORT_PINMUX(1, 0, 1)>;  /* IRQ2 */
+               txc {
+                       pinmux = <RZG2L_PORT_PINMUX(20, 0, 1)>; /* ET0_TXC */
+                       power-source = <1800>;
+                       output-enable;
+               };
+
+               mux {
+                       pinmux = <RZG2L_PORT_PINMUX(28, 1, 1)>, /* ET0_LINKSTA */
+                                <RZG2L_PORT_PINMUX(27, 1, 1)>, /* ET0_MDC */
+                                <RZG2L_PORT_PINMUX(28, 0, 1)>, /* ET0_MDIO */
+                                <RZG2L_PORT_PINMUX(20, 1, 1)>, /* ET0_TX_CTL */
+                                <RZG2L_PORT_PINMUX(20, 2, 1)>, /* ET0_TXD0 */
+                                <RZG2L_PORT_PINMUX(21, 0, 1)>, /* ET0_TXD1 */
+                                <RZG2L_PORT_PINMUX(21, 1, 1)>, /* ET0_TXD2 */
+                                <RZG2L_PORT_PINMUX(22, 0, 1)>, /* ET0_TXD3 */
+                                <RZG2L_PORT_PINMUX(24, 0, 1)>, /* ET0_RXC */
+                                <RZG2L_PORT_PINMUX(24, 1, 1)>, /* ET0_RX_CTL */
+                                <RZG2L_PORT_PINMUX(25, 0, 1)>, /* ET0_RXD0 */
+                                <RZG2L_PORT_PINMUX(25, 1, 1)>, /* ET0_RXD1 */
+                                <RZG2L_PORT_PINMUX(26, 0, 1)>, /* ET0_RXD2 */
+                                <RZG2L_PORT_PINMUX(26, 1, 1)>; /* ET0_RXD3 */
+                       power-source = <1800>;
+               };
+
+               irq {
+                       pinmux = <RZG2L_PORT_PINMUX(1, 0, 1)>;  /* IRQ2 */
+               };
        };
 
        eth1_pins: eth1 {
-               pinmux = <RZG2L_PORT_PINMUX(37, 2, 1)>, /* ET1_LINKSTA */
-                        <RZG2L_PORT_PINMUX(37, 0, 1)>, /* ET1_MDC */
-                        <RZG2L_PORT_PINMUX(37, 1, 1)>, /* ET1_MDIO */
-                        <RZG2L_PORT_PINMUX(29, 0, 1)>, /* ET1_TXC */
-                        <RZG2L_PORT_PINMUX(29, 1, 1)>, /* ET1_TX_CTL */
-                        <RZG2L_PORT_PINMUX(30, 0, 1)>, /* ET1_TXD0 */
-                        <RZG2L_PORT_PINMUX(30, 1, 1)>, /* ET1_TXD1 */
-                        <RZG2L_PORT_PINMUX(31, 0, 1)>, /* ET1_TXD2 */
-                        <RZG2L_PORT_PINMUX(31, 1, 1)>, /* ET1_TXD3 */
-                        <RZG2L_PORT_PINMUX(33, 1, 1)>, /* ET1_RXC */
-                        <RZG2L_PORT_PINMUX(34, 0, 1)>, /* ET1_RX_CTL */
-                        <RZG2L_PORT_PINMUX(34, 1, 1)>, /* ET1_RXD0 */
-                        <RZG2L_PORT_PINMUX(35, 0, 1)>, /* ET1_RXD1 */
-                        <RZG2L_PORT_PINMUX(35, 1, 1)>, /* ET1_RXD2 */
-                        <RZG2L_PORT_PINMUX(36, 0, 1)>, /* ET1_RXD3 */
-                        <RZG2L_PORT_PINMUX(1, 1, 1)>;  /* IRQ3 */
+               txc {
+                       pinmux = <RZG2L_PORT_PINMUX(29, 0, 1)>; /* ET1_TXC */
+                       power-source = <1800>;
+                       output-enable;
+               };
+
+               mux {
+                       pinmux = <RZG2L_PORT_PINMUX(37, 2, 1)>, /* ET1_LINKSTA */
+                                <RZG2L_PORT_PINMUX(37, 0, 1)>, /* ET1_MDC */
+                                <RZG2L_PORT_PINMUX(37, 1, 1)>, /* ET1_MDIO */
+                                <RZG2L_PORT_PINMUX(29, 1, 1)>, /* ET1_TX_CTL */
+                                <RZG2L_PORT_PINMUX(30, 0, 1)>, /* ET1_TXD0 */
+                                <RZG2L_PORT_PINMUX(30, 1, 1)>, /* ET1_TXD1 */
+                                <RZG2L_PORT_PINMUX(31, 0, 1)>, /* ET1_TXD2 */
+                                <RZG2L_PORT_PINMUX(31, 1, 1)>, /* ET1_TXD3 */
+                                <RZG2L_PORT_PINMUX(33, 1, 1)>, /* ET1_RXC */
+                                <RZG2L_PORT_PINMUX(34, 0, 1)>, /* ET1_RX_CTL */
+                                <RZG2L_PORT_PINMUX(34, 1, 1)>, /* ET1_RXD0 */
+                                <RZG2L_PORT_PINMUX(35, 0, 1)>, /* ET1_RXD1 */
+                                <RZG2L_PORT_PINMUX(35, 1, 1)>, /* ET1_RXD2 */
+                                <RZG2L_PORT_PINMUX(36, 0, 1)>; /* ET1_RXD3 */
+                       power-source = <1800>;
+               };
+
+               irq {
+                       pinmux = <RZG2L_PORT_PINMUX(1, 1, 1)>;  /* IRQ3 */
+               };
        };
 
        gpio-sd0-pwr-en-hog {
index 887dffe1491087a8dfd2eb0e981928506db2af9a..ee3d96fdb6168b564efdbb693d7a8d97ee0e636e 100644 (file)
                        };
                };
        };
+
+       sound_card {
+               compatible = "audio-graph-card";
+               label = "HDMI-Audio";
+               dais = <&i2s2_port>;
+       };
 };
 
 &cpu_dai {
                                        remote-endpoint = <&hdmi_con_out>;
                                };
                        };
+
+                       port@2 {
+                               reg = <2>;
+                               codec_endpoint: endpoint {
+                                       remote-endpoint = <&i2s2_cpu_endpoint>;
+                               };
+                       };
                };
        };
 };
        status = "okay";
 };
 
+&ssi1 {
+       pinctrl-0 = <&ssi1_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       i2s2_port: port {
+               i2s2_cpu_endpoint: endpoint {
+                       remote-endpoint = <&codec_endpoint>;
+                       dai-format = "i2s";
+
+                       bitclock-master = <&i2s2_cpu_endpoint>;
+                       frame-master = <&i2s2_cpu_endpoint>;
+               };
+       };
+};
+
 &vccq_sdhi1 {
        gpios = <&pinctrl RZG2L_GPIO(39, 1) GPIO_ACTIVE_HIGH>;
 };
index 5e4209d6fb42f3a30339c90c622658527a38be44..b4ef5ea8a9e3457a3a0e0211f2b8f55f7ab31473 100644 (file)
 
 &pinctrl {
        eth0_pins: eth0 {
-               pinmux = <RZG2L_PORT_PINMUX(28, 1, 1)>, /* ET0_LINKSTA */
-                        <RZG2L_PORT_PINMUX(27, 1, 1)>, /* ET0_MDC */
-                        <RZG2L_PORT_PINMUX(28, 0, 1)>, /* ET0_MDIO */
-                        <RZG2L_PORT_PINMUX(20, 0, 1)>, /* ET0_TXC */
-                        <RZG2L_PORT_PINMUX(20, 1, 1)>, /* ET0_TX_CTL */
-                        <RZG2L_PORT_PINMUX(20, 2, 1)>, /* ET0_TXD0 */
-                        <RZG2L_PORT_PINMUX(21, 0, 1)>, /* ET0_TXD1 */
-                        <RZG2L_PORT_PINMUX(21, 1, 1)>, /* ET0_TXD2 */
-                        <RZG2L_PORT_PINMUX(22, 0, 1)>, /* ET0_TXD3 */
-                        <RZG2L_PORT_PINMUX(24, 0, 1)>, /* ET0_RXC */
-                        <RZG2L_PORT_PINMUX(24, 1, 1)>, /* ET0_RX_CTL */
-                        <RZG2L_PORT_PINMUX(25, 0, 1)>, /* ET0_RXD0 */
-                        <RZG2L_PORT_PINMUX(25, 1, 1)>, /* ET0_RXD1 */
-                        <RZG2L_PORT_PINMUX(26, 0, 1)>, /* ET0_RXD2 */
-                        <RZG2L_PORT_PINMUX(26, 1, 1)>, /* ET0_RXD3 */
-                        <RZG2L_PORT_PINMUX(0, 0, 1)>;  /* IRQ0 */
+               txc {
+                       pinmux = <RZG2L_PORT_PINMUX(20, 0, 1)>; /* ET0_TXC */
+                       power-source = <1800>;
+                       output-enable;
+               };
+
+               mux {
+                       pinmux = <RZG2L_PORT_PINMUX(28, 1, 1)>, /* ET0_LINKSTA */
+                                <RZG2L_PORT_PINMUX(27, 1, 1)>, /* ET0_MDC */
+                                <RZG2L_PORT_PINMUX(28, 0, 1)>, /* ET0_MDIO */
+                                <RZG2L_PORT_PINMUX(20, 1, 1)>, /* ET0_TX_CTL */
+                                <RZG2L_PORT_PINMUX(20, 2, 1)>, /* ET0_TXD0 */
+                                <RZG2L_PORT_PINMUX(21, 0, 1)>, /* ET0_TXD1 */
+                                <RZG2L_PORT_PINMUX(21, 1, 1)>, /* ET0_TXD2 */
+                                <RZG2L_PORT_PINMUX(22, 0, 1)>, /* ET0_TXD3 */
+                                <RZG2L_PORT_PINMUX(24, 0, 1)>, /* ET0_RXC */
+                                <RZG2L_PORT_PINMUX(24, 1, 1)>, /* ET0_RX_CTL */
+                                <RZG2L_PORT_PINMUX(25, 0, 1)>, /* ET0_RXD0 */
+                                <RZG2L_PORT_PINMUX(25, 1, 1)>, /* ET0_RXD1 */
+                                <RZG2L_PORT_PINMUX(26, 0, 1)>, /* ET0_RXD2 */
+                                <RZG2L_PORT_PINMUX(26, 1, 1)>; /* ET0_RXD3 */
+                       power-source = <1800>;
+               };
+
+               irq {
+                       pinmux = <RZG2L_PORT_PINMUX(0, 0, 1)>;  /* IRQ0 */
+               };
        };
 
        gpio-sd0-pwr-en-hog {
index f21508640b6eaaaf518f8302ffc009aa09d512b8..377849cbb462eae946b58e9796386d3010355f34 100644 (file)
                        };
                };
        };
+
+#if (SW_I2S0_I2S1)
+       /delete-node/ sound;
+
+       sound_card {
+               compatible = "audio-graph-card";
+               label = "HDMI-Audio";
+               dais = <&i2s2_port>;
+       };
+#endif
 };
 
 #if (SW_SCIF_CAN || SW_RSPI_CAN)
 };
 #endif
 
+#if (!SW_I2S0_I2S1)
 &cpu_dai {
        sound-dai = <&ssi0>;
 };
+#endif
 
 &dsi {
        status = "okay";
                                        remote-endpoint = <&hdmi_con_out>;
                                };
                        };
+
+#if (SW_I2S0_I2S1)
+                       port@2 {
+                               reg = <2>;
+                               codec_endpoint: endpoint {
+                                       remote-endpoint = <&i2s2_cpu_endpoint>;
+                               };
+                       };
+#endif
                };
        };
 };
        pinctrl-names = "default";
 
        status = "okay";
+
+#if (SW_I2S0_I2S1)
+       i2s2_port: port {
+               i2s2_cpu_endpoint: endpoint {
+                       remote-endpoint = <&codec_endpoint>;
+                       dai-format = "i2s";
+
+                       bitclock-master = <&i2s2_cpu_endpoint>;
+                       frame-master = <&i2s2_cpu_endpoint>;
+               };
+       };
+#endif
 };
 
 #if (SW_RSPI_CAN)
index 97cdad2a12e2ee26243e50fac8c066244c5e6b69..79443fb3f58103045019f0cf9001dc897240d1c6 100644 (file)
        };
 
        eth0_pins: eth0 {
-               pinmux = <RZG2L_PORT_PINMUX(4, 5, 1)>, /* ET0_LINKSTA */
-                        <RZG2L_PORT_PINMUX(4, 3, 1)>, /* ET0_MDC */
-                        <RZG2L_PORT_PINMUX(4, 4, 1)>, /* ET0_MDIO */
-                        <RZG2L_PORT_PINMUX(1, 0, 1)>, /* ET0_TXC */
-                        <RZG2L_PORT_PINMUX(1, 1, 1)>, /* ET0_TX_CTL */
-                        <RZG2L_PORT_PINMUX(1, 2, 1)>, /* ET0_TXD0 */
-                        <RZG2L_PORT_PINMUX(1, 3, 1)>, /* ET0_TXD1 */
-                        <RZG2L_PORT_PINMUX(1, 4, 1)>, /* ET0_TXD2 */
-                        <RZG2L_PORT_PINMUX(2, 0, 1)>, /* ET0_TXD3 */
-                        <RZG2L_PORT_PINMUX(3, 0, 1)>, /* ET0_RXC */
-                        <RZG2L_PORT_PINMUX(3, 1, 1)>, /* ET0_RX_CTL */
-                        <RZG2L_PORT_PINMUX(3, 2, 1)>, /* ET0_RXD0 */
-                        <RZG2L_PORT_PINMUX(3, 3, 1)>, /* ET0_RXD1 */
-                        <RZG2L_PORT_PINMUX(4, 0, 1)>, /* ET0_RXD2 */
-                        <RZG2L_PORT_PINMUX(4, 1, 1)>, /* ET0_RXD3 */
-                        <RZG2L_PORT_PINMUX(5, 1, 7)>; /* IRQ2 */
+               txc {
+                       pinmux = <RZG2L_PORT_PINMUX(1, 0, 1)>; /* ET0_TXC */
+                       power-source = <1800>;
+                       output-enable;
+               };
+
+               mux {
+                       pinmux = <RZG2L_PORT_PINMUX(4, 5, 1)>, /* ET0_LINKSTA */
+                                <RZG2L_PORT_PINMUX(4, 3, 1)>, /* ET0_MDC */
+                                <RZG2L_PORT_PINMUX(4, 4, 1)>, /* ET0_MDIO */
+                                <RZG2L_PORT_PINMUX(1, 1, 1)>, /* ET0_TX_CTL */
+                                <RZG2L_PORT_PINMUX(1, 2, 1)>, /* ET0_TXD0 */
+                                <RZG2L_PORT_PINMUX(1, 3, 1)>, /* ET0_TXD1 */
+                                <RZG2L_PORT_PINMUX(1, 4, 1)>, /* ET0_TXD2 */
+                                <RZG2L_PORT_PINMUX(2, 0, 1)>, /* ET0_TXD3 */
+                                <RZG2L_PORT_PINMUX(3, 0, 1)>, /* ET0_RXC */
+                                <RZG2L_PORT_PINMUX(3, 1, 1)>, /* ET0_RX_CTL */
+                                <RZG2L_PORT_PINMUX(3, 2, 1)>, /* ET0_RXD0 */
+                                <RZG2L_PORT_PINMUX(3, 3, 1)>, /* ET0_RXD1 */
+                                <RZG2L_PORT_PINMUX(4, 0, 1)>, /* ET0_RXD2 */
+                                <RZG2L_PORT_PINMUX(4, 1, 1)>; /* ET0_RXD3 */
+                       power-source = <1800>;
+               };
+
+               irq {
+                       pinmux = <RZG2L_PORT_PINMUX(5, 1, 7)>; /* IRQ2 */
+               };
        };
 
        eth1_pins: eth1 {
-               pinmux = <RZG2L_PORT_PINMUX(10, 4, 1)>, /* ET1_LINKSTA */
-                        <RZG2L_PORT_PINMUX(10, 2, 1)>, /* ET1_MDC */
-                        <RZG2L_PORT_PINMUX(10, 3, 1)>, /* ET1_MDIO */
-                        <RZG2L_PORT_PINMUX(7, 0, 1)>, /* ET1_TXC */
-                        <RZG2L_PORT_PINMUX(7, 1, 1)>, /* ET1_TX_CTL */
-                        <RZG2L_PORT_PINMUX(7, 2, 1)>, /* ET1_TXD0 */
-                        <RZG2L_PORT_PINMUX(7, 3, 1)>, /* ET1_TXD1 */
-                        <RZG2L_PORT_PINMUX(7, 4, 1)>, /* ET1_TXD2 */
-                        <RZG2L_PORT_PINMUX(8, 0, 1)>, /* ET1_TXD3 */
-                        <RZG2L_PORT_PINMUX(8, 4, 1)>, /* ET1_RXC */
-                        <RZG2L_PORT_PINMUX(9, 0, 1)>, /* ET1_RX_CTL */
-                        <RZG2L_PORT_PINMUX(9, 1, 1)>, /* ET1_RXD0 */
-                        <RZG2L_PORT_PINMUX(9, 2, 1)>, /* ET1_RXD1 */
-                        <RZG2L_PORT_PINMUX(9, 3, 1)>, /* ET1_RXD2 */
-                        <RZG2L_PORT_PINMUX(10, 0, 1)>, /* ET1_RXD3 */
-                        <RZG2L_PORT_PINMUX(18, 5, 1)>; /* IRQ7 */
+               txc {
+                       pinmux = <RZG2L_PORT_PINMUX(7, 0, 1)>; /* ET1_TXC */
+                       power-source = <1800>;
+                       output-enable;
+               };
+
+               mux {
+                       pinmux = <RZG2L_PORT_PINMUX(10, 4, 1)>, /* ET1_LINKSTA */
+                                <RZG2L_PORT_PINMUX(10, 2, 1)>, /* ET1_MDC */
+                                <RZG2L_PORT_PINMUX(10, 3, 1)>, /* ET1_MDIO */
+                                <RZG2L_PORT_PINMUX(7, 1, 1)>, /* ET1_TX_CTL */
+                                <RZG2L_PORT_PINMUX(7, 2, 1)>, /* ET1_TXD0 */
+                                <RZG2L_PORT_PINMUX(7, 3, 1)>, /* ET1_TXD1 */
+                                <RZG2L_PORT_PINMUX(7, 4, 1)>, /* ET1_TXD2 */
+                                <RZG2L_PORT_PINMUX(8, 0, 1)>, /* ET1_TXD3 */
+                                <RZG2L_PORT_PINMUX(8, 4, 1)>, /* ET1_RXC */
+                                <RZG2L_PORT_PINMUX(9, 0, 1)>, /* ET1_RX_CTL */
+                                <RZG2L_PORT_PINMUX(9, 1, 1)>, /* ET1_RXD0 */
+                                <RZG2L_PORT_PINMUX(9, 2, 1)>, /* ET1_RXD1 */
+                                <RZG2L_PORT_PINMUX(9, 3, 1)>, /* ET1_RXD2 */
+                                <RZG2L_PORT_PINMUX(10, 0, 1)>; /* ET1_RXD3 */
+                       power-source = <1800>;
+               };
+
+               irq {
+                       pinmux = <RZG2L_PORT_PINMUX(18, 5, 1)>; /* IRQ7 */
+               };
        };
 
        sdhi0_emmc_pins: sd0emmc {
index 8a3d302f1535783ab221f29731cdb0a9dfd74b03..21bfa4e03972ffe259c89283f0c50ecc9aa680b4 100644 (file)
@@ -32,6 +32,7 @@
        compatible = "renesas,rzg3s-smarcm", "renesas,r9a08g045s33", "renesas,r9a08g045";
 
        aliases {
+               i2c1 = &i2c1;
                mmc0 = &sdhi0;
 #if SW_CONFIG3 == SW_OFF
                mmc2 = &sdhi2;
        clock-frequency = <24000000>;
 };
 
+&i2c1 {
+       status = "okay";
+};
+
 #if SW_CONFIG2 == SW_ON
 /* SD0 slot */
 &sdhi0 {
index deb2ad37bb2e5d198efbf6c7fe8b94a52bf35685..7945d44e6ee159f4ad723b7a378833552078c2d3 100644 (file)
@@ -11,6 +11,7 @@
 
 / {
        aliases {
+               i2c0 = &i2c0;
                serial0 = &scif0;
                mmc1 = &sdhi1;
        };
        };
 };
 
+&i2c0 {
+       status = "okay";
+
+       clock-frequency = <1000000>;
+};
+
 &pinctrl {
        key-1-gpio-hog {
                gpio-hog;
index 80496fb3d4765a7c7f2885c02e2f824b2e9c6716..3845b413bd24cd72fbee3b61476ce1aca8d2ee41 100644 (file)
                };
        };
 
+       pcie_clk: clk-9fgv0841-pci {
+               compatible = "fixed-clock";
+               clock-frequency = <100000000>;
+               #clock-cells = <0>;
+       };
+
        reg_1p2v: regulator-1p2v {
                compatible = "regulator-fixed";
                regulator-name = "fixed-1.2V";
        status = "okay";
 };
 
+&pcie0_clkref {
+       compatible = "gpio-gate-clock";
+       clocks = <&pcie_clk>;
+       enable-gpios = <&gpio4 21 GPIO_ACTIVE_LOW>;
+       /delete-property/ clock-frequency;
+};
+
+&pciec0 {
+       reset-gpio = <&io_expander_a 0 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
 &pfc {
        pinctrl-0 = <&scif_clk_pins>;
        pinctrl-names = "default";
diff --git a/src/arm64/rockchip/px30-firefly-jd4-core-mb.dts b/src/arm64/rockchip/px30-firefly-jd4-core-mb.dts
new file mode 100644 (file)
index 0000000..d03e6ae
--- /dev/null
@@ -0,0 +1,179 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
+ */
+
+/dts-v1/;
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include "px30-firefly-jd4-core.dtsi"
+
+/ {
+       compatible = "firefly,px30-jd4-core-mb", "firefly,px30-jd4-core",
+                  "rockchip,px30";
+       model = "Firefly Core-PX30-JD4 on MB-JD4-PX30 baseboard";
+
+       aliases {
+               ethernet0 = &gmac;
+               mmc0 = &sdmmc;
+               mmc1 = &sdio;
+               mmc2 = &emmc;
+       };
+
+       chosen {
+               stdout-path = "serial2:115200n8";
+       };
+
+       dc_12v: dc-12v-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "dc_12v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 2>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1500000>;
+               poll-interval = <100>;
+
+               button-recovery {
+                       label = "Recovery";
+                       linux,code = <KEY_VENDOR>;
+                       press-threshold-microvolt = <18000>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&blue_led>, <&green_led>;
+
+               blue-led {
+                       color = <LED_COLOR_ID_BLUE>;
+                       default-state = "on";
+                       function = LED_FUNCTION_HEARTBEAT;
+                       gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
+                       label = "px30-mb-jd4:blue:work";
+                       linux,default-trigger = "heartbeat";
+               };
+
+               green-led {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "on";
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>;
+                       label = "px30-mb-jd4:blue:diy";
+                       linux,default-trigger = "default-on";
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_enable_h>;
+
+               /*
+                * On the module itself this is one of these (depending
+                * on the actual card populated):
+                * - SDIO_RESET_L_WL_REG_ON
+                * - PDN (power down when low)
+                */
+               reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; /* GPIO3_A4 */
+       };
+
+       vcc5v0_baseboard: vcc5v0-baseboard-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_baseboard";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&dc_12v>;
+       };
+};
+
+&gmac {
+       clock_in_out = "output";
+       phy-supply = <&vcc_rmii>;
+       snps,reset-gpio = <&gpio2 13 GPIO_ACTIVE_LOW>;
+       snps,reset-active-low;
+       snps,reset-delays-us = <0 50000 50000>;
+       status = "okay";
+};
+
+&pinctrl {
+       leds {
+               blue_led: blue-led {
+                       rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               green_led: green-led {
+                       rockchip,pins = <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins =
+                               <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       card-detect-delay = <800>;
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_sd>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&sdio {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       keep-power-in-suspend;
+       non-removable;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       sd-uhs-sdr104;
+       status = "okay";
+};
+
+&u2phy {
+       status = "okay";
+
+       u2phy_host: host-port {
+               status = "okay";
+       };
+
+       u2phy_otg: otg-port {
+               status = "okay";
+       };
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2m1_xfer>;
+       status = "okay";
+};
+
+&usb20_otg {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
diff --git a/src/arm64/rockchip/px30-firefly-jd4-core.dtsi b/src/arm64/rockchip/px30-firefly-jd4-core.dtsi
new file mode 100644 (file)
index 0000000..f18d7eb
--- /dev/null
@@ -0,0 +1,320 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "px30.dtsi"
+
+/ {
+       compatible = "firefly,px30-jd4-core", "rockchip,px30";
+
+       emmc_pwrseq: emmc-pwrseq {
+               compatible = "mmc-pwrseq-emmc";
+               pinctrl-0 = <&emmc_reset>;
+               pinctrl-names = "default";
+               reset-gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>;
+       };
+
+       vcc5v0_sys: vcc5v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_baseboard>;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&emmc {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       mmc-hs200-1_8v;
+       non-removable;
+       mmc-pwrseq = <&emmc_pwrseq>;
+       vmmc-supply = <&vcc_3v0>;
+       vqmmc-supply = <&vccio_flash>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_log>;
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       rk809: pmic@20 {
+               compatible = "rockchip,rk809";
+               reg = <0x20>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int>;
+               rockchip,system-power-controller;
+               wakeup-source;
+               #clock-cells = <0>;
+               clock-output-names = "xin32k";
+
+               vcc1-supply = <&vcc5v0_sys>;
+               vcc2-supply = <&vcc5v0_sys>;
+               vcc3-supply = <&vcc5v0_sys>;
+               vcc4-supply = <&vcc5v0_sys>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc3v3_sys>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc5v0_sys>;
+
+               regulators {
+                       vdd_log: DCDC_REG1 {
+                               regulator-name = "vdd_log";
+                               regulator-min-microvolt = <950000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <950000>;
+                               };
+                       };
+
+                       vdd_arm: DCDC_REG2 {
+                               regulator-name = "vdd_arm";
+                               regulator-min-microvolt = <950000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <950000>;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_3v0: vcc_rmii: DCDC_REG4 {
+                               regulator-name = "vcc_3v0";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3000000>;
+                               };
+                       };
+
+                       vcc3v3_sys: DCDC_REG5 {
+                               regulator-name = "vcc3v3_sys";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_1v0: LDO_REG1 {
+                               regulator-name = "vcc_1v0";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+
+                       vcc_1v8: vccio_flash: vccio_sdio: LDO_REG2 {
+                               regulator-name = "vcc_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_1v0: LDO_REG3 {
+                               regulator-name = "vdd_1v0";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+
+                       vcc3v0_pmu: LDO_REG4 {
+                               regulator-name = "vcc3v0_pmu";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3000000>;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-name = "vccio_sd";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_sd: LDO_REG6 {
+                               regulator-name = "vcc_sd";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc2v8_dvp: LDO_REG7 {
+                               regulator-name = "vcc2v8_dvp";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <2800000>;
+                               };
+                       };
+
+                       vcc1v8_dvp: LDO_REG8 {
+                               regulator-name = "vcc1v8_dvp";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc1v5_dvp: LDO_REG9 {
+                               regulator-name = "vcc1v5_dvp";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <1500000>;
+                               };
+                       };
+
+                       vcc3v3_lcd: SWITCH_REG1 {
+                               regulator-name = "vcc3v3_lcd";
+                               regulator-boot-on;
+                       };
+
+                       vcc5v0_host: SWITCH_REG2 {
+                               regulator-name = "vcc5v0_host";
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+               };
+       };
+};
+
+&io_domains {
+       vccio1-supply = <&vccio_sdio>;
+       vccio2-supply = <&vccio_sd>;
+       vccio3-supply = <&vcc_3v0>;
+       vccio4-supply = <&vcc3v0_pmu>;
+       vccio5-supply = <&vcc_3v0>;
+       vccio6-supply = <&vccio_flash>;
+       status = "okay";
+};
+
+&pinctrl {
+       emmc {
+               emmc_reset: emmc-reset {
+                       rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int: pmic_int {
+                       rockchip,pins =
+                               <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc3v0_pmu>;
+       pmuio2-supply = <&vcc3v0_pmu>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <1>;
+       status = "okay";
+};
index bb1aea82e666ed45f738aefccff8d31a1d331cc8..b7163ed74232d7bbe453b247d29cdde423696504 100644 (file)
@@ -66,7 +66,6 @@
        bus-width = <8>;
        cap-mmc-highspeed;
        mmc-hs200-1_8v;
-       supports-emmc;
        mmc-pwrseq = <&emmc_pwrseq>;
        non-removable;
        vmmc-supply = <&vcc_3v3>;
index 9232357f4fec9c77c1ee7b8dca798b3e739f9f71..d9e191ad1d77e01d47773d86b5aa17d9e17abbfd 100644 (file)
 
                power_led: led-0 {
                        label = "firefly:red:power";
-                       linux,default-trigger = "ir-power-click";
+                       linux,default-trigger = "default-on";
                        default-state = "on";
                        gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
                };
 
                user_led: led-1 {
                        label = "firefly:blue:user";
-                       linux,default-trigger = "ir-user-click";
+                       linux,default-trigger = "rc-feedback";
                        default-state = "off";
                        gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_HIGH>;
                };
diff --git a/src/arm64/rockchip/rk3328-nanopi-r2s-plus.dts b/src/arm64/rockchip/rk3328-nanopi-r2s-plus.dts
new file mode 100644 (file)
index 0000000..4b9ced6
--- /dev/null
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * (C) Copyright 2018 FriendlyElec Computer Tech. Co., Ltd.
+ * (http://www.friendlyarm.com)
+ *
+ * (C) Copyright 2016 Rockchip Electronics Co., Ltd
+ */
+
+/dts-v1/;
+#include "rk3328-nanopi-r2s.dts"
+
+/ {
+       compatible = "friendlyarm,nanopi-r2s-plus", "rockchip,rk3328";
+       model = "FriendlyElec NanoPi R2S Plus";
+
+       aliases {
+               mmc1 = &emmc;
+       };
+};
+
+&emmc {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       disable-wp;
+       mmc-hs200-1_8v;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
+       status = "okay";
+};
index b01efd6d042c8e2e0790db1872b432b5c6cb34eb..c01a4cad48f30eeb4adc16f4ffc68c64cd061705 100644 (file)
                compatible = "rockchip,rk3328-dw-hdmi";
                reg = <0x0 0xff3c0000 0x0 0x20000>;
                reg-io-width = <4>;
-               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru PCLK_HDMI>,
                         <&cru SCLK_HDMI_SFC>,
                         <&cru SCLK_RTC32K>;
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
                max-frequency = <150000000>;
+               resets = <&cru SRST_MMC0>;
+               reset-names = "reset";
                status = "disabled";
        };
 
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
                max-frequency = <150000000>;
+               resets = <&cru SRST_SDIO>;
+               reset-names = "reset";
                status = "disabled";
        };
 
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
                max-frequency = <150000000>;
+               resets = <&cru SRST_EMMC>;
+               reset-names = "reset";
                status = "disabled";
        };
 
                status = "disabled";
        };
 
+       sdmmc_ext: mmc@ff5f0000 {
+               compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
+               reg = <0x0 0xff5f0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_SDMMC_EXT>, <&cru SCLK_SDMMC_EXT>,
+                        <&cru SCLK_SDMMC_EXT_DRV>, <&cru SCLK_SDMMC_EXT_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               fifo-depth = <0x100>;
+               max-frequency = <150000000>;
+               resets = <&cru SRST_SDMMCEXT>;
+               reset-names = "reset";
+               status = "disabled";
+       };
+
        usbdrd3: usb@ff600000 {
                compatible = "rockchip,rk3328-dwc3", "snps,dwc3";
                reg = <0x0 0xff600000 0x0 0x100000>;
index 8ac8acf4082df46eabea35dcb14adb9e129f3515..ab3fda69a1fb7b99c2a1c2652bce10405a1f28df 100644 (file)
@@ -61,7 +61,6 @@
                        fan: fan@18 {
                                compatible = "ti,amc6821";
                                reg = <0x18>;
-                               #cooling-cells = <2>;
                        };
 
                        rtc_twi: rtc@6f {
diff --git a/src/arm64/rockchip/rk3399-base.dtsi b/src/arm64/rockchip/rk3399-base.dtsi
new file mode 100644 (file)
index 0000000..9d5f5b0
--- /dev/null
@@ -0,0 +1,3019 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
+ */
+
+#include <dt-bindings/clock/rk3399-cru.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/power/rk3399-power.h>
+#include <dt-bindings/thermal/thermal.h>
+
+/ {
+       compatible = "rockchip,rk3399";
+
+       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;
+               spi0 = &spi0;
+               spi1 = &spi1;
+               spi2 = &spi2;
+               spi3 = &spi3;
+               spi4 = &spi4;
+               spi5 = &spi5;
+       };
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               cpu-map {
+                       cluster0 {      /* Cortex-A53 */
+                               core0 {
+                                       cpu = <&cpu_l0>;
+                               };
+                               core1 {
+                                       cpu = <&cpu_l1>;
+                               };
+                               core2 {
+                                       cpu = <&cpu_l2>;
+                               };
+                               core3 {
+                                       cpu = <&cpu_l3>;
+                               };
+                       };
+
+                       cluster1 {      /* Cortex-A72 */
+                               core0 {
+                                       cpu = <&cpu_b0>;
+                               };
+                               core1 {
+                                       cpu = <&cpu_b1>;
+                               };
+                       };
+               };
+
+               cpu_l0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x0 0x0>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <485>;
+                       clocks = <&cru ARMCLKL>;
+                       #cooling-cells = <2>; /* min followed by max */
+                       dynamic-power-coefficient = <100>;
+                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+                       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_l>;
+               };
+
+               cpu_l1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x0 0x1>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <485>;
+                       clocks = <&cru ARMCLKL>;
+                       #cooling-cells = <2>; /* min followed by max */
+                       dynamic-power-coefficient = <100>;
+                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+                       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_l>;
+               };
+
+               cpu_l2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x0 0x2>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <485>;
+                       clocks = <&cru ARMCLKL>;
+                       #cooling-cells = <2>; /* min followed by max */
+                       dynamic-power-coefficient = <100>;
+                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+                       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_l>;
+               };
+
+               cpu_l3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x0 0x3>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <485>;
+                       clocks = <&cru ARMCLKL>;
+                       #cooling-cells = <2>; /* min followed by max */
+                       dynamic-power-coefficient = <100>;
+                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+                       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_l>;
+               };
+
+               cpu_b0: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a72";
+                       reg = <0x0 0x100>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       clocks = <&cru ARMCLKB>;
+                       #cooling-cells = <2>; /* min followed by max */
+                       dynamic-power-coefficient = <436>;
+                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+                       i-cache-size = <0xC000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache_b>;
+
+                       thermal-idle {
+                               #cooling-cells = <2>;
+                               duration-us = <10000>;
+                               exit-latency-us = <500>;
+                       };
+               };
+
+               cpu_b1: cpu@101 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a72";
+                       reg = <0x0 0x101>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       clocks = <&cru ARMCLKB>;
+                       #cooling-cells = <2>; /* min followed by max */
+                       dynamic-power-coefficient = <436>;
+                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+                       i-cache-size = <0xC000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache_b>;
+
+                       thermal-idle {
+                               #cooling-cells = <2>;
+                               duration-us = <10000>;
+                               exit-latency-us = <500>;
+                       };
+               };
+
+               l2_cache_l: l2-cache-cluster0 {
+                       compatible = "cache";
+                       cache-level = <2>;
+                       cache-unified;
+                       cache-size = <0x80000>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+               };
+
+               l2_cache_b: l2-cache-cluster1 {
+                       compatible = "cache";
+                       cache-level = <2>;
+                       cache-unified;
+                       cache-size = <0x100000>;
+                       cache-line-size = <64>;
+                       cache-sets = <1024>;
+               };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       CPU_SLEEP: cpu-sleep {
+                               compatible = "arm,idle-state";
+                               local-timer-stop;
+                               arm,psci-suspend-param = <0x0010000>;
+                               entry-latency-us = <120>;
+                               exit-latency-us = <250>;
+                               min-residency-us = <900>;
+                       };
+
+                       CLUSTER_SLEEP: cluster-sleep {
+                               compatible = "arm,idle-state";
+                               local-timer-stop;
+                               arm,psci-suspend-param = <0x1010000>;
+                               entry-latency-us = <400>;
+                               exit-latency-us = <500>;
+                               min-residency-us = <2000>;
+                       };
+               };
+       };
+
+       display-subsystem {
+               compatible = "rockchip,display-subsystem";
+               ports = <&vopl_out>, <&vopb_out>;
+       };
+
+       dmc: memory-controller {
+               compatible = "rockchip,rk3399-dmc";
+               rockchip,pmu = <&pmugrf>;
+               devfreq-events = <&dfi>;
+               clocks = <&cru SCLK_DDRC>;
+               clock-names = "dmc_clk";
+               status = "disabled";
+       };
+
+       pmu_a53 {
+               compatible = "arm,cortex-a53-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
+       };
+
+       pmu_a72 {
+               compatible = "arm,cortex-a72-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
+               arm,no-tick-in-suspend;
+       };
+
+       xin24m: xin24m {
+               compatible = "fixed-clock";
+               clock-frequency = <24000000>;
+               clock-output-names = "xin24m";
+               #clock-cells = <0>;
+       };
+
+       pcie0: pcie@f8000000 {
+               compatible = "rockchip,rk3399-pcie";
+               reg = <0x0 0xf8000000 0x0 0x2000000>,
+                     <0x0 0xfd000000 0x0 0x1000000>;
+               reg-names = "axi-base", "apb-base";
+               device_type = "pci";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               #interrupt-cells = <1>;
+               aspm-no-l0s;
+               bus-range = <0x0 0x1f>;
+               clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
+                        <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
+               clock-names = "aclk", "aclk-perf",
+                             "hclk", "pm";
+               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "sys", "legacy", "client";
+               interrupt-map-mask = <0 0 0 7>;
+               interrupt-map = <0 0 0 1 &pcie0_intc 0>,
+                               <0 0 0 2 &pcie0_intc 1>,
+                               <0 0 0 3 &pcie0_intc 2>,
+                               <0 0 0 4 &pcie0_intc 3>;
+               max-link-speed = <1>;
+               msi-map = <0x0 &its 0x0 0x1000>;
+               phys = <&pcie_phy 0>, <&pcie_phy 1>,
+                      <&pcie_phy 2>, <&pcie_phy 3>;
+               phy-names = "pcie-phy-0", "pcie-phy-1",
+                           "pcie-phy-2", "pcie-phy-3";
+               ranges = <0x82000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000>,
+                        <0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
+               resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
+                        <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
+                        <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
+                        <&cru SRST_A_PCIE>;
+               reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
+                             "pm", "pclk", "aclk";
+               status = "disabled";
+
+               pcie0_intc: interrupt-controller {
+                       interrupt-controller;
+                       #address-cells = <0>;
+                       #interrupt-cells = <1>;
+               };
+       };
+
+       pcie0_ep: pcie-ep@f8000000 {
+               compatible = "rockchip,rk3399-pcie-ep";
+               reg = <0x0 0xfd000000 0x0 0x1000000>,
+                     <0x0 0xfa000000 0x0 0x2000000>;
+               reg-names = "apb-base", "mem-base";
+               clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
+                        <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
+               clock-names = "aclk", "aclk-perf",
+                             "hclk", "pm";
+               max-functions = /bits/ 8 <8>;
+               num-lanes = <4>;
+               resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
+                        <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
+                        <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
+                        <&cru SRST_A_PCIE>;
+               reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
+                             "pm", "pclk", "aclk";
+               phys = <&pcie_phy 0>, <&pcie_phy 1>,
+                      <&pcie_phy 2>, <&pcie_phy 3>;
+               phy-names = "pcie-phy-0", "pcie-phy-1",
+                           "pcie-phy-2", "pcie-phy-3";
+               rockchip,max-outbound-regions = <32>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie_clkreqnb_cpm>;
+               status = "disabled";
+       };
+
+       gmac: ethernet@fe300000 {
+               compatible = "rockchip,rk3399-gmac";
+               reg = <0x0 0xfe300000 0x0 0x10000>;
+               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "macirq";
+               clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>,
+                        <&cru SCLK_MAC_TX>, <&cru SCLK_MACREF>,
+                        <&cru SCLK_MACREF_OUT>, <&cru ACLK_GMAC>,
+                        <&cru PCLK_GMAC>;
+               clock-names = "stmmaceth", "mac_clk_rx",
+                             "mac_clk_tx", "clk_mac_ref",
+                             "clk_mac_refout", "aclk_mac",
+                             "pclk_mac";
+               power-domains = <&power RK3399_PD_GMAC>;
+               resets = <&cru SRST_A_GMAC>;
+               reset-names = "stmmaceth";
+               rockchip,grf = <&grf>;
+               snps,txpbl = <0x4>;
+               status = "disabled";
+       };
+
+       sdio0: mmc@fe310000 {
+               compatible = "rockchip,rk3399-dw-mshc",
+                            "rockchip,rk3288-dw-mshc";
+               reg = <0x0 0xfe310000 0x0 0x4000>;
+               interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>;
+               max-frequency = <150000000>;
+               clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
+                        <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               fifo-depth = <0x100>;
+               power-domains = <&power RK3399_PD_SDIOAUDIO>;
+               resets = <&cru SRST_SDIO0>;
+               reset-names = "reset";
+               status = "disabled";
+       };
+
+       sdmmc: mmc@fe320000 {
+               compatible = "rockchip,rk3399-dw-mshc",
+                            "rockchip,rk3288-dw-mshc";
+               reg = <0x0 0xfe320000 0x0 0x4000>;
+               interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>;
+               max-frequency = <150000000>;
+               assigned-clocks = <&cru HCLK_SD>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
+                        <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               fifo-depth = <0x100>;
+               power-domains = <&power RK3399_PD_SD>;
+               resets = <&cru SRST_SDMMC>;
+               reset-names = "reset";
+               status = "disabled";
+       };
+
+       sdhci: mmc@fe330000 {
+               compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
+               reg = <0x0 0xfe330000 0x0 0x10000>;
+               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
+               arasan,soc-ctl-syscon = <&grf>;
+               assigned-clocks = <&cru SCLK_EMMC>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&cru SCLK_EMMC>, <&cru ACLK_EMMC>;
+               clock-names = "clk_xin", "clk_ahb";
+               clock-output-names = "emmc_cardclock";
+               #clock-cells = <0>;
+               phys = <&emmc_phy>;
+               phy-names = "phy_arasan";
+               power-domains = <&power RK3399_PD_EMMC>;
+               disable-cqe-dcmd;
+               status = "disabled";
+       };
+
+       usb_host0_ehci: usb@fe380000 {
+               compatible = "generic-ehci";
+               reg = <0x0 0xfe380000 0x0 0x20000>;
+               interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
+                        <&u2phy0>;
+               phys = <&u2phy0_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_host0_ohci: usb@fe3a0000 {
+               compatible = "generic-ohci";
+               reg = <0x0 0xfe3a0000 0x0 0x20000>;
+               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
+                        <&u2phy0>;
+               phys = <&u2phy0_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_host1_ehci: usb@fe3c0000 {
+               compatible = "generic-ehci";
+               reg = <0x0 0xfe3c0000 0x0 0x20000>;
+               interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
+                        <&u2phy1>;
+               phys = <&u2phy1_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_host1_ohci: usb@fe3e0000 {
+               compatible = "generic-ohci";
+               reg = <0x0 0xfe3e0000 0x0 0x20000>;
+               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
+                        <&u2phy1>;
+               phys = <&u2phy1_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       debug@fe430000 {
+               compatible = "arm,coresight-cpu-debug", "arm,primecell";
+               reg = <0 0xfe430000 0 0x1000>;
+               clocks = <&cru PCLK_COREDBG_L>;
+               clock-names = "apb_pclk";
+               cpu = <&cpu_l0>;
+       };
+
+       debug@fe432000 {
+               compatible = "arm,coresight-cpu-debug", "arm,primecell";
+               reg = <0 0xfe432000 0 0x1000>;
+               clocks = <&cru PCLK_COREDBG_L>;
+               clock-names = "apb_pclk";
+               cpu = <&cpu_l1>;
+       };
+
+       debug@fe434000 {
+               compatible = "arm,coresight-cpu-debug", "arm,primecell";
+               reg = <0 0xfe434000 0 0x1000>;
+               clocks = <&cru PCLK_COREDBG_L>;
+               clock-names = "apb_pclk";
+               cpu = <&cpu_l2>;
+       };
+
+       debug@fe436000 {
+               compatible = "arm,coresight-cpu-debug", "arm,primecell";
+               reg = <0 0xfe436000 0 0x1000>;
+               clocks = <&cru PCLK_COREDBG_L>;
+               clock-names = "apb_pclk";
+               cpu = <&cpu_l3>;
+       };
+
+       debug@fe610000 {
+               compatible = "arm,coresight-cpu-debug", "arm,primecell";
+               reg = <0 0xfe610000 0 0x1000>;
+               clocks = <&cru PCLK_COREDBG_B>;
+               clock-names = "apb_pclk";
+               cpu = <&cpu_b0>;
+       };
+
+       debug@fe710000 {
+               compatible = "arm,coresight-cpu-debug", "arm,primecell";
+               reg = <0 0xfe710000 0 0x1000>;
+               clocks = <&cru PCLK_COREDBG_B>;
+               clock-names = "apb_pclk";
+               cpu = <&cpu_b1>;
+       };
+
+       usbdrd3_0: usb@fe800000 {
+               compatible = "rockchip,rk3399-dwc3";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               clocks = <&cru SCLK_USB3OTG0_REF>, <&cru SCLK_USB3OTG0_SUSPEND>,
+                        <&cru ACLK_USB3OTG0>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
+                        <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
+               clock-names = "ref_clk", "suspend_clk",
+                             "bus_clk", "aclk_usb3_rksoc_axi_perf",
+                             "aclk_usb3", "grf_clk";
+               resets = <&cru SRST_A_USB3_OTG0>;
+               reset-names = "usb3-otg";
+               status = "disabled";
+
+               usbdrd_dwc3_0: usb@fe800000 {
+                       compatible = "snps,dwc3";
+                       reg = <0x0 0xfe800000 0x0 0x100000>;
+                       interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&cru SCLK_USB3OTG0_REF>, <&cru ACLK_USB3OTG0>,
+                                <&cru SCLK_USB3OTG0_SUSPEND>;
+                       clock-names = "ref", "bus_early", "suspend";
+                       dr_mode = "otg";
+                       phys = <&u2phy0_otg>, <&tcphy0_usb3>;
+                       phy-names = "usb2-phy", "usb3-phy";
+                       phy_type = "utmi_wide";
+                       snps,dis_enblslpm_quirk;
+                       snps,dis-u2-freeclk-exists-quirk;
+                       snps,dis_u2_susphy_quirk;
+                       snps,dis-del-phy-power-chg-quirk;
+                       snps,dis-tx-ipgap-linecheck-quirk;
+                       power-domains = <&power RK3399_PD_USB3>;
+                       status = "disabled";
+               };
+       };
+
+       usbdrd3_1: usb@fe900000 {
+               compatible = "rockchip,rk3399-dwc3";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               clocks = <&cru SCLK_USB3OTG1_REF>, <&cru SCLK_USB3OTG1_SUSPEND>,
+                        <&cru ACLK_USB3OTG1>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
+                        <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
+               clock-names = "ref_clk", "suspend_clk",
+                             "bus_clk", "aclk_usb3_rksoc_axi_perf",
+                             "aclk_usb3", "grf_clk";
+               resets = <&cru SRST_A_USB3_OTG1>;
+               reset-names = "usb3-otg";
+               status = "disabled";
+
+               usbdrd_dwc3_1: usb@fe900000 {
+                       compatible = "snps,dwc3";
+                       reg = <0x0 0xfe900000 0x0 0x100000>;
+                       interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&cru SCLK_USB3OTG1_REF>, <&cru ACLK_USB3OTG1>,
+                                <&cru SCLK_USB3OTG1_SUSPEND>;
+                       clock-names = "ref", "bus_early", "suspend";
+                       dr_mode = "otg";
+                       phys = <&u2phy1_otg>, <&tcphy1_usb3>;
+                       phy-names = "usb2-phy", "usb3-phy";
+                       phy_type = "utmi_wide";
+                       snps,dis_enblslpm_quirk;
+                       snps,dis-u2-freeclk-exists-quirk;
+                       snps,dis_u2_susphy_quirk;
+                       snps,dis-del-phy-power-chg-quirk;
+                       snps,dis-tx-ipgap-linecheck-quirk;
+                       power-domains = <&power RK3399_PD_USB3>;
+                       status = "disabled";
+               };
+       };
+
+       cdn_dp: dp@fec00000 {
+               compatible = "rockchip,rk3399-cdn-dp";
+               reg = <0x0 0xfec00000 0x0 0x100000>;
+               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
+               assigned-clocks = <&cru SCLK_DP_CORE>, <&cru SCLK_SPDIF_REC_DPTX>;
+               assigned-clock-rates = <100000000>, <200000000>;
+               clocks = <&cru SCLK_DP_CORE>, <&cru PCLK_DP_CTRL>,
+                        <&cru SCLK_SPDIF_REC_DPTX>, <&cru PCLK_VIO_GRF>;
+               clock-names = "core-clk", "pclk", "spdif", "grf";
+               phys = <&tcphy0_dp>, <&tcphy1_dp>;
+               power-domains = <&power RK3399_PD_HDCP>;
+               resets = <&cru SRST_DPTX_SPDIF_REC>, <&cru SRST_P_UPHY0_DPTX>,
+                        <&cru SRST_P_UPHY0_APB>, <&cru SRST_DP_CORE>;
+               reset-names = "spdif", "dptx", "apb", "core";
+               rockchip,grf = <&grf>;
+               #sound-dai-cells = <1>;
+               status = "disabled";
+
+               ports {
+                       dp_in: port {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               dp_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_dp>;
+                               };
+
+                               dp_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_dp>;
+                               };
+                       };
+               };
+       };
+
+       gic: interrupt-controller@fee00000 {
+               compatible = "arm,gic-v3";
+               #interrupt-cells = <4>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               interrupt-controller;
+
+               reg = <0x0 0xfee00000 0 0x10000>, /* GICD */
+                     <0x0 0xfef00000 0 0xc0000>, /* GICR */
+                     <0x0 0xfff00000 0 0x10000>, /* GICC */
+                     <0x0 0xfff10000 0 0x10000>, /* GICH */
+                     <0x0 0xfff20000 0 0x10000>; /* GICV */
+               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
+               its: msi-controller@fee20000 {
+                       compatible = "arm,gic-v3-its";
+                       msi-controller;
+                       #msi-cells = <1>;
+                       reg = <0x0 0xfee20000 0x0 0x20000>;
+               };
+
+               ppi-partitions {
+                       ppi_cluster0: interrupt-partition-0 {
+                               affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
+                       };
+
+                       ppi_cluster1: interrupt-partition-1 {
+                               affinity = <&cpu_b0 &cpu_b1>;
+                       };
+               };
+       };
+
+       saradc: saradc@ff100000 {
+               compatible = "rockchip,rk3399-saradc";
+               reg = <0x0 0xff100000 0x0 0x100>;
+               interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH 0>;
+               #io-channel-cells = <1>;
+               clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
+               clock-names = "saradc", "apb_pclk";
+               resets = <&cru SRST_P_SARADC>;
+               reset-names = "saradc-apb";
+               status = "disabled";
+       };
+
+       crypto0: crypto@ff8b0000 {
+               compatible = "rockchip,rk3399-crypto";
+               reg = <0x0 0xff8b0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru HCLK_M_CRYPTO0>, <&cru HCLK_S_CRYPTO0>, <&cru SCLK_CRYPTO0>;
+               clock-names = "hclk_master", "hclk_slave", "sclk";
+               resets = <&cru SRST_CRYPTO0>, <&cru SRST_CRYPTO0_S>, <&cru SRST_CRYPTO0_M>;
+               reset-names = "master", "slave", "crypto-rst";
+       };
+
+       crypto1: crypto@ff8b8000 {
+               compatible = "rockchip,rk3399-crypto";
+               reg = <0x0 0xff8b8000 0x0 0x4000>;
+               interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru HCLK_M_CRYPTO1>, <&cru HCLK_S_CRYPTO1>, <&cru SCLK_CRYPTO1>;
+               clock-names = "hclk_master", "hclk_slave", "sclk";
+               resets = <&cru SRST_CRYPTO1>, <&cru SRST_CRYPTO1_S>, <&cru SRST_CRYPTO1_M>;
+               reset-names = "master", "slave", "crypto-rst";
+       };
+
+       i2c1: i2c@ff110000 {
+               compatible = "rockchip,rk3399-i2c";
+               reg = <0x0 0xff110000 0x0 0x1000>;
+               assigned-clocks = <&cru SCLK_I2C1>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c1_xfer>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c2: i2c@ff120000 {
+               compatible = "rockchip,rk3399-i2c";
+               reg = <0x0 0xff120000 0x0 0x1000>;
+               assigned-clocks = <&cru SCLK_I2C2>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c2_xfer>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c3: i2c@ff130000 {
+               compatible = "rockchip,rk3399-i2c";
+               reg = <0x0 0xff130000 0x0 0x1000>;
+               assigned-clocks = <&cru SCLK_I2C3>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c3_xfer>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c5: i2c@ff140000 {
+               compatible = "rockchip,rk3399-i2c";
+               reg = <0x0 0xff140000 0x0 0x1000>;
+               assigned-clocks = <&cru SCLK_I2C5>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&cru SCLK_I2C5>, <&cru PCLK_I2C5>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c5_xfer>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c6: i2c@ff150000 {
+               compatible = "rockchip,rk3399-i2c";
+               reg = <0x0 0xff150000 0x0 0x1000>;
+               assigned-clocks = <&cru SCLK_I2C6>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&cru SCLK_I2C6>, <&cru PCLK_I2C6>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c6_xfer>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c7: i2c@ff160000 {
+               compatible = "rockchip,rk3399-i2c";
+               reg = <0x0 0xff160000 0x0 0x1000>;
+               assigned-clocks = <&cru SCLK_I2C7>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&cru SCLK_I2C7>, <&cru PCLK_I2C7>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c7_xfer>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       uart0: serial@ff180000 {
+               compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xff180000 0x0 0x100>;
+               clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
+               clock-names = "baudclk", "apb_pclk";
+               interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>;
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&uart0_xfer>;
+               status = "disabled";
+       };
+
+       uart1: serial@ff190000 {
+               compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xff190000 0x0 0x100>;
+               clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
+               clock-names = "baudclk", "apb_pclk";
+               interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>;
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&uart1_xfer>;
+               status = "disabled";
+       };
+
+       uart2: serial@ff1a0000 {
+               compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xff1a0000 0x0 0x100>;
+               clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
+               clock-names = "baudclk", "apb_pclk";
+               interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>;
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&uart2c_xfer>;
+               status = "disabled";
+       };
+
+       uart3: serial@ff1b0000 {
+               compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xff1b0000 0x0 0x100>;
+               clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
+               clock-names = "baudclk", "apb_pclk";
+               interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>;
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&uart3_xfer>;
+               status = "disabled";
+       };
+
+       spi0: spi@ff1c0000 {
+               compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xff1c0000 0x0 0x1000>;
+               clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
+               clock-names = "spiclk", "apb_pclk";
+               interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH 0>;
+               dmas = <&dmac_peri 10>, <&dmac_peri 11>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi1: spi@ff1d0000 {
+               compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xff1d0000 0x0 0x1000>;
+               clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
+               clock-names = "spiclk", "apb_pclk";
+               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH 0>;
+               dmas = <&dmac_peri 12>, <&dmac_peri 13>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi2: spi@ff1e0000 {
+               compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xff1e0000 0x0 0x1000>;
+               clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
+               clock-names = "spiclk", "apb_pclk";
+               interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH 0>;
+               dmas = <&dmac_peri 14>, <&dmac_peri 15>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi4: spi@ff1f0000 {
+               compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xff1f0000 0x0 0x1000>;
+               clocks = <&cru SCLK_SPI4>, <&cru PCLK_SPI4>;
+               clock-names = "spiclk", "apb_pclk";
+               interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH 0>;
+               dmas = <&dmac_peri 18>, <&dmac_peri 19>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi5: spi@ff200000 {
+               compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xff200000 0x0 0x1000>;
+               clocks = <&cru SCLK_SPI5>, <&cru PCLK_SPI5>;
+               clock-names = "spiclk", "apb_pclk";
+               interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH 0>;
+               dmas = <&dmac_bus 8>, <&dmac_bus 9>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>;
+               power-domains = <&power RK3399_PD_SDIOAUDIO>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       thermal_zones: thermal-zones {
+               cpu_thermal: cpu-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsadc 0>;
+
+                       trips {
+                               cpu_alert0: cpu_alert0 {
+                                       temperature = <70000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_alert1: cpu_alert1 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit: cpu_crit {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert0>;
+                                       cooling-device =
+                                               <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                               map1 {
+                                       trip = <&cpu_alert1>;
+                                       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>,
+                                               <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               gpu_thermal: gpu-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsadc 1>;
+
+                       trips {
+                               gpu_alert0: gpu_alert0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               gpu_crit: gpu_crit {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu_alert0>;
+                                       cooling-device =
+                                               <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
+
+       tsadc: tsadc@ff260000 {
+               compatible = "rockchip,rk3399-tsadc";
+               reg = <0x0 0xff260000 0x0 0x100>;
+               interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
+               assigned-clocks = <&cru SCLK_TSADC>;
+               assigned-clock-rates = <750000>;
+               clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
+               clock-names = "tsadc", "apb_pclk";
+               resets = <&cru SRST_TSADC>;
+               reset-names = "tsadc-apb";
+               rockchip,grf = <&grf>;
+               rockchip,hw-tshut-temp = <95000>;
+               pinctrl-names = "init", "default", "sleep";
+               pinctrl-0 = <&otp_pin>;
+               pinctrl-1 = <&otp_out>;
+               pinctrl-2 = <&otp_pin>;
+               #thermal-sensor-cells = <1>;
+               status = "disabled";
+       };
+
+       qos_emmc: qos@ffa58000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffa58000 0x0 0x20>;
+       };
+
+       qos_gmac: qos@ffa5c000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffa5c000 0x0 0x20>;
+       };
+
+       qos_pcie: qos@ffa60080 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffa60080 0x0 0x20>;
+       };
+
+       qos_usb_host0: qos@ffa60100 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffa60100 0x0 0x20>;
+       };
+
+       qos_usb_host1: qos@ffa60180 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffa60180 0x0 0x20>;
+       };
+
+       qos_usb_otg0: qos@ffa70000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffa70000 0x0 0x20>;
+       };
+
+       qos_usb_otg1: qos@ffa70080 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffa70080 0x0 0x20>;
+       };
+
+       qos_sd: qos@ffa74000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffa74000 0x0 0x20>;
+       };
+
+       qos_sdioaudio: qos@ffa76000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffa76000 0x0 0x20>;
+       };
+
+       qos_hdcp: qos@ffa90000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffa90000 0x0 0x20>;
+       };
+
+       qos_iep: qos@ffa98000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffa98000 0x0 0x20>;
+       };
+
+       qos_isp0_m0: qos@ffaa0000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffaa0000 0x0 0x20>;
+       };
+
+       qos_isp0_m1: qos@ffaa0080 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffaa0080 0x0 0x20>;
+       };
+
+       qos_isp1_m0: qos@ffaa8000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffaa8000 0x0 0x20>;
+       };
+
+       qos_isp1_m1: qos@ffaa8080 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffaa8080 0x0 0x20>;
+       };
+
+       qos_rga_r: qos@ffab0000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffab0000 0x0 0x20>;
+       };
+
+       qos_rga_w: qos@ffab0080 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffab0080 0x0 0x20>;
+       };
+
+       qos_video_m0: qos@ffab8000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffab8000 0x0 0x20>;
+       };
+
+       qos_video_m1_r: qos@ffac0000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffac0000 0x0 0x20>;
+       };
+
+       qos_video_m1_w: qos@ffac0080 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffac0080 0x0 0x20>;
+       };
+
+       qos_vop_big_r: qos@ffac8000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffac8000 0x0 0x20>;
+       };
+
+       qos_vop_big_w: qos@ffac8080 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffac8080 0x0 0x20>;
+       };
+
+       qos_vop_little: qos@ffad0000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffad0000 0x0 0x20>;
+       };
+
+       qos_perihp: qos@ffad8080 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffad8080 0x0 0x20>;
+       };
+
+       qos_gpu: qos@ffae0000 {
+               compatible = "rockchip,rk3399-qos", "syscon";
+               reg = <0x0 0xffae0000 0x0 0x20>;
+       };
+
+       pmu: power-management@ff310000 {
+               compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
+               reg = <0x0 0xff310000 0x0 0x1000>;
+
+               /*
+                * Note: RK3399 supports 6 voltage domains including VD_CORE_L,
+                * VD_CORE_B, VD_CENTER, VD_GPU, VD_LOGIC and VD_PMU.
+                * Some of the power domains are grouped together for every
+                * voltage domain.
+                * The detail contents as below.
+                */
+               power: power-controller {
+                       compatible = "rockchip,rk3399-power-controller";
+                       #power-domain-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* These power domains are grouped by VD_CENTER */
+                       power-domain@RK3399_PD_IEP {
+                               reg = <RK3399_PD_IEP>;
+                               clocks = <&cru ACLK_IEP>,
+                                        <&cru HCLK_IEP>;
+                               pm_qos = <&qos_iep>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3399_PD_RGA {
+                               reg = <RK3399_PD_RGA>;
+                               clocks = <&cru ACLK_RGA>,
+                                        <&cru HCLK_RGA>;
+                               pm_qos = <&qos_rga_r>,
+                                        <&qos_rga_w>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3399_PD_VCODEC {
+                               reg = <RK3399_PD_VCODEC>;
+                               clocks = <&cru ACLK_VCODEC>,
+                                        <&cru HCLK_VCODEC>;
+                               pm_qos = <&qos_video_m0>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3399_PD_VDU {
+                               reg = <RK3399_PD_VDU>;
+                               clocks = <&cru ACLK_VDU>,
+                                        <&cru HCLK_VDU>,
+                                        <&cru SCLK_VDU_CA>,
+                                        <&cru SCLK_VDU_CORE>;
+                               pm_qos = <&qos_video_m1_r>,
+                                        <&qos_video_m1_w>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       /* These power domains are grouped by VD_GPU */
+                       power-domain@RK3399_PD_GPU {
+                               reg = <RK3399_PD_GPU>;
+                               clocks = <&cru ACLK_GPU>;
+                               pm_qos = <&qos_gpu>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       /* These power domains are grouped by VD_LOGIC */
+                       power-domain@RK3399_PD_EDP {
+                               reg = <RK3399_PD_EDP>;
+                               clocks = <&cru PCLK_EDP_CTRL>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3399_PD_EMMC {
+                               reg = <RK3399_PD_EMMC>;
+                               clocks = <&cru ACLK_EMMC>;
+                               pm_qos = <&qos_emmc>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3399_PD_GMAC {
+                               reg = <RK3399_PD_GMAC>;
+                               clocks = <&cru ACLK_GMAC>,
+                                        <&cru PCLK_GMAC>;
+                               pm_qos = <&qos_gmac>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3399_PD_SD {
+                               reg = <RK3399_PD_SD>;
+                               clocks = <&cru HCLK_SDMMC>,
+                                        <&cru SCLK_SDMMC>;
+                               pm_qos = <&qos_sd>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3399_PD_SDIOAUDIO {
+                               reg = <RK3399_PD_SDIOAUDIO>;
+                               clocks = <&cru HCLK_SDIO>;
+                               pm_qos = <&qos_sdioaudio>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3399_PD_TCPD0 {
+                               reg = <RK3399_PD_TCPD0>;
+                               clocks = <&cru SCLK_UPHY0_TCPDCORE>,
+                                        <&cru SCLK_UPHY0_TCPDPHY_REF>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3399_PD_TCPD1 {
+                               reg = <RK3399_PD_TCPD1>;
+                               clocks = <&cru SCLK_UPHY1_TCPDCORE>,
+                                        <&cru SCLK_UPHY1_TCPDPHY_REF>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3399_PD_USB3 {
+                               reg = <RK3399_PD_USB3>;
+                               clocks = <&cru ACLK_USB3>;
+                               pm_qos = <&qos_usb_otg0>,
+                                        <&qos_usb_otg1>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3399_PD_VIO {
+                               reg = <RK3399_PD_VIO>;
+                               #power-domain-cells = <1>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               power-domain@RK3399_PD_HDCP {
+                                       reg = <RK3399_PD_HDCP>;
+                                       clocks = <&cru ACLK_HDCP>,
+                                                <&cru HCLK_HDCP>,
+                                                <&cru PCLK_HDCP>;
+                                       pm_qos = <&qos_hdcp>;
+                                       #power-domain-cells = <0>;
+                               };
+                               power-domain@RK3399_PD_ISP0 {
+                                       reg = <RK3399_PD_ISP0>;
+                                       clocks = <&cru ACLK_ISP0>,
+                                                <&cru HCLK_ISP0>;
+                                       pm_qos = <&qos_isp0_m0>,
+                                                <&qos_isp0_m1>;
+                                       #power-domain-cells = <0>;
+                               };
+                               power-domain@RK3399_PD_ISP1 {
+                                       reg = <RK3399_PD_ISP1>;
+                                       clocks = <&cru ACLK_ISP1>,
+                                                <&cru HCLK_ISP1>;
+                                       pm_qos = <&qos_isp1_m0>,
+                                                <&qos_isp1_m1>;
+                                       #power-domain-cells = <0>;
+                               };
+                               power-domain@RK3399_PD_VO {
+                                       reg = <RK3399_PD_VO>;
+                                       #power-domain-cells = <1>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       power-domain@RK3399_PD_VOPB {
+                                               reg = <RK3399_PD_VOPB>;
+                                               clocks = <&cru ACLK_VOP0>,
+                                                        <&cru HCLK_VOP0>;
+                                               pm_qos = <&qos_vop_big_r>,
+                                                        <&qos_vop_big_w>;
+                                               #power-domain-cells = <0>;
+                                       };
+                                       power-domain@RK3399_PD_VOPL {
+                                               reg = <RK3399_PD_VOPL>;
+                                               clocks = <&cru ACLK_VOP1>,
+                                                        <&cru HCLK_VOP1>;
+                                               pm_qos = <&qos_vop_little>;
+                                               #power-domain-cells = <0>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       pmugrf: syscon@ff320000 {
+               compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
+               reg = <0x0 0xff320000 0x0 0x1000>;
+
+               pmu_io_domains: io-domains {
+                       compatible = "rockchip,rk3399-pmu-io-voltage-domain";
+                       status = "disabled";
+               };
+       };
+
+       spi3: spi@ff350000 {
+               compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xff350000 0x0 0x1000>;
+               clocks = <&pmucru SCLK_SPI3_PMU>, <&pmucru PCLK_SPI3_PMU>;
+               clock-names = "spiclk", "apb_pclk";
+               interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       uart4: serial@ff370000 {
+               compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xff370000 0x0 0x100>;
+               clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>;
+               clock-names = "baudclk", "apb_pclk";
+               interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>;
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&uart4_xfer>;
+               status = "disabled";
+       };
+
+       i2c0: i2c@ff3c0000 {
+               compatible = "rockchip,rk3399-i2c";
+               reg = <0x0 0xff3c0000 0x0 0x1000>;
+               assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c0_xfer>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c4: i2c@ff3d0000 {
+               compatible = "rockchip,rk3399-i2c";
+               reg = <0x0 0xff3d0000 0x0 0x1000>;
+               assigned-clocks = <&pmucru SCLK_I2C4_PMU>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&pmucru SCLK_I2C4_PMU>, <&pmucru PCLK_I2C4_PMU>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c4_xfer>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c8: i2c@ff3e0000 {
+               compatible = "rockchip,rk3399-i2c";
+               reg = <0x0 0xff3e0000 0x0 0x1000>;
+               assigned-clocks = <&pmucru SCLK_I2C8_PMU>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&pmucru SCLK_I2C8_PMU>, <&pmucru PCLK_I2C8_PMU>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c8_xfer>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       pwm0: pwm@ff420000 {
+               compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
+               reg = <0x0 0xff420000 0x0 0x10>;
+               #pwm-cells = <3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm0_pin>;
+               clocks = <&pmucru PCLK_RKPWM_PMU>;
+               status = "disabled";
+       };
+
+       pwm1: pwm@ff420010 {
+               compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
+               reg = <0x0 0xff420010 0x0 0x10>;
+               #pwm-cells = <3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm1_pin>;
+               clocks = <&pmucru PCLK_RKPWM_PMU>;
+               status = "disabled";
+       };
+
+       pwm2: pwm@ff420020 {
+               compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
+               reg = <0x0 0xff420020 0x0 0x10>;
+               #pwm-cells = <3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm2_pin>;
+               clocks = <&pmucru PCLK_RKPWM_PMU>;
+               status = "disabled";
+       };
+
+       pwm3: pwm@ff420030 {
+               compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
+               reg = <0x0 0xff420030 0x0 0x10>;
+               #pwm-cells = <3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm3a_pin>;
+               clocks = <&pmucru PCLK_RKPWM_PMU>;
+               status = "disabled";
+       };
+
+       dfi: dfi@ff630000 {
+               reg = <0x00 0xff630000 0x00 0x4000>;
+               compatible = "rockchip,rk3399-dfi";
+               rockchip,pmu = <&pmugrf>;
+               interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru PCLK_DDR_MON>;
+               clock-names = "pclk_ddr_mon";
+       };
+
+       vpu: video-codec@ff650000 {
+               compatible = "rockchip,rk3399-vpu";
+               reg = <0x0 0xff650000 0x0 0x800>;
+               interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vepu", "vdpu";
+               clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
+               clock-names = "aclk", "hclk";
+               iommus = <&vpu_mmu>;
+               power-domains = <&power RK3399_PD_VCODEC>;
+       };
+
+       vpu_mmu: iommu@ff650800 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff650800 0x0 0x40>;
+               interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
+               power-domains = <&power RK3399_PD_VCODEC>;
+       };
+
+       vdec: video-codec@ff660000 {
+               compatible = "rockchip,rk3399-vdec";
+               reg = <0x0 0xff660000 0x0 0x480>;
+               interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>,
+                        <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
+               clock-names = "axi", "ahb", "cabac", "core";
+               iommus = <&vdec_mmu>;
+               power-domains = <&power RK3399_PD_VDU>;
+       };
+
+       vdec_mmu: iommu@ff660480 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff660480 0x0 0x40>, <0x0 0xff6604c0 0x0 0x40>;
+               interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>;
+               clock-names = "aclk", "iface";
+               power-domains = <&power RK3399_PD_VDU>;
+               #iommu-cells = <0>;
+       };
+
+       iep_mmu: iommu@ff670800 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff670800 0x0 0x40>;
+               interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       rga: rga@ff680000 {
+               compatible = "rockchip,rk3399-rga";
+               reg = <0x0 0xff680000 0x0 0x10000>;
+               interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA_CORE>;
+               clock-names = "aclk", "hclk", "sclk";
+               resets = <&cru SRST_RGA_CORE>, <&cru SRST_A_RGA>, <&cru SRST_H_RGA>;
+               reset-names = "core", "axi", "ahb";
+               power-domains = <&power RK3399_PD_RGA>;
+       };
+
+       efuse0: efuse@ff690000 {
+               compatible = "rockchip,rk3399-efuse";
+               reg = <0x0 0xff690000 0x0 0x80>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               clocks = <&cru PCLK_EFUSE1024NS>;
+               clock-names = "pclk_efuse";
+
+               /* Data cells */
+               cpu_id: cpu-id@7 {
+                       reg = <0x07 0x10>;
+               };
+               cpub_leakage: cpu-leakage@17 {
+                       reg = <0x17 0x1>;
+               };
+               gpu_leakage: gpu-leakage@18 {
+                       reg = <0x18 0x1>;
+               };
+               center_leakage: center-leakage@19 {
+                       reg = <0x19 0x1>;
+               };
+               cpul_leakage: cpu-leakage@1a {
+                       reg = <0x1a 0x1>;
+               };
+               logic_leakage: logic-leakage@1b {
+                       reg = <0x1b 0x1>;
+               };
+               wafer_info: wafer-info@1c {
+                       reg = <0x1c 0x1>;
+               };
+       };
+
+       dmac_bus: dma-controller@ff6d0000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xff6d0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
+               #dma-cells = <1>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC0_PERILP>;
+               clock-names = "apb_pclk";
+       };
+
+       dmac_peri: dma-controller@ff6e0000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xff6e0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
+               #dma-cells = <1>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC1_PERILP>;
+               clock-names = "apb_pclk";
+       };
+
+       pmucru: clock-controller@ff750000 {
+               compatible = "rockchip,rk3399-pmucru";
+               reg = <0x0 0xff750000 0x0 0x1000>;
+               clocks = <&xin24m>;
+               clock-names = "xin24m";
+               rockchip,grf = <&pmugrf>;
+               #clock-cells = <1>;
+               #reset-cells = <1>;
+               assigned-clocks = <&pmucru PLL_PPLL>;
+               assigned-clock-rates = <676000000>;
+       };
+
+       cru: clock-controller@ff760000 {
+               compatible = "rockchip,rk3399-cru";
+               reg = <0x0 0xff760000 0x0 0x1000>;
+               clocks = <&xin24m>;
+               clock-names = "xin24m";
+               rockchip,grf = <&grf>;
+               #clock-cells = <1>;
+               #reset-cells = <1>;
+               assigned-clocks =
+                       <&cru PLL_GPLL>, <&cru PLL_CPLL>,
+                       <&cru PLL_NPLL>,
+                       <&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
+                       <&cru PCLK_PERIHP>,
+                       <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
+                       <&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
+                       <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>,
+                       <&cru ACLK_VIO>, <&cru ACLK_HDCP>,
+                       <&cru ACLK_GIC_PRE>,
+                       <&cru PCLK_DDR>,
+                       <&cru ACLK_VDU>;
+               assigned-clock-rates =
+                        <594000000>,  <800000000>,
+                       <1000000000>,
+                        <150000000>,   <75000000>,
+                         <37500000>,
+                        <100000000>,  <100000000>,
+                         <50000000>, <600000000>,
+                        <100000000>,   <50000000>,
+                        <400000000>, <400000000>,
+                        <200000000>,
+                        <200000000>,
+                        <400000000>;
+       };
+
+       grf: syscon@ff770000 {
+               compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
+               reg = <0x0 0xff770000 0x0 0x10000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               io_domains: io-domains {
+                       compatible = "rockchip,rk3399-io-voltage-domain";
+                       status = "disabled";
+               };
+
+               mipi_dphy_rx0: mipi-dphy-rx0 {
+                       compatible = "rockchip,rk3399-mipi-dphy-rx0";
+                       clocks = <&cru SCLK_MIPIDPHY_REF>,
+                                <&cru SCLK_DPHY_RX0_CFG>,
+                                <&cru PCLK_VIO_GRF>;
+                       clock-names = "dphy-ref", "dphy-cfg", "grf";
+                       power-domains = <&power RK3399_PD_VIO>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               u2phy0: usb2phy@e450 {
+                       compatible = "rockchip,rk3399-usb2phy";
+                       reg = <0xe450 0x10>;
+                       clocks = <&cru SCLK_USB2PHY0_REF>;
+                       clock-names = "phyclk";
+                       #clock-cells = <0>;
+                       clock-output-names = "clk_usbphy0_480m";
+                       status = "disabled";
+
+                       u2phy0_host: host-port {
+                               #phy-cells = <0>;
+                               interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
+                               interrupt-names = "linestate";
+                               status = "disabled";
+                       };
+
+                       u2phy0_otg: otg-port {
+                               #phy-cells = <0>;
+                               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
+                                            <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
+                                            <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
+                               interrupt-names = "otg-bvalid", "otg-id",
+                                                 "linestate";
+                               status = "disabled";
+                       };
+               };
+
+               u2phy1: usb2phy@e460 {
+                       compatible = "rockchip,rk3399-usb2phy";
+                       reg = <0xe460 0x10>;
+                       clocks = <&cru SCLK_USB2PHY1_REF>;
+                       clock-names = "phyclk";
+                       #clock-cells = <0>;
+                       clock-output-names = "clk_usbphy1_480m";
+                       status = "disabled";
+
+                       u2phy1_host: host-port {
+                               #phy-cells = <0>;
+                               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH 0>;
+                               interrupt-names = "linestate";
+                               status = "disabled";
+                       };
+
+                       u2phy1_otg: otg-port {
+                               #phy-cells = <0>;
+                               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>,
+                                            <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>,
+                                            <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>;
+                               interrupt-names = "otg-bvalid", "otg-id",
+                                                 "linestate";
+                               status = "disabled";
+                       };
+               };
+
+               emmc_phy: phy@f780 {
+                       compatible = "rockchip,rk3399-emmc-phy";
+                       reg = <0xf780 0x24>;
+                       clocks = <&sdhci>;
+                       clock-names = "emmcclk";
+                       drive-impedance-ohm = <50>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               pcie_phy: pcie-phy {
+                       compatible = "rockchip,rk3399-pcie-phy";
+                       clocks = <&cru SCLK_PCIEPHY_REF>;
+                       clock-names = "refclk";
+                       #phy-cells = <1>;
+                       resets = <&cru SRST_PCIEPHY>;
+                       reset-names = "phy";
+                       status = "disabled";
+               };
+       };
+
+       tcphy0: phy@ff7c0000 {
+               compatible = "rockchip,rk3399-typec-phy";
+               reg = <0x0 0xff7c0000 0x0 0x40000>;
+               clocks = <&cru SCLK_UPHY0_TCPDCORE>,
+                        <&cru SCLK_UPHY0_TCPDPHY_REF>;
+               clock-names = "tcpdcore", "tcpdphy-ref";
+               assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
+               assigned-clock-rates = <50000000>;
+               power-domains = <&power RK3399_PD_TCPD0>;
+               resets = <&cru SRST_UPHY0>,
+                        <&cru SRST_UPHY0_PIPE_L00>,
+                        <&cru SRST_P_UPHY0_TCPHY>;
+               reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               tcphy0_dp: dp-port {
+                       #phy-cells = <0>;
+               };
+
+               tcphy0_usb3: usb3-port {
+                       #phy-cells = <0>;
+               };
+       };
+
+       tcphy1: phy@ff800000 {
+               compatible = "rockchip,rk3399-typec-phy";
+               reg = <0x0 0xff800000 0x0 0x40000>;
+               clocks = <&cru SCLK_UPHY1_TCPDCORE>,
+                        <&cru SCLK_UPHY1_TCPDPHY_REF>;
+               clock-names = "tcpdcore", "tcpdphy-ref";
+               assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
+               assigned-clock-rates = <50000000>;
+               power-domains = <&power RK3399_PD_TCPD1>;
+               resets = <&cru SRST_UPHY1>,
+                        <&cru SRST_UPHY1_PIPE_L00>,
+                        <&cru SRST_P_UPHY1_TCPHY>;
+               reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               tcphy1_dp: dp-port {
+                       #phy-cells = <0>;
+               };
+
+               tcphy1_usb3: usb3-port {
+                       #phy-cells = <0>;
+               };
+       };
+
+       watchdog@ff848000 {
+               compatible = "rockchip,rk3399-wdt", "snps,dw-wdt";
+               reg = <0x0 0xff848000 0x0 0x100>;
+               clocks = <&cru PCLK_WDT>;
+               interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       rktimer: rktimer@ff850000 {
+               compatible = "rockchip,rk3399-timer";
+               reg = <0x0 0xff850000 0x0 0x1000>;
+               interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
+               clock-names = "pclk", "timer";
+       };
+
+       spdif: spdif@ff870000 {
+               compatible = "rockchip,rk3399-spdif";
+               reg = <0x0 0xff870000 0x0 0x1000>;
+               interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH 0>;
+               dmas = <&dmac_bus 7>;
+               dma-names = "tx";
+               clock-names = "mclk", "hclk";
+               clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&spdif_bus>;
+               power-domains = <&power RK3399_PD_SDIOAUDIO>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s0: i2s@ff880000 {
+               compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
+               reg = <0x0 0xff880000 0x0 0x1000>;
+               rockchip,grf = <&grf>;
+               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH 0>;
+               dmas = <&dmac_bus 0>, <&dmac_bus 1>;
+               dma-names = "tx", "rx";
+               clock-names = "i2s_clk", "i2s_hclk";
+               clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
+               pinctrl-names = "bclk_on", "bclk_off";
+               pinctrl-0 = <&i2s0_8ch_bus>;
+               pinctrl-1 = <&i2s0_8ch_bus_bclk_off>;
+               power-domains = <&power RK3399_PD_SDIOAUDIO>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s1: i2s@ff890000 {
+               compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
+               reg = <0x0 0xff890000 0x0 0x1000>;
+               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH 0>;
+               dmas = <&dmac_bus 2>, <&dmac_bus 3>;
+               dma-names = "tx", "rx";
+               clock-names = "i2s_clk", "i2s_hclk";
+               clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s1_2ch_bus>;
+               power-domains = <&power RK3399_PD_SDIOAUDIO>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s2: i2s@ff8a0000 {
+               compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
+               reg = <0x0 0xff8a0000 0x0 0x1000>;
+               interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH 0>;
+               dmas = <&dmac_bus 4>, <&dmac_bus 5>;
+               dma-names = "tx", "rx";
+               clock-names = "i2s_clk", "i2s_hclk";
+               clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
+               power-domains = <&power RK3399_PD_SDIOAUDIO>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       vopl: vop@ff8f0000 {
+               compatible = "rockchip,rk3399-vop-lit";
+               reg = <0x0 0xff8f0000 0x0 0x2000>, <0x0 0xff8f2000 0x0 0x400>;
+               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
+               assigned-clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
+               assigned-clock-rates = <400000000>, <100000000>;
+               clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
+               clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
+               iommus = <&vopl_mmu>;
+               power-domains = <&power RK3399_PD_VOPL>;
+               resets = <&cru SRST_A_VOP1>, <&cru SRST_H_VOP1>, <&cru SRST_D_VOP1>;
+               reset-names = "axi", "ahb", "dclk";
+               status = "disabled";
+
+               vopl_out: port {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       vopl_out_mipi: endpoint@0 {
+                               reg = <0>;
+                               remote-endpoint = <&mipi_in_vopl>;
+                       };
+
+                       vopl_out_edp: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&edp_in_vopl>;
+                       };
+
+                       vopl_out_hdmi: endpoint@2 {
+                               reg = <2>;
+                               remote-endpoint = <&hdmi_in_vopl>;
+                       };
+
+                       vopl_out_mipi1: endpoint@3 {
+                               reg = <3>;
+                               remote-endpoint = <&mipi1_in_vopl>;
+                       };
+
+                       vopl_out_dp: endpoint@4 {
+                               reg = <4>;
+                               remote-endpoint = <&dp_in_vopl>;
+                       };
+               };
+       };
+
+       vopl_mmu: iommu@ff8f3f00 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff8f3f00 0x0 0x100>;
+               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
+               clock-names = "aclk", "iface";
+               power-domains = <&power RK3399_PD_VOPL>;
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       vopb: vop@ff900000 {
+               compatible = "rockchip,rk3399-vop-big";
+               reg = <0x0 0xff900000 0x0 0x2000>, <0x0 0xff902000 0x0 0x1000>;
+               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
+               assigned-clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
+               assigned-clock-rates = <400000000>, <100000000>;
+               clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
+               clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
+               iommus = <&vopb_mmu>;
+               power-domains = <&power RK3399_PD_VOPB>;
+               resets = <&cru SRST_A_VOP0>, <&cru SRST_H_VOP0>, <&cru SRST_D_VOP0>;
+               reset-names = "axi", "ahb", "dclk";
+               status = "disabled";
+
+               vopb_out: port {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       vopb_out_edp: endpoint@0 {
+                               reg = <0>;
+                               remote-endpoint = <&edp_in_vopb>;
+                       };
+
+                       vopb_out_mipi: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&mipi_in_vopb>;
+                       };
+
+                       vopb_out_hdmi: endpoint@2 {
+                               reg = <2>;
+                               remote-endpoint = <&hdmi_in_vopb>;
+                       };
+
+                       vopb_out_mipi1: endpoint@3 {
+                               reg = <3>;
+                               remote-endpoint = <&mipi1_in_vopb>;
+                       };
+
+                       vopb_out_dp: endpoint@4 {
+                               reg = <4>;
+                               remote-endpoint = <&dp_in_vopb>;
+                       };
+               };
+       };
+
+       vopb_mmu: iommu@ff903f00 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff903f00 0x0 0x100>;
+               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
+               clock-names = "aclk", "iface";
+               power-domains = <&power RK3399_PD_VOPB>;
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       isp0: isp0@ff910000 {
+               compatible = "rockchip,rk3399-cif-isp";
+               reg = <0x0 0xff910000 0x0 0x4000>;
+               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_ISP0>,
+                        <&cru ACLK_ISP0_WRAPPER>,
+                        <&cru HCLK_ISP0_WRAPPER>;
+               clock-names = "isp", "aclk", "hclk";
+               iommus = <&isp0_mmu>;
+               phys = <&mipi_dphy_rx0>;
+               phy-names = "dphy";
+               power-domains = <&power RK3399_PD_ISP0>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+       };
+
+       isp0_mmu: iommu@ff914000 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
+               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_ISP0_WRAPPER>, <&cru HCLK_ISP0_WRAPPER>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
+               power-domains = <&power RK3399_PD_ISP0>;
+               rockchip,disable-mmu-reset;
+       };
+
+       isp1: isp1@ff920000 {
+               compatible = "rockchip,rk3399-cif-isp";
+               reg = <0x0 0xff920000 0x0 0x4000>;
+               interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_ISP1>,
+                        <&cru ACLK_ISP1_WRAPPER>,
+                        <&cru HCLK_ISP1_WRAPPER>;
+               clock-names = "isp", "aclk", "hclk";
+               iommus = <&isp1_mmu>;
+               phys = <&mipi_dsi1>;
+               phy-names = "dphy";
+               power-domains = <&power RK3399_PD_ISP1>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+       };
+
+       isp1_mmu: iommu@ff924000 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
+               interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_ISP1_WRAPPER>, <&cru HCLK_ISP1_WRAPPER>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
+               power-domains = <&power RK3399_PD_ISP1>;
+               rockchip,disable-mmu-reset;
+       };
+
+       hdmi_sound: hdmi-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,name = "hdmi-sound";
+               status = "disabled";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s2>;
+               };
+               simple-audio-card,codec {
+                       sound-dai = <&hdmi>;
+               };
+       };
+
+       hdmi: hdmi@ff940000 {
+               compatible = "rockchip,rk3399-dw-hdmi";
+               reg = <0x0 0xff940000 0x0 0x20000>;
+               reg-io-width = <4>;
+               interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru PCLK_HDMI_CTRL>,
+                        <&cru SCLK_HDMI_SFR>,
+                        <&cru SCLK_HDMI_CEC>,
+                        <&cru PCLK_VIO_GRF>,
+                        <&cru PLL_VPLL>;
+               clock-names = "iahb", "isfr", "cec", "grf", "ref";
+               power-domains = <&power RK3399_PD_HDCP>;
+               rockchip,grf = <&grf>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       hdmi_in: port@0 {
+                               reg = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               hdmi_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_hdmi>;
+                               };
+                               hdmi_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_hdmi>;
+                               };
+                       };
+
+                       hdmi_out: port@1 {
+                               reg = <1>;
+                       };
+               };
+       };
+
+       mipi_dsi: dsi@ff960000 {
+               compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
+               reg = <0x0 0xff960000 0x0 0x8000>;
+               interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_DPHY_PLL>, <&cru PCLK_MIPI_DSI0>,
+                        <&cru SCLK_DPHY_TX0_CFG>, <&cru PCLK_VIO_GRF>;
+               clock-names = "ref", "pclk", "phy_cfg", "grf";
+               power-domains = <&power RK3399_PD_VIO>;
+               resets = <&cru SRST_P_MIPI_DSI0>;
+               reset-names = "apb";
+               rockchip,grf = <&grf>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       mipi_in: port@0 {
+                               reg = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               mipi_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_mipi>;
+                               };
+
+                               mipi_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_mipi>;
+                               };
+                       };
+
+                       mipi_out: port@1 {
+                               reg = <1>;
+                       };
+               };
+       };
+
+       mipi_dsi1: dsi@ff968000 {
+               compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
+               reg = <0x0 0xff968000 0x0 0x8000>;
+               interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_DPHY_PLL>, <&cru PCLK_MIPI_DSI1>,
+                        <&cru SCLK_DPHY_TX1RX1_CFG>, <&cru PCLK_VIO_GRF>;
+               clock-names = "ref", "pclk", "phy_cfg", "grf";
+               power-domains = <&power RK3399_PD_VIO>;
+               resets = <&cru SRST_P_MIPI_DSI1>;
+               reset-names = "apb";
+               rockchip,grf = <&grf>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               #phy-cells = <0>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       mipi1_in: port@0 {
+                               reg = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               mipi1_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_mipi1>;
+                               };
+
+                               mipi1_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_mipi1>;
+                               };
+                       };
+
+                       mipi1_out: port@1 {
+                               reg = <1>;
+                       };
+               };
+       };
+
+       edp: dp@ff970000 {
+               compatible = "rockchip,rk3399-edp";
+               reg = <0x0 0xff970000 0x0 0x8000>;
+               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru PCLK_EDP>, <&cru PCLK_EDP_CTRL>, <&cru PCLK_VIO_GRF>;
+               clock-names = "dp", "pclk", "grf";
+               pinctrl-names = "default";
+               pinctrl-0 = <&edp_hpd>;
+               power-domains = <&power RK3399_PD_EDP>;
+               resets = <&cru SRST_P_EDP_CTRL>;
+               reset-names = "dp";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       edp_in: port@0 {
+                               reg = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               edp_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_edp>;
+                               };
+
+                               edp_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_edp>;
+                               };
+                       };
+
+                       edp_out: port@1 {
+                               reg = <1>;
+                       };
+               };
+       };
+
+       gpu: gpu@ff9a0000 {
+               compatible = "rockchip,rk3399-mali", "arm,mali-t860";
+               reg = <0x0 0xff9a0000 0x0 0x10000>;
+               interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "job", "mmu", "gpu";
+               clocks = <&cru ACLK_GPU>;
+               #cooling-cells = <2>;
+               dynamic-power-coefficient = <2640>;
+               power-domains = <&power RK3399_PD_GPU>;
+               status = "disabled";
+       };
+
+       pinctrl: pinctrl {
+               compatible = "rockchip,rk3399-pinctrl";
+               rockchip,grf = <&grf>;
+               rockchip,pmu = <&pmugrf>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               gpio0: gpio@ff720000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xff720000 0x0 0x100>;
+                       clocks = <&pmucru PCLK_GPIO0_PMU>;
+                       interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+               };
+
+               gpio1: gpio@ff730000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xff730000 0x0 0x100>;
+                       clocks = <&pmucru PCLK_GPIO1_PMU>;
+                       interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+               };
+
+               gpio2: gpio@ff780000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xff780000 0x0 0x100>;
+                       clocks = <&cru PCLK_GPIO2>;
+                       interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+               };
+
+               gpio3: gpio@ff788000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xff788000 0x0 0x100>;
+                       clocks = <&cru PCLK_GPIO3>;
+                       interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+               };
+
+               gpio4: gpio@ff790000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xff790000 0x0 0x100>;
+                       clocks = <&cru PCLK_GPIO4>;
+                       interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+               };
+
+               pcfg_pull_up: pcfg-pull-up {
+                       bias-pull-up;
+               };
+
+               pcfg_pull_down: pcfg-pull-down {
+                       bias-pull-down;
+               };
+
+               pcfg_pull_none: pcfg-pull-none {
+                       bias-disable;
+               };
+
+               pcfg_pull_none_12ma: pcfg-pull-none-12ma {
+                       bias-disable;
+                       drive-strength = <12>;
+               };
+
+               pcfg_pull_none_13ma: pcfg-pull-none-13ma {
+                       bias-disable;
+                       drive-strength = <13>;
+               };
+
+               pcfg_pull_none_18ma: pcfg-pull-none-18ma {
+                       bias-disable;
+                       drive-strength = <18>;
+               };
+
+               pcfg_pull_none_20ma: pcfg-pull-none-20ma {
+                       bias-disable;
+                       drive-strength = <20>;
+               };
+
+               pcfg_pull_up_2ma: pcfg-pull-up-2ma {
+                       bias-pull-up;
+                       drive-strength = <2>;
+               };
+
+               pcfg_pull_up_8ma: pcfg-pull-up-8ma {
+                       bias-pull-up;
+                       drive-strength = <8>;
+               };
+
+               pcfg_pull_up_18ma: pcfg-pull-up-18ma {
+                       bias-pull-up;
+                       drive-strength = <18>;
+               };
+
+               pcfg_pull_up_20ma: pcfg-pull-up-20ma {
+                       bias-pull-up;
+                       drive-strength = <20>;
+               };
+
+               pcfg_pull_down_4ma: pcfg-pull-down-4ma {
+                       bias-pull-down;
+                       drive-strength = <4>;
+               };
+
+               pcfg_pull_down_8ma: pcfg-pull-down-8ma {
+                       bias-pull-down;
+                       drive-strength = <8>;
+               };
+
+               pcfg_pull_down_12ma: pcfg-pull-down-12ma {
+                       bias-pull-down;
+                       drive-strength = <12>;
+               };
+
+               pcfg_pull_down_18ma: pcfg-pull-down-18ma {
+                       bias-pull-down;
+                       drive-strength = <18>;
+               };
+
+               pcfg_pull_down_20ma: pcfg-pull-down-20ma {
+                       bias-pull-down;
+                       drive-strength = <20>;
+               };
+
+               pcfg_output_high: pcfg-output-high {
+                       output-high;
+               };
+
+               pcfg_output_low: pcfg-output-low {
+                       output-low;
+               };
+
+               pcfg_input_enable: pcfg-input-enable {
+                       input-enable;
+               };
+
+               pcfg_input_pull_up: pcfg-input-pull-up {
+                       input-enable;
+                       bias-pull-up;
+               };
+
+               pcfg_input_pull_down: pcfg-input-pull-down {
+                       input-enable;
+                       bias-pull-down;
+               };
+
+               clock {
+                       clk_32k: clk-32k {
+                               rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
+                       };
+               };
+
+               cif {
+                       cif_clkin: cif-clkin {
+                               rockchip,pins =
+                                       <2 RK_PB2 3 &pcfg_pull_none>;
+                       };
+
+                       cif_clkouta: cif-clkouta {
+                               rockchip,pins =
+                                       <2 RK_PB3 3 &pcfg_pull_none>;
+                       };
+               };
+
+               edp {
+                       edp_hpd: edp-hpd {
+                               rockchip,pins =
+                                       <4 RK_PC7 2 &pcfg_pull_none>;
+                       };
+               };
+
+               gmac {
+                       rgmii_pins: rgmii-pins {
+                               rockchip,pins =
+                                       /* mac_txclk */
+                                       <3 RK_PC1 1 &pcfg_pull_none_13ma>,
+                                       /* mac_rxclk */
+                                       <3 RK_PB6 1 &pcfg_pull_none>,
+                                       /* mac_mdio */
+                                       <3 RK_PB5 1 &pcfg_pull_none>,
+                                       /* mac_txen */
+                                       <3 RK_PB4 1 &pcfg_pull_none_13ma>,
+                                       /* mac_clk */
+                                       <3 RK_PB3 1 &pcfg_pull_none>,
+                                       /* mac_rxdv */
+                                       <3 RK_PB1 1 &pcfg_pull_none>,
+                                       /* mac_mdc */
+                                       <3 RK_PB0 1 &pcfg_pull_none>,
+                                       /* mac_rxd1 */
+                                       <3 RK_PA7 1 &pcfg_pull_none>,
+                                       /* mac_rxd0 */
+                                       <3 RK_PA6 1 &pcfg_pull_none>,
+                                       /* mac_txd1 */
+                                       <3 RK_PA5 1 &pcfg_pull_none_13ma>,
+                                       /* mac_txd0 */
+                                       <3 RK_PA4 1 &pcfg_pull_none_13ma>,
+                                       /* mac_rxd3 */
+                                       <3 RK_PA3 1 &pcfg_pull_none>,
+                                       /* mac_rxd2 */
+                                       <3 RK_PA2 1 &pcfg_pull_none>,
+                                       /* mac_txd3 */
+                                       <3 RK_PA1 1 &pcfg_pull_none_13ma>,
+                                       /* mac_txd2 */
+                                       <3 RK_PA0 1 &pcfg_pull_none_13ma>;
+                       };
+
+                       rmii_pins: rmii-pins {
+                               rockchip,pins =
+                                       /* mac_mdio */
+                                       <3 RK_PB5 1 &pcfg_pull_none>,
+                                       /* mac_txen */
+                                       <3 RK_PB4 1 &pcfg_pull_none_13ma>,
+                                       /* mac_clk */
+                                       <3 RK_PB3 1 &pcfg_pull_none>,
+                                       /* mac_rxer */
+                                       <3 RK_PB2 1 &pcfg_pull_none>,
+                                       /* mac_rxdv */
+                                       <3 RK_PB1 1 &pcfg_pull_none>,
+                                       /* mac_mdc */
+                                       <3 RK_PB0 1 &pcfg_pull_none>,
+                                       /* mac_rxd1 */
+                                       <3 RK_PA7 1 &pcfg_pull_none>,
+                                       /* mac_rxd0 */
+                                       <3 RK_PA6 1 &pcfg_pull_none>,
+                                       /* mac_txd1 */
+                                       <3 RK_PA5 1 &pcfg_pull_none_13ma>,
+                                       /* mac_txd0 */
+                                       <3 RK_PA4 1 &pcfg_pull_none_13ma>;
+                       };
+               };
+
+               i2c0 {
+                       i2c0_xfer: i2c0-xfer {
+                               rockchip,pins =
+                                       <1 RK_PB7 2 &pcfg_pull_none>,
+                                       <1 RK_PC0 2 &pcfg_pull_none>;
+                       };
+               };
+
+               i2c1 {
+                       i2c1_xfer: i2c1-xfer {
+                               rockchip,pins =
+                                       <4 RK_PA2 1 &pcfg_pull_none>,
+                                       <4 RK_PA1 1 &pcfg_pull_none>;
+                       };
+               };
+
+               i2c2 {
+                       i2c2_xfer: i2c2-xfer {
+                               rockchip,pins =
+                                       <2 RK_PA1 2 &pcfg_pull_none_12ma>,
+                                       <2 RK_PA0 2 &pcfg_pull_none_12ma>;
+                       };
+               };
+
+               i2c3 {
+                       i2c3_xfer: i2c3-xfer {
+                               rockchip,pins =
+                                       <4 RK_PC1 1 &pcfg_pull_none>,
+                                       <4 RK_PC0 1 &pcfg_pull_none>;
+                       };
+               };
+
+               i2c4 {
+                       i2c4_xfer: i2c4-xfer {
+                               rockchip,pins =
+                                       <1 RK_PB4 1 &pcfg_pull_none>,
+                                       <1 RK_PB3 1 &pcfg_pull_none>;
+                       };
+               };
+
+               i2c5 {
+                       i2c5_xfer: i2c5-xfer {
+                               rockchip,pins =
+                                       <3 RK_PB3 2 &pcfg_pull_none>,
+                                       <3 RK_PB2 2 &pcfg_pull_none>;
+                       };
+               };
+
+               i2c6 {
+                       i2c6_xfer: i2c6-xfer {
+                               rockchip,pins =
+                                       <2 RK_PB2 2 &pcfg_pull_none>,
+                                       <2 RK_PB1 2 &pcfg_pull_none>;
+                       };
+               };
+
+               i2c7 {
+                       i2c7_xfer: i2c7-xfer {
+                               rockchip,pins =
+                                       <2 RK_PB0 2 &pcfg_pull_none>,
+                                       <2 RK_PA7 2 &pcfg_pull_none>;
+                       };
+               };
+
+               i2c8 {
+                       i2c8_xfer: i2c8-xfer {
+                               rockchip,pins =
+                                       <1 RK_PC5 1 &pcfg_pull_none>,
+                                       <1 RK_PC4 1 &pcfg_pull_none>;
+                       };
+               };
+
+               i2s0 {
+                       i2s0_2ch_bus: i2s0-2ch-bus {
+                               rockchip,pins =
+                                       <3 RK_PD0 1 &pcfg_pull_none>,
+                                       <3 RK_PD1 1 &pcfg_pull_none>,
+                                       <3 RK_PD2 1 &pcfg_pull_none>,
+                                       <3 RK_PD3 1 &pcfg_pull_none>,
+                                       <3 RK_PD7 1 &pcfg_pull_none>,
+                                       <4 RK_PA0 1 &pcfg_pull_none>;
+                       };
+
+                       i2s0_2ch_bus_bclk_off: i2s0-2ch-bus-bclk-off {
+                               rockchip,pins =
+                                       <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>,
+                                       <3 RK_PD1 1 &pcfg_pull_none>,
+                                       <3 RK_PD2 1 &pcfg_pull_none>,
+                                       <3 RK_PD3 1 &pcfg_pull_none>,
+                                       <3 RK_PD7 1 &pcfg_pull_none>,
+                                       <4 RK_PA0 1 &pcfg_pull_none>;
+                       };
+
+                       i2s0_8ch_bus: i2s0-8ch-bus {
+                               rockchip,pins =
+                                       <3 RK_PD0 1 &pcfg_pull_none>,
+                                       <3 RK_PD1 1 &pcfg_pull_none>,
+                                       <3 RK_PD2 1 &pcfg_pull_none>,
+                                       <3 RK_PD3 1 &pcfg_pull_none>,
+                                       <3 RK_PD4 1 &pcfg_pull_none>,
+                                       <3 RK_PD5 1 &pcfg_pull_none>,
+                                       <3 RK_PD6 1 &pcfg_pull_none>,
+                                       <3 RK_PD7 1 &pcfg_pull_none>,
+                                       <4 RK_PA0 1 &pcfg_pull_none>;
+                       };
+
+                       i2s0_8ch_bus_bclk_off: i2s0-8ch-bus-bclk-off {
+                               rockchip,pins =
+                                       <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>,
+                                       <3 RK_PD1 1 &pcfg_pull_none>,
+                                       <3 RK_PD2 1 &pcfg_pull_none>,
+                                       <3 RK_PD3 1 &pcfg_pull_none>,
+                                       <3 RK_PD4 1 &pcfg_pull_none>,
+                                       <3 RK_PD5 1 &pcfg_pull_none>,
+                                       <3 RK_PD6 1 &pcfg_pull_none>,
+                                       <3 RK_PD7 1 &pcfg_pull_none>,
+                                       <4 RK_PA0 1 &pcfg_pull_none>;
+                       };
+               };
+
+               i2s1 {
+                       i2s1_2ch_bus: i2s1-2ch-bus {
+                               rockchip,pins =
+                                       <4 RK_PA3 1 &pcfg_pull_none>,
+                                       <4 RK_PA4 1 &pcfg_pull_none>,
+                                       <4 RK_PA5 1 &pcfg_pull_none>,
+                                       <4 RK_PA6 1 &pcfg_pull_none>,
+                                       <4 RK_PA7 1 &pcfg_pull_none>;
+                       };
+
+                       i2s1_2ch_bus_bclk_off: i2s1-2ch-bus-bclk-off {
+                               rockchip,pins =
+                                       <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>,
+                                       <4 RK_PA4 1 &pcfg_pull_none>,
+                                       <4 RK_PA5 1 &pcfg_pull_none>,
+                                       <4 RK_PA6 1 &pcfg_pull_none>,
+                                       <4 RK_PA7 1 &pcfg_pull_none>;
+                       };
+               };
+
+               sdio0 {
+                       sdio0_bus1: sdio0-bus1 {
+                               rockchip,pins =
+                                       <2 RK_PC4 1 &pcfg_pull_up>;
+                       };
+
+                       sdio0_bus4: sdio0-bus4 {
+                               rockchip,pins =
+                                       <2 RK_PC4 1 &pcfg_pull_up>,
+                                       <2 RK_PC5 1 &pcfg_pull_up>,
+                                       <2 RK_PC6 1 &pcfg_pull_up>,
+                                       <2 RK_PC7 1 &pcfg_pull_up>;
+                       };
+
+                       sdio0_cmd: sdio0-cmd {
+                               rockchip,pins =
+                                       <2 RK_PD0 1 &pcfg_pull_up>;
+                       };
+
+                       sdio0_clk: sdio0-clk {
+                               rockchip,pins =
+                                       <2 RK_PD1 1 &pcfg_pull_none>;
+                       };
+
+                       sdio0_cd: sdio0-cd {
+                               rockchip,pins =
+                                       <2 RK_PD2 1 &pcfg_pull_up>;
+                       };
+
+                       sdio0_pwr: sdio0-pwr {
+                               rockchip,pins =
+                                       <2 RK_PD3 1 &pcfg_pull_up>;
+                       };
+
+                       sdio0_bkpwr: sdio0-bkpwr {
+                               rockchip,pins =
+                                       <2 RK_PD4 1 &pcfg_pull_up>;
+                       };
+
+                       sdio0_wp: sdio0-wp {
+                               rockchip,pins =
+                                       <0 RK_PA3 1 &pcfg_pull_up>;
+                       };
+
+                       sdio0_int: sdio0-int {
+                               rockchip,pins =
+                                       <0 RK_PA4 1 &pcfg_pull_up>;
+                       };
+               };
+
+               sdmmc {
+                       sdmmc_bus1: sdmmc-bus1 {
+                               rockchip,pins =
+                                       <4 RK_PB0 1 &pcfg_pull_up>;
+                       };
+
+                       sdmmc_bus4: sdmmc-bus4 {
+                               rockchip,pins =
+                                       <4 RK_PB0 1 &pcfg_pull_up>,
+                                       <4 RK_PB1 1 &pcfg_pull_up>,
+                                       <4 RK_PB2 1 &pcfg_pull_up>,
+                                       <4 RK_PB3 1 &pcfg_pull_up>;
+                       };
+
+                       sdmmc_clk: sdmmc-clk {
+                               rockchip,pins =
+                                       <4 RK_PB4 1 &pcfg_pull_none>;
+                       };
+
+                       sdmmc_cmd: sdmmc-cmd {
+                               rockchip,pins =
+                                       <4 RK_PB5 1 &pcfg_pull_up>;
+                       };
+
+                       sdmmc_cd: sdmmc-cd {
+                               rockchip,pins =
+                                       <0 RK_PA7 1 &pcfg_pull_up>;
+                       };
+
+                       sdmmc_wp: sdmmc-wp {
+                               rockchip,pins =
+                                       <0 RK_PB0 1 &pcfg_pull_up>;
+                       };
+               };
+
+               suspend {
+                       ap_pwroff: ap-pwroff {
+                               rockchip,pins = <1 RK_PA5 1 &pcfg_pull_none>;
+                       };
+
+                       ddrio_pwroff: ddrio-pwroff {
+                               rockchip,pins = <0 RK_PA1 1 &pcfg_pull_none>;
+                       };
+               };
+
+               spdif {
+                       spdif_bus: spdif-bus {
+                               rockchip,pins =
+                                       <4 RK_PC5 1 &pcfg_pull_none>;
+                       };
+
+                       spdif_bus_1: spdif-bus-1 {
+                               rockchip,pins =
+                                       <3 RK_PC0 3 &pcfg_pull_none>;
+                       };
+               };
+
+               spi0 {
+                       spi0_clk: spi0-clk {
+                               rockchip,pins =
+                                       <3 RK_PA6 2 &pcfg_pull_up>;
+                       };
+                       spi0_cs0: spi0-cs0 {
+                               rockchip,pins =
+                                       <3 RK_PA7 2 &pcfg_pull_up>;
+                       };
+                       spi0_cs1: spi0-cs1 {
+                               rockchip,pins =
+                                       <3 RK_PB0 2 &pcfg_pull_up>;
+                       };
+                       spi0_tx: spi0-tx {
+                               rockchip,pins =
+                                       <3 RK_PA5 2 &pcfg_pull_up>;
+                       };
+                       spi0_rx: spi0-rx {
+                               rockchip,pins =
+                                       <3 RK_PA4 2 &pcfg_pull_up>;
+                       };
+               };
+
+               spi1 {
+                       spi1_clk: spi1-clk {
+                               rockchip,pins =
+                                       <1 RK_PB1 2 &pcfg_pull_up>;
+                       };
+                       spi1_cs0: spi1-cs0 {
+                               rockchip,pins =
+                                       <1 RK_PB2 2 &pcfg_pull_up>;
+                       };
+                       spi1_rx: spi1-rx {
+                               rockchip,pins =
+                                       <1 RK_PA7 2 &pcfg_pull_up>;
+                       };
+                       spi1_tx: spi1-tx {
+                               rockchip,pins =
+                                       <1 RK_PB0 2 &pcfg_pull_up>;
+                       };
+               };
+
+               spi2 {
+                       spi2_clk: spi2-clk {
+                               rockchip,pins =
+                                       <2 RK_PB3 1 &pcfg_pull_up>;
+                       };
+                       spi2_cs0: spi2-cs0 {
+                               rockchip,pins =
+                                       <2 RK_PB4 1 &pcfg_pull_up>;
+                       };
+                       spi2_rx: spi2-rx {
+                               rockchip,pins =
+                                       <2 RK_PB1 1 &pcfg_pull_up>;
+                       };
+                       spi2_tx: spi2-tx {
+                               rockchip,pins =
+                                       <2 RK_PB2 1 &pcfg_pull_up>;
+                       };
+               };
+
+               spi3 {
+                       spi3_clk: spi3-clk {
+                               rockchip,pins =
+                                       <1 RK_PC1 1 &pcfg_pull_up>;
+                       };
+                       spi3_cs0: spi3-cs0 {
+                               rockchip,pins =
+                                       <1 RK_PC2 1 &pcfg_pull_up>;
+                       };
+                       spi3_rx: spi3-rx {
+                               rockchip,pins =
+                                       <1 RK_PB7 1 &pcfg_pull_up>;
+                       };
+                       spi3_tx: spi3-tx {
+                               rockchip,pins =
+                                       <1 RK_PC0 1 &pcfg_pull_up>;
+                       };
+               };
+
+               spi4 {
+                       spi4_clk: spi4-clk {
+                               rockchip,pins =
+                                       <3 RK_PA2 2 &pcfg_pull_up>;
+                       };
+                       spi4_cs0: spi4-cs0 {
+                               rockchip,pins =
+                                       <3 RK_PA3 2 &pcfg_pull_up>;
+                       };
+                       spi4_rx: spi4-rx {
+                               rockchip,pins =
+                                       <3 RK_PA0 2 &pcfg_pull_up>;
+                       };
+                       spi4_tx: spi4-tx {
+                               rockchip,pins =
+                                       <3 RK_PA1 2 &pcfg_pull_up>;
+                       };
+               };
+
+               spi5 {
+                       spi5_clk: spi5-clk {
+                               rockchip,pins =
+                                       <2 RK_PC6 2 &pcfg_pull_up>;
+                       };
+                       spi5_cs0: spi5-cs0 {
+                               rockchip,pins =
+                                       <2 RK_PC7 2 &pcfg_pull_up>;
+                       };
+                       spi5_rx: spi5-rx {
+                               rockchip,pins =
+                                       <2 RK_PC4 2 &pcfg_pull_up>;
+                       };
+                       spi5_tx: spi5-tx {
+                               rockchip,pins =
+                                       <2 RK_PC5 2 &pcfg_pull_up>;
+                       };
+               };
+
+               testclk {
+                       test_clkout0: test-clkout0 {
+                               rockchip,pins =
+                                       <0 RK_PA0 1 &pcfg_pull_none>;
+                       };
+
+                       test_clkout1: test-clkout1 {
+                               rockchip,pins =
+                                       <2 RK_PD1 2 &pcfg_pull_none>;
+                       };
+
+                       test_clkout2: test-clkout2 {
+                               rockchip,pins =
+                                       <0 RK_PB0 3 &pcfg_pull_none>;
+                       };
+               };
+
+               tsadc {
+                       otp_pin: otp-pin {
+                               rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+                       };
+
+                       otp_out: otp-out {
+                               rockchip,pins = <1 RK_PA6 1 &pcfg_pull_none>;
+                       };
+               };
+
+               uart0 {
+                       uart0_xfer: uart0-xfer {
+                               rockchip,pins =
+                                       <2 RK_PC0 1 &pcfg_pull_up>,
+                                       <2 RK_PC1 1 &pcfg_pull_none>;
+                       };
+
+                       uart0_cts: uart0-cts {
+                               rockchip,pins =
+                                       <2 RK_PC2 1 &pcfg_pull_none>;
+                       };
+
+                       uart0_rts: uart0-rts {
+                               rockchip,pins =
+                                       <2 RK_PC3 1 &pcfg_pull_none>;
+                       };
+               };
+
+               uart1 {
+                       uart1_xfer: uart1-xfer {
+                               rockchip,pins =
+                                       <3 RK_PB4 2 &pcfg_pull_up>,
+                                       <3 RK_PB5 2 &pcfg_pull_none>;
+                       };
+               };
+
+               uart2a {
+                       uart2a_xfer: uart2a-xfer {
+                               rockchip,pins =
+                                       <4 RK_PB0 2 &pcfg_pull_up>,
+                                       <4 RK_PB1 2 &pcfg_pull_none>;
+                       };
+               };
+
+               uart2b {
+                       uart2b_xfer: uart2b-xfer {
+                               rockchip,pins =
+                                       <4 RK_PC0 2 &pcfg_pull_up>,
+                                       <4 RK_PC1 2 &pcfg_pull_none>;
+                       };
+               };
+
+               uart2c {
+                       uart2c_xfer: uart2c-xfer {
+                               rockchip,pins =
+                                       <4 RK_PC3 1 &pcfg_pull_up>,
+                                       <4 RK_PC4 1 &pcfg_pull_none>;
+                       };
+               };
+
+               uart3 {
+                       uart3_xfer: uart3-xfer {
+                               rockchip,pins =
+                                       <3 RK_PB6 2 &pcfg_pull_up>,
+                                       <3 RK_PB7 2 &pcfg_pull_none>;
+                       };
+
+                       uart3_cts: uart3-cts {
+                               rockchip,pins =
+                                       <3 RK_PC0 2 &pcfg_pull_none>;
+                       };
+
+                       uart3_rts: uart3-rts {
+                               rockchip,pins =
+                                       <3 RK_PC1 2 &pcfg_pull_none>;
+                       };
+               };
+
+               uart4 {
+                       uart4_xfer: uart4-xfer {
+                               rockchip,pins =
+                                       <1 RK_PA7 1 &pcfg_pull_up>,
+                                       <1 RK_PB0 1 &pcfg_pull_none>;
+                       };
+               };
+
+               uarthdcp {
+                       uarthdcp_xfer: uarthdcp-xfer {
+                               rockchip,pins =
+                                       <4 RK_PC5 2 &pcfg_pull_up>,
+                                       <4 RK_PC6 2 &pcfg_pull_none>;
+                       };
+               };
+
+               pwm0 {
+                       pwm0_pin: pwm0-pin {
+                               rockchip,pins =
+                                       <4 RK_PC2 1 &pcfg_pull_none>;
+                       };
+
+                       pwm0_pin_pull_down: pwm0-pin-pull-down {
+                               rockchip,pins =
+                                       <4 RK_PC2 1 &pcfg_pull_down>;
+                       };
+
+                       vop0_pwm_pin: vop0-pwm-pin {
+                               rockchip,pins =
+                                       <4 RK_PC2 2 &pcfg_pull_none>;
+                       };
+
+                       vop1_pwm_pin: vop1-pwm-pin {
+                               rockchip,pins =
+                                       <4 RK_PC2 3 &pcfg_pull_none>;
+                       };
+               };
+
+               pwm1 {
+                       pwm1_pin: pwm1-pin {
+                               rockchip,pins =
+                                       <4 RK_PC6 1 &pcfg_pull_none>;
+                       };
+
+                       pwm1_pin_pull_down: pwm1-pin-pull-down {
+                               rockchip,pins =
+                                       <4 RK_PC6 1 &pcfg_pull_down>;
+                       };
+               };
+
+               pwm2 {
+                       pwm2_pin: pwm2-pin {
+                               rockchip,pins =
+                                       <1 RK_PC3 1 &pcfg_pull_none>;
+                       };
+
+                       pwm2_pin_pull_down: pwm2-pin-pull-down {
+                               rockchip,pins =
+                                       <1 RK_PC3 1 &pcfg_pull_down>;
+                       };
+               };
+
+               pwm3a {
+                       pwm3a_pin: pwm3a-pin {
+                               rockchip,pins =
+                                       <0 RK_PA6 1 &pcfg_pull_none>;
+                       };
+               };
+
+               pwm3b {
+                       pwm3b_pin: pwm3b-pin {
+                               rockchip,pins =
+                                       <1 RK_PB6 1 &pcfg_pull_none>;
+                       };
+               };
+
+               hdmi {
+                       hdmi_i2c_xfer: hdmi-i2c-xfer {
+                               rockchip,pins =
+                                       <4 RK_PC1 3 &pcfg_pull_none>,
+                                       <4 RK_PC0 3 &pcfg_pull_none>;
+                       };
+
+                       hdmi_cec: hdmi-cec {
+                               rockchip,pins =
+                                       <4 RK_PC7 1 &pcfg_pull_none>;
+                       };
+               };
+
+               pcie {
+                       pcie_clkreqn_cpm: pci-clkreqn-cpm {
+                               rockchip,pins =
+                                       <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+                       };
+
+                       pcie_clkreqnb_cpm: pci-clkreqnb-cpm {
+                               rockchip,pins =
+                                       <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
+                       };
+               };
+
+       };
+};
index 173da81fc23117f959b859e5587d44dcea7c1143..4feb78797982baa536f309bd4835badd204f4158 100644 (file)
@@ -8,7 +8,6 @@
 #include <dt-bindings/pwm/pwm.h>
 #include <dt-bindings/usb/pd.h>
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        model = "OPEN AI LAB EAIDK-610";
        status = "okay";
 
        rt5651: audio-codec@1a {
-               compatible = "rockchip,rt5651";
+               compatible = "realtek,rt5651";
                reg = <0x1a>;
                clocks = <&cru SCLK_I2S_8CH_OUT>;
                clock-names = "mclk";
index 55eca7a50a1f546d17e5ff8b66d7fd040058f181..54e67d2dac092d5a5a0f22159b4b574bab449716 100644 (file)
@@ -5,7 +5,7 @@
 
 /dts-v1/;
 #include <dt-bindings/pwm/pwm.h>
-#include "rk3399.dtsi"
+#include "rk3399-base.dtsi"
 
 / {
        model = "Rockchip RK3399 Evaluation Board";
index 260415d99aebf8fcb301bd6e3d32354eb4d1f63d..f4491317a1b032005c75f566ad0ee815ab62695d 100644 (file)
@@ -9,7 +9,6 @@
 #include <dt-bindings/pwm/pwm.h>
 #include <dt-bindings/usb/pd.h>
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        model = "Firefly-RK3399 Board";
index 3cd63d1e8f15bb210b986c5f08c7ecd9a74a6572..776c0eec04d7f5409c327227702a18241387eee1 100644 (file)
@@ -6,8 +6,7 @@
  */
 
 #include <dt-bindings/input/input.h>
-#include "rk3399.dtsi"
-#include "rk3399-op1-opp.dtsi"
+#include "rk3399-op1.dtsi"
 
 / {
        aliases {
index 4a6ab6c2e24cff8cd47c6f09c554bf8a84e4dc1c..5a02502d21cd893c820f0f2073d18fff99ba9e7f 100644 (file)
@@ -4,7 +4,6 @@
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        model = "Hugsun X99 TV BOX";
index 9d9297bc5f04a051ebff86aa5f92fa1b98180c3a..c772985ae4e51cb07b34e0582a33731e36b3415a 100644 (file)
@@ -9,7 +9,6 @@
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        aliases {
index 9586bb12a5d8f51dbf81e8c9c200d6bafa0ae3e2..b0c1fb0b704e7ea9a531fb188b22537f9a402118 100644 (file)
@@ -12,7 +12,6 @@
 
 /dts-v1/;
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        model = "Kobol Helios64";
index cb69e2145fa9400c84b8038c9ccd372224f14fb4..f12b1eb00575361cde27f2d7304009c39f610032 100644 (file)
@@ -8,7 +8,6 @@
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        model = "Leez RK3399 P710";
index b7f1e47978a69e796fda80afec783becac45ad8d..7debc4a1b5faa5a912133ef1ada5860b33563df1 100644 (file)
@@ -14,7 +14,6 @@
 /dts-v1/;
 #include <dt-bindings/input/linux-event-codes.h>
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        aliases {
similarity index 99%
rename from src/arm64/rockchip/rk3399-op1-opp.dtsi
rename to src/arm64/rockchip/rk3399-op1.dtsi
index 783120e9cebeb4884218cd402dcde31bb64f5308..b24bff51151367081384e723f07e4a0a0f3a0c59 100644 (file)
@@ -3,6 +3,8 @@
  * Copyright (c) 2016-2017 Fuzhou Rockchip Electronics Co., Ltd
  */
 
+#include "rk3399.dtsi"
+
 / {
        cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
diff --git a/src/arm64/rockchip/rk3399-opp.dtsi b/src/arm64/rockchip/rk3399-opp.dtsi
deleted file mode 100644 (file)
index fee5e71..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Copyright (c) 2016-2017 Fuzhou Rockchip Electronics Co., Ltd
- */
-
-/ {
-       cluster0_opp: opp-table-0 {
-               compatible = "operating-points-v2";
-               opp-shared;
-
-               opp00 {
-                       opp-hz = /bits/ 64 <408000000>;
-                       opp-microvolt = <825000 825000 1250000>;
-                       clock-latency-ns = <40000>;
-               };
-               opp01 {
-                       opp-hz = /bits/ 64 <600000000>;
-                       opp-microvolt = <825000 825000 1250000>;
-               };
-               opp02 {
-                       opp-hz = /bits/ 64 <816000000>;
-                       opp-microvolt = <850000 850000 1250000>;
-               };
-               opp03 {
-                       opp-hz = /bits/ 64 <1008000000>;
-                       opp-microvolt = <925000 925000 1250000>;
-               };
-               opp04 {
-                       opp-hz = /bits/ 64 <1200000000>;
-                       opp-microvolt = <1000000 1000000 1250000>;
-               };
-               opp05 {
-                       opp-hz = /bits/ 64 <1416000000>;
-                       opp-microvolt = <1125000 1125000 1250000>;
-               };
-       };
-
-       cluster1_opp: opp-table-1 {
-               compatible = "operating-points-v2";
-               opp-shared;
-
-               opp00 {
-                       opp-hz = /bits/ 64 <408000000>;
-                       opp-microvolt = <825000 825000 1250000>;
-                       clock-latency-ns = <40000>;
-               };
-               opp01 {
-                       opp-hz = /bits/ 64 <600000000>;
-                       opp-microvolt = <825000 825000 1250000>;
-               };
-               opp02 {
-                       opp-hz = /bits/ 64 <816000000>;
-                       opp-microvolt = <825000 825000 1250000>;
-               };
-               opp03 {
-                       opp-hz = /bits/ 64 <1008000000>;
-                       opp-microvolt = <875000 875000 1250000>;
-               };
-               opp04 {
-                       opp-hz = /bits/ 64 <1200000000>;
-                       opp-microvolt = <950000 950000 1250000>;
-               };
-               opp05 {
-                       opp-hz = /bits/ 64 <1416000000>;
-                       opp-microvolt = <1025000 1025000 1250000>;
-               };
-               opp06 {
-                       opp-hz = /bits/ 64 <1608000000>;
-                       opp-microvolt = <1100000 1100000 1250000>;
-               };
-               opp07 {
-                       opp-hz = /bits/ 64 <1800000000>;
-                       opp-microvolt = <1200000 1200000 1250000>;
-               };
-       };
-
-       gpu_opp_table: opp-table-2 {
-               compatible = "operating-points-v2";
-
-               opp00 {
-                       opp-hz = /bits/ 64 <200000000>;
-                       opp-microvolt = <825000 825000 1150000>;
-               };
-               opp01 {
-                       opp-hz = /bits/ 64 <297000000>;
-                       opp-microvolt = <825000 825000 1150000>;
-               };
-               opp02 {
-                       opp-hz = /bits/ 64 <400000000>;
-                       opp-microvolt = <825000 825000 1150000>;
-               };
-               opp03 {
-                       opp-hz = /bits/ 64 <500000000>;
-                       opp-microvolt = <875000 875000 1150000>;
-               };
-               opp04 {
-                       opp-hz = /bits/ 64 <600000000>;
-                       opp-microvolt = <925000 925000 1150000>;
-               };
-               opp05 {
-                       opp-hz = /bits/ 64 <800000000>;
-                       opp-microvolt = <1100000 1100000 1150000>;
-               };
-       };
-};
-
-&cpu_l0 {
-       operating-points-v2 = <&cluster0_opp>;
-};
-
-&cpu_l1 {
-       operating-points-v2 = <&cluster0_opp>;
-};
-
-&cpu_l2 {
-       operating-points-v2 = <&cluster0_opp>;
-};
-
-&cpu_l3 {
-       operating-points-v2 = <&cluster0_opp>;
-};
-
-&cpu_b0 {
-       operating-points-v2 = <&cluster1_opp>;
-};
-
-&cpu_b1 {
-       operating-points-v2 = <&cluster1_opp>;
-};
-
-&gpu {
-       operating-points-v2 = <&gpu_opp_table>;
-};
index e26e2d86279cb99d4dfb4e845918e94888006e5e..07ec33f3f55fae7c227d2a2725485714bc27ad1d 100644 (file)
@@ -10,7 +10,6 @@
 #include <dt-bindings/interrupt-controller/irq.h>
 #include "dt-bindings/usb/pd.h"
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        model = "Orange Pi RK3399 Board";
index 294eb2de263debd89e7bbc1a41495fb5fdf782a3..a5a7e374bc59478e70115af8604776376f9fb0a3 100644 (file)
@@ -12,7 +12,6 @@
 #include <dt-bindings/usb/pd.h>
 #include <dt-bindings/leds/common.h>
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        model = "Pine64 Pinebook Pro";
        backlight: edp-backlight {
                compatible = "pwm-backlight";
                power-supply = <&vcc_12v>;
-               pwms = <&pwm0 0 740740 0>;
+               pwms = <&pwm0 0 125000 0>;
        };
 
        bat: battery {
                compatible = "simple-battery";
-               charge-full-design-microamp-hours = <9800000>;
+               charge-full-design-microamp-hours = <10000000>;
                voltage-max-design-microvolt = <4350000>;
                voltage-min-design-microvolt = <3000000>;
        };
index ef754ea30a940a29408a44040bea3cd494e92a60..09a016ea8c765054ba5f6dec3fdf6b18870c6a9f 100644 (file)
@@ -14,7 +14,6 @@
 #include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/leds/common.h>
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        model = "Pine64 PinePhone Pro";
                regulator-max-microvolt = <1800000>;
                vin-supply = <&vcc3v3_sys>;
                gpio = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>;
-               pinctrl-names = "default";
        };
 
        /* MIPI DSI panel 2.8v supply */
                regulator-max-microvolt = <2800000>;
                vin-supply = <&vcc3v3_sys>;
                gpio = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
-               pinctrl-names = "default";
        };
 
        vibrator {
index d24444cdf54afa19cf5feaae47c7e798f06369b1..650b1ba9c1921300e159da891e299481ca969977 100644 (file)
@@ -5,7 +5,6 @@
 
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        aliases {
index 7ba1c28f70a9a86bdeeb3b6a5fab91b43d1c55b0..2f06bfdd70bf5ed23707295a501e4a8d5a5e3e8f 100644 (file)
        es8388: es8388@11 {
                compatible = "everest,es8388";
                reg = <0x11>;
-               clock-names = "mclk";
                clocks = <&cru SCLK_I2S_8CH_OUT>;
                #sound-dai-cells = <0>;
        };
index ca7a446b656895bc59f14c4d663d8cdaf2dc8ed8..d95b1cde1fc396f6138fc12a785e9ce5a982e63a 100644 (file)
@@ -7,7 +7,6 @@
 #include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        model = "Firefly ROC-RK3399-PC Board";
index 972aea843afd698e21681ea1da9f30d603d7c68a..475d57f64d58f545504fd3860f4e70d140607011 100644 (file)
@@ -7,8 +7,7 @@
 
 /dts-v1/;
 #include <dt-bindings/leds/common.h>
-#include "rk3399.dtsi"
-#include "rk3399-t-opp.dtsi"
+#include "rk3399-t.dtsi"
 
 / {
        model = "Radxa ROCK 4C+";
                };
        };
 
+       rk809-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,name = "Analog RK809";
+               simple-audio-card,mclk-fs = <256>;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s0>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&rk809>;
+               };
+       };
+
        sdio_pwrseq: sdio-pwrseq {
                compatible = "mmc-pwrseq-simple";
                clocks = <&rk809 1>;
                interrupt-parent = <&gpio1>;
                interrupts = <RK_PC5 IRQ_TYPE_LEVEL_LOW>;
                #clock-cells = <1>;
+               clock-names = "mclk";
+               clocks = <&cru SCLK_I2S_8CH_OUT>;
                clock-output-names = "rk808-clkout1", "rk808-clkout2";
                pinctrl-names = "default";
-               pinctrl-0 = <&pmic_int_l>;
+               pinctrl-0 = <&pmic_int_l>, <&i2s_8ch_mclk>;
                rockchip,system-power-controller;
+               #sound-dai-cells = <0>;
                wakeup-source;
 
                vcc1-supply = <&vcc5v0_sys>;
        status = "okay";
 };
 
+&i2s0 {
+       status = "okay";
+};
+
+&i2s0_8ch_bus {
+       rockchip,pins =
+               <3 RK_PD0 1 &pcfg_pull_none>,
+               <3 RK_PD2 1 &pcfg_pull_none>,
+               <3 RK_PD3 1 &pcfg_pull_none>,
+               <3 RK_PD7 1 &pcfg_pull_none>;
+};
+
+&i2s0_8ch_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>;
+};
+
 &i2s2 {
        status = "okay";
 };
                };
        };
 
+       i2s0 {
+               i2s_8ch_mclk: i2s-8ch-mclk {
+                       rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>;
+               };
+       };
+
        leds {
                user_led1: user-led1 {
                        rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
index 7cfc198bbae74ecfd07baef1bc7258b60fd5b384..a8b8d4acc33712da01b3b93a0bffd1694aefe3be 100644 (file)
@@ -5,8 +5,8 @@
  */
 
 /dts-v1/;
+#include "rk3399-t.dtsi"
 #include "rk3399-rock-pi-4.dtsi"
-#include "rk3399-t-opp.dtsi"
 
 / {
        model = "Radxa ROCK 4SE";
        };
 };
 
-&pinctrl {
-       usb2 {
-               vcc5v0_host_en: vcc5v0-host-en {
-                       rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
-               };
-       };
-};
-
 &sdio0 {
        status = "okay";
 
                vddio-supply = <&vcc_1v8>;
        };
 };
-
-&vcc5v0_host {
-       enable-active-high;
-       gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&vcc5v0_host_en>;
-};
index b9d6284bb804f7fcb0d6408397a9cf632978199b..9666504cd1c146cedf73bcce550ddf0cdaf22d40 100644 (file)
@@ -4,11 +4,9 @@
  * Copyright (c) 2019 Pragnesh Patel <Pragnesh_Patel@mentor.com>
  */
 
-/dts-v1/;
 #include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/leds/common.h>
 #include <dt-bindings/pwm/pwm.h>
-#include "rk3399.dtsi"
 
 / {
        aliases {
index f5a68d8d072d2d54fb2973dd99a2198a9230830b..725ac3c1f6f6501d3b02f96b436adaba74266e7f 100644 (file)
@@ -5,8 +5,8 @@
  */
 
 /dts-v1/;
+#include "rk3399-op1.dtsi"
 #include "rk3399-rock-pi-4.dtsi"
-#include "rk3399-op1-opp.dtsi"
 
 / {
        model = "Radxa ROCK Pi 4A+";
index c68f45849c441ba4323e253fc93772d26d82cf3b..32d6bce5e3d4b94310a32ae84fc8c5cd29321886 100644 (file)
@@ -5,8 +5,8 @@
  */
 
 /dts-v1/;
+#include "rk3399.dtsi"
 #include "rk3399-rock-pi-4.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        model = "Radxa ROCK Pi 4A";
index 8a17c1eaae15ee97dd32b6e442aba625b56622d2..682e8b7297c180b61bb88696f106e4ad96573ea3 100644 (file)
@@ -5,8 +5,8 @@
  */
 
 /dts-v1/;
+#include "rk3399-op1.dtsi"
 #include "rk3399-rock-pi-4.dtsi"
-#include "rk3399-op1-opp.dtsi"
 
 / {
        model = "Radxa ROCK Pi 4B+";
index 6ea3180e57ca7346bc99b745a51cc90f09f084fe..55285c7c6e543b29a35fcb14d9da734b49a09dcb 100644 (file)
@@ -5,8 +5,8 @@
  */
 
 /dts-v1/;
+#include "rk3399.dtsi"
 #include "rk3399-rock-pi-4.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        model = "Radxa ROCK Pi 4B";
index 5274938bf1b82de1e851d41ebba146bbd90d72ca..82ad2ca6b5c2fc92ecba428522c110fd4fa5b84b 100644 (file)
@@ -6,8 +6,8 @@
  */
 
 /dts-v1/;
+#include "rk3399.dtsi"
 #include "rk3399-rock-pi-4.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        model = "Radxa ROCK Pi 4C";
index c920ddf44bafd005254d98015efbe9ef63285f4b..ab890e7b6c59ca26393f013cd5b3e8b4a6b5504c 100644 (file)
@@ -5,9 +5,8 @@
  * Copyright (c) 2018 Linaro Ltd.
  */
 
-#include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 #include <dt-bindings/interrupt-controller/irq.h>
+#include "rk3399.dtsi"
 
 / {
        aliases {
        bluetooth {
                compatible = "brcm,bcm43438-bt";
                clocks = <&rk808 1>;
-               clock-names = "ext_clock";
+               clock-names = "txco";
                device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
                host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
                shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
index f30b82a10ca385a5735ec772bca2cb39aced0ef7..11d99d8b34a2be0829bd16c666cdfd5e41ed703b 100644 (file)
@@ -7,7 +7,6 @@
 #include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        aliases {
index dbec2b7173a0b677a032fa71b5d6e65e33a1ab24..31ea3d0182c062ef4ccd60d16a210da8e61a530b 100644 (file)
        status = "okay";
 
        rt5651: rt5651@1a {
-               compatible = "rockchip,rt5651";
+               compatible = "realtek,rt5651";
                reg = <0x1a>;
                clocks = <&cru SCLK_I2S_8CH_OUT>;
                clock-names = "mclk";
index b3ef1c85e7549ec0a89c669b34056eda47c4410f..31832aae9ab6d347162cec603d73d6f132acbefc 100644 (file)
@@ -6,7 +6,6 @@
 #include "dt-bindings/pwm/pwm.h"
 #include "dt-bindings/input/input.h"
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 
 / {
        compatible = "rockchip,rk3399-sapphire", "rockchip,rk3399";
similarity index 98%
rename from src/arm64/rockchip/rk3399-t-opp.dtsi
rename to src/arm64/rockchip/rk3399-t.dtsi
index 1ababadda9df638fe65b490c1ce0740513746db7..72989f03fcb1cd3c7170baf969a12f273b33fb4b 100644 (file)
@@ -4,6 +4,8 @@
  * Copyright (c) 2022 Radxa Limited
  */
 
+#include "rk3399-base.dtsi"
+
 / {
        cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
index 9d5f5b083e3cfa51492b945d17d03dbd2a264a2d..6bc1249d99e6baf2c391b77d86ba0bef74c36653 100644 (file)
 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
- * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
+ * Copyright (c) 2016-2017 Fuzhou Rockchip Electronics Co., Ltd
  */
 
-#include <dt-bindings/clock/rk3399-cru.h>
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/pinctrl/rockchip.h>
-#include <dt-bindings/power/rk3399-power.h>
-#include <dt-bindings/thermal/thermal.h>
+#include "rk3399-base.dtsi"
 
 / {
-       compatible = "rockchip,rk3399";
+       cluster0_opp: opp-table-0 {
+               compatible = "operating-points-v2";
+               opp-shared;
 
-       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;
-               spi0 = &spi0;
-               spi1 = &spi1;
-               spi2 = &spi2;
-               spi3 = &spi3;
-               spi4 = &spi4;
-               spi5 = &spi5;
-       };
-
-       cpus {
-               #address-cells = <2>;
-               #size-cells = <0>;
-
-               cpu-map {
-                       cluster0 {      /* Cortex-A53 */
-                               core0 {
-                                       cpu = <&cpu_l0>;
-                               };
-                               core1 {
-                                       cpu = <&cpu_l1>;
-                               };
-                               core2 {
-                                       cpu = <&cpu_l2>;
-                               };
-                               core3 {
-                                       cpu = <&cpu_l3>;
-                               };
-                       };
-
-                       cluster1 {      /* Cortex-A72 */
-                               core0 {
-                                       cpu = <&cpu_b0>;
-                               };
-                               core1 {
-                                       cpu = <&cpu_b1>;
-                               };
-                       };
-               };
-
-               cpu_l0: cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a53";
-                       reg = <0x0 0x0>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <485>;
-                       clocks = <&cru ARMCLKL>;
-                       #cooling-cells = <2>; /* min followed by max */
-                       dynamic-power-coefficient = <100>;
-                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
-                       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_l>;
-               };
-
-               cpu_l1: cpu@1 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a53";
-                       reg = <0x0 0x1>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <485>;
-                       clocks = <&cru ARMCLKL>;
-                       #cooling-cells = <2>; /* min followed by max */
-                       dynamic-power-coefficient = <100>;
-                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
-                       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_l>;
-               };
-
-               cpu_l2: cpu@2 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a53";
-                       reg = <0x0 0x2>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <485>;
-                       clocks = <&cru ARMCLKL>;
-                       #cooling-cells = <2>; /* min followed by max */
-                       dynamic-power-coefficient = <100>;
-                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
-                       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_l>;
-               };
-
-               cpu_l3: cpu@3 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a53";
-                       reg = <0x0 0x3>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <485>;
-                       clocks = <&cru ARMCLKL>;
-                       #cooling-cells = <2>; /* min followed by max */
-                       dynamic-power-coefficient = <100>;
-                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
-                       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_l>;
-               };
-
-               cpu_b0: cpu@100 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a72";
-                       reg = <0x0 0x100>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <1024>;
-                       clocks = <&cru ARMCLKB>;
-                       #cooling-cells = <2>; /* min followed by max */
-                       dynamic-power-coefficient = <436>;
-                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
-                       i-cache-size = <0xC000>;
-                       i-cache-line-size = <64>;
-                       i-cache-sets = <256>;
-                       d-cache-size = <0x8000>;
-                       d-cache-line-size = <64>;
-                       d-cache-sets = <256>;
-                       next-level-cache = <&l2_cache_b>;
-
-                       thermal-idle {
-                               #cooling-cells = <2>;
-                               duration-us = <10000>;
-                               exit-latency-us = <500>;
-                       };
+               opp00 {
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-microvolt = <825000 825000 1250000>;
+                       clock-latency-ns = <40000>;
                };
-
-               cpu_b1: cpu@101 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a72";
-                       reg = <0x0 0x101>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <1024>;
-                       clocks = <&cru ARMCLKB>;
-                       #cooling-cells = <2>; /* min followed by max */
-                       dynamic-power-coefficient = <436>;
-                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
-                       i-cache-size = <0xC000>;
-                       i-cache-line-size = <64>;
-                       i-cache-sets = <256>;
-                       d-cache-size = <0x8000>;
-                       d-cache-line-size = <64>;
-                       d-cache-sets = <256>;
-                       next-level-cache = <&l2_cache_b>;
-
-                       thermal-idle {
-                               #cooling-cells = <2>;
-                               duration-us = <10000>;
-                               exit-latency-us = <500>;
-                       };
-               };
-
-               l2_cache_l: l2-cache-cluster0 {
-                       compatible = "cache";
-                       cache-level = <2>;
-                       cache-unified;
-                       cache-size = <0x80000>;
-                       cache-line-size = <64>;
-                       cache-sets = <512>;
+               opp01 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <825000 825000 1250000>;
                };
-
-               l2_cache_b: l2-cache-cluster1 {
-                       compatible = "cache";
-                       cache-level = <2>;
-                       cache-unified;
-                       cache-size = <0x100000>;
-                       cache-line-size = <64>;
-                       cache-sets = <1024>;
+               opp02 {
+                       opp-hz = /bits/ 64 <816000000>;
+                       opp-microvolt = <850000 850000 1250000>;
                };
-
-               idle-states {
-                       entry-method = "psci";
-
-                       CPU_SLEEP: cpu-sleep {
-                               compatible = "arm,idle-state";
-                               local-timer-stop;
-                               arm,psci-suspend-param = <0x0010000>;
-                               entry-latency-us = <120>;
-                               exit-latency-us = <250>;
-                               min-residency-us = <900>;
-                       };
-
-                       CLUSTER_SLEEP: cluster-sleep {
-                               compatible = "arm,idle-state";
-                               local-timer-stop;
-                               arm,psci-suspend-param = <0x1010000>;
-                               entry-latency-us = <400>;
-                               exit-latency-us = <500>;
-                               min-residency-us = <2000>;
-                       };
+               opp03 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <925000 925000 1250000>;
                };
-       };
-
-       display-subsystem {
-               compatible = "rockchip,display-subsystem";
-               ports = <&vopl_out>, <&vopb_out>;
-       };
-
-       dmc: memory-controller {
-               compatible = "rockchip,rk3399-dmc";
-               rockchip,pmu = <&pmugrf>;
-               devfreq-events = <&dfi>;
-               clocks = <&cru SCLK_DDRC>;
-               clock-names = "dmc_clk";
-               status = "disabled";
-       };
-
-       pmu_a53 {
-               compatible = "arm,cortex-a53-pmu";
-               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
-       };
-
-       pmu_a72 {
-               compatible = "arm,cortex-a72-pmu";
-               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
-       };
-
-       psci {
-               compatible = "arm,psci-1.0";
-               method = "smc";
-       };
-
-       timer {
-               compatible = "arm,armv8-timer";
-               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
-                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
-                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
-                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
-               arm,no-tick-in-suspend;
-       };
-
-       xin24m: xin24m {
-               compatible = "fixed-clock";
-               clock-frequency = <24000000>;
-               clock-output-names = "xin24m";
-               #clock-cells = <0>;
-       };
-
-       pcie0: pcie@f8000000 {
-               compatible = "rockchip,rk3399-pcie";
-               reg = <0x0 0xf8000000 0x0 0x2000000>,
-                     <0x0 0xfd000000 0x0 0x1000000>;
-               reg-names = "axi-base", "apb-base";
-               device_type = "pci";
-               #address-cells = <3>;
-               #size-cells = <2>;
-               #interrupt-cells = <1>;
-               aspm-no-l0s;
-               bus-range = <0x0 0x1f>;
-               clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
-                        <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
-               clock-names = "aclk", "aclk-perf",
-                             "hclk", "pm";
-               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "sys", "legacy", "client";
-               interrupt-map-mask = <0 0 0 7>;
-               interrupt-map = <0 0 0 1 &pcie0_intc 0>,
-                               <0 0 0 2 &pcie0_intc 1>,
-                               <0 0 0 3 &pcie0_intc 2>,
-                               <0 0 0 4 &pcie0_intc 3>;
-               max-link-speed = <1>;
-               msi-map = <0x0 &its 0x0 0x1000>;
-               phys = <&pcie_phy 0>, <&pcie_phy 1>,
-                      <&pcie_phy 2>, <&pcie_phy 3>;
-               phy-names = "pcie-phy-0", "pcie-phy-1",
-                           "pcie-phy-2", "pcie-phy-3";
-               ranges = <0x82000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000>,
-                        <0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
-               resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
-                        <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
-                        <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
-                        <&cru SRST_A_PCIE>;
-               reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
-                             "pm", "pclk", "aclk";
-               status = "disabled";
-
-               pcie0_intc: interrupt-controller {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <1>;
+               opp04 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <1000000 1000000 1250000>;
                };
-       };
-
-       pcie0_ep: pcie-ep@f8000000 {
-               compatible = "rockchip,rk3399-pcie-ep";
-               reg = <0x0 0xfd000000 0x0 0x1000000>,
-                     <0x0 0xfa000000 0x0 0x2000000>;
-               reg-names = "apb-base", "mem-base";
-               clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
-                        <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
-               clock-names = "aclk", "aclk-perf",
-                             "hclk", "pm";
-               max-functions = /bits/ 8 <8>;
-               num-lanes = <4>;
-               resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
-                        <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
-                        <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
-                        <&cru SRST_A_PCIE>;
-               reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
-                             "pm", "pclk", "aclk";
-               phys = <&pcie_phy 0>, <&pcie_phy 1>,
-                      <&pcie_phy 2>, <&pcie_phy 3>;
-               phy-names = "pcie-phy-0", "pcie-phy-1",
-                           "pcie-phy-2", "pcie-phy-3";
-               rockchip,max-outbound-regions = <32>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pcie_clkreqnb_cpm>;
-               status = "disabled";
-       };
-
-       gmac: ethernet@fe300000 {
-               compatible = "rockchip,rk3399-gmac";
-               reg = <0x0 0xfe300000 0x0 0x10000>;
-               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "macirq";
-               clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>,
-                        <&cru SCLK_MAC_TX>, <&cru SCLK_MACREF>,
-                        <&cru SCLK_MACREF_OUT>, <&cru ACLK_GMAC>,
-                        <&cru PCLK_GMAC>;
-               clock-names = "stmmaceth", "mac_clk_rx",
-                             "mac_clk_tx", "clk_mac_ref",
-                             "clk_mac_refout", "aclk_mac",
-                             "pclk_mac";
-               power-domains = <&power RK3399_PD_GMAC>;
-               resets = <&cru SRST_A_GMAC>;
-               reset-names = "stmmaceth";
-               rockchip,grf = <&grf>;
-               snps,txpbl = <0x4>;
-               status = "disabled";
-       };
-
-       sdio0: mmc@fe310000 {
-               compatible = "rockchip,rk3399-dw-mshc",
-                            "rockchip,rk3288-dw-mshc";
-               reg = <0x0 0xfe310000 0x0 0x4000>;
-               interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>;
-               max-frequency = <150000000>;
-               clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
-                        <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
-               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
-               fifo-depth = <0x100>;
-               power-domains = <&power RK3399_PD_SDIOAUDIO>;
-               resets = <&cru SRST_SDIO0>;
-               reset-names = "reset";
-               status = "disabled";
-       };
-
-       sdmmc: mmc@fe320000 {
-               compatible = "rockchip,rk3399-dw-mshc",
-                            "rockchip,rk3288-dw-mshc";
-               reg = <0x0 0xfe320000 0x0 0x4000>;
-               interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>;
-               max-frequency = <150000000>;
-               assigned-clocks = <&cru HCLK_SD>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
-                        <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
-               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
-               fifo-depth = <0x100>;
-               power-domains = <&power RK3399_PD_SD>;
-               resets = <&cru SRST_SDMMC>;
-               reset-names = "reset";
-               status = "disabled";
-       };
-
-       sdhci: mmc@fe330000 {
-               compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
-               reg = <0x0 0xfe330000 0x0 0x10000>;
-               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
-               arasan,soc-ctl-syscon = <&grf>;
-               assigned-clocks = <&cru SCLK_EMMC>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&cru SCLK_EMMC>, <&cru ACLK_EMMC>;
-               clock-names = "clk_xin", "clk_ahb";
-               clock-output-names = "emmc_cardclock";
-               #clock-cells = <0>;
-               phys = <&emmc_phy>;
-               phy-names = "phy_arasan";
-               power-domains = <&power RK3399_PD_EMMC>;
-               disable-cqe-dcmd;
-               status = "disabled";
-       };
-
-       usb_host0_ehci: usb@fe380000 {
-               compatible = "generic-ehci";
-               reg = <0x0 0xfe380000 0x0 0x20000>;
-               interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
-                        <&u2phy0>;
-               phys = <&u2phy0_host>;
-               phy-names = "usb";
-               status = "disabled";
-       };
-
-       usb_host0_ohci: usb@fe3a0000 {
-               compatible = "generic-ohci";
-               reg = <0x0 0xfe3a0000 0x0 0x20000>;
-               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
-                        <&u2phy0>;
-               phys = <&u2phy0_host>;
-               phy-names = "usb";
-               status = "disabled";
-       };
-
-       usb_host1_ehci: usb@fe3c0000 {
-               compatible = "generic-ehci";
-               reg = <0x0 0xfe3c0000 0x0 0x20000>;
-               interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
-                        <&u2phy1>;
-               phys = <&u2phy1_host>;
-               phy-names = "usb";
-               status = "disabled";
-       };
-
-       usb_host1_ohci: usb@fe3e0000 {
-               compatible = "generic-ohci";
-               reg = <0x0 0xfe3e0000 0x0 0x20000>;
-               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
-                        <&u2phy1>;
-               phys = <&u2phy1_host>;
-               phy-names = "usb";
-               status = "disabled";
-       };
-
-       debug@fe430000 {
-               compatible = "arm,coresight-cpu-debug", "arm,primecell";
-               reg = <0 0xfe430000 0 0x1000>;
-               clocks = <&cru PCLK_COREDBG_L>;
-               clock-names = "apb_pclk";
-               cpu = <&cpu_l0>;
-       };
-
-       debug@fe432000 {
-               compatible = "arm,coresight-cpu-debug", "arm,primecell";
-               reg = <0 0xfe432000 0 0x1000>;
-               clocks = <&cru PCLK_COREDBG_L>;
-               clock-names = "apb_pclk";
-               cpu = <&cpu_l1>;
-       };
-
-       debug@fe434000 {
-               compatible = "arm,coresight-cpu-debug", "arm,primecell";
-               reg = <0 0xfe434000 0 0x1000>;
-               clocks = <&cru PCLK_COREDBG_L>;
-               clock-names = "apb_pclk";
-               cpu = <&cpu_l2>;
-       };
-
-       debug@fe436000 {
-               compatible = "arm,coresight-cpu-debug", "arm,primecell";
-               reg = <0 0xfe436000 0 0x1000>;
-               clocks = <&cru PCLK_COREDBG_L>;
-               clock-names = "apb_pclk";
-               cpu = <&cpu_l3>;
-       };
-
-       debug@fe610000 {
-               compatible = "arm,coresight-cpu-debug", "arm,primecell";
-               reg = <0 0xfe610000 0 0x1000>;
-               clocks = <&cru PCLK_COREDBG_B>;
-               clock-names = "apb_pclk";
-               cpu = <&cpu_b0>;
-       };
-
-       debug@fe710000 {
-               compatible = "arm,coresight-cpu-debug", "arm,primecell";
-               reg = <0 0xfe710000 0 0x1000>;
-               clocks = <&cru PCLK_COREDBG_B>;
-               clock-names = "apb_pclk";
-               cpu = <&cpu_b1>;
-       };
-
-       usbdrd3_0: usb@fe800000 {
-               compatible = "rockchip,rk3399-dwc3";
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-               clocks = <&cru SCLK_USB3OTG0_REF>, <&cru SCLK_USB3OTG0_SUSPEND>,
-                        <&cru ACLK_USB3OTG0>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
-                        <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
-               clock-names = "ref_clk", "suspend_clk",
-                             "bus_clk", "aclk_usb3_rksoc_axi_perf",
-                             "aclk_usb3", "grf_clk";
-               resets = <&cru SRST_A_USB3_OTG0>;
-               reset-names = "usb3-otg";
-               status = "disabled";
-
-               usbdrd_dwc3_0: usb@fe800000 {
-                       compatible = "snps,dwc3";
-                       reg = <0x0 0xfe800000 0x0 0x100000>;
-                       interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
-                       clocks = <&cru SCLK_USB3OTG0_REF>, <&cru ACLK_USB3OTG0>,
-                                <&cru SCLK_USB3OTG0_SUSPEND>;
-                       clock-names = "ref", "bus_early", "suspend";
-                       dr_mode = "otg";
-                       phys = <&u2phy0_otg>, <&tcphy0_usb3>;
-                       phy-names = "usb2-phy", "usb3-phy";
-                       phy_type = "utmi_wide";
-                       snps,dis_enblslpm_quirk;
-                       snps,dis-u2-freeclk-exists-quirk;
-                       snps,dis_u2_susphy_quirk;
-                       snps,dis-del-phy-power-chg-quirk;
-                       snps,dis-tx-ipgap-linecheck-quirk;
-                       power-domains = <&power RK3399_PD_USB3>;
-                       status = "disabled";
+               opp05 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <1125000 1125000 1250000>;
                };
        };
 
-       usbdrd3_1: usb@fe900000 {
-               compatible = "rockchip,rk3399-dwc3";
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-               clocks = <&cru SCLK_USB3OTG1_REF>, <&cru SCLK_USB3OTG1_SUSPEND>,
-                        <&cru ACLK_USB3OTG1>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
-                        <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
-               clock-names = "ref_clk", "suspend_clk",
-                             "bus_clk", "aclk_usb3_rksoc_axi_perf",
-                             "aclk_usb3", "grf_clk";
-               resets = <&cru SRST_A_USB3_OTG1>;
-               reset-names = "usb3-otg";
-               status = "disabled";
+       cluster1_opp: opp-table-1 {
+               compatible = "operating-points-v2";
+               opp-shared;
 
-               usbdrd_dwc3_1: usb@fe900000 {
-                       compatible = "snps,dwc3";
-                       reg = <0x0 0xfe900000 0x0 0x100000>;
-                       interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
-                       clocks = <&cru SCLK_USB3OTG1_REF>, <&cru ACLK_USB3OTG1>,
-                                <&cru SCLK_USB3OTG1_SUSPEND>;
-                       clock-names = "ref", "bus_early", "suspend";
-                       dr_mode = "otg";
-                       phys = <&u2phy1_otg>, <&tcphy1_usb3>;
-                       phy-names = "usb2-phy", "usb3-phy";
-                       phy_type = "utmi_wide";
-                       snps,dis_enblslpm_quirk;
-                       snps,dis-u2-freeclk-exists-quirk;
-                       snps,dis_u2_susphy_quirk;
-                       snps,dis-del-phy-power-chg-quirk;
-                       snps,dis-tx-ipgap-linecheck-quirk;
-                       power-domains = <&power RK3399_PD_USB3>;
-                       status = "disabled";
+               opp00 {
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-microvolt = <825000 825000 1250000>;
+                       clock-latency-ns = <40000>;
                };
-       };
-
-       cdn_dp: dp@fec00000 {
-               compatible = "rockchip,rk3399-cdn-dp";
-               reg = <0x0 0xfec00000 0x0 0x100000>;
-               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
-               assigned-clocks = <&cru SCLK_DP_CORE>, <&cru SCLK_SPDIF_REC_DPTX>;
-               assigned-clock-rates = <100000000>, <200000000>;
-               clocks = <&cru SCLK_DP_CORE>, <&cru PCLK_DP_CTRL>,
-                        <&cru SCLK_SPDIF_REC_DPTX>, <&cru PCLK_VIO_GRF>;
-               clock-names = "core-clk", "pclk", "spdif", "grf";
-               phys = <&tcphy0_dp>, <&tcphy1_dp>;
-               power-domains = <&power RK3399_PD_HDCP>;
-               resets = <&cru SRST_DPTX_SPDIF_REC>, <&cru SRST_P_UPHY0_DPTX>,
-                        <&cru SRST_P_UPHY0_APB>, <&cru SRST_DP_CORE>;
-               reset-names = "spdif", "dptx", "apb", "core";
-               rockchip,grf = <&grf>;
-               #sound-dai-cells = <1>;
-               status = "disabled";
-
-               ports {
-                       dp_in: port {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               dp_in_vopb: endpoint@0 {
-                                       reg = <0>;
-                                       remote-endpoint = <&vopb_out_dp>;
-                               };
-
-                               dp_in_vopl: endpoint@1 {
-                                       reg = <1>;
-                                       remote-endpoint = <&vopl_out_dp>;
-                               };
-                       };
+               opp01 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <825000 825000 1250000>;
                };
-       };
-
-       gic: interrupt-controller@fee00000 {
-               compatible = "arm,gic-v3";
-               #interrupt-cells = <4>;
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-               interrupt-controller;
-
-               reg = <0x0 0xfee00000 0 0x10000>, /* GICD */
-                     <0x0 0xfef00000 0 0xc0000>, /* GICR */
-                     <0x0 0xfff00000 0 0x10000>, /* GICC */
-                     <0x0 0xfff10000 0 0x10000>, /* GICH */
-                     <0x0 0xfff20000 0 0x10000>; /* GICV */
-               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
-               its: msi-controller@fee20000 {
-                       compatible = "arm,gic-v3-its";
-                       msi-controller;
-                       #msi-cells = <1>;
-                       reg = <0x0 0xfee20000 0x0 0x20000>;
+               opp02 {
+                       opp-hz = /bits/ 64 <816000000>;
+                       opp-microvolt = <825000 825000 1250000>;
                };
-
-               ppi-partitions {
-                       ppi_cluster0: interrupt-partition-0 {
-                               affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
-                       };
-
-                       ppi_cluster1: interrupt-partition-1 {
-                               affinity = <&cpu_b0 &cpu_b1>;
-                       };
+               opp03 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <875000 875000 1250000>;
                };
-       };
-
-       saradc: saradc@ff100000 {
-               compatible = "rockchip,rk3399-saradc";
-               reg = <0x0 0xff100000 0x0 0x100>;
-               interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH 0>;
-               #io-channel-cells = <1>;
-               clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
-               clock-names = "saradc", "apb_pclk";
-               resets = <&cru SRST_P_SARADC>;
-               reset-names = "saradc-apb";
-               status = "disabled";
-       };
-
-       crypto0: crypto@ff8b0000 {
-               compatible = "rockchip,rk3399-crypto";
-               reg = <0x0 0xff8b0000 0x0 0x4000>;
-               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru HCLK_M_CRYPTO0>, <&cru HCLK_S_CRYPTO0>, <&cru SCLK_CRYPTO0>;
-               clock-names = "hclk_master", "hclk_slave", "sclk";
-               resets = <&cru SRST_CRYPTO0>, <&cru SRST_CRYPTO0_S>, <&cru SRST_CRYPTO0_M>;
-               reset-names = "master", "slave", "crypto-rst";
-       };
-
-       crypto1: crypto@ff8b8000 {
-               compatible = "rockchip,rk3399-crypto";
-               reg = <0x0 0xff8b8000 0x0 0x4000>;
-               interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru HCLK_M_CRYPTO1>, <&cru HCLK_S_CRYPTO1>, <&cru SCLK_CRYPTO1>;
-               clock-names = "hclk_master", "hclk_slave", "sclk";
-               resets = <&cru SRST_CRYPTO1>, <&cru SRST_CRYPTO1_S>, <&cru SRST_CRYPTO1_M>;
-               reset-names = "master", "slave", "crypto-rst";
-       };
-
-       i2c1: i2c@ff110000 {
-               compatible = "rockchip,rk3399-i2c";
-               reg = <0x0 0xff110000 0x0 0x1000>;
-               assigned-clocks = <&cru SCLK_I2C1>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c1_xfer>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c2: i2c@ff120000 {
-               compatible = "rockchip,rk3399-i2c";
-               reg = <0x0 0xff120000 0x0 0x1000>;
-               assigned-clocks = <&cru SCLK_I2C2>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c2_xfer>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c3: i2c@ff130000 {
-               compatible = "rockchip,rk3399-i2c";
-               reg = <0x0 0xff130000 0x0 0x1000>;
-               assigned-clocks = <&cru SCLK_I2C3>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c3_xfer>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c5: i2c@ff140000 {
-               compatible = "rockchip,rk3399-i2c";
-               reg = <0x0 0xff140000 0x0 0x1000>;
-               assigned-clocks = <&cru SCLK_I2C5>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&cru SCLK_I2C5>, <&cru PCLK_I2C5>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c5_xfer>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c6: i2c@ff150000 {
-               compatible = "rockchip,rk3399-i2c";
-               reg = <0x0 0xff150000 0x0 0x1000>;
-               assigned-clocks = <&cru SCLK_I2C6>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&cru SCLK_I2C6>, <&cru PCLK_I2C6>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c6_xfer>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c7: i2c@ff160000 {
-               compatible = "rockchip,rk3399-i2c";
-               reg = <0x0 0xff160000 0x0 0x1000>;
-               assigned-clocks = <&cru SCLK_I2C7>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&cru SCLK_I2C7>, <&cru PCLK_I2C7>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c7_xfer>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       uart0: serial@ff180000 {
-               compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xff180000 0x0 0x100>;
-               clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
-               clock-names = "baudclk", "apb_pclk";
-               interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>;
-               reg-shift = <2>;
-               reg-io-width = <4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&uart0_xfer>;
-               status = "disabled";
-       };
-
-       uart1: serial@ff190000 {
-               compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xff190000 0x0 0x100>;
-               clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
-               clock-names = "baudclk", "apb_pclk";
-               interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>;
-               reg-shift = <2>;
-               reg-io-width = <4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&uart1_xfer>;
-               status = "disabled";
-       };
-
-       uart2: serial@ff1a0000 {
-               compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xff1a0000 0x0 0x100>;
-               clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
-               clock-names = "baudclk", "apb_pclk";
-               interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>;
-               reg-shift = <2>;
-               reg-io-width = <4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&uart2c_xfer>;
-               status = "disabled";
-       };
-
-       uart3: serial@ff1b0000 {
-               compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xff1b0000 0x0 0x100>;
-               clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
-               clock-names = "baudclk", "apb_pclk";
-               interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>;
-               reg-shift = <2>;
-               reg-io-width = <4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&uart3_xfer>;
-               status = "disabled";
-       };
-
-       spi0: spi@ff1c0000 {
-               compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
-               reg = <0x0 0xff1c0000 0x0 0x1000>;
-               clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
-               clock-names = "spiclk", "apb_pclk";
-               interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH 0>;
-               dmas = <&dmac_peri 10>, <&dmac_peri 11>;
-               dma-names = "tx", "rx";
-               pinctrl-names = "default";
-               pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       spi1: spi@ff1d0000 {
-               compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
-               reg = <0x0 0xff1d0000 0x0 0x1000>;
-               clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
-               clock-names = "spiclk", "apb_pclk";
-               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH 0>;
-               dmas = <&dmac_peri 12>, <&dmac_peri 13>;
-               dma-names = "tx", "rx";
-               pinctrl-names = "default";
-               pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       spi2: spi@ff1e0000 {
-               compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
-               reg = <0x0 0xff1e0000 0x0 0x1000>;
-               clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
-               clock-names = "spiclk", "apb_pclk";
-               interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH 0>;
-               dmas = <&dmac_peri 14>, <&dmac_peri 15>;
-               dma-names = "tx", "rx";
-               pinctrl-names = "default";
-               pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       spi4: spi@ff1f0000 {
-               compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
-               reg = <0x0 0xff1f0000 0x0 0x1000>;
-               clocks = <&cru SCLK_SPI4>, <&cru PCLK_SPI4>;
-               clock-names = "spiclk", "apb_pclk";
-               interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH 0>;
-               dmas = <&dmac_peri 18>, <&dmac_peri 19>;
-               dma-names = "tx", "rx";
-               pinctrl-names = "default";
-               pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       spi5: spi@ff200000 {
-               compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
-               reg = <0x0 0xff200000 0x0 0x1000>;
-               clocks = <&cru SCLK_SPI5>, <&cru PCLK_SPI5>;
-               clock-names = "spiclk", "apb_pclk";
-               interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH 0>;
-               dmas = <&dmac_bus 8>, <&dmac_bus 9>;
-               dma-names = "tx", "rx";
-               pinctrl-names = "default";
-               pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>;
-               power-domains = <&power RK3399_PD_SDIOAUDIO>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       thermal_zones: thermal-zones {
-               cpu_thermal: cpu-thermal {
-                       polling-delay-passive = <100>;
-                       polling-delay = <1000>;
-
-                       thermal-sensors = <&tsadc 0>;
-
-                       trips {
-                               cpu_alert0: cpu_alert0 {
-                                       temperature = <70000>;
-                                       hysteresis = <2000>;
-                                       type = "passive";
-                               };
-                               cpu_alert1: cpu_alert1 {
-                                       temperature = <75000>;
-                                       hysteresis = <2000>;
-                                       type = "passive";
-                               };
-                               cpu_crit: cpu_crit {
-                                       temperature = <95000>;
-                                       hysteresis = <2000>;
-                                       type = "critical";
-                               };
-                       };
-
-                       cooling-maps {
-                               map0 {
-                                       trip = <&cpu_alert0>;
-                                       cooling-device =
-                                               <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                               <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-                               };
-                               map1 {
-                                       trip = <&cpu_alert1>;
-                                       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>,
-                                               <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                               <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-                               };
-                       };
+               opp04 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <950000 950000 1250000>;
                };
-
-               gpu_thermal: gpu-thermal {
-                       polling-delay-passive = <100>;
-                       polling-delay = <1000>;
-
-                       thermal-sensors = <&tsadc 1>;
-
-                       trips {
-                               gpu_alert0: gpu_alert0 {
-                                       temperature = <75000>;
-                                       hysteresis = <2000>;
-                                       type = "passive";
-                               };
-                               gpu_crit: gpu_crit {
-                                       temperature = <95000>;
-                                       hysteresis = <2000>;
-                                       type = "critical";
-                               };
-                       };
-
-                       cooling-maps {
-                               map0 {
-                                       trip = <&gpu_alert0>;
-                                       cooling-device =
-                                               <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-                               };
-                       };
+               opp05 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <1025000 1025000 1250000>;
                };
-       };
-
-       tsadc: tsadc@ff260000 {
-               compatible = "rockchip,rk3399-tsadc";
-               reg = <0x0 0xff260000 0x0 0x100>;
-               interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
-               assigned-clocks = <&cru SCLK_TSADC>;
-               assigned-clock-rates = <750000>;
-               clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
-               clock-names = "tsadc", "apb_pclk";
-               resets = <&cru SRST_TSADC>;
-               reset-names = "tsadc-apb";
-               rockchip,grf = <&grf>;
-               rockchip,hw-tshut-temp = <95000>;
-               pinctrl-names = "init", "default", "sleep";
-               pinctrl-0 = <&otp_pin>;
-               pinctrl-1 = <&otp_out>;
-               pinctrl-2 = <&otp_pin>;
-               #thermal-sensor-cells = <1>;
-               status = "disabled";
-       };
-
-       qos_emmc: qos@ffa58000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffa58000 0x0 0x20>;
-       };
-
-       qos_gmac: qos@ffa5c000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffa5c000 0x0 0x20>;
-       };
-
-       qos_pcie: qos@ffa60080 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffa60080 0x0 0x20>;
-       };
-
-       qos_usb_host0: qos@ffa60100 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffa60100 0x0 0x20>;
-       };
-
-       qos_usb_host1: qos@ffa60180 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffa60180 0x0 0x20>;
-       };
-
-       qos_usb_otg0: qos@ffa70000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffa70000 0x0 0x20>;
-       };
-
-       qos_usb_otg1: qos@ffa70080 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffa70080 0x0 0x20>;
-       };
-
-       qos_sd: qos@ffa74000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffa74000 0x0 0x20>;
-       };
-
-       qos_sdioaudio: qos@ffa76000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffa76000 0x0 0x20>;
-       };
-
-       qos_hdcp: qos@ffa90000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffa90000 0x0 0x20>;
-       };
-
-       qos_iep: qos@ffa98000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffa98000 0x0 0x20>;
-       };
-
-       qos_isp0_m0: qos@ffaa0000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffaa0000 0x0 0x20>;
-       };
-
-       qos_isp0_m1: qos@ffaa0080 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffaa0080 0x0 0x20>;
-       };
-
-       qos_isp1_m0: qos@ffaa8000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffaa8000 0x0 0x20>;
-       };
-
-       qos_isp1_m1: qos@ffaa8080 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffaa8080 0x0 0x20>;
-       };
-
-       qos_rga_r: qos@ffab0000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffab0000 0x0 0x20>;
-       };
-
-       qos_rga_w: qos@ffab0080 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffab0080 0x0 0x20>;
-       };
-
-       qos_video_m0: qos@ffab8000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffab8000 0x0 0x20>;
-       };
-
-       qos_video_m1_r: qos@ffac0000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffac0000 0x0 0x20>;
-       };
-
-       qos_video_m1_w: qos@ffac0080 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffac0080 0x0 0x20>;
-       };
-
-       qos_vop_big_r: qos@ffac8000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffac8000 0x0 0x20>;
-       };
-
-       qos_vop_big_w: qos@ffac8080 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffac8080 0x0 0x20>;
-       };
-
-       qos_vop_little: qos@ffad0000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffad0000 0x0 0x20>;
-       };
-
-       qos_perihp: qos@ffad8080 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffad8080 0x0 0x20>;
-       };
-
-       qos_gpu: qos@ffae0000 {
-               compatible = "rockchip,rk3399-qos", "syscon";
-               reg = <0x0 0xffae0000 0x0 0x20>;
-       };
-
-       pmu: power-management@ff310000 {
-               compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
-               reg = <0x0 0xff310000 0x0 0x1000>;
-
-               /*
-                * Note: RK3399 supports 6 voltage domains including VD_CORE_L,
-                * VD_CORE_B, VD_CENTER, VD_GPU, VD_LOGIC and VD_PMU.
-                * Some of the power domains are grouped together for every
-                * voltage domain.
-                * The detail contents as below.
-                */
-               power: power-controller {
-                       compatible = "rockchip,rk3399-power-controller";
-                       #power-domain-cells = <1>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       /* These power domains are grouped by VD_CENTER */
-                       power-domain@RK3399_PD_IEP {
-                               reg = <RK3399_PD_IEP>;
-                               clocks = <&cru ACLK_IEP>,
-                                        <&cru HCLK_IEP>;
-                               pm_qos = <&qos_iep>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3399_PD_RGA {
-                               reg = <RK3399_PD_RGA>;
-                               clocks = <&cru ACLK_RGA>,
-                                        <&cru HCLK_RGA>;
-                               pm_qos = <&qos_rga_r>,
-                                        <&qos_rga_w>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3399_PD_VCODEC {
-                               reg = <RK3399_PD_VCODEC>;
-                               clocks = <&cru ACLK_VCODEC>,
-                                        <&cru HCLK_VCODEC>;
-                               pm_qos = <&qos_video_m0>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3399_PD_VDU {
-                               reg = <RK3399_PD_VDU>;
-                               clocks = <&cru ACLK_VDU>,
-                                        <&cru HCLK_VDU>,
-                                        <&cru SCLK_VDU_CA>,
-                                        <&cru SCLK_VDU_CORE>;
-                               pm_qos = <&qos_video_m1_r>,
-                                        <&qos_video_m1_w>;
-                               #power-domain-cells = <0>;
-                       };
-
-                       /* These power domains are grouped by VD_GPU */
-                       power-domain@RK3399_PD_GPU {
-                               reg = <RK3399_PD_GPU>;
-                               clocks = <&cru ACLK_GPU>;
-                               pm_qos = <&qos_gpu>;
-                               #power-domain-cells = <0>;
-                       };
-
-                       /* These power domains are grouped by VD_LOGIC */
-                       power-domain@RK3399_PD_EDP {
-                               reg = <RK3399_PD_EDP>;
-                               clocks = <&cru PCLK_EDP_CTRL>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3399_PD_EMMC {
-                               reg = <RK3399_PD_EMMC>;
-                               clocks = <&cru ACLK_EMMC>;
-                               pm_qos = <&qos_emmc>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3399_PD_GMAC {
-                               reg = <RK3399_PD_GMAC>;
-                               clocks = <&cru ACLK_GMAC>,
-                                        <&cru PCLK_GMAC>;
-                               pm_qos = <&qos_gmac>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3399_PD_SD {
-                               reg = <RK3399_PD_SD>;
-                               clocks = <&cru HCLK_SDMMC>,
-                                        <&cru SCLK_SDMMC>;
-                               pm_qos = <&qos_sd>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3399_PD_SDIOAUDIO {
-                               reg = <RK3399_PD_SDIOAUDIO>;
-                               clocks = <&cru HCLK_SDIO>;
-                               pm_qos = <&qos_sdioaudio>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3399_PD_TCPD0 {
-                               reg = <RK3399_PD_TCPD0>;
-                               clocks = <&cru SCLK_UPHY0_TCPDCORE>,
-                                        <&cru SCLK_UPHY0_TCPDPHY_REF>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3399_PD_TCPD1 {
-                               reg = <RK3399_PD_TCPD1>;
-                               clocks = <&cru SCLK_UPHY1_TCPDCORE>,
-                                        <&cru SCLK_UPHY1_TCPDPHY_REF>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3399_PD_USB3 {
-                               reg = <RK3399_PD_USB3>;
-                               clocks = <&cru ACLK_USB3>;
-                               pm_qos = <&qos_usb_otg0>,
-                                        <&qos_usb_otg1>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3399_PD_VIO {
-                               reg = <RK3399_PD_VIO>;
-                               #power-domain-cells = <1>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               power-domain@RK3399_PD_HDCP {
-                                       reg = <RK3399_PD_HDCP>;
-                                       clocks = <&cru ACLK_HDCP>,
-                                                <&cru HCLK_HDCP>,
-                                                <&cru PCLK_HDCP>;
-                                       pm_qos = <&qos_hdcp>;
-                                       #power-domain-cells = <0>;
-                               };
-                               power-domain@RK3399_PD_ISP0 {
-                                       reg = <RK3399_PD_ISP0>;
-                                       clocks = <&cru ACLK_ISP0>,
-                                                <&cru HCLK_ISP0>;
-                                       pm_qos = <&qos_isp0_m0>,
-                                                <&qos_isp0_m1>;
-                                       #power-domain-cells = <0>;
-                               };
-                               power-domain@RK3399_PD_ISP1 {
-                                       reg = <RK3399_PD_ISP1>;
-                                       clocks = <&cru ACLK_ISP1>,
-                                                <&cru HCLK_ISP1>;
-                                       pm_qos = <&qos_isp1_m0>,
-                                                <&qos_isp1_m1>;
-                                       #power-domain-cells = <0>;
-                               };
-                               power-domain@RK3399_PD_VO {
-                                       reg = <RK3399_PD_VO>;
-                                       #power-domain-cells = <1>;
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-
-                                       power-domain@RK3399_PD_VOPB {
-                                               reg = <RK3399_PD_VOPB>;
-                                               clocks = <&cru ACLK_VOP0>,
-                                                        <&cru HCLK_VOP0>;
-                                               pm_qos = <&qos_vop_big_r>,
-                                                        <&qos_vop_big_w>;
-                                               #power-domain-cells = <0>;
-                                       };
-                                       power-domain@RK3399_PD_VOPL {
-                                               reg = <RK3399_PD_VOPL>;
-                                               clocks = <&cru ACLK_VOP1>,
-                                                        <&cru HCLK_VOP1>;
-                                               pm_qos = <&qos_vop_little>;
-                                               #power-domain-cells = <0>;
-                                       };
-                               };
-                       };
+               opp06 {
+                       opp-hz = /bits/ 64 <1608000000>;
+                       opp-microvolt = <1100000 1100000 1250000>;
                };
-       };
-
-       pmugrf: syscon@ff320000 {
-               compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
-               reg = <0x0 0xff320000 0x0 0x1000>;
-
-               pmu_io_domains: io-domains {
-                       compatible = "rockchip,rk3399-pmu-io-voltage-domain";
-                       status = "disabled";
+               opp07 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <1200000 1200000 1250000>;
                };
        };
 
-       spi3: spi@ff350000 {
-               compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
-               reg = <0x0 0xff350000 0x0 0x1000>;
-               clocks = <&pmucru SCLK_SPI3_PMU>, <&pmucru PCLK_SPI3_PMU>;
-               clock-names = "spiclk", "apb_pclk";
-               interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       uart4: serial@ff370000 {
-               compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xff370000 0x0 0x100>;
-               clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>;
-               clock-names = "baudclk", "apb_pclk";
-               interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>;
-               reg-shift = <2>;
-               reg-io-width = <4>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&uart4_xfer>;
-               status = "disabled";
-       };
-
-       i2c0: i2c@ff3c0000 {
-               compatible = "rockchip,rk3399-i2c";
-               reg = <0x0 0xff3c0000 0x0 0x1000>;
-               assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c0_xfer>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c4: i2c@ff3d0000 {
-               compatible = "rockchip,rk3399-i2c";
-               reg = <0x0 0xff3d0000 0x0 0x1000>;
-               assigned-clocks = <&pmucru SCLK_I2C4_PMU>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&pmucru SCLK_I2C4_PMU>, <&pmucru PCLK_I2C4_PMU>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c4_xfer>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c8: i2c@ff3e0000 {
-               compatible = "rockchip,rk3399-i2c";
-               reg = <0x0 0xff3e0000 0x0 0x1000>;
-               assigned-clocks = <&pmucru SCLK_I2C8_PMU>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&pmucru SCLK_I2C8_PMU>, <&pmucru PCLK_I2C8_PMU>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c8_xfer>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       pwm0: pwm@ff420000 {
-               compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
-               reg = <0x0 0xff420000 0x0 0x10>;
-               #pwm-cells = <3>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pwm0_pin>;
-               clocks = <&pmucru PCLK_RKPWM_PMU>;
-               status = "disabled";
-       };
-
-       pwm1: pwm@ff420010 {
-               compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
-               reg = <0x0 0xff420010 0x0 0x10>;
-               #pwm-cells = <3>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pwm1_pin>;
-               clocks = <&pmucru PCLK_RKPWM_PMU>;
-               status = "disabled";
-       };
-
-       pwm2: pwm@ff420020 {
-               compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
-               reg = <0x0 0xff420020 0x0 0x10>;
-               #pwm-cells = <3>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pwm2_pin>;
-               clocks = <&pmucru PCLK_RKPWM_PMU>;
-               status = "disabled";
-       };
-
-       pwm3: pwm@ff420030 {
-               compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
-               reg = <0x0 0xff420030 0x0 0x10>;
-               #pwm-cells = <3>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pwm3a_pin>;
-               clocks = <&pmucru PCLK_RKPWM_PMU>;
-               status = "disabled";
-       };
-
-       dfi: dfi@ff630000 {
-               reg = <0x00 0xff630000 0x00 0x4000>;
-               compatible = "rockchip,rk3399-dfi";
-               rockchip,pmu = <&pmugrf>;
-               interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru PCLK_DDR_MON>;
-               clock-names = "pclk_ddr_mon";
-       };
-
-       vpu: video-codec@ff650000 {
-               compatible = "rockchip,rk3399-vpu";
-               reg = <0x0 0xff650000 0x0 0x800>;
-               interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "vepu", "vdpu";
-               clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
-               clock-names = "aclk", "hclk";
-               iommus = <&vpu_mmu>;
-               power-domains = <&power RK3399_PD_VCODEC>;
-       };
-
-       vpu_mmu: iommu@ff650800 {
-               compatible = "rockchip,iommu";
-               reg = <0x0 0xff650800 0x0 0x40>;
-               interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
-               clock-names = "aclk", "iface";
-               #iommu-cells = <0>;
-               power-domains = <&power RK3399_PD_VCODEC>;
-       };
-
-       vdec: video-codec@ff660000 {
-               compatible = "rockchip,rk3399-vdec";
-               reg = <0x0 0xff660000 0x0 0x480>;
-               interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>,
-                        <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
-               clock-names = "axi", "ahb", "cabac", "core";
-               iommus = <&vdec_mmu>;
-               power-domains = <&power RK3399_PD_VDU>;
-       };
-
-       vdec_mmu: iommu@ff660480 {
-               compatible = "rockchip,iommu";
-               reg = <0x0 0xff660480 0x0 0x40>, <0x0 0xff6604c0 0x0 0x40>;
-               interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>;
-               clock-names = "aclk", "iface";
-               power-domains = <&power RK3399_PD_VDU>;
-               #iommu-cells = <0>;
-       };
-
-       iep_mmu: iommu@ff670800 {
-               compatible = "rockchip,iommu";
-               reg = <0x0 0xff670800 0x0 0x40>;
-               interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>;
-               clock-names = "aclk", "iface";
-               #iommu-cells = <0>;
-               status = "disabled";
-       };
-
-       rga: rga@ff680000 {
-               compatible = "rockchip,rk3399-rga";
-               reg = <0x0 0xff680000 0x0 0x10000>;
-               interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA_CORE>;
-               clock-names = "aclk", "hclk", "sclk";
-               resets = <&cru SRST_RGA_CORE>, <&cru SRST_A_RGA>, <&cru SRST_H_RGA>;
-               reset-names = "core", "axi", "ahb";
-               power-domains = <&power RK3399_PD_RGA>;
-       };
-
-       efuse0: efuse@ff690000 {
-               compatible = "rockchip,rk3399-efuse";
-               reg = <0x0 0xff690000 0x0 0x80>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               clocks = <&cru PCLK_EFUSE1024NS>;
-               clock-names = "pclk_efuse";
+       gpu_opp_table: opp-table-2 {
+               compatible = "operating-points-v2";
 
-               /* Data cells */
-               cpu_id: cpu-id@7 {
-                       reg = <0x07 0x10>;
+               opp00 {
+                       opp-hz = /bits/ 64 <200000000>;
+                       opp-microvolt = <825000 825000 1150000>;
                };
-               cpub_leakage: cpu-leakage@17 {
-                       reg = <0x17 0x1>;
+               opp01 {
+                       opp-hz = /bits/ 64 <297000000>;
+                       opp-microvolt = <825000 825000 1150000>;
                };
-               gpu_leakage: gpu-leakage@18 {
-                       reg = <0x18 0x1>;
+               opp02 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <825000 825000 1150000>;
                };
-               center_leakage: center-leakage@19 {
-                       reg = <0x19 0x1>;
+               opp03 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <875000 875000 1150000>;
                };
-               cpul_leakage: cpu-leakage@1a {
-                       reg = <0x1a 0x1>;
+               opp04 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <925000 925000 1150000>;
                };
-               logic_leakage: logic-leakage@1b {
-                       reg = <0x1b 0x1>;
+               opp05 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <1100000 1100000 1150000>;
                };
-               wafer_info: wafer-info@1c {
-                       reg = <0x1c 0x1>;
-               };
-       };
-
-       dmac_bus: dma-controller@ff6d0000 {
-               compatible = "arm,pl330", "arm,primecell";
-               reg = <0x0 0xff6d0000 0x0 0x4000>;
-               interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
-               #dma-cells = <1>;
-               arm,pl330-periph-burst;
-               clocks = <&cru ACLK_DMAC0_PERILP>;
-               clock-names = "apb_pclk";
-       };
-
-       dmac_peri: dma-controller@ff6e0000 {
-               compatible = "arm,pl330", "arm,primecell";
-               reg = <0x0 0xff6e0000 0x0 0x4000>;
-               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
-               #dma-cells = <1>;
-               arm,pl330-periph-burst;
-               clocks = <&cru ACLK_DMAC1_PERILP>;
-               clock-names = "apb_pclk";
-       };
-
-       pmucru: clock-controller@ff750000 {
-               compatible = "rockchip,rk3399-pmucru";
-               reg = <0x0 0xff750000 0x0 0x1000>;
-               clocks = <&xin24m>;
-               clock-names = "xin24m";
-               rockchip,grf = <&pmugrf>;
-               #clock-cells = <1>;
-               #reset-cells = <1>;
-               assigned-clocks = <&pmucru PLL_PPLL>;
-               assigned-clock-rates = <676000000>;
-       };
-
-       cru: clock-controller@ff760000 {
-               compatible = "rockchip,rk3399-cru";
-               reg = <0x0 0xff760000 0x0 0x1000>;
-               clocks = <&xin24m>;
-               clock-names = "xin24m";
-               rockchip,grf = <&grf>;
-               #clock-cells = <1>;
-               #reset-cells = <1>;
-               assigned-clocks =
-                       <&cru PLL_GPLL>, <&cru PLL_CPLL>,
-                       <&cru PLL_NPLL>,
-                       <&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
-                       <&cru PCLK_PERIHP>,
-                       <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
-                       <&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
-                       <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>,
-                       <&cru ACLK_VIO>, <&cru ACLK_HDCP>,
-                       <&cru ACLK_GIC_PRE>,
-                       <&cru PCLK_DDR>,
-                       <&cru ACLK_VDU>;
-               assigned-clock-rates =
-                        <594000000>,  <800000000>,
-                       <1000000000>,
-                        <150000000>,   <75000000>,
-                         <37500000>,
-                        <100000000>,  <100000000>,
-                         <50000000>, <600000000>,
-                        <100000000>,   <50000000>,
-                        <400000000>, <400000000>,
-                        <200000000>,
-                        <200000000>,
-                        <400000000>;
        };
+};
 
-       grf: syscon@ff770000 {
-               compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
-               reg = <0x0 0xff770000 0x0 0x10000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               io_domains: io-domains {
-                       compatible = "rockchip,rk3399-io-voltage-domain";
-                       status = "disabled";
-               };
-
-               mipi_dphy_rx0: mipi-dphy-rx0 {
-                       compatible = "rockchip,rk3399-mipi-dphy-rx0";
-                       clocks = <&cru SCLK_MIPIDPHY_REF>,
-                                <&cru SCLK_DPHY_RX0_CFG>,
-                                <&cru PCLK_VIO_GRF>;
-                       clock-names = "dphy-ref", "dphy-cfg", "grf";
-                       power-domains = <&power RK3399_PD_VIO>;
-                       #phy-cells = <0>;
-                       status = "disabled";
-               };
-
-               u2phy0: usb2phy@e450 {
-                       compatible = "rockchip,rk3399-usb2phy";
-                       reg = <0xe450 0x10>;
-                       clocks = <&cru SCLK_USB2PHY0_REF>;
-                       clock-names = "phyclk";
-                       #clock-cells = <0>;
-                       clock-output-names = "clk_usbphy0_480m";
-                       status = "disabled";
-
-                       u2phy0_host: host-port {
-                               #phy-cells = <0>;
-                               interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
-                               interrupt-names = "linestate";
-                               status = "disabled";
-                       };
-
-                       u2phy0_otg: otg-port {
-                               #phy-cells = <0>;
-                               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
-                                            <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
-                                            <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
-                               interrupt-names = "otg-bvalid", "otg-id",
-                                                 "linestate";
-                               status = "disabled";
-                       };
-               };
-
-               u2phy1: usb2phy@e460 {
-                       compatible = "rockchip,rk3399-usb2phy";
-                       reg = <0xe460 0x10>;
-                       clocks = <&cru SCLK_USB2PHY1_REF>;
-                       clock-names = "phyclk";
-                       #clock-cells = <0>;
-                       clock-output-names = "clk_usbphy1_480m";
-                       status = "disabled";
-
-                       u2phy1_host: host-port {
-                               #phy-cells = <0>;
-                               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH 0>;
-                               interrupt-names = "linestate";
-                               status = "disabled";
-                       };
+&cpu_l0 {
+       operating-points-v2 = <&cluster0_opp>;
+};
 
-                       u2phy1_otg: otg-port {
-                               #phy-cells = <0>;
-                               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>,
-                                            <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>,
-                                            <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>;
-                               interrupt-names = "otg-bvalid", "otg-id",
-                                                 "linestate";
-                               status = "disabled";
-                       };
-               };
+&cpu_l1 {
+       operating-points-v2 = <&cluster0_opp>;
+};
 
-               emmc_phy: phy@f780 {
-                       compatible = "rockchip,rk3399-emmc-phy";
-                       reg = <0xf780 0x24>;
-                       clocks = <&sdhci>;
-                       clock-names = "emmcclk";
-                       drive-impedance-ohm = <50>;
-                       #phy-cells = <0>;
-                       status = "disabled";
-               };
+&cpu_l2 {
+       operating-points-v2 = <&cluster0_opp>;
+};
 
-               pcie_phy: pcie-phy {
-                       compatible = "rockchip,rk3399-pcie-phy";
-                       clocks = <&cru SCLK_PCIEPHY_REF>;
-                       clock-names = "refclk";
-                       #phy-cells = <1>;
-                       resets = <&cru SRST_PCIEPHY>;
-                       reset-names = "phy";
-                       status = "disabled";
-               };
-       };
+&cpu_l3 {
+       operating-points-v2 = <&cluster0_opp>;
+};
 
-       tcphy0: phy@ff7c0000 {
-               compatible = "rockchip,rk3399-typec-phy";
-               reg = <0x0 0xff7c0000 0x0 0x40000>;
-               clocks = <&cru SCLK_UPHY0_TCPDCORE>,
-                        <&cru SCLK_UPHY0_TCPDPHY_REF>;
-               clock-names = "tcpdcore", "tcpdphy-ref";
-               assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
-               assigned-clock-rates = <50000000>;
-               power-domains = <&power RK3399_PD_TCPD0>;
-               resets = <&cru SRST_UPHY0>,
-                        <&cru SRST_UPHY0_PIPE_L00>,
-                        <&cru SRST_P_UPHY0_TCPHY>;
-               reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
-               rockchip,grf = <&grf>;
-               status = "disabled";
+&cpu_b0 {
+       operating-points-v2 = <&cluster1_opp>;
+};
 
-               tcphy0_dp: dp-port {
-                       #phy-cells = <0>;
-               };
+&cpu_b1 {
+       operating-points-v2 = <&cluster1_opp>;
+};
 
-               tcphy0_usb3: usb3-port {
-                       #phy-cells = <0>;
-               };
-       };
-
-       tcphy1: phy@ff800000 {
-               compatible = "rockchip,rk3399-typec-phy";
-               reg = <0x0 0xff800000 0x0 0x40000>;
-               clocks = <&cru SCLK_UPHY1_TCPDCORE>,
-                        <&cru SCLK_UPHY1_TCPDPHY_REF>;
-               clock-names = "tcpdcore", "tcpdphy-ref";
-               assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
-               assigned-clock-rates = <50000000>;
-               power-domains = <&power RK3399_PD_TCPD1>;
-               resets = <&cru SRST_UPHY1>,
-                        <&cru SRST_UPHY1_PIPE_L00>,
-                        <&cru SRST_P_UPHY1_TCPHY>;
-               reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
-               rockchip,grf = <&grf>;
-               status = "disabled";
-
-               tcphy1_dp: dp-port {
-                       #phy-cells = <0>;
-               };
-
-               tcphy1_usb3: usb3-port {
-                       #phy-cells = <0>;
-               };
-       };
-
-       watchdog@ff848000 {
-               compatible = "rockchip,rk3399-wdt", "snps,dw-wdt";
-               reg = <0x0 0xff848000 0x0 0x100>;
-               clocks = <&cru PCLK_WDT>;
-               interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
-       };
-
-       rktimer: rktimer@ff850000 {
-               compatible = "rockchip,rk3399-timer";
-               reg = <0x0 0xff850000 0x0 0x1000>;
-               interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
-               clock-names = "pclk", "timer";
-       };
-
-       spdif: spdif@ff870000 {
-               compatible = "rockchip,rk3399-spdif";
-               reg = <0x0 0xff870000 0x0 0x1000>;
-               interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH 0>;
-               dmas = <&dmac_bus 7>;
-               dma-names = "tx";
-               clock-names = "mclk", "hclk";
-               clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&spdif_bus>;
-               power-domains = <&power RK3399_PD_SDIOAUDIO>;
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       i2s0: i2s@ff880000 {
-               compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
-               reg = <0x0 0xff880000 0x0 0x1000>;
-               rockchip,grf = <&grf>;
-               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH 0>;
-               dmas = <&dmac_bus 0>, <&dmac_bus 1>;
-               dma-names = "tx", "rx";
-               clock-names = "i2s_clk", "i2s_hclk";
-               clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
-               pinctrl-names = "bclk_on", "bclk_off";
-               pinctrl-0 = <&i2s0_8ch_bus>;
-               pinctrl-1 = <&i2s0_8ch_bus_bclk_off>;
-               power-domains = <&power RK3399_PD_SDIOAUDIO>;
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       i2s1: i2s@ff890000 {
-               compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
-               reg = <0x0 0xff890000 0x0 0x1000>;
-               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH 0>;
-               dmas = <&dmac_bus 2>, <&dmac_bus 3>;
-               dma-names = "tx", "rx";
-               clock-names = "i2s_clk", "i2s_hclk";
-               clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2s1_2ch_bus>;
-               power-domains = <&power RK3399_PD_SDIOAUDIO>;
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       i2s2: i2s@ff8a0000 {
-               compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
-               reg = <0x0 0xff8a0000 0x0 0x1000>;
-               interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH 0>;
-               dmas = <&dmac_bus 4>, <&dmac_bus 5>;
-               dma-names = "tx", "rx";
-               clock-names = "i2s_clk", "i2s_hclk";
-               clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
-               power-domains = <&power RK3399_PD_SDIOAUDIO>;
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       vopl: vop@ff8f0000 {
-               compatible = "rockchip,rk3399-vop-lit";
-               reg = <0x0 0xff8f0000 0x0 0x2000>, <0x0 0xff8f2000 0x0 0x400>;
-               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
-               assigned-clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
-               assigned-clock-rates = <400000000>, <100000000>;
-               clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
-               clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
-               iommus = <&vopl_mmu>;
-               power-domains = <&power RK3399_PD_VOPL>;
-               resets = <&cru SRST_A_VOP1>, <&cru SRST_H_VOP1>, <&cru SRST_D_VOP1>;
-               reset-names = "axi", "ahb", "dclk";
-               status = "disabled";
-
-               vopl_out: port {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       vopl_out_mipi: endpoint@0 {
-                               reg = <0>;
-                               remote-endpoint = <&mipi_in_vopl>;
-                       };
-
-                       vopl_out_edp: endpoint@1 {
-                               reg = <1>;
-                               remote-endpoint = <&edp_in_vopl>;
-                       };
-
-                       vopl_out_hdmi: endpoint@2 {
-                               reg = <2>;
-                               remote-endpoint = <&hdmi_in_vopl>;
-                       };
-
-                       vopl_out_mipi1: endpoint@3 {
-                               reg = <3>;
-                               remote-endpoint = <&mipi1_in_vopl>;
-                       };
-
-                       vopl_out_dp: endpoint@4 {
-                               reg = <4>;
-                               remote-endpoint = <&dp_in_vopl>;
-                       };
-               };
-       };
-
-       vopl_mmu: iommu@ff8f3f00 {
-               compatible = "rockchip,iommu";
-               reg = <0x0 0xff8f3f00 0x0 0x100>;
-               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
-               clock-names = "aclk", "iface";
-               power-domains = <&power RK3399_PD_VOPL>;
-               #iommu-cells = <0>;
-               status = "disabled";
-       };
-
-       vopb: vop@ff900000 {
-               compatible = "rockchip,rk3399-vop-big";
-               reg = <0x0 0xff900000 0x0 0x2000>, <0x0 0xff902000 0x0 0x1000>;
-               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
-               assigned-clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
-               assigned-clock-rates = <400000000>, <100000000>;
-               clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
-               clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
-               iommus = <&vopb_mmu>;
-               power-domains = <&power RK3399_PD_VOPB>;
-               resets = <&cru SRST_A_VOP0>, <&cru SRST_H_VOP0>, <&cru SRST_D_VOP0>;
-               reset-names = "axi", "ahb", "dclk";
-               status = "disabled";
-
-               vopb_out: port {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       vopb_out_edp: endpoint@0 {
-                               reg = <0>;
-                               remote-endpoint = <&edp_in_vopb>;
-                       };
-
-                       vopb_out_mipi: endpoint@1 {
-                               reg = <1>;
-                               remote-endpoint = <&mipi_in_vopb>;
-                       };
-
-                       vopb_out_hdmi: endpoint@2 {
-                               reg = <2>;
-                               remote-endpoint = <&hdmi_in_vopb>;
-                       };
-
-                       vopb_out_mipi1: endpoint@3 {
-                               reg = <3>;
-                               remote-endpoint = <&mipi1_in_vopb>;
-                       };
-
-                       vopb_out_dp: endpoint@4 {
-                               reg = <4>;
-                               remote-endpoint = <&dp_in_vopb>;
-                       };
-               };
-       };
-
-       vopb_mmu: iommu@ff903f00 {
-               compatible = "rockchip,iommu";
-               reg = <0x0 0xff903f00 0x0 0x100>;
-               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
-               clock-names = "aclk", "iface";
-               power-domains = <&power RK3399_PD_VOPB>;
-               #iommu-cells = <0>;
-               status = "disabled";
-       };
-
-       isp0: isp0@ff910000 {
-               compatible = "rockchip,rk3399-cif-isp";
-               reg = <0x0 0xff910000 0x0 0x4000>;
-               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_ISP0>,
-                        <&cru ACLK_ISP0_WRAPPER>,
-                        <&cru HCLK_ISP0_WRAPPER>;
-               clock-names = "isp", "aclk", "hclk";
-               iommus = <&isp0_mmu>;
-               phys = <&mipi_dphy_rx0>;
-               phy-names = "dphy";
-               power-domains = <&power RK3399_PD_ISP0>;
-               status = "disabled";
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       port@0 {
-                               reg = <0>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                       };
-               };
-       };
-
-       isp0_mmu: iommu@ff914000 {
-               compatible = "rockchip,iommu";
-               reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
-               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_ISP0_WRAPPER>, <&cru HCLK_ISP0_WRAPPER>;
-               clock-names = "aclk", "iface";
-               #iommu-cells = <0>;
-               power-domains = <&power RK3399_PD_ISP0>;
-               rockchip,disable-mmu-reset;
-       };
-
-       isp1: isp1@ff920000 {
-               compatible = "rockchip,rk3399-cif-isp";
-               reg = <0x0 0xff920000 0x0 0x4000>;
-               interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_ISP1>,
-                        <&cru ACLK_ISP1_WRAPPER>,
-                        <&cru HCLK_ISP1_WRAPPER>;
-               clock-names = "isp", "aclk", "hclk";
-               iommus = <&isp1_mmu>;
-               phys = <&mipi_dsi1>;
-               phy-names = "dphy";
-               power-domains = <&power RK3399_PD_ISP1>;
-               status = "disabled";
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       port@0 {
-                               reg = <0>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                       };
-               };
-       };
-
-       isp1_mmu: iommu@ff924000 {
-               compatible = "rockchip,iommu";
-               reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
-               interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_ISP1_WRAPPER>, <&cru HCLK_ISP1_WRAPPER>;
-               clock-names = "aclk", "iface";
-               #iommu-cells = <0>;
-               power-domains = <&power RK3399_PD_ISP1>;
-               rockchip,disable-mmu-reset;
-       };
-
-       hdmi_sound: hdmi-sound {
-               compatible = "simple-audio-card";
-               simple-audio-card,format = "i2s";
-               simple-audio-card,mclk-fs = <256>;
-               simple-audio-card,name = "hdmi-sound";
-               status = "disabled";
-
-               simple-audio-card,cpu {
-                       sound-dai = <&i2s2>;
-               };
-               simple-audio-card,codec {
-                       sound-dai = <&hdmi>;
-               };
-       };
-
-       hdmi: hdmi@ff940000 {
-               compatible = "rockchip,rk3399-dw-hdmi";
-               reg = <0x0 0xff940000 0x0 0x20000>;
-               reg-io-width = <4>;
-               interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru PCLK_HDMI_CTRL>,
-                        <&cru SCLK_HDMI_SFR>,
-                        <&cru SCLK_HDMI_CEC>,
-                        <&cru PCLK_VIO_GRF>,
-                        <&cru PLL_VPLL>;
-               clock-names = "iahb", "isfr", "cec", "grf", "ref";
-               power-domains = <&power RK3399_PD_HDCP>;
-               rockchip,grf = <&grf>;
-               #sound-dai-cells = <0>;
-               status = "disabled";
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       hdmi_in: port@0 {
-                               reg = <0>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               hdmi_in_vopb: endpoint@0 {
-                                       reg = <0>;
-                                       remote-endpoint = <&vopb_out_hdmi>;
-                               };
-                               hdmi_in_vopl: endpoint@1 {
-                                       reg = <1>;
-                                       remote-endpoint = <&vopl_out_hdmi>;
-                               };
-                       };
-
-                       hdmi_out: port@1 {
-                               reg = <1>;
-                       };
-               };
-       };
-
-       mipi_dsi: dsi@ff960000 {
-               compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
-               reg = <0x0 0xff960000 0x0 0x8000>;
-               interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_DPHY_PLL>, <&cru PCLK_MIPI_DSI0>,
-                        <&cru SCLK_DPHY_TX0_CFG>, <&cru PCLK_VIO_GRF>;
-               clock-names = "ref", "pclk", "phy_cfg", "grf";
-               power-domains = <&power RK3399_PD_VIO>;
-               resets = <&cru SRST_P_MIPI_DSI0>;
-               reset-names = "apb";
-               rockchip,grf = <&grf>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       mipi_in: port@0 {
-                               reg = <0>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               mipi_in_vopb: endpoint@0 {
-                                       reg = <0>;
-                                       remote-endpoint = <&vopb_out_mipi>;
-                               };
-
-                               mipi_in_vopl: endpoint@1 {
-                                       reg = <1>;
-                                       remote-endpoint = <&vopl_out_mipi>;
-                               };
-                       };
-
-                       mipi_out: port@1 {
-                               reg = <1>;
-                       };
-               };
-       };
-
-       mipi_dsi1: dsi@ff968000 {
-               compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
-               reg = <0x0 0xff968000 0x0 0x8000>;
-               interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_DPHY_PLL>, <&cru PCLK_MIPI_DSI1>,
-                        <&cru SCLK_DPHY_TX1RX1_CFG>, <&cru PCLK_VIO_GRF>;
-               clock-names = "ref", "pclk", "phy_cfg", "grf";
-               power-domains = <&power RK3399_PD_VIO>;
-               resets = <&cru SRST_P_MIPI_DSI1>;
-               reset-names = "apb";
-               rockchip,grf = <&grf>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               #phy-cells = <0>;
-               status = "disabled";
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       mipi1_in: port@0 {
-                               reg = <0>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               mipi1_in_vopb: endpoint@0 {
-                                       reg = <0>;
-                                       remote-endpoint = <&vopb_out_mipi1>;
-                               };
-
-                               mipi1_in_vopl: endpoint@1 {
-                                       reg = <1>;
-                                       remote-endpoint = <&vopl_out_mipi1>;
-                               };
-                       };
-
-                       mipi1_out: port@1 {
-                               reg = <1>;
-                       };
-               };
-       };
-
-       edp: dp@ff970000 {
-               compatible = "rockchip,rk3399-edp";
-               reg = <0x0 0xff970000 0x0 0x8000>;
-               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru PCLK_EDP>, <&cru PCLK_EDP_CTRL>, <&cru PCLK_VIO_GRF>;
-               clock-names = "dp", "pclk", "grf";
-               pinctrl-names = "default";
-               pinctrl-0 = <&edp_hpd>;
-               power-domains = <&power RK3399_PD_EDP>;
-               resets = <&cru SRST_P_EDP_CTRL>;
-               reset-names = "dp";
-               rockchip,grf = <&grf>;
-               status = "disabled";
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       edp_in: port@0 {
-                               reg = <0>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               edp_in_vopb: endpoint@0 {
-                                       reg = <0>;
-                                       remote-endpoint = <&vopb_out_edp>;
-                               };
-
-                               edp_in_vopl: endpoint@1 {
-                                       reg = <1>;
-                                       remote-endpoint = <&vopl_out_edp>;
-                               };
-                       };
-
-                       edp_out: port@1 {
-                               reg = <1>;
-                       };
-               };
-       };
-
-       gpu: gpu@ff9a0000 {
-               compatible = "rockchip,rk3399-mali", "arm,mali-t860";
-               reg = <0x0 0xff9a0000 0x0 0x10000>;
-               interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "job", "mmu", "gpu";
-               clocks = <&cru ACLK_GPU>;
-               #cooling-cells = <2>;
-               dynamic-power-coefficient = <2640>;
-               power-domains = <&power RK3399_PD_GPU>;
-               status = "disabled";
-       };
-
-       pinctrl: pinctrl {
-               compatible = "rockchip,rk3399-pinctrl";
-               rockchip,grf = <&grf>;
-               rockchip,pmu = <&pmugrf>;
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               gpio0: gpio@ff720000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xff720000 0x0 0x100>;
-                       clocks = <&pmucru PCLK_GPIO0_PMU>;
-                       interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>;
-
-                       gpio-controller;
-                       #gpio-cells = <0x2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <0x2>;
-               };
-
-               gpio1: gpio@ff730000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xff730000 0x0 0x100>;
-                       clocks = <&pmucru PCLK_GPIO1_PMU>;
-                       interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH 0>;
-
-                       gpio-controller;
-                       #gpio-cells = <0x2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <0x2>;
-               };
-
-               gpio2: gpio@ff780000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xff780000 0x0 0x100>;
-                       clocks = <&cru PCLK_GPIO2>;
-                       interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH 0>;
-
-                       gpio-controller;
-                       #gpio-cells = <0x2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <0x2>;
-               };
-
-               gpio3: gpio@ff788000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xff788000 0x0 0x100>;
-                       clocks = <&cru PCLK_GPIO3>;
-                       interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
-
-                       gpio-controller;
-                       #gpio-cells = <0x2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <0x2>;
-               };
-
-               gpio4: gpio@ff790000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xff790000 0x0 0x100>;
-                       clocks = <&cru PCLK_GPIO4>;
-                       interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>;
-
-                       gpio-controller;
-                       #gpio-cells = <0x2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <0x2>;
-               };
-
-               pcfg_pull_up: pcfg-pull-up {
-                       bias-pull-up;
-               };
-
-               pcfg_pull_down: pcfg-pull-down {
-                       bias-pull-down;
-               };
-
-               pcfg_pull_none: pcfg-pull-none {
-                       bias-disable;
-               };
-
-               pcfg_pull_none_12ma: pcfg-pull-none-12ma {
-                       bias-disable;
-                       drive-strength = <12>;
-               };
-
-               pcfg_pull_none_13ma: pcfg-pull-none-13ma {
-                       bias-disable;
-                       drive-strength = <13>;
-               };
-
-               pcfg_pull_none_18ma: pcfg-pull-none-18ma {
-                       bias-disable;
-                       drive-strength = <18>;
-               };
-
-               pcfg_pull_none_20ma: pcfg-pull-none-20ma {
-                       bias-disable;
-                       drive-strength = <20>;
-               };
-
-               pcfg_pull_up_2ma: pcfg-pull-up-2ma {
-                       bias-pull-up;
-                       drive-strength = <2>;
-               };
-
-               pcfg_pull_up_8ma: pcfg-pull-up-8ma {
-                       bias-pull-up;
-                       drive-strength = <8>;
-               };
-
-               pcfg_pull_up_18ma: pcfg-pull-up-18ma {
-                       bias-pull-up;
-                       drive-strength = <18>;
-               };
-
-               pcfg_pull_up_20ma: pcfg-pull-up-20ma {
-                       bias-pull-up;
-                       drive-strength = <20>;
-               };
-
-               pcfg_pull_down_4ma: pcfg-pull-down-4ma {
-                       bias-pull-down;
-                       drive-strength = <4>;
-               };
-
-               pcfg_pull_down_8ma: pcfg-pull-down-8ma {
-                       bias-pull-down;
-                       drive-strength = <8>;
-               };
-
-               pcfg_pull_down_12ma: pcfg-pull-down-12ma {
-                       bias-pull-down;
-                       drive-strength = <12>;
-               };
-
-               pcfg_pull_down_18ma: pcfg-pull-down-18ma {
-                       bias-pull-down;
-                       drive-strength = <18>;
-               };
-
-               pcfg_pull_down_20ma: pcfg-pull-down-20ma {
-                       bias-pull-down;
-                       drive-strength = <20>;
-               };
-
-               pcfg_output_high: pcfg-output-high {
-                       output-high;
-               };
-
-               pcfg_output_low: pcfg-output-low {
-                       output-low;
-               };
-
-               pcfg_input_enable: pcfg-input-enable {
-                       input-enable;
-               };
-
-               pcfg_input_pull_up: pcfg-input-pull-up {
-                       input-enable;
-                       bias-pull-up;
-               };
-
-               pcfg_input_pull_down: pcfg-input-pull-down {
-                       input-enable;
-                       bias-pull-down;
-               };
-
-               clock {
-                       clk_32k: clk-32k {
-                               rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
-                       };
-               };
-
-               cif {
-                       cif_clkin: cif-clkin {
-                               rockchip,pins =
-                                       <2 RK_PB2 3 &pcfg_pull_none>;
-                       };
-
-                       cif_clkouta: cif-clkouta {
-                               rockchip,pins =
-                                       <2 RK_PB3 3 &pcfg_pull_none>;
-                       };
-               };
-
-               edp {
-                       edp_hpd: edp-hpd {
-                               rockchip,pins =
-                                       <4 RK_PC7 2 &pcfg_pull_none>;
-                       };
-               };
-
-               gmac {
-                       rgmii_pins: rgmii-pins {
-                               rockchip,pins =
-                                       /* mac_txclk */
-                                       <3 RK_PC1 1 &pcfg_pull_none_13ma>,
-                                       /* mac_rxclk */
-                                       <3 RK_PB6 1 &pcfg_pull_none>,
-                                       /* mac_mdio */
-                                       <3 RK_PB5 1 &pcfg_pull_none>,
-                                       /* mac_txen */
-                                       <3 RK_PB4 1 &pcfg_pull_none_13ma>,
-                                       /* mac_clk */
-                                       <3 RK_PB3 1 &pcfg_pull_none>,
-                                       /* mac_rxdv */
-                                       <3 RK_PB1 1 &pcfg_pull_none>,
-                                       /* mac_mdc */
-                                       <3 RK_PB0 1 &pcfg_pull_none>,
-                                       /* mac_rxd1 */
-                                       <3 RK_PA7 1 &pcfg_pull_none>,
-                                       /* mac_rxd0 */
-                                       <3 RK_PA6 1 &pcfg_pull_none>,
-                                       /* mac_txd1 */
-                                       <3 RK_PA5 1 &pcfg_pull_none_13ma>,
-                                       /* mac_txd0 */
-                                       <3 RK_PA4 1 &pcfg_pull_none_13ma>,
-                                       /* mac_rxd3 */
-                                       <3 RK_PA3 1 &pcfg_pull_none>,
-                                       /* mac_rxd2 */
-                                       <3 RK_PA2 1 &pcfg_pull_none>,
-                                       /* mac_txd3 */
-                                       <3 RK_PA1 1 &pcfg_pull_none_13ma>,
-                                       /* mac_txd2 */
-                                       <3 RK_PA0 1 &pcfg_pull_none_13ma>;
-                       };
-
-                       rmii_pins: rmii-pins {
-                               rockchip,pins =
-                                       /* mac_mdio */
-                                       <3 RK_PB5 1 &pcfg_pull_none>,
-                                       /* mac_txen */
-                                       <3 RK_PB4 1 &pcfg_pull_none_13ma>,
-                                       /* mac_clk */
-                                       <3 RK_PB3 1 &pcfg_pull_none>,
-                                       /* mac_rxer */
-                                       <3 RK_PB2 1 &pcfg_pull_none>,
-                                       /* mac_rxdv */
-                                       <3 RK_PB1 1 &pcfg_pull_none>,
-                                       /* mac_mdc */
-                                       <3 RK_PB0 1 &pcfg_pull_none>,
-                                       /* mac_rxd1 */
-                                       <3 RK_PA7 1 &pcfg_pull_none>,
-                                       /* mac_rxd0 */
-                                       <3 RK_PA6 1 &pcfg_pull_none>,
-                                       /* mac_txd1 */
-                                       <3 RK_PA5 1 &pcfg_pull_none_13ma>,
-                                       /* mac_txd0 */
-                                       <3 RK_PA4 1 &pcfg_pull_none_13ma>;
-                       };
-               };
-
-               i2c0 {
-                       i2c0_xfer: i2c0-xfer {
-                               rockchip,pins =
-                                       <1 RK_PB7 2 &pcfg_pull_none>,
-                                       <1 RK_PC0 2 &pcfg_pull_none>;
-                       };
-               };
-
-               i2c1 {
-                       i2c1_xfer: i2c1-xfer {
-                               rockchip,pins =
-                                       <4 RK_PA2 1 &pcfg_pull_none>,
-                                       <4 RK_PA1 1 &pcfg_pull_none>;
-                       };
-               };
-
-               i2c2 {
-                       i2c2_xfer: i2c2-xfer {
-                               rockchip,pins =
-                                       <2 RK_PA1 2 &pcfg_pull_none_12ma>,
-                                       <2 RK_PA0 2 &pcfg_pull_none_12ma>;
-                       };
-               };
-
-               i2c3 {
-                       i2c3_xfer: i2c3-xfer {
-                               rockchip,pins =
-                                       <4 RK_PC1 1 &pcfg_pull_none>,
-                                       <4 RK_PC0 1 &pcfg_pull_none>;
-                       };
-               };
-
-               i2c4 {
-                       i2c4_xfer: i2c4-xfer {
-                               rockchip,pins =
-                                       <1 RK_PB4 1 &pcfg_pull_none>,
-                                       <1 RK_PB3 1 &pcfg_pull_none>;
-                       };
-               };
-
-               i2c5 {
-                       i2c5_xfer: i2c5-xfer {
-                               rockchip,pins =
-                                       <3 RK_PB3 2 &pcfg_pull_none>,
-                                       <3 RK_PB2 2 &pcfg_pull_none>;
-                       };
-               };
-
-               i2c6 {
-                       i2c6_xfer: i2c6-xfer {
-                               rockchip,pins =
-                                       <2 RK_PB2 2 &pcfg_pull_none>,
-                                       <2 RK_PB1 2 &pcfg_pull_none>;
-                       };
-               };
-
-               i2c7 {
-                       i2c7_xfer: i2c7-xfer {
-                               rockchip,pins =
-                                       <2 RK_PB0 2 &pcfg_pull_none>,
-                                       <2 RK_PA7 2 &pcfg_pull_none>;
-                       };
-               };
-
-               i2c8 {
-                       i2c8_xfer: i2c8-xfer {
-                               rockchip,pins =
-                                       <1 RK_PC5 1 &pcfg_pull_none>,
-                                       <1 RK_PC4 1 &pcfg_pull_none>;
-                       };
-               };
-
-               i2s0 {
-                       i2s0_2ch_bus: i2s0-2ch-bus {
-                               rockchip,pins =
-                                       <3 RK_PD0 1 &pcfg_pull_none>,
-                                       <3 RK_PD1 1 &pcfg_pull_none>,
-                                       <3 RK_PD2 1 &pcfg_pull_none>,
-                                       <3 RK_PD3 1 &pcfg_pull_none>,
-                                       <3 RK_PD7 1 &pcfg_pull_none>,
-                                       <4 RK_PA0 1 &pcfg_pull_none>;
-                       };
-
-                       i2s0_2ch_bus_bclk_off: i2s0-2ch-bus-bclk-off {
-                               rockchip,pins =
-                                       <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>,
-                                       <3 RK_PD1 1 &pcfg_pull_none>,
-                                       <3 RK_PD2 1 &pcfg_pull_none>,
-                                       <3 RK_PD3 1 &pcfg_pull_none>,
-                                       <3 RK_PD7 1 &pcfg_pull_none>,
-                                       <4 RK_PA0 1 &pcfg_pull_none>;
-                       };
-
-                       i2s0_8ch_bus: i2s0-8ch-bus {
-                               rockchip,pins =
-                                       <3 RK_PD0 1 &pcfg_pull_none>,
-                                       <3 RK_PD1 1 &pcfg_pull_none>,
-                                       <3 RK_PD2 1 &pcfg_pull_none>,
-                                       <3 RK_PD3 1 &pcfg_pull_none>,
-                                       <3 RK_PD4 1 &pcfg_pull_none>,
-                                       <3 RK_PD5 1 &pcfg_pull_none>,
-                                       <3 RK_PD6 1 &pcfg_pull_none>,
-                                       <3 RK_PD7 1 &pcfg_pull_none>,
-                                       <4 RK_PA0 1 &pcfg_pull_none>;
-                       };
-
-                       i2s0_8ch_bus_bclk_off: i2s0-8ch-bus-bclk-off {
-                               rockchip,pins =
-                                       <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>,
-                                       <3 RK_PD1 1 &pcfg_pull_none>,
-                                       <3 RK_PD2 1 &pcfg_pull_none>,
-                                       <3 RK_PD3 1 &pcfg_pull_none>,
-                                       <3 RK_PD4 1 &pcfg_pull_none>,
-                                       <3 RK_PD5 1 &pcfg_pull_none>,
-                                       <3 RK_PD6 1 &pcfg_pull_none>,
-                                       <3 RK_PD7 1 &pcfg_pull_none>,
-                                       <4 RK_PA0 1 &pcfg_pull_none>;
-                       };
-               };
-
-               i2s1 {
-                       i2s1_2ch_bus: i2s1-2ch-bus {
-                               rockchip,pins =
-                                       <4 RK_PA3 1 &pcfg_pull_none>,
-                                       <4 RK_PA4 1 &pcfg_pull_none>,
-                                       <4 RK_PA5 1 &pcfg_pull_none>,
-                                       <4 RK_PA6 1 &pcfg_pull_none>,
-                                       <4 RK_PA7 1 &pcfg_pull_none>;
-                       };
-
-                       i2s1_2ch_bus_bclk_off: i2s1-2ch-bus-bclk-off {
-                               rockchip,pins =
-                                       <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>,
-                                       <4 RK_PA4 1 &pcfg_pull_none>,
-                                       <4 RK_PA5 1 &pcfg_pull_none>,
-                                       <4 RK_PA6 1 &pcfg_pull_none>,
-                                       <4 RK_PA7 1 &pcfg_pull_none>;
-                       };
-               };
-
-               sdio0 {
-                       sdio0_bus1: sdio0-bus1 {
-                               rockchip,pins =
-                                       <2 RK_PC4 1 &pcfg_pull_up>;
-                       };
-
-                       sdio0_bus4: sdio0-bus4 {
-                               rockchip,pins =
-                                       <2 RK_PC4 1 &pcfg_pull_up>,
-                                       <2 RK_PC5 1 &pcfg_pull_up>,
-                                       <2 RK_PC6 1 &pcfg_pull_up>,
-                                       <2 RK_PC7 1 &pcfg_pull_up>;
-                       };
-
-                       sdio0_cmd: sdio0-cmd {
-                               rockchip,pins =
-                                       <2 RK_PD0 1 &pcfg_pull_up>;
-                       };
-
-                       sdio0_clk: sdio0-clk {
-                               rockchip,pins =
-                                       <2 RK_PD1 1 &pcfg_pull_none>;
-                       };
-
-                       sdio0_cd: sdio0-cd {
-                               rockchip,pins =
-                                       <2 RK_PD2 1 &pcfg_pull_up>;
-                       };
-
-                       sdio0_pwr: sdio0-pwr {
-                               rockchip,pins =
-                                       <2 RK_PD3 1 &pcfg_pull_up>;
-                       };
-
-                       sdio0_bkpwr: sdio0-bkpwr {
-                               rockchip,pins =
-                                       <2 RK_PD4 1 &pcfg_pull_up>;
-                       };
-
-                       sdio0_wp: sdio0-wp {
-                               rockchip,pins =
-                                       <0 RK_PA3 1 &pcfg_pull_up>;
-                       };
-
-                       sdio0_int: sdio0-int {
-                               rockchip,pins =
-                                       <0 RK_PA4 1 &pcfg_pull_up>;
-                       };
-               };
-
-               sdmmc {
-                       sdmmc_bus1: sdmmc-bus1 {
-                               rockchip,pins =
-                                       <4 RK_PB0 1 &pcfg_pull_up>;
-                       };
-
-                       sdmmc_bus4: sdmmc-bus4 {
-                               rockchip,pins =
-                                       <4 RK_PB0 1 &pcfg_pull_up>,
-                                       <4 RK_PB1 1 &pcfg_pull_up>,
-                                       <4 RK_PB2 1 &pcfg_pull_up>,
-                                       <4 RK_PB3 1 &pcfg_pull_up>;
-                       };
-
-                       sdmmc_clk: sdmmc-clk {
-                               rockchip,pins =
-                                       <4 RK_PB4 1 &pcfg_pull_none>;
-                       };
-
-                       sdmmc_cmd: sdmmc-cmd {
-                               rockchip,pins =
-                                       <4 RK_PB5 1 &pcfg_pull_up>;
-                       };
-
-                       sdmmc_cd: sdmmc-cd {
-                               rockchip,pins =
-                                       <0 RK_PA7 1 &pcfg_pull_up>;
-                       };
-
-                       sdmmc_wp: sdmmc-wp {
-                               rockchip,pins =
-                                       <0 RK_PB0 1 &pcfg_pull_up>;
-                       };
-               };
-
-               suspend {
-                       ap_pwroff: ap-pwroff {
-                               rockchip,pins = <1 RK_PA5 1 &pcfg_pull_none>;
-                       };
-
-                       ddrio_pwroff: ddrio-pwroff {
-                               rockchip,pins = <0 RK_PA1 1 &pcfg_pull_none>;
-                       };
-               };
-
-               spdif {
-                       spdif_bus: spdif-bus {
-                               rockchip,pins =
-                                       <4 RK_PC5 1 &pcfg_pull_none>;
-                       };
-
-                       spdif_bus_1: spdif-bus-1 {
-                               rockchip,pins =
-                                       <3 RK_PC0 3 &pcfg_pull_none>;
-                       };
-               };
-
-               spi0 {
-                       spi0_clk: spi0-clk {
-                               rockchip,pins =
-                                       <3 RK_PA6 2 &pcfg_pull_up>;
-                       };
-                       spi0_cs0: spi0-cs0 {
-                               rockchip,pins =
-                                       <3 RK_PA7 2 &pcfg_pull_up>;
-                       };
-                       spi0_cs1: spi0-cs1 {
-                               rockchip,pins =
-                                       <3 RK_PB0 2 &pcfg_pull_up>;
-                       };
-                       spi0_tx: spi0-tx {
-                               rockchip,pins =
-                                       <3 RK_PA5 2 &pcfg_pull_up>;
-                       };
-                       spi0_rx: spi0-rx {
-                               rockchip,pins =
-                                       <3 RK_PA4 2 &pcfg_pull_up>;
-                       };
-               };
-
-               spi1 {
-                       spi1_clk: spi1-clk {
-                               rockchip,pins =
-                                       <1 RK_PB1 2 &pcfg_pull_up>;
-                       };
-                       spi1_cs0: spi1-cs0 {
-                               rockchip,pins =
-                                       <1 RK_PB2 2 &pcfg_pull_up>;
-                       };
-                       spi1_rx: spi1-rx {
-                               rockchip,pins =
-                                       <1 RK_PA7 2 &pcfg_pull_up>;
-                       };
-                       spi1_tx: spi1-tx {
-                               rockchip,pins =
-                                       <1 RK_PB0 2 &pcfg_pull_up>;
-                       };
-               };
-
-               spi2 {
-                       spi2_clk: spi2-clk {
-                               rockchip,pins =
-                                       <2 RK_PB3 1 &pcfg_pull_up>;
-                       };
-                       spi2_cs0: spi2-cs0 {
-                               rockchip,pins =
-                                       <2 RK_PB4 1 &pcfg_pull_up>;
-                       };
-                       spi2_rx: spi2-rx {
-                               rockchip,pins =
-                                       <2 RK_PB1 1 &pcfg_pull_up>;
-                       };
-                       spi2_tx: spi2-tx {
-                               rockchip,pins =
-                                       <2 RK_PB2 1 &pcfg_pull_up>;
-                       };
-               };
-
-               spi3 {
-                       spi3_clk: spi3-clk {
-                               rockchip,pins =
-                                       <1 RK_PC1 1 &pcfg_pull_up>;
-                       };
-                       spi3_cs0: spi3-cs0 {
-                               rockchip,pins =
-                                       <1 RK_PC2 1 &pcfg_pull_up>;
-                       };
-                       spi3_rx: spi3-rx {
-                               rockchip,pins =
-                                       <1 RK_PB7 1 &pcfg_pull_up>;
-                       };
-                       spi3_tx: spi3-tx {
-                               rockchip,pins =
-                                       <1 RK_PC0 1 &pcfg_pull_up>;
-                       };
-               };
-
-               spi4 {
-                       spi4_clk: spi4-clk {
-                               rockchip,pins =
-                                       <3 RK_PA2 2 &pcfg_pull_up>;
-                       };
-                       spi4_cs0: spi4-cs0 {
-                               rockchip,pins =
-                                       <3 RK_PA3 2 &pcfg_pull_up>;
-                       };
-                       spi4_rx: spi4-rx {
-                               rockchip,pins =
-                                       <3 RK_PA0 2 &pcfg_pull_up>;
-                       };
-                       spi4_tx: spi4-tx {
-                               rockchip,pins =
-                                       <3 RK_PA1 2 &pcfg_pull_up>;
-                       };
-               };
-
-               spi5 {
-                       spi5_clk: spi5-clk {
-                               rockchip,pins =
-                                       <2 RK_PC6 2 &pcfg_pull_up>;
-                       };
-                       spi5_cs0: spi5-cs0 {
-                               rockchip,pins =
-                                       <2 RK_PC7 2 &pcfg_pull_up>;
-                       };
-                       spi5_rx: spi5-rx {
-                               rockchip,pins =
-                                       <2 RK_PC4 2 &pcfg_pull_up>;
-                       };
-                       spi5_tx: spi5-tx {
-                               rockchip,pins =
-                                       <2 RK_PC5 2 &pcfg_pull_up>;
-                       };
-               };
-
-               testclk {
-                       test_clkout0: test-clkout0 {
-                               rockchip,pins =
-                                       <0 RK_PA0 1 &pcfg_pull_none>;
-                       };
-
-                       test_clkout1: test-clkout1 {
-                               rockchip,pins =
-                                       <2 RK_PD1 2 &pcfg_pull_none>;
-                       };
-
-                       test_clkout2: test-clkout2 {
-                               rockchip,pins =
-                                       <0 RK_PB0 3 &pcfg_pull_none>;
-                       };
-               };
-
-               tsadc {
-                       otp_pin: otp-pin {
-                               rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
-                       };
-
-                       otp_out: otp-out {
-                               rockchip,pins = <1 RK_PA6 1 &pcfg_pull_none>;
-                       };
-               };
-
-               uart0 {
-                       uart0_xfer: uart0-xfer {
-                               rockchip,pins =
-                                       <2 RK_PC0 1 &pcfg_pull_up>,
-                                       <2 RK_PC1 1 &pcfg_pull_none>;
-                       };
-
-                       uart0_cts: uart0-cts {
-                               rockchip,pins =
-                                       <2 RK_PC2 1 &pcfg_pull_none>;
-                       };
-
-                       uart0_rts: uart0-rts {
-                               rockchip,pins =
-                                       <2 RK_PC3 1 &pcfg_pull_none>;
-                       };
-               };
-
-               uart1 {
-                       uart1_xfer: uart1-xfer {
-                               rockchip,pins =
-                                       <3 RK_PB4 2 &pcfg_pull_up>,
-                                       <3 RK_PB5 2 &pcfg_pull_none>;
-                       };
-               };
-
-               uart2a {
-                       uart2a_xfer: uart2a-xfer {
-                               rockchip,pins =
-                                       <4 RK_PB0 2 &pcfg_pull_up>,
-                                       <4 RK_PB1 2 &pcfg_pull_none>;
-                       };
-               };
-
-               uart2b {
-                       uart2b_xfer: uart2b-xfer {
-                               rockchip,pins =
-                                       <4 RK_PC0 2 &pcfg_pull_up>,
-                                       <4 RK_PC1 2 &pcfg_pull_none>;
-                       };
-               };
-
-               uart2c {
-                       uart2c_xfer: uart2c-xfer {
-                               rockchip,pins =
-                                       <4 RK_PC3 1 &pcfg_pull_up>,
-                                       <4 RK_PC4 1 &pcfg_pull_none>;
-                       };
-               };
-
-               uart3 {
-                       uart3_xfer: uart3-xfer {
-                               rockchip,pins =
-                                       <3 RK_PB6 2 &pcfg_pull_up>,
-                                       <3 RK_PB7 2 &pcfg_pull_none>;
-                       };
-
-                       uart3_cts: uart3-cts {
-                               rockchip,pins =
-                                       <3 RK_PC0 2 &pcfg_pull_none>;
-                       };
-
-                       uart3_rts: uart3-rts {
-                               rockchip,pins =
-                                       <3 RK_PC1 2 &pcfg_pull_none>;
-                       };
-               };
-
-               uart4 {
-                       uart4_xfer: uart4-xfer {
-                               rockchip,pins =
-                                       <1 RK_PA7 1 &pcfg_pull_up>,
-                                       <1 RK_PB0 1 &pcfg_pull_none>;
-                       };
-               };
-
-               uarthdcp {
-                       uarthdcp_xfer: uarthdcp-xfer {
-                               rockchip,pins =
-                                       <4 RK_PC5 2 &pcfg_pull_up>,
-                                       <4 RK_PC6 2 &pcfg_pull_none>;
-                       };
-               };
-
-               pwm0 {
-                       pwm0_pin: pwm0-pin {
-                               rockchip,pins =
-                                       <4 RK_PC2 1 &pcfg_pull_none>;
-                       };
-
-                       pwm0_pin_pull_down: pwm0-pin-pull-down {
-                               rockchip,pins =
-                                       <4 RK_PC2 1 &pcfg_pull_down>;
-                       };
-
-                       vop0_pwm_pin: vop0-pwm-pin {
-                               rockchip,pins =
-                                       <4 RK_PC2 2 &pcfg_pull_none>;
-                       };
-
-                       vop1_pwm_pin: vop1-pwm-pin {
-                               rockchip,pins =
-                                       <4 RK_PC2 3 &pcfg_pull_none>;
-                       };
-               };
-
-               pwm1 {
-                       pwm1_pin: pwm1-pin {
-                               rockchip,pins =
-                                       <4 RK_PC6 1 &pcfg_pull_none>;
-                       };
-
-                       pwm1_pin_pull_down: pwm1-pin-pull-down {
-                               rockchip,pins =
-                                       <4 RK_PC6 1 &pcfg_pull_down>;
-                       };
-               };
-
-               pwm2 {
-                       pwm2_pin: pwm2-pin {
-                               rockchip,pins =
-                                       <1 RK_PC3 1 &pcfg_pull_none>;
-                       };
-
-                       pwm2_pin_pull_down: pwm2-pin-pull-down {
-                               rockchip,pins =
-                                       <1 RK_PC3 1 &pcfg_pull_down>;
-                       };
-               };
-
-               pwm3a {
-                       pwm3a_pin: pwm3a-pin {
-                               rockchip,pins =
-                                       <0 RK_PA6 1 &pcfg_pull_none>;
-                       };
-               };
-
-               pwm3b {
-                       pwm3b_pin: pwm3b-pin {
-                               rockchip,pins =
-                                       <1 RK_PB6 1 &pcfg_pull_none>;
-                       };
-               };
-
-               hdmi {
-                       hdmi_i2c_xfer: hdmi-i2c-xfer {
-                               rockchip,pins =
-                                       <4 RK_PC1 3 &pcfg_pull_none>,
-                                       <4 RK_PC0 3 &pcfg_pull_none>;
-                       };
-
-                       hdmi_cec: hdmi-cec {
-                               rockchip,pins =
-                                       <4 RK_PC7 1 &pcfg_pull_none>;
-                       };
-               };
-
-               pcie {
-                       pcie_clkreqn_cpm: pci-clkreqn-cpm {
-                               rockchip,pins =
-                                       <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
-                       };
-
-                       pcie_clkreqnb_cpm: pci-clkreqnb-cpm {
-                               rockchip,pins =
-                                       <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
-                       };
-               };
-
-       };
+&gpu {
+       operating-points-v2 = <&gpu_opp_table>;
 };
index c58fb7658d7a1909191d8d2e92e8f2192431fd12..d3c628218ce39c4f1685b12fb114c1d69d4d09d8 100644 (file)
@@ -7,7 +7,6 @@
 
 /dts-v1/;
 #include "rk3399.dtsi"
-#include "rk3399-opp.dtsi"
 #include <arm/rockchip/rockchip-radxa-dalang-carrier.dtsi>
 #include "rk3399pro-vmarc-som.dtsi"
 
index a73cf30801ec7f33fc5ef42cd5288c99400f95df..9816a4ed4599e82bca5e29b4008d8372179186c8 100644 (file)
@@ -92,7 +92,7 @@
 };
 
 &i2c2 {
-       pintctrl-names = "default";
+       pinctrl-names = "default";
        pinctrl-0 = <&i2c2m1_xfer>;
        status = "okay";
 
index e9954a33e8cd31f20890ac39e0d03428e87a86af..a79a5614bcc885a492c5703d4ad48e23edfdd712 100644 (file)
@@ -79,7 +79,7 @@
 };
 
 &i2c2 {
-       pintctrl-names = "default";
+       pinctrl-names = "default";
        pinctrl-0 = <&i2c2m1_xfer>;
        status = "okay";
 
index 0c18406e4c597333cd4ee1daa50dab3c3b2308ea..7d46809338239395196299167e7f51a42bdb0066 100644 (file)
        bluetooth {
                compatible = "brcm,bcm43438-bt";
                clocks = <&pmucru CLK_RTC_32K>;
-               clock-names = "ext_clock";
-               device-wake-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
-               host-wake-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
+               clock-names = "txco";
+               device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
                shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
diff --git a/src/arm64/rockchip/rk3566-lckfb-tspi.dts b/src/arm64/rockchip/rk3566-lckfb-tspi.dts
new file mode 100644 (file)
index 0000000..7cd91f8
--- /dev/null
@@ -0,0 +1,725 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include <dt-bindings/soc/rockchip,boot-mode.h>
+#include "rk3566.dtsi"
+
+/ {
+       model = "LCKFB Taishan Pi RK3566";
+       compatible = "lckfb,tspi-rk3566", "rockchip,rk3566";
+
+       aliases {
+               mmc0 = &sdmmc0;
+               mmc1 = &sdhci;
+               mmc2 = &sdmmc1;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               ramoops: ramoops@110000 {
+                       compatible = "ramoops";
+                       reg = <0 0x110000 0 0xf0000>;
+                       console-size = <0x80000>;
+                       ftrace-size = <0x00000>;
+                       pmsg-size = <0x50000>;
+                       record-size = <0x20000>;
+               };
+       };
+
+       adc_keys: adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 0>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-recovery {
+                       label = "recovery";
+                       linux,code = <KEY_RESTART>;
+                       press-threshold-microvolt = <108>;
+               };
+       };
+
+       hdmi_con: hdmi-con {
+               compatible = "hdmi-connector";
+               type = "d";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
+       leds: leds {
+               compatible = "gpio-leds";
+
+               rgb_led_r: rgb-led-r {
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_LOW>;
+                       label = "status-red";
+               };
+
+               rgb_led_g: rgb-led-g {
+                       gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_LOW>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       label = "status-green";
+               };
+
+               rgb_led_b: rgb-led-b {
+                       gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>;
+                       color = <LED_COLOR_ID_BLUE>;
+                       label = "status-blue";
+               };
+       };
+
+       multi_leds: multi-led {
+               compatible = "leds-group-multicolor";
+               color = <LED_COLOR_ID_RGB>;
+               label = "status-rgb";
+               function = LED_FUNCTION_INDICATOR;
+               leds = <&rgb_led_r>, <&rgb_led_g>, <&rgb_led_b>;
+       };
+
+       vcc12v0_dcin: regulator-12v0-dcin {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc12v0_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       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>;
+               vin-supply = <&vcc12v0_dcin>;
+       };
+
+       vcc5v0_host: regulator-5v0-vcc-host {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host_en>;
+               regulator-name = "vcc5v0_host";
+               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_enable_h>;
+               post-power-on-delay-ms = <200>;
+               reset-gpios = <&gpio2 RK_PB1 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>;
+};
+
+&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>;
+               clock-output-names = "rk808-clkout1", "rk808-clkout2";
+               clock-names = "mclk";
+               clocks = <&cru I2S1_MCLKOUT_TX>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>;
+               rockchip,system-power-controller;
+               #sound-dai-cells = <0>;
+               wakeup-source;
+
+               vcc1-supply = <&vcc3v3_sys>;
+               vcc2-supply = <&vcc3v3_sys>;
+               vcc3-supply = <&vcc3v3_sys>;
+               vcc4-supply = <&vcc3v3_sys>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc3v3_sys>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-name = "vdd_logic";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-initial-mode = <0x2>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-initial-mode = <0x2>;
+
+                               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-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-initial-mode = <0x2>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_image: LDO_REG1 {
+                               regulator-name = "vdda0v9_image";
+                               regulator-boot-on;
+                               regulator-always-on;
+                               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-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               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;
+                               };
+                       };
+
+                       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;
+                               };
+                       };
+               };
+
+               codec {
+                       rockchip,mic-in-differential;
+               };
+       };
+};
+
+&i2c1 {
+       status = "okay";
+       /* Touch Screen */
+};
+
+&i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4m0_xfer>;
+       status = "okay";
+       /* Camera */
+};
+
+&i2s0_8ch {
+       status = "okay";
+       /* HDMI */
+};
+
+&i2s1_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 &i2s1m0_sdo0>;
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+       /* PMIC */
+};
+
+&i2s2_2ch {
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+       /* AP6212 Bluetooth */
+};
+
+&pinctrl {
+       bt {
+               bt_enable_h: bt-enable-h {
+                       rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_host_wake_l: bt-host-wake-l {
+                       rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               bt_wake_l: bt-wake-l {
+                       rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       hp-detect {
+               hp_det: hp-det {
+                       rockchip,pins = <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       pmic {
+               pmic_int: pmic-int {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               wifi_host_wake_h: wifi-host-wake-l {
+                       rockchip,pins = <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb2 {
+               vcc5v0_host_en: vcc5v0-host-en {
+                       rockchip,pins = <4 RK_PC4 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";
+};
+
+&pmugrf {
+       reboot-mode {
+               compatible = "syscon-reboot-mode";
+               offset = <0x200>;
+               mode-normal = <BOOT_NORMAL>;
+               mode-loader = <BOOT_BL_DOWNLOAD>;
+               mode-recovery = <BOOT_RECOVERY>;
+               mode-bootloader = <BOOT_FASTBOOT>;
+       };
+};
+
+&saradc {
+       vref-supply = <&vcca_1v8>;
+       status = "okay";
+       /* Channel 0: Recovery Button */
+       /* Channel 1: Hardware ID */
+};
+
+&sdhci {
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe &emmc_rstnout>;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       disable-wp;
+       max-frequency = <150000000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sd>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc1 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       disable-wp;
+       keep-power-in-suspend;
+       max-frequency = <150000000>;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sys>;
+       vqmmc-supply = <&vcc_1v8>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       brcmf: wifi@1 {
+               compatible = "brcm,bcm4329-fmac";
+               reg = <1>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <RK_PB2 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wake";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_host_wake_h>;
+       };
+};
+
+&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";
+
+       bluetooth: bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               clocks = <&rk809 1>;
+               clock-names = "lpo";
+               max-speed = <3000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
+               shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
+               vbat-supply = <&vcc3v3_sys>;
+               vddio-supply = <&vcc_1v8>;
+       };
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&vcc5v0_sys>;
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       phy-supply = <&vcc5v0_sys>;
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb2phy1_host {
+       phy-supply = <&vcc5v0_host>;
+       status = "okay";
+};
+
+&usb2phy1_otg {
+       phy-supply = <&vcc5v0_host>;
+       status = "okay";
+};
+
+&vop {
+       assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
+       assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
+&vp0 {
+       vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+               reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+               remote-endpoint = <&hdmi_in_vp0>;
+       };
+};
index c1194d1e438d0d0667ee3d7e0aa143856c87d319..9a2f59a351dee55c6e1b1336ea751e283f1a8ff9 100644 (file)
        non-removable;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>;
-       supports-emmc;
        status = "okay";
 };
 
diff --git a/src/arm64/rockchip/rk3566-odroid-m1s.dts b/src/arm64/rockchip/rk3566-odroid-m1s.dts
new file mode 100644 (file)
index 0000000..33bc524
--- /dev/null
@@ -0,0 +1,663 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3566.dtsi"
+
+/ {
+       model = "Hardkernel ODROID-M1S";
+       compatible = "hardkernel,odroid-m1s", "rockchip,rk3566";
+
+       aliases {
+               ethernet0 = &gmac1;
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc0;
+       };
+
+       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 = <&pwr_led>, <&sys_led>;
+
+               led_pwr: led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "on";
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-on";
+               };
+
+               led_sys: led-1 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       default-state = "on";
+                       function = LED_FUNCTION_HEARTBEAT;
+                       gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       vcc3v3_lcd: regulator-3v3-vcc-lcd {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_pwren>;
+               regulator-name = "vcc3v3_lcd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       vcc3v3_pcie: regulator-3v3-vcc-pcie {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie_pwren>;
+               regulator-name = "vcc3v3_pcie";
+               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_usb2_host: regulator-5v0-vcc-usb2-host {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb2_host_pwren>;
+               regulator-name = "vcc5v0_usb2_host";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb2_otg: regulator-5v0-vcc-usb2-otg {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb2_otg_pwren>;
+               regulator-name = "vcc5v0_usb2_otg";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb3_host: regulator-5v0-vcc-usb3-host {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb3_host_pwren>;
+               regulator-name = "vcc5v0_usb3_host";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       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-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 = <712500>;
+               regulator-max-microvolt = <1390000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc3v3_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>, <&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-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               regulator-name = "vcc3v3_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca_1v8: LDO_REG7 {
+                               regulator-name = "vcca_1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcca1v8_pmu: LDO_REG8 {
+                               regulator-name = "vcca1v8_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcca1v8_image: LDO_REG9 {
+                               regulator-name = "vcca1v8_image";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3: SWITCH_REG1 {
+                               regulator-name = "vcc_3v3";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_sd: SWITCH_REG2 {
+                               regulator-name = "vcc3v3_sd";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&i2s0_8ch {
+       status = "okay";
+};
+
+&i2s1_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s1m0_sclktx
+                    &i2s1m0_lrcktx
+                    &i2s1m0_sdi0
+                    &i2s1m0_sdo0>;
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@1 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <1>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pcie2x1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie20_pins>;
+       reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie>;
+       status = "okay";
+};
+
+&pinctrl {
+       lcd {
+               lcd_pwren: lcd-pwren {
+                       rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               pwr_led: pwr-led {
+                       rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               sys_led: sys-led {
+                       rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie {
+               pcie20_pins: pcie20-pins {
+                       rockchip,pins =
+                               <1 RK_PB0 4 &pcfg_pull_none>,
+                               <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <1 RK_PB1 4 &pcfg_pull_none>;
+               };
+
+               pcie_pwren: pcie-pwren {
+                       rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int: pmic-int {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb {
+               usb2_host_pwren: usb2-host-pwren {
+                       rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usb2_otg_pwren: usb2-otg-pwren {
+                       rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usb3_host_pwren: usb3-host-pwren {
+                       rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcc3v3_pmu>;
+       vccio1-supply = <&vccio_acodec>;
+       vccio2-supply = <&vcc_1v8>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcc_3v3>;
+       vccio5-supply = <&vcc_3v3>;
+       vccio6-supply = <&vcc_3v3>;
+       vccio7-supply = <&vcc_3v3>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcca_1v8>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       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 &emmc_rstnout>;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       sd-uhs-sdr50;
+       vmmc-supply = <&vcc3v3_sd>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       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_usb3_host>;
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       phy-supply = <&vcc5v0_usb2_otg>;
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb2phy1_host {
+       phy-supply = <&vcc5v0_usb2_host>;
+       status = "okay";
+};
+
+&usb2phy1_otg {
+       phy-supply = <&vcc5v0_usb2_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 ae2536c65a83004e380dbecbc2b2b465dfc03be6..0131f2cdd312f3a7411b6262b03057a5d3051b13 100644 (file)
                compatible = "brcm,bcm43438-bt";
                clocks = <&rk817 1>;
                clock-names = "lpo";
-               device-wake-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
-               host-wake-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>;
-               reset-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_LOW>;
+               device-wakeup-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>;
                pinctrl-0 = <&bt_enable_h>, <&bt_host_wake_l>, <&bt_wake_h>;
                pinctrl-names = "default";
+               shutdown-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
                vbat-supply = <&vcc_wl>;
                vddio-supply = <&vcca_1v8_pmu>;
        };
index 13e599a85eb83cadb84bf807242aba7419b689f3..c164074ddf54c97b4971f8f8131640b29f55294d 100644 (file)
 };
 
 &tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
        status = "okay";
 };
 
index 45de2630bb503ae1d20fe6bc998477f73800ca7d..1e36f73840dad233d8cab57f6b9c3c9c2401e710 100644 (file)
                clock-names = "lpo";
                device-wakeup-gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_HIGH>;
                host-wakeup-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
-               reset-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&bt_host_wake_h &bt_reg_on_h &bt_wake_host_h>;
+               shutdown-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
                vbat-supply = <&vcc_3v3>;
                vddio-supply = <&vcc_1v8>;
        };
index 9cc7aa3298d00dc95ba6858f142a343c43b32a57..de390d92c35e304b7a28dd8d7132ec6a4fe38bb2 100644 (file)
 };
 
 &usb_host0_xhci {
-       dr_mode = "peripheral";
        status = "okay";
 };
 
index b5e67990dd0f8ba455dda26f0b7161cfb91df432..8e5c182ef76cdaaa2d1159c161d9588b95367259 100644 (file)
@@ -20,9 +20,9 @@
        cap-mmc-highspeed;
        cap-sd-highspeed;
        disable-wp;
-       max-frequency = <150000000>;
        no-sdio;
        no-mmc;
+       sd-uhs-sdr50;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
        vmmc-supply = <&vcc3v3_sd>;
index ce2a5e1ccefc3f7d54042cefed90af1f652382f3..d27eb37b5b35e89657465c0c22985c428ab4d0df 100644 (file)
                     &gmac0_rx_bus2
                     &gmac0_rgmii_clk
                     &gmac0_rgmii_bus>;
-       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>;
-       tx_delay = <0x3c>;
-       rx_delay = <0x2f>;
        status = "okay";
 };
 
                     &gmac1m1_rx_bus2
                     &gmac1m1_rgmii_clk
                     &gmac1m1_rgmii_bus>;
-       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>;
-       tx_delay = <0x4f>;
-       rx_delay = <0x26>;
        status = "okay";
 };
 
@@ -76,6 +64,9 @@
                reg = <0x1>;
                pinctrl-0 = <&eth_phy0_reset_pin>;
                pinctrl-names = "default";
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>;
        };
 };
 
@@ -85,6 +76,9 @@
                reg = <0x1>;
                pinctrl-0 = <&eth_phy1_reset_pin>;
                pinctrl-names = "default";
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_LOW>;
        };
 };
 
index a3112d5df2008d99a236febbcadb883e036cb4e0..b505a4537ee8ca225eaa441fe894bcaf87cdeb04 100644 (file)
        non-removable;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>;
-       supports-emmc;
        status = "okay";
 };
 
index c2dfffc638d13d65c94d495788f558d67495d6fb..c491dc4d4947dc460330847dede052b1b25ba86c 100644 (file)
        };
 };
 
+&can0 {
+       compatible = "rockchip,rk3568v3-canfd", "rockchip,rk3568v2-canfd";
+       pinctrl-names = "default";
+       pinctrl-0 = <&can0m0_pins>;
+       status = "okay";
+};
+
+&can1 {
+       compatible = "rockchip,rk3568v3-canfd", "rockchip,rk3568v2-canfd";
+       pinctrl-names = "default";
+       pinctrl-0 = <&can1m1_pins>;
+       status = "okay";
+};
+
 &combphy0 {
        status = "okay";
 };
index a337f547caf538105a6e1644466ba62af44bc395..6a02db4f073f296fb1f81df7aad20b980698d6df 100644 (file)
@@ -13,7 +13,7 @@
 
 / {
        model = "Hardkernel ODROID-M1";
-       compatible = "rockchip,rk3568-odroid-m1", "rockchip,rk3568";
+       compatible = "hardkernel,odroid-m1", "rockchip,rk3568";
 
        aliases {
                ethernet0 = &gmac0;
index 6a998166003c9eb2131f387224aef64347d4eb7f..e601d9271ba8985eb28e918a9408af72742d86ed 100644 (file)
 
 /dts-v1/;
 
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
 #include <dt-bindings/gpio/gpio.h>
 #include "rk3568.dtsi"
 
 / {
        model = "Qnap TS-433-4G NAS System 4-Bay";
        compatible = "qnap,ts433", "rockchip,rk3568";
+
+       aliases {
+               ethernet0 = &gmac0;
+               mmc0 = &sdhci;
+               rtc0 = &rtc_rv8263;
+       };
+
+       chosen {
+               stdout-path = "serial2:115200n8";
+       };
+
+       keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&copy_button_pin>, <&reset_button_pin>;
+               pinctrl-names = "default";
+
+               key-copy {
+                       label = "copy";
+                       gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_COPY>;
+               };
+
+               key-reset {
+                       label = "reset";
+                       gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DISK;
+                       gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "disk-activity";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&hdd1_led_pin>;
+               };
+
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DISK;
+                       gpios = <&gpio1 RK_PD6 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "disk-activity";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&hdd2_led_pin>;
+               };
+
+               led-2 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DISK;
+                       gpios = <&gpio1 RK_PD7 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "disk-activity";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&hdd3_led_pin>;
+               };
+
+               led-3 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DISK;
+                       gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "disk-activity";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&hdd4_led_pin>;
+               };
+       };
+
+       dc_12v: regulator-dc-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "dc_12v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       vcc3v3_pcie: regulator-vcc3v3-pcie {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_pcie";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               enable-active-high;
+               gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
+               vin-supply = <&dc_12v>;
+       };
+
+       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 = <&dc_12v>;
+       };
+
+       vcc5v0_host: regulator-vcc5v0-host {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host_en>;
+               gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+               regulator-name = "vcc5v0_host";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_usb>;
+       };
+
+       vcc5v0_otg: regulator-vcc5v0-otg {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_otg_en>;
+               regulator-name = "vcc5v0_otg";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_usb>;
+       };
+
+       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 = <&dc_12v>;
+       };
+
+       vcc5v0_usb: regulator-vcc5v0-usb {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_usb";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&dc_12v>;
+       };
+};
+
+/* connected to usb_host0_xhci */
+&combphy0 {
+       status = "okay";
+};
+
+/* connected to sata1 */
+&combphy1 {
+       status = "okay";
+};
+
+/* connected to sata2 */
+&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-clock-rates = <0>, <125000000>;
        clock_in_out = "output";
        phy-handle = <&rgmii_phy0>;
-       phy-mode = "rgmii";
+       phy-mode = "rgmii-id";
        pinctrl-names = "default";
        pinctrl-0 = <&gmac0_miim
                     &gmac0_tx_bus2
                     &gmac0_rx_bus2
                     &gmac0_rgmii_clk
                     &gmac0_rgmii_bus>;
-       rx_delay = <0x2f>;
-       tx_delay = <0x3c>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
        status = "okay";
 };
 
 &i2c0 {
+       status = "okay";
+
        pmic@20 {
                compatible = "rockchip,rk809";
                reg = <0x20>;
                interrupt-parent = <&gpio0>;
-               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>;
+               system-power-controller;
+               vcc1-supply = <&vcc3v3_sys>;
+               vcc2-supply = <&vcc3v3_sys>;
+               vcc3-supply = <&vcc3v3_sys>;
+               vcc4-supply = <&vcc3v3_sys>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc3v3_sys>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+               wakeup-source;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-name = "vdd_logic";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu";
+                               regulator-always-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       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-always-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda_0v9: LDO_REG2 {
+                               regulator-name = "vdda_0v9";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-name = "vdda0v9_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vccio_acodec: LDO_REG4 {
+                               regulator-name = "vccio_acodec";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-name = "vccio_sd";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               regulator-name = "vcc3v3_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca_1v8: LDO_REG7 {
+                               regulator-name = "vcca_1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcca1v8_pmu: LDO_REG8 {
+                               regulator-name = "vcca1v8_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcca1v8_image: LDO_REG9 {
+                               regulator-name = "vcca1v8_image";
+                               regulator-always-on;
+                               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";
+                               /*
+                                * turning this off, breaks access to both
+                                * PCIe controllers, refclk generator perhaps
+                                */
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+
+       vdd_cpu: regulator@40 {
+               compatible = "silergy,syr827";
+               reg = <0x40>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <712500>;
+               regulator-max-microvolt = <1390000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
        };
 };
 
 &i2c1 {
        status = "okay";
 
-       rtc@51 {
+       rtc_rv8263: rtc@51 {
                compatible = "microcrystal,rv8263";
                reg = <0x51>;
                wakeup-source;
        };
+
+       /* eeprom for vital-product-data on the mainboard */
+       eeprom@54 {
+               compatible = "giantec,gt24c04a", "atmel,24c04";
+               reg = <0x54>;
+               label = "VPD_MB";
+               num-addresses = <2>;
+               pagesize = <16>;
+               read-only;
+       };
+
+       /* eeprom for vital-product-data on the backplane */
+       eeprom@56 {
+               compatible = "giantec,gt24c04a", "atmel,24c04";
+               reg = <0x56>;
+               label = "VPD_BP";
+               num-addresses = <2>;
+               pagesize = <16>;
+               read-only;
+       };
 };
 
 &mdio0 {
 };
 
 &pcie30phy {
+       data-lanes = <1 2>;
        status = "okay";
 };
 
+/* Connected to a JMicron AHCI SATA controller */
 &pcie3x1 {
-       /* The downstream dts has: rockchip,bifurcation, XXX: find out what this is about */
        reset-gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie>;
+       status = "okay";
+};
+
+/* Connected to the 2.5G NIC for the upper network jack */
+&pcie3x2 {
+       num-lanes = <1>;
+       reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie>;
+       status = "okay";
+};
+
+&pinctrl {
+       keys {
+               copy_button_pin: copy-button-pin {
+                       rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               reset_button_pin: reset-button-pin {
+                       rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       leds {
+               hdd1_led_pin: hdd1-led-pin {
+                       rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               hdd2_led_pin: hdd2-led-pin {
+                       rockchip,pins = <1 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               hdd3_led_pin: hdd3-led-pin {
+                       rockchip,pins = <1 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               hdd4_led_pin: hdd4_led-pin {
+                       rockchip,pins = <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb {
+               vcc5v0_host_en: vcc5v0-host-en {
+                       rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc5v0_otg_en: vcc5v0-otg-en {
+                       rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       vccio4-supply = <&vcc_1v8>;
+       vccio6-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sata1 {
+       status = "okay";
+};
+
+&sata2 {
        status = "okay";
 };
 
        status = "okay";
 };
 
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+/*
+ * Connected to an MCU, that provides access to more LEDs,
+ * buzzer, fan control and more.
+ */
+&uart0 {
+       status = "okay";
+};
+
 /*
  * Pins available on CN3 connector at TTL voltage level (3V3).
  * ,_  _.
 &uart2 {
        status = "okay";
 };
+
+&usb2phy0 {
+       status = "okay";
+};
+
+/* connected to usb_host0_xhci */
+&usb2phy0_otg {
+       phy-supply = <&vcc5v0_otg>;
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+/* connected to usb_host1_ehci/ohci */
+&usb2phy1_host {
+       phy-supply = <&vcc5v0_host>;
+       status = "okay";
+};
+
+/* connected to usb_host0_ehci/ohci */
+&usb2phy1_otg {
+       phy-supply = <&vcc5v0_host>;
+       status = "okay";
+};
+
+/* right port backside */
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+/* front port */
+&usb_host0_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
+/* left port backside */
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
index 45b03dcbbad455d5c02d62bbbd09eb1d5f2e4e2f..19d309654bdb41a29e60304bee7bd30596f03af6 100644 (file)
        cpu-supply = <&vdd_cpu>;
 };
 
-&display_subsystem {
-       status = "disabled";
-};
-
 &gpu {
        mali-supply = <&vdd_gpu>;
        status = "okay";
index 72ad74c38a2b40f5f8cde02b9f4bc740b321aff8..84a0789fad96ad3ade14f3688bf9a8d161da1c2d 100644 (file)
        phy-supply = <&vcc3v3_pcie30x1>;
 };
 
+&display_subsystem {
+       status = "disabled";
+};
+
 &pcie2x1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pcie20_reset_h>;
index e333449ead045e359bc95ec94bfc84d3cc8a422f..2fa89a0eeafcdab65705d328dac4d71cd32bb1a3 100644 (file)
                                regulator-name = "vdd_logic";
                                regulator-always-on;
                                regulator-boot-on;
-                               regulator-init-microvolt = <900000>;
                                regulator-initial-mode = <0x2>;
                                regulator-min-microvolt = <500000>;
                                regulator-max-microvolt = <1350000>;
 
                        vdd_gpu: DCDC_REG2 {
                                regulator-name = "vdd_gpu";
-                               regulator-init-microvolt = <900000>;
                                regulator-initial-mode = <0x2>;
                                regulator-min-microvolt = <500000>;
                                regulator-max-microvolt = <1350000>;
 
                        vdd_npu: DCDC_REG4 {
                                regulator-name = "vdd_npu";
-                               regulator-init-microvolt = <900000>;
                                regulator-initial-mode = <0x2>;
                                regulator-min-microvolt = <500000>;
                                regulator-max-microvolt = <1350000>;
diff --git a/src/arm64/rockchip/rk3568-wolfvision-pf5-display-vz.dtso b/src/arm64/rockchip/rk3568-wolfvision-pf5-display-vz.dtso
new file mode 100644 (file)
index 0000000..70c23e1
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Device tree overlay for the WolfVision PF5 Visualizer display.
+ *
+ * Copyright (C) 2024 WolfVision GmbH.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include "rk3568-wolfvision-pf5-display.dtsi"
+
+&st7789 {
+       compatible = "jasonic,jt240mhqs-hwt-ek-e3",
+                    "sitronix,st7789v";
+       rotation = <270>;
+};
diff --git a/src/arm64/rockchip/rk3568-wolfvision-pf5-display.dtsi b/src/arm64/rockchip/rk3568-wolfvision-pf5-display.dtsi
new file mode 100644 (file)
index 0000000..b22bb54
--- /dev/null
@@ -0,0 +1,121 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Device tree overlay base for the WolfVision PF5 displays.
+ *
+ * Copyright (C) 2024 WolfVision GmbH.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/rk3568-cru.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+
+&{/} {
+       display_backlight: backlight {
+               compatible = "pwm-backlight";
+               brightness-levels = <0 255>;
+               default-brightness-level = <255>;
+               num-interpolated-steps = <255>;
+               power-supply = <&vcc3v3_sd>;
+               pwms = <&pwm10 0 1000000 0>;
+       };
+
+       display_spi: spi {
+               compatible = "spi-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cs-gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>;
+               miso-gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
+               mosi-gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_HIGH>;
+               num-chipselects = <1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_spi>;
+               sck-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>;
+
+               st7789: panel@0 {
+                       compatible = "sitronix,st7789v";
+                       reg = <0>;
+                       assigned-clocks = <&cru PLL_VPLL>;
+                       assigned-clock-rates = <700000000>;
+                       backlight = <&display_backlight>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&lcdc_clock &lcdc_data18 &lcd_rstn>;
+                       power-supply = <&vcc3v3_sw>;
+                       reset-gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_LOW>;
+                       spi-max-frequency = <100000>;
+
+                       port {
+                               panel_in_vp2: endpoint {
+                                       remote-endpoint = <&vp2_out_rgb>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       st1624: touchscreen@55 {
+               compatible = "sitronix,st1624", "sitronix,st1633";
+               reg = <0x55>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PB5 IRQ_TYPE_EDGE_FALLING>;
+               gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touch_int &touch_rstn>;
+               wakeup-source;
+       };
+};
+
+&pinctrl {
+       display: display-pinctrl {
+               lcd_rstn: lcd-rstn-pinctrl {
+                       rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               lcd_spi: lcd-spi-pinctrl {
+                       rockchip,pins =
+                               /* lcd_sdo */
+                               <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>,
+                               /* lcd_csn */
+                               <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>,
+                               /* lcd_scl */
+                               <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>,
+                               /* lcd_sdi */
+                               <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       touchscreen: touchscreen-pinctrl {
+               touch_int: touch-int-pinctrl {
+                       rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               touch_rstn: touch-rstn-pinctrl {
+                       rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pwm10 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm10m1_pins>;
+       status = "okay";
+};
+
+&vp2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       vp2_out_rgb: endpoint@ROCKCHIP_VOP2_EP_RGB0 {
+               reg = <ROCKCHIP_VOP2_EP_RGB0>;
+               remote-endpoint = <&panel_in_vp2>;
+       };
+};
index f1be76a54ceb0cb0730f444c69c3da73e07194c9..0946310e8c124826ebb66f41ce6ef8489e4dfa17 100644 (file)
                };
        };
 
+       can0: can@fe570000 {
+               compatible = "rockchip,rk3568v2-canfd";
+               reg = <0x0 0xfe570000 0x0 0x1000>;
+               interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_CAN0>, <&cru PCLK_CAN0>;
+               clock-names = "baud", "pclk";
+               resets = <&cru SRST_CAN0>, <&cru SRST_P_CAN0>;
+               reset-names = "core", "apb";
+               pinctrl-names = "default";
+               pinctrl-0 = <&can0m0_pins>;
+               status = "disabled";
+       };
+
+       can1: can@fe580000 {
+               compatible = "rockchip,rk3568v2-canfd";
+               reg = <0x0 0xfe580000 0x0 0x1000>;
+               interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_CAN1>, <&cru PCLK_CAN1>;
+               clock-names = "baud", "pclk";
+               resets = <&cru SRST_CAN1>, <&cru SRST_P_CAN1>;
+               reset-names = "core", "apb";
+               pinctrl-names = "default";
+               pinctrl-0 = <&can1m0_pins>;
+               status = "disabled";
+       };
+
+       can2: can@fe590000 {
+               compatible = "rockchip,rk3568v2-canfd";
+               reg = <0x0 0xfe590000 0x0 0x1000>;
+               interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_CAN2>, <&cru PCLK_CAN2>;
+               clock-names = "baud", "pclk";
+               resets = <&cru SRST_CAN2>, <&cru SRST_P_CAN2>;
+               reset-names = "core", "apb";
+               pinctrl-names = "default";
+               pinctrl-0 = <&can2m0_pins>;
+               status = "disabled";
+       };
+
        combphy0: phy@fe820000 {
                compatible = "rockchip,rk3568-naneng-combphy";
                reg = <0x0 0xfe820000 0x0 0x100>;
        };
 };
 
+&rng {
+       status = "okay";
+};
+
 &usb_host0_xhci {
        phys = <&usb2phy0_otg>, <&combphy0 PHY_TYPE_USB3>;
        phy-names = "usb2-phy", "usb3-phy";
index c72b3a608edd98d4378417041889a1058485b0f9..0ee0ada6f0ab0f144baee4228079c2278db2f560 100644 (file)
                status = "disabled";
        };
 
+       rng: rng@fe388000 {
+               compatible = "rockchip,rk3568-rng";
+               reg = <0x0 0xfe388000 0x0 0x4000>;
+               clocks = <&cru CLK_TRNG_NS>, <&cru HCLK_TRNG_NS>;
+               clock-names = "core", "ahb";
+               resets = <&cru SRST_TRNG_NS>;
+               status = "disabled";
+       };
+
        i2s0_8ch: i2s@fe400000 {
                compatible = "rockchip,rk3568-i2s-tdm";
                reg = <0x0 0xfe400000 0x0 0x1000>;
index 30db12c4fc82b54ca90eefafa4720bda57e0f9e4..d1368418502a5d8cde14e41cd10062570ef00861 100644 (file)
                                /* sdio_clk_m1 */
                                <3 RK_PA5 2 &pcfg_pull_none>,
                                /* sdio_cmd_m1 */
-                               <3 RK_PA4 2 &pcfg_pull_none>,
+                               <3 RK_PA4 2 &pcfg_pull_up>,
                                /* sdio_d0_m1 */
-                               <3 RK_PA0 2 &pcfg_pull_none>,
+                               <3 RK_PA0 2 &pcfg_pull_up>,
                                /* sdio_d1_m1 */
-                               <3 RK_PA1 2 &pcfg_pull_none>,
+                               <3 RK_PA1 2 &pcfg_pull_up>,
                                /* sdio_d2_m1 */
-                               <3 RK_PA2 2 &pcfg_pull_none>,
+                               <3 RK_PA2 2 &pcfg_pull_up>,
                                /* sdio_d3_m1 */
-                               <3 RK_PA3 2 &pcfg_pull_none>;
+                               <3 RK_PA3 2 &pcfg_pull_up>;
                };
        };
 
index ee99166ebd46f9bbb84e7bb82a0c394d045dbf0c..fc67585b64b7baa33d5a816517f20c4cb940b52d 100644 (file)
                        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;
-               };
+       /*
+        * The L3 cache belongs to the DynamIQ Shared Unit (DSU),
+        * so it's represented here, outside the "cpus" node
+        */
+       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 {
                };
        };
 
+       vpu121: video-codec@fdb50000 {
+               compatible = "rockchip,rk3588-vpu121", "rockchip,rk3568-vpu";
+               reg = <0x0 0xfdb50000 0x0 0x800>;
+               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vdpu";
+               clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
+               clock-names = "aclk", "hclk";
+               iommus = <&vpu121_mmu>;
+               power-domains = <&power RK3588_PD_VDPU>;
+       };
+
+       vpu121_mmu: iommu@fdb50800 {
+               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+               reg = <0x0 0xfdb50800 0x0 0x40>;
+               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
+               clock-names = "aclk", "iface";
+               clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
+               power-domains = <&power RK3588_PD_VDPU>;
+               #iommu-cells = <0>;
+       };
+
+       rga: rga@fdb80000 {
+               compatible = "rockchip,rk3588-rga", "rockchip,rk3288-rga";
+               reg = <0x0 0xfdb80000 0x0 0x180>;
+               interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_RGA2>, <&cru HCLK_RGA2>, <&cru CLK_RGA2_CORE>;
+               clock-names = "aclk", "hclk", "sclk";
+               resets = <&cru SRST_RGA2_CORE>, <&cru SRST_A_RGA2>, <&cru SRST_H_RGA2>;
+               reset-names = "core", "axi", "ahb";
+               power-domains = <&power RK3588_PD_VDPU>;
+       };
+
+       vepu121_0: video-codec@fdba0000 {
+               compatible = "rockchip,rk3588-vepu121";
+               reg = <0x0 0xfdba0000 0x0 0x800>;
+               interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_JPEG_ENCODER0>, <&cru HCLK_JPEG_ENCODER0>;
+               clock-names = "aclk", "hclk";
+               iommus = <&vepu121_0_mmu>;
+               power-domains = <&power RK3588_PD_VDPU>;
+       };
+
+       vepu121_0_mmu: iommu@fdba0800 {
+               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+               reg = <0x0 0xfdba0800 0x0 0x40>;
+               interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_JPEG_ENCODER0>, <&cru HCLK_JPEG_ENCODER0>;
+               clock-names = "aclk", "iface";
+               power-domains = <&power RK3588_PD_VDPU>;
+               #iommu-cells = <0>;
+       };
+
+       vepu121_1: video-codec@fdba4000 {
+               compatible = "rockchip,rk3588-vepu121";
+               reg = <0x0 0xfdba4000 0x0 0x800>;
+               interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_JPEG_ENCODER1>, <&cru HCLK_JPEG_ENCODER1>;
+               clock-names = "aclk", "hclk";
+               iommus = <&vepu121_1_mmu>;
+               power-domains = <&power RK3588_PD_VDPU>;
+       };
+
+       vepu121_1_mmu: iommu@fdba4800 {
+               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+               reg = <0x0 0xfdba4800 0x0 0x40>;
+               interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_JPEG_ENCODER1>, <&cru HCLK_JPEG_ENCODER1>;
+               clock-names = "aclk", "iface";
+               power-domains = <&power RK3588_PD_VDPU>;
+               #iommu-cells = <0>;
+       };
+
+       vepu121_2: video-codec@fdba8000 {
+               compatible = "rockchip,rk3588-vepu121";
+               reg = <0x0 0xfdba8000 0x0 0x800>;
+               interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_JPEG_ENCODER2>, <&cru HCLK_JPEG_ENCODER2>;
+               clock-names = "aclk", "hclk";
+               iommus = <&vepu121_2_mmu>;
+               power-domains = <&power RK3588_PD_VDPU>;
+       };
+
+       vepu121_2_mmu: iommu@fdba8800 {
+               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+               reg = <0x0 0xfdba8800 0x0 0x40>;
+               interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_JPEG_ENCODER2>, <&cru HCLK_JPEG_ENCODER2>;
+               clock-names = "aclk", "iface";
+               power-domains = <&power RK3588_PD_VDPU>;
+               #iommu-cells = <0>;
+       };
+
+       vepu121_3: video-codec@fdbac000 {
+               compatible = "rockchip,rk3588-vepu121";
+               reg = <0x0 0xfdbac000 0x0 0x800>;
+               interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_JPEG_ENCODER3>, <&cru HCLK_JPEG_ENCODER3>;
+               clock-names = "aclk", "hclk";
+               iommus = <&vepu121_3_mmu>;
+               power-domains = <&power RK3588_PD_VDPU>;
+       };
+
+       vepu121_3_mmu: iommu@fdbac800 {
+               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+               reg = <0x0 0xfdbac800 0x0 0x40>;
+               interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_JPEG_ENCODER3>, <&cru HCLK_JPEG_ENCODER3>;
+               clock-names = "aclk", "iface";
+               power-domains = <&power RK3588_PD_VDPU>;
+               #iommu-cells = <0>;
+       };
+
        av1d: video-codec@fdc70000 {
                compatible = "rockchip,rk3588-av1-vpu";
                reg = <0x0 0xfdc70000 0x0 0x800>;
diff --git a/src/arm64/rockchip/rk3588-coolpi-cm5-genbook.dts b/src/arm64/rockchip/rk3588-coolpi-cm5-genbook.dts
new file mode 100644 (file)
index 0000000..6418286
--- /dev/null
@@ -0,0 +1,349 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
+ *
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include "rk3588-coolpi-cm5.dtsi"
+
+/ {
+       model = "CoolPi CM5 GenBook";
+       compatible = "coolpi,pi-cm5-genbook", "coolpi,pi-cm5", "rockchip,rk3588";
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               enable-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bl_en>;
+               power-supply = <&vcc12v_dcin>;
+               pwms = <&pwm6 0 25000 0>;
+       };
+
+       battery: battery {
+               compatible = "simple-battery";
+               charge-full-design-microamp-hours = <9800000>;
+               voltage-max-design-microvolt = <4350000>;
+               voltage-min-design-microvolt = <3000000>;
+       };
+
+       charger: dc-charger {
+               compatible = "gpio-charger";
+               charger-type = "mains";
+               gpios = <&gpio1 RK_PC0 GPIO_ACTIVE_LOW>;
+       };
+
+       leds: leds {
+               compatible = "gpio-leds";
+
+               heartbeat_led: led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               wlan_led: led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_WLAN;
+                       gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
+               };
+
+               charging_red: led-2 {
+                       function = LED_FUNCTION_CHARGING;
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       vcc12v_dcin: vcc12v-dcin-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc12v_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       vcc_sys: vcc-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <7000000>;
+               regulator-max-microvolt = <7000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       vcc5v0_sys: vcc5v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <7000000>;
+               regulator-max-microvolt = <7000000>;
+               vin-supply = <&vcc_sys>;
+       };
+
+       vcc3v3_sys: vcc3v3-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_lcd: vcc3v3-lcd-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_lcd";
+               enable-active-high;
+               gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcdpwr_en>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       vcc5v0_usb: vcc5v0-usb-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_usb";
+               regulator-boot-on;
+               regulator-always-on;
+               enable-active-high;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_pwren>;
+               vin-supply = <&vcc_sys>;
+       };
+
+       vcc5v0_usb_host0: vcc5v0_usb30_host: vcc5v0-usb-host-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_host";
+               regulator-boot-on;
+               regulator-always-on;
+               enable-active-high;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_host_pwren>;
+               vin-supply = <&vcc5v0_usb>;
+       };
+};
+
+&i2c4 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4m3_xfer>;
+
+       cw2015@62 {
+               compatible = "cellwise,cw2015";
+               reg = <0x62>;
+
+               cellwise,battery-profile = /bits/ 8 <
+                       0x17 0x67 0x69 0x63 0x63 0x62 0x62 0x5F
+                       0x52 0x73 0x4C 0x5A 0x5B 0x4B 0x42 0x3A
+                       0x33 0x2D 0x29 0x28 0x2E 0x31 0x3C 0x49
+                       0x2C 0x2C 0x0C 0xCD 0x30 0x51 0x50 0x66
+                       0x74 0x74 0x75 0x78 0x41 0x1B 0x84 0x5F
+                       0x0B 0x34 0x1C 0x45 0x89 0x92 0xA0 0x13
+                       0x2C 0x55 0xAB 0xCB 0x80 0x5E 0x7B 0xCB
+                       0x2F 0x00 0x64 0xA5 0xB5 0x10 0x18 0x21
+                       >;
+
+               cellwise,monitor-interval-ms = <3000>;
+               monitored-battery = <&battery>;
+               power-supplies = <&charger>;
+       };
+};
+
+&i2c5 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c5m3_xfer>;
+
+       touchpad: touchpad@2c {
+               compatible = "hid-over-i2c";
+               reg = <0x2c>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <RK_PD6 IRQ_TYPE_LEVEL_LOW>;
+               hid-descr-addr = <0x0020>;
+       };
+};
+
+&gmac0 {
+       status = "disabled";
+};
+
+/* M.2 E-Key */
+&pcie2x1l0 {
+       reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_sys>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie_clkreq &pcie_wake &pcie_rst &wifi_pwron &bt_pwron>;
+       status = "okay";
+};
+
+&pcie2x1l2 {
+       status = "disabled";
+};
+
+&pcie30phy {
+       status = "okay";
+};
+
+/* M.2 M-Key ssd */
+&pcie3x4 {
+       reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_sys>;
+       status = "okay";
+};
+
+&pinctrl {
+       lcd {
+               lcdpwr_en: lcdpwr-en {
+                       rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               bl_en: bl-en {
+                       rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               usb_pwren: usb-pwren {
+                       rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               usb_otg_pwren: usb-otg-pwren {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               usb_host_pwren: usb-host-pwren {
+                       rockchip,pins = <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       wifi {
+               bt_pwron: bt-pwron {
+                       rockchip,pins = <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               pcie_clkreq: pcie-clkreq {
+                       rockchip,pins = <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               pcie_rst: pcie-rst {
+                       rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               wifi_pwron: wifi-pwron {
+                       rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               pcie_wake: pcie-wake {
+                       rockchip,pins = <4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&pwm6 {
+       pinctrl-0 = <&pwm6m1_pins>;
+       status = "okay";
+};
+
+&sdmmc {
+       status = "disabled";
+};
+
+&sfc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&fspim2_pins>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0x0>;
+               spi-max-frequency = <100000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
+&usbdp_phy0 {
+       status = "okay";
+};
+
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       phy-supply = <&vcc5v0_usb_host0>;
+       status = "okay";
+};
+
+&u2phy3_host {
+       phy-supply = <&vcc5v0_usb>;
+       status = "okay";
+};
+
+&usbdp_phy1 {
+       status = "okay";
+};
+
+/* For Keypad */
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+/* Type C port */
+&usb_host0_xhci {
+       dr_mode = "peripheral";
+       maximum-speed = "high-speed";
+       status = "okay";
+};
+
+/* connected to a HUB for camera and BT */
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+/* USB A out */
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
diff --git a/src/arm64/rockchip/rk3588-nanopc-t6-lts.dts b/src/arm64/rockchip/rk3588-nanopc-t6-lts.dts
new file mode 100644 (file)
index 0000000..2d92bbb
--- /dev/null
@@ -0,0 +1,60 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
+ * Copyright (c) 2023 Thomas McKahan
+ * Copyright (c) 2024 Linaro Ltd.
+ *
+ */
+
+/dts-v1/;
+
+#include "rk3588-nanopc-t6.dtsi"
+
+/ {
+       model = "FriendlyElec NanoPC-T6 LTS";
+       compatible = "friendlyarm,nanopc-t6-lts", "rockchip,rk3588";
+
+       /* provide power for on-board USB 2.0 hub */
+       vcc5v0_usb20_host: vcc5v0-usb20-host-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb20_host_pwren>;
+               pinctrl-names = "default";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "vcc5v0_usb20_host";
+               vin-supply = <&vcc5v0_sys>;
+       };
+};
+
+&pinctrl {
+       usb {
+               usb20_host_pwren: usb20-host-pwren {
+                       rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       status = "okay";
+};
+
+&u2phy2_host {
+       phy-supply = <&vcc5v0_usb20_host>;
+};
+
+&usbdp_phy1 {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
index ad8e36a339dc45c8cca0eea36d8e5b1822e46138..92321c1d3ff10eeafa2281a958b622d8cfea805a 100644 (file)
 /*
  * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
  * Copyright (c) 2023 Thomas McKahan
+ * Copyright (c) 2024 Linaro Ltd.
  *
  */
 
 /dts-v1/;
 
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/pinctrl/rockchip.h>
-#include <dt-bindings/usb/pd.h>
-#include "rk3588.dtsi"
+#include "rk3588-nanopc-t6.dtsi"
 
 / {
        model = "FriendlyElec NanoPC-T6";
        compatible = "friendlyarm,nanopc-t6", "rockchip,rk3588";
 
-       aliases {
-               mmc0 = &sdhci;
-               mmc1 = &sdmmc;
-       };
-
-       chosen {
-               stdout-path = "serial2:1500000n8";
-       };
-
-       leds {
-               compatible = "gpio-leds";
-
-               sys_led: led-0 {
-                       gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
-                       label = "system-led";
-                       linux,default-trigger = "heartbeat";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&sys_led_pin>;
-               };
-
-               usr_led: led-1 {
-                       gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
-                       label = "user-led";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&usr_led_pin>;
-               };
-       };
-
-       sound {
-               compatible = "simple-audio-card";
-               pinctrl-names = "default";
-               pinctrl-0 = <&hp_det>;
-
-               simple-audio-card,name = "realtek,rt5616-codec";
-               simple-audio-card,format = "i2s";
-               simple-audio-card,mclk-fs = <256>;
-
-               simple-audio-card,hp-det-gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>;
-               simple-audio-card,hp-pin-name = "Headphones";
-
-               simple-audio-card,widgets =
-                       "Headphone", "Headphones",
-                       "Microphone", "Microphone Jack";
-               simple-audio-card,routing =
-                       "Headphones", "HPOL",
-                       "Headphones", "HPOR",
-                       "MIC1", "Microphone Jack",
-                       "Microphone Jack", "micbias1";
-
-               simple-audio-card,cpu {
-                       sound-dai = <&i2s0_8ch>;
-               };
-               simple-audio-card,codec {
-                       sound-dai = <&rt5616>;
-               };
-       };
-
-       vcc12v_dcin: vcc12v-dcin-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "vcc12v_dcin";
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <12000000>;
-               regulator-max-microvolt = <12000000>;
-       };
-
-       /* vcc5v0_sys powers peripherals */
-       vcc5v0_sys: vcc5v0-sys-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "vcc5v0_sys";
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               vin-supply = <&vcc12v_dcin>;
-       };
-
-       /* vcc4v0_sys powers the RK806, RK860's */
-       vcc4v0_sys: vcc4v0-sys-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "vcc4v0_sys";
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <4000000>;
-               regulator-max-microvolt = <4000000>;
-               vin-supply = <&vcc12v_dcin>;
-       };
-
-       vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "vcc-1v1-nldo-s3";
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <1100000>;
-               regulator-max-microvolt = <1100000>;
-               vin-supply = <&vcc4v0_sys>;
-       };
-
-       vcc_3v3_pcie20: vcc3v3-pcie20-regulator {
-               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>;
-       };
-
-       vbus5v0_typec: vbus5v0-typec-regulator {
-               compatible = "regulator-fixed";
-               enable-active-high;
-               gpio = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&typec5v_pwren>;
-               regulator-name = "vbus5v0_typec";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               vin-supply = <&vcc5v0_sys>;
-       };
-
-       vcc3v3_pcie2x1l0: vcc3v3-pcie2x1l0-regulator {
-               compatible = "regulator-fixed";
-               enable-active-high;
-               gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pcie_m2_1_pwren>;
-               regulator-name = "vcc3v3_pcie2x1l0";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               vin-supply = <&vcc5v0_sys>;
-       };
-
-       vcc3v3_pcie30: vcc3v3-pcie30-regulator {
-               compatible = "regulator-fixed";
-               enable-active-high;
-               gpios = <&gpio2 RK_PC5 GPIO_ACTIVE_HIGH>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pcie_m2_0_pwren>;
-               regulator-name = "vcc3v3_pcie30";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               vin-supply = <&vcc5v0_sys>;
-       };
-
-       vcc3v3_sd_s0: vcc3v3-sd-s0-regulator {
-               compatible = "regulator-fixed";
-               enable-active-low;
-               gpio = <&gpio4 RK_PA5 GPIO_ACTIVE_LOW>;
-               regulator-boot-on;
-               regulator-max-microvolt = <3300000>;
-               regulator-min-microvolt = <3300000>;
-               regulator-name = "vcc3v3_sd_s0";
-               vin-supply = <&vcc_3v3_s3>;
-       };
-
        vdd_4g_3v3: vdd-4g-3v3-regulator {
                compatible = "regulator-fixed";
                enable-active-high;
        };
 };
 
-&combphy0_ps {
-       status = "okay";
-};
-
-&combphy1_ps {
-       status = "okay";
-};
-
-&combphy2_psu {
-       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>;
-};
-
-&gpio0 {
-       gpio-line-names = /* GPIO0 A0-A7 */
-                         "", "", "", "",
-                         "", "", "", "",
-                         /* GPIO0 B0-B7 */
-                         "", "", "", "",
-                         "", "", "", "",
-                         /* GPIO0 C0-C7 */
-                         "", "", "", "",
-                         "HEADER_10", "HEADER_08", "HEADER_32", "",
-                         /* GPIO0 D0-D7 */
-                         "", "", "", "",
-                         "", "", "", "";
-};
-
-&gpio1 {
-       gpio-line-names = /* GPIO1 A0-A7 */
-                         "HEADER_27", "HEADER_28", "", "",
-                         "", "", "", "HEADER_15",
-                         /* GPIO1 B0-B7 */
-                         "HEADER_26", "HEADER_21", "HEADER_19", "HEADER_23",
-                         "HEADER_24", "HEADER_22", "", "",
-                         /* GPIO1 C0-C7 */
-                         "", "", "", "",
-                         "", "", "", "",
-                         /* GPIO1 D0-D7 */
-                         "", "", "", "",
-                         "", "", "HEADER_05", "HEADER_03";
-};
-
-&gpio2 {
-       gpio-line-names = /* GPIO2 A0-A7 */
-                         "", "", "", "",
-                         "", "", "", "",
-                         /* GPIO2 B0-B7 */
-                         "", "", "", "",
-                         "", "", "", "",
-                         /* GPIO2 C0-C7 */
-                         "", "CSI1_11", "CSI1_12", "",
-                         "", "", "", "",
-                         /* GPIO2 D0-D7 */
-                         "", "", "", "",
-                         "", "", "", "";
-};
-
-&gpio3 {
-       gpio-line-names = /* GPIO3 A0-A7 */
-                         "HEADER_35", "HEADER_38", "HEADER_40", "HEADER_36",
-                         "HEADER_37", "", "DSI0_12", "",
-                         /* GPIO3 B0-B7 */
-                         "HEADER_33", "DSI0_10", "HEADER_07", "HEADER_16",
-                         "HEADER_18", "HEADER_29", "HEADER_31", "HEADER_12",
-                         /* GPIO3 C0-C7 */
-                         "DSI0_08", "DSI0_14", "HEADER_11", "HEADER_13",
-                         "", "", "", "",
-                         /* GPIO3 D0-D7 */
-                         "", "", "", "",
-                         "", "DSI1_10", "", "";
-};
-
-&gpio4 {
-       gpio-line-names = /* GPIO4 A0-A7 */
-                         "DSI1_08", "DSI1_14", "", "DSI1_12",
-                         "", "", "", "",
-                         /* GPIO4 B0-B7 */
-                         "", "", "", "",
-                         "", "", "", "",
-                         /* GPIO4 C0-C7 */
-                         "", "", "", "",
-                         "CSI0_11", "CSI0_12", "", "",
-                         /* GPIO4 D0-D7 */
-                         "", "", "", "",
-                         "", "", "", "";
-};
-
-&i2c0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c0m2_xfer>;
-       status = "okay";
-
-       vdd_cpu_big0_s0: regulator@42 {
-               compatible = "rockchip,rk8602";
-               reg = <0x42>;
-               fcs,suspend-voltage-selector = <1>;
-               regulator-name = "vdd_cpu_big0_s0";
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <550000>;
-               regulator-max-microvolt = <1050000>;
-               regulator-ramp-delay = <2300>;
-               vin-supply = <&vcc4v0_sys>;
-
-               regulator-state-mem {
-                       regulator-off-in-suspend;
-               };
-       };
-
-       vdd_cpu_big1_s0: regulator@43 {
-               compatible = "rockchip,rk8603", "rockchip,rk8602";
-               reg = <0x43>;
-               fcs,suspend-voltage-selector = <1>;
-               regulator-name = "vdd_cpu_big1_s0";
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <550000>;
-               regulator-max-microvolt = <1050000>;
-               regulator-ramp-delay = <2300>;
-               vin-supply = <&vcc4v0_sys>;
-
-               regulator-state-mem {
-                       regulator-off-in-suspend;
-               };
-       };
-};
-
-&i2c2 {
-       status = "okay";
-
-       vdd_npu_s0: regulator@42 {
-               compatible = "rockchip,rk8602";
-               reg = <0x42>;
-               rockchip,suspend-voltage-selector = <1>;
-               regulator-name = "vdd_npu_s0";
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <550000>;
-               regulator-max-microvolt = <950000>;
-               regulator-ramp-delay = <2300>;
-               vin-supply = <&vcc4v0_sys>;
-
-               regulator-state-mem {
-                       regulator-off-in-suspend;
-               };
-       };
-};
-
-&i2c6 {
-       clock-frequency = <200000>;
-       status = "okay";
-
-       fusb302: typec-portc@22 {
-               compatible = "fcs,fusb302";
-               reg = <0x22>;
-               interrupt-parent = <&gpio0>;
-               interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
-               pinctrl-0 = <&usbc0_int>;
-               pinctrl-names = "default";
-               vbus-supply = <&vbus5v0_typec>;
-
-               connector {
-                       compatible = "usb-c-connector";
-                       data-role = "dual";
-                       label = "USB-C";
-                       power-role = "dual";
-                       try-power-role = "sink";
-                       source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;
-                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
-                       op-sink-microwatt = <1000000>;
-               };
-       };
-
-       hym8563: rtc@51 {
-               compatible = "haoyu,hym8563";
-               reg = <0x51>;
-               #clock-cells = <0>;
-               clock-output-names = "hym8563";
-               pinctrl-names = "default";
-               pinctrl-0 = <&hym8563_int>;
-               interrupt-parent = <&gpio0>;
-               interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
-               wakeup-source;
-       };
-};
-
-&i2c7 {
-       clock-frequency = <200000>;
-       status = "okay";
-
-       rt5616: codec@1b {
-               compatible = "realtek,rt5616";
-               reg = <0x1b>;
-               clocks = <&cru I2S0_8CH_MCLKOUT>;
-               clock-names = "mclk";
-               #sound-dai-cells = <0>;
-               assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
-               assigned-clock-rates = <12288000>;
-
-               port {
-                       rt5616_p0_0: endpoint {
-                               remote-endpoint = <&i2s0_8ch_p0_0>;
-                       };
-               };
-       };
-
-       /* connected with MIPI-CSI1 */
-};
-
-&i2c8 {
-       pinctrl-0 = <&i2c8m2_xfer>;
-};
-
-&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 = <&rt5616_p0_0>;
-               };
-       };
-};
-
-&pcie2x1l0 {
-       reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
-       vpcie3v3-supply = <&vcc_3v3_pcie20>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pcie2_0_rst>;
-       status = "okay";
-};
-
-&pcie2x1l1 {
-       reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
-       vpcie3v3-supply = <&vcc3v3_pcie2x1l0>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pcie2_1_rst>;
-       status = "okay";
-};
-
-&pcie2x1l2 {
-       reset-gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>;
-       vpcie3v3-supply = <&vcc_3v3_pcie20>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pcie2_2_rst>;
-       status = "okay";
-};
-
-&pcie30phy {
-       status = "okay";
-};
-
-&pcie3x4 {
-       reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
-       vpcie3v3-supply = <&vcc3v3_pcie30>;
-       status = "okay";
-};
-
 &pinctrl {
-       gpio-leds {
-               sys_led_pin: sys-led-pin {
-                       rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
-               };
-
-               usr_led_pin: usr-led-pin {
-                       rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
-               };
-       };
-
-       headphone {
-               hp_det: hp-det {
-                       rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
-               };
-       };
-
-       hym8563 {
-               hym8563_int: hym8563-int {
-                       rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
-               };
-       };
-
-       pcie {
-               pcie2_0_rst: pcie2-0-rst {
-                       rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
-               };
-
-               pcie2_1_rst: pcie2-1-rst {
-                       rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
-               };
-
-               pcie2_2_rst: pcie2-2-rst {
-                       rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
-               };
-
-               pcie_m2_0_pwren: pcie-m20-pwren {
-                       rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
-               };
-
-               pcie_m2_1_pwren: pcie-m21-pwren {
-                       rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
-               };
-       };
-
        usb {
                pin_4g_lte_pwren: 4g-lte-pwren {
                        rockchip,pins = <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
                };
-
-               typec5v_pwren: typec5v-pwren {
-                       rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
-               };
-
-               usbc0_int: usbc0-int {
-                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
-               };
-       };
-};
-
-&pwm1 {
-       pinctrl-0 = <&pwm1m1_pins>;
-       status = "okay";
-};
-
-&saradc {
-       vref-supply = <&avcc_1v8_s0>;
-       status = "okay";
-};
-
-&sdhci {
-       bus-width = <8>;
-       no-sdio;
-       no-sd;
-       non-removable;
-       max-frequency = <200000000>;
-       mmc-hs400-1_8v;
-       mmc-hs400-enhanced-strobe;
-       status = "okay";
-};
-
-&sdmmc {
-       bus-width = <4>;
-       cap-mmc-highspeed;
-       cap-sd-highspeed;
-       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
-       disable-wp;
-       no-mmc;
-       no-sdio;
-       sd-uhs-sdr104;
-       vmmc-supply = <&vcc3v3_sd_s0>;
-       vqmmc-supply = <&vccio_sd_s0>;
-       status = "okay";
-};
-
-&spi2 {
-       status = "okay";
-       assigned-clocks = <&cru CLK_SPI2>;
-       assigned-clock-rates = <200000000>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
-       num-cs = <1>;
-
-       pmic@0 {
-               compatible = "rockchip,rk806";
-               spi-max-frequency = <1000000>;
-               reg = <0x0>;
-
-               interrupt-parent = <&gpio0>;
-               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
-                           <&rk806_dvs2_null>, <&rk806_dvs3_null>;
-
-               system-power-controller;
-
-               vcc1-supply = <&vcc4v0_sys>;
-               vcc2-supply = <&vcc4v0_sys>;
-               vcc3-supply = <&vcc4v0_sys>;
-               vcc4-supply = <&vcc4v0_sys>;
-               vcc5-supply = <&vcc4v0_sys>;
-               vcc6-supply = <&vcc4v0_sys>;
-               vcc7-supply = <&vcc4v0_sys>;
-               vcc8-supply = <&vcc4v0_sys>;
-               vcc9-supply = <&vcc4v0_sys>;
-               vcc10-supply = <&vcc4v0_sys>;
-               vcc11-supply = <&vcc_2v0_pldo_s3>;
-               vcc12-supply = <&vcc4v0_sys>;
-               vcc13-supply = <&vcc_1v1_nldo_s3>;
-               vcc14-supply = <&vcc_1v1_nldo_s3>;
-               vcca-supply = <&vcc4v0_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-init-microvolt = <750000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-name = "vdd_vdenc_s0";
-
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                               };
-                       };
-
-                       vdd_ddr_s0: dcdc-reg5 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <675000>;
-                               regulator-max-microvolt = <900000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-name = "vdd_ddr_s0";
-
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                                       regulator-suspend-microvolt = <850000>;
-                               };
-                       };
-
-                       vdd2_ddr_s3: dcdc-reg6 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-name = "vdd2_ddr_s3";
-
-                               regulator-state-mem {
-                                       regulator-on-in-suspend;
-                               };
-                       };
-
-                       vcc_2v0_pldo_s3: dcdc-reg7 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <2000000>;
-                               regulator-max-microvolt = <2000000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-name = "vdd_2v0_pldo_s3";
-
-                               regulator-state-mem {
-                                       regulator-on-in-suspend;
-                                       regulator-suspend-microvolt = <2000000>;
-                               };
-                       };
-
-                       vcc_3v3_s3: dcdc-reg8 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-name = "vcc_3v3_s3";
-
-                               regulator-state-mem {
-                                       regulator-on-in-suspend;
-                                       regulator-suspend-microvolt = <3300000>;
-                               };
-                       };
-
-                       vddq_ddr_s0: dcdc-reg9 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-name = "vddq_ddr_s0";
-
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                               };
-                       };
-
-                       vcc_1v8_s3: dcdc-reg10 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                               regulator-name = "vcc_1v8_s3";
-
-                               regulator-state-mem {
-                                       regulator-on-in-suspend;
-                                       regulator-suspend-microvolt = <1800000>;
-                               };
-                       };
-
-                       avcc_1v8_s0: pldo-reg1 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                               regulator-name = "avcc_1v8_s0";
-
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                               };
-                       };
-
-                       vcc_1v8_s0: pldo-reg2 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                               regulator-name = "vcc_1v8_s0";
-
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                                       regulator-suspend-microvolt = <1800000>;
-                               };
-                       };
-
-                       avdd_1v2_s0: pldo-reg3 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <1200000>;
-                               regulator-max-microvolt = <1200000>;
-                               regulator-name = "avdd_1v2_s0";
-
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                               };
-                       };
-
-                       vcc_3v3_s0: pldo-reg4 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-name = "vcc_3v3_s0";
-
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                               };
-                       };
-
-                       vccio_sd_s0: pldo-reg5 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-ramp-delay = <12500>;
-                               regulator-name = "vccio_sd_s0";
-
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                               };
-                       };
-
-                       pldo6_s3: pldo-reg6 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                               regulator-name = "pldo6_s3";
-
-                               regulator-state-mem {
-                                       regulator-on-in-suspend;
-                                       regulator-suspend-microvolt = <1800000>;
-                               };
-                       };
-
-                       vdd_0v75_s3: nldo-reg1 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <750000>;
-                               regulator-max-microvolt = <750000>;
-                               regulator-name = "vdd_0v75_s3";
-
-                               regulator-state-mem {
-                                       regulator-on-in-suspend;
-                                       regulator-suspend-microvolt = <750000>;
-                               };
-                       };
-
-                       vdd_ddr_pll_s0: nldo-reg2 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <850000>;
-                               regulator-max-microvolt = <850000>;
-                               regulator-name = "vdd_ddr_pll_s0";
-
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                                       regulator-suspend-microvolt = <850000>;
-                               };
-                       };
-
-                       avdd_0v75_s0: nldo-reg3 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <750000>;
-                               regulator-max-microvolt = <750000>;
-                               regulator-name = "avdd_0v75_s0";
-
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                               };
-                       };
-
-                       vdd_0v85_s0: nldo-reg4 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <850000>;
-                               regulator-max-microvolt = <850000>;
-                               regulator-name = "vdd_0v85_s0";
-
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                               };
-                       };
-
-                       vdd_0v75_s0: nldo-reg5 {
-                               regulator-always-on;
-                               regulator-boot-on;
-                               regulator-min-microvolt = <750000>;
-                               regulator-max-microvolt = <750000>;
-                               regulator-name = "vdd_0v75_s0";
-
-                               regulator-state-mem {
-                                       regulator-off-in-suspend;
-                               };
-                       };
-               };
        };
 };
 
-&tsadc {
-       status = "okay";
-};
-
-&uart2 {
-       pinctrl-0 = <&uart2m0_xfer>;
-       status = "okay";
-};
-
 &u2phy2_host {
        phy-supply = <&vdd_4g_3v3>;
-       status = "okay";
-};
-
-&u2phy3_host {
-       status = "okay";
-};
-
-&u2phy2 {
-       status = "okay";
-};
-
-&u2phy3 {
-       status = "okay";
-};
-
-&usb_host0_ehci {
-       status = "okay";
-};
-
-&usb_host0_ohci {
-       status = "okay";
-};
-
-&usb_host1_ehci {
-       status = "okay";
-};
-
-&usb_host1_ohci {
-       status = "okay";
 };
diff --git a/src/arm64/rockchip/rk3588-nanopc-t6.dtsi b/src/arm64/rockchip/rk3588-nanopc-t6.dtsi
new file mode 100644 (file)
index 0000000..fc13178
--- /dev/null
@@ -0,0 +1,1041 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
+ * Copyright (c) 2023 Thomas McKahan
+ *
+ */
+
+/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.dtsi"
+
+/ {
+       model = "FriendlyElec NanoPC-T6";
+       compatible = "friendlyarm,nanopc-t6", "rockchip,rk3588";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc;
+       };
+
+       adc-keys-0 {
+               compatible = "adc-keys";
+               io-channels = <&saradc 0>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-maskrom {
+                       label = "Mask Rom";
+                       linux,code = <KEY_SETUP>;
+                       press-threshold-microvolt = <2000>;
+               };
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       ir-receiver {
+               compatible = "gpio-ir-receiver";
+               gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ir_receiver_pin>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               sys_led: led-0 {
+                       gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
+                       label = "system-led";
+                       linux,default-trigger = "heartbeat";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&sys_led_pin>;
+               };
+
+               usr_led: led-1 {
+                       gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
+                       label = "user-led";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&usr_led_pin>;
+               };
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_det>;
+
+               simple-audio-card,name = "realtek,rt5616-codec";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,mclk-fs = <256>;
+
+               simple-audio-card,hp-det-gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>;
+
+               simple-audio-card,widgets =
+                       "Headphone", "Headphones",
+                       "Microphone", "Microphone Jack";
+               simple-audio-card,routing =
+                       "Headphones", "HPOL",
+                       "Headphones", "HPOR",
+                       "MIC1", "Microphone Jack",
+                       "Microphone Jack", "micbias1";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s0_8ch>;
+               };
+               simple-audio-card,codec {
+                       sound-dai = <&rt5616>;
+               };
+       };
+
+       vcc12v_dcin: vcc12v-dcin-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc12v_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       /* vcc5v0_sys powers peripherals */
+       vcc5v0_sys: vcc5v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       /* vcc4v0_sys powers the RK806, RK860's */
+       vcc4v0_sys: vcc4v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc4v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <4000000>;
+               regulator-max-microvolt = <4000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc-1v1-nldo-s3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               vin-supply = <&vcc4v0_sys>;
+       };
+
+       vcc_3v3_pcie20: vcc3v3-pcie20-regulator {
+               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>;
+       };
+
+       vbus5v0_typec: vbus5v0-typec-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&typec5v_pwren>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "vbus5v0_typec";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_pcie2x1l0: vcc3v3-pcie2x1l0-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie_m2_1_pwren>;
+               regulator-name = "vcc3v3_pcie2x1l0";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_pcie30: vcc3v3-pcie30-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio2 RK_PC5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie_m2_0_pwren>;
+               regulator-name = "vcc3v3_pcie30";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_sd_s0: vcc3v3-sd-s0-regulator {
+               compatible = "regulator-fixed";
+               gpio = <&gpio4 RK_PA5 GPIO_ACTIVE_LOW>;
+               regulator-boot-on;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "vcc3v3_sd_s0";
+               vin-supply = <&vcc_3v3_s3>;
+       };
+};
+
+&combphy0_ps {
+       status = "okay";
+};
+
+&combphy1_ps {
+       status = "okay";
+};
+
+&combphy2_psu {
+       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>;
+};
+
+&gpio0 {
+       gpio-line-names = /* GPIO0 A0-A7 */
+                         "", "", "", "",
+                         "", "", "", "",
+                         /* GPIO0 B0-B7 */
+                         "", "", "", "",
+                         "", "", "", "",
+                         /* GPIO0 C0-C7 */
+                         "", "", "", "",
+                         "HEADER_10", "HEADER_08", "HEADER_32", "",
+                         /* GPIO0 D0-D7 */
+                         "", "", "", "",
+                         "IR receiver [PWM3_IR_M0]", "", "", "";
+};
+
+&gpio1 {
+       gpio-line-names = /* GPIO1 A0-A7 */
+                         "HEADER_27", "HEADER_28", "", "",
+                         "", "", "", "HEADER_15",
+                         /* GPIO1 B0-B7 */
+                         "HEADER_26", "HEADER_21", "HEADER_19", "HEADER_23",
+                         "HEADER_24", "HEADER_22", "", "",
+                         /* GPIO1 C0-C7 */
+                         "", "", "", "",
+                         "", "", "", "",
+                         /* GPIO1 D0-D7 */
+                         "", "", "", "",
+                         "", "", "HEADER_05", "HEADER_03";
+};
+
+&gpio2 {
+       gpio-line-names = /* GPIO2 A0-A7 */
+                         "", "", "", "",
+                         "", "", "", "",
+                         /* GPIO2 B0-B7 */
+                         "", "", "", "",
+                         "", "", "", "",
+                         /* GPIO2 C0-C7 */
+                         "", "CSI1_11", "CSI1_12", "",
+                         "", "", "", "",
+                         /* GPIO2 D0-D7 */
+                         "", "", "", "",
+                         "", "", "", "";
+};
+
+&gpio3 {
+       gpio-line-names = /* GPIO3 A0-A7 */
+                         "HEADER_35", "HEADER_38", "HEADER_40", "HEADER_36",
+                         "HEADER_37", "", "DSI0_12", "",
+                         /* GPIO3 B0-B7 */
+                         "HEADER_33", "DSI0_10", "HEADER_07", "HEADER_16",
+                         "HEADER_18", "HEADER_29", "HEADER_31", "HEADER_12",
+                         /* GPIO3 C0-C7 */
+                         "DSI0_08", "DSI0_14", "HEADER_11", "HEADER_13",
+                         "", "", "", "",
+                         /* GPIO3 D0-D7 */
+                         "", "", "", "",
+                         "", "DSI1_10", "", "";
+};
+
+&gpio4 {
+       gpio-line-names = /* GPIO4 A0-A7 */
+                         "DSI1_08", "DSI1_14", "", "DSI1_12",
+                         "", "", "", "",
+                         /* GPIO4 B0-B7 */
+                         "", "", "", "",
+                         "", "", "", "",
+                         /* GPIO4 C0-C7 */
+                         "", "", "", "",
+                         "CSI0_11", "CSI0_12", "", "",
+                         /* GPIO4 D0-D7 */
+                         "", "", "", "",
+                         "", "", "", "";
+};
+
+&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 = <&vcc4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_cpu_big1_s0: regulator@43 {
+               compatible = "rockchip,rk8603", "rockchip,rk8602";
+               reg = <0x43>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big1_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&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 = <&vcc4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c6 {
+       clock-frequency = <200000>;
+       status = "okay";
+
+       fusb302: typec-portc@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&usbc0_int>;
+               pinctrl-names = "default";
+               vbus-supply = <&vbus5v0_typec>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       data-role = "dual";
+                       label = "USB-C";
+                       power-role = "source";
+                       source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       usbc0_hs: endpoint {
+                                               remote-endpoint = <&usb_host0_xhci_drd_sw>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       usbc0_ss: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_typec_ss>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       usbc0_sbu: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_typec_sbu>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       hym8563: rtc@51 {
+               compatible = "haoyu,hym8563";
+               reg = <0x51>;
+               #clock-cells = <0>;
+               clock-output-names = "hym8563";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hym8563_int>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
+               wakeup-source;
+       };
+};
+
+&i2c7 {
+       clock-frequency = <200000>;
+       status = "okay";
+
+       rt5616: codec@1b {
+               compatible = "realtek,rt5616";
+               reg = <0x1b>;
+               clocks = <&cru I2S0_8CH_MCLKOUT>;
+               clock-names = "mclk";
+               #sound-dai-cells = <0>;
+               assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
+               assigned-clock-rates = <12288000>;
+
+               port {
+                       rt5616_p0_0: endpoint {
+                               remote-endpoint = <&i2s0_8ch_p0_0>;
+                       };
+               };
+       };
+
+       /* connected with MIPI-CSI1 */
+};
+
+&i2c8 {
+       pinctrl-0 = <&i2c8m2_xfer>;
+};
+
+&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 = <&rt5616_p0_0>;
+               };
+       };
+};
+
+&pcie2x1l0 {
+       reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc_3v3_pcie20>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_0_rst>;
+       status = "okay";
+};
+
+&pcie2x1l1 {
+       reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie2x1l0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_1_rst>;
+       status = "okay";
+};
+
+&pcie2x1l2 {
+       reset-gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc_3v3_pcie20>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_2_rst>;
+       status = "okay";
+};
+
+&pcie30phy {
+       status = "okay";
+};
+
+&pcie3x4 {
+       reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie30>;
+       status = "okay";
+};
+
+&pinctrl {
+       gpio-leds {
+               sys_led_pin: sys-led-pin {
+                       rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usr_led_pin: usr-led-pin {
+                       rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       headphone {
+               hp_det: hp-det {
+                       rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       hym8563 {
+               hym8563_int: hym8563-int {
+                       rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       ir-receiver {
+               ir_receiver_pin: ir-receiver-pin {
+                       rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie {
+               pcie2_0_rst: pcie2-0-rst {
+                       rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie2_1_rst: pcie2-1-rst {
+                       rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie2_2_rst: pcie2-2-rst {
+                       rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie_m2_0_pwren: pcie-m20-pwren {
+                       rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie_m2_1_pwren: pcie-m21-pwren {
+                       rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               typec5v_pwren: typec5v-pwren {
+                       rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usbc0_int: usbc0-int {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&pwm1 {
+       pinctrl-0 = <&pwm1m1_pins>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&avcc_1v8_s0>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       no-sdio;
+       no-sd;
+       non-removable;
+       max-frequency = <200000000>;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       no-mmc;
+       no-sdio;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sd_s0>;
+       vqmmc-supply = <&vccio_sd_s0>;
+       status = "okay";
+};
+
+/* optional on non-LTS, populated on LTS version */
+&sfc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&fspim1_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>;
+       };
+};
+
+&spi2 {
+       status = "okay";
+       assigned-clocks = <&cru CLK_SPI2>;
+       assigned-clock-rates = <200000000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
+       num-cs = <1>;
+
+       pmic@0 {
+               compatible = "rockchip,rk806";
+               spi-max-frequency = <1000000>;
+               reg = <0x0>;
+
+               interrupt-parent = <&gpio0>;
+               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
+                           <&rk806_dvs2_null>, <&rk806_dvs3_null>;
+
+               system-power-controller;
+
+               vcc1-supply = <&vcc4v0_sys>;
+               vcc2-supply = <&vcc4v0_sys>;
+               vcc3-supply = <&vcc4v0_sys>;
+               vcc4-supply = <&vcc4v0_sys>;
+               vcc5-supply = <&vcc4v0_sys>;
+               vcc6-supply = <&vcc4v0_sys>;
+               vcc7-supply = <&vcc4v0_sys>;
+               vcc8-supply = <&vcc4v0_sys>;
+               vcc9-supply = <&vcc4v0_sys>;
+               vcc10-supply = <&vcc4v0_sys>;
+               vcc11-supply = <&vcc_2v0_pldo_s3>;
+               vcc12-supply = <&vcc4v0_sys>;
+               vcc13-supply = <&vcc_1v1_nldo_s3>;
+               vcc14-supply = <&vcc_1v1_nldo_s3>;
+               vcca-supply = <&vcc4v0_sys>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl1";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs2_null: dvs2-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs3_null: dvs3-null-pins {
+                       pins = "gpio_pwrctrl3";
+                       function = "pin_fun0";
+               };
+
+               regulators {
+                       vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_gpu_s0";
+                               regulator-enable-ramp-delay = <400>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_cpu_lit_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_log_s0: dcdc-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_log_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_vdenc_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdd2_ddr_s3: dcdc-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vdd2_ddr_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_2v0_pldo_s3: dcdc-reg7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_2v0_pldo_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2000000>;
+                               };
+                       };
+
+                       vcc_3v3_s3: dcdc-reg8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vddq_ddr_s0: dcdc-reg9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vddq_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3: dcdc-reg10 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avcc_1v8_s0: pldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "avcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s0: pldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avdd_1v2_s0: pldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-name = "avdd_1v2_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3_s0: pldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vcc_3v3_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vccio_sd_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       pldo6_s3: pldo-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "pldo6_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_ddr_pll_s0: nldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_ddr_pll_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       avdd_0v75_s0: nldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "avdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v85_s0: nldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_0v85_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v75_s0: nldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
+
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
+&u2phy2_host {
+       status = "okay";
+};
+
+&u2phy3_host {
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&usbdp_phy0 {
+       mode-switch;
+       orientation-switch;
+       sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
+       sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               usbdp_phy0_typec_ss: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_ss>;
+               };
+
+               usbdp_phy0_typec_sbu: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&usbc0_sbu>;
+               };
+       };
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "host";
+       status = "okay";
+       usb-role-switch;
+
+       port {
+               usb_host0_xhci_drd_sw: endpoint {
+                       remote-endpoint = <&usbc0_hs>;
+               };
+       };
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
index e74871491ef56b76e22877dc541772aec65bd30a..dd4c79bcad87f0ec584d228671d3cf4de0ab3928 100644 (file)
                };
        };
 
+       rfkill {
+               compatible = "rfkill-gpio";
+               label = "rfkill-pcie-wlan";
+               radio-type = "wlan";
+               shutdown-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
+       };
+
        sound {
                compatible = "simple-audio-card";
                pinctrl-names = "default";
                compatible = "everest,es8388";
                reg = <0x11>;
                clocks = <&cru I2S0_8CH_MCLKOUT>;
-               clock-names = "mclk";
                AVDD-supply = <&vcc_1v8_s0>;
                DVDD-supply = <&vcc_1v8_s0>;
                HPVDD-supply = <&vcc_3v3_s0>;
index e4a20cda65ed63f43892a535d536672aae97496c..b38dab009cccaa072737920458bc765be6a3f6ac 100644 (file)
                assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
                assigned-clock-rates = <12288000>;
                clocks = <&cru I2S0_8CH_MCLKOUT>;
-               clock-names = "mclk";
                AVDD-supply = <&avcc_1v8_codec_s0>;
                DVDD-supply = <&avcc_1v8_codec_s0>;
                HPVDD-supply = <&vcc_3v3_s0>;
index 966bbc582d89b89c0c4847132ce789d6af1cb847..6bd06e46a101d096ca76e77046df8b89b9194f52 100644 (file)
        };
 
        cooling-maps {
-               map1 {
+               map0 {
                        trip = <&package_fan0>;
                        cooling-device = <&fan THERMAL_NO_LIMIT 1>;
                };
 
-               map2 {
+               map1 {
                        trip = <&package_fan1>;
                        cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
                };
index d0021524e7f958016b322182ed5b9d139d95f8fa..328dcb894ccb2d9a6a9febeef9b409c978f93cba 100644 (file)
                                regulator-boot-on;
                                regulator-min-microvolt = <550000>;
                                regulator-max-microvolt = <950000>;
-                               regulator-init-microvolt = <750000>;
                                regulator-ramp-delay = <12500>;
 
                                regulator-state-mem {
index dbaa94ca69f47628a97d263684ad62cf746b407f..432133251e318be083b0b8c008afd81e88e6e598 100644 (file)
                pinctrl-names = "default";
                pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
                            <&rk806_dvs2_null>, <&rk806_dvs3_null>;
+               system-power-controller;
 
                vcc1-supply = <&vcc5v0_sys>;
                vcc2-supply = <&vcc5v0_sys>;
diff --git a/src/arm64/rockchip/rk3588s-gameforce-ace.dts b/src/arm64/rockchip/rk3588s-gameforce-ace.dts
new file mode 100644 (file)
index 0000000..467f695
--- /dev/null
@@ -0,0 +1,1237 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/usb/pd.h>
+#include "rk3588s.dtsi"
+
+/ {
+       model = "Gameforce Ace";
+       chassis-type = "handset";
+       compatible = "gameforce,ace", "rockchip,rk3588s";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc;
+               mmc2 = &sdio;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       adc_keys: adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <60>;
+
+               button-vol-up {
+                       label = "VOLUMEUP";
+                       linux,code = <KEY_VOLUMEUP>;
+                       press-threshold-microvolt = <17000>;
+               };
+
+               button-vol-down {
+                       label = "VOLUMEDOWN";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       press-threshold-microvolt = <417000>;
+               };
+       };
+
+       /* Joystick range values based on hardware observation. */
+       adc_joystick: adc-joystick {
+               compatible = "adc-joystick";
+               io-channels = <&saradc 2>, <&saradc 3>,
+                             <&saradc 4>, <&saradc 5>;
+               poll-interval = <60>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               axis@0 {
+                       reg = <0>;
+                       abs-flat = <40>;
+                       abs-fuzz = <30>;
+                       abs-range = <0 4095>;
+                       linux,code = <ABS_RX>;
+               };
+
+               axis@1 {
+                       reg = <1>;
+                       abs-flat = <40>;
+                       abs-fuzz = <30>;
+                       abs-range = <0 4095>;
+                       linux,code = <ABS_RY>;
+               };
+
+               axis@2 {
+                       reg = <2>;
+                       abs-flat = <40>;
+                       abs-fuzz = <30>;
+                       abs-range = <0 4095>;
+                       linux,code = <ABS_Y>;
+               };
+
+               axis@3 {
+                       reg = <3>;
+                       abs-flat = <40>;
+                       abs-fuzz = <30>;
+                       abs-range = <0 4095>;
+                       linux,code = <ABS_X>;
+               };
+       };
+
+       /* Trigger range values based on hardware observation. */
+       adc_triggers: adc-trigger {
+               compatible = "adc-joystick";
+               io-channels = <&ti_adc 6>,
+                             <&ti_adc 7>;
+               poll-interval = <60>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               axis@0 {
+                       reg = <0>;
+                       abs-flat = <15>;
+                       abs-fuzz = <15>;
+                       abs-range = <890 1530>;
+                       linux,code = <ABS_HAT2X>;
+               };
+
+               axis@1 {
+                       reg = <1>;
+                       abs-flat = <15>;
+                       abs-fuzz = <15>;
+                       abs-range = <1010 1550>;
+                       linux,code = <ABS_HAT2Y>;
+               };
+       };
+
+       analog-sound {
+               compatible = "simple-audio-card";
+               pinctrl-0 = <&hp_detect>;
+               pinctrl-names = "default";
+               simple-audio-card,aux-devs = <&amp_headphone>, <&amp_speaker>;
+               simple-audio-card,bitclock-master = <&masterdai>;
+               simple-audio-card,format = "i2s";
+               simple-audio-card,frame-master = <&masterdai>;
+               simple-audio-card,hp-det-gpio = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,name = "rockchip,es8388-codec";
+               simple-audio-card,pin-switches = "Headphones", "Speaker";
+               simple-audio-card,routing =
+                       "Speaker Amplifier INL", "LOUT2",
+                       "Speaker Amplifier INR", "ROUT2",
+                       "Speaker", "Speaker Amplifier OUTL",
+                       "Speaker", "Speaker Amplifier OUTR",
+                       "Headphones Amplifier INL", "LOUT1",
+                       "Headphones Amplifier INR", "ROUT1",
+                       "Headphones", "Headphones Amplifier OUTL",
+                       "Headphones", "Headphones Amplifier OUTR",
+                       "LINPUT1", "Microphone Jack",
+                       "RINPUT1", "Microphone Jack",
+                       "LINPUT2", "Onboard Microphone",
+                       "RINPUT2", "Onboard Microphone";
+               simple-audio-card,widgets =
+                       "Microphone", "Microphone Jack",
+                       "Microphone", "Onboard Microphone",
+                       "Headphone", "Headphones",
+                       "Speaker", "Speaker";
+
+               masterdai: simple-audio-card,codec {
+                       sound-dai = <&es8388>;
+                       system-clock-frequency = <12288000>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s0_8ch>;
+               };
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               enable-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&lcd_bl_en>;
+               pinctrl-names = "default";
+               pwms = <&pwm13 0 25000 PWM_POLARITY_INVERTED>;
+       };
+
+       battery: battery {
+               compatible = "simple-battery";
+               charge-full-design-microamp-hours = <3700000>;
+               constant-charge-current-max-microamp = <2500000>;
+               constant-charge-voltage-max-microvolt = <8750000>;
+               voltage-min-design-microvolt = <7400000>;
+       };
+
+       gpio_keys: gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&btn_pins_ctrl>;
+               pinctrl-names = "default";
+
+               button-a {
+                       gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>;
+                       label = "EAST";
+                       linux,code = <BTN_EAST>;
+               };
+
+               button-b {
+                       gpios = <&gpio1 RK_PA5 GPIO_ACTIVE_LOW>;
+                       label = "SOUTH";
+                       linux,code = <BTN_SOUTH>;
+               };
+
+               button-down {
+                       gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-DOWN";
+                       linux,code = <BTN_DPAD_DOWN>;
+               };
+
+               button-home {
+                       gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_LOW>;
+                       label = "FUNCTION";
+                       linux,code = <BTN_MODE>;
+               };
+
+               button-l1 {
+                       gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_LOW>;
+                       label = "L1";
+                       linux,code = <BTN_TL>;
+               };
+
+               button-left {
+                       gpios = <&gpio1 RK_PD7 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-LEFT";
+                       linux,code = <BTN_DPAD_LEFT>;
+               };
+
+               button-menu {
+                       gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>;
+                       label = "HOME";
+                       linux,code = <KEY_HOME>;
+               };
+
+               button-r1 {
+                       gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_LOW>;
+                       label = "R1";
+                       linux,code = <BTN_TR>;
+               };
+
+               button-right {
+                       gpios = <&gpio1 RK_PB7 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-RIGHT";
+                       linux,code = <BTN_DPAD_RIGHT>;
+               };
+
+               button-select {
+                       gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_LOW>;
+                       label = "SELECT";
+                       linux,code = <BTN_SELECT>;
+               };
+
+               button-start {
+                       gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>;
+                       label = "START";
+                       linux,code = <BTN_START>;
+               };
+
+               button-thumbl {
+                       gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_LOW>;
+                       label = "THUMBL";
+                       linux,code = <BTN_THUMBL>;
+               };
+
+               button-thumbr {
+                       gpios = <&gpio1 RK_PD6 GPIO_ACTIVE_LOW>;
+                       label = "THUMBR";
+                       linux,code = <BTN_THUMBR>;
+               };
+
+               button-up {
+                       gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-UP";
+                       linux,code = <BTN_DPAD_UP>;
+               };
+
+               button-x {
+                       gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>;
+                       label = "NORTH";
+                       linux,code = <BTN_NORTH>;
+               };
+
+               button-y {
+                       gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_LOW>;
+                       label = "WEST";
+                       linux,code = <BTN_WEST>;
+               };
+       };
+
+       gpio_leds: gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins>;
+
+               green_led: led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_STATUS;
+               };
+
+               red_led: led-1 {
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_CHARGING;
+               };
+       };
+
+       amp_headphone: headphone-amplifier {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&headphone_amplifier_en>;
+               pinctrl-names = "default";
+               sound-name-prefix = "Headphones Amplifier";
+       };
+
+       pwm_fan: pwm-fan {
+               compatible = "pwm-fan";
+               #cooling-cells = <2>;
+               cooling-levels = <0 120 150 180 210 240 255>;
+               fan-supply = <&vcc5v0_sys>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <RK_PB2 IRQ_TYPE_EDGE_RISING>;
+               pulses-per-revolution = <4>;
+               pwms = <&pwm12 0 50000 PWM_POLARITY_INVERTED>;
+       };
+
+       pwm_gpio33: pwm-33 {
+               compatible = "pwm-gpio";
+               gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&vib_right_h>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+       };
+
+       pwm_gpio132: pwm-132 {
+               compatible = "pwm-gpio";
+               gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&vib_left_h>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clock-names = "ext_clock";
+               clocks = <&rtc_hym8563>;
+               pinctrl-0 = <&wifi_enable_h>;
+               pinctrl-names = "default";
+               post-power-on-delay-ms = <200>;
+               power-off-delay-us = <5000000>;
+               reset-gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
+       };
+
+       amp_speaker: speaker-amplifier {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&speaker_amplifier_en>;
+               pinctrl-names = "default";
+               sound-name-prefix = "Speaker Amplifier";
+               VCC-supply = <&vcc5v0_spk>;
+       };
+
+       vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <1100000>;
+               regulator-min-microvolt = <1100000>;
+               regulator-name = "vcc_1v1_nldo_s3";
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_lcd0_n: vcc3v3-lcd0-n-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&vcc_lcd_h>;
+               pinctrl-names = "default";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "vcc3v3_lcd0_n";
+               vin-supply = <&vcc_3v3_s3>;
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vcc_3v3_sd_s0: vcc-3v3-sd-s0-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&sd_s0_pwr>;
+               pinctrl-names = "default";
+               regulator-max-microvolt = <3000000>;
+               regulator-min-microvolt = <3000000>;
+               regulator-name = "vcc_3v3_sd_s0";
+               vin-supply = <&vcc_3v3_s3>;
+       };
+
+       vcc5v0_spk: vcc5v0-spk-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&vcc5v0_spk_pwr>;
+               pinctrl-names = "default";
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "vcc5v0_spk";
+               vin-supply = <&vcc5v0_sys>;
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vcc5v0_sys: vcc5v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "vcc5v0_sys";
+       };
+
+       vibrator_l: vibrator-l {
+               compatible = "pwm-vibrator";
+               pwm-names = "enable";
+               pwms = <&pwm_gpio132 0 20000000 0>;
+       };
+
+       vibrator_r: vibrator-r {
+               compatible = "pwm-vibrator";
+               pwm-names = "enable";
+               pwms = <&pwm_gpio33 0 20000000 0>;
+       };
+};
+
+&combphy2_psu {
+       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>;
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-0 = <&i2c0m2_xfer>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       vdd_cpu_big0_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-max-microvolt = <1050000>;
+               regulator-min-microvolt = <550000>;
+               regulator-name = "vdd_cpu_big0_s0";
+               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-max-microvolt = <1050000>;
+               regulator-min-microvolt = <550000>;
+               regulator-name = "vdd_cpu_big1_s0";
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       vdd_npu_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-max-microvolt = <950000>;
+               regulator-min-microvolt = <550000>;
+               regulator-name = "vdd_npu_s0";
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c3 {
+       status = "okay";
+
+       touchscreen@14 {
+               compatible = "goodix,gt911";
+               reg = <0x14>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <RK_PA6 IRQ_TYPE_LEVEL_LOW>;
+               irq-gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&touch_int>, <&touch_rst>;
+               pinctrl-names = "default";
+               reset-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;
+               touchscreen-inverted-x;
+               touchscreen-size-x = <1080>;
+               touchscreen-size-y = <1920>;
+               touchscreen-swapped-x-y;
+       };
+};
+
+&i2c4 {
+       pinctrl-0 = <&i2c4m2_xfer>;
+       status = "okay";
+
+       ti_adc: adc@48 {
+               compatible = "ti,ads1015";
+               reg = <0x48>;
+               #address-cells = <1>;
+               #io-channel-cells = <1>;
+               #size-cells = <0>;
+
+               channel@4 {
+                       reg = <4>;
+               };
+
+               channel@5 {
+                       reg = <5>;
+               };
+
+               channel@6 {
+                       reg = <6>;
+               };
+
+               channel@7 {
+                       reg = <7>;
+               };
+       };
+
+       imu@68 {
+               compatible = "invensense,mpu6880";
+               reg = <0x68>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PD3 IRQ_TYPE_EDGE_RISING>;
+       };
+};
+
+&i2c6 {
+       pinctrl-0 = <&i2c6m3_xfer>;
+       status = "okay";
+
+       rtc_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-0 = <&hym8563_int>, <&clk32k_in>;
+               pinctrl-names = "default";
+               wakeup-source;
+       };
+
+       /* Battery profile from BSP device tree. */
+       battery@62 {
+               compatible = "cellwise,cw2015";
+               reg = <0x62>;
+
+               cellwise,battery-profile = /bits/ 8
+                       <0x18 0x0A 0x76 0x6A 0x6A 0x6A 0x68 0x66
+                        0x62 0x5E 0x5A 0x58 0x5F 0x59 0x46 0x3D
+                        0x35 0x2D 0x28 0x21 0x29 0x38 0x44 0x50
+                        0x1A 0x85 0x07 0xAE 0x14 0x28 0x48 0x56
+                        0x66 0x66 0x66 0x6A 0x3E 0x1A 0x6C 0x3D
+                        0x09 0x38 0x1A 0x49 0x7B 0x96 0xA2 0x15
+                        0x3B 0x77 0x9A 0xB1 0x80 0x87 0xB0 0xCB
+                        0x2F 0x00 0x64 0xA5 0xB5 0x1C 0xF0 0x49>;
+               cellwise,monitor-interval-ms = <5000>;
+               monitored-battery = <&battery>;
+               status = "okay";
+       };
+};
+
+&i2c7 {
+       status = "okay";
+
+       es8388: audio-codec@11 {
+               compatible = "everest,es8388";
+               reg = <0x11>;
+               assigned-clock-rates = <12288000>;
+               assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
+               AVDD-supply = <&vcc_3v3_s3>;
+               clocks = <&cru I2S0_8CH_MCLKOUT>;
+               DVDD-supply = <&vcc_1v8_s3>;
+               HPVDD-supply = <&vcc_3v3_s3>;
+               PVDD-supply = <&vcc_1v8_s3>;
+               #sound-dai-cells = <0>;
+       };
+};
+
+&i2s0_8ch {
+       pinctrl-0 = <&i2s0_lrck
+                    &i2s0_mclk
+                    &i2s0_sclk
+                    &i2s0_sdi0
+                    &i2s0_sdo0>;
+       status = "okay";
+};
+
+&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 = <&pwm_fan THERMAL_NO_LIMIT 1>;
+               };
+
+               map2 {
+                       trip = <&package_fan1>;
+                       cooling-device = <&pwm_fan 2 THERMAL_NO_LIMIT>;
+               };
+       };
+};
+
+/*
+ * Attempts to use an M.2 SATA in this slot worked intermittently
+ * with the correct nodes enabled in device-tree, but eventually
+ * resulted in a destroyed board. Advise caution.
+ */
+&pcie2x1l1 {
+       pinctrl-0 = <&pcie_rst>;
+       pinctrl-names = "default";
+       reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&pinctrl {
+       audio-amplifier {
+               headphone_amplifier_en: headphone-amplifier-en {
+                       rockchip,pins =
+                               <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               hp_detect: headphone-detect {
+                       rockchip,pins =
+                               <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               speaker_amplifier_en: speaker-amplifier-en {
+                       rockchip,pins =
+                               <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       bt {
+               bt_enable_h: bt-enable-h {
+                       rockchip,pins =
+                               <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_host_wake_l: bt-host-wake-l {
+                       rockchip,pins =
+                               <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               bt_wake_l: bt-wake-l {
+                       rockchip,pins =
+                               <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       charger {
+               boost_enable_h: boost-enable-h {
+                       rockchip,pins =
+                               <4 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               charger_int_h: charger-int-h {
+                       rockchip,pins =
+                               <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       hym8563 {
+               hym8563_int: hym8563-int {
+                       rockchip,pins =
+                               <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       gpio-btns {
+               btn_pins_ctrl: btn-pins-ctrl {
+                       rockchip,pins =
+                               <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       gpio-leds {
+               led_pins: led-pins {
+                       rockchip,pins =
+                               <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       lcd_bl_en {
+               lcd_bl_en: lcd-bl-en {
+                       rockchip,pins =
+                               <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie-pins {
+               pcie_rst: pcie-rst {
+                       rockchip,pins =
+                               <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sd-pwr {
+               sd_s0_pwr: sd-s0-pwr {
+                       rockchip,pins =
+                               <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       spk-pwr {
+               vcc5v0_spk_pwr: vcc5v0-spk-pwr {
+                       rockchip,pins =
+                               <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       touch {
+               touch_int: touch-int {
+                       rockchip,pins =
+                               <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               touch_rst: touch-rst {
+                       rockchip,pins =
+                               <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb-typec {
+               usbc0_int: usbc0-int {
+                       rockchip,pins =
+                               <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       vcc3v3-lcd {
+               vcc_lcd_h: vcc-lcd-h {
+                       rockchip,pins =
+                               <4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       vibrator {
+               vib_left_h: vib-left-h {
+                       rockchip,pins =
+                               <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               vib_right_h: vib-right-h {
+                       rockchip,pins =
+                               <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+
+       wifi {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins =
+                               <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               wifi_host_wake_irq: wifi-host-wake-irq {
+                       rockchip,pins =
+                               <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+};
+
+&pwm12 {
+       pinctrl-0 = <&pwm12m1_pins>;
+       status = "okay";
+};
+
+&pwm13 {
+       pinctrl-0 = <&pwm13m1_pins>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8_s0>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       no-sd;
+       no-sdio;
+       non-removable;
+       status = "okay";
+};
+
+&sdio {
+       #address-cells = <1>;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       disable-wp;
+       keep-power-in-suspend;
+       max-frequency = <150000000>;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       no-mmc;
+       no-sd;
+       sd-uhs-sdr104;
+       #size-cells = <0>;
+       status = "okay";
+
+       brcmf: wifi@1 {
+               compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wake";
+               pinctrl-0 = <&wifi_host_wake_irq>;
+               pinctrl-names = "default";
+       };
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       disable-wp;
+       max-frequency = <150000000>;
+       no-sdio;
+       no-mmc;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_3v3_sd_s0>;
+       vqmmc-supply = <&vccio_sd_s0>;
+       status = "okay";
+};
+
+&spi2 {
+       #address-cells = <1>;
+       assigned-clocks = <&cru CLK_SPI2>;
+       assigned-clock-rates = <200000000>;
+       num-cs = <1>;
+       pinctrl-0 = <&spi2m2_pins>, <&spi2m2_cs0>;
+       pinctrl-names = "default";
+       #size-cells = <0>;
+       status = "okay";
+
+       pmic@0 {
+               compatible = "rockchip,rk806";
+               reg = <0x0>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
+                           <&rk806_dvs2_null>, <&rk806_dvs3_null>;
+               pinctrl-names = "default";
+               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: dcdc-reg1 {
+                               regulator-boot-on;
+                               regulator-enable-ramp-delay = <400>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-min-microvolt = <550000>;
+                               regulator-name = "vdd_gpu_s0";
+                               regulator-ramp-delay = <12500>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_lit_s0: dcdc-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <950000>;
+                               regulator-min-microvolt = <550000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_cpu_lit_s0";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_logic_s0: dcdc-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <750000>;
+                               regulator-min-microvolt = <675000>;
+                               regulator-name = "vdd_logic_s0";
+                               regulator-ramp-delay = <12500>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_vdenc_s0: dcdc-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <950000>;
+                               regulator-min-microvolt = <550000>;
+                               regulator-name = "vdd_vdenc_s0";
+                               regulator-ramp-delay = <12500>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-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-max-microvolt = <2000000>;
+                               regulator-min-microvolt = <2000000>;
+                               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-max-microvolt = <3300000>;
+                               regulator-min-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-max-microvolt = <1800000>;
+                               regulator-min-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-max-microvolt = <1800000>;
+                               regulator-min-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-max-microvolt = <1800000>;
+                               regulator-min-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-max-microvolt = <1200000>;
+                               regulator-min-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-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3_s0";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "vccio_sd_s0";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3_pldo6: pldo-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s3_pldo6";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <750000>;
+                               regulator-min-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-max-microvolt = <850000>;
+                               regulator-min-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-max-microvolt = <837500>;
+                               regulator-min-microvolt = <837500>;
+                               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";
+};
+
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
+
+&uart9 {
+       pinctrl-0 = <&uart9m2_xfer>, <&uart9m2_ctsn>, <&uart9m2_rtsn>;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "brcm,bcm4345c5";
+               clocks = <&rtc_hym8563>;
+               clock-names = "lpo";
+               device-wakeup-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <RK_PB0 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-0 = <&bt_enable_h>, <&bt_host_wake_l>, <&bt_wake_l>;
+               pinctrl-names = "default";
+               shutdown-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
+       };
+};
index d8c50fdcca3b57e50d70325e1d7a7efad2e314bd..8ba111d9283fefcf77093be7f74705d06f67edfa 100644 (file)
                assigned-clock-rates = <12288000>;
                assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
                AVDD-supply = <&vcc_3v3_s3>;
-               clock-names = "mclk";
                clocks = <&cru I2S0_8CH_MCLKOUT>;
                DVDD-supply = <&vcc_1v8_s3>;
                HPVDD-supply = <&vcc_3v3_s3>;
diff --git a/src/arm64/rockchip/rk3588s-odroid-m2.dts b/src/arm64/rockchip/rk3588s-odroid-m2.dts
new file mode 100644 (file)
index 0000000..63d9123
--- /dev/null
@@ -0,0 +1,903 @@
+// 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/usb/pd.h>
+#include "rk3588s.dtsi"
+
+/ {
+       model = "Hardkernel ODROID-M2";
+       compatible = "hardkernel,odroid-m2", "rockchip,rk3588s";
+
+       aliases {
+               ethernet0 = &gmac1;
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwr_led>, <&sys_led>;
+
+               led_pwr: led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "on";
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+
+               led_sys: led-1 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       default-state = "on";
+                       function = LED_FUNCTION_HEARTBEAT;
+                       gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       fan: pwm-fan {
+               compatible = "pwm-fan";
+               #cooling-cells = <2>;
+               cooling-levels = <0 192 224 255>;
+               fan-supply = <&vcc5v0_sys>;
+               pwms = <&pwm0 0 22222 0>;
+       };
+
+       vcc_1v1_nldo_s3: regulator-1v1-vcc-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 = <&vcc4v0_sys>;
+       };
+
+       vcc3v3_lcd: regulator-3v3-vcc-lcd {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_pwren>;
+               regulator-name = "vcc3v3_lcd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_3v3_s3>;
+       };
+
+       vcc3v3_pcie: regulator-3v3-vcc-pcie {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie_pwren>;
+               regulator-name = "vcc3v3_pcie";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_3v3_s3>;
+       };
+
+       vcc_3v3_s0: regulator-3v3-vcc-s0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_3v3_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_3v3_s3>;
+       };
+
+       vcc4v0_sys: regulator-4v0-vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc4v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <4800000>;
+               regulator-max-microvolt = <4800000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       vcc5v0_sys: regulator-5v0-vcc-sys {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_pwren>;
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       vcc5v0_usb2_host: regulator-5v0-vcc-usb2-host {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb2_host_pwren>;
+               regulator-name = "vcc5v0_usb2_host";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb3_host: regulator-5v0-vcc-usb3-host {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb3_host_pwren>;
+               regulator-name = "vcc5v0_usb3_host";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb3_typec: regulator-5v0-vcc-usb3-typec {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb3_typec_pwren>;
+               regulator-name = "vcc5v0_usb3_typec";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcca: regulator-5v0-vcca {
+               compatible = "regulator-fixed";
+               regulator-name = "vcca";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       vcc12v_dcin: regulator-12v0-vcc-dcin {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc12v_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+};
+
+&combphy0_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>;
+};
+
+&gmac1 {
+       clock_in_out = "output";
+       phy-handle = <&rgmii_phy1>;
+       phy-mode = "rgmii-id";
+       phy-supply = <&vcc_3v3_s0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1_miim
+                    &gmac1_tx_bus2
+                    &gmac1_rx_bus2
+                    &gmac1_rgmii_clk
+                    &gmac1_rgmii_bus
+                    &gmac1_clkinout>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0m2_xfer>;
+       status = "okay";
+
+       vdd_cpu_big0_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big0_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_cpu_big1_s0: regulator@43 {
+               compatible = "rockchip,rk8603", "rockchip,rk8602";
+               reg = <0x43>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big1_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&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 = <&vcc4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c8 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c8m2_xfer>;
+       status = "okay";
+
+       usbc0: usb-typec@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usbc0_int>;
+               vbus-supply = <&vcc5v0_usb3_typec>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       data-role = "dual";
+                       label = "USB-C";
+                       op-sink-microwatt = <1000000>;
+                       power-role = "dual";
+                       sink-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       try-power-role = "source";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usbc0_role_switch: endpoint {
+                                               remote-endpoint = <&usb_host0_xhci_role_switch>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usbc0_orientation_switch: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_orientation_switch>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usbc0_dp_altmode_mux: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       pcf8563: rtc@51 {
+               compatible = "nxp,pcf8563";
+               reg = <0x51>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcf8563_int>;
+               wakeup-source;
+       };
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@1 {
+               compatible = "ethernet-phy-id001c.c916";
+               reg = <1>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&package_thermal {
+       polling-delay = <1000>;
+
+       trips {
+               package_fan0: package-fan0 {
+                       hysteresis = <2000>;
+                       temperature = <60000>;
+                       type = "active";
+               };
+       };
+
+       cooling-maps {
+               map0 {
+                       cooling-device = <&fan 1 THERMAL_NO_LIMIT>;
+                       trip = <&package_fan0>;
+               };
+       };
+};
+
+&pcie2x1l2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie20x1_pins>;
+       reset-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie>;
+       status = "okay";
+};
+
+&pinctrl {
+       lcd {
+               lcd_pwren: lcd-pwren {
+                       rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               pwr_led: pwr-led {
+                       rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               sys_led: sys-led {
+                       rockchip,pins = <1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie {
+               pcie20x1_pins: pcie20x1-pins {
+                       rockchip,pins =
+                               <1 RK_PA0 4 &pcfg_pull_none>,
+                               <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <1 RK_PA1 4 &pcfg_pull_none>;
+               };
+
+               pcie_pwren: pcie-pwren {
+                       rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       regulator {
+               vcc5v0_pwren: vcc5v0-pwren {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       rtc {
+               pcf8563_int: pcf8563-int {
+                       rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               usb2_host_pwren: usb2-host-pwren {
+                       rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usb3_host_pwren: usb3-host-pwren {
+                       rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usb3_typec_pwren: usb3-typec-pwren {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usbc0_int: usbc0-int {
+                       rockchip,pins = <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pwm0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm0m2_pins>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcca_1v8_s0>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       no-sd;
+       no-sdio;
+       non-removable;
+       vmmc-supply = <&vcc_3v3_s0>;
+       vqmmc-supply = <&vcc_1v8_s0>;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       max-frequency = <150000000>;
+       no-mmc;
+       no-sdio;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_3v3_s3>;
+       vqmmc-supply = <&vccio_sd_s0>;
+       status = "okay";
+};
+
+&spi2 {
+       assigned-clocks = <&cru CLK_SPI2>;
+       assigned-clock-rates = <200000000>;
+       num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2m2_cs0>, <&spi2m2_pins>;
+       status = "okay";
+
+       pmic@0 {
+               compatible = "rockchip,rk806";
+               reg = <0x0>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA7 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 = <&vcc4v0_sys>;
+               vcc2-supply = <&vcc4v0_sys>;
+               vcc3-supply = <&vcc4v0_sys>;
+               vcc4-supply = <&vcc4v0_sys>;
+               vcc5-supply = <&vcc4v0_sys>;
+               vcc6-supply = <&vcc4v0_sys>;
+               vcc7-supply = <&vcc4v0_sys>;
+               vcc8-supply = <&vcc4v0_sys>;
+               vcc9-supply = <&vcc4v0_sys>;
+               vcc10-supply = <&vcc4v0_sys>;
+               vcc11-supply = <&vcc_2v0_pldo_s3>;
+               vcc12-supply = <&vcc4v0_sys>;
+               vcc13-supply = <&vcc_1v1_nldo_s3>;
+               vcc14-supply = <&vcc_1v1_nldo_s3>;
+               vcca-supply = <&vcca>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl1";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs2_null: dvs2-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs3_null: dvs3-null-pins {
+                       pins = "gpio_pwrctrl3";
+                       function = "pin_fun0";
+               };
+
+               regulators {
+                       vdd_gpu_s0: dcdc-reg1 {
+                               regulator-name = "vdd_gpu_s0";
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-enable-ramp-delay = <400>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_lit_s0: dcdc-reg2 {
+                               regulator-name = "vdd_cpu_lit_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_logic_s0: dcdc-reg3 {
+                               regulator-name = "vdd_logic_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_vdenc_s0: dcdc-reg4 {
+                               regulator-name = "vdd_vdenc_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-name = "vdd_ddr_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdd2_ddr_s3: dcdc-reg6 {
+                               regulator-name = "vdd2_ddr_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_2v0_pldo_s3: dcdc-reg7 {
+                               regulator-name = "vdd_2v0_pldo_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2000000>;
+                               };
+                       };
+
+                       vcc_3v3_s3: dcdc-reg8 {
+                               regulator-name = "vcc_3v3_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vddq_ddr_s0: dcdc-reg9 {
+                               regulator-name = "vddq_ddr_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3: dcdc-reg10 {
+                               regulator-name = "vcc_1v8_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc_1v8_s0: pldo-reg1 {
+                               regulator-name = "vcc_1v8_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcca_1v8_s0: pldo-reg2 {
+                               regulator-name = "vcca_1v8_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdda_1v2_s0: pldo-reg3 {
+                               regulator-name = "vdda_1v2_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcca_3v3_s0: pldo-reg4 {
+                               regulator-name = "vcca_3v3_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-name = "vccio_sd_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3_pldo6: pldo-reg6 {
+                               regulator-name = "vcc_1v8_s3_pldo6";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-name = "vdd_0v75_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdda_ddr_pll_s0: nldo-reg2 {
+                               regulator-name = "vdda_ddr_pll_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdda_0v75_s0: nldo-reg3 {
+                               regulator-name = "vdda_0v75_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <837500>;
+                               regulator-max-microvolt = <837500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda_0v85_s0: nldo-reg4 {
+                               regulator-name = "vdda_0v85_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       /* Schematics show not in use */
+                       nldo-reg5 {
+                       };
+               };
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       phy-supply = <&vcc5v0_usb2_host>;
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy3_host {
+       phy-supply = <&vcc5v0_usb3_host>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               usb_host0_xhci_role_switch: endpoint {
+                       remote-endpoint = <&usbc0_role_switch>;
+               };
+       };
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host2_xhci {
+       status = "okay";
+};
+
+&usbdp_phy0 {
+       mode-switch;
+       orientation-switch;
+       sbu1-dc-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
+       sbu2-dc-gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               usbdp_phy0_orientation_switch: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_orientation_switch>;
+               };
+
+               usbdp_phy0_dp_altmode_mux: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&usbc0_dp_altmode_mux>;
+               };
+       };
+};
index 03ed48246d36a23e6405dd75bcc5bf55a4d6170c..294b99dd50da206823e7f5410df5f5082cdf0f37 100644 (file)
                regulator-max-microvolt = <12000000>;
        };
 
+       vcc3v3_wf: vcc3v3-wf-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_wf";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               enable-active-high;
+               gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&pow_en>;
+               pinctrl-names = "default";
+               vin-supply = <&vcc5v0_sys>;
+       };
+
        vcc5v0_host: vcc5v0-host-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vcc5v0_host";
        };
 };
 
+&combphy0_ps {
+       status = "okay";
+};
+
 &combphy2_psu {
        status = "okay";
 };
        };
 };
 
+&pcie2x1l2 {
+       pinctrl-0 = <&pcie20x1m0_pins>;
+       pinctrl-names = "default";
+       reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_wf>;
+       status = "okay";
+};
+
 &pinctrl {
        leds {
                io_led: io-led {
                };
        };
 
+       pcie {
+               pow_en: pow-en {
+                       rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        power {
                vcc_5v0_en: vcc-5v0-en {
                        rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
                        rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
-
-       wifibt {
-               wl_reset: wl-reset {
-                       rockchip,pins = <0 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
-               };
-
-               wl_dis: wl-dis {
-                       rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_output_high>;
-               };
-
-               wl_wake_host: wl-wake-host {
-                       rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>;
-               };
-
-               bt_dis: bt-dis {
-                       rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_output_high>;
-               };
-
-               bt_wake_host: bt-wake-host {
-                       rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
-               };
-       };
 };
 
 &pwm3 {
 
 &usb_host0_ehci {
        status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&wl_reset &wl_dis &wl_wake_host &bt_dis &bt_wake_host>;
 };
 
 &usb_host0_ohci {
index e15409f55f438eae94596d5dfc505b89d0615c09..12136e68dada6771eb0a6720dbf549ca4f1d035f 100644 (file)
@@ -1,9 +1,8 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
  * Spreadtrum SC2731 PMIC dts file
  *
  * Copyright (C) 2018, Spreadtrum Communications Inc.
- *
- * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  */
 
 &adi_bus {
@@ -95,7 +94,7 @@
                        nvmem-cells = <&adc_big_scale>, <&adc_small_scale>;
                };
 
-               fgu@a00 {
+               fuel-gauge@a00 {
                        compatible = "sprd,sc2731-fgu";
                        reg = <0xa00>;
                        bat-detect-gpio = <&pmic_eic 9 GPIO_ACTIVE_HIGH>;
index e5657c35cd10e1a8c2f7296eeab87b515ef6dc88..b98589ea5ac291b22849e706118aa4974ff54764 100644 (file)
@@ -1,9 +1,8 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
 /*
  * Spreadtrum SC9836 openphone board DTS file
  *
  * Copyright (C) 2014, Spreadtrum Communications Inc.
- *
- * This file is licensed under a dual GPLv2 or X11 license.
  */
 
 /dts-v1/;
index 8bb8a70966d2096a85bbb35d10c28bd7bf090d07..bc3fc9fc3d90ba6f94e44a4e716662eccbb75bfe 100644 (file)
@@ -1,9 +1,8 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
 /*
  * Spreadtrum SC9836 SoC DTS file
  *
  * Copyright (C) 2014, Spreadtrum Communications Inc.
- *
- * This file is licensed under a dual GPLv2 or X11 license.
  */
 
 #include "sharkl64.dtsi"
index 31952d361a8a9d0845a0675aa7eff455b0fb30fa..d2456d633c39cd3a24155e49cd2361f4b2cfcdac 100644 (file)
@@ -1,9 +1,8 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
  * Spreadtrum SC9860 SoC
  *
  * Copyright (C) 2016, Spreadtrum Communications Inc.
- *
- * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  */
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
index 53e5b77d70b5239f5dda5a055edb680ad66834f3..e5a2857721e2fb7be2ce29eb5a4d4ebf32aa8b63 100644 (file)
                        #size-cells = <2>;
                        ranges;
 
-                       sdio0: sdio@20300000 {
+                       sdio0: mmc@20300000 {
                                compatible = "sprd,sdhci-r11";
                                reg = <0 0x20300000 0 0x1000>;
                                interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
 
-                               clock-names = "sdio", "enable";
                                clocks = <&aon_clk CLK_SDIO0_2X>,
                                         <&apahb_gate CLK_SDIO0_EB>;
+                               clock-names = "sdio", "enable";
                                assigned-clocks = <&aon_clk CLK_SDIO0_2X>;
                                assigned-clock-parents = <&rpll CLK_RPLL_390M>;
 
                                no-mmc;
                        };
 
-                       sdio3: sdio@20600000 {
+                       sdio3: mmc@20600000 {
                                compatible = "sprd,sdhci-r11";
                                reg = <0 0x20600000 0 0x1000>;
                                interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
 
-                               clock-names = "sdio", "enable";
                                clocks = <&aon_clk CLK_EMMC_2X>,
                                         <&apahb_gate CLK_EMMC_EB>;
+                               clock-names = "sdio", "enable";
                                assigned-clocks = <&aon_clk CLK_EMMC_2X>;
                                assigned-clock-parents = <&rpll CLK_RPLL_390M>;
 
index 69f64e7fce7c4b7d7b4ab9a30f58ac4d5ce6fd22..bf58702c4e07dcbbee527c19fdb303f586739c47 100644 (file)
@@ -1,9 +1,8 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
 /*
  * Spreadtrum Sharkl64 platform DTS file
  *
  * Copyright (C) 2014, Spreadtrum Communications Inc.
- *
- * This file is licensed under a dual GPLv2 or X11 license.
  */
 
 / {
index 1ce3cbbd966844b1138ae3b829335077abb5c4ee..095b24a31313b8417b9e87919410c6c8f1cf43b1 100644 (file)
@@ -1,9 +1,8 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
  * Spreadtrum SP9860g board
  *
  * Copyright (C) 2017, Spreadtrum Communications Inc.
- *
- * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  */
 
 /dts-v1/;
index 4c080df487240ea1b9e6c8974912158a6869932a..efa14309cc4efe4962f3856f4b7ed1414c35446d 100644 (file)
                                compatible = "sprd,sdhci-r11";
                                reg = <0x1100000 0x1000>;
                                interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
-                               clock-names = "sdio", "enable";
                                clocks = <&ap_clk CLK_SDIO0_2X>,
                                         <&apapb_gate CLK_SDIO0_EB>;
+                               clock-names = "sdio", "enable";
                                assigned-clocks = <&ap_clk CLK_SDIO0_2X>;
                                assigned-clock-parents = <&pll1 CLK_RPLL>;
                                status = "disabled";
                                compatible = "sprd,sdhci-r11";
                                reg = <0x1400000 0x1000>;
                                interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
-                               clock-names = "sdio", "enable";
                                clocks = <&ap_clk CLK_EMMC_2X>,
                                         <&apapb_gate CLK_EMMC_EB>;
+                               clock-names = "sdio", "enable";
                                assigned-clocks = <&ap_clk CLK_EMMC_2X>;
                                assigned-clock-parents = <&pll1 CLK_RPLL>;
                                status = "disabled";
index 7068bfd2f4c34d8be940d08906624a570958c50a..a551e14ce8261fe7c6743e6b2aac0dd49d3c4597 100644 (file)
@@ -1,9 +1,8 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
  * Spreadtrum Whale2 platform peripherals
  *
  * Copyright (C) 2016, Spreadtrum Communications Inc.
- *
- * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  */
 
 #include <dt-bindings/clock/sprd,sc9860-clk.h>
                                             "sprd,sc9836-uart";
                                reg = <0x0 0x100>;
                                interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
-                               clock-names = "enable", "uart", "source";
                                clocks = <&apapb_gate CLK_UART0_EB>,
-                                      <&ap_clk CLK_UART0>, <&ext_26m>;
+                                        <&ap_clk CLK_UART0>,
+                                        <&ext_26m>;
+                               clock-names = "enable", "uart", "source";
                                status = "disabled";
                        };
 
                                             "sprd,sc9836-uart";
                                reg = <0x100000 0x100>;
                                interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
-                               clock-names = "enable", "uart", "source";
                                clocks = <&apapb_gate CLK_UART1_EB>,
-                                      <&ap_clk CLK_UART1>, <&ext_26m>;
+                                        <&ap_clk CLK_UART1>,
+                                        <&ext_26m>;
+                               clock-names = "enable", "uart", "source";
                                status = "disabled";
                        };
 
                                             "sprd,sc9836-uart";
                                reg = <0x200000 0x100>;
                                interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
-                               clock-names = "enable", "uart", "source";
                                clocks = <&apapb_gate CLK_UART2_EB>,
-                                      <&ap_clk CLK_UART2>, <&ext_26m>;
+                                        <&ap_clk CLK_UART2>,
+                                        <&ext_26m>;
+                               clock-names = "enable", "uart", "source";
                                status = "disabled";
                        };
 
                                             "sprd,sc9836-uart";
                                reg = <0x300000 0x100>;
                                interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
-                               clock-names = "enable", "uart", "source";
                                clocks = <&apapb_gate CLK_UART3_EB>,
-                                      <&ap_clk CLK_UART3>, <&ext_26m>;
+                                        <&ap_clk CLK_UART3>,
+                                        <&ext_26m>;
+                               clock-names = "enable", "uart", "source";
                                status = "disabled";
                        };
                };
                                /* For backwards compatibility: */
                                #dma-channels = <32>;
                                dma-channels = <32>;
-                               clock-names = "enable";
                                clocks = <&apahb_gate CLK_DMA_EB>;
+                               clock-names = "enable";
                        };
 
-                       sdio3: sdio@50430000 {
+                       sdio3: mmc@50430000 {
                                compatible = "sprd,sdhci-r11";
                                reg = <0 0x50430000 0 0x1000>;
                                interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
 
-                               clock-names = "sdio", "enable", "2x_enable";
                                clocks = <&aon_prediv CLK_EMMC_2X>,
-                                      <&apahb_gate CLK_EMMC_EB>,
-                                      <&aon_gate CLK_EMMC_2X_EN>;
+                                        <&apahb_gate CLK_EMMC_EB>,
+                                        <&aon_gate CLK_EMMC_2X_EN>;
+                               clock-names = "sdio", "enable", "2x_enable";
                                assigned-clocks = <&aon_prediv CLK_EMMC_2X>;
                                assigned-clock-parents = <&clk_l0_409m6>;
 
                                compatible = "sprd,hwspinlock-r3p0";
                                reg = <0 0x40500000 0 0x1000>;
                                #hwlock-cells = <1>;
-                               clock-names = "enable";
                                clocks = <&aon_gate CLK_SPLK_EB>;
+                               clock-names = "enable";
                        };
 
                        eic_debounce: gpio@40210000 {
                                reg = <0 0x40310000 0 0x1000>;
                                interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
                                timeout-sec = <12>;
-                               clock-names = "enable", "rtc_enable";
                                clocks = <&aon_gate CLK_APCPU_WDG_EB>,
-                                      <&aon_gate CLK_AP_WDG_RTC_EB>;
+                                        <&aon_gate CLK_AP_WDG_RTC_EB>;
+                               clock-names = "enable", "rtc_enable";
                        };
                };
 
                                /* For backwards compatibility: */
                                #dma-channels = <32>;
                                dma-channels = <32>;
-                               clock-names = "enable", "ashb_eb";
                                clocks = <&agcp_gate CLK_AGCP_DMAAP_EB>,
-                                      <&agcp_gate CLK_AGCP_AP_ASHB_EB>;
+                                        <&agcp_gate CLK_AGCP_AP_ASHB_EB>;
+                               clock-names = "enable", "ashb_eb";
                        };
                };
        };
index 328929c740dc0f839614a1fd98ea12e7235c8e83..5b92aef5b284b78749a01d44184b66e7776a124d 100644 (file)
                bootph-pre-ram;
                compatible = "ti,j721e-esm";
                reg = <0x00 0x420000 0x00 0x1000>;
+               /* Interrupt sources: rti0, rti1, rti15, wrti0, rti2, rti3 */
                ti,esm-pins = <160>, <161>, <162>, <163>, <177>, <178>;
        };
 
index e66d486ef1f21069e67096659db5295db9267e0f..bb43a411f59b281df476afcb1a71b988ca27f002 100644 (file)
@@ -19,6 +19,7 @@
                bootph-pre-ram;
                compatible = "ti,j721e-esm";
                reg = <0x00 0x4100000 0x00 0x1000>;
+               /* Interrupt sources: esm0_cfg, esm0_hi, esm0_low, mrti0 */
                ti,esm-pins = <0>, <1>, <2>, <85>;
        };
 
index 12ba833002a11df3405753208f4166c742f84ea4..3c6a80aebd9f44ab1bd51386dbe6809043510aef 100644 (file)
@@ -12,12 +12,29 @@ thermal_zones: thermal-zones {
                thermal-sensors = <&wkup_vtm0 0>;
 
                trips {
+                       main0_alert: main0-alert {
+                               temperature = <95000>;
+                               hysteresis = <2000>;
+                               type = "passive";
+                       };
+
                        main0_crit: main0-crit {
                                temperature = <105000>; /* milliCelsius */
                                hysteresis = <2000>;    /* milliCelsius */
                                type = "critical";
                        };
                };
+
+               cooling-maps {
+                       map0 {
+                               trip = <&main0_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>;
+                       };
+               };
        };
 
        main1_thermal: main1-thermal {
@@ -26,11 +43,28 @@ thermal_zones: thermal-zones {
                thermal-sensors = <&wkup_vtm0 1>;
 
                trips {
+                       main1_alert: main1-alert {
+                               temperature = <95000>;
+                               hysteresis = <2000>;
+                               type = "passive";
+                       };
+
                        main1_crit: main1-crit {
                                temperature = <105000>; /* milliCelsius */
                                hysteresis = <2000>;    /* milliCelsius */
                                type = "critical";
                        };
                };
+
+               cooling-maps {
+                       map0 {
+                               trip = <&main1_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>;
+                       };
+               };
        };
 };
index 70de288d728e447d5053eab3c1417f23212a66e4..a1cd47d7f5e3046bdacb5f4f831f55c8a8d84db3 100644 (file)
 
        mcu {
                compatible = "ti,cc1352p7";
-               reset-gpios = <&main_gpio0 72 GPIO_ACTIVE_LOW>;
+               bootloader-backdoor-gpios = <&main_gpio0 13 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&main_gpio0 14 GPIO_ACTIVE_HIGH>;
                vdds-supply = <&vdd_3v3>;
        };
 };
index 4014add6320d516b8bfb4a178d681e1979a1680c..c3d1db47dc9f351d217721c0b9e46a0c68995838 100644 (file)
@@ -50,6 +50,7 @@
                        next-level-cache = <&L2_0>;
                        operating-points-v2 = <&a53_opp_table>;
                        clocks = <&k3_clks 135 0>;
+                       #cooling-cells = <2>;
                };
 
                cpu1: cpu@1 {
@@ -66,6 +67,7 @@
                        next-level-cache = <&L2_0>;
                        operating-points-v2 = <&a53_opp_table>;
                        clocks = <&k3_clks 136 0>;
+                       #cooling-cells = <2>;
                };
 
                cpu2: cpu@2 {
@@ -82,6 +84,7 @@
                        next-level-cache = <&L2_0>;
                        operating-points-v2 = <&a53_opp_table>;
                        clocks = <&k3_clks 137 0>;
+                       #cooling-cells = <2>;
                };
 
                cpu3: cpu@3 {
                        next-level-cache = <&L2_0>;
                        operating-points-v2 = <&a53_opp_table>;
                        clocks = <&k3_clks 138 0>;
+                       #cooling-cells = <2>;
                };
        };
 
index 916fcf3cc57d1314c1d7cc36edd151d74a38c474..16a578ae2b412f3eb66c728c12fa2467b75af4be 100644 (file)
                pinctrl-single,function-mask = <0xffffffff>;
        };
 
+       main_esm: esm@420000 {
+               compatible = "ti,j721e-esm";
+               reg = <0x0 0x420000 0x0 0x1000>;
+               bootph-pre-ram;
+               /* Interrupt sources: rti0, rti1, wrti0, rti4, rti2, rti3 */
+               ti,esm-pins = <192>, <193>, <195>, <204>, <209>, <210>;
+       };
+
        main_timer0: timer@2400000 {
                compatible = "ti,am654-timer";
                reg = <0x00 0x2400000 0x00 0x400>;
                clocks = <&k3_clks 204 2>;
                power-domains = <&k3_pds 204 TI_SCI_PD_EXCLUSIVE>;
        };
+
+       e5010: jpeg-encoder@fd20000 {
+               compatible = "ti,am62a-jpeg-enc", "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 8c36e56f41388377666e06b14a4412cec3de458a..0469c766b769e46068f23e0073f951aa094c456f 100644 (file)
                status = "disabled";
        };
 
+       mcu_esm: esm@4100000 {
+               compatible = "ti,j721e-esm";
+               reg = <0x0 0x4100000 0x0 0x1000>;
+               bootph-pre-ram;
+               /* Interrupt sources: esm0_cfg, esm0_hi, esm0_low, mrti0 */
+               ti,esm-pins = <0>, <1>, <2>, <85>;
+       };
+
        /*
         * The MCU domain timer interrupts are routed only to the ESM module,
         * and not currently available for Linux. The MCU domain timers are
index b1b884600293ff89d6c962c711bf6dc8872c9366..4d79b3e9486af18b8813a8980a57937669ff6095 100644 (file)
@@ -61,6 +61,8 @@
                         <0x00 0x08000000 0x00 0x08000000 0x00 0x00200000>, /* Main CPSW */
                         <0x00 0x0e000000 0x00 0x0e000000 0x00 0x01d20000>, /* Second peripheral window */
                         <0x00 0x0fd00000 0x00 0x0fd00000 0x00 0x00020000>, /* GPU */
+                        <0x00 0x0fd20000 0x00 0x0fd20000 0x00 0x00000100>, /* JPEGENC0_CORE */
+                        <0x00 0x0fd20200 0x00 0x0fd20200 0x00 0x00000200>, /* JPEGENC0_CORE_MMU */
                         <0x00 0x20000000 0x00 0x20000000 0x00 0x0a008000>, /* Third peripheral window */
                         <0x00 0x30040000 0x00 0x30040000 0x00 0x00080000>, /* PRUSS-M */
                         <0x00 0x30101000 0x00 0x30101000 0x00 0x00010100>, /* CSI window */
index 9701fc69aed946225e40ada3f060854d8614d880..9b6f51379108376927e390c6f7d9c45ea7d3bb8e 100644 (file)
        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;
+               /* Interrupt sources: rti0, rti1, wrti0 rti2, rti3, rti15 */
+               ti,esm-pins = <224>, <225>, <227>, <241>, <242>, <248>;
        };
 
        main_timer0: timer@2400000 {
index df7945156397b14015661193c93a006308501bed..b33aff0d65c9def755f8dda9eb9feda7bc74e5c8 100644 (file)
@@ -26,9 +26,9 @@
        mcu_esm: esm@4100000 {
                compatible = "ti,j721e-esm";
                reg = <0x00 0x4100000 0x00 0x1000>;
-               ti,esm-pins = <0>, <1>, <2>, <85>;
-               status = "reserved";
                bootph-pre-ram;
+               /* Interrupt sources: esm0_cfg, esm0_hi, esm0_low, mrti0, wrti0 */
+               ti,esm-pins = <0>, <1>, <2>, <85>, <86>;
        };
 
        /*
index 0ce9721b417653850c08e8a57267bdafef66b38c..420c77c8e9e5e2e8e9df4baf98dd2b1463ec4842 100644 (file)
@@ -65,5 +65,6 @@
 &main_gpio1 {
        gpio-ranges = <&main_pmx0 0 94 32>, <&main_pmx0 42 137 5>,
                        <&main_pmx0 47 143 3>, <&main_pmx0 50 149 2>;
+       gpio-reserved-ranges = <32 10>;
        ti,ngpio = <52>;
 };
index ff65955551a32853fa66ba4880d776f2aeae3229..3efa12bb72546291e2fda79695edf577bbb134a1 100644 (file)
 
        wkup_uart0_pins_default: wkup-uart0-default-pins {
                pinctrl-single,pins = <
-                       AM62PX_MCU_IOPAD(0x02c, PIN_INPUT, 0)   /* (C7) WKUP_UART0_CTSn */
-                       AM62PX_MCU_IOPAD(0x030, PIN_OUTPUT, 0)  /* (C6) WKUP_UART0_RTSn */
                        AM62PX_MCU_IOPAD(0x024, PIN_INPUT, 0)   /* (D8) WKUP_UART0_RXD */
                        AM62PX_MCU_IOPAD(0x028, PIN_OUTPUT, 0)  /* (D7) WKUP_UART0_TXD */
                >;
index f8370dd033502c798f56fd4c65bb611ebccb8dff..7eae18399caa6e337f96670afdcf2205ae166ac4 100644 (file)
                bootph-pre-ram;
                compatible = "ti,j721e-esm";
                reg = <0x00 0x420000 0x00 0x1000>;
-               ti,esm-pins = <160>, <161>;
+               /* Interrupt sources: rti0, rti1, rti8, rti9, rti10, rti11 */
+               ti,esm-pins = <160>, <161>, <162>, <163>, <164>, <165>;
        };
 
        main_uart0: serial@2800000 {
                assigned-clock-parents = <&k3_clks 13 9>;
                clock-names = "fck";
                power-domains = <&k3_pds 13 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
 
                dmas = <&main_pktdma 0xC500 15>,
                       <&main_pktdma 0xC501 15>,
                                phys = <&phy_gmii_sel 1>;
                                mac-address = [00 00 00 00 00 00];
                                ti,syscon-efuse = <&main_conf 0x200>;
+                               status = "disabled";
                        };
 
                        cpsw_port2: port@2 {
                                label = "port2";
                                phys = <&phy_gmii_sel 2>;
                                mac-address = [00 00 00 00 00 00];
+                               status = "disabled";
                        };
                };
 
        };
 
        usbss0: cdns-usb@f900000 {
-               compatible = "ti,am64-usb";
+               compatible = "ti,am64-usb", "ti,j721e-usb";
                reg = <0x00 0xf900000 0x00 0x100>;
                power-domains = <&k3_pds 161 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 161 9>, <&k3_clks 161 1>;
index ec17285869da6ec65a6a2642d1b8895f0c53ba30..ad4bed5d3f9eb2d5a113f7e291d523116ea3bbb2 100644 (file)
                bootph-pre-ram;
                compatible = "ti,j721e-esm";
                reg = <0x00 0x4100000 0x00 0x1000>;
-               ti,esm-pins = <0>, <1>;
+               /* Interrupt sources: esm0_cfg, esm0_hi, esm0_low, mrti0 */
+               ti,esm-pins = <0>, <1>, <2>, <85>;
        };
 };
index ea7c58fb67e207d03bc879f5ef5d4420619d26ea..6bece2fb4e953124404b413ae3b43cfbc143a499 100644 (file)
 &cpsw3g {
        pinctrl-names = "default";
        pinctrl-0 = <&cpsw_rgmii1_pins_default>;
+       status = "okay";
 };
 
 &cpsw3g_mdio {
 &cpsw_port1 {
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy1>;
-};
-
-&cpsw_port2 {
-       status = "disabled";
+       status = "okay";
 };
 
 &mailbox0_cluster2 {
index f08c0e272b53a6ca0bc34f64c19494de5c79f3ca..92faf762894c8be35191f2f161d0d49bf8f53aac 100644 (file)
@@ -12,7 +12,7 @@
 #include "k3-pinctrl.h"
 
 &main_pmx0 {
-       gpmc0_pins_default: gpmc0-pins-default {
+       gpmc0_default_pins: gpmc0-default-pins {
                bootph-all;
                pinctrl-single,pins = <
                        AM64X_IOPAD(0x0094, PIN_INPUT, 7) /* (T19) GPMC0_BE1n.GPIO0_36 */
@@ -50,7 +50,7 @@
 };
 
 &main_gpio0 {
-       gpio0-36 {
+       gpmc0-hog {
                bootph-all;
                gpio-hog;
                gpios = <36 0>;
@@ -67,7 +67,7 @@
 &gpmc0 {
        status = "okay";
        pinctrl-names = "default";
-       pinctrl-0 = <&gpmc0_pins_default>;
+       pinctrl-0 = <&gpmc0_default_pins>;
        #address-cells = <2>;
        #size-cells = <1>;
 
index 6bb1ad2e56ec2295df59171614f1602629b9b0b7..97ca16f00cd260d88ebf638bfba22b7afc72f6b0 100644 (file)
        bootph-all;
        pinctrl-names = "default";
        pinctrl-0 = <&rgmii1_pins_default>, <&rgmii2_pins_default>;
+       status = "okay";
 };
 
 &cpsw_port1 {
        bootph-all;
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy0>;
+       status = "okay";
 };
 
 &cpsw_port2 {
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy3>;
+       status = "okay";
 };
 
 &cpsw3g_mdio {
 &tscadc0 {
        /* ADC is reserved for R5 usage */
        status = "reserved";
+
+       adc {
+               ti,adc-channels = <0 1 2 3 4 5 6 7>;
+       };
 };
 
 &ospi0 {
index 30729b49dd690dc6e61ae89d82452592e8ed7b11..60285d736e07a38e8458399ffe20a4981200522b 100644 (file)
@@ -28,6 +28,8 @@
        model = "PHYTEC phyBOARD-Electra-AM64x RDK";
 
        aliases {
+               ethernet1 = &icssg0_emac0;
+               ethernet2 = &icssg0_emac1;
                mmc1 = &sdhci1;
                serial2 = &main_uart0;
                serial3 = &main_uart1;
                standby-gpios = <&main_gpio0 35 GPIO_ACTIVE_HIGH>;
        };
 
+       /* Dual Ethernet application node on PRU-ICSSG0 */
+       ethernet {
+               compatible = "ti,am642-icssg-prueth";
+               pinctrl-names = "default";
+               pinctrl-0 = <&icssg0_rgmii1_pins_default>, <&icssg0_rgmii2_pins_default>;
+
+               interrupt-parent = <&icssg0_intc>;
+               interrupts = <24 0 2>, <25 1 3>;
+               interrupt-names = "tx_ts0", "tx_ts1";
+
+               sram = <&oc_sram>;
+               firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
+                               "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
+                               "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
+                               "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
+                               "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
+                               "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
+
+               dmas = <&main_pktdma 0xc100 15>, /* egress slice 0 */
+                      <&main_pktdma 0xc101 15>, /* egress slice 0 */
+                      <&main_pktdma 0xc102 15>, /* egress slice 0 */
+                      <&main_pktdma 0xc103 15>, /* egress slice 0 */
+                      <&main_pktdma 0xc104 15>, /* egress slice 1 */
+                      <&main_pktdma 0xc105 15>, /* egress slice 1 */
+                      <&main_pktdma 0xc106 15>, /* egress slice 1 */
+                      <&main_pktdma 0xc107 15>, /* egress slice 1 */
+                      <&main_pktdma 0x4100 15>, /* ingress slice 0 */
+                      <&main_pktdma 0x4101 15>; /* ingress slice 1 */
+               dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
+                           "tx1-0", "tx1-1", "tx1-2", "tx1-3",
+                           "rx0", "rx1";
+
+               ti,prus = <&pru0_0>, <&rtu0_0>, <&tx_pru0_0>, <&pru0_1>, <&rtu0_1>, <&tx_pru0_1>;
+               ti,pruss-gp-mux-sel = <2>,      /* MII mode */
+                                     <2>,
+                                     <2>,
+                                     <2>,      /* MII mode */
+                                     <2>,
+                                     <2>;
+
+               ti,mii-g-rt = <&icssg0_mii_g_rt>;
+               ti,mii-rt = <&icssg0_mii_rt>;
+               ti,iep = <&icssg0_iep0>, <&icssg0_iep1>;
+
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       icssg0_emac0: port@0 {
+                               reg = <0>;
+                               phy-handle = <&icssg0_phy1>;
+                               phy-mode = "rgmii-id";
+                               /* Filled in by bootloader */
+                               local-mac-address = [00 00 00 00 00 00];
+                               ti,syscon-rgmii-delay = <&main_conf 0x4100>;
+                       };
+
+                       icssg0_emac1: port@1 {
+                               reg = <1>;
+                               phy-handle = <&icssg0_phy2>;
+                               phy-mode = "rgmii-id";
+                               /* Filled in by bootloader */
+                               local-mac-address = [00 00 00 00 00 00];
+                               ti,syscon-rgmii-delay = <&main_conf 0x4104>;
+                       };
+               };
+       };
+
        keys {
                compatible = "gpio-keys";
                autorepeat;
                >;
        };
 
+       clkout0_pins_default: clkout0-default-pins {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x0274, PIN_OUTPUT, 5)      /* (A19) EXT_REFCLK1.CLKOUT0 */
+               >;
+       };
+
        gpio_keys_pins_default: gpio-keys-default-pins {
                pinctrl-single,pins = <
                        AM64X_IOPAD(0x0044, PIN_INPUT, 7)       /* (T18) GPMC0_AD2.GPIO0_17 */
                >;
        };
 
+       icssg0_mdio_pins_default: icssg0-mdio-default-pins {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x0200, PIN_INPUT, 0)       /* (P2) PRG0_MDIO0_MDIO */
+                       AM64X_IOPAD(0x0204, PIN_OUTPUT, 0)      /* (P3) PRG0_MDIO0_MDC */
+                       AM64X_IOPAD(0x01A8, PIN_OUTPUT, 7)      /* (V1) PRG0_PRU0_GPO18.GPIO1_18 */
+                       AM64X_IOPAD(0x01AC, PIN_OUTPUT, 7)      /* (W1) PRG0_PRU0_GPO19.GPIO1_19 */
+               >;
+       };
+
+       icssg0_rgmii1_pins_default: icssg0-rgmii1-default-pins {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x0160, PIN_INPUT, 2)       /* (Y1) PRG0_PRU0_GPO0.PRG0_RGMII1_RD0 */
+                       AM64X_IOPAD(0x0164, PIN_INPUT, 2)       /* (R4) PRG0_PRU0_GPO1.PRG0_RGMII1_RD1 */
+                       AM64X_IOPAD(0x0168, PIN_INPUT, 2)       /* (U2) PRG0_PRU0_GPO2.PRG0_RGMII1_RD2 */
+                       AM64X_IOPAD(0x016c, PIN_INPUT, 2)       /* (V2) PRG0_PRU0_GPO3.PRG0_RGMII1_RD3 */
+                       AM64X_IOPAD(0x0170, PIN_INPUT, 2)       /* (AA2) PRG0_PRU0_GPO4.PRG0_RGMII1_RX_CTL */
+                       AM64X_IOPAD(0x0178, PIN_INPUT, 2)       /* (T3) PRG0_PRU0_GPO6.PRG0_RGMII1_RXC */
+                       AM64X_IOPAD(0x018c, PIN_OUTPUT, 2)      /* (Y3) PRG0_PRU0_GPO11.PRG0_RGMII1_TD0 */
+                       AM64X_IOPAD(0x0190, PIN_OUTPUT, 2)      /* (AA3) PRG0_PRU0_GPO12.PRG0_RGMII1_TD1 */
+                       AM64X_IOPAD(0x0194, PIN_OUTPUT, 2)      /* (R6) PRG0_PRU0_GPO13.PRG0_RGMII1_TD2 */
+                       AM64X_IOPAD(0x0198, PIN_OUTPUT, 2)      /* (V4) PRG0_PRU0_GPO14.PRG0_RGMII1_TD3 */
+                       AM64X_IOPAD(0x019c, PIN_OUTPUT, 2)      /* (T5) PRG0_PRU0_GPO15.PRG0_RGMII1_TX_CTL */
+                       AM64X_IOPAD(0x01a0, PIN_OUTPUT, 2)      /* (U4) PRG0_PRU0_GPO16.PRG0_RGMII1_TXC */
+               >;
+       };
+
+       icssg0_rgmii2_pins_default: icssg0-rgmii2-default-pins {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x01b0, PIN_INPUT, 2)       /* (Y2) PRG0_PRU1_GPO0.PRG0_RGMII2_RD0 */
+                       AM64X_IOPAD(0x01b4, PIN_INPUT, 2)       /* (W2) PRG0_PRU1_GPO1.PRG0_RGMII2_RD1 */
+                       AM64X_IOPAD(0x01b8, PIN_INPUT, 2)       /* (V3) PRG0_PRU1_GPO2.PRG0_RGMII2_RD2 */
+                       AM64X_IOPAD(0x01bc, PIN_INPUT, 2)       /* (T4) PRG0_PRU1_GPO3.PRG0_RGMII2_RD3 */
+                       AM64X_IOPAD(0x01c0, PIN_INPUT, 2)       /* (W3) PRG0_PRU1_GPO4.PRG0_RGMII2_RX_CTL */
+                       AM64X_IOPAD(0x01c8, PIN_INPUT, 2)       /* (R5) PRG0_PRU1_GPO6.PRG0_RGMII2_RXC */
+                       AM64X_IOPAD(0x01dc, PIN_OUTPUT, 2)      /* (W4) PRG0_PRU1_GPO11.PRG0_RGMII2_TD0 */
+                       AM64X_IOPAD(0x01e0, PIN_OUTPUT, 2)      /* (Y4) PRG0_PRU1_GPO12.PRG0_RGMII2_TD1 */
+                       AM64X_IOPAD(0x01e4, PIN_OUTPUT, 2)      /* (T6) PRG0_PRU1_GPO13.PRG0_RGMII2_TD2 */
+                       AM64X_IOPAD(0x01e8, PIN_OUTPUT, 2)      /* (U6) PRG0_PRU1_GPO14.PRG0_RGMII2_TD3 */
+                       AM64X_IOPAD(0x01ec, PIN_OUTPUT, 2)      /* (U5) PRG0_PRU1_GPO15.PRG0_RGMII2_TX_CTL */
+                       AM64X_IOPAD(0x01f0, PIN_OUTPUT, 2)      /* (AA4) PRG0_PRU1_GPO16.PRG0_RGMII2_TXC */
+               >;
+       };
+
        main_i2c1_pins_default: main-i2c1-default-pins {
                pinctrl-single,pins = <
                        AM64X_IOPAD(0x0268, PIN_INPUT, 0)       /* (C18) I2C1_SCL */
        };
 };
 
+&icssg0_mdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&icssg0_mdio_pins_default &clkout0_pins_default>;
+       status = "okay";
+
+       icssg0_phy1: ethernet-phy@1 {
+               compatible = "ethernet-phy-id2000.a231", "ethernet-phy-ieee802.3-c22";
+               reg = <0x1>;
+               tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               reset-gpios = <&main_gpio1 18 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <1000>;
+               reset-deassert-us = <1000>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+       };
+
+       icssg0_phy2: ethernet-phy@2 {
+               compatible = "ethernet-phy-id2000.a231", "ethernet-phy-ieee802.3-c22";
+               reg = <0x2>;
+               tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               reset-gpios = <&main_gpio1 19 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <1000>;
+               reset-deassert-us = <1000>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+       };
+};
+
 &main_i2c1 {
        status = "okay";
        pinctrl-names = "default";
index 44ecbcf1c84474cf639c809e3463b5e8b68993f8..86369525259c3e432a4f2141e9aaf3da3a5b375d 100644 (file)
 &cpsw3g {
        pinctrl-names = "default";
        pinctrl-0 = <&rgmii1_pins_default>, <&rgmii2_pins_default>;
+       status = "okay";
 };
 
 &cpsw_port1 {
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy0>;
+       status = "okay";
 };
 
 &cpsw_port2 {
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy1>;
+       status = "okay";
 };
 
 &cpsw3g_mdio {
index c19d0b8bbf0fca6fb859efe78629e0ce946c456c..a5cec9a075109aeec335e3f4d22a9fd60a3cd813 100644 (file)
 &cpsw3g {
        pinctrl-names = "default";
        pinctrl-0 = <&rgmii1_default_pins>;
+       status = "okay";
 };
 
 &cpsw3g_mdio {
 &cpsw_port1 {
        phy-mode = "rgmii-id";
        phy-handle = <&ethernet_phy0>;
-};
-
-&cpsw_port2 {
-       status = "disabled";
+       status = "okay";
 };
 
 &icssg1_mdio {
index c40ad67cee0191989d267c9d34a9364b44917ca1..e06a3b178b3468b661556840b29ebe6580ff10ce 100644 (file)
@@ -24,6 +24,8 @@
 
        aliases {
                ethernet0 = &cpsw_port1;
+               ethernet1 = &icssg1_emac0;
+               ethernet2 = &icssg1_emac1;
                i2c1 = &mcu_i2c0;
                mmc1 = &sdhci1;
                serial0 = &mcu_uart0;
                };
        };
 
+       icssg1_eth: icssg1-eth {
+               compatible = "ti,am642-icssg-prueth";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pru_icssg1_rgmii1_pins>, <&pru_icssg1_rgmii2_pins>;
+               interrupt-parent = <&icssg1_intc>;
+               interrupts = <24 0 2>, <25 1 3>;
+               interrupt-names = "tx_ts0", "tx_ts1";
+               dmas = <&main_pktdma 0xc200 15>, /* egress slice 0 */
+                      <&main_pktdma 0xc201 15>, /* egress slice 0 */
+                      <&main_pktdma 0xc202 15>, /* egress slice 0 */
+                      <&main_pktdma 0xc203 15>, /* egress slice 0 */
+                      <&main_pktdma 0xc204 15>, /* egress slice 1 */
+                      <&main_pktdma 0xc205 15>, /* egress slice 1 */
+                      <&main_pktdma 0xc206 15>, /* egress slice 1 */
+                      <&main_pktdma 0xc207 15>, /* egress slice 1 */
+                      <&main_pktdma 0x4200 15>, /* ingress slice 0 */
+                      <&main_pktdma 0x4201 15>; /* ingress slice 1 */
+               dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
+                           "tx1-0", "tx1-1", "tx1-2", "tx1-3",
+                           "rx0", "rx1";
+               sram = <&oc_sram>;
+               firmware-name = "ti-pruss/am64x-sr2-pru0-prueth-fw.elf",
+                               "ti-pruss/am64x-sr2-rtu0-prueth-fw.elf",
+                               "ti-pruss/am64x-sr2-txpru0-prueth-fw.elf",
+                               "ti-pruss/am64x-sr2-pru1-prueth-fw.elf",
+                               "ti-pruss/am64x-sr2-rtu1-prueth-fw.elf",
+                               "ti-pruss/am64x-sr2-txpru1-prueth-fw.elf";
+               ti,prus = <&pru1_0>, <&rtu1_0>, <&tx_pru1_0>, <&pru1_1>, <&rtu1_1>, <&tx_pru1_1>;
+               ti,pruss-gp-mux-sel = <2>,      /* MII mode */
+                                     <2>,
+                                     <2>,
+                                     <2>,      /* MII mode */
+                                     <2>,
+                                     <2>;
+               ti,mii-g-rt = <&icssg1_mii_g_rt>;
+               ti,mii-rt = <&icssg1_mii_rt>;
+               ti,iep = <&icssg1_iep0>,  <&icssg1_iep1>;
+
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       icssg1_emac0: port@0 {
+                               reg = <0>;
+                               phy-handle = <&icssg1_phy0c>;
+                               phy-mode = "rgmii-id";
+                               /* Filled in by bootloader */
+                               local-mac-address = [00 00 00 00 00 00];
+                       };
+
+                       icssg1_emac1: port@1 {
+                               reg = <1>;
+                               phy-handle = <&icssg1_phy03>;
+                               phy-mode = "rgmii-id";
+                               /* Filled in by bootloader */
+                               local-mac-address = [00 00 00 00 00 00];
+                       };
+               };
+       };
+
        fan0: pwm-fan {
                compatible = "pwm-fan";
                pinctrl-names = "default";
 &cpsw3g {
        pinctrl-names = "default";
        pinctrl-0 = <&cpsw_pins>;
+       status = "okay";
 };
 
 &cpsw_port1 {
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy0>;
-};
-
-&cpsw_port2 {
-       status = "disabled";
+       status = "okay";
 };
 
 &cpsw3g_mdio {
        status = "okay";
 };
 
+&icssg1_mdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pru_icssg1_mdio_pins>;
+       status = "okay";
+
+       /* phy-mode is fixed up to rgmii-rxid by prueth driver to account for
+        * the SoC integration, so the only rx-internal-delay and no
+        * tx-internal-delay is set for the PHYs.
+        */
+
+       icssg1_phy03: ethernet-phy@3 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x3>;
+               reset-gpios = <&main_gpio1 47 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <1000>;
+               reset-deassert-us = <1000>;
+               ti,rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               ti,tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+       };
+
+       icssg1_phy0c: ethernet-phy@c {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0xc>;
+               reset-gpios = <&main_gpio1 51 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <1000>;
+               reset-deassert-us = <1000>;
+               ti,rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               ti,tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+       };
+};
+
+
 &main_gpio0 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_gpio0_digital_pins>,
index e2584a5efe3438d75118061103ea977660057eea..b3c4c0eec3dc8f9c11411faf10f1e9de752181a2 100644 (file)
@@ -9,11 +9,6 @@
  * Common bits of the IOT2050 Basic and Advanced variants, PG2
  */
 
-&mcu_r5fss0 {
-       /* lock-step mode not supported on PG2 boards */
-       ti,cluster-mode = <0>;
-};
-
 &main_pmx0 {
        cp2102n_reset_pin_default: cp2102n-reset-default-pins {
                pinctrl-single,pins = <
index ef34b851e178a726561b38399bb51b0c1e0aeb54..e5136ed947651736c5302f914939a4e57102b971 100644 (file)
                reg = <0>;
                ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_LAN;
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_SPEED_LAN;
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               color = <LED_COLOR_ID_YELLOW>;
+                               function = LED_FUNCTION_SPEED_LAN;
+                       };
+               };
        };
 
        icssg0_eth1_phy: ethernet-phy@1 {
                reg = <1>;
                ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_LAN;
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_SPEED_LAN;
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               color = <LED_COLOR_ID_YELLOW>;
+                               function = LED_FUNCTION_SPEED_LAN;
+                       };
+               };
        };
 };
+
+&mcu_r5fss0 {
+       /* lock-step mode not supported on iot2050 boards */
+       ti,cluster-mode = <0>;
+};
index 1af3dedde1f67f5fde7f493e781393552f412ad6..1f1af7ea23305399c4705c1c7e479523d79fbf84 100644 (file)
                };
        };
 
+       main_esm: esm@700000 {
+               compatible = "ti,j721e-esm";
+               reg = <0x00 0x700000 0x00 0x1000>;
+               bootph-pre-ram;
+               /* Interrupt sources: rti0, rti1, rti2, rti3 */
+               ti,esm-pins = <224>, <225>, <226>, <227>;
+       };
+
        serdes0: serdes@900000 {
                compatible = "ti,phy-am654-serdes";
                reg = <0x0 0x900000 0x0 0x2000>;
                ranges = <0x0 0x0 0x00100000 0x1c000>;
 
                serdes0_clk: clock@4080 {
-                       compatible = "ti,am654-serdes-ctrl", "syscon";
+                       compatible = "ti,am654-serdes-ctrl", "syscon", "simple-mfd";
                        reg = <0x4080 0x4>;
 
                        serdes0_mux: mux-controller {
                };
 
                serdes1_clk: clock@4090 {
-                       compatible = "ti,am654-serdes-ctrl", "syscon";
+                       compatible = "ti,am654-serdes-ctrl", "syscon", "simple-mfd";
                        reg = <0x4090 0x4>;
 
                        serdes1_mux: mux-controller {
index 43c6118d2bf0fb9c1d540ba8ac990f5d6c2e8053..7cf1f646500a16c1d1bac6dfb37fb285218063b3 100644 (file)
                ranges = <0x0 0x47000000 0x0 0x47000000 0x0 0x100>, /* FSS Control */
                         <0x0 0x47040000 0x0 0x47040000 0x0 0x100>, /* OSPI0 Control */
                         <0x0 0x47050000 0x0 0x47050000 0x0 0x100>, /* OSPI1 Control */
-                        <0x5 0x00000000 0x5 0x00000000 0x1 0x0000000>, /* OSPI0 Memory */
-                        <0x7 0x00000000 0x7 0x00000000 0x1 0x0000000>; /* OSPI1 Memory */
+                        <0x0 0x50000000 0x0 0x50000000 0x0 0x10000000>, /* FSS data region 1 */
+                        <0x4 0x00000000 0x4 0x00000000 0x4 0x00000000>; /* FSS data region 0/3 */
 
                ospi0: spi@47040000 {
                        compatible = "ti,am654-ospi", "cdns,qspi-nor";
                        reg = <0x0 0x47040000 0x0 0x100>,
-                               <0x5 0x00000000 0x1 0x0000000>;
+                             <0x5 0x00000000 0x1 0x00000000>;
                        interrupts = <GIC_SPI 552 IRQ_TYPE_LEVEL_HIGH>;
                        cdns,fifo-depth = <256>;
                        cdns,fifo-width = <4>;
                ospi1: spi@47050000 {
                        compatible = "ti,am654-ospi", "cdns,qspi-nor";
                        reg = <0x0 0x47050000 0x0 0x100>,
-                               <0x7 0x00000000 0x1 0x00000000>;
+                             <0x7 0x00000000 0x1 0x00000000>;
                        interrupts = <GIC_SPI 553 IRQ_TYPE_LEVEL_HIGH>;
                        cdns,fifo-depth = <256>;
                        cdns,fifo-width = <4>;
                };
        };
 
+       mcu_esm: esm@40800000 {
+               compatible = "ti,j721e-esm";
+               reg = <0x00 0x40800000 0x00 0x1000>;
+               bootph-pre-ram;
+               /* Interrupt sources: mrti0, mrti1 */
+               ti,esm-pins = <104>, <105>;
+       };
+
        mcu_rti1: watchdog@40610000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x0 0x40610000 0x0 0x100>;
index c59baebc5a25b1baa548a992375bb2cba57a28b6..c74a0a25832cb46c993b1d47b9a7751fb6e92f95 100644 (file)
                         <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>,
                         <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>,
                         <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>,
-                        <0x00 0x50000000 0x00 0x50000000 0x00 0x8000000>,
+                        <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>,
                         <0x00 0x6f000000 0x00 0x6f000000 0x00 0x00310000>, /* A53 PERIPHBASE */
-                        <0x00 0x70000000 0x00 0x70000000 0x00 0x200000>,
-                        <0x05 0x00000000 0x05 0x00000000 0x01 0x0000000>,
-                        <0x07 0x00000000 0x07 0x00000000 0x01 0x0000000>;
+                        <0x00 0x70000000 0x00 0x70000000 0x00 0x00200000>,
+                        <0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>;
 
                cbass_mcu: bus@28380000 {
                        compatible = "simple-bus";
@@ -89,9 +88,8 @@
                                 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */
                                 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */
                                 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, /* OSPI space 1 */
-                                <0x00 0x50000000 0x00 0x50000000 0x00 0x8000000>, /*  FSS OSPI0 data region 1 */
-                                <0x05 0x00000000 0x05 0x00000000 0x01 0x0000000>, /* FSS OSPI0 data region 3*/
-                                <0x07 0x00000000 0x07 0x00000000 0x01 0x0000000>; /* FSS OSPI1 data region 3*/
+                                <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS data region 1 */
+                                <0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>; /* FSS data region 0/3 */
 
                        cbass_wakeup: bus@42040000 {
                                compatible = "simple-bus";
index 29a31891b3db6c9f5bb7ec9f38e9419f024da7bf..4968a47f31ea79ac193793506d2bdb10a7b14f27 100644 (file)
@@ -22,8 +22,3 @@
        compatible = "siemens,iot2050-basic", "ti,am654";
        model = "SIMATIC IOT2050 Basic";
 };
-
-&mcu_r5fss0 {
-       /* lock-step mode not supported on this board */
-       ti,cluster-mode = <0>;
-};
index 8bdb87fcbde007b4d65170d2527628d364816f64..b0ce2cb2fdc8e1f61363ac0cafc19363797e769d 100644 (file)
@@ -8,6 +8,7 @@
 /dts-v1/;
 /plugin/;
 
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/net/ti-dp83867.h>
 #include "k3-pinctrl.h"
 
@@ -58,9 +59,7 @@
                       <&main_udmap 0xc107>, /* egress slice 1 */
 
                       <&main_udmap 0x4100>, /* ingress slice 0 */
-                      <&main_udmap 0x4101>, /* ingress slice 1 */
-                      <&main_udmap 0x4102>, /* mgmnt rsp slice 0 */
-                      <&main_udmap 0x4103>; /* mgmnt rsp slice 1 */
+                      <&main_udmap 0x4101>; /* ingress slice 1 */
                dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
                            "tx1-0", "tx1-1", "tx1-2", "tx1-3",
                            "rx0", "rx1";
                       <&main_udmap 0xc207>, /* egress slice 1 */
 
                       <&main_udmap 0x4200>, /* ingress slice 0 */
-                      <&main_udmap 0x4201>, /* ingress slice 1 */
-                      <&main_udmap 0x4202>, /* mgmnt rsp slice 0 */
-                      <&main_udmap 0x4203>; /* mgmnt rsp slice 1 */
+                      <&main_udmap 0x4201>; /* ingress slice 1 */
                dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
                            "tx1-0", "tx1-1", "tx1-2", "tx1-3",
                            "rx0", "rx1";
                        };
                };
        };
+
+       transceiver1: can-phy0 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mcan0_gpio_pins_default>;
+               standby-gpios = <&main_gpio1 47 GPIO_ACTIVE_LOW>;
+       };
+
+       transceiver2: can-phy1 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mcan1_gpio_pins_default>;
+               standby-gpios = <&main_gpio1 67 GPIO_ACTIVE_LOW>;
+       };
 };
 
 &main_pmx0 {
                        AM65X_IOPAD(0x012c, PIN_INPUT, 2) /* (AG26) PRG1_PRU0_GPO19.PRG1_IEP0_EDC_SYNC_OUT0 */
                >;
        };
+
+       mcan0_gpio_pins_default: mcan0-gpio-default-pins {
+               pinctrl-single,pins = <
+                       AM65X_IOPAD(0x023c, PIN_INPUT, 7) /* (V25) PRG0_PRU0_GPIO18:GPIO1_47 */
+               >;
+       };
+
+       mcan1_gpio_pins_default: mcan1-gpio-default-pins {
+               pinctrl-single,pins = <
+                       AM65X_IOPAD(0x028c, PIN_INPUT, 7) /* (Y26) PRG0_PRU1_GPIO18.GPIO1_67 */
+               >;
+       };
+};
+
+&wkup_pmx0 {
+       mcu_mcan0_pins_default: mcu-mcan0-default-pins {
+               pinctrl-single,pins = <
+                       AM65X_WKUP_IOPAD(0x00ac, PIN_INPUT_PULLUP, 0) /* (W2) MCU_MCAN0_RX */
+                       AM65X_WKUP_IOPAD(0x00a8, PIN_OUTPUT_PULLUP, 0) /* (W1) MCU_MCAN0_TX */
+               >;
+       };
+
+       mcu_mcan1_pins_default: mcu-mcan1-default-pins {
+               pinctrl-single,pins = <
+                       AM65X_WKUP_IOPAD(0x00c4, PIN_INPUT_PULLUP, 1) /* (AD3) WKUP_GPIO0_5.MCU_MCAN1_RX */
+                       AM65X_WKUP_IOPAD(0x00c0, PIN_OUTPUT_PULLUP, 1) /* (AC3) WKUP_GPIO0_4.MCU_MCAN1_TX */
+               >;
+       };
 };
 
 &icssg0_mdio {
        pinctrl-names = "default";
        pinctrl-0 = <&icssg1_iep0_pins_default>;
 };
+
+&m_can0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan0_pins_default>;
+       phys = <&transceiver1>;
+       status = "okay";
+};
+
+&m_can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan1_pins_default>;
+       phys = <&transceiver2>;
+       status = "okay";
+};
diff --git a/src/arm64/ti/k3-am6548-iot2050-advanced-m2-bkey-ekey-pcie.dtso b/src/arm64/ti/k3-am6548-iot2050-advanced-m2-bkey-ekey-pcie.dtso
new file mode 100644 (file)
index 0000000..666237f
--- /dev/null
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * IOT2050 M.2 variant, overlay for B-key PCIE0_LANE0 + E-key PCIE1_LANE0
+ * Copyright (c) Siemens AG, 2022-2024
+ *
+ * Authors:
+ *   Chao Zeng <chao.zeng@siemens.com>
+ *   Jan Kiszka <jan.kiszka@siemens.com>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/gpio/gpio.h>
+
+&pcie0_rc {
+       num-lanes = <1>;
+       phys = <&serdes0 PHY_TYPE_PCIE 1>;
+       phy-names = "pcie-phy0";
+       reset-gpios = <&main_gpio1 15 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&pcie1_rc {
+       status = "okay";
+};
diff --git a/src/arm64/ti/k3-am6548-iot2050-advanced-m2-bkey-usb3.dtso b/src/arm64/ti/k3-am6548-iot2050-advanced-m2-bkey-usb3.dtso
new file mode 100644 (file)
index 0000000..0f86235
--- /dev/null
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * IOT2050 M.2 variant, overlay for B-key USB3.0 + E-key PCIE1_LANE0
+ * Copyright (c) Siemens AG, 2022-2024
+ *
+ * Authors:
+ *   Chao Zeng <chao.zeng@siemens.com>
+ *   Jan Kiszka <jan.kiszka@siemens.com>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/gpio/gpio.h>
+
+&serdes0 {
+       assigned-clock-parents = <&k3_clks 153 7>, <&k3_clks 153 4>;
+};
+
+&pcie0_rc {
+       status = "disabled";
+};
+
+&pcie1_rc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&minipcie_pins_default>;
+
+       num-lanes = <1>;
+       phys = <&serdes1 PHY_TYPE_PCIE 0>;
+       phy-names = "pcie-phy0";
+       reset-gpios = <&wkup_gpio0 27 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&dwc3_0 {
+       assigned-clock-parents = <&k3_clks 151 4>,  /* set REF_CLK to 20MHz i.e. PER0_PLL/48 */
+                                <&k3_clks 151 8>;  /* set PIPE3_TXB_CLK to WIZ8B2M4VSB */
+       phys = <&serdes0 PHY_TYPE_USB3 0>;
+       phy-names = "usb3-phy";
+};
+
+&usb0 {
+       maximum-speed = "super-speed";
+       snps,dis-u1-entry-quirk;
+       snps,dis-u2-entry-quirk;
+};
diff --git a/src/arm64/ti/k3-am67a-beagley-ai.dts b/src/arm64/ti/k3-am67a-beagley-ai.dts
new file mode 100644 (file)
index 0000000..44dfbdf
--- /dev/null
@@ -0,0 +1,393 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * https://beagley-ai.org/
+ *
+ * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
+ * Copyright (C) 2024 Robert Nelson, BeagleBoard.org Foundation
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/net/ti-dp83867.h>
+#include "k3-j722s.dtsi"
+
+/ {
+       compatible = "beagle,am67a-beagley-ai", "ti,j722s";
+       model = "BeagleBoard.org BeagleY-AI";
+
+       aliases {
+               serial0 = &wkup_uart0;
+               serial2 = &main_uart0;
+               mmc1 = &sdhci1;
+               rtc0 = &rtc;
+       };
+
+       chosen {
+               stdout-path = &main_uart0;
+       };
+
+       memory@80000000 {
+               /* 4G RAM */
+               reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
+                     <0x00000008 0x80000000 0x00000000 0x80000000>;
+               device_type = "memory";
+               bootph-pre-ram;
+       };
+
+       reserved_memory: reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               secure_tfa_ddr: tfa@9e780000 {
+                       reg = <0x00 0x9e780000 0x00 0x80000>;
+                       no-map;
+               };
+
+               secure_ddr: optee@9e800000 {
+                       reg = <0x00 0x9e800000 0x00 0x01800000>;
+                       no-map;
+               };
+
+               wkup_r5fss0_core0_memory_region: r5f-memory@a0100000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa0100000 0x00 0xf00000>;
+                       no-map;
+               };
+       };
+
+       vsys_5v0: regulator-1 {
+               compatible = "regulator-fixed";
+               regulator-name = "vsys_5v0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+               bootph-all;
+       };
+
+       vdd_3v3: regulator-2 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vsys_5v0>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd_mmc1: regulator-3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_mmc1";
+               pinctrl-names = "default";
+               pinctrl-0 = <&vdd_3v3_sd_pins_default>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               enable-active-high;
+               gpio = <&main_gpio1 50 GPIO_ACTIVE_HIGH>;
+               bootph-all;
+       };
+
+       vdd_sd_dv: regulator-4 {
+               compatible = "regulator-gpio";
+               regulator-name = "tlv71033";
+               pinctrl-names = "default";
+               pinctrl-0 = <&vdd_sd_dv_pins_default>;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               vin-supply = <&vsys_5v0>;
+               gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
+               states = <1800000 0x0>,
+                        <3300000 0x1>;
+               bootph-all;
+       };
+
+       vsys_io_1v8: regulator-5 {
+               compatible = "regulator-fixed";
+               regulator-name = "vsys_io_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vsys_io_1v2: regulator-6 {
+               compatible = "regulator-fixed";
+               regulator-name = "vsys_io_1v2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins_default>;
+
+               led-0 {
+                       gpios = <&main_gpio0 11 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+
+               led-1 {
+                       gpios = <&main_gpio0 12 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       function = LED_FUNCTION_HEARTBEAT;
+                       default-state = "on";
+               };
+       };
+};
+
+&main_pmx0 {
+       main_i2c0_pins_default: main-i2c0-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (D23) I2C0_SCL */
+                       J722S_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (B22) I2C0_SDA */
+               >;
+               bootph-all;
+       };
+
+       main_uart0_pins_default: main-uart0-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x01c8, PIN_INPUT, 0)       /* (A22) UART0_RXD */
+                       J722S_IOPAD(0x01cc, PIN_OUTPUT, 0)      /* (B22) UART0_TXD */
+               >;
+               bootph-all;
+       };
+
+       vdd_sd_dv_pins_default: vdd-sd-dv-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x0244, PIN_OUTPUT, 7) /* (A24) MMC1_SDWP.GPIO1_49 */
+               >;
+               bootph-all;
+       };
+
+       main_mmc1_pins_default: main-mmc1-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x023c, PIN_INPUT, 0) /* (H22) MMC1_CMD */
+                       J722S_IOPAD(0x0234, PIN_OUTPUT, 0) /* (H24) MMC1_CLK */
+                       J722S_IOPAD(0x0230, PIN_INPUT, 0) /* (H23) MMC1_DAT0 */
+                       J722S_IOPAD(0x022c, PIN_INPUT_PULLUP, 0) /* (H20) MMC1_DAT1 */
+                       J722S_IOPAD(0x0228, PIN_INPUT_PULLUP, 0) /* (J23) MMC1_DAT2 */
+                       J722S_IOPAD(0x0224, PIN_INPUT_PULLUP, 0) /* (H25) MMC1_DAT3 */
+                       J722S_IOPAD(0x0240, PIN_INPUT, 7) /* (B24) MMC1_SDCD.GPIO1_48 */
+               >;
+               bootph-all;
+       };
+
+       mdio_pins_default: mdio-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x0160, PIN_OUTPUT, 0) /* (AC24) MDIO0_MDC */
+                       J722S_IOPAD(0x015c, PIN_INPUT, 0) /* (AD25) MDIO0_MDIO */
+               >;
+       };
+
+       rgmii1_pins_default: rgmii1-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x014c, PIN_INPUT, 0) /* (AC25) RGMII1_RD0 */
+                       J722S_IOPAD(0x0150, PIN_INPUT, 0) /* (AD27) RGMII1_RD1 */
+                       J722S_IOPAD(0x0154, PIN_INPUT, 0) /* (AE24) RGMII1_RD2 */
+                       J722S_IOPAD(0x0158, PIN_INPUT, 0) /* (AE26) RGMII1_RD3 */
+                       J722S_IOPAD(0x0148, PIN_INPUT, 0) /* (AE27) RGMII1_RXC */
+                       J722S_IOPAD(0x0144, PIN_INPUT, 0) /* (AD23) RGMII1_RX_CTL */
+                       J722S_IOPAD(0x0134, PIN_OUTPUT, 0) /* (AF27) RGMII1_TD0 */
+                       J722S_IOPAD(0x0138, PIN_OUTPUT, 0) /* (AE23) RGMII1_TD1 */
+                       J722S_IOPAD(0x013c, PIN_OUTPUT, 0) /* (AG25) RGMII1_TD2 */
+                       J722S_IOPAD(0x0140, PIN_OUTPUT, 0) /* (AF24) RGMII1_TD3 */
+                       J722S_IOPAD(0x0130, PIN_OUTPUT, 0) /* (AG26) RGMII1_TXC */
+                       J722S_IOPAD(0x012c, PIN_OUTPUT, 0) /* (AF25) RGMII1_TX_CTL */
+               >;
+       };
+
+       led_pins_default: led-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x002c, PIN_OUTPUT, 7) /* (K26) OSPI0_CSn0.GPIO0_11 */
+                       J722S_IOPAD(0x0030, PIN_OUTPUT, 7) /* (K23) OSPI0_CSn1.GPIO0_12 */
+               >;
+       };
+
+       pmic_irq_pins_default: pmic-irq-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x01f4, PIN_INPUT_PULLUP, 0) /* (B23) EXTINTn */
+               >;
+       };
+
+       vdd_3v3_sd_pins_default: vdd-3v3-sd-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x0254, PIN_OUTPUT, 7) /* (E25) USB0_DRVVBUS.GPIO1_50 */
+               >;
+       };
+};
+
+&cpsw3g {
+       pinctrl-names = "default";
+       pinctrl-0 = <&rgmii1_pins_default>;
+       status = "okay";
+};
+
+&cpsw3g_mdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mdio_pins_default>;
+       status = "okay";
+
+       cpsw3g_phy0: ethernet-phy@0 {
+               reg = <0>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               ti,min-output-impedance;
+       };
+};
+
+&cpsw_port1 {
+       phy-mode = "rgmii-rxid";
+       phy-handle = <&cpsw3g_phy0>;
+       status = "okay";
+};
+
+&main_gpio1 {
+       status = "okay";
+};
+
+&main_uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_uart0_pins_default>;
+       bootph-all;
+       status = "okay";
+};
+
+&mcu_pmx0 {
+       wkup_uart0_pins_default: wkup-uart0-default-pins {
+               pinctrl-single,pins = <
+                       J722S_MCU_IOPAD(0x02c, PIN_INPUT, 0)    /* (C7) WKUP_UART0_CTSn */
+                       J722S_MCU_IOPAD(0x030, PIN_OUTPUT, 0)   /* (C6) WKUP_UART0_RTSn */
+                       J722S_MCU_IOPAD(0x024, PIN_INPUT, 0)    /* (D8) WKUP_UART0_RXD */
+                       J722S_MCU_IOPAD(0x028, PIN_OUTPUT, 0)   /* (D7) WKUP_UART0_TXD */
+               >;
+               bootph-all;
+       };
+
+       wkup_i2c0_pins_default: wkup-i2c0-default-pins {
+               pinctrl-single,pins = <
+                       J722S_MCU_IOPAD(0x04c, PIN_INPUT_PULLUP, 0)     /* (C7) WKUP_I2C0_SCL */
+                       J722S_MCU_IOPAD(0x050, PIN_INPUT_PULLUP, 0)     /* (C6) WKUP_I2C1_SDA */
+               >;
+               bootph-all;
+       };
+};
+
+&wkup_uart0 {
+       /* WKUP UART0 is used by Device Manager firmware */
+       pinctrl-names = "default";
+       pinctrl-0 = <&wkup_uart0_pins_default>;
+       bootph-all;
+       status = "reserved";
+};
+
+&wkup_i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&wkup_i2c0_pins_default>;
+       clock-frequency = <100000>;
+       bootph-all;
+       status = "okay";
+
+       tps65219: pmic@30 {
+               compatible = "ti,tps65219";
+               reg = <0x30>;
+               buck1-supply = <&vsys_5v0>;
+               buck2-supply = <&vsys_5v0>;
+               buck3-supply = <&vsys_5v0>;
+               ldo1-supply = <&vdd_3v3>;
+               ldo3-supply = <&vdd_3v3>;
+               ldo4-supply = <&vdd_3v3>;
+
+               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>;
+
+               bootph-all;
+               system-power-controller;
+               ti,power-button;
+
+               regulators {
+                       buck1_reg: buck1 {
+                               regulator-name = "VDD_3V3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck2_reg: buck2 {
+                               regulator-name = "VDD_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo1_reg: ldo1 {
+                               regulator-name = "VDDSHV5_SDIO";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-allow-bypass;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo2_reg: ldo2 {
+                               regulator-name = "VDD_1V2";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo3_reg: ldo3 {
+                               regulator-name = "VDDA_PHY_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo4_reg: ldo4 {
+                               regulator-name = "VDDA_PLL_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c32";
+               reg = <0x50>;
+       };
+
+       rtc: rtc@68 {
+               compatible = "dallas,ds1340";
+               reg = <0x68>;
+       };
+};
+
+&sdhci1 {
+       /* SD/MMC */
+       vmmc-supply = <&vdd_mmc1>;
+       vqmmc-supply = <&vdd_sd_dv>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mmc1_pins_default>;
+       disable-wp;
+       cd-gpios = <&main_gpio1 48 GPIO_ACTIVE_LOW>;
+       cd-debounce-delay-ms = <100>;
+       bootph-all;
+       ti,fails-without-test-cd;
+       status = "okay";
+};
index 90dbe31c5b811698d860e375ecc1fafd7dd2bba1..d5ceab79536ca45fb1421a2a2e133db6a458b518 100644 (file)
                pinctrl-single,pins = <
                        J721S2_IOPAD(0x104, PIN_INPUT, 0) /* (P23) MMC1_CLK */
                        J721S2_IOPAD(0x108, PIN_INPUT, 0) /* (N24) MMC1_CMD */
+                       J721S2_IOPAD(0x100, PIN_INPUT, 0) /* (###) MMC1_CLKLB */
                        J721S2_IOPAD(0x0fc, PIN_INPUT, 0) /* (M23) MMC1_DAT0 */
                        J721S2_IOPAD(0x0f8, PIN_INPUT, 0) /* (P24) MMC1_DAT1 */
                        J721S2_IOPAD(0x0f4, PIN_INPUT, 0) /* (R24) MMC1_DAT2 */
index 5c66e0ec6e82119559d4c7a23c74f0aa63ef0638..5bc0d2fb4b8f3969d6f372a374be91e5b5cbd821 100644 (file)
                                reg = <0x680000 0x40000>;
                        };
 
-                       partition@740000 {
+                       partition@6c0000 {
                                label = "ospi.env.backup";
-                               reg = <0x740000 0x40000>;
+                               reg = <0x6c0000 0x40000>;
                        };
 
                        partition@800000 {
                        <&mcu_r5fss0_core1_memory_region>;
 };
 
+&main_r5fss0 {
+       ti,cluster-mode = <0>;
+};
+
+&main_r5fss1 {
+       ti,cluster-mode = <0>;
+};
+
+/* Timers are used by Remoteproc firmware */
+&main_timer0 {
+       status = "reserved";
+};
+
+&main_timer1 {
+       status = "reserved";
+};
+
+&main_timer2 {
+       status = "reserved";
+};
+
+&main_timer3 {
+       status = "reserved";
+};
+
+&main_timer4 {
+       status = "reserved";
+};
+
+&main_timer5 {
+       status = "reserved";
+};
+
 &main_r5fss0_core0 {
        mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
        memory-region = <&main_r5fss0_core0_dma_memory_region>,
index 3f655852244ee7147e97c5138fbcf1804d4b8d27..1e36965a14032ca07143230855e04b9549f1d0d1 100644 (file)
                        <&mcu_r5fss0_core1_memory_region>;
 };
 
+&main_r5fss0 {
+       ti,cluster-mode = <0>;
+};
+
+&main_r5fss1 {
+       ti,cluster-mode = <0>;
+};
+
+/* Timers are used by Remoteproc firmware */
+&main_timer0 {
+       status = "reserved";
+};
+
+&main_timer1 {
+       status = "reserved";
+};
+
+&main_timer2 {
+       status = "reserved";
+};
+
+&main_timer3 {
+       status = "reserved";
+};
+
+&main_timer4 {
+       status = "reserved";
+};
+
+&main_timer5 {
+       status = "reserved";
+};
+
+&main_timer6 {
+       status = "reserved";
+};
+
+&main_timer7 {
+       status = "reserved";
+};
+
+&main_timer8 {
+       status = "reserved";
+};
+
+&main_timer9 {
+       status = "reserved";
+};
+
+&main_r5fss2 {
+       ti,cluster-mode = <0>;
+};
+
 &main_r5fss0_core0 {
        mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
        memory-region = <&main_r5fss0_core0_dma_memory_region>,
index 21fe194a576625319e8fb0663e53a636ea2d14bf..e78b4622a7d1ff320259b17850e8f1735508f7dd 100644 (file)
                };
        };
 
-       mux0: mux-controller {
+       mux0: mux-controller-0 {
                compatible = "gpio-mux";
                #mux-state-cells = <1>;
                mux-gpios = <&exp_som 1 GPIO_ACTIVE_HIGH>;
        };
 
-       mux1: mux-controller {
+       mux1: mux-controller-1 {
                compatible = "gpio-mux";
                #mux-state-cells = <1>;
                mux-gpios = <&exp_som 2 GPIO_ACTIVE_HIGH>;
                        <&mcu_r5fss0_core1_memory_region>;
 };
 
+&main_r5fss0 {
+       ti,cluster-mode = <0>;
+};
+
+/* Timers are used by Remoteproc firmware */
+&main_timer0 {
+       status = "reserved";
+};
+
+&main_timer1 {
+       status = "reserved";
+};
+
+&main_timer2 {
+       status = "reserved";
+};
+
 &main_r5fss0_core0 {
        mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
        memory-region = <&main_r5fss0_core0_dma_memory_region>,
index a2925555fe818085fd64a7e52c5f14dbfc504e93..fb899c99753ecdd3c1c4a3d7749d364c33b9e9e1 100644 (file)
                        no-map;
                };
 
-               c66_1_dma_memory_region: c66-dma-memory@a6000000 {
+               c66_0_dma_memory_region: c66-dma-memory@a6000000 {
                        compatible = "shared-dma-pool";
                        reg = <0x00 0xa6000000 0x00 0x100000>;
                        no-map;
                        no-map;
                };
 
-               c66_0_dma_memory_region: c66-dma-memory@a7000000 {
+               c66_1_dma_memory_region: c66-dma-memory@a7000000 {
                        compatible = "shared-dma-pool";
                        reg = <0x00 0xa7000000 0x00 0x100000>;
                        no-map;
index 6b6ef6a30614262627c3f722cd47fcd975de67bf..3731ffb4a5c9630c06c5dd5f954af8c68704df2c 100644 (file)
                         <0x0 0x47034000 0x0 0x47034000 0x0 0x100>, /* HBMC Control */
                         <0x0 0x47040000 0x0 0x47040000 0x0 0x100>, /* OSPI0 Control */
                         <0x0 0x47050000 0x0 0x47050000 0x0 0x100>, /* OSPI1 Control */
-                        <0x5 0x00000000 0x5 0x00000000 0x1 0x0000000>, /* HBMC/OSPI0 Memory */
-                        <0x7 0x00000000 0x7 0x00000000 0x1 0x0000000>; /* OSPI1 Memory */
+                        <0x0 0x50000000 0x0 0x50000000 0x0 0x10000000>, /* FSS data region 1 */
+                        <0x4 0x00000000 0x4 0x00000000 0x4 0x00000000>; /* FSS data region 0/3 */
 
                hbmc_mux: mux-controller@47000004 {
                        compatible = "reg-mux";
                hbmc: hyperbus@47034000 {
                        compatible = "ti,am654-hbmc";
                        reg = <0x00 0x47034000 0x00 0x100>,
-                               <0x05 0x00000000 0x01 0x0000000>;
+                             <0x05 0x00000000 0x01 0x00000000>;
                        power-domains = <&k3_pds 102 TI_SCI_PD_EXCLUSIVE>;
                        clocks = <&k3_clks 102 0>;
                        assigned-clocks = <&k3_clks 102 5>;
                ospi0: spi@47040000 {
                        compatible = "ti,am654-ospi", "cdns,qspi-nor";
                        reg = <0x0 0x47040000 0x0 0x100>,
-                               <0x5 0x00000000 0x1 0x0000000>;
+                             <0x5 0x00000000 0x1 0x00000000>;
                        interrupts = <GIC_SPI 840 IRQ_TYPE_LEVEL_HIGH>;
                        cdns,fifo-depth = <256>;
                        cdns,fifo-width = <4>;
                ospi1: spi@47050000 {
                        compatible = "ti,am654-ospi", "cdns,qspi-nor";
                        reg = <0x0 0x47050000 0x0 0x100>,
-                               <0x7 0x00000000 0x1 0x00000000>;
+                             <0x7 0x00000000 0x1 0x00000000>;
                        interrupts = <GIC_SPI 841 IRQ_TYPE_LEVEL_HIGH>;
                        cdns,fifo-depth = <256>;
                        cdns,fifo-width = <4>;
index 89fbfb21e5d3b22537e6ad697b1f2c30864b863e..6285e8d94ddeb75003468176bfbad7150c77facf 100644 (file)
                        no-map;
                };
 
-               c66_1_dma_memory_region: c66-dma-memory@a6000000 {
+               c66_0_dma_memory_region: c66-dma-memory@a6000000 {
                        compatible = "shared-dma-pool";
                        reg = <0x00 0xa6000000 0x00 0x100000>;
                        no-map;
                        no-map;
                };
 
-               c66_0_dma_memory_region: c66-dma-memory@a7000000 {
+               c66_1_dma_memory_region: c66-dma-memory@a7000000 {
                        compatible = "shared-dma-pool";
                        reg = <0x00 0xa7000000 0x00 0x100000>;
                        no-map;
                        <&mcu_r5fss0_core1_memory_region>;
 };
 
+&main_r5fss0 {
+       ti,cluster-mode = <0>;
+};
+
+&main_r5fss1 {
+       ti,cluster-mode = <0>;
+};
+
+/* Timers are used by Remoteproc firmware */
+&main_timer0 {
+       status = "reserved";
+};
+
+&main_timer1 {
+       status = "reserved";
+};
+
+&main_timer2 {
+       status = "reserved";
+};
+
+&main_timer12 {
+       status = "reserved";
+};
+
+&main_timer13 {
+       status = "reserved";
+};
+
+&main_timer14 {
+       status = "reserved";
+};
+
+&main_timer15 {
+       status = "reserved";
+};
+
 &main_r5fss0_core0 {
        mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
        memory-region = <&main_r5fss0_core0_dma_memory_region>,
index 5ba947771b842dea3ef3ceaa0b864d981e880dd5..cef47c67493fcc24f56f3cbd409a0268aaa5176f 100644 (file)
                        <&mcu_r5fss0_core1_memory_region>;
 };
 
+&main_r5fss0 {
+       ti,cluster-mode = <0>;
+};
+
+&main_r5fss1 {
+       ti,cluster-mode = <0>;
+};
+
+/* Timers are used by Remoteproc firmware */
+&main_timer0 {
+       status = "reserved";
+};
+
+&main_timer1 {
+       status = "reserved";
+};
+
+&main_timer2 {
+       status = "reserved";
+};
+
+&main_timer12 {
+       status = "reserved";
+};
+
+&main_timer13 {
+       status = "reserved";
+};
+
+&main_timer14 {
+       status = "reserved";
+};
+
+&main_timer15 {
+       status = "reserved";
+};
+
 &main_r5fss0_core0 {
        mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
        memory-region = <&main_r5fss0_core0_dma_memory_region>,
index 5a72c518ceb6be4c9a3d67fd209394dc2b291507..a7f2f52f42f71b42005498cc5970727079d79b15 100644 (file)
                         <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>,
                         <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>,
                         <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>,
-                        <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>,
-                        <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>;
+                        <0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>;
 
                cbass_mcu_wakeup: bus@28380000 {
                        compatible = "simple-bus";
                                 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */
                                 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */
                                 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, /* OSPI register space */
-                                <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS OSPI0/1 data region 0 */
-                                <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>, /* FSS OSPI0 data region 3 */
-                                <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>; /* FSS OSPI1 data region 3*/
+                                <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS data region 1 */
+                                <0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>; /* FSS data region 0/3 */
                };
        };
 
index 1be28283c7d9a77c4f5279c35d9bc3a782810331..8583178fa1f3ed81fcc45f93567de8148c2984d1 100644 (file)
@@ -48,7 +48,7 @@
 };
 
 &exp1 {
-       p15 {
+       p15-hog {
                /* P15 - EXP_MUX2 */
                gpio-hog;
                gpios = <13 GPIO_ACTIVE_HIGH>;
index 8feb42c89e4760c79f5d30f530ef1398cdeab4ab..9d96b19d0e7cf5bb86b50c73f4ec1a6b43b8bf83 100644 (file)
                #address-cells = <2>;
                #size-cells = <2>;
                ranges = <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>,
-                        <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>,
-                        <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>;
+                        <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>,
+                        <0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>;
 
                ospi0: spi@47040000 {
                        compatible = "ti,am654-ospi", "cdns,qspi-nor";
index 82aacc01e8fe88f02888c928022bb6f415646b0c..89252e4a5f1bc2472b2464faf2fb727c9eedab4e 100644 (file)
                };
        };
 
-       mux0: mux-controller {
+       mux0: mux-controller-0 {
                compatible = "gpio-mux";
                #mux-state-cells = <1>;
                mux-gpios = <&exp_som 1 GPIO_ACTIVE_HIGH>;
        };
 
-       mux1: mux-controller {
+       mux1: mux-controller-1 {
                compatible = "gpio-mux";
                #mux-state-cells = <1>;
                mux-gpios = <&exp_som 2 GPIO_ACTIVE_HIGH>;
                        <&mcu_r5fss0_core1_memory_region>;
 };
 
+&main_r5fss0 {
+       ti,cluster-mode = <0>;
+};
+
+&main_r5fss1 {
+       ti,cluster-mode = <0>;
+};
+
+/* Timers are used by Remoteproc firmware */
+&main_timer0 {
+       status = "reserved";
+};
+
+&main_timer1 {
+       status = "reserved";
+};
+
+&main_timer2 {
+       status = "reserved";
+};
+
+&main_timer3 {
+       status = "reserved";
+};
+
+&main_timer4 {
+       status = "reserved";
+};
+
+&main_timer5 {
+       status = "reserved";
+};
+
 &main_r5fss0_core0 {
        mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
        memory-region = <&main_r5fss0_core0_dma_memory_region>,
index 568e6a04619d82abf073a13ebf1cb57987227894..ea16f82822ae3cefaa0424f3f1b42d05c70b4615 100644 (file)
                         <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>,
                         <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>,
                         <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>,
-                        <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>,
-                        <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>;
+                        <0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>;
 
                cbass_mcu_wakeup: bus@28380000 {
                        compatible = "simple-bus";
                                 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */
                                 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */
                                 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, /* OSPI register space */
-                                <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS OSPI0/1 data region 0 */
-                                <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>, /* FSS OSPI0 data region 3 */
-                                <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>; /* FSS OSPI1 data region 3*/
+                                <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS data region 1 */
+                                <0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>; /* FSS data region 0/3 */
 
                };
 
index dd3b5f7039d7c1c6fd78bd56b3cd5304f1eb7f7b..a00f4a7d20d98f6ceee821026b332f15d69e9d09 100644 (file)
@@ -20,6 +20,7 @@
        aliases {
                serial0 = &wkup_uart0;
                serial2 = &main_uart0;
+               serial3 = &main_uart5;
                mmc0 = &sdhci0;
                mmc1 = &sdhci1;
        };
                        no-map;
                };
 
+               wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa0000000 0x00 0x100000>;
+                       no-map;
+               };
+
                wkup_r5fss0_core0_memory_region: r5f-memory@a0100000 {
                        compatible = "shared-dma-pool";
                        reg = <0x00 0xa0100000 0x00 0xf00000>;
                        no-map;
                };
 
+               mcu_r5fss0_core0_dma_memory_region: mcu-r5fss-dma-memory-region@a1000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa1000000 0x00 0x100000>;
+                       no-map;
+               };
+
+               mcu_r5fss0_core0_memory_region: mcu-r5fss-memory-region@a1100000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa1100000 0x00 0xf00000>;
+                       no-map;
+               };
+
+               main_r5fss0_core0_dma_memory_region: main-r5fss-dma-memory-region@a2000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa2000000 0x00 0x100000>;
+                       no-map;
+               };
+
+               main_r5fss0_core0_memory_region: main-r5fss-memory-region@a2100000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa2100000 0x00 0xf00000>;
+                       no-map;
+               };
+
+               c7x_0_dma_memory_region: c7x-dma-memory@a3000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa3000000 0x00 0x100000>;
+                       no-map;
+               };
+
+               c7x_0_memory_region: c7x-memory@a3100000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa3100000 0x00 0xf00000>;
+                       no-map;
+               };
+
+               c7x_1_dma_memory_region: c7x-dma-memory@a4000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa4000000 0x00 0x100000>;
+                       no-map;
+               };
+
+               c7x_1_memory_region: c7x-memory@a4100000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0xa4100000 0x00 0xf00000>;
+                       no-map;
+               };
+
+               rtos_ipc_memory_region: ipc-memories@a5000000 {
+                       reg = <0x00 0xa5000000 0x00 0x1c00000>;
+                       alignment = <0x1000>;
+                       no-map;
+               };
        };
 
        vmain_pd: regulator-0 {
                        clocks = <&audio_refclk1>;
                };
        };
+
+       transceiver0: can-phy0 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mcu_mcan0_gpio_pins_default>;
+               standby-gpios = <&mcu_gpio0 12 GPIO_ACTIVE_HIGH>;
+       };
+
+       transceiver1: can-phy1 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+       };
+
+       transceiver2: can-phy2 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               standby-gpios = <&exp1 17 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &main_pmx0 {
 
+       main_mcan0_pins_default: main-mcan0-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x1dc, PIN_INPUT, 0) /* (C22) MCAN0_RX */
+                       J722S_IOPAD(0x1d8, PIN_OUTPUT, 0) /*(D22) MCAN0_TX */
+               >;
+       };
+
        main_i2c0_pins_default: main-i2c0-default-pins {
                pinctrl-single,pins = <
                        J722S_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (D23) I2C0_SCL */
                bootph-all;
        };
 
+       main_uart5_pins_default: main-uart5-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x0108, PIN_INPUT, 3)       /* (J27) UART5_RXD */
+                       J722S_IOPAD(0x010c, PIN_OUTPUT, 3)      /* (H27) UART5_TXD */
+               >;
+       };
+
        vdd_sd_dv_pins_default: vdd-sd-dv-default-pins {
                pinctrl-single,pins = <
                        J722S_IOPAD(0x0120, PIN_INPUT, 7) /* (F27) MMC2_CMD.GPIO0_70 */
        bootph-all;
 };
 
+&main_uart5 {
+       /* MAIN UART 5 is used by System firmware */
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_uart5_pins_default>;
+       status = "reserved";
+};
+
 &mcu_pmx0 {
 
+       mcu_mcan0_pins_default: mcu-mcan0-default-pins {
+               pinctrl-single,pins = <
+                       J722S_MCU_IOPAD(0x038, PIN_INPUT, 0) /* (D8) MCU_MCAN0_RX */
+                       J722S_MCU_IOPAD(0x034, PIN_OUTPUT, 0) /* (B2) MCU_MCAN0_TX */
+               >;
+       };
+
+       mcu_mcan1_pins_default: mcu-mcan1-default-pins {
+               pinctrl-single,pins = <
+                       J722S_MCU_IOPAD(0x040, PIN_INPUT, 0) /* (B1) MCU_MCAN1_RX */
+                       J722S_MCU_IOPAD(0x03C, PIN_OUTPUT, 0) /*(C1) MCU_MCAN1_TX */
+               >;
+       };
+
+       mcu_mcan0_gpio_pins_default: mcu-mcan0-gpio-default-pins {
+               pinctrl-single,pins = <
+                       J722S_MCU_IOPAD(0x0030, PIN_OUTPUT, 7) /* (C3) MCU_GPIO0_12 */
+               >;
+       };
+
        wkup_uart0_pins_default: wkup-uart0-default-pins {
                pinctrl-single,pins = <
                        J722S_MCU_IOPAD(0x02c, PIN_INPUT, 0)    /* (C7) WKUP_UART0_CTSn */
        bootph-all;
 };
 
+&mailbox0_cluster0 {
+       status = "okay";
+
+       mbox_wkup_r5_0: mbox-wkup-r5-0 {
+               ti,mbox-rx = <0 0 0>;
+               ti,mbox-tx = <1 0 0>;
+       };
+};
+
+&mailbox0_cluster1 {
+       status = "okay";
+
+       mbox_mcu_r5_0: mbox-mcu-r5-0 {
+               ti,mbox-rx = <0 0 0>;
+               ti,mbox-tx = <1 0 0>;
+       };
+};
+
+&mailbox0_cluster2 {
+       status = "okay";
+
+       mbox_c7x_0: mbox-c7x-0 {
+               ti,mbox-rx = <0 0 0>;
+               ti,mbox-tx = <1 0 0>;
+       };
+};
+
+&mailbox0_cluster3 {
+       status = "okay";
+
+       mbox_main_r5_0: mbox-main-r5-0 {
+               ti,mbox-rx = <0 0 0>;
+               ti,mbox-tx = <1 0 0>;
+       };
+
+       mbox_c7x_1: mbox-c7x-1 {
+               ti,mbox-rx = <2 0 0>;
+               ti,mbox-tx = <3 0 0>;
+       };
+};
+
+/* Timers are used by Remoteproc firmware */
+&main_timer0 {
+       status = "reserved";
+};
+
+&main_timer1 {
+       status = "reserved";
+};
+
+&main_timer2 {
+       status = "reserved";
+};
+
+&wkup_r5fss0 {
+       status = "okay";
+};
+
+&wkup_r5fss0_core0 {
+       mboxes = <&mailbox0_cluster0 &mbox_wkup_r5_0>;
+       memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
+                       <&wkup_r5fss0_core0_memory_region>;
+};
+
+&mcu_r5fss0 {
+       status = "okay";
+};
+
+&mcu_r5fss0_core0 {
+       mboxes = <&mailbox0_cluster1 &mbox_mcu_r5_0>;
+       memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
+                       <&mcu_r5fss0_core0_memory_region>;
+};
+
+&main_r5fss0 {
+       status = "okay";
+};
+
+&main_r5fss0_core0 {
+       mboxes = <&mailbox0_cluster3 &mbox_main_r5_0>;
+       memory-region = <&main_r5fss0_core0_dma_memory_region>,
+                       <&main_r5fss0_core0_memory_region>;
+};
+
+&c7x_0 {
+       mboxes = <&mailbox0_cluster2 &mbox_c7x_0>;
+       memory-region = <&c7x_0_dma_memory_region>,
+                       <&c7x_0_memory_region>;
+       status = "okay";
+};
+
+&c7x_1 {
+       mboxes = <&mailbox0_cluster3 &mbox_c7x_1>;
+       memory-region = <&c7x_1_dma_memory_region>,
+                       <&c7x_1_memory_region>;
+       status = "okay";
+};
+
 &serdes_ln_ctrl {
        idle-states = <J722S_SERDES0_LANE0_USB>,
                      <J722S_SERDES1_LANE0_PCIE0_LANE0>;
               0 0 0 0
        >;
 };
+
+&mcu_mcan0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan0_pins_default>;
+       phys = <&transceiver0>;
+       status = "okay";
+};
+
+&mcu_mcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan1_pins_default>;
+       phys = <&transceiver1>;
+       status = "okay";
+};
+
+&main_mcan0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcan0_pins_default>;
+       phys = <&transceiver2>;
+       status = "okay";
+};
+
+&mcu_gpio0 {
+       status = "okay";
+};
index dde4bd5c664539dc8b24ed4d9e05d09e1bf07ba4..ed6f4ba08afca157561fa2310e31b81f1e429720 100644 (file)
                        dr_mode = "otg";
                };
        };
+
+       main_r5fss0: r5fss@78400000 {
+               compatible = "ti,am62-r5fss";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x78400000 0x00 0x78400000 0x8000>,
+                        <0x78500000 0x00 0x78500000 0x8000>;
+               power-domains = <&k3_pds 261 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+
+               main_r5fss0_core0: r5f@78400000 {
+                       compatible = "ti,am62-r5f";
+                       reg = <0x78400000 0x00008000>,
+                             <0x78500000 0x00008000>;
+                       reg-names = "atcm", "btcm";
+                       resets = <&k3_reset 262 1>;
+                       firmware-name = "j722s-main-r5f0_0-fw";
+                       ti,sci = <&dmsc>;
+                       ti,sci-dev-id = <262>;
+                       ti,sci-proc-ids = <0x04 0xff>;
+                       ti,atcm-enable = <1>;
+                       ti,btcm-enable = <1>;
+                       ti,loczrama = <1>;
+               };
+       };
+
+       c7x_0: dsp@7e000000 {
+               compatible = "ti,am62a-c7xv-dsp";
+               reg = <0x00 0x7e000000 0x00 0x00200000>;
+               reg-names = "l2sram";
+               resets = <&k3_reset 208 1>;
+               firmware-name = "j722s-c71_0-fw";
+               ti,sci = <&dmsc>;
+               ti,sci-dev-id = <208>;
+               ti,sci-proc-ids = <0x30 0xff>;
+               status = "disabled";
+       };
+
+       c7x_1: dsp@7e200000 {
+               compatible = "ti,am62a-c7xv-dsp";
+               reg = <0x00 0x7e200000 0x00 0x00200000>;
+               reg-names = "l2sram";
+               resets = <&k3_reset 268 1>;
+               firmware-name = "j722s-c71_1-fw";
+               ti,sci = <&dmsc>;
+               ti,sci-dev-id = <268>;
+               ti,sci-proc-ids = <0x31 0xff>;
+               status = "disabled";
+       };
+};
+
+/* MCU domain overrides */
+
+&mcu_r5fss0_core0 {
+       firmware-name = "j722s-mcu-r5f0_0-fw";
+};
+
+/* Wakeup domain overrides */
+
+&wkup_r5fss0_core0 {
+       firmware-name = "j722s-wkup-r5f0_0-fw";
 };
 
 &main_conf {
 &main_gpio1 {
        gpio-ranges = <&main_pmx0 7 101 25>, <&main_pmx0 42 137 5>,
                        <&main_pmx0 47 143 3>, <&main_pmx0 50 149 2>;
+       gpio-reserved-ranges = <0 7>, <32 10>;
        ti,ngpio = <73>;
 };
index ffa38f41679d8436f570682dc6133c53f51bbef3..6695ebbcb4d0b110e3f339509c4432eb4ef0b81c 100644 (file)
                        <&mcu_r5fss0_core1_memory_region>;
 };
 
+&main_r5fss0 {
+       ti,cluster-mode = <0>;
+};
+
+&main_r5fss1 {
+       ti,cluster-mode = <0>;
+};
+
+&main_r5fss2 {
+       ti,cluster-mode = <0>;
+};
+
+/* Timers are used by Remoteproc firmware */
+&main_timer0 {
+       status = "reserved";
+};
+
+&main_timer1 {
+       status = "reserved";
+};
+
+&main_timer2 {
+       status = "reserved";
+};
+
+&main_timer3 {
+       status = "reserved";
+};
+
+&main_timer4 {
+       status = "reserved";
+};
+
+&main_timer5 {
+       status = "reserved";
+};
+
+&main_timer6 {
+       status = "reserved";
+};
+
+&main_timer7 {
+       status = "reserved";
+};
+
+&main_timer8 {
+       status = "reserved";
+};
+
+&main_timer9 {
+       status = "reserved";
+};
+
 &main_r5fss0_core0 {
        status = "okay";
        mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>;
 
        serdes1_pcie0_link: phy@0 {
                reg = <0>;
-               cdns,num-lanes = <2>;
+               cdns,num-lanes = <4>;
                #phy-cells = <0>;
                cdns,phy-type = <PHY_TYPE_PCIE>;
-               resets = <&serdes_wiz1 1>, <&serdes_wiz1 2>;
+               resets = <&serdes_wiz1 1>, <&serdes_wiz1 2>,
+                        <&serdes_wiz1 3>, <&serdes_wiz1 4>;
        };
 };
 
index d4ac1c9872a5e70ff9bf9e3f6146d92fce780a34..e73bb750b09ad5d7503d21574dc912568c880cd1 100644 (file)
        watchdog0: watchdog@2200000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2200000 0x00 0x100>;
-               clocks = <&k3_clks 348 1>;
+               clocks = <&k3_clks 348 0>;
                power-domains = <&k3_pds 348 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 348 0>;
                assigned-clock-parents = <&k3_clks 348 4>;
        watchdog1: watchdog@2210000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2210000 0x00 0x100>;
-               clocks = <&k3_clks 349 1>;
+               clocks = <&k3_clks 349 0>;
                power-domains = <&k3_pds 349 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 349 0>;
                assigned-clock-parents = <&k3_clks 349 4>;
        watchdog2: watchdog@2220000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2220000 0x00 0x100>;
-               clocks = <&k3_clks 350 1>;
+               clocks = <&k3_clks 350 0>;
                power-domains = <&k3_pds 350 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 350 0>;
                assigned-clock-parents = <&k3_clks 350 4>;
        watchdog3: watchdog@2230000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2230000 0x00 0x100>;
-               clocks = <&k3_clks 351 1>;
+               clocks = <&k3_clks 351 0>;
                power-domains = <&k3_pds 351 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 351 0>;
                assigned-clock-parents = <&k3_clks 351 4>;
        watchdog4: watchdog@2240000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2240000 0x00 0x100>;
-               clocks = <&k3_clks 352 1>;
+               clocks = <&k3_clks 352 0>;
                power-domains = <&k3_pds 352 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 352 0>;
                assigned-clock-parents = <&k3_clks 352 4>;
        watchdog5: watchdog@2250000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2250000 0x00 0x100>;
-               clocks = <&k3_clks 353 1>;
+               clocks = <&k3_clks 353 0>;
                power-domains = <&k3_pds 353 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 353 0>;
                assigned-clock-parents = <&k3_clks 353 4>;
        watchdog6: watchdog@2260000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2260000 0x00 0x100>;
-               clocks = <&k3_clks 354 1>;
+               clocks = <&k3_clks 354 0>;
                power-domains = <&k3_pds 354 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 354 0>;
                assigned-clock-parents = <&k3_clks 354 4>;
        watchdog7: watchdog@2270000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2270000 0x00 0x100>;
-               clocks = <&k3_clks 355 1>;
+               clocks = <&k3_clks 355 0>;
                power-domains = <&k3_pds 355 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 355 0>;
                assigned-clock-parents = <&k3_clks 355 4>;
        watchdog8: watchdog@22f0000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x22f0000 0x00 0x100>;
-               clocks = <&k3_clks 360 1>;
+               clocks = <&k3_clks 360 0>;
                power-domains = <&k3_pds 360 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 360 0>;
                assigned-clock-parents = <&k3_clks 360 4>;
        watchdog9: watchdog@2300000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2300000 0x00 0x100>;
-               clocks = <&k3_clks 356 1>;
+               clocks = <&k3_clks 356 0>;
                power-domains = <&k3_pds 356 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 356 0>;
                assigned-clock-parents = <&k3_clks 356 4>;
        watchdog10: watchdog@2310000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2310000 0x00 0x100>;
-               clocks = <&k3_clks 357 1>;
+               clocks = <&k3_clks 357 0>;
                power-domains = <&k3_pds 357 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 357 0>;
                assigned-clock-parents = <&k3_clks 357 4>;
        watchdog11: watchdog@2320000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2320000 0x00 0x100>;
-               clocks = <&k3_clks 358 1>;
+               clocks = <&k3_clks 358 0>;
                power-domains = <&k3_pds 358 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 358 0>;
                assigned-clock-parents = <&k3_clks 358 4>;
        watchdog12: watchdog@2330000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2330000 0x00 0x100>;
-               clocks = <&k3_clks 359 1>;
+               clocks = <&k3_clks 359 0>;
                power-domains = <&k3_pds 359 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 359 0>;
                assigned-clock-parents = <&k3_clks 359 4>;
        watchdog13: watchdog@23c0000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x23c0000 0x00 0x100>;
-               clocks = <&k3_clks 361 1>;
+               clocks = <&k3_clks 361 0>;
                power-domains = <&k3_pds 361 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 361 0>;
                assigned-clock-parents = <&k3_clks 361 4>;
        watchdog14: watchdog@23d0000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x23d0000 0x00 0x100>;
-               clocks = <&k3_clks 362 1>;
+               clocks = <&k3_clks 362 0>;
                power-domains = <&k3_pds 362 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 362 0>;
                assigned-clock-parents = <&k3_clks 362 4>;
        watchdog15: watchdog@23e0000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x23e0000 0x00 0x100>;
-               clocks = <&k3_clks 363 1>;
+               clocks = <&k3_clks 363 0>;
                power-domains = <&k3_pds 363 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 363 0>;
                assigned-clock-parents = <&k3_clks 363 4>;
        watchdog16: watchdog@23f0000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x23f0000 0x00 0x100>;
-               clocks = <&k3_clks 364 1>;
+               clocks = <&k3_clks 364 0>;
                power-domains = <&k3_pds 364 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 364 0>;
                assigned-clock-parents = <&k3_clks 364 4>;
        watchdog17: watchdog@2540000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2540000 0x00 0x100>;
-               clocks = <&k3_clks 365 1>;
+               clocks = <&k3_clks 365 0>;
                power-domains = <&k3_pds 365 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 365 0>;
                assigned-clock-parents = <&k3_clks 366 4>;
        watchdog18: watchdog@2550000 {
                compatible = "ti,j7-rti-wdt";
                reg = <0x00 0x2550000 0x00 0x100>;
-               clocks = <&k3_clks 366 1>;
+               clocks = <&k3_clks 366 0>;
                power-domains = <&k3_pds 366 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 366 0>;
                assigned-clock-parents = <&k3_clks 366 4>;
index f3a6ed1c979d038def19153371b74819ff84132b..f603380fc91cf4cb08b5248ff7c828b57503ef6f 100644 (file)
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <2>;
-               ranges = <0x0 0x47000000 0x0 0x47000000 0x0 0x100>, /* FSS Control */
-                        <0x0 0x47040000 0x0 0x47040000 0x0 0x100>, /* OSPI0 Control */
-                        <0x0 0x47050000 0x0 0x47050000 0x0 0x100>, /* OSPI1 Control */
-                        <0x5 0x00000000 0x5 0x00000000 0x1 0x0000000>, /* OSPI0 Memory */
-                        <0x7 0x00000000 0x7 0x00000000 0x1 0x0000000>; /* OSPI1 Memory */
+               ranges = <0x00 0x47000000 0x00 0x47000000 0x00 0x00000100>, /* FSS Control */
+                        <0x00 0x47040000 0x00 0x47040000 0x00 0x00000100>, /* OSPI0 Control */
+                        <0x00 0x47050000 0x00 0x47050000 0x00 0x00000100>, /* OSPI1 Control */
+                        <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS data region 1 */
+                        <0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>; /* FSS data region 0/3 */
 
                ospi0: spi@47040000 {
                        compatible = "ti,am654-ospi", "cdns,qspi-nor";
                        reg = <0x00 0x47040000 0x00 0x100>,
-                             <0x05 0x0000000 0x01 0x0000000>;
+                             <0x05 0x00000000 0x01 0x00000000>;
                        interrupts = <GIC_SPI 840 IRQ_TYPE_LEVEL_HIGH>;
                        cdns,fifo-depth = <256>;
                        cdns,fifo-width = <4>;
                ospi1: spi@47050000 {
                        compatible = "ti,am654-ospi", "cdns,qspi-nor";
                        reg = <0x00 0x47050000 0x00 0x100>,
-                             <0x07 0x0000000 0x01 0x0000000>;
+                             <0x07 0x00000000 0x01 0x00000000>;
                        interrupts = <GIC_SPI 841 IRQ_TYPE_LEVEL_HIGH>;
                        cdns,fifo-depth = <256>;
                        cdns,fifo-width = <4>;
index 73cc3c1fec08d3b8395177403767d0aafdb14dc2..5e84c6b4f5ad4808b9320b13cf7df801d4b1d04f 100644 (file)
                         <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>,
                         <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>,
                         <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>,
-                        <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>,
-                        <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>;
+                        <0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>;
 
                cbass_mcu_wakeup: bus@28380000 {
                        bootph-all;
                                 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */
                                 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */
                                 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, /* OSPI register space */
-                                <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS OSPI0/1 data region 0 */
-                                <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>, /* FSS OSPI0 data region 3 */
-                                <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>; /* FSS OSPI1 data region 3*/
+                                <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS data region 1 */
+                                <0x04 0x00000000 0x04 0x00000000 0x04 0x00000000>; /* FSS data region 0/3 */
                };
        };
 
index b04829b3175de017ce36790722ecbfed024dd297..39806f0ae51337cddacbba60eb98e241f58f7cf7 100644 (file)
                        interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&uart0_pins>;
-                       clocks = <&pismu TMPV770X_CLK_PIUART0>;
-                       clock-names = "apb_pclk";
+                       clocks = <&pismu TMPV770X_CLK_PIUART0>, <&pismu TMPV770X_CLK_PIUART0>;
+                       clock-names = "uartclk", "apb_pclk";
                        status = "disabled";
                };
 
                        interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&uart1_pins>;
-                       clocks = <&pismu TMPV770X_CLK_PIUART1>;
-                       clock-names = "apb_pclk";
+                       clocks = <&pismu TMPV770X_CLK_PIUART1>, <&pismu TMPV770X_CLK_PIUART1>;
+                       clock-names = "uartclk", "apb_pclk";
                        status = "disabled";
                };
 
                        interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&uart2_pins>;
-                       clocks = <&pismu TMPV770X_CLK_PIUART2>;
-                       clock-names = "apb_pclk";
+                       clocks = <&pismu TMPV770X_CLK_PIUART2>, <&pismu TMPV770X_CLK_PIUART2>;
+                       clock-names = "uartclk", "apb_pclk";
                        status = "disabled";
                };
 
                        interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&uart3_pins>;
-                       clocks = <&pismu TMPV770X_CLK_PIUART2>;
-                       clock-names = "apb_pclk";
+                       clocks = <&pismu TMPV770X_CLK_PIUART2>, <&pismu TMPV770X_CLK_PIUART2>;
+                       clock-names = "uartclk", "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       clocks = <&pismu TMPV770X_CLK_PISPI1>;
-                       clock-names = "apb_pclk";
+                       clocks = <&pismu TMPV770X_CLK_PISPI1>, <&pismu TMPV770X_CLK_PISPI1>;
+                       clock-names = "sspclk", "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       clocks = <&pismu TMPV770X_CLK_PISPI1>;
-                       clock-names = "apb_pclk";
+                       clocks = <&pismu TMPV770X_CLK_PISPI1>, <&pismu TMPV770X_CLK_PISPI1>;
+                       clock-names = "sspclk", "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       clocks = <&pismu TMPV770X_CLK_PISPI2>;
-                       clock-names = "apb_pclk";
+                       clocks = <&pismu TMPV770X_CLK_PISPI2>, <&pismu TMPV770X_CLK_PISPI2>;
+                       clock-names = "sspclk", "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       clocks = <&pismu TMPV770X_CLK_PISPI3>;
-                       clock-names = "apb_pclk";
+                       clocks = <&pismu TMPV770X_CLK_PISPI3>, <&pismu TMPV770X_CLK_PISPI3>;
+                       clock-names = "sspclk", "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       clocks = <&pismu TMPV770X_CLK_PISPI4>;
-                       clock-names = "apb_pclk";
+                       clocks = <&pismu TMPV770X_CLK_PISPI4>, <&pismu TMPV770X_CLK_PISPI4>;
+                       clock-names = "sspclk", "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       clocks = <&pismu TMPV770X_CLK_PISPI5>;
-                       clock-names = "apb_pclk";
+                       clocks = <&pismu TMPV770X_CLK_PISPI5>, <&pismu TMPV770X_CLK_PISPI5>;
+                       clock-names = "sspclk", "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       clocks = <&pismu TMPV770X_CLK_PISPI6>;
-                       clock-names = "apb_pclk";
+                       clocks = <&pismu TMPV770X_CLK_PISPI6>, <&pismu TMPV770X_CLK_PISPI6>;
+                       clock-names = "sspclk", "apb_pclk";
                        status = "disabled";
                };
 
index ad8f23a0ec67ba8a3907c046427984a665559cae..d2175f3dd09920ad27a7a85a555f3ef048a17a1d 100644 (file)
 
 &pcie {
        status = "okay";
+       phys = <&psgtr 0 PHY_TYPE_PCIE 0 0>;
 };
 
 &psgtr {
index aa361f3a86bb5867b2dea51652a27f98e0e29365..7b5f57853690b34c4f64148a2cdff4f05b6cf16e 100644 (file)
        clock-frequency = <25000000>;
 };
 
+&sdhci0 {
+       status = "okay";
+       bus-width = <4>;
+       no-1-8-v;
+       no-mmc;
+       no-sdio;
+       disable-wp;
+};
+
 &uart0 {
        status = "okay";
 };
index 891932ae470f3421ee6a9c0ee2660603f9904c69..b724fb6d9689ef65cfe9470a1f614df30e4ca147 100644 (file)
                        status = "disabled";
                };
 
+               dmac: dma-controller@4330000 {
+                       compatible = "snps,axi-dma-1.01a";
+                       reg = <0x04330000 0x1000>;
+                       interrupts = <29 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk CLK_SDMA_AXI>, <&clk CLK_SDMA_AXI>;
+                       clock-names = "core-clk", "cfgr-clk";
+                       #dma-cells = <1>;
+                       dma-channels = <8>;
+                       snps,block-size = <1024 1024 1024 1024
+                                          1024 1024 1024 1024>;
+                       snps,priority = <0 1 2 3 4 5 6 7>;
+                       snps,dma-masters = <2>;
+                       snps,data-width = <4>;
+                       status = "disabled";
+               };
+
                plic: interrupt-controller@70000000 {
                        reg = <0x70000000 0x4000000>;
                        interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>;
index 80cb017974d883a38419835c8b895103d5c1b1d6..a3f9d6f2256659039b45c5e270fc8be674347666 100644 (file)
        clock-frequency = <25000000>;
 };
 
+&emmc {
+       bus-width = <4>;
+       no-sdio;
+       no-sd;
+       non-removable;
+       wp-inverted;
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+
+       mcu: syscon@17 {
+               compatible = "sophgo,sg2042-hwmon-mcu";
+               reg = <0x17>;
+               #thermal-sensor-cells = <1>;
+       };
+};
+
+&sd {
+       bus-width = <4>;
+       no-sdio;
+       no-mmc;
+       wp-inverted;
+       status = "okay";
+};
+
 &uart0 {
        status = "okay";
 };
+
+/ {
+       thermal-zones {
+               soc-thermal {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&mcu 0>;
+
+                       trips {
+                               soc_active1: soc-active1 {
+                                       temperature = <30000>;
+                                       hysteresis = <8000>;
+                                       type = "active";
+                               };
+
+                               soc_active2: soc-active2 {
+                                       temperature = <58000>;
+                                       hysteresis = <12000>;
+                                       type = "active";
+                               };
+
+                               soc_active3: soc-active3 {
+                                       temperature = <70000>;
+                                       hysteresis = <10000>;
+                                       type = "active";
+                               };
+
+                               soc_hot: soc-hot {
+                                       temperature = <80000>;
+                                       hysteresis = <5000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               board-thermal {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&mcu 1>;
+
+                       trips {
+                               board_active: board-active {
+                                       temperature = <75000>;
+                                       hysteresis = <8000>;
+                                       type = "active";
+                               };
+                       };
+               };
+       };
+};
index 34c802bd3f9b8e51ce13841bf5e715421d1f338d..e62ac51ac55abd922b5ef796ba8c2196383850c4 100644 (file)
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <2>;
+               interrupt-parent = <&intc>;
                ranges;
 
+               i2c0: i2c@7030005000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x70 0x30005000 0x0 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clkgen GATE_CLK_APB_I2C>;
+                       clock-names = "ref";
+                       clock-frequency = <100000>;
+                       interrupts = <101 IRQ_TYPE_LEVEL_HIGH>;
+                       resets = <&rstgen RST_I2C0>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@7030006000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x70 0x30006000 0x0 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clkgen GATE_CLK_APB_I2C>;
+                       clock-names = "ref";
+                       clock-frequency = <100000>;
+                       interrupts = <102 IRQ_TYPE_LEVEL_HIGH>;
+                       resets = <&rstgen RST_I2C1>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@7030007000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x70 0x30007000 0x0 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clkgen GATE_CLK_APB_I2C>;
+                       clock-names = "ref";
+                       clock-frequency = <100000>;
+                       interrupts = <103 IRQ_TYPE_LEVEL_HIGH>;
+                       resets = <&rstgen RST_I2C2>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@7030008000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x70 0x30008000 0x0 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clkgen GATE_CLK_APB_I2C>;
+                       clock-names = "ref";
+                       clock-frequency = <100000>;
+                       interrupts = <104 IRQ_TYPE_LEVEL_HIGH>;
+                       resets = <&rstgen RST_I2C3>;
+                       status = "disabled";
+               };
+
+               gpio0: gpio@7030009000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x70 0x30009000 0x0 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clkgen GATE_CLK_APB_GPIO>,
+                                <&clkgen GATE_CLK_GPIO_DB>;
+                       clock-names = "bus", "db";
+
+                       port0a: gpio-controller@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               ngpios = <32>;
+                               reg = <0>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               interrupt-parent = <&intc>;
+                               interrupts = <96 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               gpio1: gpio@703000a000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x70 0x3000a000 0x0 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clkgen GATE_CLK_APB_GPIO>,
+                                <&clkgen GATE_CLK_GPIO_DB>;
+                       clock-names = "bus", "db";
+
+                       port1a: gpio-controller@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               ngpios = <32>;
+                               reg = <0>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               interrupt-parent = <&intc>;
+                               interrupts = <97 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               gpio2: gpio@703000b000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x70 0x3000b000 0x0 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clkgen GATE_CLK_APB_GPIO>,
+                                <&clkgen GATE_CLK_GPIO_DB>;
+                       clock-names = "bus", "db";
+
+                       port2a: gpio-controller@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               ngpios = <32>;
+                               reg = <0>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               interrupt-parent = <&intc>;
+                               interrupts = <98 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
                pllclk: clock-controller@70300100c0 {
                        compatible = "sophgo,sg2042-pll";
                        reg = <0x70 0x300100c0 0x0 0x40>;
                uart0: serial@7040000000 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0x00000070 0x40000000 0x00000000 0x00001000>;
-                       interrupt-parent = <&intc>;
                        interrupts = <112 IRQ_TYPE_LEVEL_HIGH>;
                        clock-frequency = <500000000>;
                        clocks = <&clkgen GATE_CLK_UART_500M>,
                        resets = <&rstgen RST_UART0>;
                        status = "disabled";
                };
+
+               emmc: mmc@704002a000 {
+                       compatible = "sophgo,sg2042-dwcmshc";
+                       reg = <0x70 0x4002a000 0x0 0x1000>;
+                       interrupt-parent = <&intc>;
+                       interrupts = <134 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clkgen GATE_CLK_EMMC_100M>,
+                                <&clkgen GATE_CLK_AXI_EMMC>,
+                                <&clkgen GATE_CLK_100K_EMMC>;
+                       clock-names = "core",
+                                     "bus",
+                                     "timer";
+                       status = "disabled";
+               };
+
+               sd: mmc@704002b000 {
+                       compatible = "sophgo,sg2042-dwcmshc";
+                       reg = <0x70 0x4002b000 0x0 0x1000>;
+                       interrupt-parent = <&intc>;
+                       interrupts = <136 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clkgen GATE_CLK_SD_100M>,
+                                <&clkgen GATE_CLK_AXI_SD>,
+                                <&clkgen GATE_CLK_100K_SD>;
+                       clock-names = "core",
+                                     "bus",
+                                     "timer";
+                       status = "disabled";
+               };
        };
 };
index c7771b3b64758893759a822422f001cf3cbfa44d..d6c55f1cc96a9242b8a9ef63060c72a1498caf1b 100644 (file)
        assigned-clocks = <&ispcrg JH7110_ISPCLK_DOM4_APB_FUNC>,
                          <&ispcrg JH7110_ISPCLK_MIPI_RX0_PXL>;
        assigned-clock-rates = <49500000>, <198000000>;
-       status = "okay";
 
        ports {
                #address-cells = <1>;
 &csi2rx {
        assigned-clocks = <&ispcrg JH7110_ISPCLK_VIN_SYS>;
        assigned-clock-rates = <297000000>;
-       status = "okay";
 
        ports {
                #address-cells = <1>;
index b720cdd15ed6e806a772935bfcb45d7b29756625..8e39fdc73ecb81030dee5f12ea4a050105286fd7 100644 (file)
@@ -44,8 +44,7 @@
 };
 
 &phy0 {
-       rx-internal-delay-ps = <1900>;
-       tx-internal-delay-ps = <1500>;
+       rx-internal-delay-ps = <1500>;
        motorcomm,rx-clk-drv-microamp = <2910>;
        motorcomm,rx-data-drv-microamp = <2910>;
        motorcomm,tx-clk-adj-enabled;
index d9b4de9e4757421dfffdf68a6ddfe574a9f28822..497d961456f3a1d497af7b337aa63cc2dcdbb2ca 100644 (file)
@@ -23,6 +23,7 @@
                serial3 = &uart3;
                serial4 = &uart4;
                serial5 = &uart5;
+               spi0 = &spi0;
        };
 
        chosen {
        clock-frequency = <32768>;
 };
 
-&apb_clk {
-       clock-frequency = <62500000>;
-};
-
-&sdhci_clk {
-       clock-frequency = <198000000>;
-};
-
-&uart_sclk {
-       clock-frequency = <100000000>;
-};
-
 &dmac0 {
        status = "okay";
 };
@@ -79,3 +68,7 @@
 &uart0 {
        status = "okay";
 };
+
+&spi0 {
+       status = "okay";
+};
index 1365d3a512a3b9df7fffdcfa2262f822fd819a9d..78977bdbbe3d31a081e1df1b14788ce1ff905daf 100644 (file)
        clock-frequency = <32768>;
 };
 
-&apb_clk {
-       clock-frequency = <62500000>;
-};
-
-&sdhci_clk {
-       clock-frequency = <198000000>;
-};
-
-&uart_sclk {
-       clock-frequency = <100000000>;
-};
-
 &dmac0 {
        status = "okay";
 };
index 9a3884a73e13721f26ee5927eea80b3e71da0959..7738d2895c5accc25028b61135949b5f98471fef 100644 (file)
@@ -20,6 +20,7 @@
                serial3 = &uart3;
                serial4 = &uart4;
                serial5 = &uart5;
+               spi0 = &spi0;
        };
 
        chosen {
@@ -30,3 +31,7 @@
 &uart0 {
        status = "okay";
 };
+
+&spi0 {
+       status = "okay";
+};
index 3c9974062c206b870ebe85b91da2a04e5bc7b879..6992060e6a54d2c3391de9d523e6eba1457d2965 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/clock/thead,th1520-clk-ap.h>
 
 / {
        compatible = "thead,th1520";
                #clock-cells = <0>;
        };
 
-       apb_clk: apb-clk-clock {
-               compatible = "fixed-clock";
-               clock-output-names = "apb_clk";
-               #clock-cells = <0>;
-       };
-
-       uart_sclk: uart-sclk-clock {
-               compatible = "fixed-clock";
-               clock-output-names = "uart_sclk";
-               #clock-cells = <0>;
-       };
-
-       sdhci_clk: sdhci-clock {
-               compatible = "fixed-clock";
-               clock-frequency = <198000000>;
-               clock-output-names = "sdhci_clk";
-               #clock-cells = <0>;
-       };
-
        soc {
                compatible = "simple-bus";
                interrupt-parent = <&plic>;
                                              <&cpu3_intc 3>, <&cpu3_intc 7>;
                };
 
+               spi0: spi@ffe700c000 {
+                       compatible = "thead,th1520-spi", "snps,dw-apb-ssi";
+                       reg = <0xff 0xe700c000 0x0 0x1000>;
+                       interrupts = <54 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk CLK_SPI>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                uart0: serial@ffe7014000 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0xff 0xe7014000 0x0 0x100>;
                        interrupts = <36 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&uart_sclk>;
+                       clocks = <&clk CLK_UART_SCLK>, <&clk CLK_UART0_PCLK>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                        compatible = "thead,th1520-dwcmshc";
                        reg = <0xff 0xe7080000 0x0 0x10000>;
                        interrupts = <62 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&sdhci_clk>;
+                       clocks = <&clk CLK_EMMC_SDIO>;
                        clock-names = "core";
                        status = "disabled";
                };
                        compatible = "thead,th1520-dwcmshc";
                        reg = <0xff 0xe7090000 0x0 0x10000>;
                        interrupts = <64 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&sdhci_clk>;
+                       clocks = <&clk CLK_EMMC_SDIO>;
                        clock-names = "core";
                        status = "disabled";
                };
                        compatible = "thead,th1520-dwcmshc";
                        reg = <0xff 0xe70a0000 0x0 0x10000>;
                        interrupts = <71 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&sdhci_clk>;
+                       clocks = <&clk CLK_EMMC_SDIO>;
                        clock-names = "core";
                        status = "disabled";
                };
                        compatible = "snps,dw-apb-uart";
                        reg = <0xff 0xe7f00000 0x0 0x100>;
                        interrupts = <37 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&uart_sclk>;
+                       clocks = <&clk CLK_UART_SCLK>, <&clk CLK_UART1_PCLK>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                        compatible = "snps,dw-apb-uart";
                        reg = <0xff 0xe7f04000 0x0 0x100>;
                        interrupts = <39 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&uart_sclk>;
+                       clocks = <&clk CLK_UART_SCLK>, <&clk CLK_UART3_PCLK>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                        reg = <0xff 0xe7f34000 0x0 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&clk CLK_GPIO2>;
 
                        portc: gpio-controller@0 {
                                compatible = "snps,dw-apb-gpio-port";
                        reg = <0xff 0xe7f38000 0x0 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&clk CLK_GPIO3>;
 
                        portd: gpio-controller@0 {
                                compatible = "snps,dw-apb-gpio-port";
                        reg = <0xff 0xec005000 0x0 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&clk CLK_GPIO0>;
 
                        porta: gpio-controller@0 {
                                compatible = "snps,dw-apb-gpio-port";
                        reg = <0xff 0xec006000 0x0 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&clk CLK_GPIO1>;
 
                        portb: gpio-controller@0 {
                                compatible = "snps,dw-apb-gpio-port";
                        compatible = "snps,dw-apb-uart";
                        reg = <0xff 0xec010000 0x0 0x4000>;
                        interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&uart_sclk>;
+                       clocks = <&clk CLK_UART_SCLK>, <&clk CLK_UART2_PCLK>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                };
 
+               clk: clock-controller@ffef010000 {
+                       compatible = "thead,th1520-clk-ap";
+                       reg = <0xff 0xef010000 0x0 0x1000>;
+                       clocks = <&osc>;
+                       #clock-cells = <1>;
+               };
+
                dmac0: dma-controller@ffefc00000 {
                        compatible = "snps,axi-dma-1.01a";
                        reg = <0xff 0xefc00000 0x0 0x1000>;
                        interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&apb_clk>, <&apb_clk>;
+                       clocks = <&clk CLK_PERI_APB_PCLK>, <&clk CLK_PERI_APB_PCLK>;
                        clock-names = "core-clk", "cfgr-clk";
                        #dma-cells = <1>;
                        dma-channels = <4>;
                timer0: timer@ffefc32000 {
                        compatible = "snps,dw-apb-timer";
                        reg = <0xff 0xefc32000 0x0 0x14>;
-                       clocks = <&apb_clk>;
+                       clocks = <&clk CLK_PERI_APB_PCLK>;
                        clock-names = "timer";
                        interrupts = <16 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                timer1: timer@ffefc32014 {
                        compatible = "snps,dw-apb-timer";
                        reg = <0xff 0xefc32014 0x0 0x14>;
-                       clocks = <&apb_clk>;
+                       clocks = <&clk CLK_PERI_APB_PCLK>;
                        clock-names = "timer";
                        interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                timer2: timer@ffefc32028 {
                        compatible = "snps,dw-apb-timer";
                        reg = <0xff 0xefc32028 0x0 0x14>;
-                       clocks = <&apb_clk>;
+                       clocks = <&clk CLK_PERI_APB_PCLK>;
                        clock-names = "timer";
                        interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                timer3: timer@ffefc3203c {
                        compatible = "snps,dw-apb-timer";
                        reg = <0xff 0xefc3203c 0x0 0x14>;
-                       clocks = <&apb_clk>;
+                       clocks = <&clk CLK_PERI_APB_PCLK>;
                        clock-names = "timer";
                        interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                        compatible = "snps,dw-apb-uart";
                        reg = <0xff 0xf7f08000 0x0 0x4000>;
                        interrupts = <40 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&uart_sclk>;
+                       clocks = <&clk CLK_UART_SCLK>, <&clk CLK_UART4_PCLK>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                        compatible = "snps,dw-apb-uart";
                        reg = <0xff 0xf7f0c000 0x0 0x4000>;
                        interrupts = <41 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&uart_sclk>;
+                       clocks = <&clk CLK_UART_SCLK>, <&clk CLK_UART5_PCLK>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                timer4: timer@ffffc33000 {
                        compatible = "snps,dw-apb-timer";
                        reg = <0xff 0xffc33000 0x0 0x14>;
-                       clocks = <&apb_clk>;
+                       clocks = <&clk CLK_PERI_APB_PCLK>;
                        clock-names = "timer";
                        interrupts = <20 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                timer5: timer@ffffc33014 {
                        compatible = "snps,dw-apb-timer";
                        reg = <0xff 0xffc33014 0x0 0x14>;
-                       clocks = <&apb_clk>;
+                       clocks = <&clk CLK_PERI_APB_PCLK>;
                        clock-names = "timer";
                        interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                timer6: timer@ffffc33028 {
                        compatible = "snps,dw-apb-timer";
                        reg = <0xff 0xffc33028 0x0 0x14>;
-                       clocks = <&apb_clk>;
+                       clocks = <&clk CLK_PERI_APB_PCLK>;
                        clock-names = "timer";
                        interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                timer7: timer@ffffc3303c {
                        compatible = "snps,dw-apb-timer";
                        reg = <0xff 0xffc3303c 0x0 0x14>;
-                       clocks = <&apb_clk>;
+                       clocks = <&clk CLK_PERI_APB_PCLK>;
                        clock-names = "timer";
                        interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";