]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
Squashed 'dts/upstream/' changes from 7e08733c96c8..20e0f0897ea2
authorTom Rini <trini@konsulko.com>
Sat, 20 Jul 2024 17:15:10 +0000 (11:15 -0600)
committerTom Rini <trini@konsulko.com>
Sat, 20 Jul 2024 17:15:10 +0000 (11:15 -0600)
20e0f0897ea2 Merge tag 'v6.10-dts-raw'
9881d733059f Merge tag 'v6.10-rc7-dts-raw'
63c31204aa11 Merge tag 'sunxi-fixes-for-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/fixes
23e9298c3dde Merge tag 'qcom-drivers-fixes-for-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes
a5f0db70c762 Merge tag 'qcom-arm64-fixes-for-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes
fc4d96ea6760 Revert "dt-bindings: cache: qcom,llcc: correct QDU1000 reg entries"
46fc6e869a85 Merge tag 'arm-fixes-6.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
383b8c948357 Merge tag 'v6.10-rockchip-dtsfixes1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/fixes
1ff5952edb57 Merge tag 'v6.10-rc6-dts-raw'
0ca968fa0d3f Merge tag 'net-6.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
10fcf51ad7e0 Merge tag 'riscv-dt-fixes-for-v6.10-rc5+' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into arm/fixes
268d5cb92800 arm64: dts: rockchip: Add sound-dai-cells for RK3368
dd58f1b3fe58 arm64: dts: rockchip: Fix the i2c address of es8316 on Cool Pi 4B
2e2d3a545342 Merge tag 'pinctrl-v6.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
e0c9ccf9429c Merge tag 'v6.10-rc5-dts-raw'
a3aee09ae954 Merge tag 'i2c-for-6.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
ac8de69b9a05 Merge branch 'scripting'
f887908e49ad Patch git-filter-branch to split state file
1ff8cba394ac Import git-filter-branch
1f73d9f38a31 dt-bindings: net: fman: remove ptp-timer from required list
aa50e7a5738c Merge tag 'arm-fixes-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
a905c57aa59d Merge tag 'dmaengine-fix-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine
033afe44d815 arm64: dts: qcom: qdu1000: Fix LLCC reg property
ac6085ba7cd5 arm64: dts: qcom: sm6115: add iommu for sdhc_1
8f31c6e16d9b dt-bindings: i2c: google,cros-ec-i2c-tunnel: correct path to i2c-controller schema
ecc33037d047 dt-bindings: i2c: atmel,at91sam: correct path to i2c-controller schema
b16dfe4648c8 Merge tag 'riscv-sophgo-dt-fixes-for-v6.10-rc4' of https://github.com/sophgo/linux into arm/fixes
f85451ad2ae3 Merge tag 'imx-fixes-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
4d2c25ce06fb arm64: dts: rockchip: fix PMIC interrupt pin on ROCK Pi E
41a24700d4d1 riscv: dts: starfive: Set EMMC vqmmc maximum voltage to 3.3V on JH7110 boards
6eaa11b25a95 riscv: dts: sophgo: disable write-protection for milkv duo
2095629696ec arm64: dts: rockchip: make poweroff(8) work on Radxa ROCK 5A
0f13320af297 Revert "arm64: dts: rockchip: remove redundant cd-gpios from rk3588 sdmmc nodes"
0620546b6733 ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node
4611b52d5bfe arm64: dts: rockchip: Fix the value of `dlg,jack-det-rate` mismatch on rk3399-gru
bbbfd7e077bb dt-bindings: pinctrl: qcom,pmic-gpio: drop pm8008
9accaa155f11 Merge tag 'v6.10-rc4-dts-raw'
2013523900d1 arm64: dts: imx8qm-mek: fix gpio number for reg_usdhc2_vmmc
0ae20e9e959c arm64: dts: qcom: x1e80100-crd: fix DAI used for headset recording
0b659e2170b6 arm64: dts: qcom: x1e80100-crd: fix WCD audio codec TX port mapping
8382a880d3c3 Merge tag 'usb-6.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
dcabd676f1a3 Merge tag 'char-misc-6.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
cc13bb40d1a6 arm64: dts: freescale: imx8mm-verdin: enable hysteresis on slow input pin
7f72250809b5 arm64: dts: imx93-11x11-evk: Remove the 'no-sdio' property
d874a607615a arm64: dts: freescale: imx8mp-venice-gw73xx-2x: fix BT shutdown GPIO
4eb33c524819 arm: dts: imx53-qsb-hdmi: Disable panel instead of deleting node
78d14f0ab675 arm64: dts: imx8mp: Fix TC9595 input clock on DH i.MX8M Plus DHCOM SoM
4e86701872de Merge tag 'net-6.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
981b77cd0427 dt-bindings: dma: fsl-edma: fix dma-channels constraints
18988f4d5d2a Merge tag 'v6.10-rc3-dts-raw'
7da36558a7ef Merge tag 'for-linus-2024060801' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
88d1360549bb arm64: dts: rockchip: set correct pwm0 pinctrl on rk3588-tiger
11452c600e6a Merge tag 'iio-fixes-for-6.10a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-linus
084aa7375145 arm64: dts: qcom: sc8280xp-crd: use external pull up for touch reset
0e6bf883e88f arm64: dts: qcom: sc8280xp-x13s: fix touchscreen power on
e614df5979b3 dt-bindings: net: dp8386x: Add MIT license along with GPL-2.0
f7c56b502493 dt-bindings: HID: i2c-hid: elan: add 'no-reset-on-power-off' property
1978b946690b dt-bindings: HID: i2c-hid: elan: add Elan eKTH5015M
5495c8832594 dt-bindings: HID: i2c-hid: add dedicated Ilitek ILI2901 schema
9e26c6d54d11 input: Add support for "Do Not Disturb"
37570b57104f input: Add event code for accessibility key
cdef8a0e7a60 arm64: dts: qcom: x1e80100: Fix PCIe 6a reg offsets and add MHI
3f139ae589c4 Merge tag 'devicetree-fixes-for-6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
7cf2ce6b6ba4 arm64: dts: qcom: sa8775p: Correct IRQ number of EL2 non-secure physical timer
f2fbbacd60a4 dt-bindings: usb: realtek,rts5411: Add missing "additionalProperties" on child nodes
164ee20c8b58 Merge tag 'v6.10-rc2-dts-raw'
48b74b73a14e LoongArch: Fix GMAC's phy-mode definitions in dts
087d672b4efd arm64: dts: freescale: imx8mm-verdin: Fix GPU speed
80fffb23d496 Merge tag 'net-6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
54dda23c281e dt-bindings: arm: stm32: st,mlahb: Drop spurious "reg" property from example
2c63db1445be dt-bindings: arm: sunxi: Fix incorrect '-' usage
1d5708f86ae5 arm64: dts: allwinner: Fix PMIC interrupt number
6c601b11ba2a riscv: dts: canaan: Disable I/O devices unless used
92348c3ef236 riscv: dts: canaan: Clean up serial aliases
5d83fd10a397 dt-bindings: net: pse-pd: ti,tps23881: Fix missing "additionalProperties" constraints
6b2fa7b7cc40 dt-bindings: net: pse-pd: microchip,pd692x0: Fix missing "additionalProperties" constraints
50cb397e5cfd arm64: dts: rockchip: Rename LED related pinctrl nodes on rk3308-rock-pi-s
c9ccb008ab27 arm64: dts: rockchip: Fix SD NAND and eMMC init on rk3308-rock-pi-s
8e6eda922a09 arm64: dts: rockchip: Fix rk3308 codec@ff560000 reset-names
7f489c4cf57b arm64: dts: rockchip: Fix the DCDC_REG2 minimum voltage on Quartz64 Model B
299c3b3c66d9 arm64: dts: qcom: sc8280xp: Set status = "reserved" on PSHOLD
2b6c08b1583d dt-bindings: iio: dac: fix ad354xr output range
9f79d4c15d08 Merge tag 'v6.10-rc1-dts-raw'
fd0f921ffa6c arm64: dts: qcom: x1e80100-*: Allocate some CMA buffers
26c71714bb61 arm64: dts: qcom: sc8180x: Fix LLCC reg property again
2092f8f48d57 Merge tag 'rtc-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
07e14840ad5b Merge tag 'input-for-v6.10-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
13ccd59b5258 Merge tag 'sound-fix-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
37a1f7e6722d Merge tag 'char-misc-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
7ff78d0eda0d Merge tag 'tty-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
c5041b729865 Merge tag 'usb-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
1c57e8db82e7 Merge tag 'leds-next-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds
fd47bd25ce86 Merge tag 'mfd-next-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
00ece62bff8b dt-bindings: input: touchscreen: edt-ft5x06: Document FT5452 and FT8719 support
6f66f547411e Merge tag 'loongarch-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
abd7af883f03 Merge tag 'phy-for-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
640e500cce85 Merge tag 'dmaengine-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine
b9fd3a8c4565 Merge tag 'mailbox-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox
b33f557e1d90 Merge tag 'rproc-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
db01c383a7ce Merge tag 'pci-v6.10-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
0df9e98310e7 ASoC: dt-bindings: stm32: Ensure compatible pattern matches whole string
d8db35c82ce1 Merge tag 'soc-dt-late-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
f8e08c751522 Merge tag 'mips_6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
9caaf0aa30d4 Merge tag 'i2c-for-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
6ab09d9cca9e Merge tag 'pinctrl-v6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
9325c648da25 dt-bindings: mailbox: qcom-ipcc: Document the SDX75 IPCC
8bf6a8f1f802 dt-bindings: mailbox: qcom: Add MSM8974 APCS compatible
2e132b836729 dt-bindings: mailbox: arm,mhuv3: Add bindings
74b961ca5252 Merge tag 'for-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply
71ece5053ab1 Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
2d9444bc11e2 Merge tag 'kbuild-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
d27b169f2113 Merge tag 'iommu-updates-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu
0d52486eadc9 Merge tag 'random-6.10-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random
92ca6dd0a585 Merge tag 'net-6.10-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
d9138c3c1217 Merge tag 'devicetree-for-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
993251900df7 dt-bindings: net: ti: Update maintainers list
6fedb16407e2 Merge tag 'powerpc-6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
5f1b352c20a8 dt-bindings: net: qcom: ethernet: Allow dma-coherent
a87254134e0a Merge branches 'clk-microchip', 'clk-samsung' and 'clk-qcom' into clk-next
e11cd4900b3c Merge branches 'clk-counted', 'clk-imx', 'clk-amlogic', 'clk-binding' and 'clk-rockchip' into clk-next
0dd8b4fc25ba Merge branches 'clk-stm', 'clk-renesas', 'clk-scmi' and 'clk-allwinner' into clk-next
6f21c834494e Merge branches 'clk-cleanup', 'clk-airoha', 'clk-mediatek', 'clk-sophgo' and 'clk-loongson' into clk-next
2fa059a4cd10 Merge tag 'platform-drivers-x86-v6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
0202c4f79771 Merge tag 'mtd/for-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
8cb25a01f0ea Merge tag 'mmc-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
074ab5a279da Merge tag 'media/v6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
b1541fce9b3b dt-bindings: PCI: rockchip,rk3399-pcie: Add missing maxItems to ep-gpios
c358ed679396 Merge tag 'sound-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
06ae5fd04d8f Merge tag 'drm-next-2024-05-15' of https://gitlab.freedesktop.org/drm/kernel
fd0e36fa021c dt-bindings: PCI: rcar-gen4-pci-ep: Add R-Car V4H compatible
fa14cdcce968 dt-bindings: PCI: rcar-gen4-pci-host: Add R-Car V4H compatible
b69670b0bb47 dt-bindings: PCI: layerscape-pci: Convert to YAML format
cca86ffd0a16 dt-bindings: PCI: mediatek,mt7621-pcie: Switch from deprecated pci-bus.yaml
ae64917a411a dt-bindings: PCI: host-bridges: Switch from deprecated pci-bus.yaml
1201fe875e92 dt-bindings: PCI: mediatek,mt7621: Add missing child node reg
ba00158ae744 dt-bindings: PCI: cdns,cdns-pcie-host: Drop redundant msi-parent and pci-bus.yaml
5b6552bfdc78 dt-bindings: PCI: ti,am65: Fix remaining binding warnings
d7e666da2887 Merge tag 'net-next-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
2d9531926675 Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
db5eb37c03e9 Merge tag 'ata-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux
5a032ee2fc23 Merge tag 'gpio-updates-for-v6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
ccc224839058 Merge tag 'pwm/for-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux
775802858417 Merge tag 'hwmon-for-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
fdde6e57ef72 Merge tag 'spi-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
99645799c95b Merge tag 'regulator-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
1eaaff2bbf2a Merge tag 'pm-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
ab29be69f525 Merge tag 'thermal-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
4075f17dbd78 Merge tag 'sh-for-v6.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux
757f8a19300b Merge tag 'irq-core-2024-05-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
dab08a165fab Merge tag 'timers-core-2024-05-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
feef09f5a21f dt-bindings: net: bluetooth: Add MediaTek MT7921S SDIO Bluetooth
76d9d779fa78 dt-bindings: net: broadcom-bluetooth: Add CYW43439 DT binding
17441a5c4e4e LoongArch: dts: Add new supported device nodes to Loongson-2K2000
1f7ba0207e26 LoongArch: dts: Add new supported device nodes to Loongson-2K0500
a48765b239a2 LoongArch: dts: Remove "disabled" state of clock controller node
7773d8323bfe dt-bindings: net: renesas,rzn1-gmac: Document RZ/N1 GMAC support
ca2a5ced698c Merge tag 'v6.10-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
505e43f254ef Merge branch 'pm-cpufreq'
76f483e4cfc6 Merge tag 'tpmdd-next-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd
b1df36fb36a6 Merge tag 'soc-drivers-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
fd1841fda6fd Merge tag 'soc-dt-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
36770442d6b0 dt-bindings: display: panel: constrain 'reg' in DSI panels
813c5f459022 dt-bindings: display: panel: constrain 'reg' in SPI panels
41038ea2e4ff dt-bindings: display: samsung,ams495qa01: add missing SPI properties ref
10a89c799c00 Merge branches 'arm/renesas', 'arm/smmu', 'x86/amd', 'core' and 'x86/vt-d' into next
8910725cb527 dt-bindings: mfd: Use full path to other schemas
3b040755ae18 dt-bindings: mfd: Convert lp873x.txt to json-schema
296f112623fd dt-bindings: mfd: aspeed: Drop 'oneOf' for pinctrl node
a5a854afbee2 dt-bindings: mfd: allwinner,sun6i-a31-prcm: Use hyphens in node names
90a90b23d03b dt-bindings: mfd: qcom: pm8xxx: Add pm8901 compatible
da7f08aacdf2 dt-bindings: mfd: qcom,spmi-pmic: Add pbs to SPMI device types
966ad7078eaa dt-bindings: mfd: syscon: Add ti,am62p-cpsw-mac-efuse compatible
c4b18ab23407 dt-bindings: mfd: qcom,tcsr: Add compatible for SDX75
c3d99b909e44 dt-bindings: mfd: Add ROHM BD71879
9384afa70b33 dt-bindings: mfd: syscon: Add missing simple syscon compatibles
960f32f46fea dt-bindings: mfd: Add ROHM BD71828 system-power-controller property
cf10554091fd dt-bindings: mfd: twl: Convert trivial subdevices to json-schema
9715f4656242 Merge branches 'ib-mfd-misc-pinctrl-regulator-6.10', 'ib-mfd-pinctrl-regulator-6.10' and 'ib-mfd-regulator-6.10' into ibs-for-mfd-merged
ac7a1ec8dbb7 dt-bindings: usb: qcom,dwc3: fix interrupt max items
1b6db377e73b dt-bindings: timer: renesas: ostm: Document Renesas RZ/V2H(P) SoC
4d0b690a0f3e Merge 6.9-rc7 into usb-next
3842450e242a Merge tag 'drm-msm-next-2024-05-07' of https://gitlab.freedesktop.org/drm/msm into drm-next
5896b040800b kbuild: use $(src) instead of $(srctree)/$(src) for source directory
73f4d08d8786 dt-bindings: tpm: Add st,st33ktpm2xi2c
620cdf951609 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
cadca550c946 regulator: dt-bindings: Add Allwinner D1 system LDOs
95cb4a04aa59 Merge tag 'wireless-next-2024-05-08' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
934735047002 dt-bindings: net: ipq4019-mdio: add IPQ9574 compatible
95ceac809a55 Merge tag 'riscv-dt-for-v6.10-take2' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/dt-late
680612099c31 dt-bindings: Use full path to other schemas
a2ec1b583d96 dt-bindings: spmi: Deprecate qcom,bus-id
3ef3f7c10b00 dt-bindings: spmi: Add X1E80100 SPMI PMIC ARB schema
af55caf92fae dt-bindings: spmi: hisilicon,hisi-spmi-controller: clean up example
8282c49f66a5 dt-bindings: spmi: hisilicon,hisi-spmi-controller: fix binding references
62c077472f2a Merge 6.9-rc7 into char-misc-testing
6f7bdf23be5b dt-bindings: PCI: qcom,pcie-sm8350: Drop redundant 'oneOf' sub-schema
37b24b375144 Merge tag 'qcom-arm64-for-6.10-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
0bde68085fa9 Merge tag 'qcom-drivers-for-6.10-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
998c25c937aa dt-bindings: clocks: stm32mp25: add access-controllers description
30e9fba2158e riscv: dts: microchip: add pac1934 power-monitor to icicle
d6ee54e20abf RISC-V: add Milkv Mars board devicetree
0aa7d6d24f60 riscv: dts: thead: Fix node ordering in TH1520 device tree
6ee47d28e440 powerpc: Fix typos
3ba1815ef20a powerpc: dts: fsl: rename ifc node name to be memory-controller
7efff94fbf26 powerpc: dts: mpc85xx: remove "simple-bus" compatible from ifc node
9fe4ad7ce766 powerpc: dts: p1010rdb: fix INTx interrupt issue on P1010RDB-PB
6ebf39aa9455 powerpc: dts: add power management nodes to FSL chips
348344a5d65e Merge tag 'aspeed-6.10-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc into soc/dt-late
e86f1cd5ef14 Merge tag 'amlogic-arm64-dt-for-v6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt-late
7f9e5732c146 Merge tag 'samsung-dt64-6.10-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
5695f8055c0c Merge tag 'v6.10-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
b97bd45a8d97 Merge tag 'mvebu-dt64-6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt
5a9c9a32c3c7 dt-bindings: remoteproc: qcom,sdm845-adsp-pil: Fix qcom,halt-regs definition
d5164a7c22ad dt-bindings: remoteproc: qcom,sc7280-wpss-pil: Fix qcom,halt-regs definition
71bd8853612b dt-bindings: remoteproc: qcom,qcs404-cdsp-pil: Fix qcom,halt-regs definition
ba8d7136770b dt-bindings: remoteproc: qcom,msm8996-mss-pil: allow glink-edge on msm8996
62ef31a80421 dt-bindings: remoteproc: qcom,smd-edge: Mark qcom,ipc as deprecated
65fc362c2702 scsi: ufs: dt-bindings: exynos: Add gs101 compatible
f534b450c173 Merge back thermal cotntrol material for v6.10.
2d917790ebaa Merge tag 'samsung-pinctrl-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung into devel
8cf62b598531 regulator: new API for voltage reference supplies
ac173748045d dt-bindings: i2c: qcom-cci: Document sc8280xp compatible
6995b93c7587 dt-bindings: i2c: renesas,riic: Document R9A09G057 support
bfc00943afd2 dt-bindings: i2c: nxp,pnx-i2c: Convert to dtschema
85f529cada6f arm64: dts: marvell: espressobin-ultra: fix Ethernet Switch unit address
2f63c4b78fa1 arm64: dts: marvell: turris-mox: drop unneeded flash address/size-cells
5d8b59675398 arm64: dts: marvell: eDPU: drop redundant address/size-cells
272ed9c5b8fa dt-bindings: usb: dwc3: Add QDU1000 compatible
551f2d4471d9 dt-bindings: serial: brcm,bcm2835-aux-uart: convert to dtschema
b8768b797e66 arm64: zynqmp: Add resets property for UART nodes
82c86607462f dt-bindings: serial: cdns,uart: Add optional reset property
19f5c04825b2 dt-bindings: phy: qcom,usb-snps-femto-v2: use correct fallback for sc8180x
19ad6c854263 dt-bindings: phy: qcom,sc8280xp-qmp-ufs-phy: fix msm899[68] power-domains
e6a7e5a9a0b3 dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: fix x1e80100-gen3x2 schema
2a3660ab6d73 dt-bindings: phy: qcom,qmp-usb: Add QDU1000 USB3 PHY
ae178787ba63 dt-bindings: phy: qcom,usb-snps-femto-v2: Add bindings for QDU1000
c328437b7928 Merge tag 'iio-for-6.10b-take2' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
96777d6c711d dt-bindings: clock: fixed: Define a preferred node name
f43b579bac3d arm64: dts: qcom: pm6150: correct USB VBUS regulator compatible
6dfc7e3a678d dt-bindings: PCI: microchip: increase number of items in ranges property
6f960acf6e33 Merge tag 'arm-smmu-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into arm/smmu
52f68a03a074 dt-bindings: Drop unnecessary quotes on keys
88c8e5011c36 dt-bindings: interrupt-controller: mediatek,mt6577-sysirq: Drop unnecessary quotes
07ae92f214f1 dt-bindings: mmc: renesas,sdhi: Document RZ/G2L family compatibility
744856737968 dt-bindings: mmc: renesas,sdhi: Group single const value items into an enum list
ea9a34aa0d78 arm64: dts: rockchip: add rk3588 pcie and php IOMMUs
8634bf1c11e4 arm64: dts: rockchip: enable onboard spi flash for rock-3a
afe1cedc2442 arm64: dts: rockchip: add USB-C support to rk3588s-orangepi-5
f66647cd8ff8 arm64: dts: rockchip: Enable GPU on Orange Pi 5
4fba41bce2ab arm64: dts: rockchip: enable GPU on khadas-edge2
7570dc9fb6bb arm64: dts: rockchip: Add USB3 on Edgeble NCM6A-IO board
8b4785e613c3 arm64: dts: rockchip: Support poweroff on Edgeble Neural Compute Module
d96268ba01d4 arm64: dts: rockchip: Add Radxa ROCK 3C
6ef83cfb7ada dt-bindings: arm: rockchip: add Radxa ROCK 3C
d7dd131cd82a Merge tag 'ath-next-20240502' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath
93b4a866bf35 dt-bindings: mfd: ti,tps6594: Add TI TPS65224 PMIC
7335736c9d78 arm64: dts: exynos: gs101: specify empty clocks for remaining pinctrl
dca8a5f1a090 arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2
498c9adc4cc2 arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01]
a31c51d6eabf arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive
115f542562dc dt-bindings: mfd: Add rk816 binding
4b2fb80b9d70 dt-bindings: pinctrl: qcom,pmic-gpio: Fix "comptaible" typo for PMIH0108
0c39b3c5118f dt-bindings: pinctrl: mediatek: mt7622: add "antsel" function
204d57f69a78 dt-bindings: pinctrl: mediatek: mt7622: fix array properties
9cdad5a31765 dt-bindings: nvmem: Add compatible for SC8280XP
99e9e4f0f8ef dt-bindings: nvmem: qcom,spmi-sdam: update maintainer
c63963f91c46 dt-bindings: nvmem: Add compatible for sm8450, sm8550 and sm8650
f89ebb9f08f8 Merge tag 'coresight-next-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux into char-misc-next
9c567dfe1e7c spi: dt-bindings: ti,qspi: convert to dtschema
f51f7fbfe068 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
374788ecd661 Merge tag 'ti-k3-dt-for-v6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt
8ea799a75295 Merge tag 'ti-keystone-dt-for-v6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt
d583b2d29084 Merge tag 'riscv-sophgo-dt-for-v6.10' of https://github.com/sophgo/linux into soc/dt
226f8a9f0d52 arm64: dts: Add/fix /memory node unit-addresses
22b584d29caf dt-bindings: kbuild: Add separate target/dependency for processed-schema.json
4e6a6fa12d6f sh: j2: Drop incorrect SPI controller spi-max-frequency property
bdcb00f4f3b3 ARM: dts: aspeed: Add ASRock E3C256D4I BMC
aac0710a73b4 dt-bindings: arm: aspeed: document ASRock E3C256D4I
b80c8c18fac4 dt-bindings: trivial-devices: add isil,isl69269
cb1c41ce59ca arm64: dts: qcom: qcs404: fix bluetooth device address
d0ae260a2e22 dt-bindings: soc: qcom,wcnss: fix bluetooth address example
7503e9a214fc arm64: dts: qcom: sc8280xp-x13s: enable USB MP and fingerprint reader
817ddd5ea9f8 arm64: dts: qcom: sc8280xp: Add USB DWC3 Multiport controller
b3fba1efeb88 dt-bindings: pwm: snps,dw-apb-timers: Do not require pwm-cells twice
50e8b723b671 dt-bindings: pwm: mediatek,pwm-disp: Do not require pwm-cells twice
8bef6380e735 dt-bindings: pwm: mediatek,mt2712: Do not require pwm-cells twice
d9933a0695f9 dt-bindings: pwm: marvell,pxa: Do not require pwm-cells twice
51bdf5ce1163 dt-bindings: pwm: google,cros-ec: Do not require pwm-cells twice
3d9506504c8c dt-bindings: pwm: bcm2835: Do not require pwm-cells twice
534bc64cdedb ARM: dts: aspeed: x4tf: Add dts for asus x4tf project
6fbe3fdaf9f0 dt-bindings: arm: aspeed: add ASUS X4TF board
c82854e88202 ARM: dts: aspeed: Remove Facebook Cloudripper dts
fd75393bdcb1 ARM: dts: aspeed: drop unused ref_voltage ADC property
8754892d5b75 ARM: dts: aspeed: harma: correct Mellanox multi-host property
8e9cc6c20b82 ARM: dts: aspeed: yosemitev2: correct Mellanox multi-host property
e2c78475b613 ARM: dts: aspeed: yosemite4: correct Mellanox multi-host property
c541062fa469 ARM: dts: aspeed: greatlakes: correct Mellanox multi-host property
34bf4cdbef99 ARM: dts: aspeed: Modify I2C bus configuration
d8f2250514be ARM: dts: aspeed: Disable unused ADC channels for Asrock X570D4U BMC
2901b8ca961c ARM: dts: aspeed: Modify GPIO table for Asrock X570D4U BMC
88064efed3fa ARM: dts: aspeed: yosemite4: set bus13 frequency to 100k
5ef12a481212 ARM: dts: Aspeed: Bonnell: Fix NVMe LED labels
3fc453c1db53 ARM: dts: aspeed: yosemite4: Enable ipmb device for OCP debug card
bcfaf623d0d2 ARM: dts: aspeed: ahe50dc: Update lm25066 regulator name
8234174b4319 ARM: dts: aspeed: Add vendor prefixes to lm25066 compat strings
ff5b5d4f8608 ARM: dts: aspeed: asrock: Use MAC address from FRU EEPROM
4cd1834171b1 ARM: dts: aspeed: system1: IBM System1 BMC board
f78504173b45 dt-bindings: arm: aspeed: add IBM system1-bmc
fe7af5d377d3 ARM: dts: aspeed: FSI interrupt support
868c28fb73db ARM: dts: aspeed: Harma: Modify GPIO line name
4c844ce58341 ARM: dts: aspeed: Harma: Add retimer device
fa2c17701347 ARM: dts: aspeed: Harma: Revise node name
2c56352a6e8c ARM: dts: aspeed: Harma: Add ltc4286 device
f3f20436ebf5 ARM: dts: aspeed: Harma: Add NIC Fru device
c65f4bd47989 ARM: dts: aspeed: Harma: Revise max31790 address
7f91e0534cac ARM: dts: aspeed: Harma: Add PDB temperature
77648c84705d ARM: dts: aspeed: Harma: Add spi-gpio
a3814da132d2 ARM: dts: aspeed: Harma: Add cpu power good line name
a4d3dcdc6972 ARM: dts: aspeed: Harma: Remove Vuart
644d0c7be99d ARM: dts: aspeed: Harma: mapping ttyS2 to UART4.
e3db91e58704 ARM: dts: aspeed: Harma: Revise SGPIO line name.
fb4379aba520 ARM: dts: aspeed: minerva: add sgpio line name
0f636550db24 ARM: dts: aspeed: minerva: add gpio line name
c081df13fef5 ARM: dts: aspeed: minerva: Add led-fan-fault gpio
9d8afce52cc1 ARM: dts: aspeed: minerva: add fan rpm controller
cf8bbd25181f ARM: dts: aspeed: minerva: add bus labels and aliases
3c1b4cf53f8a ARM: dts: aspeed: minerva: correct the address of eeprom
eb9d7ba9327b ARM: dts: aspeed: minerva: Add temperature sensor
d76b93442ef4 ARM: dts: aspeed: minerva: Enable power monitor device
646c9c05f278 ARM: dts: aspeed: minerva: Change sgpio use
741d60b7c317 ARM: dts: aspeed: minerva: Modify mac3 setting
2424cc717af4 ARM: dts: aspeed: minerva: Revise the name of DTS
088aed05938b ARM: dts: aspeed: Harma: Add Meta Harma (AST2600) BMC
218a89911b36 dt-bindings: arm: aspeed: add Meta Harma board
7ffe6470af68 ARM: dts: aspeed: asrock: Add ASRock X570D4U BMC
f53f1d892e04 dt-bindings: arm: aspeed: add Asrock X570D4U board
29b44948f246 ARM: dts: aspeed: Add ASRock SPC621D8HM3 BMC
28c22e1158f6 dt-bindings: arm: aspeed: document ASRock SPC621D8HM3
5b07006d0544 dt-bindings: net: snps, dwmac: remove tx-sched-sp property
d641f9b08e97 riscv: dts: starfive: add Milkv Mars board device tree
0481c0695137 riscv: dts: starfive: introduce a common board dtsi for jh7110 based boards
73f68262699b riscv: dts: starfive: visionfive 2: add "disable-wp" for tfcard
07708df1edd7 riscv: dts: starfive: visionfive 2: add tf cd-gpios
69db0d9798f7 riscv: dts: starfive: visionfive 2: use cpus label for timebase freq
cf6fa1279f6f riscv: dts: starfive: visionfive 2: update sound and codec dt node name
5ab1511c1599 dt-bindings: riscv: starfive: add Milkv Mars board
5965246fe186 riscv: dts: starfive: add 'cpus' label to jh7110 and jh7100 soc dtsi
5bdc176b24a8 arm64: dts: exynos: gs101: enable ufs, phy on oriole & define ufs regulator
1dfec606a1c1 arm64: dts: exynos: gs101: Add ufs and ufs-phy dt nodes
7596e4636938 arm64: dts: exynos: gs101: Add the hsi2 sysreg node
6f1e47732d9c dt-bindings: hwmon: Add infineon xdp710 driver bindings
c68d8da7c295 dt-bindings: usb: samsung,exynos-dwc3: add gs101 compatible
ccc8d79a51ac dt-bindings: pwm: mediatek,pwm-disp: add compatible for mt8365 SoC
c3ae8f8609b7 dt-bindings: remoteproc: mediatek: Support MT8188 dual-core SCP
dd64a9b5d3ba ASoC: doc: dapm: various improvements
a1c502ef408b dt-bindings: power: supply: max8903: specify flt-gpios as input
758561486cca spi: dt-bindings: airoha: Add YAML schema for SNFI controller
e8cc1fcce923 Merge tag 'arm-soc/for-6.10/devicetree-arm64' of https://github.com/Broadcom/stblinux into soc/dt
fd27491e295c Merge tag 'arm-soc/for-6.10/devicetree' of https://github.com/Broadcom/stblinux into soc/dt
c8a3fe7c83a8 Merge tag 'fpga-for-6.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/fpga/linux-fpga into char-misc-next
518d1470b29f ASoC: dt-bindings: tegra30-i2s: convert to dt schema
c31e41137854 Merge tag 'scmi-updates-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/drivers
6ef92eb988f4 Merge tag 'memory-controller-drv-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into soc/drivers
ab79838ecc1a Merge tag 'qcom-drivers-for-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
b0cbed6b585b Merge tag 'stm32-bus-firewall-for-v6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into soc/drivers
8cd266d248da arm64: dts: ti: k3-am625-beagleplay: Fix Ethernet PHY RESET GPIOs
98ccfd6398ba dt-bindings: adc: axi-adc: add clocks property
36809262c854 dt-bindings: iio: imu: add icm42686 inside inv_icm42600
9c909a6abc5d arm64: dts: ti: k3-am625-phyboard-lyra-rdk: Add USB-C
47c139a551cc arm64: dts: ti: k3-j784s4: Add main esm address range
093094153bf0 arm64: dts: ti: k3-j721s2: Add main esm address range
9f0082edafc1 arm64: dts: ti: k3-am62-verdin-dahlia: support sleep-moci
28db01d2495d arm64: dts: ti: k3-am62-verdin: replace sleep-moci hog with regulator
8ff208c87e5b arm64: dts: ti: k3-j722s-evm: Enable UHS support for MMCSD
b8d07395e608 arm64: dts: ti: k3-j784s4-main: Enable support for UHS mode
6c24472d05a2 arm64: dts: ti: k3-j721s2-main: Enable support for SDR104 speed mode
f1149a5b0e32 arm64: dts: ti: k3-am62a: Enable UHS mode support for SD cards
750a79223c4c arm64: dts: ti: k3-am65-main: Remove unused properties in sdhci nodes
15229953d1b5 arm64: dts: ti: k3-am65-main: Fix sdhci node properties
81b47c119091 arm64: dts: ti: am64-phyboard-electra: Add overlay to enable a GPIO fan
689d2e3193ee arm64: dts: ti: k3-am62a-main: Add Wave5 Video Encoder/Decoder Node
a6f7715e22a2 arm64: dts: ti: k3-am69-sk: Fix UART pin type and macro type
196bfc4b149d arm64: dts: ti: k3-j784s4-evm: Fix UART pin type and macro type
e29fa5eebabf arm64: dts: ti: k3-am62a: Disable USB LPM
28771bff0163 arm64: dts: ti: k3-am62p: add the USB sub-system
397d6e54c93b arm64: dts: ti: k3-am62/a: use sub-node for USB_PHY_CTRL registers
19f2147e2d4a arm64: dts: ti: k3-am62*: Add PHY2 region to USB wrapper node
dc5081fa31f4 arm64: dts: ti: iot2050: Add icssg-prueth nodes for PG1 devices
5bce68cd3ed7 arm64: dts: ti: k3-am625-phyboard-lyra-rdk: Add Audio Codec
6b093f16cd8c Merge v6.9-rc6 into drm-next
fcd3b733403c arm64: dts: qcom: sm8650: Fix GPU cx_mem size
0017da720656 dt-bindings: soc: google: exynos-sysreg: add dedicated hsi2 sysreg compatible
0a6165f2f813 arm64: dts: exynos: gs101-oriole: enable USB on this board
7de232618ba7 arm64: dts: exynos: gs101: add USB & USB-phy nodes
16041c95ecb1 arm64: dts: exynos: gs101: enable cmu-hsi2 clock controller
9066b47c5392 dt-bindings: pinctrl: samsung: google,gs101-pinctrl needs a clock
5f29245d5c50 Merge branch 'for-v6.10/clk-gs101-bindings' into next/clk
fff3ee6f2556 arm64: dts: exynos: gs101: enable cmu-hsi0 clock controller
168cc32bbc08 Merge branch 'for-v6.10/clk-gs101-bindings' into next/dt64
fc4c7d259d85 dt-bindings: clock: google,gs101-clock: add HSI2 clock management unit
0a148e2d01ad Merge tag 'microchip-dt64-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/dt
242a9f969df3 Merge tag 'dt-cleanup-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt
764054cefbec Merge tag 'dt64-cleanup-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt
03af24450b05 Merge tag 'imx-dt64-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
cefd253be3d5 Merge tag 'imx-dt-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
fa182fa40b43 Merge tag 'imx-bindings-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
d9807f0ca418 ASoC: Merge up fixes
e8d36c696111 regulator: dt-bindings: fixed-regulator: Add a preferred node name
58e931983da2 Merge tag 'qcom-arm64-for-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
4dd78879de18 Merge tag 'qcom-arm32-for-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
086c3411f16b Merge tag 'sunxi-dt-for-6.10-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
53da8c9d0e3f Merge tag 'tegra-for-6.10-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
1acd19fd83d8 Merge tag 'tegra-for-6.10-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
788dcee7a235 Merge tag 'tegra-for-6.10-dt-bindings' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
d38eb9fd4c47 media: dt-bindings: media: i2c: Rename ov8856.yaml
a82fcd597ba3 dt-bindings: media: Add bindings for bcm2835-unicam
2b803146783c Merge tag 'sunxi-dt-for-6.10-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
afa61e2abc7e Merge tag 'renesas-dts-for-v6.10-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
bfe91094022a Merge tag 'renesas-pinctrl-for-v6.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
1dcf8839ed11 Merge tag 'v6.10-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
2d528063c0dd Merge tag 'stm32-dt-for-v6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into soc/dt
ff55dd2aa9f3 Merge tag 'hisi-arm64-dt-for-6.10' of https://github.com/hisilicon/linux-hisi into soc/dt
4e0f50e92cba Merge tag 'samsung-dt64-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
4c8b8d6276c2 Merge tag 'samsung-dt-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
50686674cb6c Merge tag 'omap-for-v6.10/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into soc/dt
ab3a6233162a arm/arm64: dts: Drop "arm,armv8-pmuv3" compatible usage
50c7906394c4 Merge tag 'renesas-dts-for-v6.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
2184251713ad Merge tag 'renesas-dt-bindings-for-v6.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
8c1b616ea391 dt-bindings: hwmon: adm1275: add adm1281
c3e6844640bc dt-bindings: hwmon: pmbus: adp1050: add bindings
3eb515b4f7c5 dt-bindings: hwmon: ibm,p8-occ-hwmon: move to trivial devices
92146dcf5fba dt-bindings: hwmon: stts751: convert to dtschema
84925db754f7 dt-bindings: hwmon: pwm-fan: drop text file
7b6608685581 dt-bindings: hwmon: ibmpowernv: convert to dtschema
1ab44a73ebd9 dt-bindings: hwmon: as370: convert to dtschema
bc45c32fc67e dt-bindings: hwmon: max6650: convert to dtschema
c2400866fc0d dt-bindings: hwmon: lm87: convert to dtschema
f14761db4a7c dt-bindings: hwmon: adc128d818: convert to dtschema
5f0241b4484d ARM: dts: imx6ul-pico: Use #pwm-cells = <3> for imx27-pwm device
3a5c80f6a4b5 ARM: dts: imx6ul-kontron-bl-common: Use #pwm-cells = <3> for imx27-pwm device
894db90901de ARM: dts: imx6ul-kontron-bl-43: Use #pwm-cells = <3> for imx27-pwm device
4261e3018fb5 ARM: dts: imx6ul-isiot: Use #pwm-cells = <3> for imx27-pwm device
2b6204343342 ARM: dts: imx6ul-imx6ull-opos6uldev: Use #pwm-cells = <3> for imx27-pwm device
82341566c04e ARM: dts: imx6ul-geam: Use #pwm-cells = <3> for imx27-pwm device
8e966ce66d8c ARM: dts: imx6ul-ccimx6ulsbcpro: Use #pwm-cells = <3> for imx27-pwm device
865e89e03fae ARM: dts: imx6ul-14x14-evk: Use #pwm-cells = <3> for imx27-pwm device
3d0a1fbee307 ARM: dts: imx6sx-softing-vining-2000: Use #pwm-cells = <3> for imx27-pwm device
d9d78c59fa41 ARM: dts: imx6sx-sdb: Use #pwm-cells = <3> for imx27-pwm device
1f88e558e51e ARM: dts: imx6sx-nitrogen6sx: Use #pwm-cells = <3> for imx27-pwm device
61ee876baae2 ARM: dts: imx6sll-evk: Use #pwm-cells = <3> for imx27-pwm device
c6958e718629 ARM: dts: imx6sl-evk: Use #pwm-cells = <3> for imx27-pwm device
e927cd402da0 ARM: dts: imx6q-var-dt6customboard: Use #pwm-cells = <3> for imx27-pwm device
a91e17423db9 ARM: dts: imx6q-prti6q: Use #pwm-cells = <3> for imx27-pwm device
0fdfb7444f91 ARM: dts: imx6q-pistachio: Use #pwm-cells = <3> for imx27-pwm device
de30519f0ce8 ARM: dts: imx6q-novena: Use #pwm-cells = <3> for imx27-pwm device
398e92a2b4ff ARM: dts: imx6q-kp: Use #pwm-cells = <3> for imx27-pwm device
122b61c34ac0 ARM: dts: imx6qdl-skov-cpu: Use #pwm-cells = <3> for imx27-pwm device
cee66abc40b2 ARM: dts: imx6qdl-savageboard: Use #pwm-cells = <3> for imx27-pwm device
94b2d4f76971 ARM: dts: imx6qdl-sabresd: Use #pwm-cells = <3> for imx27-pwm device
c8211f5a745b ARM: dts: imx6qdl-sabrelite: Use #pwm-cells = <3> for imx27-pwm device
4fc475ec0bfe ARM: dts: imx6qdl-sabreauto: Use #pwm-cells = <3> for imx27-pwm device
817d1417ba5f ARM: dts: imx6qdl-phytec-mira: Use #pwm-cells = <3> for imx27-pwm device
5b7034957cac ARM: dts: imx6qdl-nitrogen6x: Use #pwm-cells = <3> for imx27-pwm device
f0374cc2f386 ARM: dts: imx6qdl-nitrogen6_som2: Use #pwm-cells = <3> for imx27-pwm device
e2ba7ce78c3a ARM: dts: imx6qdl-nitrogen6_max: Use #pwm-cells = <3> for imx27-pwm device
6444e7b54264 ARM: dts: imx6qdl-nit6xlite: Use #pwm-cells = <3> for imx27-pwm device
34b05463f110 ARM: dts: imx6qdl-icore: Use #pwm-cells = <3> for imx27-pwm device
b6c1a9a0e786 ARM: dts: imx6qdl-gw5904: Use #pwm-cells = <3> for imx27-pwm device
567c0237038e ARM: dts: imx6qdl-gw5903: Use #pwm-cells = <3> for imx27-pwm device
3b97532650ae ARM: dts: imx6qdl-gw560x: Use #pwm-cells = <3> for imx27-pwm device
09b7e1fce9c0 ARM: dts: imx6qdl-gw54xx: Use #pwm-cells = <3> for imx27-pwm device
9d9c6be33f54 ARM: dts: imx6qdl-gw53xx: Use #pwm-cells = <3> for imx27-pwm device
01dc8030008c ARM: dts: imx6qdl-gw52xx: Use #pwm-cells = <3> for imx27-pwm device
442e9e2cd489 ARM: dts: imx6qdl-emcon: Use #pwm-cells = <3> for imx27-pwm device
4273ffc9b390 ARM: dts: imx6qdl-cubox-i: Use #pwm-cells = <3> for imx27-pwm device
6dc80d53ff06 ARM: dts: imx6qdl-aristainetos2: Use #pwm-cells = <3> for imx27-pwm device
771488ed93f3 ARM: dts: imx6qdl-apf6dev: Use #pwm-cells = <3> for imx27-pwm devices
a7a73f9e83b5 ARM: dts: imx6q-bosch-acc: Use #pwm-cells = <3> for imx27-pwm device
9b9357a17bcb ARM: dts: imx6q-ba16: Use #pwm-cells = <3> for imx27-pwm device
5bf9cc646738 ARM: dts: imx6dl-mamoj: Use #pwm-cells = <3> for imx27-pwm device
f135970e648f ARM: dts: imx6dl-aristainetos_7: Use #pwm-cells = <3> for imx27-pwm device
03a4cdebe838 ARM: dts: imx6dl-aristainetos_4: Use #pwm-cells = <3> for imx27-pwm device
743acc4b1e34 ARM: dts: imx53-tqma: Use #pwm-cells = <3> for imx27-pwm devices
92ea86f237ec ARM: dts: imx53-kp: Drop redundant settings in pwm nodes
6e6f0fe28f34 ARM: dts: imx53-ppd: Use #pwm-cells = <3> for imx27-pwm device
5727c6338d4c ARM: dts: imx53-m53evk: Use #pwm-cells = <3> for imx27-pwm device
f2cae0965dd3 ARM: dts: imx51-ts4800: Use #pwm-cells = <3> for imx27-pwm device
4541c38d4c60 arm64: dts: allwinner: h700: Add RG35XX-H DTS
daa5943c303a arm64: dts: allwinner: h700: Add RG35XX-Plus DTS
10cc453d0430 arm64: dts: allwinner: h700: Add RG35XX 2024 DTS
722c84ed33e6 dt-bindings: arm: sunxi: document Anbernic RG35XX handheld gaming device variants
e788464ef24b dt-bindings: rng: Add vmgenid support
75f2af2ca0ae dt-bindings: pwm: at91: Add sam9x7 compatible strings list
3353f9a8a5bc arm: dts: bcm2711: Describe Ethernet LEDs
3d50bf87d377 arm64: tegra: Add Tegra Security Engine DT nodes
7b08ed2620d2 arm64: tegra: Correct Tegra132 I2C alias
9627bea4c92a arm64: dts: allwinner: h616: Add NMI device node
91f842070ca8 ARM: tegra: tegra20-ac97: Replace deprecated "gpio" suffix
e8b0f9515b41 dt-bindings: display: tegra: Allow dma-coherent on Tegra194 and later
491f6ad2e547 ARM: tegra: paz00: Add emc-tables for ram-code 1
5ce17d4855f4 dt-bindings: cpufreq: cpufreq-qcom-hw: Add SM4450 compatibles
c90ac68e2be2 dt-bindings: iommu: renesas,ipmmu-vmsa: add r8a779h0 support
b0a13ac425b3 dt-bindings: crypto: starfive: Restore sort order
e8a597329b91 dt-bindings: gpio: brcmstb: add gpio-ranges
45e5187d9fa1 Merge tag 'mediatek-drm-next-6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-next
e1a940d29d46 ASoC: dt-bindings: fsl,ssi: Convert to YAML
f2c94311aed5 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
84b998c95492 dt-bindings: clock: renesas,rzg2l-cpg: Update #power-domain-cells = <1> for RZ/G3S
b552f8f18bfc dt-bindings: clock: r9a08g045-cpg: Add power domain IDs
0c0d1f342539 dt-bindings: clock: r9a07g054-cpg: Add power domain IDs
ae25d8155ea7 dt-bindings: clock: r9a07g044-cpg: Add power domain IDs
ac3c38d1a01e dt-bindings: clock: r9a07g043-cpg: Add power domain IDs
fe6a602e4ebf arm64: dts: st: correct masks for GIC PPI interrupts on stm32mp25
9e5a000a4104 arm64: dts: st: add spi3 / spi8 properties on stm32mp257f-ev1
4aeaef4d0e11 arm64: dts: st: add spi3/spi8 pins for stm32mp25
67ba1036313a arm64: dts: st: add all 8 spi nodes on stm32mp251
9c54638973a4 arm64: dts: st: add i2c2 / i2c8 properties on stm32mp257f-ev1
8b31f6abad0e arm64: dts: st: add i2c2/i2c8 pins for stm32mp25
5e4a8c073dca arm64: dts: st: add all 8 i2c nodes on stm32mp251
64999979f7da arm64: dts: st: add rcc support for STM32MP25
1669707ddf84 ARM: dts: stm32: enable display support on stm32mp135f-dk board
346b593975d0 ARM: dts: stm32: add LTDC pinctrl on STM32MP13x SoC family
24aa5bae642e ARM: dts: stm32: add LTDC support for STM32MP13x SoC family
4d6a8bd0c624 dt-bindings: display: simple: allow panel-common properties
33f5c9c9fb56 ARM: dts: stm32: add PWR regulators support on stm32mp131
d6faa3bf1bb7 media: dt-bindings: add access-controllers to STM32MP25 video codecs
b16594d4ebce ARM: dts: stm32: add heartbeat led for stm32mp157c-ed1
493c81145d01 ARM: dts: stm32: move can3 node from stm32f746 to stm32f769
c17556a78124 ARM: dts: stm32: put ETZPC as an access controller for STM32MP13x boards
e4e32345cbfc ARM: dts: stm32: add ETZPC as a system bus for STM32MP13x boards
75b51ac3298b ARM: dts: stm32: put ETZPC as an access controller for STM32MP15x boards
2a5199568715 ARM: dts: stm32: add ETZPC as a system bus for STM32MP15x boards
86502fa8c41b arm64: dts: st: add RIFSC as an access controller for STM32MP25x boards
f062a015f4f5 arm64: dts: ti: k3-j784s4: Use exact ranges for FSS node
0c0e03ec224e arm64: dts: ti: k3-j721e: Use exact ranges for FSS node
f00e6260851d arm64: dts: ti: k3-j7200: Use exact ranges for FSS node
2b5965048af3 arm64: dts: ti: k3-am65: Use exact ranges for FSS node
67b4c30577d2 arm64: dts: ti: k3-am65: Move SerDes mux nodes under the control node
3358adf6b793 arm64: dts: ti: k3-am65: Add full compatible to SerDes control nodes
535a3c9fbc39 arm64: dts: imx93-11x11-evk: add RTC PCF2131 support
0eb52fbf2b5b dt-bindings: dma: fsl-edma: allow 'power-domains' property
d1b04584c784 dt-bindings: dma: fsl-edma: remove 'clocks' from required
b0f652da2c1a dt-bindings: fsl-imx-sdma: Add I2C peripheral types ID
db50dffed6e0 dt-bindings: fsl-dma: fsl-edma: clean up unused "fsl,imx8qm-adma" compatible string
cc846cc8c9a3 dt-bindings: dma: Drop unused QCom hidma binding
5f63f6393d95 dt-bindings: clock: google,gs101-clock: add HSI0 clock management unit
d3de8c521ca4 arm64: dts: imx93-11x11-evk: add reset gpios for ethernet PHYs
71803901715e arm64: dts: imx93-11x11-evk: add sleep pinctrl for sdhc2
e785de3e57da arm64: dts: imx93-11x11-evk: add different usdhc pinctrl for different timing usage
42b4ea4a24dc arm64: dts: imx93-11x11-evk: add sleep pinctrl for eqos and fec
3c1a4d062690 arm64: dts: imx93-11x11-evk: update resource table address
b9bfb20ead6b arm64: dts: imx93: add nvmem property for eqos
b2feecd51432 arm64: dts: imx93: add nvmem property for fec1
5f69da62e7ef arm64: dts: imx93: assign usdhc[1..3] root clock to 400MHz
181b3041bbb7 arm64: dts: imx93: add dma support for lpspi[1..8]
4c954fbede67 arm64: dts: imx93: add dma support for lpi2c[1..8]
175c3328f64f arm64: dts: imx93: use FSL_EDMA_RX for rx channel
313d19f58e75 arm64: dts: freescale: ls1028a: Add standard PCI device compatible strings to ENETC
1d8c51469b41 arm64: dts: freescale: ls1028a: Fix embedded PCI interrupt mapping
1f7d8fa2f7e0 arm64: dts: imx8qxp-mek: add cm40_i2c, wm8960 and sai[0,1,4,5]
15aedc871fe4 arm64: dts: imx8mp: Align both CSI2 pixel clock
4442cdcc4fc8 ARM: dts: imx6ull-tarragon: Reduce SPI clock for QCA7000
b0d57263bdf2 ARM: dts: nxp: imx6qdl: fix esai clock warning when do dtb_check
57fdf0a64275 ARM: dts: nxp: imx6sx: fix esai related warning when do dtb_check
6df4426dd76b ARM: dts: BCM5301X: Conform to DTS Coding Style on ASUS RT-AC3100 & AC88U
c426fd6da616 ARM: dts: BCM5301X: Add DT for ASUS RT-AC5300
b2a89f7efb01 ARM: dts: BCM5301X: Add DT for ASUS RT-AC3200
a932bc9ff274 dt-bindings: arm: bcm: add bindings for ASUS RT-AC5300
1255f9086006 dt-bindings: arm: bcm: add bindings for ASUS RT-AC3200
31dbca206286 ARM: dts: bcm2835: Add Unicam CSI nodes
7dcc70cf239d media: dt-bindings: nxp,imx8-jpeg: Add clocks entries
dbfa282670db ARM: dts: aspeed: Add vendor prefixes to lm25066 compat strings
e4599b879ecc arm64: dts: cavium: thunder2-99xx: drop redundant reg-names
76ec00bedfda arm64: dts: amazon: alpine-v3: correct gic unit addresses
c4f94cdc07e6 arm64: dts: amazon: alpine-v3: drop cache nodes unit addresses
ebdc05f0329b arm64: dts: amazon: alpine-v3: add missing io-fabric unit addresses
ad5e68116954 arm64: dts: amazon: alpine-v2: move non-MMIO node out of soc
29e19d50851c arm64: dts: amazon: alpine-v2: add missing io-fabric unit addresses
ce0b227a6574 arm64: dts: apm: shadowcat: move non-MMIO node out of soc
27c326261c5b arm64: dts: apm: storm: move non-MMIO node out of soc
d9a81ed4a976 arm64: dts: cavium: correct unit addresses
8c4332bb1675 arm64: dts: cavium: move non-MMIO node out of soc
e9269e3c4077 arm64: dts: realtek: rtc16xx: add missing unit address to soc node
724eaba44818 arm64: dts: realtek: rtd139x: add missing unit address to soc node
52adc8d0a8c1 arm64: dts: realtek: rtd129x: add missing unit address to soc node
089cadb46086 arm64: dts: uniphier: ld20-global: drop audio codec port unit address
c8128ae212de arm64: dts: uniphier: ld20-global: use generic node name for audio-codec
5cf76606fda2 arm64: dts: uniphier: ld11-global: drop audio codec port unit address
93e079a0d13a arm64: dts: uniphier: ld11-global: use generic node name for audio-codec
41365adca496 arm64: dts: sharkl3: add missing unit addresses
54ef9a80a93a arm64: dts: whale2: add missing ap-apb unit address
9791da4e0389 arm64: dts: sc9860: move GIC to soc node
ce02ab2f5b45 arm64: dts: sc9860: move GPIO keys to board
92205bb23cdd arm64: dts: sc9860: add missing aon-prediv unit address
10256f562a49 Merge tag 'iio-for-6.10a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
3d013af73b39 dt-bindings: usb: qcom,dwc3: Add bindings for SC8280 Multiport
ec09e3a30b9f dt-bindings: usb: Add bindings for multiport properties on DWC3 controller
cde9be1559bf ASoC: dt-bindings: renesas: Fix R-Car Gen4 SoC-specific compatibles
f6b925bcd3bc ASoC: dt-bindings: tegra20-ac97: convert to dt schema
d7ddd18e6ec7 dt-bindings: usb: uhci: convert to dt schema
e61b74add0c7 dt-bindings: usb: qcom,pmic-typec: update example to follow connector schema
135af74d5147 dt-bindings: clock: qcom,hfpll: Convert to YAML
d91a413d181d dt-bindings: watchdog: aspeed,ast2400-wdt: Convert to DT schema
1c22fce3413a dt-bindings: irq: sun7i-nmi: Add binding for the H616 NMI controller
b95bd2d7176e dt-bindings: interrupt-controller: renesas,irqc: Add r8a779g0 support
193d3b2a0a98 arm64: dts: rockchip: add dual-role usb3 hosts to rk3588 Tiger-Haikou
4843cec40923 arm64: dts: rockchip: add usb-id extcon on rk3588 tiger
56f3031edf22 arm64: dts: rockchip: fix comment for upper usb3 port
b574cbafae97 arm64: dts: rockchip: fix pcie-refclk frequency on rk3588 tiger
cb2b6d1d19ed arm64: dts: rockchip: correct gpio_pwrctrl1 typos on rk3588(s) boards
c1af4a1c01a7 dt-bindings: display: bridge: tc358775: Add support for tc358765
2f5f0d103f6e dt-bindings: display: bridge: tc358775: Add data-lanes
98f090f0b5fe dt-bindings: display: bridge: tc358775: make stby gpio optional
064e9e5ce2f1 arm64: dts: rockchip: Correct the model names for Pine64 boards
237ad7104aec dt-bindings: arm: rockchip: Correct the descriptions for Pine64 boards
d427a11542bc arm64: dts: rockchip: Add ArmSom Sige7 board
0eba211d362e dt-bindings: arm: rockchip: Add ArmSoM Sige7
c2f903162038 dt-bindings: vendor-prefixes: add ArmSoM
76a89655ae74 arm64: dts: rockchip: add PCIe3 support on rk3588-jaguar
f8314a4fbc00 arm64: dts: rockchip: move uart2 pinmux to dtsi on rk3588-tiger
79943532fa1d arm64: dts: rockchip: Add USB-C Support for rk3588s-indiedroid-nova
e7af62a934e8 arm64: dts: rockchip: correct the model name for Radxa ROCK 3A
82aeee87f2b1 dt-bindings: arm: rockchip: correct the model name for Radxa ROCK 3A
03003583b4be arm64: dts: rockchip: Correct the model names for Radxa ROCK 5 boards
15e69ac796bd dt-bindings: arm: rockchip: Correct the descriptions for Radxa boards
9072fb708188 ARM: dts: qcom: msm8974: Add DTS for Samsung Galaxy S5 China (kltechn)
d69fe87f0860 ARM: dts: qcom: msm8974-klte-common: Pin WiFi board type
68af5e61e7c9 ARM: dts: qcom: msm8974: Split out common part of samsung-klte
594567bc46d5 dt-bindings: arm: qcom: Add Samsung Galaxy S5 China (kltechn)
bbd47e34ab5f Merge 6.9-rc5 into usb-next
c9ee8fc981cc Merge 6.9-rc5 into tty-next
4f761a6b1012 dt-bindings: thermal: loongson,ls2k-thermal: Fix incorrect compatible definition
a553f548d1cd dt-bindings: thermal: loongson,ls2k-thermal: Add Loongson-2K0500 compatible
288af1f42e2b dt-bindings: thermal: mediatek: Add LVTS thermal controller definition for MT8188
57c07263aa4d dt-bindings: thermal: mediatek: Add LVTS thermal controller definition for MT8186
6698b27c6dea dt-bindings: thermal: amlogic: add support for A1 thermal sensor
3776c6969512 dt-bindings: thermal: convert st,stih407-thermal to DT schema
bcd66b45dd34 dt-bindings: thermal: lmh: Add QCM2290 compatible
ce86f3e9490e riscv: dts: sophgo: add reserved memory node for CV1800B
846b04d066ea arm64: dts: amlogic: Add Amlogic T7 reset controller
39f26adbfa16 arm64: dts: renesas: r8a779h0: Link IOMMU consumers
d14870f832b7 arm64: dts: renesas: r8a779h0: Add IPMMU nodes
c114bd646dce arm64: dts: renesas: r8a779h0: Add INTC-EX node
67b0516ceda5 arm64: dts: renesas: r8a779h0: Add MSIOF nodes
bc619ae30078 dt-bindings: display: bridge: add sam9x75-lvds binding
dca3302106bf Merge drm/drm-next into drm-misc-next
7ce6e2097034 ASoC: dt-bindings: mt2701-wm8960: Convert to dtschema
da00fbc40e0f dt-bindings: kbuild: Split targets out to separate rules
69656e8d2d76 dt-bindings: kbuild: Simplify examples target patsubst
4e5b1058f5ef arm64: dts: st: Add interrupt parent to pinctrl on stm32mp251
fb49b549917e arm64: dts: st: Add exti1 and exti2 nodes on stm32mp251
484a80c84c86 ARM: dts: stm32: List exti parent interrupts on stm32mp131
05eba090e415 ARM: dts: stm32: List exti parent interrupts on stm32mp151
4d2f464d5eae dt-bindings: interrupt-controller: stm32-exti: Add irq mapping to parent
e59c511bbde3 dt-bindings: display: msm: sm6350-mdss: document DP controller subnode
5065723fb8b8 dt-bindings: display: msm: dp-controller: document SM6350 compatible
b9fef5367089 arm64: dts: qcom: qrb4210-rb1: add firmware-name qualifier to WiFi node
0bdead1f85d4 arm64: dts: qcom: qrb2210-rb1: add firmware-name qualifier to WiFi node
b86228aea8a3 dt-bindings: clock: support i.MX95 Display Master CSR module
e39d9c9fec9f dt-bindings: clock: support i.MX95 BLK CTL module
b47570e09314 dt-bindings: clock: add i.MX95 clock header
8a5fb2310d54 media: dt-bindings: i2c: use absolute path to other schema
970ad453bd0b media: dt-bindings: sony,imx290: Allow props from video-interface-devices
9662a8f02c4f dt-bindings: display: panel: Add Raydium RM69380
c69d47a5e76a dt-bindings: panel-simple-dsi: add Khadas TS050 V2 panel
22deef8e4842 arm64: dts: renesas: rzg3s-smarc-som: Enable eMMC by default
623a1025d410 riscv: dts: renesas: rzfive-smarc-som: Drop deleting interrupt properties from ETH0/1 nodes
874db36b90ff arm64: dts: renesas: r9a07g043: Move interrupt-parent property to common DTSI
0e066368fa42 riscv: dts: renesas: r9a07g043f: Add IRQC node to RZ/Five SoC DTSI
050fde68cb8e arm64: dts: freescale: imx8m[mp]-verdin: Update audio card name
03a997c520c4 arm64: dts: imx8mp: Enable HDMI on TQMa8MPxL/MBa8MPxL
4e5ac2e78d9b arm64: dts: imx8ulp: add caam jr
0395ab5e9103 ARM: dts: imx6: exchange fallback and specific compatible string
7cf7d11c97e8 arm64: dts: imx8mp-msc-sm2s: Add i2c{1,6} sda-/scl-gpios
c299857e7675 arm64: dts: imx8mp-msc-sm2s: correct i2c{1..6} pad drive strength
231306f6ad3a arm64: dts: imx8-ss-img: Remove JPEG clock-names
f813facbaa87 arm64: dts: freescale: imx8mm-verdin-dahlia: support sleep-moci
acab386ccefb arm64: dts: freescale: imx8mm-verdin: replace sleep-moci hog with regulator
63dc0e6ae76e arm64: dts: freescale: imx8mp-verdin-dahlia: support sleep-moci
9ccc8468709f arm64: dts: freescale: imx8mp-verdin: replace sleep-moci hog with regulator
a9571e00d3b3 Backmerge tag 'v6.9-rc5' into drm-next
df08f4f212a6 arm64: dts: imx8mn-var-som-symphony: drop redundant status from typec
d5da00ac49ef arm64: dts: imx8mm-var-som-symphony: drop redundant status from typec
737b4984fa47 arm64: dts: imx8mp-debix-som-a-bmb-08: Remove 'phy-supply' from eqos
8ff9a66b6479 arm64: dts: debix-a: Disable i2c2 in base .dts
4277d554b60b arm64: dts: imx8mm-evk: Describe the OV5640 supplies
ded973496d04 arm64: dts: imx8mn-evk: Describe the OV5640 supplies
ddde68a91a43 arm64: dts: imx8mn-evk: Fix ADV7535 dt-schema warnings
22d0352ce7a2 arm64: dts: imx8m/qxp: Pass the tcpci compatible
1f4e0bb83c90 arm64: dts: imx8mm/n remove clock-names property from usb controller node
a1e2d847e35f arm64: dts: imx93-11x11-evk: enable usb and typec nodes
2b1e53353f62 arm64: dts: imx93: add usb nodes
ef3c85188e47 arm64: dts: imx8ulp-evk: enable usb nodes and add ptn5150 nodes
6e96829c4bf3 arm64: dts: imx8ulp: add usb nodes
3f9d11d6fb6d ARM: dts: imx6: remove fsl,anatop property from usb controller node
6c316ffa4077 dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible
372c4db7e6dd ARM: dts: imx27-phytec: Add USB support
635ce5bbaaed dt-bindings: arm: fsl: Add Colibri iMX8DX
b445678b1931 dt-bindings: arm: fsl: remove reduntant toradex,colibri-imx8x
8488eb1462dd arm64: dts: freescale: Add Toradex Colibri iMX8DX
972adfe63fb1 arm64: dts: freescale: Add i.MX8DX dtsi
ad6fdd80ee3b arm64: dts: ls1028a: sl28: split variant 3/ads2 carrier
a9ce8b591785 Merge tag 'drm-misc-next-2024-04-19' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
dd3a144eda21 ASoC: PCM6240: New driver
9a99a6316892 riscv: dts: sophgo: use real clock for sdhci
c840ff2e18af arm64: dts: allwinner: Add Tanix TX1 support
b2e0faa8a675 dt-bindings: arm: sunxi: document Tanix TX1 name
792162cae91c arm64: dts: qcom: ipq6018: Add PCIe bridge node
3fa9637a2947 arm64: dts: qcom: ipq8074: Add PCIe bridge node
efa4c08d038f arm64: dts: qcom: msm8996: Add PCIe bridge node
ad5da98437f7 arm64: dts: qcom: sc8180x: Add PCIe bridge node
674f6d7f54ca arm64: dts: qcom: qcs404: Add PCIe bridge node
20e81d93a236 arm64: dts: qcom: sc7280: Add PCIe bridge node
5a5a8af96f18 arm64: dts: qcom: msm8998: Add PCIe bridge node
289c55880aee arm64: dts: qcom: sc8280xp: Add PCIe bridge node
7025014034f2 arm64: dts: qcom: sa8775p: Add PCIe bridge node
43321683cb9a arm64: dts: qcom: sm8650: Add PCIe bridge node
8f495de80b7a arm64: dts: qcom: sm8550: Add PCIe bridge node
614fb1ab653a arm64: dts: qcom: sm8450: Add PCIe bridge node
d92455378183 arm64: dts: qcom: sm8350: Add PCIe bridge node
827a7e42477f arm64: dts: qcom: sm8150: Add PCIe bridge node
53242571d01a arm64: dts: qcom: sdm845: Add PCIe bridge node
af9c05149646 arm64: dts: qcom: sm8250: Add PCIe bridge node
e5500772de61 arm64: dts: qcom: sdm845-db845c: make pcie0_3p3v_dual always-on
b3515c2998df ARM: dts: qcom: sdx55: Add PCIe bridge node
cce6533a5cbd ARM: dts: qcom: apq8064: Add PCIe bridge node
2b3b05d1c9c9 ARM: dts: qcom: ipq4019: Add PCIe bridge node
63cf887a7580 ARM: dts: qcom: ipq8064: Add PCIe bridge node
b4ee17574c35 arm64: dts: qcom: sm8450: Update SNPS Phy parameters for QRD platform
22648e1bee56 arm64: dts: qcom: sc8280xp: Fill in EAS properties
f2bd2e49960f arm64: dts: qcom: sm8650: Add three missing fastrpc-compute-cb nodes
e856db61a40f arm64: dts: qcom: sm8650-qrd: enable GPU
35f100996e20 arm64: dts: qcom: sm8650: add GPU nodes
a8ead17a3d36 arm64: dts: qcom: pm6150l: add Light Pulse Generator device node
9cc74d26a17e arm64: dts: qcom: msm8916/39-samsung-a2015: Add connector for MUIC
02e733071f05 arm64: dts: qcom: sm8250-xiaomi-elish: set pm8150b_vbus regulator-min-microamp and regulator-max-microamp
6c1a75a420ef arm64: dts: qcom: sm8650: remove useless enablement of mdss_mdp
4ce5797e3436 arm64: dts: qcom: sdx75: add unit address to soc node
9258093861eb arm64: dts: qcom: sm6350: Add DisplayPort controller
90a500593abc arm64: dts: qcom: qcs6490-rb3gen2: Enable various remoteprocs
bfd0381c5a70 arm64: dts: qcom: qcm6490-idp: Enable various remoteprocs
de9c4e5e8b56 ASoc: dt-bindings: PCM6240: Add initial DT binding
fd8694bdb0b9 spi: dt-bindings: armada-3700: convert to dtschema
c78c899c96cb ASoC: dt-bindings: nau8821: Add delay control for ADC
7b3c910a7d6d arm64: dts: qcom: sc8180x-lenovo-flex-5g: add USB-C orientation GPIOs
708d770a5a70 arm64: dts: qcom: sc8280xp-lenovo-thinkpad-x13s: add USB-C orientation GPIOs
9e442cc8cb3c arm64: dts: qcom: sm8450-hdk: add USB-C orientation GPIO
0a661711b1ef arm64: dts: qcom: sm8350-hdk: add USB-C orientation GPIO
77c5e3ad588e dt-bindings: soc: qcom: pmic-glink: allow orientation-gpios
1aefd03e59f6 arm64: dts: qcom: qcm6490-fairphone-fp5: Add USB-C orientation GPIO
2ceae1539ae0 arm64: dts: qcom: qcm6490-idp: Name the regulators
d9102d3b2e3b arm64: dts: qcom: sa8155p-adp: lower min volt for L13C regulator
8a715b91a1c7 arm64: dts: qcom: x1e80100-qcp: Add data-lanes and link-frequencies to DP3
6bd780421531 arm64: dts: qcom: x1e80100-crd: Add data-lanes and link-frequencies to DP3
ea5e16fd9a8f arm64: dts: qcom: x1e80100: Drop the link-frequencies from mdss_dp3_in
62eb2be767ab dt-bindings: iio: dac: add docs for AD9739A
d03d8d312e65 dt-bindings: iio: dac: add docs for AXI DAC IP
7cba578ebc5b dt-bindings: iio: adc: Add GPADC for Allwinner H616
9c6368e9206d dt-bindings: firmware: Support SCMI pinctrl protocol
b90eb90ea59b dt-bindings: display: add #sound-dai-cells property to rockchip inno hdmi
e60c6ed27ba8 dt-bindings: display: add #sound-dai-cells property to rockchip rk3066 hdmi
9184fbd7f9c0 dt-bindings: display: add #sound-dai-cells property to rockchip dw hdmi
2447c9c646f9 media: dt-bindings: nxp,imx8-isi: Refuse port@1 for single pipeline models
8f23b15184a2 arm64: dts: hisilicon: hi6220: correct tsensor unit addresses
c74ffcb584df arm64: dts: hisilicon: hi6220-hikey: drop unit addresses from fixed regulators
ea691e292404 arm64: dts: hisilicon: hi6220-hikey: add missing port@0 reg
ab6c144490e2 arm64: dts: hisilicon: hip07: correct unit addresses
46ce6c6b3ced arm64: dts: hisilicon: hip07: move non-MMIO node out of soc
0f4e57316446 arm64: dts: allwinner: h616: enable DVFS for all boards
3eab0acf4dc6 arm64: dts: allwinner: h616: Add CPU OPPs table
4451e3f41280 dt-bindings: opp: Describe H616 OPPs and opp-supported-hw
80780ee52ad0 dt-bindings: net: pse-pd: Add bindings for TPS23881 PSE controller
39f7f40b60e2 dt-bindings: net: pse-pd: Add bindings for PD692x0 PSE controller
e1d12a2e6d7b dt-bindings: net: pse-pd: Add another way of describing several PSE PIs
0fab9829ac44 dt-bindings: panel: Add LG SW43408 MIPI-DSI panel
ca2684c1c09a ASoC: dt-bindings: tegra20-das: Convert to schema
fffcea9cfd96 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
10901064860d dt-bindings: net: wireless: ath11k: add ieee80211-freq-limit property
3b3e27060fa4 dt-bindings: iommu: Add Qualcomm TBU
7fb1e0c3b046 dt-bindings: input: qcom,pm8xxx-vib: add new SPMI vibrator module
4d9de260623d dt-bindings: rtc: convert trivial devices into dtschema
5b5dad161413 dt-bindings: rtc: stmp3xxx-rtc: convert to dtschema
5e83626c68b1 dt-bindings: rtc: pxa-rtc: convert to dtschema
2e201b1cc9a9 dt-bindings: display: simple: Document support for Innolux G121XCE-L01
f8cb949a406d dt-bindings: pinctrl: qcom,pmic-mpp: add support for PM8901
b595893b51c4 ARM: dts: BCM5301X: remove earlycon on ASUS RT-AC3100 and ASUS RT-AC88U
6dd340cd11ca ARM: dts: BCM5301X: remove duplicate compatible on ASUS RT-AC3100 & AC88U
624473a5acb2 ARM: dts: BCM5301X: provide address for SoC MACs on ASUS RT-AC3100 & AC88U
7890a8b5ff01 ARM: dts: BCM5301X: use color and function on ASUS RT-AC3100 and RT-AC88U
22b146adfde1 spi: renesas,sh-msiof: Add r8a779h0 support
7ba9de6ac529 ASoC: dt-bindings: fsl-esai: Add ref: dai-common.yaml
c67e24d41931 ASoC: dt-bindings: fsl-esai: Remove 'fsl,*' from required list
7ea6e214feb6 dt-bindings: net: nxp,dwmac-imx: allow nvmem cells property
77270e20c8ca Add bridged amplifiers to cs42l43
88bd2ae39b93 dt-bindings: rtc: Add Epson RX8111
fdd26ceb0ac4 dt-bindings: remoteproc: Add Tightly Coupled Memory (TCM) bindings
d1a1f0026e6f dt-bindings: timer: renesas,tmu: Add R-Car V4M support
029854351396 dt-bindings: timer: renesas,cmt: Add R-Car V4M support
66a2a0d705dd ASoC: dt-bindings: mt8186: Document audio-routing and dai-link subnode
7620d2403dce ASoC: dt-bindings: mt8192: Document audio-routing and dai-link subnode
47c9a52cce50 ASoC: dt-bindings: mt8195: Document audio-routing and dai-link subnode
3bf78bb5cc88 dt-bindings: arm: qcom,coresight-tpda: fix indentation in the example
53869a4bf3ee dt-bindings: arm: qcom,coresight-tpda: drop redundant type from ports
8c7997fd282d arm64: dts: qcom: Add SM8550 Xperia 1 V
3b5767aa3c6b arm64: dts: qcom: sm8550: Mark DWC3 as dma-coherent
a9ff394b4128 arm64: dts: qcom: sm8550: Add missing DWC3 quirks
433ab5edb4df arm64: dts: qcom: sm8550: Mark APPS SMMU as dma-coherent
833ee79f0fa1 arm64: dts: qcom: sm8550: Mark QUPs and GPI dma-coherent
8bf4246f2516 dt-bindings: arm: qcom: Add Xperia 1 V
793d53285155 ASoC: dt-bindings: fsl-asoc-card: Add compatbile string for wm8904 codec
29c05c4fef59 ARM: dts: sun5i: Add PocketBook 614 Plus support
02911b69b54c dt-bindings: arm: sunxi: Add PocketBook 614 Plus
c3bc81c454e7 arm64: dts: allwinner: h616: Fix I2C0 pins
9dbf17fb46ed arm64: dts: allwinner: a64: Run GPU at 432 MHz
065337b68a65 arm: dts: allwinner: drop underscore in node names
11e006da2c2b arm64: dts: allwinner: Orange Pi: delete node by phandle
142edd589c5c arm64: dts: allwinner: drop underscore in node names
42cbbd959064 arm64: dts: allwinner: Pine H64: correctly remove reg_gmac_3v3
b819040dd5fd arm64: dts: allwinner: pinephone: add multicolor LED node
ccb22b1e8596 arm64: dts: allwinner: pinephone: Retain LEDs state in suspend
3ec5c145b84f dt-bindings: firmware: arm,scmi: Update examples for protocol@13
fc1542cb9848 riscv: dts: starfive: visionfive 2: Remove non-existing I2S hardware
849cce26716d riscv: dts: starfive: visionfive 2: Remove non-existing TDM hardware
c8eb0c3a74ec dt-bindings: leds: Add LED_FUNCTION_FNLOCK
2e58ac425d2a dt-bindings: mtd: fixed-partition: Add binman compatibles
7260163a815f dt-bindings: mtd: fixed-partitions: Add alignment properties
fe3814a394e7 arm64: dts: renesas: s4sk: Fix ethernet0 alias
e23a71d01d46 mips: dts: ralink: mt7621: reorder the attributes of the root node
24b391a21bdc mips: dts: ralink: mt7621: reorder pci?_phy attributes
4ae4e7293603 mips: dts: ralink: mt7621: reorder pcie node attributes and children
3f3dfc4236a2 mips: dts: ralink: mt7621: reorder ethernet node attributes and kids
bfb4c4833169 mips: dts: ralink: mt7621: reorder gic node attributes
1f0f3bc19c21 mips: dts: ralink: mt7621: reorder mmc node attributes
a5e2998183bb mips: dts: ralink: mt7621: move pinctrl and sort its children
6f444a119795 mips: dts: ralink: mt7621: reorder spi0 node attributes
fca30a7535b1 mips: dts: ralink: mt7621: reorder i2c node attributes
a540f9b8ec03 mips: dts: ralink: mt7621: reorder gpio node attributes
0835fe77afc5 mips: dts: ralink: mt7621: reorder sysc node attributes
e07a025b5975 mips: dts: ralink: mt7621: reorder mmc regulator attributes
2dcf68a0bcf7 mips: dts: ralink: mt7621: reorder cpuintc node attributes
ca0c18c23fa8 mips: dts: ralink: mt7621: reorder cpu node attributes
053249b6d5ec ASoC: dt-bindings: renesas,rsnd: add missing renesas,rcar_sound-gen4
1d87f8890aa8 ASoC: dt-bindings: renesas: add R8A779H0 V4M
f4d04690315a ASoC: dt-bindings: fsl-asoc-card: Document fsl,imx25-pdk-sgtl5000
55ae66772efa dt-bindings: iio: imu: add icm42688 inside inv_icm42600
fdfa8d1b35b9 dt-bindings: iio: imu: mpu6050: Improve i2c-gate disallow list
8ba514ee5b82 dt-bindings: phy: rockchip,pcie3-phy: add rockchip,rx-common-refclk-mode
440bd54eb270 arm64: dts: hisilicon: hip06: correct unit addresses
5741ae4cfabd arm64: dts: hisilicon: hip06: move non-MMIO node out of soc
5615c8589bf6 arm64: dts: hisilicon: hip05-d02: correct local-bus unit addresses
1c584edd5307 arm64: dts: hisilicon: hip05: move non-MMIO node out of soc
69456ffa148e dt-bindings: serial: fsl-linflexuart: add compatible for S32G3
671a5f693eb0 dt-bindings: PCI: ti,j721e-pci-host: Add support for J722S SoC
4f2091cdb0b3 dt-bindings: PCI: rcar-pci-host: Add missing IOMMU properties
507490f1d073 dt-bindings: PCI: ti,j721e-pci-host: Add device-id for TI's J784S4 SoC
402af187821d arm64: dts: rockchip: add lower USB3 port to rock-5b
c233f1327b04 arm64: dts: rockchip: add upper USB3 port to rock-5a
b8109b201486 arm64: dts: rockchip: add USB3 to rk3588-evb1
c7ed588e14f7 arm64: dts: rockchip: add USB3 DRD controllers on rk3588
5110caca9865 arm64: dts: rockchip: add USBDP phys on rk3588
f6835a60a8a2 arm64: dts: rockchip: reorder usb2phy properties for rk3588
5a3e46384924 arm64: dts: rockchip: fix usb2phy nodename for rk3588
ca27a06eb38e arm64: dts: add support for A5 based Amlogic AV400
2868f52a63b2 arm64: dts: add support for A4 based Amlogic BA400
1323400c1680 dt-bindings: serial: amlogic,meson-uart: Add compatible string for A4
951cf87f261f dt-bindings: arm: amlogic: add A5 support
4d21ea87f93a dt-bindings: arm: amlogic: add A4 support
3230ebde1f40 arm64: dts: meson: fix S4 power-controller node
42d59356df34 dt-bindings: phy: add rockchip usbdp combo phy document
2b5e4f248bf1 dt-bindings: phy: mediatek,mt7988-xfi-tphy: add new bindings
f0ba52b92b91 dt-bindings: leds: leds-qcom-lpg: Add support for PMI8950 PWM
9d3514916b43 dt-bindings: leds: Add LED_FUNCTION_SPEED_* for link speed on LAN/WAN
da14d6d29c69 dt-bindings: leds: Add LED_FUNCTION_MOBILE for mobile network
18a65e58e997 dt-bindings: leds: qcom-lpg: Document PM6150L compatible
aff549a2c519 dt-bindings: leds: pca963x: Convert text bindings to YAML
8a42a5a7094a dt-bindings: pinctrl: qcom,pmic-gpio: Allow gpio-hog nodes
4d88755d4f02 dt-bindings: pinctrl: mediatek: mt7622: add "gpio-ranges" property
58a4d54d07ea dt-bindings: crypto: Add Tegra Security Engine
9875df0acad4 dt-bindings: clocks: stm32mp25: add description of all parents
f79ff26e4bd9 arm64: dts: qcom: sc7180: Fix UFS PHY clocks
0f1da974f0c6 ASoC: dt-bindings: imx-audio-spdif: convert to YAML
969d92103dca Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
720c248f51d0 arm64: dts: rockchip: Add RTC to Khadas Edge 2
f766df51c087 arm64: dts: rockchip: Add UART9 (bluetooth) to Khadas Edge 2
8f965606dbf4 dt-bindings: usb: mtk-xhci: add compatible for MT7988
c0fe192cdc06 riscv: dts: sophgo: cv18xx: Add i2c devices
38d466fa7c5f riscv: dts: sophgo: cv18xx: Add spi devices
6f3a52a619b6 riscv: dts: sophgo: add uart clock for Sophgo CV1800 series SoC
be0d967b9b51 dt-bindings: clock: loongson2: Add Loongson-2K2000 compatible
d7fd32f4c1c5 dt-bindings: clock: loongson2: Add Loongson-2K0500 compatible
1b502771fcfe dt-bindings: clock: Add Loongson-2K expand clock index
d43c45938c89 riscv: dts: sophgo: add clock generator for Sophgo CV1800 series SoC
54a73d7ee90b dt-bindings: clock: sophgo: Add clock controller of SG2000 series SoC
4ddda6ec89e3 Merge tag 'drm-misc-next-2024-04-10' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
59f5b90f6022 dt-bindings: clock: airoha: add EN7581 binding
af199d083c8c spi: dt-bindings: cdns,qspi-nor: make cdns,fifo-depth optional
f30a682bbd33 spi: dt-bindings: cdns,qspi-nor: add mobileye,eyeq5-ospi compatible
37f288f24b0c spi: dt-bindings: cdns,qspi-nor: sort compatibles alphabetically
15d4829cc09c media: dt-bindings: ovti,ov2680: Document link-frequencies
44205d76c574 media: dt-bindings: ovti,ov2680: Fix the power supply names
ea8981faa277 arm64: dts: amlogic: meson-g12b-bananapi-cm4: add support for MNT Reform2 with CM4 adaper
5a1cbb4c0781 arm64: meson: khadas-vim3l: add TS050 DSI panel overlay
33dcd812c5a2 arm64: meson: g12-common: add the MIPI DSI nodes
ac04088b017d dt-bindings: arm: amlogic: Document the MNT Reform 2 CM4 adapter with a BPI-CM4 Module
dcee52585ed7 arm64: dts: rockchip: Add SFC to Khadas Edge 2
e7a0bbef632c arm64: dts: rockchip: Add saradc and adc buttons to Khadas Edge 2 and enable tsadc
92bc0044a770 arm64: dts: rockchip: Add ir receiver and leds to Khadas Edge 2
0fb94e0aab08 arm64: dts: rockchip: USB2, USB3 Host, PCIe2 to Khadas Edge 2
682be859d514 arm64: dts: rockchip: Add TF card to Khadas Edge 2
5fcf64705741 arm64: dts: rockchip: Add PMIC to Khadas Edge 2
7251ac880143 arm64: dts: rockchip: Add cpu regulators and vcc5v0_sys to Khadas Edge 2
e5703403d444 arm64: dts: rockchip: Add GameForce Chi
f2f6ff697daf dt-bindings: arm: rockchip: Add GameForce Chi
9a13e1d1b045 arm64: dts: rockchip: Correct model name for Powkiddy RK3566 Devices
960030a2a423 arm64: dts: rockchip: Add chasis-type for Powkiddy rk3566 devices
2c8eed296597 arm64: dts: rockchip: Correct model name for Anbernic RGxx3 Devices
1e85e8b5fdd1 arm64: dts: rockchip: Add optional node for chasis-type on Anbernic rgxx3
f2045fdbf661 arm64: dts: rockchip: Add additional properties for WiFi on Anbernic rgxx3
7b7e52f7abec ARM: dts: ti: omap: minor whitespace cleanup
b2fa1da44ce6 ARM: dts: dra7: Use clksel binding for CTRL_CORE_SMA_SW_0
26f6b88d1c9c ARM: dts: dra7: Use clksel binding for CM_CLKSEL_DPLL_USB
bc435f2521cf ARM: dts: dra7: Use clksel binding for CM_CLKSEL_DPLL_PER
caea03c338a4 ARM: dts: dra7: Use clksel binding for CM_CLKSEL_ABE_PLL_SYS
b7ba991cfdff ARM: dts: dra7: Use clksel binding for CM_CLKSEL_CORE
b8006e1af631 ARM: dts: dra7: Use clksel binding for CM_CLKSEL_DPLL_EVE
fb6f236fa294 ARM: dts: dra7: Use clksel binding for CM_CLKSEL_DPLL_GMAC
4d8ea002f614 ARM: dts: dra7: Use clksel binding for CM_CLKSEL_DPLL_DRR
6d2b77fb6552 ARM: dts: dra7: Use clksel binding for CM_CLKSEL_DPLL_GPU
abc35a440788 ARM: dts: dra7: Use clksel binding for CM_CLKSEL_DPLL_IVA
bfcc3d449bb0 ARM: dts: dra7: Use clksel binding for CM_CLKSEL_DPLL_DSP
308034a287af ARM: dts: dra7: Use clksel binding for CM_CLKSEL_DPLL_CORE
428865b1e3c5 dt-bindings: reset: Define reset id used for HDMI Receiver
c826f12bdc1b dt-bindings: clock: rockchip: add USB480M_PHY mux
ac4fa51b0cf0 arm64: dts: rockchip: add Forlinx OK3588-C
6574fa6fb27f arm64: dts: rockchip: add Forlinx FET3588-C
6f20b7acc1dd dt-bindings: arm: rockchip: add Forlinx FET3588-C
c4a169d1a625 arm64: dts: rockchip: add Protonic MECSBC device-tree
a93d3a42ff73 dt-bindings: arm: rockchip: Add Protonic MECSBC board
bbf7c16f2f12 arm64: dts: rockchip: Fix ordering of nodes on rk3588s
7479504631b5 arm64: dts: ti: k3-j722s-evm: Enable eMMC support
c0c36b4c066f arm64: dts: ti: k3-{am62p,j722s}: Disable ethernet by default
467ac7adf4a7 arm64: dts: ti: k3-am642-phyboard-electra-rdk: Increase CAN max bitrate
3f507980dba5 arm64: dts: ti: k3-am625-phyboard-lyra-rdk: Increase CAN max bitrate
f1fcbddf5d12 arm64: dts: ti: k3-am625-verdin: add PCIe reset gpio hog
e08660f3cd03 arm64: dts: ti: verdin-am62: mallow: fix GPIOs pinctrl
7f53b6864a72 arm64: dts: ti: k3-j784s4: Remove UART baud rate selection
edfda3254cd2 arm64: dts: ti: k3-j721s2: Remove UART baud rate selection
6e3f0965c6f9 arm64: dts: ti: k3-j721e: Remove UART baud rate selection
da60eaaca57a arm64: dts: ti: k3-j7200: Remove UART baud rate selection
05c6b5e8d050 arm64: dts: ti: k3-am64: Remove UART baud rate selection
c77a507ba6c8 arm64: dts: ti: k3-am65: Remove UART baud rate selection
cbd99ec0ded5 arm64: dts: ti: k3-am62-lp-sk: Remove tps65219 power-button
e4161af885fa arm64: dts: ti: k3-am625-beagleplay: Use mmc-pwrseq for wl18xx enable
ca4dbece3a24 arm64: dts: ti: verdin-am62: use SD1 CD as GPIO
dc34c139bc92 arm64: dts: ti: verdin-am62: Set memory size to 2gb
7dc3b6bf42eb arm64: dts: ti: verdin-am62: dahlia: fix audio clock
7ca6e3df2bee arm64: dts: ti: k3-am62p5-sk: minor whitespace cleanup
eab9ad4caead dt-bindings: arm: keystone: Remove ti,system-reboot-controller property
b6c265f5abae ARM: dts: ti: keystone: k2g: Remove ti,system-reboot-controller property
02d2c9f2c78b ASoC: dt-bindings: davinci-mcbsp: Add the 'ti,T1-framing-{rx/tx}' flags
a6d98f230b5f ASoC: dt-bindings: davinci-mcbsp: Add optional clock
384c2199a306 ASoC: dt-bindings: davinci-mcbsp: convert McBSP bindings to yaml schema
806eefcc02c3 dt-bindings: usb: hx3: Remove unneeded dr_mode
044e76ba8b8f dt-bindings: usb: Document the Microchip USB2514 hub
a49e9178a25e ARM: dts: qcom: msm8974-sony-shinano: Enable vibrator
ee7b6792f91d dt-bindings: serial: actions,owl-uart: convert to dtschema
176615d68b88 dt-bindings: serial: renesas,scif: Document r8a779h0 bindings
47316d6bba31 dt-bindings: net: rockchip-dwmac: use rgmii-id in example
293b58a3ce33 dt-bindings: net: Add support for AM65x SR1.0 in ICSSG
160476e49bd1 arm64: dts: renesas: rzg3s-smarc-som: Fix Ethernet aliases
11942cf0a649 Add support for QCM6490 and QCS6490
3e98916b42d5 arm64: dts: microchip: sparx5_pcb135: drop duplicated NOR flash
0cb64a6bd6df arm64: dts: microchip: sparx5_pcb134: drop duplicated NOR flash
5d7bc7bf7e93 arm64: dts: microchip: sparx5_pcb135: drop LED unit addresses
96af4c5f9543 arm64: dts: microchip: sparx5_pcb134: drop LED unit addresses
5cb4acc257b1 arm64: dts: microchip: sparx5_pcb135: align I2C mux node name with bindings
745050595c9d arm64: dts: microchip: sparx5_pcb134: align I2C mux node name with bindings
0bd7966aaaea arm64: dts: microchip: sparx5_pcb135: add missing I2C mux unit addresses
4c1d314d61f6 arm64: dts: microchip: sparx5_pcb134: add missing I2C mux unit addresses
bed9ce9bfe43 arm64: dts: microchip: sparx5: correct serdes unit address
b72c3e846fca arm64: dts: microchip: sparx5: fix mdio reg
c540b207970e Merge tag 'phy_dp_modes_6.10' into msm-next-lumag
0f5349678133 media: dt-bindings: media: camss: Add qcom,sc8280xp-camss binding
2b2d6b84ff76 ASoC: dt-bindings: ti,pcm1681: Convert to dtschema
11334704e03b ASoC: dt-bindings: qcom,sm8250: Add QCM6490 snd QCS6490 sound card
6c41e473a90c arm64: dts: renesas: r8a779h0: Add TMU nodes
e98c56d03d81 arm64: dts: renesas: r8a779h0: Add CMT nodes
4198120e44b0 arm64: dts: renesas: gray-hawk-single: Enable nfsroot
1dd5977e6963 ARM: dts: renesas: r9a06g032: Remove duplicate interrupt-parent
8ac906853ada dt-bindings: display: bridge: it6505: Add #sound-dai-cells
b6fe7929eaee arm64: dts: hi3798cv200: add cache info
8c7387ddd437 arm64: dts: hi3798cv200: add GICH, GICV register space and irq
8052d25f7a1e arm64: dts: hi3798cv200: fix the size of GICR
653b19c3d57f ARM: dts: qcom: ipq4019: add QCA8075 PHY Package nodes
8b6be7608248 ARM: dts: qcom: Add support for Motorola Moto G (2013)
db7e98d446e0 dt-bindings: arm: qcom: Add Motorola Moto G (2013)
96445ff22684 ARM: dts: qcom: msm8974: Add empty chosen node
05d778412f76 ARM: dts: qcom: msm8974: Add @0 to memory node name
c9d605588473 Merge tag 'drm-misc-next-2024-04-05' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
fd537281fdba dt-bindings: dma: fsl-edma: add fsl,imx8ulp-edma compatible string
cce5941e9ba4 dt-bindings: dma: snps,dw-axi-dmac: Add JH8100 support
738a3b006c67 dt-bindings: dma: snps,dma-spear1340: Fix data{-,_}width schema
c3af3bbb63b1 dt-bindings: iio: temperature: ltc2983: document power supply
53d5f9f34812 dt-bindings: iio: accel: adxl345: Add spi-3wire
e5fa7e7f2c22 dt-bindings: phy: samsung,ufs-phy: Add dedicated gs101-ufs-phy compatible
e64d19cedd58 dt-bindings: phy: qmp-ufs: Fix PHY clocks for SC7180
a438f4ab2395 dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: document PHY AUX clock on SM8[456]50 SoCs
938969719441 dt-bindings: bus: document ETZPC
a8c96305fde1 dt-bindings: bus: document RIFSC
a541c76dbadb dt-bindings: treewide: add access-controllers description
df2238fe396f dt-bindings: document generic access controllers
a95213693fbc dt-bindings: net: wireless: ath10k: describe firmware-name property
4c7df22d3811 dt-bindings: crypto: ti,omap-sham: Convert to dtschema
865b2895e10f Merge tag 'drm-misc-next-2024-03-28' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
cb0a8e76adc4 dt-bindings: net: starfive,jh7110-dwmac: Add StarFive JH8100 support
42e2e37be646 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
a8384c80c193 arm64: dts: qcom: qcs6490-rb3gen2: Enable UFS
c793db1a5a20 arm64: dts: qcom: sm8150-hdk: enable WiFI support
2ab678b8aee2 arm64: dts: qcom: msm8916-samsung-fortuna: Add PWM backlight
746bfcc05f14 arm64: dts: qcom: msm8916-samsung-fortuna: Add touchscreen
01cd48bf86da ARM: dts: bcm2711-rpi-4-b: Add CAM1 regulator
77679e1b04aa ARM: dts: bcm2711-rpi-cm4-io: Add RTC on I2C0
9ed20c8d8b4e ARM: dts: bcm2711-rpi: Add pinctrl-based multiplexing for I2C0
a22f4cef7a0e ARM: dts: bcm2835-rpi: Move duplicate firmware-clocks to bcm2835-rpi.dtsi
dbab66efd1fe ARM: dts: bcm283x: Drop unneeded properties in the bcm2835-firmware node
a25103cac601 dt-bindings: arm: bcm: raspberrypi,bcm2835-firmware: Add gpio child node
278bc7c104d6 Merge tag 'wireless-next-2024-04-03' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
b22ae3aceedc arm64: dts: qcom: qcs6490-rb3gen2: Enable USB Type-C display
dc9514f67bb8 arm64: dts: qcom: qcs6490-rb3gen2: Introduce USB redriver
182a42f881be arm64: dts: qcom: qcs6490-rb3gen2: Enable adsp and cdsp
551b82528068 arm64: dts: qcom: qcs6490-rb3gen2: Add DP output
62f03e427f89 arm64: dts: qcom: sc7280: Enable MDP turbo mode
b61e56afe560 arm64: dts: qcom: msm8998-yoshino: Enable RGB led
3681c0ef248f arm64: dts: qcom: msm8998-yoshino: fix volume-up key
dedf405d5ac3 arm64: dts: qcom: sdm630-nile: add pinctrl for camera key
10dbe401f578 dt-bindings: arm: qcom: Add Sony Xperia Z3
07d64e367b35 arm64: dts: qcom: apq8016-sbc: correct GPIO LEDs node names
bf07777c8527 arm64: dts: qcom: sm8650: fix usb interrupts properties
95dc0313a7c7 arm64: dts: qcom: msm8916: drop dtbTool-specific compatibles
35284c1fbbda dt-bindings: arm: qcom: drop dtbTool-specific compatibles
7a245b4e6ff3 arm64: dts: qcom: sc7280: Add inline crypto engine
5093b0473559 arm64: dts: qcom: ipq8074: Remove unused gpio from QPIC pins
a3e2ba92004a arm64: dts: qcom: sm8350: Add interconnects to UFS
478e894db4db ARM: dts: n900: set charge current limit to 950mA
7718b663820e ARM: dts: qcom: Add Sony Xperia Z3 smartphone
6e0176b32c37 ARM: dts: qcom: msm8974-sony-castor: Split into shinano-common
a9a358e1a84c arm64: dts: qcom: sc7180: Disable DCC node by default
0242960a306e arm64: dts: qcom: sc7180: Disable pmic pinctrl node on Trogdor
4f095cae545b dt-bindings: net: snps,dwmac: Align 'snps,priority' type definition
3ab6c524a275 arm64: dts: imx8dxl-evk: add lpuart1 and cm40 uart
55a66f541f3d arm64: dts: imx8dxl: update cm40 irq number information
4240cfffe385 arm64: dts: imx8dxl: add lpuart device in cm40 subsystem
b178fe955580 arm64: dts: imx8: add cm40 subsystem dtsi
7951b18254cc arm64: dts: imx8m*-venice-gw7: Fix TPM schema violations
cce04e7de644 ARM: dts: imx6sx-nitrogen6sx: drop incorrect cpu-dai property
0ee2adbc8d13 ARM: dts: imx6qdl-udoo: Enable USB host
596dae841e87 dt-bindings: net: renesas,ethertsn: Create child-node for MDIO bus
b884b5a5c311 arm64: dts: freescale: Add device tree for Emcraft Systems NavQ+ Kit
e0ca88f352a1 dt-bindings: arm: Add Emcraft Systems i.MX8M Plus NavQ+ Kit
9e173e8dfff5 dt-bindings: vendor-prefixes: Add Emcraft Systems
a32d91fda032 arm64: dts: imx8mp-venice-gw73xx: add mac addr for eth1
8655adfd5e96 arm64: dts: imx8mp-venice-gw72xx: add mac addr for eth1
f0a4a8e9c61c arm64: dts: imx8qxp: add asrc[0,1], esai0, spdif0 and sai[4,5]
0bc3cb99ca4f arm64: dts: imx8: fix audio lpcg index
9802e7b606b0 arm64: dts: lx2160a: add pinmux and i2c gpio to support bus recovery
a2e4ced9999e arm64: dts: broadcom: bcmbca: bcm4908: set brcm,wp-not-connected
ea816d0833c2 ASoC: dt-bindings: fsl-asoc-card: convert to YAML
78eb8a927ea9 ARM: dts: qcom: msm8916: idle-state compatible require the generic idle-state
af397addefe6 ARM: dts: qcom: include cpu in idle-state node names
f94dfb17f9fb arm64: dts: qcom: sc8180x: add dp_p1 register blocks to DP nodes
3a9af9495213 arm64: dts: qcom: sc8180x: Drop flags for mdss irqs
ee838a6c5dcc arm64: dts: qcom: sc8180x: drop legacy property #stream-id-cells
c10c1ac0e013 arm64: dts: S32G3: Introduce device tree for S32G-VNP-RDB3
6eeadc4c7a09 dt-bindings: arm: fsl: add NXP S32G3 board
420e1d4db0ac arm64: dts: sprd: minor whitespace cleanup
afbe017e1c78 arm64: dts: marvell: cn9130-crb: drop unneeded "status"
27c60f14e2ce arm64: dts: marvell: cn9130-crb: drop wrong unit-addresses
0911a225def4 arm64: dts: marvell: cn9130-db: drop wrong unit-addresses
5e5508e3986e arm64: dts: marvell: cn9131-db: drop unneeded flash address/size-cells
cb4ed54644d6 arm64: dts: marvell: cn9130-db: drop unneeded flash address/size-cells
280b88b82731 arm64: dts: marvell: ap80x: fix IOMMU unit address
f9977dce8137 dt-bindings: mmc: fsl-imx-esdhc: add NXP S32G3 support
3719bc71e829 arm64: dts: freescale: verdin-imx8mp: enable Verdin I2C_3_HDMI interface
1af7cdf75167 arm64: dts: renesas: gray-hawk-single: Add second debug serial port
7788ca0900fc arm64: dts: renesas: r8a779h0: Add SCIF nodes
d2623c8e3be6 arm64: dts: renesas: r8a779h0: Add remaining HSCIF nodes
cded804626dc Merge drm/drm-next into drm-misc-next
6eaa264b03cf dt-bindings: ata: ahci-da850: Convert to dtschema
88d79ce3a5e5 ARM: dts: imx7s: Add snvs-poweroff support
4c997ef805f7 arm64: dts: imx93-11x11-evk: add pca9451a support
888dc0cbc2df arm64: dts: imx8mp: Describe CSI2 GPIO expander on i.MX8MP DHCOM PDK3 board
d473ff20ac00 ARM: dts: imx6qdl: Remove LCD.CONTRAST pinctrl from muxing
369c40d7733d ARM: dts: imx6qdl: mba6: Add missing vdd-supply for on-board USB hub
f4dead7a191d dt-bindings: crypto: ice: Document sc7280 inline crypto engine
56dbefd49c8f dt-bindings: crypto: starfive: Add jh8100 support
472dae4a9de8 arm64: dts: rockchip: Add enable-strobe-pulldown to emmc phy on ROCK 4C+
c858fbc533a6 arm64: dts: rockchip: Add enable-strobe-pulldown to emmc phy on ROCK Pi 4
fe10e00484db arm64: dts: rockchip: Enable gpu on Cool Pi 4B
498665cfe799 arm64: dts: rockchip: Enable gpu on Cool Pi CM5
f5221484d5fc dt-bindings: display: mediatek: gamma: Add support for MT8188
e978e9a88df8 dt-bindings: display: mediatek: gamma: Change MT8195 to single enum group
8c20afe51c9b arm64: dts: imx8mp-venice-gw74xx: add ADC rail for VDD_1P0
2327517eda87 dt-bindings: fpga: xlnx,fpga-selectmap: add DT schema
afb6facb38e1 arm64: dts: fsl-lx2162a-clearfog: add alias for i2c bus iic6
0de33c4d5d36 arm64: dts: fsl-lx2162a-som: add description for rtc
4d951acac66b arm64: dts: imx8mp-venice-gw74xx-imx219.dtso: fix dt warning
8e39502da89f dt-bindings: net: dwmac: Document STM32 property st,ext-phyclk
0a7a04f0f21f arm64: dts: qcom: pm6150: correct Type-C compatible
040fb0d942d5 dt-bindings: net: airoha,en8811h: Add en8811h
ea44916fae41 dt-bindings: phy: Add QMP UFS PHY comptible for SM8475
ab4139c78dfc dt-bindings: display: Add GameForce Chi Panel
f1fac26a6eb1 dt-bindings: vendor-prefix: Add prefix for GameForce
f45b10058045 dt-bindings: rtc: nxp,lpc1788-rtc: convert to dtschema
80435727b218 dt-bindings: rtc: digicolor-rtc: move to trivial-rtc
3a5cc7be0c7b dt-bindings: rtc: alphascale,asm9260-rtc: convert to dtschema
93c7f99067be dt-bindings: rtc: armada-380-rtc: convert to dtschema
c94bf886da99 dt-bindings: gpio: mpfs: allow gpio-line-names
c8baf5586aad dt-bindings: gpio: mpfs: add coreGPIO support
edc3a8d8ba1f arm64: dts: mba8mx: Simplify DSI connection
41c630a79684 arm64: dts: imx8mp: Add empty DSI output endpoint
a9335ab9220f arm64: dts: imx8mq: Add empty DSI output endpoint
586e5a25a66f arm64: dts: imx8mn: Add empty DSI output endpoint
d3dd47002ba3 arm64: dts: imx8mm: Add empty DSI output endpoint
b0a66bbba940 dt-bindings: arm: fsl: Add Seeed studio NPi based boards
7749c950e2bc ARM: dts: imx6ull: add seeed studio NPi dev board
7943ba91b906 arm64: dts: imx8mp-evk: Add PDM micphone sound card support
06a171a12071 arm64: dts: imx8mp-evk: Add HDMI audio sound card support
2613e0628be4 arm64: dts: imx8mp: Add AUD2HTX device node
dcea262c34c5 arm64: dts: imx8mp: add HDMI display pipeline
0798e51bdfef arm64: dts: imx8mp: add HDMI irqsteer
5589301efbf2 arm64: dts: imx8mp: add HDMI power-domains
9625814a32d8 arm64: dts: imx8qm-mek: add flexspi0 support
dddebc9a4ac6 arm64: dts: imx8qm-mek: add lpspi2 support
4930bc1ea48d arm64: dts: imx8qm-mek: add adc0 support
8eacd31e7a6a ASoC: nau8325: Modify driver code and dtschema.
f1ad0b85186a dt-bindings: net: renesas,etheravb: Add optional MDIO bus node
a5a3c74a517b dt-bindings: phy: qcom-edp: Add X1E80100 PHY compatibles
1543b9407d26 dt-bindings: phy: qcom,snps-eusb2-repeater: Add compatible for SMB2360
dab9bf513c3c dt-bindings: phy: add binding for the i.MX8MP HDMI PHY
4e40c99fdc79 ASoC: dt-bindings: fsl-sai: allow only one dma-names
5b46a81c6968 ASoC: dt-bindings: fsl,imx-asrc: update max interrupt numbers
445e331ff3bf ASoC: dt-bindings: fsl,imx-asrc/spdif: Add power-domains property
3b1042cca37a ASoC: dt-bindings: Added schema for "nuvoton,nau8325"
51ee560e525e Merge branch 'drivers-for-6.10' onto 'v6.9-rc1'
a35fffea6e63 Merge branch 'arm32-for-6.10' onto 'v6.9-rc1'
d7a604efcfff Merge branch 'arm64-for-6.10' onto 'v6.9-rc1'
327ae5bf1f59 ARM: dts: imx: Add UNI-T UTi260B thermal camera board
306baafa6a09 dt-bindings: iio: dac: ti,dac5571: Add DAC081C081 support
3b48c1d3c266 dt-bindings: iio: health: maxim,max30102: add max30101
8e51b5f81bbc regulator: Merge axp20x changes
92b923457899 arm64: dts: imx93: drop the 4th interrupt for ADC
988c0a839304 arm64: dts: exynos: gs101: define all PERIC USI nodes
8f2d90d346a3 arm64: dts: exynos: gs101: join lines close to 80 chars
f9cf983ea270 arm64: dts: exynos: gs101: move pinctrl-* properties after clocks
45b6f1d37e46 arm64: dts: exynos: gs101: move serial_0 pinctrl-0/names to dtsi
a44ccb984946 arm64: dts: exynos: gs101: reorder pinctrl-* properties
1b8507673dc6 dt-bindings: mfd: x-powers,axp152: Document AXP717
38fcf9ba7bee dt-bindings: pinctrl: qcom,pmic-gpio: Add PMIH0108 and PMD8028 support
0024b304ddf8 dt-bindings: pinctrl: qcom,pmic-gpio: Add PMXR2230 and PM6450 support
d7efce546cb5 dt-bindings: pinctrl: qcom: update functions to match with driver
9148be037372 ARM: dts: imx6: fix IRQ config of RC5T619
16507be93058 ARM: dts: imx6sl: tolino-shine2hd: fix IRQ config of touchscreen
d6440887039f arm64: dts: s32g: add uSDHC node
6aa1628f3dc5 arm64: dts: s32g: add SCMI firmware node
27350b241eaf arm64: dts: rockchip: enable gpu on rk3588-tiger
b71ce0df337d arm64: dts: rockchip: enable gpu on rk3588-jaguar
496e9d7ae24e arm64: dts: rockchip: Enable the GPU on quartzpro64
2ed4a6a8bc1e arm64: dts: rockchip: Enable GPU on rk3588-evb1
3bb62f4be1c6 arm64: dts: rockchip: Enable GPU on rk3588-rock5b
3cd15354ea0c arm64: dts: rockchip: Add rk3588 GPU node
b3e4bfc4243f riscv: dts: sophgo: add sdcard support for milkv duo
5f3996b7ea4d ASoC: dt-bindings: xmos,xvf3500: add XMOS XVF3500 voice processor
929e424ec8a3 dt-bindings: usb: ci-hdrc-usb2-imx: add compatible and clock-names restriction for imx93
79799e37204e dt-bindings: usb: ci-hdrc-usb2-imx: add restrictions for reg, interrupts, clock and clock-names properties
81199deccd71 dt-bindings: usb: chipidea,usb2-imx: move imx parts to dedicated schema
f5036776ca4c arm64: dts: renesas: r9a07g0{43,44,54}: Update RZ/G2L family compatible
d082f610f125 dt-bindings: usb: renesas,usbhs: Document RZ/G2L family compatible
df34e7029805 dt-bindings: usb: dwc2: Add support for Sophgo CV18XX/SG200X series SoC
afe511c842cf riscv: dts: starfive: Remove PMIC interrupt info for Visionfive 2 board
62bda7500065 arm64: dts: rockchip: add wolfvision pf5 io expander board
2a4fc9a444b8 arm64: dts: rockchip: add wolfvision pf5 mainboard
6647f171f526 dt-bindings: arm: rockchip: add wolfvision pf5 mainboard
d47821a0a35a dt-bindings: add wolfvision vendor prefix
2a0ec4275f4e arm64: dts: rockchip: add the internal audio codec on rk3308
89bd9d5e4595 arm64: dts: rockchip: add i2s_8ch_2 and i2s_8ch_3 to rk3308
abf445165722 ASoC: dt-bindings: Add Rockchip RK3308 internal audio codec
d36a3550564f dt-bindings: usb: qcom,pmic-typec: Add support for the PM7250B PMIC
2bf3077e9cbf ARM: dts: exynos4212-tab3: limit usable memory range
7b222b83561f dt-bindings: clock: samsung,s3c6400-clock: convert to DT Schema
789cf6e0effe arm64: dts: exynos850: Add CPU clocks
b55ecc9e7140 dt-bindings: arm: renesas: Document Renesas RZ/V2H(P) System Controller
9f361e51112e dt-bindings: soc: renesas: Document Renesas RZ/V2H(P) SoC variants
5719a653a110 dt-bindings: clock: r9a07g043-cpg: Annotate RZ/G2UL-only core clocks
7d45be7e768a ARM: dts: renesas: rcar-gen2: Add TMU nodes
dbc57bd145b3 ARM: dts: renesas: rzg1: Add TMU nodes
c3d60a152ae8 ARM: dts: renesas: r8a73a4: Add TMU nodes
2e4c1a66fafa ARM: dts: renesas: r7s72100: Add interrupt-names to SCIF nodes
b4be2647b4e8 arm64: dts: renesas: r8a779h0: Add thermal nodes
345aee5488c1 arm64: dts: renesas: rzg2ul-smarc: Enable PMIC and built-in RTC, GPIO and ONKEY
425305f138c3 arm64: dts: renesas: eagle: Add capture overlay for Function expansion board
188c483e94e5 arm64: dts: amd: use capital "OR" for multiple licenses in SPDX
4dab93ec6c61 dt-bindings: display: atmel,lcdc: convert to dtschema
7463d00b8f15 dt-bindings: display: samsung,exynos5-dp: convert to DT Schema
9b0c1b5a1716 ASoC: dt-bindings: wm8974: Convert to dtschema
1c025f7d15ee dt-bindings: iio: humidity: hdc3020: add reset-gpios
be159891a4ff dt-bindings: iio: adc: add ad7944 ADCs
f6aa2ab198a4 dt-bindings: adc: ad7173: add support for additional models
5a639055d658 dt-bindings: iio: light: Avago APDS9306
ee5a13477d19 dt-bindings: iio: light: adps9300: Update interrupt definitions
691301ccf359 dt-bindings: iio: light: adps9300: Add missing vdd-supply
571d2039cd1c dt-bindings: iio: light: Merge APDS9300 and APDS9960 schemas
7bead03d0aba dt-bindings: adc: add AD7173
d6e93a75ded2 dt-bindings: memory-controllers: add Samsung S5Pv210 SoC DMC
55da87105117 ASoC: dt-bindings: fsl-esai: Convert fsl,esai.txt to yaml
eff45c6d35c4 dt-bindings: interrupt-controller: Add RISC-V advanced PLIC
69c7a13d4212 dt-bindings: interrupt-controller: Add RISC-V incoming MSI controller
68d4ea2b8cd9 arm64: dts: juno: fix thermal zone node names
434ab11df259 arm64: dts: qcom: acer-aspire1: Add embedded controller
0797ae7b740c add pmic pca9451a support
54343f31f307 dt-bindings: platform: Add Acer Aspire 1 EC
4c81dc2d23b6 ASoC: dt-bindings: wm8776: Convert to dtschema
2b51560a8ea7 ASoC: dt-bindings: fsl-audmix: Convert fsl,audmix.txt to yaml
5490b8fbf354 ARM: dts: samsung: s5pv210: specify the SPI FIFO depth
1c900dc6bb0b arm64: dts: exynosautov9: specify the SPI FIFO depth
e8db30df09da arm64: dts: exynos5433: specify the SPI FIFO depth
6a732879ab41 ARM: dts: samsung: exynos5420: specify the SPI FIFO depth
0c2483409c87 ARM: dts: samsung: exynos5250: specify the SPI FIFO depth
4c973cc8efc9 ARM: dts: samsung: exynos4: specify the SPI FIFO depth
327544b79bca ARM: dts: samsung: exynos3250: specify the SPI FIFO depth
1b9ae7d233ad ARM: dts: samsung: s5pv210: correct onenand size-cells
4a9e7d085593 ARM: dts: samsung: s5pv210: align onenand node name with bindings
7d94a29a5e01 ARM: dts: samsung: exynos5800-peach-pi: switch to undeprecated DP HPD GPIOs
a2945eda660b ARM: dts: samsung: smdk4412: align keypad node names with dtschema
83cece56e84a ARM: dts: samsung: smdk4412: fix keypad no-autorepeat
29ca51c6ed42 ARM: dts: samsung: exynos4412-origen: fix keypad no-autorepeat
ef68e20c1971 ARM: dts: samsung: smdkv310: fix keypad no-autorepeat
6c72c6cfd3b0 dt-bindings: pinctrl: samsung: drop unused header with register constants
3582d8d1b12b dt-bindings: display: sony, td4353-jdi: allow width-mm and height-mm
aa41927d40d5 dt-bindings: display: novatek, nt36523: define ports
d0a5ed63a9b4 dt-bindings: display: novatek, nt35950: define ports
b18825292b5e dt-bindings: display: panel: add common dual-link schema
b0119d5c5ded dt-bindings: mtd: Add Samsung S5Pv210 OneNAND
a50db9557152 dt-bindings: ata: imx-pata: Convert to dtschema
c60378219a91 dt-bindings: regulator: qcom,usb-vbus-regulator: Add PM7250B compatible
3c442a288b7a regulator: dt-bindings: pca9450: add pca9451a support
0eff9a5ea493 arm64: dts: rockchip: Add cache information to the SoC dtsi for RK356x
ae73daab1bff arm64: dts: rockchip: Add cache information to the SoC dtsi for RK3328
61c45b58ad54 dt-bindings: display: simple: Add POWERTIP PH128800T-006-ZHC01 panel
abe40fd3b82a dt-bindings: ili9881c: Add Startek KD050HDFIA020-C020A support
305c9423fbea arm64: dts: qcom: qcm6490-idp: enable PMIC Volume and Power buttons
f642104215e7 ARM: dts: qcom: msm8974pro-castor: Rename wifi node name
bc29c79df022 ARM: dts: qcom: msm8974pro-castor: Add debounce-interval for keys
de408637e1e8 ARM: dts: qcom: msm8974pro-castor: Remove camera button definitions
0a68603019c1 ARM: dts: qcom: msm8974pro-castor: Add mmc aliases
5974cacdc88e ARM: dts: qcom: msm8974pro-castor: Clean up formatting
d7995795b4c6 arm64: dts: qcom: sm8650: Add missing reserved memory for chipinfo
0cc1a4157b71 arm64: dts: qcom: qrb2210-rb1: enable USB-C port handling
f2e5ede0f26a arm64: dts: qcom: ipq8074: Add QUP UART6 node
337090a813d8 arm64: dts: qcom: x1e80100-qcp: Add repeater nodes
42143270e41c arm64: dts: qcom: x1e80100-crd: Add repeater nodes
e49e3457b223 arm64: dts: qcom: x1e80100: Add dedicated pmic dtsi
43392fe521c7 arm64: dts: qcom: x1e80100: Add SPMI support
509352a15f4e arm64: dts: qcom: pm6150: define USB-C related blocks
39818e89c180 arm64: dts: qcom: sdm632-fairphone-fp3: enable USB-C port handling
cf3fbd0a3e6f arm64: dts: qcom: sm6350: Add Crypto Engine
03971dc4b142 arm64: dts: qcom: sc8280xp: Add missing hs_phy_irq in USB nodes
994ee3be0ac7 arm64: dts: qcom: sc8180x-lenovo-flex-5g: Allow UFS regulators load/mode setting
bf0c74cbaf81 arm64: dts: qcom: sc8180x-lenovo-flex-5g: set touchpad i2c frequency to 1 MHz
1da9c05605df arm64: dts: qcom: sc8180x-lenovo-flex-5g: move pinctrl to appropriate nodes
2139a6179bc6 arm64: dts: qcom: sc8180x-lenovo-flex-5g: set names for i2c hid nodes
5e67d6fe2590 arm64: dts: qcom: sc8180x-lenovo-flex-5g: fix GPU firmware path
29c532902fbe dt-bindings: soc: qcom: qcom,pmic-glink: document QCM6490 compatible
4ef050954490 arm64: dts: qcom: sdm670-google-sargo: add panel
4d57d77db758 arm64: dts: qcom: sm8650: add missing qcom,non-secure-domain property
5beeaab6947e arm64: dts: qcom: sm8550: add missing qcom,non-secure-domain property
6c08285503d5 arm64: dts: qcom: sm8450: add missing qcom,non-secure-domain property
6e81e9a45081 arm64: dts: qcom: qcs6490-rb3gen2: Name the regulators
b51adcfa5e4e arm64: dts: qcom: x1e80100-crd: switch WSA8845 speakers to shared reset-gpio
f56199dc0b4c arm64: dts: qcom: x1e80100: correct SWR1 pack mode
e407c51a9192 arm64: dts: qcom: qcm2290: Add LMH node
78ea7fd8529a arm64: dts: qcom: sc8280xp: Describe TCSR download mode register
ed0e06b772a0 arm64: dts: qcom: sc8280xp: Add PS_HOLD restart
653f5ac8c56d arm64: dts: qcom: sc8280xp: Add QFPROM node
8b113929cba4 arm64: dts: qcom: sm8250-xiaomi-elish: add usb pd negotiation support
ef34967aa707 arm64: dts: qcom: sc8280xp: enable GICv3 ITS for PCIe
5ad7aff41781 arm64: dts: qcom: sc8280xp: add missing PCIe minimum OPP
c9c36fd3c3e4 arm64: dts: qcom: sc8280xp: Add missing LMH interrupts
9c5ddaa54576 arm64: dts: qcom: qcm6490-idp: add display and panel
b5fbaf38d7c9 dt-bindings: arm: qcom,ids: Add SoC ID for X1E80100
a3d157706fb0 dt-bindings: display: simple: add support for Crystal Clear CMT430B19N00
cf6cd5bc0bde dt-bindings: Add Crystal Clear Technology vendor prefix
111bd9344cc1 dt-bindings: net: wireless: brcm,bcm4329-fmac: Add CYW43439 DT binding
f51fde39203a dt-bindings: display/lvds-codec: add ti,sn65lvds94
d60610231ef6 Merge drm/drm-next into drm-misc-next
4c258740e5ce dt-bindings: gpu: mali-valhall-csf: Add support for Arm Mali CSF GPUs
26231fa0490c dt-bindings: display: panel-simple-dsi: add s6e3fa7 ams559nk06 compat

git-subtree-dir: dts/upstream
git-subtree-split: 20e0f0897ea26981d3127511c150dd56c5296d50

1160 files changed:
Bindings/Makefile
Bindings/access-controllers/access-controllers.yaml [new file with mode: 0644]
Bindings/arm/altera/socfpga-sdram-controller.txt [deleted file]
Bindings/arm/amlogic.yaml
Bindings/arm/apm/scu.txt [deleted file]
Bindings/arm/aspeed/aspeed.yaml
Bindings/arm/bcm/brcm,bcm4708.yaml
Bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml
Bindings/arm/fsl.yaml
Bindings/arm/keystone/ti,sci.yaml
Bindings/arm/marvell/armada-37xx.txt [deleted file]
Bindings/arm/qcom,coresight-tpda.yaml
Bindings/arm/qcom.yaml
Bindings/arm/rockchip.yaml
Bindings/arm/stm32/st,mlahb.yaml
Bindings/arm/sunxi.yaml
Bindings/ata/ahci-da850.txt [deleted file]
Bindings/ata/fsl,imx-pata.yaml [new file with mode: 0644]
Bindings/ata/imx-pata.txt [deleted file]
Bindings/ata/ti,da850-ahci.yaml [new file with mode: 0644]
Bindings/bus/st,stm32-etzpc.yaml [new file with mode: 0644]
Bindings/bus/st,stm32mp25-rifsc.yaml [new file with mode: 0644]
Bindings/cache/qcom,llcc.yaml
Bindings/clock/airoha,en7523-scu.yaml
Bindings/clock/fixed-clock.yaml
Bindings/clock/fixed-factor-clock.yaml
Bindings/clock/google,gs101-clock.yaml
Bindings/clock/loongson,ls2k-clk.yaml
Bindings/clock/nxp,imx95-blk-ctl.yaml [new file with mode: 0644]
Bindings/clock/nxp,imx95-display-master-csr.yaml [new file with mode: 0644]
Bindings/clock/qcom,hfpll.txt [deleted file]
Bindings/clock/qcom,hfpll.yaml [new file with mode: 0644]
Bindings/clock/renesas,rzg2l-cpg.yaml
Bindings/clock/samsung,s3c6400-clock.yaml [new file with mode: 0644]
Bindings/clock/samsung,s3c64xx-clock.txt [deleted file]
Bindings/clock/sophgo,cv1800-clk.yaml
Bindings/clock/st,stm32mp25-rcc.yaml
Bindings/cpufreq/cpufreq-qcom-hw.yaml
Bindings/crypto/nvidia,tegra234-se-aes.yaml [new file with mode: 0644]
Bindings/crypto/nvidia,tegra234-se-hash.yaml [new file with mode: 0644]
Bindings/crypto/omap-sham.txt [deleted file]
Bindings/crypto/qcom,inline-crypto-engine.yaml
Bindings/crypto/st,stm32-cryp.yaml
Bindings/crypto/st,stm32-hash.yaml
Bindings/crypto/starfive,jh7110-crypto.yaml
Bindings/crypto/ti,omap-sham.yaml [new file with mode: 0644]
Bindings/display/atmel,lcdc-display.yaml [new file with mode: 0644]
Bindings/display/atmel,lcdc.txt [deleted file]
Bindings/display/atmel,lcdc.yaml [new file with mode: 0644]
Bindings/display/bridge/ite,it6505.yaml
Bindings/display/bridge/lvds-codec.yaml
Bindings/display/bridge/microchip,sam9x75-lvds.yaml [new file with mode: 0644]
Bindings/display/bridge/toshiba,tc358775.yaml
Bindings/display/exynos/exynos_dp.txt [deleted file]
Bindings/display/mediatek/mediatek,gamma.yaml
Bindings/display/msm/dp-controller.yaml
Bindings/display/msm/qcom,sm6350-mdss.yaml
Bindings/display/panel/abt,y030xx067a.yaml
Bindings/display/panel/asus,z00t-tm5p5-nt35596.yaml
Bindings/display/panel/boe,bf060y8m-aj0.yaml
Bindings/display/panel/boe,himax8279d.yaml
Bindings/display/panel/boe,th101mb31ig002-28a.yaml
Bindings/display/panel/boe,tv101wum-nl6.yaml
Bindings/display/panel/elida,kd35t133.yaml
Bindings/display/panel/fascontek,fs035vg158.yaml
Bindings/display/panel/feixin,k101-im2ba02.yaml
Bindings/display/panel/himax,hx83112a.yaml
Bindings/display/panel/himax,hx8394.yaml
Bindings/display/panel/ilitek,ili9163.yaml
Bindings/display/panel/ilitek,ili9322.yaml
Bindings/display/panel/ilitek,ili9341.yaml
Bindings/display/panel/ilitek,ili9805.yaml
Bindings/display/panel/ilitek,ili9881c.yaml
Bindings/display/panel/innolux,ej030na.yaml
Bindings/display/panel/innolux,p097pfg.yaml
Bindings/display/panel/jadard,jd9365da-h3.yaml
Bindings/display/panel/jdi,lpm102a188a.yaml
Bindings/display/panel/jdi,lt070me05000.yaml
Bindings/display/panel/kingdisplay,kd035g6-54nt.yaml
Bindings/display/panel/leadtek,ltk035c5444t.yaml
Bindings/display/panel/leadtek,ltk050h3146w.yaml
Bindings/display/panel/leadtek,ltk500hd1829.yaml
Bindings/display/panel/lg,lg4573.yaml
Bindings/display/panel/lg,sw43408.yaml [new file with mode: 0644]
Bindings/display/panel/lgphilips,lb035q02.yaml
Bindings/display/panel/nec,nl8048hl11.yaml
Bindings/display/panel/newvision,nv3051d.yaml
Bindings/display/panel/novatek,nt35510.yaml
Bindings/display/panel/novatek,nt35950.yaml
Bindings/display/panel/novatek,nt36523.yaml
Bindings/display/panel/novatek,nt36672a.yaml
Bindings/display/panel/olimex,lcd-olinuxino.yaml
Bindings/display/panel/panel-common-dual.yaml [new file with mode: 0644]
Bindings/display/panel/panel-mipi-dbi-spi.yaml
Bindings/display/panel/panel-simple-dsi.yaml
Bindings/display/panel/panel-simple.yaml
Bindings/display/panel/raydium,rm67191.yaml
Bindings/display/panel/raydium,rm692e5.yaml
Bindings/display/panel/raydium,rm69380.yaml [new file with mode: 0644]
Bindings/display/panel/rocktech,jh057n00900.yaml
Bindings/display/panel/ronbo,rb070d30.yaml
Bindings/display/panel/samsung,amoled-mipi-dsi.yaml
Bindings/display/panel/samsung,ams495qa01.yaml
Bindings/display/panel/samsung,ld9040.yaml
Bindings/display/panel/samsung,lms380kf01.yaml
Bindings/display/panel/samsung,lms397kf04.yaml
Bindings/display/panel/samsung,s6d16d0.yaml
Bindings/display/panel/samsung,s6d27a1.yaml
Bindings/display/panel/samsung,s6d7aa0.yaml
Bindings/display/panel/samsung,s6e63m0.yaml
Bindings/display/panel/samsung,s6e88a0-ams452ef01.yaml
Bindings/display/panel/samsung,s6e8aa0.yaml
Bindings/display/panel/sharp,lq101r1sx01.yaml
Bindings/display/panel/sharp,ls043t1le01.yaml
Bindings/display/panel/sharp,ls060t1sx01.yaml
Bindings/display/panel/sitronix,st7789v.yaml
Bindings/display/panel/sony,acx424akp.yaml
Bindings/display/panel/sony,acx565akm.yaml
Bindings/display/panel/sony,td4353-jdi.yaml
Bindings/display/panel/sony,tulip-truly-nt35521.yaml
Bindings/display/panel/synaptics,r63353.yaml
Bindings/display/panel/tpo,td.yaml
Bindings/display/panel/tpo,tpg110.yaml
Bindings/display/panel/visionox,rm69299.yaml
Bindings/display/panel/xinpeng,xpp055c272.yaml
Bindings/display/rockchip/rockchip,dw-hdmi.yaml
Bindings/display/rockchip/rockchip,inno-hdmi.yaml
Bindings/display/rockchip/rockchip,rk3066-hdmi.yaml
Bindings/display/samsung/samsung,exynos5-dp.yaml [new file with mode: 0644]
Bindings/display/tegra/nvidia,tegra20-host1x.yaml
Bindings/dma/fsl,edma.yaml
Bindings/dma/fsl,imx-sdma.yaml
Bindings/dma/qcom_hidma_mgmt.txt [deleted file]
Bindings/dma/snps,dma-spear1340.yaml
Bindings/dma/snps,dw-axi-dmac.yaml
Bindings/dma/st,stm32-dma.yaml
Bindings/dma/st,stm32-dmamux.yaml
Bindings/firmware/arm,scmi.yaml
Bindings/fpga/xlnx,fpga-selectmap.yaml [new file with mode: 0644]
Bindings/gpio/brcm,brcmstb-gpio.yaml
Bindings/gpio/microchip,mpfs-gpio.yaml
Bindings/gpio/raspberrypi,firmware-gpio.txt [deleted file]
Bindings/gpu/arm,mali-valhall-csf.yaml [new file with mode: 0644]
Bindings/hwmon/adc128d818.txt [deleted file]
Bindings/hwmon/adi,adm1275.yaml
Bindings/hwmon/as370.txt [deleted file]
Bindings/hwmon/ibm,opal-sensor.yaml [new file with mode: 0644]
Bindings/hwmon/ibm,p8-occ-hwmon.txt [deleted file]
Bindings/hwmon/ibmpowernv.txt [deleted file]
Bindings/hwmon/lm87.txt [deleted file]
Bindings/hwmon/max6650.txt [deleted file]
Bindings/hwmon/maxim,max6650.yaml [new file with mode: 0644]
Bindings/hwmon/pmbus/adi,adp1050.yaml [new file with mode: 0644]
Bindings/hwmon/pwm-fan.txt [deleted file]
Bindings/hwmon/st,stts751.yaml [new file with mode: 0644]
Bindings/hwmon/stts751.txt [deleted file]
Bindings/hwmon/syna,as370.yaml [new file with mode: 0644]
Bindings/hwmon/ti,adc128d818.yaml [new file with mode: 0644]
Bindings/hwmon/ti,lm87.yaml [new file with mode: 0644]
Bindings/i2c/atmel,at91sam-i2c.yaml
Bindings/i2c/google,cros-ec-i2c-tunnel.yaml
Bindings/i2c/i2c-pnx.txt [deleted file]
Bindings/i2c/nxp,pnx-i2c.yaml [new file with mode: 0644]
Bindings/i2c/qcom,i2c-cci.yaml
Bindings/i2c/renesas,riic.yaml
Bindings/i2c/st,stm32-i2c.yaml
Bindings/iio/accel/adi,adxl345.yaml
Bindings/iio/adc/adi,ad7173.yaml [new file with mode: 0644]
Bindings/iio/adc/adi,ad7944.yaml [new file with mode: 0644]
Bindings/iio/adc/adi,axi-adc.yaml
Bindings/iio/adc/allwinner,sun20i-d1-gpadc.yaml
Bindings/iio/adc/st,stm32-adc.yaml
Bindings/iio/adc/st,stm32-dfsdm-adc.yaml
Bindings/iio/dac/adi,ad3552r.yaml
Bindings/iio/dac/adi,ad9739a.yaml [new file with mode: 0644]
Bindings/iio/dac/adi,axi-dac.yaml [new file with mode: 0644]
Bindings/iio/dac/st,stm32-dac.yaml
Bindings/iio/dac/ti,dac5571.yaml
Bindings/iio/health/maxim,max30102.yaml
Bindings/iio/humidity/ti,hdc3020.yaml
Bindings/iio/imu/invensense,icm42600.yaml
Bindings/iio/imu/invensense,mpu6050.yaml
Bindings/iio/light/avago,apds9300.yaml
Bindings/iio/light/avago,apds9960.yaml [deleted file]
Bindings/iio/temperature/adi,ltc2983.yaml
Bindings/input/azoteq,iqs7222.yaml
Bindings/input/elan,ekth6915.yaml
Bindings/input/ilitek,ili2901.yaml [new file with mode: 0644]
Bindings/input/qcom,pm8xxx-vib.yaml
Bindings/input/touchscreen/edt-ft5x06.yaml
Bindings/input/twl4030-pwrbutton.txt [deleted file]
Bindings/interrupt-controller/allwinner,sun7i-a20-sc-nmi.yaml
Bindings/interrupt-controller/mediatek,mt6577-sysirq.yaml
Bindings/interrupt-controller/renesas,irqc.yaml
Bindings/interrupt-controller/riscv,aplic.yaml [new file with mode: 0644]
Bindings/interrupt-controller/riscv,imsics.yaml [new file with mode: 0644]
Bindings/interrupt-controller/st,stm32-exti.yaml
Bindings/iommu/qcom,tbu.yaml [new file with mode: 0644]
Bindings/iommu/renesas,ipmmu-vmsa.yaml
Bindings/leds/leds-qcom-lpg.yaml
Bindings/leds/nxp,pca963x.yaml [new file with mode: 0644]
Bindings/leds/pca963x.txt [deleted file]
Bindings/mailbox/arm,mhuv3.yaml [new file with mode: 0644]
Bindings/mailbox/qcom,apcs-kpss-global.yaml
Bindings/mailbox/qcom-ipcc.yaml
Bindings/media/amphion,vpu.yaml
Bindings/media/brcm,bcm2835-unicam.yaml [new file with mode: 0644]
Bindings/media/cec/st,stm32-cec.yaml
Bindings/media/i2c/galaxycore,gc0308.yaml
Bindings/media/i2c/galaxycore,gc2145.yaml
Bindings/media/i2c/ovti,ov2680.yaml
Bindings/media/i2c/ovti,ov8856.yaml [moved from Bindings/media/i2c/ov8856.yaml with 98% similarity]
Bindings/media/i2c/sony,imx214.yaml
Bindings/media/i2c/sony,imx290.yaml
Bindings/media/i2c/sony,imx415.yaml
Bindings/media/nxp,imx8-isi.yaml
Bindings/media/nxp,imx8-jpeg.yaml
Bindings/media/qcom,sc8280xp-camss.yaml [new file with mode: 0644]
Bindings/media/st,stm32-dcmi.yaml
Bindings/media/st,stm32mp25-video-codec.yaml
Bindings/memory-controllers/samsung,s5pv210-dmc.yaml [new file with mode: 0644]
Bindings/memory-controllers/st,stm32-fmc2-ebi.yaml
Bindings/mfd/actions,atc260x.yaml
Bindings/mfd/allwinner,sun6i-a31-prcm.yaml
Bindings/mfd/aspeed,ast2x00-scu.yaml
Bindings/mfd/brcm,cru.yaml
Bindings/mfd/brcm,iproc-cdru.txt [deleted file]
Bindings/mfd/brcm,iproc-mhb.txt [deleted file]
Bindings/mfd/brcm,misc.yaml
Bindings/mfd/canaan,k210-sysctl.yaml
Bindings/mfd/delta,tn48m-cpld.yaml
Bindings/mfd/iqs62x.yaml
Bindings/mfd/kontron,sl28cpld.yaml
Bindings/mfd/lp873x.txt [deleted file]
Bindings/mfd/max77650.yaml
Bindings/mfd/maxim,max77686.yaml
Bindings/mfd/maxim,max77693.yaml
Bindings/mfd/qcom,spmi-pmic.yaml
Bindings/mfd/qcom,tcsr.yaml
Bindings/mfd/qcom-pm8xxx.yaml
Bindings/mfd/richtek,rt4831.yaml
Bindings/mfd/ricoh,rn5t618.yaml
Bindings/mfd/rockchip,rk805.yaml
Bindings/mfd/rockchip,rk808.yaml
Bindings/mfd/rockchip,rk816.yaml [new file with mode: 0644]
Bindings/mfd/rockchip,rk817.yaml
Bindings/mfd/rockchip,rk818.yaml
Bindings/mfd/rohm,bd71815-pmic.yaml
Bindings/mfd/rohm,bd71828-pmic.yaml
Bindings/mfd/rohm,bd71837-pmic.yaml
Bindings/mfd/rohm,bd9571mwv.yaml
Bindings/mfd/rohm,bd9576-pmic.yaml
Bindings/mfd/samsung,s2mpa01.yaml
Bindings/mfd/samsung,s2mps11.yaml
Bindings/mfd/samsung,s5m8767.yaml
Bindings/mfd/st,stm32-lptimer.yaml
Bindings/mfd/st,stm32-timers.yaml
Bindings/mfd/st,stmfx.yaml
Bindings/mfd/st,stpmic1.yaml
Bindings/mfd/stericsson,ab8500.yaml
Bindings/mfd/stericsson,db8500-prcmu.yaml
Bindings/mfd/syscon.yaml
Bindings/mfd/ti,lp8732.yaml [new file with mode: 0644]
Bindings/mfd/ti,tps65086.yaml
Bindings/mfd/ti,tps6594.yaml
Bindings/mfd/ti,twl.yaml
Bindings/mfd/x-powers,axp152.yaml
Bindings/mmc/arm,pl18x.yaml
Bindings/mmc/fsl-imx-esdhc.yaml
Bindings/mmc/renesas,sdhi.yaml
Bindings/mtd/mtd.yaml
Bindings/mtd/partitions/binman.yaml [new file with mode: 0644]
Bindings/mtd/partitions/partition.yaml
Bindings/mtd/samsung,s5pv210-onenand.yaml [new file with mode: 0644]
Bindings/net/airoha,en8811h.yaml [new file with mode: 0644]
Bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml [new file with mode: 0644]
Bindings/net/broadcom-bluetooth.yaml
Bindings/net/can/bosch,m_can.yaml
Bindings/net/fsl,fman-dtsec.yaml
Bindings/net/nxp,dwmac-imx.yaml
Bindings/net/pse-pd/microchip,pd692x0.yaml [new file with mode: 0644]
Bindings/net/pse-pd/pse-controller.yaml
Bindings/net/pse-pd/ti,tps23881.yaml [new file with mode: 0644]
Bindings/net/qcom,ethqos.yaml
Bindings/net/qcom,ipq4019-mdio.yaml
Bindings/net/renesas,etheravb.yaml
Bindings/net/renesas,ethertsn.yaml
Bindings/net/renesas,rzn1-gmac.yaml [new file with mode: 0644]
Bindings/net/rockchip-dwmac.yaml
Bindings/net/sff,sfp.yaml
Bindings/net/snps,dwmac.yaml
Bindings/net/starfive,jh7110-dwmac.yaml
Bindings/net/stm32-dwmac.yaml
Bindings/net/ti,cpsw-switch.yaml
Bindings/net/ti,icssg-prueth.yaml
Bindings/net/ti,k3-am654-cpsw-nuss.yaml
Bindings/net/ti,k3-am654-cpts.yaml
Bindings/net/wireless/brcm,bcm4329-fmac.yaml
Bindings/net/wireless/qcom,ath10k.yaml
Bindings/net/wireless/qcom,ath11k.yaml
Bindings/nvmem/qcom,qfprom.yaml
Bindings/nvmem/qcom,spmi-sdam.yaml
Bindings/opp/allwinner,sun50i-h6-operating-points.yaml
Bindings/pci/amlogic,axg-pcie.yaml
Bindings/pci/apple,pcie.yaml
Bindings/pci/brcm,iproc-pcie.yaml
Bindings/pci/brcm,stb-pcie.yaml
Bindings/pci/cdns,cdns-pcie-host.yaml
Bindings/pci/cdns-pcie-host.yaml
Bindings/pci/faraday,ftpci100.yaml
Bindings/pci/fsl,layerscape-pcie-ep.yaml [new file with mode: 0644]
Bindings/pci/fsl,layerscape-pcie.yaml [new file with mode: 0644]
Bindings/pci/host-generic-pci.yaml
Bindings/pci/intel,ixp4xx-pci.yaml
Bindings/pci/intel,keembay-pcie.yaml
Bindings/pci/layerscape-pci.txt [deleted file]
Bindings/pci/loongson.yaml
Bindings/pci/mediatek,mt7621-pcie.yaml
Bindings/pci/mediatek-pcie-gen3.yaml
Bindings/pci/microchip,pcie-host.yaml
Bindings/pci/qcom,pcie-common.yaml
Bindings/pci/qcom,pcie-sm8350.yaml
Bindings/pci/qcom,pcie.yaml
Bindings/pci/rcar-gen4-pci-ep.yaml
Bindings/pci/rcar-gen4-pci-host.yaml
Bindings/pci/rcar-pci-host.yaml
Bindings/pci/renesas,pci-rcar-gen2.yaml
Bindings/pci/rockchip,rk3399-pcie.yaml
Bindings/pci/snps,dw-pcie.yaml
Bindings/pci/ti,am65-pci-host.yaml
Bindings/pci/ti,j721e-pci-host.yaml
Bindings/pci/versatile.yaml
Bindings/pci/xilinx-versal-cpm.yaml
Bindings/pci/xlnx,axi-pcie-host.yaml
Bindings/pci/xlnx,nwl-pcie.yaml
Bindings/pci/xlnx,xdma-host.yaml
Bindings/phy/brcm,sata-phy.yaml
Bindings/phy/fsl,imx8mp-hdmi-phy.yaml [new file with mode: 0644]
Bindings/phy/mediatek,mt7988-xfi-tphy.yaml [new file with mode: 0644]
Bindings/phy/phy-rockchip-usbdp.yaml [new file with mode: 0644]
Bindings/phy/phy-stm32-usbphyc.yaml
Bindings/phy/qcom,edp-phy.yaml
Bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
Bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml
Bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml
Bindings/phy/qcom,snps-eusb2-repeater.yaml
Bindings/phy/qcom,usb-snps-femto-v2.yaml
Bindings/phy/rockchip,pcie3-phy.yaml
Bindings/phy/samsung,ufs-phy.yaml
Bindings/pinctrl/mediatek,mt7622-pinctrl.yaml
Bindings/pinctrl/qcom,pmic-gpio.yaml
Bindings/pinctrl/qcom,pmic-mpp.yaml
Bindings/pinctrl/qcom,sm4450-tlmm.yaml
Bindings/pinctrl/samsung,pinctrl.yaml
Bindings/platform/acer,aspire1-ec.yaml [new file with mode: 0644]
Bindings/power/supply/maxim,max8903.yaml
Bindings/pwm/atmel,at91sam-pwm.yaml
Bindings/pwm/google,cros-ec-pwm.yaml
Bindings/pwm/marvell,pxa-pwm.yaml
Bindings/pwm/mediatek,mt2712-pwm.yaml
Bindings/pwm/mediatek,pwm-disp.yaml
Bindings/pwm/pwm-bcm2835.yaml
Bindings/pwm/snps,dw-apb-timers-pwm2.yaml
Bindings/regulator/allwinner,sun20i-d1-system-ldos.yaml [new file with mode: 0644]
Bindings/regulator/fixed-regulator.yaml
Bindings/regulator/nxp,pca9450-regulator.yaml
Bindings/regulator/qcom,usb-vbus-regulator.yaml
Bindings/regulator/st,stm32-vrefbuf.yaml
Bindings/regulator/ti,tps62864.yaml
Bindings/remoteproc/mtk,scp.yaml
Bindings/remoteproc/qcom,msm8996-mss-pil.yaml
Bindings/remoteproc/qcom,qcs404-cdsp-pil.yaml
Bindings/remoteproc/qcom,sc7280-wpss-pil.yaml
Bindings/remoteproc/qcom,sdm845-adsp-pil.yaml
Bindings/remoteproc/qcom,smd-edge.yaml
Bindings/remoteproc/xlnx,zynqmp-r5fss.yaml
Bindings/riscv/starfive.yaml
Bindings/rng/microsoft,vmgenid.yaml [new file with mode: 0644]
Bindings/rng/st,stm32-rng.yaml
Bindings/rtc/alphascale,asm9260-rtc.txt [deleted file]
Bindings/rtc/alphascale,asm9260-rtc.yaml [new file with mode: 0644]
Bindings/rtc/armada-380-rtc.txt [deleted file]
Bindings/rtc/digicolor-rtc.txt [deleted file]
Bindings/rtc/fsl,stmp3xxx-rtc.yaml [new file with mode: 0644]
Bindings/rtc/google,goldfish-rtc.txt [deleted file]
Bindings/rtc/lpc32xx-rtc.txt [deleted file]
Bindings/rtc/marvell,armada-380-rtc.yaml [new file with mode: 0644]
Bindings/rtc/marvell,pxa-rtc.yaml [new file with mode: 0644]
Bindings/rtc/maxim,ds1742.txt [deleted file]
Bindings/rtc/nxp,lpc1788-rtc.txt [deleted file]
Bindings/rtc/nxp,lpc1788-rtc.yaml [new file with mode: 0644]
Bindings/rtc/orion-rtc.txt [deleted file]
Bindings/rtc/pxa-rtc.txt [deleted file]
Bindings/rtc/rtc-aspeed.txt [deleted file]
Bindings/rtc/spear-rtc.txt [deleted file]
Bindings/rtc/stmp3xxx-rtc.txt [deleted file]
Bindings/rtc/trivial-rtc.yaml
Bindings/rtc/twl-rtc.txt [deleted file]
Bindings/rtc/via,vt8500-rtc.txt [deleted file]
Bindings/serial/actions,owl-uart.txt [deleted file]
Bindings/serial/actions,owl-uart.yaml [new file with mode: 0644]
Bindings/serial/amlogic,meson-uart.yaml
Bindings/serial/brcm,bcm2835-aux-uart.txt [deleted file]
Bindings/serial/brcm,bcm2835-aux-uart.yaml [new file with mode: 0644]
Bindings/serial/cdns,uart.yaml
Bindings/serial/fsl,s32-linflexuart.yaml
Bindings/serial/renesas,scif.yaml
Bindings/serial/st,stm32-uart.yaml
Bindings/soc/qcom/qcom,pmic-glink.yaml
Bindings/soc/qcom/qcom,wcnss.yaml
Bindings/soc/renesas/renesas,r9a09g057-sys.yaml [new file with mode: 0644]
Bindings/soc/renesas/renesas.yaml
Bindings/soc/samsung/samsung,exynos-sysreg.yaml
Bindings/soc/tegra/nvidia,tegra20-pmc.yaml
Bindings/sound/davinci-mcbsp.txt [deleted file]
Bindings/sound/davinci-mcbsp.yaml [new file with mode: 0644]
Bindings/sound/fsl,audmix.txt [deleted file]
Bindings/sound/fsl,audmix.yaml [new file with mode: 0644]
Bindings/sound/fsl,esai.txt [deleted file]
Bindings/sound/fsl,esai.yaml [new file with mode: 0644]
Bindings/sound/fsl,imx-asrc.yaml
Bindings/sound/fsl,imx-audio-spdif.yaml [new file with mode: 0644]
Bindings/sound/fsl,sai.yaml
Bindings/sound/fsl,spdif.yaml
Bindings/sound/fsl,ssi.txt [deleted file]
Bindings/sound/fsl,ssi.yaml [new file with mode: 0644]
Bindings/sound/fsl-asoc-card.txt [deleted file]
Bindings/sound/fsl-asoc-card.yaml [new file with mode: 0644]
Bindings/sound/imx-audio-spdif.txt [deleted file]
Bindings/sound/mediatek,mt2701-wm8960.yaml [new file with mode: 0644]
Bindings/sound/mt2701-wm8960.txt [deleted file]
Bindings/sound/mt8186-mt6366-da7219-max98357.yaml
Bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
Bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml
Bindings/sound/mt8195-mt6359.yaml
Bindings/sound/nuvoton,nau8325.yaml [new file with mode: 0644]
Bindings/sound/nuvoton,nau8821.yaml
Bindings/sound/nvidia,tegra20-ac97.txt [deleted file]
Bindings/sound/nvidia,tegra20-ac97.yaml [new file with mode: 0644]
Bindings/sound/nvidia,tegra20-das.txt [deleted file]
Bindings/sound/nvidia,tegra20-das.yaml [new file with mode: 0644]
Bindings/sound/nvidia,tegra30-i2s.txt [deleted file]
Bindings/sound/nvidia,tegra30-i2s.yaml [new file with mode: 0644]
Bindings/sound/qcom,sm8250.yaml
Bindings/sound/renesas,rsnd.yaml
Bindings/sound/rockchip,rk3308-codec.yaml [new file with mode: 0644]
Bindings/sound/st,stm32-i2s.yaml
Bindings/sound/st,stm32-sai.yaml
Bindings/sound/st,stm32-spdifrx.yaml
Bindings/sound/ti,pcm1681.txt [deleted file]
Bindings/sound/ti,pcm1681.yaml [new file with mode: 0644]
Bindings/sound/ti,pcm6240.yaml [new file with mode: 0644]
Bindings/sound/wlf,wm8776.yaml [new file with mode: 0644]
Bindings/sound/wlf,wm8974.txt [deleted file]
Bindings/sound/wlf,wm8974.yaml [new file with mode: 0644]
Bindings/sound/wm8776.txt [deleted file]
Bindings/sound/xmos,xvf3500.yaml [new file with mode: 0644]
Bindings/spi/airoha,en7581-snand.yaml [new file with mode: 0644]
Bindings/spi/cdns,qspi-nor.yaml
Bindings/spi/marvell,armada-3700-spi.yaml [new file with mode: 0644]
Bindings/spi/renesas,sh-msiof.yaml
Bindings/spi/spi-armada-3700.txt [deleted file]
Bindings/spi/st,stm32-qspi.yaml
Bindings/spi/st,stm32-spi.yaml
Bindings/spi/ti,qspi.yaml [new file with mode: 0644]
Bindings/spi/ti_qspi.txt [deleted file]
Bindings/spmi/hisilicon,hisi-spmi-controller.yaml
Bindings/spmi/qcom,spmi-pmic-arb.yaml
Bindings/spmi/qcom,x1e80100-spmi-pmic-arb.yaml [new file with mode: 0644]
Bindings/thermal/amlogic,thermal.yaml
Bindings/thermal/loongson,ls2k-thermal.yaml
Bindings/thermal/mediatek,lvts-thermal.yaml
Bindings/thermal/qcom-lmh.yaml
Bindings/thermal/st,stih407-thermal.yaml [new file with mode: 0644]
Bindings/thermal/st-thermal.txt [deleted file]
Bindings/timer/renesas,cmt.yaml
Bindings/timer/renesas,ostm.yaml
Bindings/timer/renesas,tmu.yaml
Bindings/tpm/ibm,vtpm.yaml
Bindings/tpm/tcg,tpm-tis-i2c.yaml
Bindings/trivial-devices.yaml
Bindings/ufs/samsung,exynos-ufs.yaml
Bindings/usb/chipidea,usb2-common.yaml [new file with mode: 0644]
Bindings/usb/chipidea,usb2-imx.yaml [new file with mode: 0644]
Bindings/usb/ci-hdrc-usb2.yaml
Bindings/usb/cypress,hx3.yaml
Bindings/usb/dwc2.yaml
Bindings/usb/fsl,usbmisc.yaml
Bindings/usb/mediatek,mtk-xhci.yaml
Bindings/usb/microchip,usb2514.yaml [new file with mode: 0644]
Bindings/usb/qcom,dwc3.yaml
Bindings/usb/qcom,pmic-typec.yaml
Bindings/usb/realtek,rts5411.yaml
Bindings/usb/renesas,usbhs.yaml
Bindings/usb/samsung,exynos-dwc3.yaml
Bindings/usb/snps,dwc3.yaml
Bindings/usb/usb-uhci.txt [deleted file]
Bindings/usb/usb-uhci.yaml [new file with mode: 0644]
Bindings/vendor-prefixes.yaml
Bindings/watchdog/aspeed,ast2400-wdt.yaml [new file with mode: 0644]
Bindings/watchdog/aspeed-wdt.txt [deleted file]
Bindings/watchdog/twl4030-wdt.txt [deleted file]
include/dt-bindings/arm/mhuv3-dt.h [new file with mode: 0644]
include/dt-bindings/arm/qcom,ids.h
include/dt-bindings/clock/google,gs101.h
include/dt-bindings/clock/loongson,ls2k-clk.h
include/dt-bindings/clock/nxp,imx95-clock.h [new file with mode: 0644]
include/dt-bindings/clock/r8a73a4-clock.h
include/dt-bindings/clock/r9a07g043-cpg.h
include/dt-bindings/clock/r9a07g044-cpg.h
include/dt-bindings/clock/r9a07g054-cpg.h
include/dt-bindings/clock/r9a08g045-cpg.h
include/dt-bindings/clock/rk3568-cru.h
include/dt-bindings/input/linux-event-codes.h
include/dt-bindings/leds/common.h
include/dt-bindings/net/ti-dp83867.h
include/dt-bindings/net/ti-dp83869.h
include/dt-bindings/phy/phy-qcom-qmp.h
include/dt-bindings/pinctrl/samsung.h [deleted file]
include/dt-bindings/reset/rockchip,rk3588-cru.h
include/dt-bindings/reset/st,stm32mp25-rcc.h
include/dt-bindings/thermal/mediatek,lvts-thermal.h
scripts/cronjob
scripts/filter.sh
scripts/git-filter-branch [new file with mode: 0755]
src/arm/allwinner/sun5i-a13-pocketbook-614-plus.dts [new file with mode: 0644]
src/arm/allwinner/sun5i-a13.dtsi
src/arm/allwinner/sun5i-gr8-chip-pro.dts
src/arm/allwinner/sun5i-r8-chip.dts
src/arm/allwinner/sun6i-a31-hummingbird.dts
src/arm/allwinner/sun6i-a31.dtsi
src/arm/allwinner/sun6i-a31s-sinovoip-bpi-m2.dts
src/arm/allwinner/sun7i-a20-bananapi-m1-plus.dts
src/arm/allwinner/sun7i-a20-cubietruck.dts
src/arm/allwinner/sun7i-a20-hummingbird.dts
src/arm/allwinner/sun7i-a20-olimex-som-evb-emmc.dts
src/arm/allwinner/sun7i-a20-olimex-som204-evb-emmc.dts
src/arm/allwinner/sun7i-a20-olimex-som204-evb.dts
src/arm/allwinner/sun7i-a20-olinuxino-lime2.dts
src/arm/allwinner/sun7i-a20-wits-pro-a20-dkt.dts
src/arm/allwinner/sun7i-a20.dtsi
src/arm/allwinner/sun8i-a23-a33.dtsi
src/arm/allwinner/sun8i-a23-polaroid-mid2407pxe03.dts
src/arm/allwinner/sun8i-a23-polaroid-mid2809pxe04.dts
src/arm/allwinner/sun8i-a33-ga10h-v1.1.dts
src/arm/allwinner/sun8i-a33-inet-d978-rev2.dts
src/arm/allwinner/sun8i-a33.dtsi
src/arm/allwinner/sun8i-a83t-bananapi-m3.dts
src/arm/allwinner/sun8i-a83t-cubietruck-plus.dts
src/arm/allwinner/sun8i-a83t-tbs-a711.dts
src/arm/allwinner/sun8i-a83t.dtsi
src/arm/allwinner/sun8i-h2-plus-bananapi-m2-zero.dts
src/arm/allwinner/sun8i-h2-plus-orangepi-r1.dts
src/arm/allwinner/sun8i-h2-plus-orangepi-zero.dts
src/arm/allwinner/sun8i-h3-beelink-x2.dts
src/arm/allwinner/sun8i-h3-nanopi-duo2.dts
src/arm/allwinner/sun8i-h3-nanopi-m1-plus.dts
src/arm/allwinner/sun8i-h3-nanopi-neo-air.dts
src/arm/allwinner/sun8i-h3-nanopi-r1.dts
src/arm/allwinner/sun8i-h3-orangepi-2.dts
src/arm/allwinner/sun8i-h3-orangepi-lite.dts
src/arm/allwinner/sun8i-h3-orangepi-pc-plus.dts
src/arm/allwinner/sun8i-h3-orangepi-zero-plus2.dts
src/arm/allwinner/sun8i-q8-common.dtsi
src/arm/allwinner/sun8i-r16-bananapi-m2m.dts
src/arm/allwinner/sun8i-r16-parrot.dts
src/arm/allwinner/sun8i-r40-bananapi-m2-ultra.dts
src/arm/allwinner/sun8i-r40-oka40i-c.dts
src/arm/allwinner/sun8i-s3-pinecube.dts
src/arm/allwinner/sun8i-v3s.dtsi
src/arm/allwinner/sun8i-v40-bananapi-m2-berry.dts
src/arm/allwinner/sun9i-a80.dtsi
src/arm/allwinner/sunxi-bananapi-m2-plus.dtsi
src/arm/allwinner/sunxi-h3-h5-emlid-neutis.dtsi
src/arm/allwinner/sunxi-h3-h5.dtsi
src/arm/aspeed/aspeed-bmc-ampere-mtmitchell.dts
src/arm/aspeed/aspeed-bmc-asrock-e3c246d4i.dts
src/arm/aspeed/aspeed-bmc-asrock-e3c256d4i.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-bmc-asrock-romed8hm3.dts
src/arm/aspeed/aspeed-bmc-asrock-spc621d8hm3.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-bmc-asrock-x570d4u.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-bmc-asus-x4tf.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-bmc-delta-ahe50dc.dts
src/arm/aspeed/aspeed-bmc-facebook-cloudripper.dts [deleted file]
src/arm/aspeed/aspeed-bmc-facebook-greatlakes.dts
src/arm/aspeed/aspeed-bmc-facebook-harma.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-bmc-facebook-minerva-cmc.dts [deleted file]
src/arm/aspeed/aspeed-bmc-facebook-minerva.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-bmc-facebook-yosemite4.dts
src/arm/aspeed/aspeed-bmc-facebook-yosemitev2.dts
src/arm/aspeed/aspeed-bmc-ibm-bonnell.dts
src/arm/aspeed/aspeed-bmc-ibm-system1.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-g6.dtsi
src/arm/aspeed/ibm-power10-dual.dtsi
src/arm/broadcom/bcm2711-rpi-4-b.dts
src/arm/broadcom/bcm2711-rpi-400.dts
src/arm/broadcom/bcm2711-rpi-cm4-io.dts
src/arm/broadcom/bcm2711-rpi.dtsi
src/arm/broadcom/bcm2711.dtsi
src/arm/broadcom/bcm2835-rpi-common.dtsi
src/arm/broadcom/bcm2835-rpi.dtsi
src/arm/broadcom/bcm283x.dtsi
src/arm/broadcom/bcm4709-asus-rt-ac3200.dts [new file with mode: 0644]
src/arm/broadcom/bcm47094-asus-rt-ac3100.dts
src/arm/broadcom/bcm47094-asus-rt-ac3100.dtsi
src/arm/broadcom/bcm47094-asus-rt-ac5300.dts [new file with mode: 0644]
src/arm/broadcom/bcm47094-asus-rt-ac88u.dts
src/arm/nvidia/tegra20-colibri.dtsi
src/arm/nvidia/tegra20-paz00.dts
src/arm/nxp/imx/e60k02.dtsi
src/arm/nxp/imx/e70k02.dtsi
src/arm/nxp/imx/imx27-phytec-phycard-s-som.dtsi
src/arm/nxp/imx/imx51-ts4800.dts
src/arm/nxp/imx/imx53-kp-ddc.dts
src/arm/nxp/imx/imx53-kp.dtsi
src/arm/nxp/imx/imx53-m53evk.dts
src/arm/nxp/imx/imx53-mba53.dts
src/arm/nxp/imx/imx53-ppd.dts
src/arm/nxp/imx/imx53-qsb-common.dtsi
src/arm/nxp/imx/imx53-qsb-hdmi.dtso
src/arm/nxp/imx/imx53-tqma53.dtsi
src/arm/nxp/imx/imx6dl-aristainetos_4.dts
src/arm/nxp/imx/imx6dl-aristainetos_7.dts
src/arm/nxp/imx/imx6dl-mamoj.dts
src/arm/nxp/imx/imx6q-ba16.dtsi
src/arm/nxp/imx/imx6q-bosch-acc.dts
src/arm/nxp/imx/imx6q-kp.dtsi
src/arm/nxp/imx/imx6q-novena.dts
src/arm/nxp/imx/imx6q-pistachio.dts
src/arm/nxp/imx/imx6q-prti6q.dts
src/arm/nxp/imx/imx6q-var-dt6customboard.dts
src/arm/nxp/imx/imx6qdl-apf6dev.dtsi
src/arm/nxp/imx/imx6qdl-aristainetos2.dtsi
src/arm/nxp/imx/imx6qdl-cubox-i.dtsi
src/arm/nxp/imx/imx6qdl-emcon.dtsi
src/arm/nxp/imx/imx6qdl-gw52xx.dtsi
src/arm/nxp/imx/imx6qdl-gw53xx.dtsi
src/arm/nxp/imx/imx6qdl-gw54xx.dtsi
src/arm/nxp/imx/imx6qdl-gw560x.dtsi
src/arm/nxp/imx/imx6qdl-gw5903.dtsi
src/arm/nxp/imx/imx6qdl-gw5904.dtsi
src/arm/nxp/imx/imx6qdl-icore.dtsi
src/arm/nxp/imx/imx6qdl-mba6.dtsi
src/arm/nxp/imx/imx6qdl-nit6xlite.dtsi
src/arm/nxp/imx/imx6qdl-nitrogen6_max.dtsi
src/arm/nxp/imx/imx6qdl-nitrogen6_som2.dtsi
src/arm/nxp/imx/imx6qdl-nitrogen6x.dtsi
src/arm/nxp/imx/imx6qdl-phytec-mira.dtsi
src/arm/nxp/imx/imx6qdl-sabreauto.dtsi
src/arm/nxp/imx/imx6qdl-sabrelite.dtsi
src/arm/nxp/imx/imx6qdl-sabresd.dtsi
src/arm/nxp/imx/imx6qdl-savageboard.dtsi
src/arm/nxp/imx/imx6qdl-skov-cpu.dtsi
src/arm/nxp/imx/imx6qdl-udoo.dtsi
src/arm/nxp/imx/imx6qdl.dtsi
src/arm/nxp/imx/imx6sl-evk.dts
src/arm/nxp/imx/imx6sl-tolino-shine2hd.dts
src/arm/nxp/imx/imx6sll-evk.dts
src/arm/nxp/imx/imx6sll.dtsi
src/arm/nxp/imx/imx6sx-nitrogen6sx.dts
src/arm/nxp/imx/imx6sx-sdb.dtsi
src/arm/nxp/imx/imx6sx-softing-vining-2000.dts
src/arm/nxp/imx/imx6sx.dtsi
src/arm/nxp/imx/imx6ul-14x14-evk.dtsi
src/arm/nxp/imx/imx6ul-ccimx6ulsbcpro.dts
src/arm/nxp/imx/imx6ul-geam.dts
src/arm/nxp/imx/imx6ul-imx6ull-opos6uldev.dtsi
src/arm/nxp/imx/imx6ul-isiot.dtsi
src/arm/nxp/imx/imx6ul-kontron-bl-43.dts
src/arm/nxp/imx/imx6ul-kontron-bl-common.dtsi
src/arm/nxp/imx/imx6ul-pico.dtsi
src/arm/nxp/imx/imx6ull-seeed-npi-dev-board-emmc.dts [new file with mode: 0644]
src/arm/nxp/imx/imx6ull-seeed-npi-dev-board-nand.dts [new file with mode: 0644]
src/arm/nxp/imx/imx6ull-seeed-npi-dev-board.dtsi [new file with mode: 0644]
src/arm/nxp/imx/imx6ull-seeed-npi.dtsi [new file with mode: 0644]
src/arm/nxp/imx/imx6ull-tarragon-master.dts
src/arm/nxp/imx/imx6ull-tarragon-slave.dts
src/arm/nxp/imx/imx6ull-tarragon-slavext.dts
src/arm/nxp/imx/imx6ull-uti260b.dts [new file with mode: 0644]
src/arm/nxp/imx/imx7s.dtsi
src/arm/qcom/msm8226-motorola-falcon.dts [new file with mode: 0644]
src/arm/qcom/qcom-apq8064.dtsi
src/arm/qcom/qcom-apq8084.dtsi
src/arm/qcom/qcom-ipq4019.dtsi
src/arm/qcom/qcom-ipq8064.dtsi
src/arm/qcom/qcom-msm8916-smp.dtsi
src/arm/qcom/qcom-msm8974.dtsi
src/arm/qcom/qcom-msm8974pro-samsung-klte-common.dtsi [new file with mode: 0644]
src/arm/qcom/qcom-msm8974pro-samsung-klte.dts
src/arm/qcom/qcom-msm8974pro-samsung-kltechn.dts [new file with mode: 0644]
src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-castor.dts
src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi [new file with mode: 0644]
src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-leo.dts [new file with mode: 0644]
src/arm/qcom/qcom-sdx55.dtsi
src/arm/renesas/r7s72100.dtsi
src/arm/renesas/r8a73a4.dtsi
src/arm/renesas/r8a7742.dtsi
src/arm/renesas/r8a7743.dtsi
src/arm/renesas/r8a7744.dtsi
src/arm/renesas/r8a7745.dtsi
src/arm/renesas/r8a77470.dtsi
src/arm/renesas/r8a7790.dtsi
src/arm/renesas/r8a7791.dtsi
src/arm/renesas/r8a7792.dtsi
src/arm/renesas/r8a7793.dtsi
src/arm/renesas/r8a7794.dtsi
src/arm/renesas/r9a06g032.dtsi
src/arm/rockchip/rk3066a.dtsi
src/arm/samsung/exynos3250.dtsi
src/arm/samsung/exynos4.dtsi
src/arm/samsung/exynos4210-smdkv310.dts
src/arm/samsung/exynos4212-tab3.dtsi
src/arm/samsung/exynos4412-origen.dts
src/arm/samsung/exynos4412-smdk4412.dts
src/arm/samsung/exynos5250.dtsi
src/arm/samsung/exynos5420.dtsi
src/arm/samsung/exynos5800-peach-pi.dts
src/arm/samsung/s5pv210.dtsi
src/arm/st/stm32f746.dtsi
src/arm/st/stm32f769.dtsi
src/arm/st/stm32mp13-pinctrl.dtsi
src/arm/st/stm32mp131.dtsi
src/arm/st/stm32mp133.dtsi
src/arm/st/stm32mp135.dtsi
src/arm/st/stm32mp135f-dk.dts
src/arm/st/stm32mp13xc.dtsi
src/arm/st/stm32mp13xf.dtsi
src/arm/st/stm32mp151.dtsi
src/arm/st/stm32mp153.dtsi
src/arm/st/stm32mp157c-ed1.dts
src/arm/st/stm32mp15xc.dtsi
src/arm/ti/keystone/keystone-k2g.dtsi
src/arm/ti/omap/am33xx.dtsi
src/arm/ti/omap/am4372.dtsi
src/arm/ti/omap/dra76x.dtsi
src/arm/ti/omap/dra7xx-clocks.dtsi
src/arm/ti/omap/omap3-n900.dts
src/arm64/actions/s700-cubieboard7.dts
src/arm64/allwinner/sun50i-a64-bananapi-m64.dts
src/arm64/allwinner/sun50i-a64-nanopi-a64.dts
src/arm64/allwinner/sun50i-a64-olinuxino.dts
src/arm64/allwinner/sun50i-a64-orangepi-win.dts
src/arm64/allwinner/sun50i-a64-pinebook.dts
src/arm64/allwinner/sun50i-a64-pinephone.dtsi
src/arm64/allwinner/sun50i-a64-pinetab.dts
src/arm64/allwinner/sun50i-a64-teres-i.dts
src/arm64/allwinner/sun50i-a64.dtsi
src/arm64/allwinner/sun50i-h313-tanix-tx1.dts [new file with mode: 0644]
src/arm64/allwinner/sun50i-h5-nanopi-neo-plus2.dts
src/arm64/allwinner/sun50i-h5-nanopi-r1s-h5.dts
src/arm64/allwinner/sun50i-h5-orangepi-prime.dts
src/arm64/allwinner/sun50i-h5-orangepi-zero-plus.dts
src/arm64/allwinner/sun50i-h5-orangepi-zero-plus2.dts
src/arm64/allwinner/sun50i-h6-beelink-gs1.dts
src/arm64/allwinner/sun50i-h6-orangepi-3.dts
src/arm64/allwinner/sun50i-h6-orangepi-lite2.dts
src/arm64/allwinner/sun50i-h6-orangepi.dtsi
src/arm64/allwinner/sun50i-h6-pine-h64-model-b.dts
src/arm64/allwinner/sun50i-h6-pine-h64.dts
src/arm64/allwinner/sun50i-h6.dtsi
src/arm64/allwinner/sun50i-h616-bigtreetech-cb1.dtsi
src/arm64/allwinner/sun50i-h616-cpu-opp.dtsi [new file with mode: 0644]
src/arm64/allwinner/sun50i-h616-orangepi-zero2.dts
src/arm64/allwinner/sun50i-h616-x96-mate.dts
src/arm64/allwinner/sun50i-h616.dtsi
src/arm64/allwinner/sun50i-h618-longan-module-3h.dtsi
src/arm64/allwinner/sun50i-h618-orangepi-zero2w.dts
src/arm64/allwinner/sun50i-h618-orangepi-zero3.dts
src/arm64/allwinner/sun50i-h618-transpeed-8k618-t.dts
src/arm64/allwinner/sun50i-h64-remix-mini-pc.dts
src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts [new file with mode: 0644]
src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-h.dts [new file with mode: 0644]
src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-plus.dts [new file with mode: 0644]
src/arm64/altera/socfpga_stratix10.dtsi
src/arm64/amazon/alpine-v2.dtsi
src/arm64/amazon/alpine-v3.dtsi
src/arm64/amd/elba-16core.dtsi
src/arm64/amd/elba-asic-common.dtsi
src/arm64/amd/elba-asic.dts
src/arm64/amd/elba-flash-parts.dtsi
src/arm64/amd/elba.dtsi
src/arm64/amlogic/amlogic-a4-a113l2-ba400.dts [new file with mode: 0644]
src/arm64/amlogic/amlogic-a4-common.dtsi [new file with mode: 0644]
src/arm64/amlogic/amlogic-a4.dtsi [new file with mode: 0644]
src/arm64/amlogic/amlogic-a5-a113x2-av400.dts [new file with mode: 0644]
src/arm64/amlogic/amlogic-a5.dtsi [new file with mode: 0644]
src/arm64/amlogic/amlogic-t7-reset.h [new file with mode: 0644]
src/arm64/amlogic/amlogic-t7.dtsi
src/arm64/amlogic/meson-g12-common.dtsi
src/arm64/amlogic/meson-g12b-bananapi-cm4-mnt-reform2.dts [new file with mode: 0644]
src/arm64/amlogic/meson-khadas-vim3-ts050.dtso [new file with mode: 0644]
src/arm64/amlogic/meson-s4.dtsi
src/arm64/apm/apm-merlin.dts
src/arm64/apm/apm-mustang.dts
src/arm64/apm/apm-shadowcat.dtsi
src/arm64/apm/apm-storm.dtsi
src/arm64/arm/juno-base.dtsi
src/arm64/arm/juno-scmi.dtsi
src/arm64/arm/vexpress-v2f-1xv7-ca53x2.dts
src/arm64/broadcom/bcmbca/bcm4908.dtsi
src/arm64/broadcom/bcmbca/bcm94908.dts
src/arm64/broadcom/northstar2/ns2-svk.dts
src/arm64/broadcom/northstar2/ns2-xmc.dts
src/arm64/broadcom/northstar2/ns2.dtsi
src/arm64/broadcom/stingray/stingray.dtsi
src/arm64/cavium/thunder-88xx.dtsi
src/arm64/cavium/thunder2-99xx.dts
src/arm64/cavium/thunder2-99xx.dtsi
src/arm64/exynos/exynos5433.dtsi
src/arm64/exynos/exynos850.dtsi
src/arm64/exynos/exynosautov9.dtsi
src/arm64/exynos/google/gs101-oriole.dts
src/arm64/exynos/google/gs101.dtsi
src/arm64/freescale/fsl-ls1012a.dtsi
src/arm64/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts
src/arm64/freescale/fsl-ls1028a-kontron-sl28-var3.dts [new file with mode: 0644]
src/arm64/freescale/fsl-ls1028a.dtsi
src/arm64/freescale/fsl-ls1043a.dtsi
src/arm64/freescale/fsl-ls2080a.dtsi
src/arm64/freescale/fsl-ls2088a.dtsi
src/arm64/freescale/fsl-ls208xa.dtsi
src/arm64/freescale/fsl-lx2160a.dtsi
src/arm64/freescale/fsl-lx2162a-clearfog.dts
src/arm64/freescale/fsl-lx2162a-sr-som.dtsi
src/arm64/freescale/imx8-ss-audio.dtsi
src/arm64/freescale/imx8-ss-cm40.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8-ss-img.dtsi
src/arm64/freescale/imx8dx-colibri-aster.dts [new file with mode: 0644]
src/arm64/freescale/imx8dx-colibri-eval-v3.dts [new file with mode: 0644]
src/arm64/freescale/imx8dx-colibri-iris-v2.dts [new file with mode: 0644]
src/arm64/freescale/imx8dx-colibri-iris.dts [new file with mode: 0644]
src/arm64/freescale/imx8dx-colibri.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8dx.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8dxl-evk.dts
src/arm64/freescale/imx8dxl.dtsi
src/arm64/freescale/imx8mm-evk.dtsi
src/arm64/freescale/imx8mm-var-som-symphony.dts
src/arm64/freescale/imx8mm-venice-gw71xx.dtsi
src/arm64/freescale/imx8mm-venice-gw7901.dts
src/arm64/freescale/imx8mm-verdin-dahlia.dtsi
src/arm64/freescale/imx8mm-verdin-dev.dtsi
src/arm64/freescale/imx8mm-verdin-yavia.dtsi
src/arm64/freescale/imx8mm-verdin.dtsi
src/arm64/freescale/imx8mm.dtsi
src/arm64/freescale/imx8mn-ddr3l-evk.dts
src/arm64/freescale/imx8mn-ddr4-evk.dts
src/arm64/freescale/imx8mn-evk.dts
src/arm64/freescale/imx8mn-evk.dtsi
src/arm64/freescale/imx8mn-var-som-symphony.dts
src/arm64/freescale/imx8mn.dtsi
src/arm64/freescale/imx8mp-beacon-kit.dts
src/arm64/freescale/imx8mp-debix-model-a.dts
src/arm64/freescale/imx8mp-debix-som-a-bmb-08.dts
src/arm64/freescale/imx8mp-dhcom-pdk3.dts
src/arm64/freescale/imx8mp-dhcom-som.dtsi
src/arm64/freescale/imx8mp-evk.dts
src/arm64/freescale/imx8mp-msc-sm2s.dtsi
src/arm64/freescale/imx8mp-navqp.dts [new file with mode: 0644]
src/arm64/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
src/arm64/freescale/imx8mp-venice-gw71xx.dtsi
src/arm64/freescale/imx8mp-venice-gw72xx.dtsi
src/arm64/freescale/imx8mp-venice-gw73xx.dtsi
src/arm64/freescale/imx8mp-venice-gw74xx-imx219.dtso
src/arm64/freescale/imx8mp-venice-gw74xx.dts
src/arm64/freescale/imx8mp-verdin-dahlia.dtsi
src/arm64/freescale/imx8mp-verdin-dev.dtsi
src/arm64/freescale/imx8mp-verdin-mallow.dtsi
src/arm64/freescale/imx8mp-verdin-yavia.dtsi
src/arm64/freescale/imx8mp-verdin.dtsi
src/arm64/freescale/imx8mp.dtsi
src/arm64/freescale/imx8mq-hummingboard-pulse.dts
src/arm64/freescale/imx8mq-librem5-devkit.dts
src/arm64/freescale/imx8mq.dtsi
src/arm64/freescale/imx8qm-mek.dts
src/arm64/freescale/imx8qxp-mek.dts
src/arm64/freescale/imx8qxp.dtsi
src/arm64/freescale/imx8ulp-evk.dts
src/arm64/freescale/imx8ulp.dtsi
src/arm64/freescale/imx93-11x11-evk.dts
src/arm64/freescale/imx93.dtsi
src/arm64/freescale/mba8mx.dtsi
src/arm64/freescale/s32g2.dtsi
src/arm64/freescale/s32g274a-evb.dts
src/arm64/freescale/s32g274a-rdb2.dts
src/arm64/freescale/s32g3.dtsi [new file with mode: 0644]
src/arm64/freescale/s32g399a-rdb3.dts [new file with mode: 0644]
src/arm64/hisilicon/hi3798cv200.dtsi
src/arm64/hisilicon/hi6220-hikey.dts
src/arm64/hisilicon/hi6220.dtsi
src/arm64/hisilicon/hip05-d02.dts
src/arm64/hisilicon/hip05.dtsi
src/arm64/hisilicon/hip06.dtsi
src/arm64/hisilicon/hip07.dtsi
src/arm64/intel/keembay-soc.dtsi
src/arm64/intel/socfpga_agilex.dtsi
src/arm64/lg/lg1312-ref.dts
src/arm64/lg/lg1313-ref.dts
src/arm64/marvell/ac5-98dx25xx.dtsi
src/arm64/marvell/armada-3720-eDPU.dts
src/arm64/marvell/armada-3720-espressobin-ultra.dts
src/arm64/marvell/armada-3720-turris-mox.dts
src/arm64/marvell/armada-37xx.dtsi
src/arm64/marvell/armada-ap80x.dtsi
src/arm64/marvell/cn9130-crb.dtsi
src/arm64/marvell/cn9130-db.dtsi
src/arm64/marvell/cn9131-db.dtsi
src/arm64/marvell/cn9132-db.dtsi
src/arm64/mediatek/mt8516.dtsi
src/arm64/microchip/sparx5.dtsi
src/arm64/microchip/sparx5_pcb134_board.dtsi
src/arm64/microchip/sparx5_pcb135_board.dtsi
src/arm64/nuvoton/nuvoton-npcm845-evb.dts
src/arm64/nvidia/tegra132-norrin.dts
src/arm64/nvidia/tegra132.dtsi
src/arm64/nvidia/tegra210-smaug.dts
src/arm64/nvidia/tegra210.dtsi
src/arm64/nvidia/tegra234.dtsi
src/arm64/qcom/apq8016-sbc.dts
src/arm64/qcom/ipq6018.dtsi
src/arm64/qcom/ipq8074-hk10.dtsi
src/arm64/qcom/ipq8074.dtsi
src/arm64/qcom/msm8916-longcheer-l8150.dts
src/arm64/qcom/msm8916-mtp.dts
src/arm64/qcom/msm8916-samsung-a2015-common.dtsi
src/arm64/qcom/msm8916-samsung-e2015-common.dtsi
src/arm64/qcom/msm8916-samsung-fortuna-common.dtsi
src/arm64/qcom/msm8916-samsung-rossa-common.dtsi
src/arm64/qcom/msm8939-samsung-a7.dts
src/arm64/qcom/msm8953.dtsi
src/arm64/qcom/msm8996.dtsi
src/arm64/qcom/msm8998-sony-xperia-yoshino.dtsi
src/arm64/qcom/msm8998.dtsi
src/arm64/qcom/pm6150.dtsi
src/arm64/qcom/pm6150l.dtsi
src/arm64/qcom/qcm2290.dtsi
src/arm64/qcom/qcm6490-fairphone-fp5.dts
src/arm64/qcom/qcm6490-idp.dts
src/arm64/qcom/qcs404-evb.dtsi
src/arm64/qcom/qcs404.dtsi
src/arm64/qcom/qcs6490-rb3gen2.dts
src/arm64/qcom/qdu1000.dtsi
src/arm64/qcom/qrb2210-rb1.dts
src/arm64/qcom/qrb4210-rb2.dts
src/arm64/qcom/sa8155p-adp.dts
src/arm64/qcom/sa8775p.dtsi
src/arm64/qcom/sc7180-acer-aspire1.dts
src/arm64/qcom/sc7180-trogdor.dtsi
src/arm64/qcom/sc7180.dtsi
src/arm64/qcom/sc7280.dtsi
src/arm64/qcom/sc8180x-lenovo-flex-5g.dts
src/arm64/qcom/sc8180x.dtsi
src/arm64/qcom/sc8280xp-crd.dts
src/arm64/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
src/arm64/qcom/sc8280xp.dtsi
src/arm64/qcom/sdm630-sony-xperia-nile.dtsi
src/arm64/qcom/sdm632-fairphone-fp3.dts
src/arm64/qcom/sdm670-google-sargo.dts
src/arm64/qcom/sdm845-db845c.dts
src/arm64/qcom/sdm845.dtsi
src/arm64/qcom/sdx75.dtsi
src/arm64/qcom/sm6115.dtsi
src/arm64/qcom/sm6350.dtsi
src/arm64/qcom/sm8150-hdk.dts
src/arm64/qcom/sm8150.dtsi
src/arm64/qcom/sm8250-xiaomi-elish-common.dtsi
src/arm64/qcom/sm8250.dtsi
src/arm64/qcom/sm8350-hdk.dts
src/arm64/qcom/sm8350.dtsi
src/arm64/qcom/sm8450-hdk.dts
src/arm64/qcom/sm8450-qrd.dts
src/arm64/qcom/sm8450.dtsi
src/arm64/qcom/sm8550-sony-xperia-yodo-pdx234.dts [new file with mode: 0644]
src/arm64/qcom/sm8550.dtsi
src/arm64/qcom/sm8650-mtp.dts
src/arm64/qcom/sm8650-qrd.dts
src/arm64/qcom/sm8650.dtsi
src/arm64/qcom/x1e80100-crd.dts
src/arm64/qcom/x1e80100-pmics.dtsi [new file with mode: 0644]
src/arm64/qcom/x1e80100-qcp.dts
src/arm64/qcom/x1e80100.dtsi
src/arm64/realtek/rtd129x.dtsi
src/arm64/realtek/rtd139x.dtsi
src/arm64/realtek/rtd16xx.dtsi
src/arm64/renesas/r8a77970-eagle-function-expansion.dtso [new file with mode: 0644]
src/arm64/renesas/r8a779f4-s4sk.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/r9a07g044.dtsi
src/arm64/renesas/r9a07g054.dtsi
src/arm64/renesas/rzg2ul-smarc.dtsi
src/arm64/renesas/rzg3s-smarc-som.dtsi
src/arm64/rockchip/rk3308-rock-pi-s.dts
src/arm64/rockchip/rk3308.dtsi
src/arm64/rockchip/rk3326-gameforce-chi.dts [new file with mode: 0644]
src/arm64/rockchip/rk3328-rock-pi-e.dts
src/arm64/rockchip/rk3328.dtsi
src/arm64/rockchip/rk3368-evb.dtsi
src/arm64/rockchip/rk3368-orion-r68-meta.dts
src/arm64/rockchip/rk3368-r88.dts
src/arm64/rockchip/rk3368.dtsi
src/arm64/rockchip/rk3399-gru.dtsi
src/arm64/rockchip/rk3399-pinephone-pro.dts
src/arm64/rockchip/rk3399-rock-4c-plus.dts
src/arm64/rockchip/rk3399-rock-pi-4.dtsi
src/arm64/rockchip/rk3566-anbernic-rg353p.dts
src/arm64/rockchip/rk3566-anbernic-rg353ps.dts
src/arm64/rockchip/rk3566-anbernic-rg353v.dts
src/arm64/rockchip/rk3566-anbernic-rg353vs.dts
src/arm64/rockchip/rk3566-anbernic-rg503.dts
src/arm64/rockchip/rk3566-anbernic-rgxx3.dtsi
src/arm64/rockchip/rk3566-powkiddy-rgb30.dts
src/arm64/rockchip/rk3566-powkiddy-rk2023.dts
src/arm64/rockchip/rk3566-powkiddy-rk2023.dtsi
src/arm64/rockchip/rk3566-powkiddy-x55.dts
src/arm64/rockchip/rk3566-quartz64-a.dts
src/arm64/rockchip/rk3566-quartz64-b.dts
src/arm64/rockchip/rk3566-rock-3c.dts [new file with mode: 0644]
src/arm64/rockchip/rk3566-soquartz-blade.dts
src/arm64/rockchip/rk3566-soquartz-cm4.dts
src/arm64/rockchip/rk3566-soquartz-model-a.dts
src/arm64/rockchip/rk3566-soquartz.dtsi
src/arm64/rockchip/rk3568-mecsbc.dts [new file with mode: 0644]
src/arm64/rockchip/rk3568-rock-3a.dts
src/arm64/rockchip/rk3568-wolfvision-pf5-io-expander.dtso [new file with mode: 0644]
src/arm64/rockchip/rk3568-wolfvision-pf5.dts [new file with mode: 0644]
src/arm64/rockchip/rk356x.dtsi
src/arm64/rockchip/rk3588-armsom-sige7.dts [new file with mode: 0644]
src/arm64/rockchip/rk3588-coolpi-cm5.dtsi
src/arm64/rockchip/rk3588-edgeble-neu6a-common.dtsi
src/arm64/rockchip/rk3588-edgeble-neu6a-io.dtsi
src/arm64/rockchip/rk3588-evb1-v10.dts
src/arm64/rockchip/rk3588-fet3588-c.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3588-jaguar.dts
src/arm64/rockchip/rk3588-ok3588-c.dts [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-tiger-haikou.dts
src/arm64/rockchip/rk3588-tiger.dtsi
src/arm64/rockchip/rk3588-turing-rk1.dtsi
src/arm64/rockchip/rk3588.dtsi
src/arm64/rockchip/rk3588s-coolpi-4b.dts
src/arm64/rockchip/rk3588s-indiedroid-nova.dts
src/arm64/rockchip/rk3588s-khadas-edge2.dts
src/arm64/rockchip/rk3588s-orangepi-5.dts
src/arm64/rockchip/rk3588s-rock-5a.dts
src/arm64/rockchip/rk3588s.dtsi
src/arm64/socionext/uniphier-ld11-global.dts
src/arm64/socionext/uniphier-ld20-global.dts
src/arm64/sprd/sc9860.dtsi
src/arm64/sprd/sc9863a.dtsi
src/arm64/sprd/sharkl3.dtsi
src/arm64/sprd/sp9860g-1h10.dts
src/arm64/sprd/whale2.dtsi
src/arm64/st/stm32mp25-pinctrl.dtsi
src/arm64/st/stm32mp251.dtsi
src/arm64/st/stm32mp253.dtsi
src/arm64/st/stm32mp255.dtsi
src/arm64/st/stm32mp257f-ev1.dts
src/arm64/synaptics/berlin4ct.dtsi
src/arm64/tesla/fsd.dtsi
src/arm64/ti/k3-am62-lp-sk.dts
src/arm64/ti/k3-am62-main.dtsi
src/arm64/ti/k3-am62-verdin-dahlia.dtsi
src/arm64/ti/k3-am62-verdin-dev.dtsi
src/arm64/ti/k3-am62-verdin-mallow.dtsi
src/arm64/ti/k3-am62-verdin-yavia.dtsi
src/arm64/ti/k3-am62-verdin.dtsi
src/arm64/ti/k3-am62-wakeup.dtsi
src/arm64/ti/k3-am625-beagleplay.dts
src/arm64/ti/k3-am625-phyboard-lyra-rdk.dts
src/arm64/ti/k3-am62a-main.dtsi
src/arm64/ti/k3-am62a-wakeup.dtsi
src/arm64/ti/k3-am62a7-sk.dts
src/arm64/ti/k3-am62p-main.dtsi
src/arm64/ti/k3-am62p-wakeup.dtsi
src/arm64/ti/k3-am62p5-sk.dts
src/arm64/ti/k3-am642-evm.dts
src/arm64/ti/k3-am642-phyboard-electra-gpio-fan.dtso [new file with mode: 0644]
src/arm64/ti/k3-am642-phyboard-electra-rdk.dts
src/arm64/ti/k3-am642-sk.dts
src/arm64/ti/k3-am65-iot2050-common-pg1.dtsi
src/arm64/ti/k3-am65-main.dtsi
src/arm64/ti/k3-am65-mcu.dtsi
src/arm64/ti/k3-am65-wakeup.dtsi
src/arm64/ti/k3-am69-sk.dts
src/arm64/ti/k3-j7200-main.dtsi
src/arm64/ti/k3-j7200-mcu-wakeup.dtsi
src/arm64/ti/k3-j721e-main.dtsi
src/arm64/ti/k3-j721e-mcu-wakeup.dtsi
src/arm64/ti/k3-j721s2-main.dtsi
src/arm64/ti/k3-j721s2-mcu-wakeup.dtsi
src/arm64/ti/k3-j721s2.dtsi
src/arm64/ti/k3-j722s-evm.dts
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/xilinx/zynqmp.dtsi
src/loongarch/loongson-2k0500-ref.dts
src/loongarch/loongson-2k0500.dtsi
src/loongarch/loongson-2k1000-ref.dts
src/loongarch/loongson-2k1000.dtsi
src/loongarch/loongson-2k2000-ref.dts
src/loongarch/loongson-2k2000.dtsi
src/mips/ralink/mt7621.dtsi
src/powerpc/acadia.dts
src/powerpc/fsl/b4si-post.dtsi
src/powerpc/fsl/bsc9131rdb.dts
src/powerpc/fsl/bsc9131si-post.dtsi
src/powerpc/fsl/bsc9132qds.dts
src/powerpc/fsl/bsc9132si-post.dtsi
src/powerpc/fsl/c293pcie.dts
src/powerpc/fsl/c293si-post.dtsi
src/powerpc/fsl/mpc8536si-post.dtsi
src/powerpc/fsl/mpc8544si-post.dtsi
src/powerpc/fsl/mpc8548si-post.dtsi
src/powerpc/fsl/mpc8572si-post.dtsi
src/powerpc/fsl/p1010rdb-pb.dts
src/powerpc/fsl/p1010rdb-pb_36b.dts
src/powerpc/fsl/p1010rdb.dtsi
src/powerpc/fsl/p1010rdb_32b.dtsi
src/powerpc/fsl/p1010rdb_36b.dtsi
src/powerpc/fsl/p1010si-post.dtsi
src/powerpc/fsl/p1020si-post.dtsi
src/powerpc/fsl/p1021si-post.dtsi
src/powerpc/fsl/p1022si-post.dtsi
src/powerpc/fsl/p2020si-post.dtsi
src/powerpc/fsl/pq3-power.dtsi [new file with mode: 0644]
src/powerpc/fsl/t1023si-post.dtsi
src/powerpc/fsl/t1024rdb.dts
src/powerpc/fsl/t1040rdb.dts
src/powerpc/fsl/t1040si-post.dtsi
src/powerpc/fsl/t1042rdb.dts
src/powerpc/fsl/t1042rdb_pi.dts
src/powerpc/fsl/t2081si-post.dtsi
src/powerpc/fsl/t4240si-post.dtsi
src/riscv/canaan/canaan_kd233.dts
src/riscv/canaan/k210.dtsi
src/riscv/canaan/k210_generic.dts
src/riscv/canaan/sipeed_maix_bit.dts
src/riscv/canaan/sipeed_maix_dock.dts
src/riscv/canaan/sipeed_maix_go.dts
src/riscv/canaan/sipeed_maixduino.dts
src/riscv/microchip/mpfs-icicle-kit.dts
src/riscv/renesas/r9a07g043f.dtsi
src/riscv/renesas/rzfive-smarc-som.dtsi
src/riscv/sophgo/cv1800b-milkv-duo.dts
src/riscv/sophgo/cv1800b.dtsi
src/riscv/sophgo/cv1812h.dtsi
src/riscv/sophgo/cv18xx.dtsi
src/riscv/starfive/jh7100.dtsi
src/riscv/starfive/jh7110-common.dtsi [new file with mode: 0644]
src/riscv/starfive/jh7110-milkv-mars.dts [new file with mode: 0644]
src/riscv/starfive/jh7110-starfive-visionfive-2.dtsi
src/riscv/starfive/jh7110.dtsi
src/riscv/thead/th1520.dtsi
src/sh/j2_mimas_v2.dts

index 5e08e3a6a97b108c8371668af468c395b3e41413..bf7d64632e20afb1ac98baf8563481d4e4481e96 100644 (file)
@@ -25,23 +25,25 @@ quiet_cmd_extract_ex = DTEX    $@
 $(obj)/%.example.dts: $(src)/%.yaml check_dtschema_version FORCE
        $(call if_changed,extract_ex)
 
-find_all_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
+find_all_cmd = find $(src) \( -name '*.yaml' ! \
                -name 'processed-schema*' \)
 
 find_cmd = $(find_all_cmd) | \
                sed 's|^$(srctree)/||' | \
                grep -F -e "$(subst :," -e ",$(DT_SCHEMA_FILES))" | \
                sed 's|^|$(srctree)/|'
-CHK_DT_DOCS := $(shell $(find_cmd))
+CHK_DT_EXAMPLES := $(patsubst $(srctree)/%.yaml,%.example.dtb, $(shell $(find_cmd)))
 
 quiet_cmd_yamllint = LINT    $(src)
       cmd_yamllint = ($(find_cmd) | \
                      xargs -n200 -P$$(nproc) \
-                    $(DT_SCHEMA_LINT) -f parsable -c $(srctree)/$(src)/.yamllint >&2) || true
+                    $(DT_SCHEMA_LINT) -f parsable -c $(src)/.yamllint >&2) \
+                    && touch $@ || true
 
-quiet_cmd_chk_bindings = CHKDT   $@
+quiet_cmd_chk_bindings = CHKDT   $(src)
       cmd_chk_bindings = ($(find_cmd) | \
-                         xargs -n200 -P$$(nproc) $(DT_DOC_CHECKER) -u $(srctree)/$(src)) || true
+                         xargs -n200 -P$$(nproc) $(DT_DOC_CHECKER) -u $(src)) \
+                         && touch $@ || true
 
 quiet_cmd_mk_schema = SCHEMA  $@
       cmd_mk_schema = f=$$(mktemp) ; \
@@ -49,12 +51,6 @@ quiet_cmd_mk_schema = SCHEMA  $@
                       $(DT_MK_SCHEMA) -j $(DT_MK_SCHEMA_FLAGS) @$$f > $@ ; \
                      rm -f $$f
 
-define rule_chkdt
-       $(if $(DT_SCHEMA_LINT),$(call cmd,yamllint),)
-       $(call cmd,chk_bindings)
-       $(call cmd,mk_schema)
-endef
-
 DT_DOCS = $(patsubst $(srctree)/%,%,$(shell $(find_all_cmd)))
 
 override DTC_FLAGS := \
@@ -64,12 +60,19 @@ override DTC_FLAGS := \
        -Wno-unique_unit_address \
        -Wunique_unit_address_if_enabled
 
-$(obj)/processed-schema.json: $(DT_DOCS) $(src)/.yamllint check_dtschema_version FORCE
-       $(call if_changed_rule,chkdt)
+$(obj)/processed-schema.json: $(DT_DOCS) check_dtschema_version FORCE
+       $(call if_changed,mk_schema)
+
+targets += .dt-binding.checked .yamllint.checked
+$(obj)/.yamllint.checked: $(DT_DOCS) $(src)/.yamllint FORCE
+       $(if $(DT_SCHEMA_LINT),$(call if_changed,yamllint),)
+
+$(obj)/.dt-binding.checked: $(DT_DOCS) FORCE
+       $(call if_changed,chk_bindings)
 
 always-y += processed-schema.json
-always-$(CHECK_DT_BINDING) += $(patsubst $(srctree)/$(src)/%.yaml,%.example.dts, $(CHK_DT_DOCS))
-always-$(CHECK_DT_BINDING) += $(patsubst $(srctree)/$(src)/%.yaml,%.example.dtb, $(CHK_DT_DOCS))
+targets += $(patsubst $(obj)/%,%, $(CHK_DT_EXAMPLES))
+targets += $(patsubst $(obj)/%.dtb,%.dts, $(CHK_DT_EXAMPLES))
 
 # Hack: avoid 'Argument list too long' error for 'make clean'. Remove most of
 # build artifacts here before they are processed by scripts/Makefile.clean
@@ -78,3 +81,6 @@ clean-files = $(shell find $(obj) \( -name '*.example.dts' -o \
 
 dt_compatible_check: $(obj)/processed-schema.json
        $(Q)$(srctree)/scripts/dtc/dt-extract-compatibles $(srctree) | xargs dt-check-compatible -v -s $<
+
+PHONY += dt_binding_check
+dt_binding_check: $(obj)/.dt-binding.checked $(obj)/.yamllint.checked $(CHK_DT_EXAMPLES)
diff --git a/Bindings/access-controllers/access-controllers.yaml b/Bindings/access-controllers/access-controllers.yaml
new file mode 100644 (file)
index 0000000..99e2865
--- /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/access-controllers/access-controllers.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic Domain Access Controllers
+
+maintainers:
+  - Oleksii Moisieiev <oleksii_moisieiev@epam.com>
+
+description: |+
+  Common access controllers properties
+
+  Access controllers are in charge of stating which of the hardware blocks under
+  their responsibility (their domain) can be accesssed by which compartment. A
+  compartment can be a cluster of CPUs (or coprocessors), a range of addresses
+  or a group of hardware blocks. An access controller's domain is the set of
+  resources covered by the access controller.
+
+  This device tree binding can be used to bind devices to their access
+  controller provided by access-controllers property. In this case, the device
+  is a consumer and the access controller is the provider.
+
+  An access controller can be represented by any node in the device tree and
+  can provide one or more configuration parameters, needed to control parameters
+  of the consumer device. A consumer node can refer to the provider by phandle
+  and a set of phandle arguments, specified by '#access-controller-cells'
+  property in the access controller node.
+
+  Access controllers are typically used to set/read the permissions of a
+  hardware block and grant access to it. Any of which depends on the access
+  controller. The capabilities of each access controller are defined by the
+  binding of the access controller device.
+
+  Each node can be a consumer for the several access controllers.
+
+# always select the core schema
+select: true
+
+properties:
+  "#access-controller-cells":
+    description:
+      Number of cells in an access-controllers specifier;
+      Can be any value as specified by device tree binding documentation
+      of a particular provider. The node is an access controller.
+
+  access-controller-names:
+    $ref: /schemas/types.yaml#/definitions/string-array
+    description:
+      A list of access-controllers names, sorted in the same order as
+      access-controllers entries. Consumer drivers will use
+      access-controller-names to match with existing access-controllers entries.
+
+  access-controllers:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    description:
+      A list of access controller specifiers, as defined by the
+      bindings of the access-controllers provider.
+
+additionalProperties: true
+
+examples:
+  - |
+    clock_controller: access-controllers@50000 {
+        reg = <0x50000 0x400>;
+        #access-controller-cells = <2>;
+    };
+
+    bus_controller: bus@60000 {
+        reg = <0x60000 0x10000>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges;
+        #access-controller-cells = <3>;
+
+        uart4: serial@60100 {
+            reg = <0x60100 0x400>;
+            clocks = <&clk_serial>;
+            access-controllers = <&clock_controller 1 2>,
+                                 <&bus_controller 1 3 5>;
+            access-controller-names = "clock", "bus";
+        };
+    };
diff --git a/Bindings/arm/altera/socfpga-sdram-controller.txt b/Bindings/arm/altera/socfpga-sdram-controller.txt
deleted file mode 100644 (file)
index 77ca635..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-Altera SOCFPGA SDRAM Controller
-
-Required properties:
-- compatible : Should contain "altr,sdr-ctl" and "syscon".
-  syscon is required by the Altera SOCFPGA SDRAM EDAC.
-- reg : Should contain 1 register range (address and length)
-
-Example:
-       sdr: sdr@ffc25000 {
-               compatible = "altr,sdr-ctl", "syscon";
-               reg = <0xffc25000 0x1000>;
-       };
index 949537cea6be23b281633fd4843682a79fcca40e..a374b98080feac99f0016f5a93eb3d26224002f0 100644 (file)
@@ -157,6 +157,7 @@ properties:
         items:
           - enum:
               - bananapi,bpi-cm4io
+              - mntre,reform2-cm4
           - const: bananapi,bpi-cm4
           - const: amlogic,a311d
           - const: amlogic,g12b
@@ -201,6 +202,18 @@ properties:
               - amlogic,ad402
           - const: amlogic,a1
 
+      - description: Boards with the Amlogic A4 A113L2 SoC
+        items:
+          - enum:
+              - amlogic,ba400
+          - const: amlogic,a4
+
+      - description: Boards with the Amlogic A5 A113X2 SoC
+        items:
+          - enum:
+              - amlogic,av400
+          - const: amlogic,a5
+
       - description: Boards with the Amlogic C3 C302X/C308L SoC
         items:
           - enum:
diff --git a/Bindings/arm/apm/scu.txt b/Bindings/arm/apm/scu.txt
deleted file mode 100644 (file)
index b45be06..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-APM X-GENE SoC series SCU Registers
-
-This system clock unit contain various register that control block resets,
-clock enable/disables, clock divisors and other deepsleep registers.
-
-Properties:
- - compatible : should contain two values. First value must be:
-                  - "apm,xgene-scu"
-               second value must be always "syscon".
-
- - reg : offset and length of the register set.
-
-Example :
-       scu: system-clk-controller@17000000 {
-               compatible = "apm,xgene-scu","syscon";
-               reg = <0x0 0x17000000 0x0 0x400>;
-       };
index 749ee54a3ff83aaf92f7f9f329f6e9e7ca86af9d..95113df178cc5569d86079e6c4d2e92501a470e0 100644 (file)
@@ -35,7 +35,10 @@ properties:
               - ampere,mtjade-bmc
               - aspeed,ast2500-evb
               - asrock,e3c246d4i-bmc
+              - asrock,e3c256d4i-bmc
               - asrock,romed8hm3-bmc
+              - asrock,spc621d8hm3-bmc
+              - asrock,x570d4u-bmc
               - bytedance,g220a-bmc
               - facebook,cmm-bmc
               - facebook,minipack-bmc
@@ -74,15 +77,18 @@ properties:
               - ampere,mtmitchell-bmc
               - aspeed,ast2600-evb
               - aspeed,ast2600-evb-a1
+              - asus,x4tf-bmc
               - facebook,bletchley-bmc
               - facebook,cloudripper-bmc
               - facebook,elbert-bmc
               - facebook,fuji-bmc
               - facebook,greatlakes-bmc
+              - facebook,harma-bmc
               - facebook,minerva-cmc
               - facebook,yosemite4-bmc
               - ibm,everest-bmc
               - ibm,rainier-bmc
+              - ibm,system1-bmc
               - ibm,tacoma-bmc
               - inventec,starscream-bmc
               - inventec,transformer-bmc
index 4cc4e67546819b2776b6a1d15e9d85f2f3b0c16f..d925e7a3b5ef992a8f4412f077612b3da460f616 100644 (file)
@@ -53,6 +53,7 @@ properties:
       - description: BCM4709 based boards
         items:
           - enum:
+              - asus,rt-ac3200
               - asus,rt-ac87u
               - buffalo,wxr-1900dhp
               - linksys,ea9200
@@ -67,6 +68,7 @@ properties:
         items:
           - enum:
               - asus,rt-ac3100
+              - asus,rt-ac5300
               - asus,rt-ac88u
               - dlink,dir-885l
               - dlink,dir-890l
index 39e3c248f5b7dd7769717ae2ce8c5684042a3363..1f84407a73e49fd6c5db051d281457cd453b658a 100644 (file)
@@ -46,6 +46,30 @@ properties:
       - compatible
       - "#clock-cells"
 
+  gpio:
+    type: object
+    additionalProperties: false
+
+    properties:
+      compatible:
+        const: raspberrypi,firmware-gpio
+
+      gpio-controller: true
+
+      "#gpio-cells":
+        const: 2
+        description:
+          The first cell is the pin number, and the second cell is used to
+          specify the gpio polarity (GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW).
+
+      gpio-line-names:
+        minItems: 8
+
+    required:
+      - compatible
+      - gpio-controller
+      - "#gpio-cells"
+
   reset:
     type: object
     additionalProperties: false
@@ -96,6 +120,12 @@ examples:
             #clock-cells = <1>;
         };
 
+        expgpio: gpio {
+            compatible = "raspberrypi,firmware-gpio";
+            gpio-controller;
+            #gpio-cells = <2>;
+        };
+
         reset: reset {
             compatible = "raspberrypi,firmware-reset";
             #reset-cells = <1>;
index 0027201e19f8b05f83970087eda4e3da9726e0d8..6d185d09cb6ae8e5893221fac3c058292ade86b8 100644 (file)
@@ -813,6 +813,14 @@ properties:
           - const: tq,imx6ull-tqma6ull2l      # MCIMX6Y2, LGA SoM variant
           - const: fsl,imx6ull
 
+      - description: Seeed Stuido i.MX6ULL SoM on dev boards
+        items:
+          - enum:
+              - seeed,imx6ull-seeed-npi-emmc
+              - seeed,imx6ull-seeed-npi-nand
+          - const: seeed,imx6ull-seeed-npi
+          - const: fsl,imx6ull
+
       - description: i.MX6ULZ based Boards
         items:
           - enum:
@@ -1050,6 +1058,7 @@ properties:
           - enum:
               - beacon,imx8mp-beacon-kit  # i.MX8MP Beacon Development Kit
               - dmo,imx8mp-data-modul-edm-sbc # i.MX8MP eDM SBC
+              - emcraft,imx8mp-navqp      # i.MX8MP Emcraft Systems NavQ+ Kit
               - fsl,imx8mp-evk            # i.MX8MP EVK Board
               - gateworks,imx8mp-gw71xx-2x # i.MX8MP Gateworks Board
               - gateworks,imx8mp-gw72xx-2x # i.MX8MP Gateworks Board
@@ -1218,7 +1227,6 @@ properties:
           - enum:
               - einfochips,imx8qxp-ai_ml  # i.MX8QXP AI_ML Board
               - fsl,imx8qxp-mek           # i.MX8QXP MEK Board
-              - toradex,colibri-imx8x     # Colibri iMX8X Modules
           - const: fsl,imx8qxp
 
       - description: i.MX8DXL based Boards
@@ -1227,7 +1235,7 @@ properties:
               - fsl,imx8dxl-evk           # i.MX8DXL EVK Board
           - const: fsl,imx8dxl
 
-      - description: i.MX8QXP Boards with Toradex Colibri iMX8X Modules
+      - description: i.MX8QXP/i.MX8DX Boards with Toradex Colibri iMX8X Modules
         items:
           - enum:
               - toradex,colibri-imx8x-aster   # Colibri iMX8X Module on Aster Board
@@ -1235,7 +1243,9 @@ properties:
               - toradex,colibri-imx8x-iris    # Colibri iMX8X Module on Iris Board
               - toradex,colibri-imx8x-iris-v2 # Colibri iMX8X Module on Iris Board V2
           - const: toradex,colibri-imx8x
-          - const: fsl,imx8qxp
+          - enum:
+              - fsl,imx8qxp
+              - fsl,imx8dx
 
       - description:
           TQMa8Xx is a series of SOM featuring NXP i.MX8X system-on-chip
@@ -1536,6 +1546,12 @@ properties:
               - nxp,s32g274a-rdb2
           - const: nxp,s32g2
 
+      - description: S32G3 based Boards
+        items:
+          - enum:
+              - nxp,s32g399a-rdb3
+          - const: nxp,s32g3
+
       - description: S32V234 based Boards
         items:
           - enum:
index c24ad0968f3ef17cb3cee3782d7550f261e0346e..7f06b10802449126990a0febd01037e2e03300d7 100644 (file)
@@ -61,10 +61,6 @@ properties:
   mboxes:
     minItems: 2
 
-  ti,system-reboot-controller:
-    description: Determines If system reboot can be triggered by SoC reboot
-    type: boolean
-
   ti,host-id:
     $ref: /schemas/types.yaml#/definitions/uint32
     description: |
@@ -94,7 +90,6 @@ examples:
   - |
     pmmc: system-controller@2921800 {
       compatible = "ti,k2g-sci";
-      ti,system-reboot-controller;
       mbox-names = "rx", "tx";
       mboxes = <&msgmgr 5 2>,
                <&msgmgr 0 0>;
diff --git a/Bindings/arm/marvell/armada-37xx.txt b/Bindings/arm/marvell/armada-37xx.txt
deleted file mode 100644 (file)
index 29fa93d..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-Power management
-----------------
-
-For power management (particularly DVFS and AVS), the North Bridge
-Power Management component is needed:
-
-Required properties:
-- compatible     : should contain "marvell,armada-3700-nb-pm", "syscon";
-- reg            : the register start and length for the North Bridge
-                   Power Management
-
-Example:
-
-nb_pm: syscon@14000 {
-       compatible = "marvell,armada-3700-nb-pm", "syscon";
-       reg = <0x14000 0x60>;
-}
-
-AVS
----
-
-For AVS an other component is needed:
-
-Required properties:
-- compatible     : should contain "marvell,armada-3700-avs", "syscon";
-- reg            : the register start and length for the AVS
-
-Example:
-avs: avs@11500 {
-       compatible = "marvell,armada-3700-avs", "syscon";
-       reg = <0x11500 0x40>;
-}
index ea3c5db6b52d2d8daedbd5b5b89fb11908c403d4..76163abed655a2ade451965b0181c340cf441565 100644 (file)
@@ -66,13 +66,11 @@ properties:
       - const: apb_pclk
 
   in-ports:
-    type: object
     description: |
       Input connections from TPDM to TPDA
     $ref: /schemas/graph.yaml#/properties/ports
 
   out-ports:
-    type: object
     description: |
       Output connections from the TPDA to legacy CoreSight trace bus.
     $ref: /schemas/graph.yaml#/properties/ports
@@ -97,33 +95,31 @@ examples:
   # minimum tpda definition.
   - |
     tpda@6004000 {
-       compatible = "qcom,coresight-tpda", "arm,primecell";
-       reg = <0x6004000 0x1000>;
+      compatible = "qcom,coresight-tpda", "arm,primecell";
+      reg = <0x6004000 0x1000>;
 
-       clocks = <&aoss_qmp>;
-       clock-names = "apb_pclk";
+      clocks = <&aoss_qmp>;
+      clock-names = "apb_pclk";
 
-       in-ports {
-         #address-cells = <1>;
-         #size-cells = <0>;
+      in-ports {
+        #address-cells = <1>;
+        #size-cells = <0>;
 
         port@0 {
           reg = <0>;
           tpda_qdss_0_in_tpdm_dcc: endpoint {
-            remote-endpoint =
-              <&tpdm_dcc_out_tpda_qdss_0>;
-            };
+            remote-endpoint = <&tpdm_dcc_out_tpda_qdss_0>;
+          };
         };
       };
 
-       out-ports {
-         port {
-                 tpda_qdss_out_funnel_in0: endpoint {
-                    remote-endpoint =
-                    <&funnel_in0_in_tpda_qdss>;
-                  };
+      out-ports {
+        port {
+          tpda_qdss_out_funnel_in0: endpoint {
+            remote-endpoint = <&funnel_in0_in_tpda_qdss>;
           };
-       };
+        };
+      };
     };
 
 ...
index 66beaac60e1dc4b1e23fe41badee1f7c01cf4405..ae885414b1811ee34e2b74a59716141347ad1a67 100644 (file)
@@ -137,6 +137,7 @@ properties:
               - microsoft,dempsey
               - microsoft,makepeace
               - microsoft,moneypenny
+              - motorola,falcon
               - samsung,s3ve3g
           - const: qcom,msm8226
 
@@ -184,13 +185,16 @@ properties:
               - oneplus,bacon
               - samsung,klte
               - sony,xperia-castor
+              - sony,xperia-leo
           - const: qcom,msm8974pro
           - const: qcom,msm8974
 
       - items:
-          - const: qcom,msm8916-mtp
-          - const: qcom,msm8916-mtp/1
-          - const: qcom,msm8916
+          - enum:
+              - samsung,kltechn
+          - const: samsung,klte
+          - const: qcom,msm8974pro
+          - const: qcom,msm8974
 
       - items:
           - enum:
@@ -200,6 +204,8 @@ properties:
               - gplus,fl8005a
               - huawei,g7
               - longcheer,l8910
+              - longcheer,l8150
+              - qcom,msm8916-mtp
               - samsung,a3u-eur
               - samsung,a5u-eur
               - samsung,e5
@@ -220,11 +226,6 @@ properties:
               - yiming,uz801-v3
           - const: qcom,msm8916
 
-      - items:
-          - const: longcheer,l8150
-          - const: qcom,msm8916-v1-qrd/9-v1
-          - const: qcom,msm8916
-
       - items:
           - enum:
               - motorola,potter
@@ -1003,6 +1004,7 @@ properties:
               - qcom,sm8550-hdk
               - qcom,sm8550-mtp
               - qcom,sm8550-qrd
+              - sony,pdx234
           - const: qcom,sm8550
 
       - items:
index fcf7316ecd74cdb9e34e8eca98e3a2a65b882e28..e04c213a0dee45c6feb7a81432c264fe75011e7b 100644 (file)
@@ -49,6 +49,11 @@ properties:
               - anbernic,rg-arc-s
           - const: rockchip,rk3566
 
+      - description: ArmSoM Sige7 board
+        items:
+          - const: armsom,sige7
+          - const: rockchip,rk3588
+
       - description: Asus Tinker board
         items:
           - const: asus,rk3288-tinker
@@ -198,6 +203,13 @@ properties:
           - const: firefly,rk3568-roc-pc
           - const: rockchip,rk3568
 
+      - description: Forlinx FET3588-C SoM
+        items:
+          - enum:
+              - forlinx,ok3588-c
+          - const: forlinx,fet3588-c
+          - const: rockchip,rk3588
+
       - description: FriendlyElec NanoPi R2 series boards
         items:
           - enum:
@@ -236,6 +248,11 @@ properties:
           - const: friendlyarm,nanopc-t6
           - const: rockchip,rk3588
 
+      - description: GameForce Chi
+        items:
+          - const: gameforce,chi
+          - const: rockchip,rk3326
+
       - description: GeekBuying GeekBox
         items:
           - const: geekbuying,geekbox
@@ -631,7 +648,7 @@ properties:
           - const: phytec,rk3288-phycore-som
           - const: rockchip,rk3288
 
-      - description: Pine64 PinebookPro
+      - description: Pine64 Pinebook Pro
         items:
           - const: pine64,pinebook-pro
           - const: rockchip,rk3399
@@ -644,7 +661,7 @@ properties:
           - const: pine64,pinenote
           - const: rockchip,rk3566
 
-      - description: Pine64 PinePhonePro
+      - description: Pine64 PinePhone Pro
         items:
           - const: pine64,pinephone-pro
           - const: rockchip,rk3399
@@ -682,7 +699,7 @@ properties:
           - const: pine64,quartzpro64
           - const: rockchip,rk3588
 
-      - description: Pine64 SoQuartz SoM
+      - description: Pine64 SOQuartz
         items:
           - enum:
               - pine64,soquartz-blade
@@ -700,12 +717,17 @@ properties:
               - powkiddy,x55
           - const: rockchip,rk3566
 
+      - description: Protonic MECSBC board
+        items:
+          - const: prt,mecsbc
+          - const: rockchip,rk3568
+
       - description: QNAP TS-433-4G 4-Bay NAS
         items:
           - const: qnap,ts433
           - const: rockchip,rk3568
 
-      - description: Radxa Compute Module 3(CM3)
+      - description: Radxa Compute Module 3 (CM3)
         items:
           - enum:
               - radxa,cm3-io
@@ -767,22 +789,27 @@ properties:
           - const: radxa,rockpis
           - const: rockchip,rk3308
 
-      - description: Radxa Rock2 Square
+      - description: Radxa Rock 2 Square
         items:
           - const: radxa,rock2-square
           - const: rockchip,rk3288
 
-      - description: Radxa ROCK3 Model A
+      - description: Radxa ROCK 3A
         items:
           - const: radxa,rock3a
           - const: rockchip,rk3568
 
-      - description: Radxa ROCK 5 Model A
+      - description: Radxa ROCK 3C
+        items:
+          - const: radxa,rock-3c
+          - const: rockchip,rk3566
+
+      - description: Radxa ROCK 5A
         items:
           - const: radxa,rock-5a
           - const: rockchip,rk3588s
 
-      - description: Radxa ROCK 5 Model B
+      - description: Radxa ROCK 5B
         items:
           - const: radxa,rock-5b
           - const: rockchip,rk3588
@@ -927,6 +954,11 @@ properties:
           - const: turing,rk1
           - const: rockchip,rk3588
 
+      - description: WolfVision PF5 mainboard
+        items:
+          - const: wolfvision,rk3568-pf5
+          - const: rockchip,rk3568
+
       - description: Xunlong Orange Pi 5 Plus
         items:
           - const: xunlong,orangepi-5-plus
index d2dce238ff5d683ea0ddbdf575f53677fe129a51..3e996346b2644806486757b1dd36bc4cb215a51e 100644 (file)
@@ -54,11 +54,10 @@ unevaluatedProperties: false
 
 examples:
   - |
-    mlahb: ahb@38000000 {
+    ahb {
       compatible = "st,mlahb", "simple-bus";
       #address-cells = <1>;
       #size-cells = <1>;
-      reg = <0x10000000 0x40000>;
       ranges;
       dma-ranges = <0x00000000 0x38000000 0x10000>,
                    <0x10000000 0x10000000 0x60000>,
index 09d835db6db57af63019633ece6f74b0b8d7d215..c2a158b75e4979eaf6fc148970cc08767f6de264 100644 (file)
@@ -56,6 +56,21 @@ properties:
           - const: anbernic,rg-nano
           - const: allwinner,sun8i-v3s
 
+      - description: Anbernic RG35XX (2024)
+        items:
+          - const: anbernic,rg35xx-2024
+          - const: allwinner,sun50i-h700
+
+      - description: Anbernic RG35XX Plus
+        items:
+          - const: anbernic,rg35xx-plus
+          - const: allwinner,sun50i-h700
+
+      - description: Anbernic RG35XX H
+        items:
+          - const: anbernic,rg35xx-h
+          - const: allwinner,sun50i-h700
+
       - description: Amarula A64 Relic
         items:
           - const: amarula,a64-relic
@@ -774,6 +789,11 @@ properties:
           - const: pocketbook,touch-lux-3
           - const: allwinner,sun5i-a13
 
+      - description: PocketBook 614 Plus
+        items:
+          - const: pocketbook,614-plus
+          - const: allwinner,sun5i-a13
+
       - description: Point of View Protab2-IPS9
         items:
           - const: pov,protab2-ips9
@@ -860,6 +880,11 @@ properties:
           - const: allwinner,sl631
           - const: allwinner,sun8i-v3
 
+      - description: Tanix TX1
+        items:
+          - const: oranth,tanix-tx1
+          - const: allwinner,sun50i-h616
+
       - description: Tanix TX6
         items:
           - const: oranth,tanix-tx6
diff --git a/Bindings/ata/ahci-da850.txt b/Bindings/ata/ahci-da850.txt
deleted file mode 100644 (file)
index 5f81934..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-Device tree binding for the TI DA850 AHCI SATA Controller
----------------------------------------------------------
-
-Required properties:
-  - compatible: must be "ti,da850-ahci"
-  - reg: physical base addresses and sizes of the two register regions
-         used by the controller: the register map as defined by the
-         AHCI 1.1 standard and the Power Down Control Register (PWRDN)
-         for enabling/disabling the SATA clock receiver
-  - interrupts: interrupt specifier (refer to the interrupt binding)
-
-Example:
-
-       sata: sata@218000 {
-               compatible = "ti,da850-ahci";
-               reg = <0x218000 0x2000>, <0x22c018 0x4>;
-               interrupts = <67>;
-       };
diff --git a/Bindings/ata/fsl,imx-pata.yaml b/Bindings/ata/fsl,imx-pata.yaml
new file mode 100644 (file)
index 0000000..324e241
--- /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/fsl,imx-pata.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale i.MX PATA Controller
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - fsl,imx31-pata
+              - fsl,imx51-pata
+          - const: fsl,imx27-pata
+      - const: fsl,imx27-pata
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: PATA Controller interrupts
+
+  clocks:
+    items:
+      - description: PATA Controller clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    pata: pata@83fe0000 {
+        compatible = "fsl,imx51-pata", "fsl,imx27-pata";
+        reg = <0x83fe0000 0x4000>;
+        interrupts = <70>;
+        clocks = <&clks 161>;
+    };
diff --git a/Bindings/ata/imx-pata.txt b/Bindings/ata/imx-pata.txt
deleted file mode 100644 (file)
index f1172f0..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-* Freescale i.MX PATA Controller
-
-Required properties:
-- compatible: "fsl,imx27-pata"
-- reg: Address range of the PATA Controller
-- interrupts: The interrupt of the PATA Controller
-- clocks: the clocks for the PATA Controller
-
-Example:
-
-       pata: pata@83fe0000 {
-               compatible = "fsl,imx51-pata", "fsl,imx27-pata";
-               reg = <0x83fe0000 0x4000>;
-               interrupts = <70>;
-               clocks = <&clks 161>;
-       };
diff --git a/Bindings/ata/ti,da850-ahci.yaml b/Bindings/ata/ti,da850-ahci.yaml
new file mode 100644 (file)
index 0000000..ce13c76
--- /dev/null
@@ -0,0 +1,39 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/ata/ti,da850-ahci.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI DA850 AHCI SATA Controller
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+properties:
+  compatible:
+    const: ti,da850-ahci
+
+  reg:
+    items:
+      - description: Address and size of the register map as defined by the AHCI 1.1 standard.
+      - description:
+          Address and size of Power Down Control Register (PWRDN) for enabling/disabling the SATA clock
+          receiver.
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    sata@218000 {
+        compatible = "ti,da850-ahci";
+        reg = <0x218000 0x2000>, <0x22c018 0x4>;
+        interrupts = <67>;
+    };
diff --git a/Bindings/bus/st,stm32-etzpc.yaml b/Bindings/bus/st,stm32-etzpc.yaml
new file mode 100644 (file)
index 0000000..d12b62a
--- /dev/null
@@ -0,0 +1,96 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bus/st,stm32-etzpc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STM32 Extended TrustZone protection controller
+
+description: |
+  The ETZPC configures TrustZone security in a SoC having bus masters and
+  devices with programmable-security attributes (securable resources).
+
+maintainers:
+  - Gatien Chevallier <gatien.chevallier@foss.st.com>
+
+select:
+  properties:
+    compatible:
+      contains:
+        const: st,stm32-etzpc
+  required:
+    - compatible
+
+properties:
+  compatible:
+    items:
+      - const: st,stm32-etzpc
+      - const: simple-bus
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  ranges: true
+
+  "#access-controller-cells":
+    const: 1
+    description:
+      Contains the firewall ID associated to the peripheral.
+
+patternProperties:
+  "^.*@[0-9a-f]+$":
+    description: Peripherals
+    type: object
+
+    additionalProperties: true
+
+    required:
+      - access-controllers
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+  - "#access-controller-cells"
+  - ranges
+
+additionalProperties: false
+
+examples:
+  - |
+    // In this example, the usart2 device refers to rifsc as its access
+    // controller.
+    // Access rights are verified before creating devices.
+
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/stm32mp13-clks.h>
+    #include <dt-bindings/reset/stm32mp13-resets.h>
+
+    etzpc: bus@5c007000 {
+        compatible = "st,stm32-etzpc", "simple-bus";
+        reg = <0x5c007000 0x400>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        #access-controller-cells = <1>;
+        ranges;
+
+        usart2: serial@4c001000 {
+            compatible = "st,stm32h7-uart";
+            reg = <0x4c001000 0x400>;
+            interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
+            clocks = <&rcc USART2_K>;
+            resets = <&rcc USART2_R>;
+            wakeup-source;
+            dmas = <&dmamux1 43 0x400 0x5>,
+                    <&dmamux1 44 0x400 0x1>;
+            dma-names = "rx", "tx";
+            access-controllers = <&etzpc 17>;
+        };
+    };
diff --git a/Bindings/bus/st,stm32mp25-rifsc.yaml b/Bindings/bus/st,stm32mp25-rifsc.yaml
new file mode 100644 (file)
index 0000000..20acd1a
--- /dev/null
@@ -0,0 +1,105 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bus/st,stm32mp25-rifsc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STM32 Resource isolation framework security controller
+
+maintainers:
+  - Gatien Chevallier <gatien.chevallier@foss.st.com>
+
+description: |
+  Resource isolation framework (RIF) is a comprehensive set of hardware blocks
+  designed to enforce and manage isolation of STM32 hardware resources like
+  memory and peripherals.
+
+  The RIFSC (RIF security controller) is composed of three sets of registers,
+  each managing a specific set of hardware resources:
+    - RISC registers associated with RISUP logic (resource isolation device unit
+      for peripherals), assign all non-RIF aware peripherals to zero, one or
+      any security domains (secure, privilege, compartment).
+    - RIMC registers: associated with RIMU logic (resource isolation master
+      unit), assign all non RIF-aware bus master to one security domain by
+      setting secure, privileged and compartment information on the system bus.
+      Alternatively, the RISUP logic controlling the device port access to a
+      peripheral can assign target bus attributes to this peripheral master port
+      (supported attribute: CID).
+    - RISC registers associated with RISAL logic (resource isolation device unit
+      for address space - Lite version), assign address space subregions to one
+      security domains (secure, privilege, compartment).
+
+select:
+  properties:
+    compatible:
+      contains:
+        const: st,stm32mp25-rifsc
+  required:
+    - compatible
+
+properties:
+  compatible:
+    items:
+      - const: st,stm32mp25-rifsc
+      - const: simple-bus
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  ranges: true
+
+  "#access-controller-cells":
+    const: 1
+    description:
+      Contains the firewall ID associated to the peripheral.
+
+patternProperties:
+  "^.*@[0-9a-f]+$":
+    description: Peripherals
+    type: object
+
+    additionalProperties: true
+
+    required:
+      - access-controllers
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+  - "#access-controller-cells"
+  - ranges
+
+additionalProperties: false
+
+examples:
+  - |
+    // In this example, the usart2 device refers to rifsc as its domain
+    // controller.
+    // Access rights are verified before creating devices.
+
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    rifsc: bus@42080000 {
+        compatible = "st,stm32mp25-rifsc", "simple-bus";
+        reg = <0x42080000 0x1000>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        #access-controller-cells = <1>;
+        ranges;
+
+        usart2: serial@400e0000 {
+              compatible = "st,stm32h7-uart";
+              reg = <0x400e0000 0x400>;
+              interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+              clocks = <&ck_flexgen_08>;
+              access-controllers = <&rifsc 32>;
+        };
+    };
index 07ccbda4a0ab5405f9fcd944a06a4bbd2f545d26..b9a9f2cf32a1b698d6e26304f2d6bcea2315d8ca 100644 (file)
@@ -66,7 +66,6 @@ allOf:
         compatible:
           contains:
             enum:
-              - qcom,qdu1000-llcc
               - qcom,sc7180-llcc
               - qcom,sm6350-llcc
     then:
@@ -104,6 +103,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,qdu1000-llcc
               - qcom,sc8180x-llcc
               - qcom,sc8280xp-llcc
               - qcom,x1e80100-llcc
index 79b0752faa9179eace055b92800a4cb337813de2..3f42666377332d8c589dd2c41bc54ab0ddf0912d 100644 (file)
@@ -29,10 +29,13 @@ description: |
 properties:
   compatible:
     items:
-      - const: airoha,en7523-scu
+      - enum:
+          - airoha,en7523-scu
+          - airoha,en7581-scu
 
   reg:
-    maxItems: 2
+    minItems: 2
+    maxItems: 3
 
   "#clock-cells":
     description:
@@ -45,6 +48,30 @@ required:
   - reg
   - '#clock-cells'
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          const: airoha,en7523-scu
+    then:
+      properties:
+        reg:
+          items:
+            - description: scu base address
+            - description: misc scu base address
+
+  - if:
+      properties:
+        compatible:
+          const: airoha,en7581-scu
+    then:
+      properties:
+        reg:
+          items:
+            - description: scu base address
+            - description: misc scu base address
+            - description: pb scu base address
+
 additionalProperties: false
 
 examples:
index b0a4fb8256e2ffd90deae3e949dd2553b17e3cbf..90fb1066068470943b09920f42176b7940b4a1c5 100644 (file)
@@ -11,6 +11,15 @@ maintainers:
   - Stephen Boyd <sboyd@kernel.org>
 
 properties:
+  $nodename:
+    anyOf:
+      - description:
+          Preferred name is 'clock-<freq>' with <freq> being the output
+          frequency as defined in the 'clock-frequency' property.
+        pattern: "^clock-([0-9]+|[a-z0-9-]+)$"
+      - description: Any name allowed
+        deprecated: true
+
   compatible:
     const: fixed-clock
 
index 8f71ab3004706a4ea60d18795a68509d8709c13d..4afdb1c98f5fb60eea1de255851a215198e36a23 100644 (file)
@@ -11,6 +11,15 @@ maintainers:
   - Stephen Boyd <sboyd@kernel.org>
 
 properties:
+  $nodename:
+    anyOf:
+      - description:
+          If the frequency is fixed, the preferred name is 'clock-<freq>' with
+          <freq> being the output frequency.
+        pattern: "^clock-([0-9]+|[0-9a-z-]+)$"
+      - description: Any name allowed
+        deprecated: true
+
   compatible:
     enum:
       - fixed-factor-clock
index 1d2bcea41c8588b0dbe10c6c870e3d75f09b220b..caf442ead24bda57e531420d8a7d8de8713032ae 100644 (file)
@@ -30,16 +30,18 @@ properties:
       - google,gs101-cmu-top
       - google,gs101-cmu-apm
       - google,gs101-cmu-misc
+      - google,gs101-cmu-hsi0
+      - google,gs101-cmu-hsi2
       - google,gs101-cmu-peric0
       - google,gs101-cmu-peric1
 
   clocks:
     minItems: 1
-    maxItems: 3
+    maxItems: 5
 
   clock-names:
     minItems: 1
-    maxItems: 3
+    maxItems: 5
 
   "#clock-cells":
     const: 1
@@ -72,6 +74,55 @@ allOf:
           items:
             - const: oscclk
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: google,gs101-cmu-hsi0
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (24.576 MHz)
+            - description: HSI0 bus clock (from CMU_TOP)
+            - description: DPGTC (from CMU_TOP)
+            - description: USB DRD controller clock (from CMU_TOP)
+            - description: USB Display Port debug clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: bus
+            - const: dpgtc
+            - const: usb31drd
+            - const: usbdpdbg
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - google,gs101-cmu-hsi2
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (24.576 MHz)
+            - description: High Speed Interface bus clock (from CMU_TOP)
+            - description: High Speed Interface pcie clock (from CMU_TOP)
+            - description: High Speed Interface ufs clock (from CMU_TOP)
+            - description: High Speed Interface mmc clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: bus
+            - const: pcie
+            - const: ufs
+            - const: mmc
+
   - if:
       properties:
         compatible:
index 63a59015987e489acee2233ff2f8f7cdc935e31a..4f79cdb417ab6397509901c4136b9e033815976d 100644 (file)
@@ -16,7 +16,9 @@ description: |
 properties:
   compatible:
     enum:
-      - loongson,ls2k-clk
+      - loongson,ls2k0500-clk
+      - loongson,ls2k-clk  # This is for Loongson-2K1000
+      - loongson,ls2k2000-clk
 
   reg:
     maxItems: 1
diff --git a/Bindings/clock/nxp,imx95-blk-ctl.yaml b/Bindings/clock/nxp,imx95-blk-ctl.yaml
new file mode 100644 (file)
index 0000000..2dffc02
--- /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/nxp,imx95-blk-ctl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP i.MX95 Block Control
+
+maintainers:
+  - Peng Fan <peng.fan@nxp.com>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - nxp,imx95-lvds-csr
+          - nxp,imx95-display-csr
+          - nxp,imx95-camera-csr
+          - nxp,imx95-vpu-csr
+      - const: syscon
+
+  reg:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+    description:
+      The clock consumer should specify the desired clock by having the clock
+      ID in its "clocks" phandle cell. See
+      include/dt-bindings/clock/nxp,imx95-clock.h
+
+required:
+  - compatible
+  - reg
+  - '#clock-cells'
+  - power-domains
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    syscon@4c410000 {
+      compatible = "nxp,imx95-vpu-csr", "syscon";
+      reg = <0x4c410000 0x10000>;
+      #clock-cells = <1>;
+      clocks = <&scmi_clk 114>;
+      power-domains = <&scmi_devpd 21>;
+    };
+...
diff --git a/Bindings/clock/nxp,imx95-display-master-csr.yaml b/Bindings/clock/nxp,imx95-display-master-csr.yaml
new file mode 100644 (file)
index 0000000..07f7412
--- /dev/null
@@ -0,0 +1,64 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/nxp,imx95-display-master-csr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP i.MX95 Display Master Block Control
+
+maintainers:
+  - Peng Fan <peng.fan@nxp.com>
+
+properties:
+  compatible:
+    items:
+      - const: nxp,imx95-display-master-csr
+      - const: syscon
+
+  reg:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+    description:
+      The clock consumer should specify the desired clock by having the clock
+      ID in its "clocks" phandle cell. See
+      include/dt-bindings/clock/nxp,imx95-clock.h
+
+  mux-controller:
+    type: object
+    $ref: /schemas/mux/reg-mux.yaml
+
+required:
+  - compatible
+  - reg
+  - '#clock-cells'
+  - mux-controller
+  - power-domains
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    syscon@4c410000 {
+      compatible = "nxp,imx95-display-master-csr", "syscon";
+      reg = <0x4c410000 0x10000>;
+      #clock-cells = <1>;
+      clocks = <&scmi_clk 62>;
+      power-domains = <&scmi_devpd 3>;
+
+      mux: mux-controller {
+        compatible = "mmio-mux";
+        #mux-control-cells = <1>;
+        mux-reg-masks = <0x4 0x00000001>; /* Pixel_link_sel */
+        idle-states = <0>;
+      };
+    };
+...
diff --git a/Bindings/clock/qcom,hfpll.txt b/Bindings/clock/qcom,hfpll.txt
deleted file mode 100644 (file)
index 5769cbb..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-High-Frequency PLL (HFPLL)
-
-PROPERTIES
-
-- compatible:
-       Usage: required
-       Value type: <string>:
-               shall contain only one of the following. The generic
-               compatible "qcom,hfpll" should be also included.
-
-                        "qcom,hfpll-ipq8064", "qcom,hfpll"
-                        "qcom,hfpll-apq8064", "qcom,hfpll"
-                        "qcom,hfpll-msm8974", "qcom,hfpll"
-                        "qcom,hfpll-msm8960", "qcom,hfpll"
-                        "qcom,msm8976-hfpll-a53", "qcom,hfpll"
-                        "qcom,msm8976-hfpll-a72", "qcom,hfpll"
-                        "qcom,msm8976-hfpll-cci", "qcom,hfpll"
-
-- reg:
-       Usage: required
-       Value type: <prop-encoded-array>
-       Definition: address and size of HPLL registers. An optional second
-                   element specifies the address and size of the alias
-                   register region.
-
-- clocks:
-       Usage: required
-       Value type: <prop-encoded-array>
-       Definition: reference to the xo clock.
-
-- clock-names:
-       Usage: required
-       Value type: <stringlist>
-       Definition: must be "xo".
-
-- clock-output-names:
-       Usage: required
-       Value type: <string>
-       Definition: Name of the PLL. Typically hfpllX where X is a CPU number
-                   starting at 0. Otherwise hfpll_Y where Y is more specific
-                   such as "l2".
-
-Example:
-
-1) An HFPLL for the L2 cache.
-
-       clock-controller@f9016000 {
-               compatible = "qcom,hfpll-ipq8064", "qcom,hfpll";
-               reg = <0xf9016000 0x30>;
-               clocks = <&xo_board>;
-               clock-names = "xo";
-               clock-output-names = "hfpll_l2";
-       };
-
-2) An HFPLL for CPU0. This HFPLL has the alias register region.
-
-       clock-controller@f908a000 {
-               compatible = "qcom,hfpll-ipq8064", "qcom,hfpll";
-               reg = <0xf908a000 0x30>, <0xf900a000 0x30>;
-               clocks = <&xo_board>;
-               clock-names = "xo";
-               clock-output-names = "hfpll0";
-       };
diff --git a/Bindings/clock/qcom,hfpll.yaml b/Bindings/clock/qcom,hfpll.yaml
new file mode 100644 (file)
index 0000000..8cb1c16
--- /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/clock/qcom,hfpll.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm High-Frequency PLL
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+
+description:
+  The HFPLL is used as CPU PLL on various Qualcomm SoCs.
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - qcom,msm8974-hfpll
+          - qcom,msm8976-hfpll-a53
+          - qcom,msm8976-hfpll-a72
+          - qcom,msm8976-hfpll-cci
+          - qcom,qcs404-hfpll
+      - const: qcom,hfpll
+        deprecated: true
+
+  reg:
+    items:
+      - description: HFPLL registers
+      - description: Alias register region
+    minItems: 1
+
+  '#clock-cells':
+    const: 0
+
+  clocks:
+    items:
+      - description: board XO clock
+
+  clock-names:
+    items:
+      - const: xo
+
+  clock-output-names:
+    description:
+      Name of the PLL. Typically hfpllX where X is a CPU number starting at 0.
+      Otherwise hfpll_Y where Y is more specific such as "l2".
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - '#clock-cells'
+  - clocks
+  - clock-names
+  - clock-output-names
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@f908a000 {
+        compatible = "qcom,msm8974-hfpll";
+        reg = <0xf908a000 0x30>, <0xf900a000 0x30>;
+        #clock-cells = <0>;
+        clock-output-names = "hfpll0";
+        clocks = <&xo_board>;
+        clock-names = "xo";
+    };
index 80a8c7114c31010b18bd5c734d61e6af3f8d0130..4e3b0c45124ae648ec75bbf092e9d645e727d417 100644 (file)
@@ -57,7 +57,8 @@ properties:
       can be power-managed through Module Standby should refer to the CPG device
       node in their "power-domains" property, as documented by the generic PM
       Domain bindings in Documentation/devicetree/bindings/power/power-domain.yaml.
-    const: 0
+      The power domain specifiers defined in <dt-bindings/clock/r9a0*-cpg.h> could
+      be used to reference individual CPG power domains.
 
   '#reset-cells':
     description:
@@ -76,6 +77,21 @@ required:
 
 additionalProperties: false
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a08g045-cpg
+    then:
+      properties:
+        '#power-domain-cells':
+          const: 1
+    else:
+      properties:
+        '#power-domain-cells':
+          const: 0
+
 examples:
   - |
     cpg: clock-controller@11010000 {
diff --git a/Bindings/clock/samsung,s3c6400-clock.yaml b/Bindings/clock/samsung,s3c6400-clock.yaml
new file mode 100644 (file)
index 0000000..0fcc0c9
--- /dev/null
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/samsung,s3c6400-clock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung S3C6400 SoC clock controller
+
+maintainers:
+  - Krzysztof Kozlowski <krzk@kernel.org>
+
+description: |
+  There are several clocks that are generated outside the SoC. It is expected
+  that they are defined using standard clock bindings with following
+  clock-output-names and/or provided as clock inputs to this clock controller:
+   - "fin_pll" - PLL input clock (xtal/extclk) - required,
+   - "xusbxti" - USB xtal - required,
+   - "iiscdclk0" - I2S0 codec clock - optional,
+   - "iiscdclk1" - I2S1 codec clock - optional,
+   - "iiscdclk2" - I2S2 codec clock - optional,
+   - "pcmcdclk0" - PCM0 codec clock - optional,
+   - "pcmcdclk1" - PCM1 codec clock - optional, only S3C6410.
+
+  All available clocks are defined as preprocessor macros in
+  include/dt-bindings/clock/samsung,s3c64xx-clock.h header.
+
+properties:
+  compatible:
+    enum:
+      - samsung,s3c6400-clock
+      - samsung,s3c6410-clock
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - "#clock-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@7e00f000 {
+        compatible = "samsung,s3c6410-clock";
+        reg = <0x7e00f000 0x1000>;
+        #clock-cells = <1>;
+        clocks = <&fin_pll>;
+    };
diff --git a/Bindings/clock/samsung,s3c64xx-clock.txt b/Bindings/clock/samsung,s3c64xx-clock.txt
deleted file mode 100644 (file)
index 872ee8e..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-* Samsung S3C64xx Clock Controller
-
-The S3C64xx clock controller generates and supplies clock to various controllers
-within the SoC. The clock binding described here is applicable to all SoCs in
-the S3C64xx family.
-
-Required Properties:
-
-- compatible: should be one of the following.
-  - "samsung,s3c6400-clock" - controller compatible with S3C6400 SoC.
-  - "samsung,s3c6410-clock" - controller compatible with S3C6410 SoC.
-
-- reg: physical base address of the controller and length of memory mapped
-  region.
-
-- #clock-cells: should be 1.
-
-Each clock is assigned an identifier and client nodes can use this identifier
-to specify the clock which they consume. Some of the clocks are available only
-on a particular S3C64xx SoC and this is specified where applicable.
-
-All available clocks are defined as preprocessor macros in
-dt-bindings/clock/samsung,s3c64xx-clock.h header and can be used in device
-tree sources.
-
-External clocks:
-
-There are several clocks that are generated outside the SoC. It is expected
-that they are defined using standard clock bindings with following
-clock-output-names:
- - "fin_pll" - PLL input clock (xtal/extclk) - required,
- - "xusbxti" - USB xtal - required,
- - "iiscdclk0" - I2S0 codec clock - optional,
- - "iiscdclk1" - I2S1 codec clock - optional,
- - "iiscdclk2" - I2S2 codec clock - optional,
- - "pcmcdclk0" - PCM0 codec clock - optional,
- - "pcmcdclk1" - PCM1 codec clock - optional, only S3C6410.
-
-Example: Clock controller node:
-
-       clock: clock-controller@7e00f000 {
-               compatible = "samsung,s3c6410-clock";
-               reg = <0x7e00f000 0x1000>;
-               #clock-cells = <1>;
-       };
-
-Example: Required external clocks:
-
-       fin_pll: clock-fin-pll {
-               compatible = "fixed-clock";
-               clock-output-names = "fin_pll";
-               clock-frequency = <12000000>;
-               #clock-cells = <0>;
-       };
-
-       xusbxti: clock-xusbxti {
-               compatible = "fixed-clock";
-               clock-output-names = "xusbxti";
-               clock-frequency = <48000000>;
-               #clock-cells = <0>;
-       };
-
-Example: UART controller node that consumes the clock generated by the clock
-  controller (refer to the standard clock bindings for information about
-  "clocks" and "clock-names" properties):
-
-               uart0: serial@7f005000 {
-                       compatible = "samsung,s3c6400-uart";
-                       reg = <0x7f005000 0x100>;
-                       interrupt-parent = <&vic1>;
-                       interrupts = <5>;
-                       clock-names = "uart", "clk_uart_baud2",
-                                       "clk_uart_baud3";
-                       clocks = <&clock PCLK_UART0>, <&clocks PCLK_UART0>,
-                                       <&clock SCLK_UART>;
-               };
index c1dc24673c0d76f21861ef72363c24ec4616e4aa..59ef41adb539bba315cf89071a94c6a174432a79 100644 (file)
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/clock/sophgo,cv1800-clk.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Sophgo CV1800 Series Clock Controller
+title: Sophgo CV1800/SG2000 Series Clock Controller
 
 maintainers:
   - Inochi Amaoto <inochiama@outlook.com>
@@ -14,6 +14,7 @@ properties:
     enum:
       - sophgo,cv1800-clk
       - sophgo,cv1810-clk
+      - sophgo,sg2000-clk
 
   reg:
     maxItems: 1
index 7732e79a42b905505636b0754042d19d37c3af19..88e52f10d1ecc68e818cd7d8cb1ca39dceb7a494 100644 (file)
@@ -38,14 +38,85 @@ properties:
       - description: CK_SCMI_MSI Low Power Internal oscillator (~ 4 MHz or ~ 16 MHz)
       - description: CK_SCMI_LSE Low Speed External oscillator (32 KHz)
       - description: CK_SCMI_LSI Low Speed Internal oscillator (~ 32 KHz)
+      - description: CK_SCMI_HSE_DIV2 CK_SCMI_HSE divided by 2 (coud be gated)
+      - description: CK_SCMI_ICN_HS_MCU High Speed interconnect bus clock
+      - description: CK_SCMI_ICN_LS_MCU Low Speed interconnect bus clock
+      - description: CK_SCMI_ICN_SDMMC SDMMC interconnect bus clock
+      - description: CK_SCMI_ICN_DDR DDR interconnect bus clock
+      - description: CK_SCMI_ICN_DISPLAY Display interconnect bus clock
+      - description: CK_SCMI_ICN_HSL HSL interconnect bus clock
+      - description: CK_SCMI_ICN_NIC NIC interconnect bus clock
+      - description: CK_SCMI_ICN_VID Video interconnect bus clock
+      - description: CK_SCMI_FLEXGEN_07 flexgen clock 7
+      - description: CK_SCMI_FLEXGEN_08 flexgen clock 8
+      - description: CK_SCMI_FLEXGEN_09 flexgen clock 9
+      - description: CK_SCMI_FLEXGEN_10 flexgen clock 10
+      - description: CK_SCMI_FLEXGEN_11 flexgen clock 11
+      - description: CK_SCMI_FLEXGEN_12 flexgen clock 12
+      - description: CK_SCMI_FLEXGEN_13 flexgen clock 13
+      - description: CK_SCMI_FLEXGEN_14 flexgen clock 14
+      - description: CK_SCMI_FLEXGEN_15 flexgen clock 15
+      - description: CK_SCMI_FLEXGEN_16 flexgen clock 16
+      - description: CK_SCMI_FLEXGEN_17 flexgen clock 17
+      - description: CK_SCMI_FLEXGEN_18 flexgen clock 18
+      - description: CK_SCMI_FLEXGEN_19 flexgen clock 19
+      - description: CK_SCMI_FLEXGEN_20 flexgen clock 20
+      - description: CK_SCMI_FLEXGEN_21 flexgen clock 21
+      - description: CK_SCMI_FLEXGEN_22 flexgen clock 22
+      - description: CK_SCMI_FLEXGEN_23 flexgen clock 23
+      - description: CK_SCMI_FLEXGEN_24 flexgen clock 24
+      - description: CK_SCMI_FLEXGEN_25 flexgen clock 25
+      - description: CK_SCMI_FLEXGEN_26 flexgen clock 26
+      - description: CK_SCMI_FLEXGEN_27 flexgen clock 27
+      - description: CK_SCMI_FLEXGEN_28 flexgen clock 28
+      - description: CK_SCMI_FLEXGEN_29 flexgen clock 29
+      - description: CK_SCMI_FLEXGEN_30 flexgen clock 30
+      - description: CK_SCMI_FLEXGEN_31 flexgen clock 31
+      - description: CK_SCMI_FLEXGEN_32 flexgen clock 32
+      - description: CK_SCMI_FLEXGEN_33 flexgen clock 33
+      - description: CK_SCMI_FLEXGEN_34 flexgen clock 34
+      - description: CK_SCMI_FLEXGEN_35 flexgen clock 35
+      - description: CK_SCMI_FLEXGEN_36 flexgen clock 36
+      - description: CK_SCMI_FLEXGEN_37 flexgen clock 37
+      - description: CK_SCMI_FLEXGEN_38 flexgen clock 38
+      - description: CK_SCMI_FLEXGEN_39 flexgen clock 39
+      - description: CK_SCMI_FLEXGEN_40 flexgen clock 40
+      - description: CK_SCMI_FLEXGEN_41 flexgen clock 41
+      - description: CK_SCMI_FLEXGEN_42 flexgen clock 42
+      - description: CK_SCMI_FLEXGEN_43 flexgen clock 43
+      - description: CK_SCMI_FLEXGEN_44 flexgen clock 44
+      - description: CK_SCMI_FLEXGEN_45 flexgen clock 45
+      - description: CK_SCMI_FLEXGEN_46 flexgen clock 46
+      - description: CK_SCMI_FLEXGEN_47 flexgen clock 47
+      - description: CK_SCMI_FLEXGEN_48 flexgen clock 48
+      - description: CK_SCMI_FLEXGEN_49 flexgen clock 49
+      - description: CK_SCMI_FLEXGEN_50 flexgen clock 50
+      - description: CK_SCMI_FLEXGEN_51 flexgen clock 51
+      - description: CK_SCMI_FLEXGEN_52 flexgen clock 52
+      - description: CK_SCMI_FLEXGEN_53 flexgen clock 53
+      - description: CK_SCMI_FLEXGEN_54 flexgen clock 54
+      - description: CK_SCMI_FLEXGEN_55 flexgen clock 55
+      - description: CK_SCMI_FLEXGEN_56 flexgen clock 56
+      - description: CK_SCMI_FLEXGEN_57 flexgen clock 57
+      - description: CK_SCMI_FLEXGEN_58 flexgen clock 58
+      - description: CK_SCMI_FLEXGEN_59 flexgen clock 59
+      - description: CK_SCMI_FLEXGEN_60 flexgen clock 60
+      - description: CK_SCMI_FLEXGEN_61 flexgen clock 61
+      - description: CK_SCMI_FLEXGEN_62 flexgen clock 62
+      - description: CK_SCMI_FLEXGEN_63 flexgen clock 63
+      - description: CK_SCMI_ICN_APB1 Peripheral bridge 1
+      - description: CK_SCMI_ICN_APB2 Peripheral bridge 2
+      - description: CK_SCMI_ICN_APB3 Peripheral bridge 3
+      - description: CK_SCMI_ICN_APB4 Peripheral bridge 4
+      - description: CK_SCMI_ICN_APBDBG Peripheral bridge for degub
+      - description: CK_SCMI_TIMG1 Peripheral bridge for timer1
+      - description: CK_SCMI_TIMG2 Peripheral bridge for timer2
+      - description: CK_SCMI_PLL3 PLL3 clock
+      - description: clk_dsi_txbyte DSI byte clock
 
-  clock-names:
-    items:
-      - const: hse
-      - const: hsi
-      - const: msi
-      - const: lse
-      - const: lsi
+  access-controllers:
+    minItems: 1
+    maxItems: 2
 
 required:
   - compatible
@@ -53,7 +124,6 @@ required:
   - '#clock-cells'
   - '#reset-cells'
   - clocks
-  - clock-names
 
 additionalProperties: false
 
@@ -66,11 +136,85 @@ examples:
         reg = <0x44200000 0x10000>;
         #clock-cells = <1>;
         #reset-cells = <1>;
-        clock-names = "hse", "hsi", "msi", "lse", "lsi";
-        clocks = <&scmi_clk CK_SCMI_HSE>,
-                 <&scmi_clk CK_SCMI_HSI>,
-                 <&scmi_clk CK_SCMI_MSI>,
-                 <&scmi_clk CK_SCMI_LSE>,
-                 <&scmi_clk CK_SCMI_LSI>;
+        clocks =  <&scmi_clk CK_SCMI_HSE>,
+                  <&scmi_clk CK_SCMI_HSI>,
+                  <&scmi_clk CK_SCMI_MSI>,
+                  <&scmi_clk CK_SCMI_LSE>,
+                  <&scmi_clk CK_SCMI_LSI>,
+                  <&scmi_clk CK_SCMI_HSE_DIV2>,
+                  <&scmi_clk CK_SCMI_ICN_HS_MCU>,
+                  <&scmi_clk CK_SCMI_ICN_LS_MCU>,
+                  <&scmi_clk CK_SCMI_ICN_SDMMC>,
+                  <&scmi_clk CK_SCMI_ICN_DDR>,
+                  <&scmi_clk CK_SCMI_ICN_DISPLAY>,
+                  <&scmi_clk CK_SCMI_ICN_HSL>,
+                  <&scmi_clk CK_SCMI_ICN_NIC>,
+                  <&scmi_clk CK_SCMI_ICN_VID>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_07>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_08>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_09>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_10>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_11>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_12>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_13>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_14>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_15>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_16>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_17>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_18>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_19>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_20>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_21>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_22>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_23>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_24>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_25>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_26>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_27>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_28>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_29>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_30>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_31>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_32>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_33>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_34>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_35>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_36>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_37>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_38>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_39>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_40>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_41>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_42>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_43>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_44>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_45>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_46>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_47>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_48>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_49>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_50>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_51>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_52>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_53>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_54>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_55>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_56>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_57>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_58>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_59>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_60>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_61>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_62>,
+                  <&scmi_clk CK_SCMI_FLEXGEN_63>,
+                  <&scmi_clk CK_SCMI_ICN_APB1>,
+                  <&scmi_clk CK_SCMI_ICN_APB2>,
+                  <&scmi_clk CK_SCMI_ICN_APB3>,
+                  <&scmi_clk CK_SCMI_ICN_APB4>,
+                  <&scmi_clk CK_SCMI_ICN_APBDBG>,
+                  <&scmi_clk CK_SCMI_TIMG1>,
+                  <&scmi_clk CK_SCMI_TIMG2>,
+                  <&scmi_clk CK_SCMI_PLL3>,
+                  <&clk_dsi_txbyte>;
     };
 ...
index 56fc71d6a081e2efef3065fdce329411b873c803..1e9797f964108f79ae51bd80c99c18883f5e6b8a 100644 (file)
@@ -38,6 +38,7 @@ properties:
               - qcom,sc7280-cpufreq-epss
               - qcom,sc8280xp-cpufreq-epss
               - qcom,sdx75-cpufreq-epss
+              - qcom,sm4450-cpufreq-epss
               - qcom,sm6375-cpufreq-epss
               - qcom,sm8250-cpufreq-epss
               - qcom,sm8350-cpufreq-epss
@@ -133,6 +134,7 @@ allOf:
               - qcom,sc8280xp-cpufreq-epss
               - qcom,sdm670-cpufreq-hw
               - qcom,sdm845-cpufreq-hw
+              - qcom,sm4450-cpufreq-epss
               - qcom,sm6115-cpufreq-hw
               - qcom,sm6350-cpufreq-hw
               - qcom,sm6375-cpufreq-epss
diff --git a/Bindings/crypto/nvidia,tegra234-se-aes.yaml b/Bindings/crypto/nvidia,tegra234-se-aes.yaml
new file mode 100644 (file)
index 0000000..cb47ae2
--- /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/crypto/nvidia,tegra234-se-aes.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra Security Engine for AES algorithms
+
+description:
+  The Tegra Security Engine accelerates the following AES encryption/decryption
+  algorithms - AES-ECB, AES-CBC, AES-OFB, AES-XTS, AES-CTR, AES-GCM, AES-CCM,
+  AES-CMAC
+
+maintainers:
+  - Akhil R <akhilrajeev@nvidia.com>
+
+properties:
+  compatible:
+    const: nvidia,tegra234-se-aes
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  iommus:
+    maxItems: 1
+
+  dma-coherent: true
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - iommus
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/memory/tegra234-mc.h>
+    #include <dt-bindings/clock/tegra234-clock.h>
+
+    crypto@15820000 {
+        compatible = "nvidia,tegra234-se-aes";
+        reg = <0x15820000 0x10000>;
+        clocks = <&bpmp TEGRA234_CLK_SE>;
+        iommus = <&smmu TEGRA234_SID_SES_SE1>;
+        dma-coherent;
+    };
+...
diff --git a/Bindings/crypto/nvidia,tegra234-se-hash.yaml b/Bindings/crypto/nvidia,tegra234-se-hash.yaml
new file mode 100644 (file)
index 0000000..f57ef10
--- /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/crypto/nvidia,tegra234-se-hash.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra Security Engine for HASH algorithms
+
+description:
+  The Tegra Security HASH Engine accelerates the following HASH functions -
+  SHA1, SHA224, SHA256, SHA384, SHA512, SHA3-224, SHA3-256, SHA3-384, SHA3-512
+  HMAC(SHA224), HMAC(SHA256), HMAC(SHA384), HMAC(SHA512)
+
+maintainers:
+  - Akhil R <akhilrajeev@nvidia.com>
+
+properties:
+  compatible:
+    const: nvidia,tegra234-se-hash
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  iommus:
+    maxItems: 1
+
+  dma-coherent: true
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - iommus
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/memory/tegra234-mc.h>
+    #include <dt-bindings/clock/tegra234-clock.h>
+
+    crypto@15840000 {
+        compatible = "nvidia,tegra234-se-hash";
+        reg = <0x15840000 0x10000>;
+        clocks = <&bpmp TEGRA234_CLK_SE>;
+        iommus = <&smmu TEGRA234_SID_SES_SE2>;
+        dma-coherent;
+    };
+...
diff --git a/Bindings/crypto/omap-sham.txt b/Bindings/crypto/omap-sham.txt
deleted file mode 100644 (file)
index ad91155..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-OMAP SoC SHA crypto Module
-
-Required properties:
-
-- compatible : Should contain entries for this and backward compatible
-  SHAM versions:
-  - "ti,omap2-sham" for OMAP2 & OMAP3.
-  - "ti,omap4-sham" for OMAP4 and AM33XX.
-  - "ti,omap5-sham" for OMAP5, DRA7 and AM43XX.
-- ti,hwmods: Name of the hwmod associated with the SHAM module
-- reg : Offset and length of the register set for the module
-- interrupts : the interrupt-specifier for the SHAM module.
-
-Optional properties:
-- dmas: DMA specifiers for the rx dma. See the DMA client binding,
-       Documentation/devicetree/bindings/dma/dma.txt
-- dma-names: DMA request name. Should be "rx" if a dma is present.
-
-Example:
-       /* AM335x */
-       sham: sham@53100000 {
-               compatible = "ti,omap4-sham";
-               ti,hwmods = "sham";
-               reg = <0x53100000 0x200>;
-               interrupts = <109>;
-               dmas = <&edma 36>;
-               dma-names = "rx";
-       };
index e91bc7dc6ad3d74efe3f1e736ff2a956314619ba..0304f074cf08506660b5625ab80e212553336f1b 100644 (file)
@@ -15,6 +15,7 @@ properties:
       - enum:
           - qcom,sa8775p-inline-crypto-engine
           - qcom,sc7180-inline-crypto-engine
+          - qcom,sc7280-inline-crypto-engine
           - qcom,sm8450-inline-crypto-engine
           - qcom,sm8550-inline-crypto-engine
           - qcom,sm8650-inline-crypto-engine
index 0ddeb8a9a7a018bda6769f03e05f6373a348e8ae..27354658d05448c1559e5db67b842f2dae90df3d 100644 (file)
@@ -46,6 +46,10 @@ properties:
   power-domains:
     maxItems: 1
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
index ac480765cde061f497f7da77218f4b55b5f05a35..82231841409521c230a290a65b14088890d6ad41 100644 (file)
@@ -51,6 +51,10 @@ properties:
   power-domains:
     maxItems: 1
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
index 71a2876bd6e491d10ede14cb9d17f96307c85b7b..7ccb6e1641d07fb9e15813c8a4283b18037d312f 100644 (file)
@@ -12,7 +12,9 @@ maintainers:
 
 properties:
   compatible:
-    const: starfive,jh7110-crypto
+    enum:
+      - starfive,jh7110-crypto
+      - starfive,jh8100-crypto
 
   reg:
     maxItems: 1
@@ -28,7 +30,10 @@ properties:
       - const: ahb
 
   interrupts:
-    maxItems: 1
+    minItems: 1
+    items:
+      - description: SHA2 module irq
+      - description: SM3 module irq
 
   resets:
     maxItems: 1
@@ -54,6 +59,27 @@ required:
 
 additionalProperties: false
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          const: starfive,jh7110-crypto
+
+    then:
+      properties:
+        interrupts:
+          maxItems: 1
+
+  - if:
+      properties:
+        compatible:
+          const: starfive,jh8100-crypto
+
+    then:
+      properties:
+        interrupts:
+          minItems: 2
+
 examples:
   - |
     crypto: crypto@16000000 {
diff --git a/Bindings/crypto/ti,omap-sham.yaml b/Bindings/crypto/ti,omap-sham.yaml
new file mode 100644 (file)
index 0000000..d69b502
--- /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/crypto/ti,omap-sham.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: OMAP SoC SHA crypto Module
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+properties:
+  compatible:
+    enum:
+      - ti,omap2-sham
+      - ti,omap4-sham
+      - ti,omap5-sham
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  dmas:
+    maxItems: 1
+
+  dma-names:
+    const: rx
+
+  ti,hwmods:
+    description: Name of the hwmod associated with the SHAM module
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [sham]
+
+dependencies:
+  dmas: [dma-names]
+
+additionalProperties: false
+
+required:
+  - compatible
+  - ti,hwmods
+  - reg
+  - interrupts
+
+examples:
+  - |
+    sham@53100000 {
+        compatible = "ti,omap4-sham";
+        ti,hwmods = "sham";
+        reg = <0x53100000 0x200>;
+        interrupts = <109>;
+        dmas = <&edma 36>;
+        dma-names = "rx";
+    };
diff --git a/Bindings/display/atmel,lcdc-display.yaml b/Bindings/display/atmel,lcdc-display.yaml
new file mode 100644 (file)
index 0000000..a5cf040
--- /dev/null
@@ -0,0 +1,103 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/atmel,lcdc-display.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip's LCDC Display
+
+maintainers:
+  - Nicolas Ferre <nicolas.ferre@microchip.com>
+  - Dharma Balasubiramani <dharma.b@microchip.com>
+
+description:
+  The LCD Controller (LCDC) consists of logic for transferring LCD image data
+  from an external display buffer to a TFT LCD panel. The LCDC has one display
+  input buffer per layer that fetches pixels through the single bus host
+  interface and a look-up table to allow palletized display configurations. The
+  LCDC is programmable on a per layer basis, and supports different LCD
+  resolutions, window sizes, image formats and pixel depths.
+
+# We need a select here since this schema is applicable only for nodes with the
+# following properties
+
+select:
+  anyOf:
+    - required: [ 'atmel,dmacon' ]
+    - required: [ 'atmel,lcdcon2' ]
+    - required: [ 'atmel,guard-time' ]
+
+properties:
+  atmel,dmacon:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: dma controller configuration
+
+  atmel,lcdcon2:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: lcd controller configuration
+
+  atmel,guard-time:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: lcd guard time (Delay in frame periods)
+    maximum: 127
+
+  bits-per-pixel:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: lcd panel bit-depth.
+    enum: [1, 2, 4, 8, 16, 24, 32]
+
+  atmel,lcdcon-backlight:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: enable backlight
+
+  atmel,lcdcon-backlight-inverted:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: invert backlight PWM polarity
+
+  atmel,lcd-wiring-mode:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: lcd wiring mode "RGB" or "BRG"
+    enum:
+      - RGB
+      - BRG
+
+  atmel,power-control-gpio:
+    description: gpio to power on or off the LCD (as many as needed)
+    maxItems: 1
+
+  display-timings:
+    $ref: panel/display-timings.yaml#
+
+required:
+  - atmel,dmacon
+  - atmel,lcdcon2
+  - atmel,guard-time
+  - bits-per-pixel
+
+additionalProperties: false
+
+examples:
+  - |
+    display: panel {
+      bits-per-pixel = <32>;
+      atmel,lcdcon-backlight;
+      atmel,dmacon = <0x1>;
+      atmel,lcdcon2 = <0x80008002>;
+      atmel,guard-time = <9>;
+      atmel,lcd-wiring-mode = "RGB";
+
+      display-timings {
+        native-mode = <&timing0>;
+        timing0: timing0 {
+          clock-frequency = <9000000>;
+          hactive = <480>;
+          vactive = <272>;
+          hback-porch = <1>;
+          hfront-porch = <1>;
+          vback-porch = <40>;
+          vfront-porch = <1>;
+          hsync-len = <45>;
+          vsync-len = <1>;
+        };
+      };
+    };
diff --git a/Bindings/display/atmel,lcdc.txt b/Bindings/display/atmel,lcdc.txt
deleted file mode 100644 (file)
index b5e355a..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-Atmel LCDC Framebuffer
------------------------------------------------------
-
-Required properties:
-- compatible :
-       "atmel,at91sam9261-lcdc" , 
-       "atmel,at91sam9263-lcdc" ,
-       "atmel,at91sam9g10-lcdc" ,
-       "atmel,at91sam9g45-lcdc" ,
-       "atmel,at91sam9g45es-lcdc" ,
-       "atmel,at91sam9rl-lcdc" ,
-- reg : Should contain 1 register ranges(address and length).
-       Can contain an additional register range(address and length)
-       for fixed framebuffer memory. Useful for dedicated memories.
-- interrupts : framebuffer controller interrupt
-- display: a phandle pointing to the display node
-
-Required nodes:
-- display: a display node is required to initialize the lcd panel
-       This should be in the board dts.
-- default-mode: a videomode within the display with timing parameters
-       as specified below.
-
-Optional properties:
-- lcd-supply: Regulator for LCD supply voltage.
-
-Example:
-
-       fb0: fb@00500000 {
-               compatible = "atmel,at91sam9g45-lcdc";
-               reg = <0x00500000 0x1000>;
-               interrupts = <23 3 0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_fb>;
-               display = <&display0>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-       };
-
-Example for fixed framebuffer memory:
-
-       fb0: fb@00500000 {
-               compatible = "atmel,at91sam9263-lcdc";
-               reg = <0x00700000 0x1000 0x70000000 0x200000>;
-               [...]
-       };
-
-Atmel LCDC Display
------------------------------------------------------
-Required properties (as per of_videomode_helper):
-
- - atmel,dmacon: dma controller configuration
- - atmel,lcdcon2: lcd controller configuration
- - atmel,guard-time: lcd guard time (Delay in frame periods)
- - bits-per-pixel: lcd panel bit-depth.
-
-Optional properties (as per of_videomode_helper):
- - atmel,lcdcon-backlight: enable backlight
- - atmel,lcdcon-backlight-inverted: invert backlight PWM polarity
- - atmel,lcd-wiring-mode: lcd wiring mode "RGB" or "BRG"
- - atmel,power-control-gpio: gpio to power on or off the LCD (as many as needed)
-
-Example:
-       display0: display {
-               bits-per-pixel = <32>;
-               atmel,lcdcon-backlight;
-               atmel,dmacon = <0x1>;
-               atmel,lcdcon2 = <0x80008002>;
-               atmel,guard-time = <9>;
-               atmel,lcd-wiring-mode = <1>;
-
-               display-timings {
-                       native-mode = <&timing0>;
-                       timing0: timing0 {
-                               clock-frequency = <9000000>;
-                               hactive = <480>;
-                               vactive = <272>;
-                               hback-porch = <1>;
-                               hfront-porch = <1>;
-                               vback-porch = <40>;
-                               vfront-porch = <1>;
-                               hsync-len = <45>;
-                               vsync-len = <1>;
-                       };
-               };
-       };
diff --git a/Bindings/display/atmel,lcdc.yaml b/Bindings/display/atmel,lcdc.yaml
new file mode 100644 (file)
index 0000000..1b6f7e3
--- /dev/null
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/atmel,lcdc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip's LCDC Framebuffer
+
+maintainers:
+  - Nicolas Ferre <nicolas.ferre@microchip.com>
+  - Dharma Balasubiramani <dharma.b@microchip.com>
+
+description:
+  The LCDC works with a framebuffer, which is a section of memory that contains
+  a complete frame of data representing pixel values for the display. The LCDC
+  reads the pixel data from the framebuffer and sends it to the LCD panel to
+  render the image.
+
+properties:
+  compatible:
+    enum:
+      - atmel,at91sam9261-lcdc
+      - atmel,at91sam9263-lcdc
+      - atmel,at91sam9g10-lcdc
+      - atmel,at91sam9g45-lcdc
+      - atmel,at91sam9g45es-lcdc
+      - atmel,at91sam9rl-lcdc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 2
+
+  clock-names:
+    items:
+      - const: hclk
+      - const: lcdc_clk
+
+  display:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: A phandle pointing to the display node.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+  - display
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/at91.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    fb@500000 {
+      compatible = "atmel,at91sam9g45-lcdc";
+      reg = <0x00500000 0x1000>;
+      interrupts = <23 IRQ_TYPE_LEVEL_HIGH 0>;
+      pinctrl-names = "default";
+      pinctrl-0 = <&pinctrl_fb>;
+      clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, <&pmc PMC_TYPE_PERIPHERAL 23>;
+      clock-names = "hclk", "lcdc_clk";
+      display = <&display>;
+    };
index c9a882ee6d98f21516b5a061b41c7358c2ac0a79..c4469f4639783cbf2d56bb39c1702ca3b9f92801 100644 (file)
@@ -9,6 +9,9 @@ title: ITE it6505
 maintainers:
   - Allen Chen <allen.chen@ite.com.tw>
 
+allOf:
+  - $ref: /schemas/sound/dai-common.yaml#
+
 description: |
   The IT6505 is a high-performance DisplayPort 1.1a transmitter,
   fully compliant with DisplayPort 1.1a, HDCP 1.3 specifications.
@@ -52,6 +55,9 @@ properties:
     maxItems: 1
     description: extcon specifier for the Power Delivery
 
+  "#sound-dai-cells":
+    const: 0
+
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
 
@@ -105,7 +111,7 @@ required:
   - extcon
   - ports
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 84aafcbf09190a33e852bcff7c542125b7b1743c..6ceeed76e88ece6d86ecd6588ead7a65362dfe62 100644 (file)
@@ -41,6 +41,7 @@ properties:
           - enum:
               - ti,ds90cf364a # For the DS90CF364A FPD-Link LVDS Receiver
               - ti,ds90cf384a # For the DS90CF384A FPD-Link LVDS Receiver
+              - ti,sn65lvds94 # For the SN65DS94 LVDS serdes
           - const: lvds-decoder # Generic LVDS decoders compatible fallback
       - enum:
           - thine,thc63lvdm83d # For the THC63LVDM83D LVDS serializer
diff --git a/Bindings/display/bridge/microchip,sam9x75-lvds.yaml b/Bindings/display/bridge/microchip,sam9x75-lvds.yaml
new file mode 100644 (file)
index 0000000..862ef44
--- /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/display/bridge/microchip,sam9x75-lvds.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip SAM9X75 LVDS Controller
+
+maintainers:
+  - Dharma Balasubiramani <dharma.b@microchip.com>
+
+description:
+  The Low Voltage Differential Signaling Controller (LVDSC) manages data
+  format conversion from the LCD Controller internal DPI bus to OpenLDI
+  LVDS output signals. LVDSC functions include bit mapping, balanced mode
+  management, and serializer.
+
+properties:
+  compatible:
+    const: microchip,sam9x75-lvds
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Peripheral Bus Clock
+
+  clock-names:
+    items:
+      - const: pclk
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/clock/at91.h>
+    lvds-controller@f8060000 {
+      compatible = "microchip,sam9x75-lvds";
+      reg = <0xf8060000 0x100>;
+      interrupts = <56 IRQ_TYPE_LEVEL_HIGH 0>;
+      clocks = <&pmc PMC_TYPE_PERIPHERAL 56>;
+      clock-names = "pclk";
+    };
index d879c700594a6e08cdc0fd720440ae5d45d21425..258dd9cfd7709c629e1eb2b75434b41ad870a3e1 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Vinay Simha BN <simhavcs@gmail.com>
 
 description: |
-  This binding supports DSI to LVDS bridge TC358775
+  This binding supports DSI to LVDS bridges TC358765 and TC358775
 
   MIPI DSI-RX Data 4-lane, CLK 1-lane with data rates up to 800 Mbps/lane.
   Video frame size:
@@ -21,7 +21,9 @@ description: |
 
 properties:
   compatible:
-    const: toshiba,tc358775
+    enum:
+      - toshiba,tc358765
+      - toshiba,tc358775
 
   reg:
     maxItems: 1
@@ -46,11 +48,27 @@ properties:
 
     properties:
       port@0:
-        $ref: /schemas/graph.yaml#/properties/port
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
         description: |
           DSI Input. The remote endpoint phandle should be a
           reference to a valid mipi_dsi_host device node.
 
+        properties:
+          endpoint:
+            $ref: /schemas/media/video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              data-lanes:
+                description: array of physical DSI data lane indexes.
+                minItems: 1
+                items:
+                  - const: 1
+                  - const: 2
+                  - const: 3
+                  - const: 4
+
       port@1:
         $ref: /schemas/graph.yaml#/properties/port
         description: |
@@ -70,10 +88,19 @@ required:
   - reg
   - vdd-supply
   - vddio-supply
-  - stby-gpios
   - reset-gpios
   - ports
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: toshiba,tc358765
+    then:
+      properties:
+        stby-gpios: false
+
 additionalProperties: false
 
 examples:
@@ -108,6 +135,7 @@ examples:
                     reg = <0>;
                     d2l_in_test: endpoint {
                         remote-endpoint = <&dsi0_out>;
+                        data-lanes = <1 2 3 4>;
                     };
                 };
 
@@ -132,7 +160,6 @@ examples:
                 reg = <1>;
                 dsi0_out: endpoint {
                     remote-endpoint = <&d2l_in_test>;
-                    data-lanes = <0 1 2 3>;
                 };
              };
          };
@@ -167,6 +194,7 @@ examples:
                     reg = <0>;
                     d2l_in_dual: endpoint {
                         remote-endpoint = <&dsi0_out_dual>;
+                        data-lanes = <1 2 3 4>;
                     };
                 };
 
@@ -198,7 +226,6 @@ examples:
                 reg = <1>;
                 dsi0_out_dual: endpoint {
                     remote-endpoint = <&d2l_in_dual>;
-                    data-lanes = <0 1 2 3>;
                 };
              };
          };
diff --git a/Bindings/display/exynos/exynos_dp.txt b/Bindings/display/exynos/exynos_dp.txt
deleted file mode 100644 (file)
index 3a40159..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-The Exynos display port interface should be configured based on
-the type of panel connected to it.
-
-We use two nodes:
-       -dp-controller node
-       -dptx-phy node(defined inside dp-controller node)
-
-For the DP-PHY initialization, we use the dptx-phy node.
-Required properties for dptx-phy: deprecated, use phys and phy-names
-       -reg: deprecated
-               Base address of DP PHY register.
-       -samsung,enable-mask: deprecated
-               The bit-mask used to enable/disable DP PHY.
-
-For the Panel initialization, we read data from dp-controller node.
-Required properties for dp-controller:
-       -compatible:
-               should be "samsung,exynos5-dp".
-       -reg:
-               physical base address of the controller and length
-               of memory mapped region.
-       -interrupts:
-               interrupt combiner values.
-       -clocks:
-               from common clock binding: handle to dp clock.
-       -clock-names:
-               from common clock binding: Shall be "dp".
-       -phys:
-               from general PHY binding: the phandle for the PHY device.
-       -phy-names:
-               from general PHY binding: Should be "dp".
-
-Optional properties for dp-controller:
-       -interlaced:
-               interlace scan mode.
-                       Progressive if defined, Interlaced if not defined
-       -vsync-active-high:
-               VSYNC polarity configuration.
-                       High if defined, Low if not defined
-       -hsync-active-high:
-               HSYNC polarity configuration.
-                       High if defined, Low if not defined
-       -samsung,hpd-gpio:
-               Hotplug detect GPIO.
-                       Indicates which GPIO should be used for hotplug
-                       detection
-       -video interfaces: Device node can contain video interface port
-                       nodes according to [1].
-       - display-timings: timings for the connected panel as described by
-               Documentation/devicetree/bindings/display/panel/display-timing.txt
-
-For the below properties, please refer to Analogix DP binding document:
- * Documentation/devicetree/bindings/display/bridge/analogix,dp.yaml
-       -phys (required)
-       -phy-names (required)
-       -hpd-gpios (optional)
-        force-hpd (optional)
-
-Deprecated properties for DisplayPort:
--interlaced:            deprecated prop that can parsed from drm_display_mode.
--vsync-active-high:     deprecated prop that can parsed from drm_display_mode.
--hsync-active-high:     deprecated prop that can parsed from drm_display_mode.
--samsung,ycbcr-coeff:   deprecated prop that can parsed from drm_display_mode.
--samsung,dynamic-range: deprecated prop that can parsed from drm_display_mode.
--samsung,color-space:   deprecated prop that can parsed from drm_display_info.
--samsung,color-depth:   deprecated prop that can parsed from drm_display_info.
--samsung,link-rate:     deprecated prop that can reading from monitor by dpcd method.
--samsung,lane-count:    deprecated prop that can reading from monitor by dpcd method.
--samsung,hpd-gpio:      deprecated name for hpd-gpios.
-
--------------------------------------------------------------------------------
-
-Example:
-
-SOC specific portion:
-       dp-controller {
-               compatible = "samsung,exynos5-dp";
-               reg = <0x145b0000 0x10000>;
-               interrupts = <10 3>;
-               interrupt-parent = <&combiner>;
-               clocks = <&clock 342>;
-               clock-names = "dp";
-
-               phys = <&dp_phy>;
-               phy-names = "dp";
-       };
-
-Board Specific portion:
-       dp-controller {
-               display-timings {
-                       native-mode = <&lcd_timing>;
-                       lcd_timing: 1366x768 {
-                               clock-frequency = <70589280>;
-                               hactive = <1366>;
-                               vactive = <768>;
-                               hfront-porch = <40>;
-                               hback-porch = <40>;
-                               hsync-len = <32>;
-                               vback-porch = <10>;
-                               vfront-porch = <12>;
-                               vsync-len = <6>;
-                       };
-               };
-
-               ports {
-                       port@0 {
-                               dp_out: endpoint {
-                                       remote-endpoint = <&bridge_in>;
-                               };
-                       };
-               };
-       };
index c6641acd75d6a0fb1c74a1269a1f3eedfbc3bb88..b8b8e83ebc3f0a00b403e79a60107c87422b425b 100644 (file)
@@ -24,6 +24,7 @@ properties:
       - enum:
           - mediatek,mt8173-disp-gamma
           - mediatek,mt8183-disp-gamma
+          - mediatek,mt8195-disp-gamma
       - items:
           - enum:
               - mediatek,mt6795-disp-gamma
@@ -35,6 +36,10 @@ properties:
               - mediatek,mt8192-disp-gamma
               - mediatek,mt8195-disp-gamma
           - const: mediatek,mt8183-disp-gamma
+      - items:
+          - enum:
+              - mediatek,mt8188-disp-gamma
+          - const: mediatek,mt8195-disp-gamma
 
   reg:
     maxItems: 1
index ae53cbfb21932f1c8fe3f5438ce8464ff2bf2e46..97993feda1936814121845ee1db9ce4432169080 100644 (file)
@@ -29,6 +29,7 @@ properties:
           - qcom,sm8650-dp
       - items:
           - enum:
+              - qcom,sm6350-dp
               - qcom,sm8150-dp
               - qcom,sm8250-dp
               - qcom,sm8450-dp
index c9ba1fae80425e3d3cd425c83b8343c61c1a92f8..bba666bdffe5f733bbb69113b7faf1b4a728a3a2 100644 (file)
@@ -53,6 +53,15 @@ patternProperties:
       compatible:
         const: qcom,sm6350-dpu
 
+  "^displayport-controller@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+
+    properties:
+      compatible:
+        contains:
+          const: qcom,sm6350-dp
+
   "^dsi@[0-9a-f]+$":
     type: object
     additionalProperties: true
index acd2f3faa6b9b0616111301f94975ecc1283bf62..0aa2d3fbadaa04918010cc72550375538a04bc0e 100644 (file)
@@ -17,10 +17,12 @@ properties:
   compatible:
     const: abt,y030xx067a
 
+  reg:
+    maxItems: 1
+
   backlight: true
   port: true
   power-supply: true
-  reg: true
   reset-gpios: true
 
 required:
index 75a09df68ba00b0cdfc5a5064cdd809cb7849a05..2399cabf044c2fdde7b17fea546b69d095559d69 100644 (file)
@@ -21,7 +21,10 @@ allOf:
 properties:
   compatible:
     const: asus,z00t-tm5p5-n35596
-  reg: true
+
+  reg:
+    maxItems: 1
+
   reset-gpios: true
   vdd-supply:
     description: core voltage supply
index a8f3afa922c89a3161fc9a111bf1c907f0b1d57c..8b7448ad9138f4bb289c41ad8b04e64ddf691851 100644 (file)
@@ -26,6 +26,9 @@ properties:
   compatible:
     const: boe,bf060y8m-aj0
 
+  reg:
+    maxItems: 1
+
   elvdd-supply:
     description: EL Driving positive (VDD) supply (4.40-4.80V)
   elvss-supply:
@@ -38,7 +41,6 @@ properties:
     description: I/O voltage supply (1.62-1.98V)
 
   port: true
-  reg: true
   reset-gpios: true
 
 required:
index 272a3a018a33a43cc85ffa3130823ac67b2a7583..f2496cdd9260294f187aeff7e4067968329aa071 100644 (file)
@@ -18,9 +18,11 @@ properties:
       - const: boe,himax8279d8p
       - const: boe,himax8279d10p
 
+  reg:
+    maxItems: 1
+
   backlight: true
   enable-gpios: true
-  reg: true
 
   pp33-gpios:
     maxItems: 1
index 32df26cbfeed737c4761df211efbb8782c12f25e..5eaccce13c216ffe210f408068a637f54d17f213 100644 (file)
@@ -18,7 +18,9 @@ properties:
         # BOE TH101MB31IG002-28A 10.1" WXGA TFT LCD panel
       - boe,th101mb31ig002-28a
 
-  reg: true
+  reg:
+    maxItems: 1
+
   backlight: true
   enable-gpios: true
   power-supply: true
index 906ef62709b8a8f35970abc0b1b5903e80840ac2..9e603cad1348003d3565455e2549f9fd505361d1 100644 (file)
@@ -38,7 +38,7 @@ properties:
       - starry,ili9882t
 
   reg:
-    description: the virtual channel number of a DSI peripheral
+    maxItems: 1
 
   enable-gpios:
     description: a GPIO spec for the enable pin
index 265ab6d30572674b09cca57c71d1334761de6221..f4cb825d1e9660ed1e89a563b79503d8333b5ecf 100644 (file)
@@ -15,7 +15,10 @@ allOf:
 properties:
   compatible:
     const: elida,kd35t133
-  reg: true
+
+  reg:
+    maxItems: 1
+
   backlight: true
   port: true
   reset-gpios: true
index d13c4bd26de4624cf6082da17e058e9743709c14..9847da784cc87e905ddaed339e41749dc9180372 100644 (file)
@@ -17,6 +17,9 @@ properties:
   compatible:
     const: fascontek,fs035vg158
 
+  reg:
+    maxItems: 1
+
   spi-3wire: true
 
 required:
index 81adb82f061d2c1183202e2e9445b56e01bf126b..0d8707a5844dd6238d832d2b600ef168db6b9cec 100644 (file)
@@ -15,7 +15,10 @@ allOf:
 properties:
   compatible:
     const: feixin,k101-im2ba02
-  reg: true
+
+  reg:
+    maxItems: 1
+
   backlight: true
   reset-gpios: true
   avdd-supply:
index 174661d13811119d2861f204d2c18371d5d06c4c..56bcd152f43cbeadd6ac67311c089b419ac45c49 100644 (file)
@@ -21,6 +21,9 @@ properties:
     contains:
       const: djn,9a-3r063-1102b
 
+  reg:
+    maxItems: 1
+
   vdd1-supply:
     description: Digital voltage rail
 
@@ -30,7 +33,6 @@ properties:
   vsp-supply:
     description: Negative source voltage rail
 
-  reg: true
   port: true
 
 required:
index 916bb7f94206293bf9d7584a1dc77e482cc91ee6..644387e4fb6f9f6ac876f50d181e30ac009d3470 100644 (file)
@@ -26,7 +26,8 @@ properties:
           - powkiddy,x55-panel
       - const: himax,hx8394
 
-  reg: true
+  reg:
+    maxItems: 1
 
   reset-gpios: true
 
index 3cabbba86581caa688fcd8bdcd4bc989f56461c7..ef5a2240b684d0a19df03189a4b4fcc8b1e0226c 100644 (file)
@@ -24,6 +24,9 @@ properties:
           - newhaven,1.8-128160EF
       - const: ilitek,ili9163
 
+  reg:
+    maxItems: 1
+
   spi-max-frequency:
     maximum: 32000000
 
@@ -32,7 +35,6 @@ properties:
     description: Display data/command selection (D/CX)
 
   backlight: true
-  reg: true
   reset-gpios: true
   rotation: true
 
index 7d221ef35443420cf9bd4bc6c3a561f0f83d34f6..44423465f6e35bc259f184031dd71bab3f5dabe3 100644 (file)
@@ -26,6 +26,9 @@ properties:
           - dlink,dir-685-panel
       - const: ilitek,ili9322
 
+  reg:
+    maxItems: 1
+
   reset-gpios: true
   port: true
 
index 94f169ea065a026cb730145a7024e4852d841477..5f41758c96d5cbaf64cdeba8b178187708e9d38c 100644 (file)
@@ -28,7 +28,8 @@ properties:
           - canaan,kd233-tft
       - const: ilitek,ili9341
 
-  reg: true
+  reg:
+    maxItems: 1
 
   dc-gpios:
     maxItems: 1
index f4f91f93f4903c748ad2fb26e8df0c7acfa8116c..ff67129c94669f0730288a259da5a13d5fee9414 100644 (file)
@@ -20,9 +20,11 @@ properties:
           - tianma,tm041xdhg01
       - const: ilitek,ili9805
 
+  reg:
+    maxItems: 1
+
   avdd-supply: true
   dvdd-supply: true
-  reg: true
 
 required:
   - compatible
index b1e624be3e3349e08e8d2784a4a258e0718b9e1a..baf5dfe5f5ebdd92f460a78d0e56e1b45e7dd323 100644 (file)
@@ -19,13 +19,16 @@ properties:
           - ampire,am8001280g
           - bananapi,lhr050h41
           - feixin,k101-im2byl02
+          - startek,kd050hdfia020
           - tdo,tl050hdv35
           - wanchanglong,w552946aba
       - const: ilitek,ili9881c
 
+  reg:
+    maxItems: 1
+
   backlight: true
   power-supply: true
-  reg: true
   reset-gpios: true
   rotation: true
 
index 72788e3e6c59064423eff61faa5bb58599291303..c7df9a7f6589ec11cc74dfba7de9d3217087fcb0 100644 (file)
@@ -17,10 +17,12 @@ properties:
   compatible:
     const: innolux,ej030na
 
+  reg:
+    maxItems: 1
+
   backlight: true
   port: true
   power-supply: true
-  reg: true
   reset-gpios: true
 
 required:
index 5a5f071627fb2ca1fc3a5c1021afb365c2cfc3f9..4164e3f7061d86124fd5aaa9cfb0de245e62b817 100644 (file)
@@ -16,9 +16,11 @@ properties:
   compatible:
     const: innolux,p097pfg
 
+  reg:
+    maxItems: 1
+
   backlight: true
   enable-gpios: true
-  reg: true
 
   avdd-supply:
     description: The regulator that provides positive voltage
index 41eb7fbf7715bb1c930fe3e773f934c5a7315eab..20afdb4568a26fe1aff28e70e53da9892ee1cb8c 100644 (file)
@@ -21,7 +21,8 @@ properties:
           - radxa,display-8hd-ad002
       - const: jadard,jd9365da-h3
 
-  reg: true
+  reg:
+    maxItems: 1
 
   vdd-supply:
     description: supply regulator for VDD, usually 3.3V
index 2f4d27a309a782ce4f2c41f13525e27a4fd6f6d6..a8621459005bfd7a381595b8333f9ae58449a6f4 100644 (file)
@@ -26,7 +26,9 @@ properties:
   compatible:
     const: jdi,lpm102a188a
 
-  reg: true
+  reg:
+    maxItems: 1
+
   enable-gpios: true
   reset-gpios: true
   power-supply: true
index 63c82a4378ff5deff6a7d7a82cf6a04ab2effe5c..0c8b5cb78bfe4f96b01a5f9fad3e2141236b83b2 100644 (file)
@@ -16,8 +16,10 @@ properties:
   compatible:
     const: jdi,lt070me05000
 
+  reg:
+    maxItems: 1
+
   enable-gpios: true
-  reg: true
   reset-gpios: true
 
   vddp-supply:
index b4be9bd8ddde7c681895894689d03c3e4f855ed9..d86c916f7b5546274670ff6fc5cfe0721533f2b2 100644 (file)
@@ -17,10 +17,12 @@ properties:
   compatible:
     const: kingdisplay,kd035g6-54nt
 
+  reg:
+    maxItems: 1
+
   backlight: true
   port: true
   power-supply: true
-  reg: true
   reset-gpios: true
 
   spi-3wire: true
index 7a55961e1a3d3509512e85407bcb28ad1533f029..b5dc02b27200290952af15a033e5ca588bacec70 100644 (file)
@@ -18,6 +18,9 @@ properties:
   compatible:
     const: leadtek,ltk035c5444t
 
+  reg:
+    maxItems: 1
+
   spi-3wire: true
 
 required:
index a40ab887ada7beb5c1373b036470d12688b03903..e2a2dd4ef5fa21546ac833fbae40bb5525687272 100644 (file)
@@ -18,7 +18,10 @@ properties:
       - leadtek,ltk050h3146w
       - leadtek,ltk050h3146w-a2
       - leadtek,ltk050h3148w
-  reg: true
+
+  reg:
+    maxItems: 1
+
   backlight: true
   reset-gpios: true
   iovcc-supply:
index d589f1677214501b8c643aff22df1dac444d21a5..af9e0ea0e72f94f3fe30fac4eaf4ec0691e93144 100644 (file)
@@ -17,7 +17,10 @@ properties:
     enum:
       - leadtek,ltk101b4029w
       - leadtek,ltk500hd1829
-  reg: true
+
+  reg:
+    maxItems: 1
+
   backlight: true
   reset-gpios: true
   iovcc-supply:
index ee357e139ac078f4777f6baf2c243ad17e26a452..590ccc27d10447aa45a6364730fa7fad5271ae84 100644 (file)
@@ -21,7 +21,8 @@ properties:
   compatible:
     const: lg,lg4573
 
-  reg: true
+  reg:
+    maxItems: 1
 
 required:
   - compatible
diff --git a/Bindings/display/panel/lg,sw43408.yaml b/Bindings/display/panel/lg,sw43408.yaml
new file mode 100644 (file)
index 0000000..1e08648
--- /dev/null
@@ -0,0 +1,62 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/lg,sw43408.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: LG SW43408 1080x2160 DSI panel
+
+maintainers:
+  - Caleb Connolly <caleb.connolly@linaro.org>
+
+description:
+  This panel is used on the Pixel 3, it is a 60hz OLED panel which
+  required DSC (Display Stream Compression) and has rounded corners.
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    items:
+      - const: lg,sw43408
+
+  reg: true
+  port: true
+  vddi-supply: true
+  vpnl-supply: true
+  reset-gpios: true
+
+required:
+  - compatible
+  - vddi-supply
+  - vpnl-supply
+  - reset-gpios
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    dsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        panel@0 {
+            compatible = "lg,sw43408";
+            reg = <0>;
+
+            vddi-supply = <&vreg_l14a_1p88>;
+            vpnl-supply = <&vreg_l28a_3p0>;
+
+            reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
+
+            port {
+                endpoint {
+                    remote-endpoint = <&mdss_dsi0_out>;
+                };
+            };
+        };
+    };
+...
index 628c4b8981114fbc4372d484a6bf32e9820a561a..3de17fd8513bf869259800c878f5d4d54f95bf13 100644 (file)
@@ -17,6 +17,9 @@ properties:
   compatible:
     const: lgphilips,lb035q02
 
+  reg:
+    maxItems: 1
+
   label: true
   enable-gpios: true
   port: true
index accf933d6e465118d019223dd8503ce7dd67ba75..1cffe4d6d49844b0adcdc39153aae8bf08f05948 100644 (file)
@@ -21,9 +21,11 @@ properties:
   compatible:
     const: nec,nl8048hl11
 
+  reg:
+    maxItems: 1
+
   label: true
   port: true
-  reg: true
   reset-gpios: true
 
   spi-max-frequency:
index 7a634fbc465e042943d499397f502cec0d9fdd35..d3a25a8fd7e39ac9479fb16865965ea7eca6234d 100644 (file)
@@ -24,7 +24,9 @@ properties:
           - powkiddy,rk2023-panel
       - const: newvision,nv3051d
 
-  reg: true
+  reg:
+    maxItems: 1
+
   backlight: true
   port: true
   reset-gpios:
index 91921f4b0e5fa0869c0fc0ef46c4e988445daa8b..bb50fd5506c3d8a45377721654f13d0460cac50f 100644 (file)
@@ -24,7 +24,10 @@ properties:
       string determines how the NT35510 panel driver shall be configured
       to work with the indicated panel. The novatek,nt35510 compatible shall
       always be provided as a fallback.
-  reg: true
+
+  reg:
+    maxItems: 1
+
   reset-gpios: true
   vdd-supply:
     description: regulator that supplies the vdd voltage
index 377a05d48a02a40e1b224eeeba4d8b5761f9a9d4..a9e40493986b7e096e20cee1e7c63c3833a69ea2 100644 (file)
@@ -19,7 +19,7 @@ description: |
   either bilinear interpolation or pixel duplication.
 
 allOf:
-  - $ref: panel-common.yaml#
+  - $ref: panel-common-dual.yaml#
 
 properties:
   compatible:
@@ -33,6 +33,9 @@ properties:
       to work with the indicated panel. The novatek,nt35950 compatible shall
       always be provided as a fallback.
 
+  reg:
+    maxItems: 1
+
   reset-gpios:
     maxItems: 1
     description: phandle of gpio for reset line - This should be 8mA, gpio
@@ -49,7 +52,6 @@ properties:
 
   backlight: true
   ports: true
-  reg: true
 
 required:
   - compatible
@@ -59,6 +61,7 @@ required:
   - avee-supply
   - dvdd-supply
   - vddio-supply
+  - ports
 
 additionalProperties: false
 
index 5f7e4c486094426b49629337e154e981471c3e95..c4bae4f77085bf1e7ed8bfcd090b99e7a7fd9214 100644 (file)
@@ -14,9 +14,6 @@ description: |
   panels. Support video mode panels from China Star Optoelectronics
   Technology (CSOT) and BOE Technology.
 
-allOf:
-  - $ref: panel-common.yaml#
-
 properties:
   compatible:
     oneOf:
@@ -30,6 +27,9 @@ properties:
               - lenovo,j606f-boe-nt36523w
           - const: novatek,nt36523w
 
+  reg:
+    maxItems: 1
+
   reset-gpios:
     maxItems: 1
     description: phandle of gpio for reset line - This should be 8mA
@@ -37,8 +37,6 @@ properties:
   vddio-supply:
     description: regulator that supplies the I/O voltage
 
-  reg: true
-  ports: true
   rotation: true
   backlight: true
 
@@ -47,7 +45,26 @@ required:
   - reg
   - vddio-supply
   - reset-gpios
-  - ports
+
+allOf:
+  - $ref: panel-common-dual.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - novatek,nt36523w
+    then:
+      properties:
+        ports:
+          properties:
+            port@1: false
+    else:
+      properties:
+        port: false
+        ports:
+          required:
+            - port@1
 
 unevaluatedProperties: false
 
index ae821f465e1c8644ca99542091e0a13cf88fe812..800a2f0a4dad98954ef60c3bb04d8eb2243cae7a 100644 (file)
@@ -29,6 +29,9 @@ properties:
       determines how the NT36672A panel driver is configured for the indicated
       panel. The novatek,nt36672a compatible shall always be provided as a fallback.
 
+  reg:
+    maxItems: 1
+
   reset-gpios:
     maxItems: 1
     description: phandle of gpio for reset line - This should be 8mA, gpio
@@ -44,7 +47,6 @@ properties:
   vddneg-supply:
     description: phandle of the negative boost supply regulator
 
-  reg: true
   port: true
   backlight: true
 
index 72463795e4c6da5a6d665bc794479dbdc12b74aa..e5d8785fdf9055429b654ca53e2cad0d2845f7c4 100644 (file)
@@ -38,10 +38,12 @@ properties:
   compatible:
     const: olimex,lcd-olinuxino
 
+  reg:
+    maxItems: 1
+
   backlight: true
   enable-gpios: true
   power-supply: true
-  reg: true
 
 required:
   - compatible
diff --git a/Bindings/display/panel/panel-common-dual.yaml b/Bindings/display/panel/panel-common-dual.yaml
new file mode 100644 (file)
index 0000000..cc7ea3c
--- /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/display/panel/panel-common-dual.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Common Properties for Dual-Link Display Panels
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
+
+description:
+  Properties common for Panel IC supporting dual link panels.  Devices might
+  support also single link.
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+    additionalProperties: false
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: First link
+
+      port@1:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: Second link
+
+      "#address-cells": true
+      "#size-cells": true
+
+    required:
+      - port@0
+
+# Single-panel setups are still allowed.
+oneOf:
+  - required:
+      - ports
+  - required:
+      - port
+
+additionalProperties: true
index e808215cb39eec13e4ded69517bd51973ffe1ed3..d0ac31ab60cf3728aebeabd781d917280ebd29f7 100644 (file)
@@ -71,6 +71,9 @@ properties:
           - shineworld,lh133k
       - const: panel-mipi-dbi-spi
 
+  reg:
+    maxItems: 1
+
   write-only:
     type: boolean
     description:
index f9160d7bac3caa5e12c4de6b19063cd3247d17b3..db5acd2807ed7f48ba4f52fb4c808ce3432f12b6 100644 (file)
@@ -36,6 +36,8 @@ properties:
       - jdi,fhd-r63452
         # Khadas TS050 5" 1080x1920 LCD panel
       - khadas,ts050
+        # Khadas TS050 V2 5" 1080x1920 LCD panel
+      - khadas,ts050v2
         # Kingdisplay KD097D04 9.7" 1536x2048 TFT LCD panel
       - kingdisplay,kd097d04
         # LG ACX467AKM-7 4.95" 1080×1920 LCD Panel
@@ -50,6 +52,8 @@ properties:
       - panasonic,vvx10f004b00
         # Panasonic 10" WUXGA TFT LCD panel
       - panasonic,vvx10f034n00
+        # Samsung s6e3fa7 1080x2220 based AMS559NK06 AMOLED panel
+      - samsung,s6e3fa7-ams559nk06
         # Samsung s6e3fc2x01 1080x2340 AMOLED panel
       - samsung,s6e3fc2x01
         # Samsung sofef00 1080x2280 AMOLED panel
index a95445f408700b74881ff5bb55da3cfff4d4de86..5067f5c0a27231cc88d4346d11e571b69e2c9076 100644 (file)
@@ -91,6 +91,8 @@ properties:
       - boe,nv133fhm-n62
         # BOE NV140FHM-N49 14.0" FHD a-Si FT panel
       - boe,nv140fhmn49
+        # Crystal Clear Technology CMT430B19N00 4.3" 480x272 TFT-LCD panel
+      - cct,cmt430b19n00
         # CDTech(H.K.) Electronics Limited 4.3" 480x272 color TFT-LCD panel
       - cdtech,s043wq26h-ct7
         # CDTech(H.K.) Electronics Limited 7" WSVGA (1024x600) TFT LCD Panel
@@ -188,6 +190,8 @@ properties:
       - innolux,g121i1-l01
         # Innolux Corporation 12.1" G121X1-L03 XGA (1024x768) TFT LCD panel
       - innolux,g121x1-l03
+        # Innolux Corporation 12.1" G121XCE-L01 XGA (1024x768) TFT LCD panel
+      - innolux,g121xce-l01
         # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
       - innolux,n116bca-ea1
         # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
@@ -272,6 +276,8 @@ properties:
       - osddisplays,osd070t1718-19ts
         # One Stop Displays OSD101T2045-53TS 10.1" 1920x1200 panel
       - osddisplays,osd101t2045-53ts
+        # POWERTIP PH128800T006-ZHC01 10.1" WXGA TFT LCD panel
+      - powertip,ph128800t006-zhc01
         # POWERTIP PH800480T013-IDF2 7.0" WVGA TFT LCD panel
       - powertip,ph800480t013-idf02
         # QiaoDian XianShi Corporation 4"3 TFT LCD panel
@@ -348,15 +354,6 @@ properties:
         # Yes Optoelectronics YTC700TLAG-05-201C 7" TFT LCD panel
       - yes-optoelectronics,ytc700tlag-05-201c
 
-  backlight: true
-  ddc-i2c-bus: true
-  enable-gpios: true
-  port: true
-  power-supply: true
-  no-hpd: true
-  hpd-gpios: true
-  data-mapping: true
-
 if:
   not:
     properties:
@@ -367,7 +364,7 @@ then:
   properties:
     data-mapping: false
 
-additionalProperties: false
+unevaluatedProperties: false
 
 required:
   - compatible
index d62fd692bf10621cc357b11bf8d852565bcdcf32..4825792bf712f0d219119034fdaace72f4c2487d 100644 (file)
@@ -16,7 +16,9 @@ properties:
   compatible:
     const: raydium,rm67191
 
-  reg: true
+  reg:
+    maxItems: 1
+
   port: true
   reset-gpios: true
   width-mm: true
index f436ba6738caa92e47e344724c7125c5d872b16b..7ad223f98253a4484dd1091d18fe7fed9585c771 100644 (file)
@@ -22,6 +22,9 @@ properties:
       - const: fairphone,fp5-rm692e5-boe
       - const: raydium,rm692e5
 
+  reg:
+    maxItems: 1
+
   dvdd-supply:
     description: Digital voltage rail
 
@@ -31,7 +34,6 @@ properties:
   vddio-supply:
     description: I/O voltage rail
 
-  reg: true
   port: true
 
 required:
diff --git a/Bindings/display/panel/raydium,rm69380.yaml b/Bindings/display/panel/raydium,rm69380.yaml
new file mode 100644 (file)
index 0000000..b17765b
--- /dev/null
@@ -0,0 +1,89 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/raydium,rm69380.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Raydium RM69380-based DSI display panels
+
+maintainers:
+  - David Wronek <david@mainlining.org>
+
+description:
+  The Raydium RM69380 is a generic DSI panel IC used to control
+  OLED panels.
+
+allOf:
+  - $ref: panel-common-dual.yaml#
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - lenovo,j716f-edo-rm69380
+      - const: raydium,rm69380
+    description: This indicates the panel manufacturer of the panel
+      that is in turn using the RM69380 panel driver. The compatible
+      string determines how the RM69380 panel driver shall be configured
+      to work with the indicated panel. The raydium,rm69380 compatible shall
+      always be provided as a fallback.
+
+  avdd-supply:
+    description: Analog voltage rail
+
+  vddio-supply:
+    description: I/O voltage rail
+
+  reset-gpios:
+    maxItems: 1
+    description: phandle of gpio for reset line - This should be active low
+
+  reg: true
+
+required:
+  - compatible
+  - reg
+  - avdd-supply
+  - vddio-supply
+  - reset-gpios
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    dsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        panel@0 {
+            compatible = "lenovo,j716f-edo-rm69380", "raydium,rm69380";
+            reg = <0>;
+
+            avdd-supply = <&panel_avdd_regulator>;
+            vddio-supply = <&vreg_l14a>;
+            reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    panel_in_0: endpoint {
+                        remote-endpoint = <&mdss_dsi0_out>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    panel_in_1: endpoint {
+                        remote-endpoint = <&mdss_dsi1_out>;
+                    };
+                };
+            };
+        };
+    };
+
+...
index 6ec471284f97b690136adfcaa97af1d769f5001e..4ae152cc55e0b1a1fb7abc2af2f3cc52f7cedc89 100644 (file)
@@ -22,6 +22,8 @@ properties:
     enum:
       # Anberic RG353V-V2 5.0" 640x480 TFT LCD panel
       - anbernic,rg353v-panel-v2
+      # GameForce Chi 3.5" 640x480 TFT LCD panel
+      - gameforce,chi-panel
       # Powkiddy RGB10MAX3 5.0" 720x1280 TFT LCD panel
       - powkiddy,rgb10max3-panel
       # Powkiddy RGB30 3.0" 720x720 TFT LCD panel
index 95ce22c6787a7aba341749c8774585efbe1f2dc2..04f86e0cbac91fff84593bc9daa86471140067ec 100644 (file)
@@ -14,7 +14,7 @@ properties:
     const: ronbo,rb070d30
 
   reg:
-    description: MIPI-DSI virtual channel
+    maxItems: 1
 
   power-gpios:
     description: GPIO used for the power pin
index ccc482570d6a39ad5fd7208b54bab22184e540c2..e8f9e9d06a2921f88a75cb80e600564013ee3be1 100644 (file)
@@ -33,7 +33,9 @@ properties:
         # Samsung S6E3HF2 5.65" 1600x2560 AMOLED panel
       - samsung,s6e3hf2
 
-  reg: true
+  reg:
+    maxItems: 1
+
   reset-gpios: true
   enable-gpios: true
   te-gpios: true
index 58fa073ce25856c6725cf555e9ecf1ee6b8c1f61..e081c84a932b6ba883aa1acc5d60237f55f4414f 100644 (file)
@@ -11,12 +11,15 @@ maintainers:
 
 allOf:
   - $ref: panel-common.yaml#
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
 
 properties:
   compatible:
     const: samsung,ams495qa01
 
-  reg: true
+  reg:
+    maxItems: 1
+
   reset-gpios:
     description: reset gpio, must be GPIO_ACTIVE_LOW
   elvdd-supply:
index c0fabeb3862886c2c0ee362500a7d44cc8cdc2e2..bc92b16c95b9eef932b1022a0fa3eeef43bf984b 100644 (file)
@@ -17,9 +17,11 @@ properties:
   compatible:
     const: samsung,ld9040
 
+  reg:
+    maxItems: 1
+
   display-timings: true
   port: true
-  reg: true
   reset-gpios: true
 
   vdd3-supply:
index 70ffc88d2a0819ffe22c1a2298eae010d356e7a2..7ce8540551f9ebd1a327f2cc599dbec957ddbae5 100644 (file)
@@ -21,7 +21,8 @@ properties:
   compatible:
     const: samsung,lms380kf01
 
-  reg: true
+  reg:
+    maxItems: 1
 
   interrupts:
     description: provides an optional ESD (electrostatic discharge)
index 5e77cee93f833bcb8867b41ff903fc0a70d24379..9363032883de455b9930340914818b1f49ceea20 100644 (file)
@@ -20,7 +20,8 @@ properties:
   compatible:
     const: samsung,lms397kf04
 
-  reg: true
+  reg:
+    maxItems: 1
 
   reset-gpios: true
 
index 66d147496bc3d60ee1bc6e5699bda46c9f108b82..2af5bc47323f5077ff14f6f10a29f9067d07afc9 100644 (file)
@@ -16,8 +16,10 @@ properties:
   compatible:
     const: samsung,s6d16d0
 
+  reg:
+    maxItems: 1
+
   port: true
-  reg: true
   reset-gpios: true
 
   vdd1-supply:
index d273faf4442ac60546808611bf72ede1c580c3bc..d74904164719d432b77036fb66c51fde8b765f7f 100644 (file)
@@ -20,7 +20,8 @@ properties:
   compatible:
     const: samsung,s6d27a1
 
-  reg: true
+  reg:
+    maxItems: 1
 
   interrupts:
     description: provides an optional ESD (electrostatic discharge)
index 45a236d2cc70a357ed3af79a49f6c145c5221969..939da65114bfc2efddcf808a8d1d82dc37115494 100644 (file)
@@ -24,7 +24,8 @@ properties:
           - samsung,ltl101at01
       - const: samsung,s6d7aa0
 
-  reg: true
+  reg:
+    maxItems: 1
 
   backlight:
     description:
index 6f1fc7469f076f68432b16c39341612c16326261..c47e2a1a30e5b771b49d99663ceae6a9217bb909 100644 (file)
@@ -18,7 +18,9 @@ properties:
   compatible:
     const: samsung,s6e63m0
 
-  reg: true
+  reg:
+    maxItems: 1
+
   reset-gpios: true
   port: true
   default-brightness: true
index b749e9e906b7e9c7afdd34f976b26db6efeeada5..42634fc3b5b20de2eb815bb91990b193f74e30e9 100644 (file)
@@ -15,7 +15,10 @@ allOf:
 properties:
   compatible:
     const: samsung,s6e88a0-ams452ef01
-  reg: true
+
+  reg:
+    maxItems: 1
+
   port: true
   reset-gpios: true
   vdd3-supply:
index 200fbf1c74a0bf1adadf7f85571608103354b30b..4601fa460680772c73bda245cd6f0638e629de05 100644 (file)
@@ -16,7 +16,9 @@ properties:
   compatible:
     const: samsung,s6e8aa0
 
-  reg: true
+  reg:
+    maxItems: 1
+
   reset-gpios: true
   display-timings: true
 
index 57b44a0e763de49e7f871891bd0d0a4ea5776fc4..ce820b96a7e2f9d5ba313796ea5eb202fab0d2f8 100644 (file)
@@ -37,7 +37,9 @@ properties:
       - enum:
           - sharp,lq101r1sx01
 
-  reg: true
+  reg:
+    maxItems: 1
+
   power-supply: true
   backlight: true
 
index a90d0d8bf7c9e18f0f1c2900d1fb91d82f2cd0ef..b6ea246430ceeb3b35a84f79f0f90aeb0795c10d 100644 (file)
@@ -16,7 +16,9 @@ properties:
   compatible:
     const: sharp,ls043t1le01-qhd
 
-  reg: true
+  reg:
+    maxItems: 1
+
   backlight: true
   reset-gpios: true
   port: true
index 271c097cc9a4439abd11324c613f48e01b06ea53..77a4fce129e75bd09a27ee1193f362ece656479b 100644 (file)
@@ -16,7 +16,9 @@ properties:
   compatible:
     const: sharp,ls060t1sx01
 
-  reg: true
+  reg:
+    maxItems: 1
+
   backlight: true
   reset-gpios: true
   port: true
index ef162b51d010de233c4e7d660732670f249bfc30..0ce2ea13583dd73a1dc57a90b6f68d6a7b5a6bd1 100644 (file)
@@ -21,7 +21,9 @@ properties:
       - jasonic,jt240mhqs-hwt-ek-e3
       - sitronix,st7789v
 
-  reg: true
+  reg:
+    maxItems: 1
+
   reset-gpios: true
   power-supply: true
   backlight: true
index 059cc6dbcfca9f08f1f4f1ed9965c229b67bbd22..fd778a20f760990c2d6dd5fc9a1d1335095d909b 100644 (file)
@@ -22,7 +22,10 @@ properties:
     enum:
       - sony,acx424akp
       - sony,acx424akm
-  reg: true
+
+  reg:
+    maxItems: 1
+
   reset-gpios: true
   vddi-supply:
     description: regulator that supplies the vddi voltage
index 98abdf4ddeac605aeb1dc18d15b60a7a7beb372c..5a8260224b74778014371608fdf5fe37aaac803b 100644 (file)
@@ -17,6 +17,9 @@ properties:
   compatible:
     const: sony,acx565akm
 
+  reg:
+    maxItems: 1
+
   label: true
   reset-gpios: true
   port: true
index b6b885b4c22dc8351b2b60cd9757989de3a8406e..191b692125e145748003a800ee663e0c09d9e3cc 100644 (file)
@@ -20,9 +20,12 @@ properties:
   compatible:
     const: sony,td4353-jdi-tama
 
-  reg: true
+  reg:
+    maxItems: 1
 
   backlight: true
+  width-mm: true
+  height-mm: true
 
   vddio-supply:
     description: VDDIO 1.8V supply
index 9679729395988792db0903b9305896f7e9287adf..a58a31349757d458b11bcbe64213bb714ba67576 100644 (file)
@@ -21,7 +21,8 @@ properties:
   compatible:
     const: sony,tulip-truly-nt35521
 
-  reg: true
+  reg:
+    maxItems: 1
 
   positive5-supply:
     description: Positive 5V supply
index e5617d125567d2f1ae13ce5a9de3647cb772b7f3..2fd6e0ec36825999b820505ee6cf10c57840da75 100644 (file)
@@ -19,15 +19,17 @@ properties:
           - sharp,ls068b3sx02
       - const: syna,r63353
 
+  reg:
+    maxItems: 1
+
   avdd-supply: true
   dvdd-supply: true
-  reg: true
 
 required:
   - compatible
+  - reg
   - avdd-supply
   - dvdd-supply
-  - reg
   - reset-gpios
   - port
   - backlight
index e8c8ee8d7c8830ca920bd2069c3d40c5e4399c19..7edd29df4bbb5164d0f23abacfedffa1a6e090da 100644 (file)
@@ -22,7 +22,9 @@ properties:
         # Toppoly TD043MTEA1 Panel
       - tpo,td043mtea1
 
-  reg: true
+  reg:
+    maxItems: 1
+
   label: true
   reset-gpios: true
   backlight: true
index f0243d1961916fde01c5e456cef60e86a74cab46..59a373728e628d62375ecee2d22fa6df9af48107 100644 (file)
@@ -52,7 +52,8 @@ properties:
           - const: tpo,tpg110
       - const: tpo,tpg110
 
-  reg: true
+  reg:
+    maxItems: 1
 
   grestb-gpios:
     maxItems: 1
index 7723990675158781204b83d6dc0e60089d489ef8..30047a62fc111ff63cbbc275914ef8bb7cb4ffd6 100644 (file)
@@ -20,7 +20,8 @@ properties:
   compatible:
     const: visionox,rm69299-1080p-display
 
-  reg: true
+  reg:
+    maxItems: 1
 
   vdda-supply:
     description: |
index c407deb6afb11d9041b0eba5cbe587e2aa596708..9c9743a23500df3619d9bdec93e5a23c6efdeb64 100644 (file)
@@ -15,7 +15,10 @@ allOf:
 properties:
   compatible:
     const: xinpeng,xpp055c272
-  reg: true
+
+  reg:
+    maxItems: 1
+
   backlight: true
   port: true
   reset-gpios: true
index af638b6c0d2188541b0b6a0adc0cac484351609a..2aac62219ff64cd706d534c2457c1e5c54b1e5cf 100644 (file)
@@ -15,6 +15,7 @@ description: |
 
 allOf:
   - $ref: ../bridge/synopsys,dw-hdmi.yaml#
+  - $ref: /schemas/sound/dai-common.yaml#
 
 properties:
   compatible:
@@ -124,6 +125,9 @@ properties:
     description:
       phandle to the GRF to mux vopl/vopb.
 
+  "#sound-dai-cells":
+    const: 0
+
 required:
   - compatible
   - reg
@@ -153,6 +157,7 @@ examples:
         ddc-i2c-bus = <&i2c5>;
         power-domains = <&power RK3288_PD_VIO>;
         rockchip,grf = <&grf>;
+        #sound-dai-cells = <0>;
 
         ports {
             #address-cells = <1>;
index be78dcfa1c762902b277b34365aef1e7517883d1..5b87b0f1963e169e41ba18e8e4f535b064072a58 100644 (file)
@@ -37,6 +37,9 @@ properties:
   power-domains:
     maxItems: 1
 
+  "#sound-dai-cells":
+    const: 0
+
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
 
@@ -66,6 +69,7 @@ required:
   - ports
 
 allOf:
+  - $ref: /schemas/sound/dai-common.yaml#
   - if:
       properties:
         compatible:
@@ -106,6 +110,7 @@ examples:
       clock-names = "pclk";
       pinctrl-names = "default";
       pinctrl-0 = <&hdmi_ctl>;
+      #sound-dai-cells = <0>;
 
       ports {
         #address-cells = <1>;
index 1a68a940d165eeb2adc96ad5388e6e42c3d4c20c..6d4b78a365763cedf689e2af2c39749c6b70af30 100644 (file)
@@ -10,6 +10,9 @@ maintainers:
   - Sandy Huang <hjc@rock-chips.com>
   - Heiko Stuebner <heiko@sntech.de>
 
+allOf:
+  - $ref: /schemas/sound/dai-common.yaml#
+
 properties:
   compatible:
     const: rockchip,rk3066-hdmi
@@ -34,6 +37,9 @@ properties:
     description:
       This soc uses GRF regs to switch the HDMI TX input between vop0 and vop1.
 
+  "#sound-dai-cells":
+    const: 0
+
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
 
@@ -83,6 +89,7 @@ examples:
       pinctrl-names = "default";
       power-domains = <&power RK3066_PD_VIO>;
       rockchip,grf = <&grf>;
+      #sound-dai-cells = <0>;
 
       ports {
         #address-cells = <1>;
diff --git a/Bindings/display/samsung/samsung,exynos5-dp.yaml b/Bindings/display/samsung/samsung,exynos5-dp.yaml
new file mode 100644 (file)
index 0000000..dda9097
--- /dev/null
@@ -0,0 +1,163 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/samsung/samsung,exynos5-dp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung Exynos5250/Exynos5420 SoC Display Port
+
+maintainers:
+  - Inki Dae <inki.dae@samsung.com>
+  - Seung-Woo Kim <sw0312.kim@samsung.com>
+  - Kyungmin Park <kyungmin.park@samsung.com>
+  - Krzysztof Kozlowski <krzk@kernel.org>
+
+properties:
+  compatible:
+    const: samsung,exynos5-dp
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: dp
+
+  display-timings:
+    $ref: /schemas/display/panel/display-timings.yaml#
+
+  interrupts:
+    maxItems: 1
+
+  hpd-gpios:
+    description:
+      Hotplug detect GPIO.
+      Indicates which GPIO should be used for hotplug detection
+
+  phys:
+    maxItems: 1
+
+  phy-names:
+    items:
+      - const: dp
+
+  power-domains:
+    maxItems: 1
+
+  interlaced:
+    type: boolean
+    deprecated: true
+    description:
+      Interlace scan mode. Progressive if defined, interlaced if not defined.
+
+  vsync-active-high:
+    type: boolean
+    deprecated: true
+    description:
+      VSYNC polarity configuration. High if defined, low if not defined
+
+  hsync-active-high:
+    type: boolean
+    deprecated: true
+    description:
+      HSYNC polarity configuration. High if defined, low if not defined
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    properties:
+      port:
+        $ref: /schemas/graph.yaml#/properties/port
+        description:
+          Port node with one endpoint connected to a dp-connector node.
+
+    required:
+      - port
+
+  samsung,hpd-gpios:
+    maxItems: 1
+    deprecated: true
+
+  samsung,ycbcr-coeff:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    deprecated: true
+    description:
+      Deprecated prop that can parsed from drm_display_mode.
+
+  samsung,dynamic-range:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    deprecated: true
+    description:
+      Deprecated prop that can parsed from drm_display_mode.
+
+  samsung,color-space:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    deprecated: true
+    description:
+      Deprecated prop that can parsed from drm_display_info.
+
+  samsung,color-depth:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    deprecated: true
+    description:
+      Deprecated prop that can parsed from drm_display_info.
+
+  samsung,link-rate:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    deprecated: true
+    description:
+      Deprecated prop that can reading from monitor by dpcd method.
+
+  samsung,lane-count:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    deprecated: true
+    description:
+      Deprecated prop that can reading from monitor by dpcd method.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+  - phys
+  - phy-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/exynos5250.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    dp-controller@145b0000 {
+        compatible = "samsung,exynos5-dp";
+        reg = <0x145b0000 0x1000>;
+        clocks = <&clock CLK_DP>;
+        clock-names = "dp";
+        interrupts = <10 3>;
+        interrupt-parent = <&combiner>;
+        phys = <&dp_phy>;
+        phy-names = "dp";
+        pinctrl-0 = <&dp_hpd>;
+        pinctrl-names = "default";
+        power-domains = <&pd_disp1>;
+
+        samsung,color-space = <0>;
+        samsung,color-depth = <1>;
+        samsung,link-rate = <0x0a>;
+        samsung,lane-count = <2>;
+        hpd-gpios = <&gpx0 7 GPIO_ACTIVE_HIGH>;
+
+        ports {
+            port {
+                dp_out: endpoint {
+                    remote-endpoint = <&bridge_in>;
+                };
+            };
+        };
+    };
index 94c5242c03b288da8aeb37c8c4b1ddf94d814564..3563378a01af47fe3593ff8183230bc6c9186f3a 100644 (file)
@@ -177,6 +177,15 @@ allOf:
 
       required:
         - reg-names
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - nvidia,tegra194-host1x
+    then:
+      properties:
+        dma-coherent: true
   - if:
       properties:
         compatible:
@@ -226,6 +235,8 @@ allOf:
             use. Should be a mapping of IDs 0..n to IOMMU entries corresponding to
             usable stream IDs.
 
+        dma-coherent: true
+
       required:
         - reg-names
 
index aa51d278cb67b41e6730a207aa0f45021e954fe9..d54140f18d34056b04253c1592c22e2b0ee3ccab 100644 (file)
@@ -21,8 +21,8 @@ properties:
       - enum:
           - fsl,vf610-edma
           - fsl,imx7ulp-edma
-          - fsl,imx8qm-adma
           - fsl,imx8qm-edma
+          - fsl,imx8ulp-edma
           - fsl,imx93-edma3
           - fsl,imx93-edma4
           - fsl,imx95-edma5
@@ -43,21 +43,39 @@ properties:
     maxItems: 64
 
   "#dma-cells":
+    description: |
+      Specifies the number of cells needed to encode an DMA channel.
+
+      Encode for cells number 2:
+        cell 0: index of dma channel mux instance.
+        cell 1: peripheral dma request id.
+
+      Encode for cells number 3:
+        cell 0: peripheral dma request id.
+        cell 1: dma channel priority.
+        cell 2: bitmask, defined at include/dt-bindings/dma/fsl-edma.h
     enum:
       - 2
       - 3
 
   dma-channels:
-    minItems: 1
-    maxItems: 64
+    minimum: 1
+    maximum: 64
 
   clocks:
     minItems: 1
-    maxItems: 2
+    maxItems: 33
 
   clock-names:
     minItems: 1
-    maxItems: 2
+    maxItems: 33
+
+  power-domains:
+    description:
+      The number of power domains matches the number of channels, arranged
+      in ascending order according to their associated DMA channels.
+    minItems: 1
+    maxItems: 64
 
   big-endian:
     description: |
@@ -70,7 +88,6 @@ required:
   - compatible
   - reg
   - interrupts
-  - clocks
   - dma-channels
 
 allOf:
@@ -80,7 +97,6 @@ allOf:
         compatible:
           contains:
             enum:
-              - fsl,imx8qm-adma
               - fsl,imx8qm-edma
               - fsl,imx93-edma3
               - fsl,imx93-edma4
@@ -108,6 +124,7 @@ allOf:
       properties:
         clocks:
           minItems: 2
+          maxItems: 2
         clock-names:
           items:
             - const: dmamux0
@@ -136,6 +153,7 @@ allOf:
       properties:
         clock:
           minItems: 2
+          maxItems: 2
         clock-names:
           items:
             - const: dma
@@ -151,6 +169,58 @@ allOf:
         dma-channels:
           const: 32
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: fsl,imx8ulp-edma
+    then:
+      properties:
+        clocks:
+          minItems: 33
+        clock-names:
+          minItems: 33
+          items:
+            oneOf:
+              - const: dma
+              - pattern: "^ch(0[0-9]|[1-2][0-9]|3[01])$"
+
+        interrupt-names: false
+        interrupts:
+          minItems: 32
+        "#dma-cells":
+          const: 3
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,vf610-edma
+              - fsl,imx7ulp-edma
+              - fsl,imx93-edma3
+              - fsl,imx93-edma4
+              - fsl,imx95-edma5
+              - fsl,imx8ulp-edma
+              - fsl,ls1028a-edma
+    then:
+      required:
+        - clocks
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx8qm-adma
+              - fsl,imx8qm-edma
+    then:
+      required:
+        - power-domains
+    else:
+      properties:
+        power-domains: false
+
 unevaluatedProperties: false
 
 examples:
@@ -206,44 +276,27 @@ examples:
 
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
-    #include <dt-bindings/clock/imx93-clock.h>
+    #include <dt-bindings/firmware/imx/rsrc.h>
 
-    dma-controller@44000000 {
-      compatible = "fsl,imx93-edma3";
-      reg = <0x44000000 0x200000>;
+    dma-controller@5a9f0000 {
+      compatible = "fsl,imx8qm-edma";
+      reg = <0x5a9f0000 0x90000>;
       #dma-cells = <3>;
-      dma-channels = <31>;
-      interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
-                   <GIC_SPI 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>;
-        clocks = <&clk IMX93_CLK_EDMA1_GATE>;
-        clock-names = "dma";
+      dma-channels = <8>;
+      interrupts = <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>;
+      power-domains = <&pd IMX_SC_R_DMA_3_CH0>,
+                      <&pd IMX_SC_R_DMA_3_CH1>,
+                      <&pd IMX_SC_R_DMA_3_CH2>,
+                      <&pd IMX_SC_R_DMA_3_CH3>,
+                      <&pd IMX_SC_R_DMA_3_CH4>,
+                      <&pd IMX_SC_R_DMA_3_CH5>,
+                      <&pd IMX_SC_R_DMA_3_CH6>,
+                      <&pd IMX_SC_R_DMA_3_CH7>;
     };
index 37135fa024f9b822e3e451b0a6e9d0b5d4717bca..738b25b88b377b26bee83aff328aae3c064eb31b 100644 (file)
@@ -94,6 +94,7 @@ properties:
           - SAI: 24
           - Multi SAI: 25
           - HDMI Audio: 26
+          - I2C: 27
 
        The third cell: transfer priority ID
          enum:
diff --git a/Bindings/dma/qcom_hidma_mgmt.txt b/Bindings/dma/qcom_hidma_mgmt.txt
deleted file mode 100644 (file)
index 1ae4748..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-Qualcomm Technologies HIDMA Management interface
-
-Qualcomm Technologies HIDMA is a high speed DMA device. It only supports
-memcpy and memset capabilities. It has been designed for virtualized
-environments.
-
-Each HIDMA HW instance consists of multiple DMA channels. These channels
-share the same bandwidth. The bandwidth utilization can be partitioned
-among channels based on the priority and weight assignments.
-
-There are only two priority levels and 15 weigh assignments possible.
-
-Other parameters here determine how much of the system bus this HIDMA
-instance can use like maximum read/write request and number of bytes to
-read/write in a single burst.
-
-Main node required properties:
-- compatible: "qcom,hidma-mgmt-1.0";
-- reg: Address range for DMA device
-- dma-channels: Number of channels supported by this DMA controller.
-- max-write-burst-bytes: Maximum write burst in bytes that HIDMA can
-  occupy the bus for in a single transaction. A memcpy requested is
-  fragmented to multiples of this amount. This parameter is used while
-  writing into destination memory. Setting this value incorrectly can
-  starve other peripherals in the system.
-- max-read-burst-bytes: Maximum read burst in bytes that HIDMA can
-  occupy the bus for in a single transaction. A memcpy request is
-  fragmented to multiples of this amount. This parameter is used while
-  reading the source memory. Setting this value incorrectly can starve
-  other peripherals in the system.
-- max-write-transactions: This value is how many times a write burst is
-  applied back to back while writing to the destination before yielding
-  the bus.
-- max-read-transactions: This value is how many times a read burst is
-  applied back to back while reading the source before yielding the bus.
-- channel-reset-timeout-cycles: Channel reset timeout in cycles for this SOC.
-  Once a reset is applied to the HW, HW starts a timer for reset operation
-  to confirm. If reset is not completed within this time, HW reports reset
-  failure.
-
-Sub-nodes:
-
-HIDMA has one or more DMA channels that are used to move data from one
-memory location to another.
-
-When the OS is not in control of the management interface (i.e. it's a guest),
-the channel nodes appear on their own, not under a management node.
-
-Required properties:
-- compatible: must contain "qcom,hidma-1.0" for initial HW or
-  "qcom,hidma-1.1"/"qcom,hidma-1.2" for MSI capable HW.
-- reg: Addresses for the transfer and event channel
-- interrupts: Should contain the event interrupt
-- desc-count: Number of asynchronous requests this channel can handle
-- iommus: required a iommu node
-
-Optional properties for MSI:
-- msi-parent : See the generic MSI binding described in
- devicetree/bindings/interrupt-controller/msi.txt for a description of the
- msi-parent property.
-
-Example:
-
-Hypervisor OS configuration:
-
-       hidma-mgmt@f9984000 = {
-               compatible = "qcom,hidma-mgmt-1.0";
-               reg = <0xf9984000 0x15000>;
-               dma-channels = <6>;
-               max-write-burst-bytes = <1024>;
-               max-read-burst-bytes = <1024>;
-               max-write-transactions = <31>;
-               max-read-transactions = <31>;
-               channel-reset-timeout-cycles = <0x500>;
-
-               hidma_24: dma-controller@5c050000 {
-                       compatible = "qcom,hidma-1.0";
-                       reg = <0 0x5c050000 0x0 0x1000>,
-                             <0 0x5c0b0000 0x0 0x1000>;
-                       interrupts = <0 389 0>;
-                       desc-count = <10>;
-                       iommus = <&system_mmu>;
-               };
-       };
-
-Guest OS configuration:
-
-       hidma_24: dma-controller@5c050000 {
-               compatible = "qcom,hidma-1.0";
-               reg = <0 0x5c050000 0x0 0x1000>,
-                     <0 0x5c0b0000 0x0 0x1000>;
-               interrupts = <0 389 0>;
-               desc-count = <10>;
-               iommus = <&system_mmu>;
-       };
index 5da8291a7de09ea105268b5dca76502765e98a24..c21a4f073f6c8f53e13ee060b99c15ad2c5fbeee 100644 (file)
@@ -93,10 +93,10 @@ properties:
   data-width:
     $ref: /schemas/types.yaml#/definitions/uint32-array
     description: Data bus width per each DMA master in bytes.
+    minItems: 1
+    maxItems: 4
     items:
-      maxItems: 4
-      items:
-        enum: [4, 8, 16, 32]
+      enum: [4, 8, 16, 32]
 
   data_width:
     $ref: /schemas/types.yaml#/definitions/uint32-array
@@ -106,28 +106,28 @@ properties:
       deprecated. It' usage is discouraged in favor of data-width one. Moreover
       the property incorrectly permits to define data-bus width of 8 and 16
       bits, which is impossible in accordance with DW DMAC IP-core data book.
+    minItems: 1
+    maxItems: 4
     items:
-      maxItems: 4
-      items:
-        enum:
-          - 0 # 8 bits
-          - 1 # 16 bits
-          - 2 # 32 bits
-          - 3 # 64 bits
-          - 4 # 128 bits
-          - 5 # 256 bits
-        default: 0
+      enum:
+        - 0 # 8 bits
+        - 1 # 16 bits
+        - 2 # 32 bits
+        - 3 # 64 bits
+        - 4 # 128 bits
+        - 5 # 256 bits
+      default: 0
 
   multi-block:
     $ref: /schemas/types.yaml#/definitions/uint32-array
     description: |
       LLP-based multi-block transfer supported by hardware per
       each DMA channel.
+    minItems: 1
+    maxItems: 8
     items:
-      maxItems: 8
-      items:
-        enum: [0, 1]
-        default: 1
+      enum: [0, 1]
+      default: 1
 
   snps,max-burst-len:
     $ref: /schemas/types.yaml#/definitions/uint32-array
@@ -138,11 +138,11 @@ properties:
       will be from 1 to max-burst-len words. It's an array property with one
       cell per channel in the units determined by the value set in the
       CTLx.SRC_TR_WIDTH/CTLx.DST_TR_WIDTH fields (data width).
+    minItems: 1
+    maxItems: 8
     items:
-      maxItems: 8
-      items:
-        enum: [4, 8, 16, 32, 64, 128, 256]
-        default: 256
+      enum: [4, 8, 16, 32, 64, 128, 256]
+      default: 256
 
   snps,dma-protection-control:
     $ref: /schemas/types.yaml#/definitions/uint32
index 363cf8bd150da2fe23e54b84d955f4392fb118b0..525f5f3932f548b64a7f75a95afef6f24b2c2a7b 100644 (file)
@@ -21,6 +21,7 @@ properties:
       - snps,axi-dma-1.01a
       - intel,kmb-axi-dma
       - starfive,jh7110-axi-dma
+      - starfive,jh8100-axi-dma
 
   reg:
     minItems: 1
index 329847ef096a1fb5a28749296288136c5e2bc31c..ff935a0068ec5888001ca0e7249f6bbb6c07d778 100644 (file)
@@ -82,6 +82,10 @@ properties:
     description: if defined, it indicates that the controller
       supports memory-to-memory transfer
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
index e722fbcd8a5f432ad11482cdeaf8df55a21a2dfc..ddf82bf1e71aebdd09591dce906206417e8289b2 100644 (file)
@@ -28,6 +28,10 @@ properties:
   resets:
     maxItems: 1
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
index 4591523b51a0d4ede50b30fd9ed014a2338a512c..7de2c29606e5aa4ab985273950468471df83fa96 100644 (file)
@@ -247,6 +247,37 @@ properties:
       reg:
         const: 0x18
 
+  protocol@19:
+    type: object
+    allOf:
+      - $ref: '#/$defs/protocol-node'
+      - $ref: /schemas/pinctrl/pinctrl.yaml
+
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        const: 0x19
+
+    patternProperties:
+      '-pins$':
+        type: object
+        allOf:
+          - $ref: /schemas/pinctrl/pincfg-node.yaml#
+          - $ref: /schemas/pinctrl/pinmux-node.yaml#
+        unevaluatedProperties: false
+
+        description:
+          A pin multiplexing sub-node describes how to configure a
+          set of pins in some desired function.
+          A single sub-node may define several pin configurations.
+          This sub-node is using the default pinctrl bindings to configure
+          pin multiplexing and using SCMI protocol to apply a specified
+          configuration.
+
+    required:
+      - reg
+
 additionalProperties: false
 
 $defs:
@@ -355,7 +386,7 @@ examples:
 
             scmi_dvfs: protocol@13 {
                 reg = <0x13>;
-                #clock-cells = <1>;
+                #power-domain-cells = <1>;
 
                 mboxes = <&mhuB 1 0>,
                          <&mhuB 1 1>;
@@ -401,6 +432,25 @@ examples:
             scmi_powercap: protocol@18 {
                 reg = <0x18>;
             };
+
+            scmi_pinctrl: protocol@19 {
+                reg = <0x19>;
+
+                i2c2-pins {
+                    groups = "g_i2c2_a", "g_i2c2_b";
+                    function = "f_i2c2";
+                };
+
+                mdio-pins {
+                    groups = "g_avb_mdio";
+                    drive-strength = <24>;
+                };
+
+                keys_pins: keys-pins {
+                    pins = "gpio_5_17", "gpio_5_20", "gpio_5_22", "gpio_2_1";
+                    bias-pull-up;
+                };
+            };
         };
     };
 
@@ -468,7 +518,7 @@ examples:
                 reg = <0x13>;
                 linaro,optee-channel-id = <1>;
                 shmem = <&cpu_optee_lpri0>;
-                #clock-cells = <1>;
+                #power-domain-cells = <1>;
             };
 
             scmi_clk0: protocol@14 {
diff --git a/Bindings/fpga/xlnx,fpga-selectmap.yaml b/Bindings/fpga/xlnx,fpga-selectmap.yaml
new file mode 100644 (file)
index 0000000..0577574
--- /dev/null
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/fpga/xlnx,fpga-selectmap.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Xilinx SelectMAP FPGA interface
+
+maintainers:
+  - Charles Perry <charles.perry@savoirfairelinux.com>
+
+description: |
+  Xilinx 7 Series FPGAs support a method of loading the bitstream over a
+  parallel port named the SelectMAP interface in the documentation. Only
+  the x8 mode is supported where data is loaded at one byte per rising edge of
+  the clock, with the MSB of each byte presented to the D0 pin.
+
+  Datasheets:
+    https://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf
+
+allOf:
+  - $ref: /schemas/memory-controllers/mc-peripheral-props.yaml#
+
+properties:
+  compatible:
+    enum:
+      - xlnx,fpga-xc7s-selectmap
+      - xlnx,fpga-xc7a-selectmap
+      - xlnx,fpga-xc7k-selectmap
+      - xlnx,fpga-xc7v-selectmap
+
+  reg:
+    description:
+      At least 1 byte of memory mapped IO
+    maxItems: 1
+
+  prog-gpios:
+    description:
+      config pin (referred to as PROGRAM_B in the manual)
+    maxItems: 1
+
+  done-gpios:
+    description:
+      config status pin (referred to as DONE in the manual)
+    maxItems: 1
+
+  init-gpios:
+    description:
+      initialization status and configuration error pin
+      (referred to as INIT_B in the manual)
+    maxItems: 1
+
+  csi-gpios:
+    description:
+      chip select pin (referred to as CSI_B in the manual)
+      Optional gpio for if the bus controller does not provide a chip select.
+    maxItems: 1
+
+  rdwr-gpios:
+    description:
+      read/write select pin (referred to as RDWR_B in the manual)
+      Optional gpio for if the bus controller does not provide this pin.
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - prog-gpios
+  - done-gpios
+  - init-gpios
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    fpga-mgr@8000000 {
+      compatible = "xlnx,fpga-xc7s-selectmap";
+      reg = <0x8000000 0x4>;
+      prog-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>;
+      init-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
+      done-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;
+      csi-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
+      rdwr-gpios = <&gpio3 10 GPIO_ACTIVE_LOW>;
+    };
+...
index a1e71c974e79cef0289587453e835e47b2415a7b..f096f286da19cd1db7a92294a531e976e57b0bdb 100644 (file)
@@ -62,6 +62,8 @@ properties:
 
   interrupt-controller: true
 
+  gpio-ranges: true
+
   wakeup-source:
     type: boolean
     description: >
@@ -88,6 +90,7 @@ examples:
         interrupt-parent = <&irq0_intc>;
         interrupts = <0x6>;
         brcm,gpio-bank-widths = <32 32 32 24>;
+        gpio-ranges = <&pinctrl 0 0 120>;
     };
 
     upg_gio_aon: gpio@f04172c0 {
index d481e78958a74ae9f62f61c83d12eaf9caf51a3f..d61569b3f15b2aae13fe3790fa780f885a863559 100644 (file)
@@ -14,6 +14,7 @@ properties:
     items:
       - enum:
           - microchip,mpfs-gpio
+          - microchip,coregpio-rtl-v3
 
   reg:
     maxItems: 1
@@ -43,6 +44,7 @@ properties:
     default: 32
 
   gpio-controller: true
+  gpio-line-names: true
 
 patternProperties:
   "^.+-hog(-[0-9]+)?$":
@@ -62,12 +64,21 @@ patternProperties:
       - gpio-hog
       - gpios
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: microchip,mpfs-gpio
+    then:
+      required:
+        - interrupts
+        - "#interrupt-cells"
+        - interrupt-controller
+
 required:
   - compatible
   - reg
-  - interrupts
-  - "#interrupt-cells"
-  - interrupt-controller
   - "#gpio-cells"
   - gpio-controller
   - clocks
diff --git a/Bindings/gpio/raspberrypi,firmware-gpio.txt b/Bindings/gpio/raspberrypi,firmware-gpio.txt
deleted file mode 100644 (file)
index ce97265..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Raspberry Pi GPIO expander
-
-The Raspberry Pi 3 GPIO expander is controlled by the VC4 firmware. The
-firmware exposes a mailbox interface that allows the ARM core to control the
-GPIO lines on the expander.
-
-The Raspberry Pi GPIO expander node must be a child node of the Raspberry Pi
-firmware node.
-
-Required properties:
-
-- compatible : Should be "raspberrypi,firmware-gpio"
-- gpio-controller : Marks the device node as a gpio controller
-- #gpio-cells : Should be two.  The first cell is the pin number, and
-  the second cell is used to specify the gpio polarity:
-  0 = active high
-  1 = active low
-
-Example:
-
-firmware: firmware-rpi {
-       compatible = "raspberrypi,bcm2835-firmware";
-       mboxes = <&mailbox>;
-
-       expgpio: gpio {
-                compatible = "raspberrypi,firmware-gpio";
-                gpio-controller;
-                #gpio-cells = <2>;
-        };
-};
diff --git a/Bindings/gpu/arm,mali-valhall-csf.yaml b/Bindings/gpu/arm,mali-valhall-csf.yaml
new file mode 100644 (file)
index 0000000..a5b4e00
--- /dev/null
@@ -0,0 +1,147 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpu/arm,mali-valhall-csf.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ARM Mali Valhall GPU
+
+maintainers:
+  - Liviu Dudau <liviu.dudau@arm.com>
+  - Boris Brezillon <boris.brezillon@collabora.com>
+
+properties:
+  $nodename:
+    pattern: '^gpu@[a-f0-9]+$'
+
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - rockchip,rk3588-mali
+          - const: arm,mali-valhall-csf   # Mali Valhall GPU model/revision is fully discoverable
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: Job interrupt
+      - description: MMU interrupt
+      - description: GPU interrupt
+
+  interrupt-names:
+    items:
+      - const: job
+      - const: mmu
+      - const: gpu
+
+  clocks:
+    minItems: 1
+    maxItems: 3
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: core
+      - const: coregroup
+      - const: stacks
+
+  mali-supply: true
+
+  operating-points-v2: true
+  opp-table:
+    type: object
+
+  power-domains:
+    minItems: 1
+    maxItems: 5
+
+  power-domain-names:
+    minItems: 1
+    maxItems: 5
+
+  sram-supply: true
+
+  "#cooling-cells":
+    const: 2
+
+  dynamic-power-coefficient:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      A u32 value that represents the running time dynamic
+      power coefficient in units of uW/MHz/V^2. The
+      coefficient can either be calculated from power
+      measurements or derived by analysis.
+
+      The dynamic power consumption of the GPU is
+      proportional to the square of the Voltage (V) and
+      the clock frequency (f). The coefficient is used to
+      calculate the dynamic power as below -
+
+      Pdyn = dynamic-power-coefficient * V^2 * f
+
+      where voltage is in V, frequency is in MHz.
+
+  dma-coherent: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-names
+  - clocks
+  - mali-supply
+
+additionalProperties: false
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk3588-mali
+    then:
+      properties:
+        clocks:
+          minItems: 3
+        power-domains:
+          maxItems: 1
+        power-domain-names: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/rockchip,rk3588-cru.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/rk3588-power.h>
+
+    gpu: gpu@fb000000 {
+        compatible = "rockchip,rk3588-mali", "arm,mali-valhall-csf";
+        reg = <0xfb000000 0x200000>;
+        interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH 0>,
+                     <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>,
+                     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>;
+        interrupt-names = "job", "mmu", "gpu";
+        clock-names = "core", "coregroup", "stacks";
+        clocks = <&cru CLK_GPU>, <&cru CLK_GPU_COREGROUP>,
+                 <&cru CLK_GPU_STACKS>;
+        power-domains = <&power RK3588_PD_GPU>;
+        operating-points-v2 = <&gpu_opp_table>;
+        mali-supply = <&vdd_gpu_s0>;
+        sram-supply = <&vdd_gpu_mem_s0>;
+
+        gpu_opp_table: opp-table {
+            compatible = "operating-points-v2";
+            opp-300000000 {
+                opp-hz = /bits/ 64 <300000000>;
+                opp-microvolt = <675000 675000 850000>;
+            };
+            opp-400000000 {
+                opp-hz = /bits/ 64 <400000000>;
+                opp-microvolt = <675000 675000 850000>;
+            };
+        };
+    };
+
+...
diff --git a/Bindings/hwmon/adc128d818.txt b/Bindings/hwmon/adc128d818.txt
deleted file mode 100644 (file)
index d0ae46d..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-TI ADC128D818 ADC System Monitor With Temperature Sensor
---------------------------------------------------------
-
-Operation modes:
-
- - Mode 0:  7 single-ended voltage readings (IN0-IN6),
-            1 temperature reading (internal)
- - Mode 1:  8 single-ended voltage readings (IN0-IN7),
-            no temperature
- - Mode 2:  4 pseudo-differential voltage readings
-              (IN0-IN1, IN3-IN2, IN4-IN5, IN7-IN6),
-            1 temperature reading (internal)
- - Mode 3:  4 single-ended voltage readings (IN0-IN3),
-            2 pseudo-differential voltage readings
-              (IN4-IN5, IN7-IN6),
-            1 temperature reading (internal)
-
-If no operation mode is configured via device tree, the driver keeps the
-currently active chip operation mode (default is mode 0).
-
-
-Required node properties:
-
- - compatible:  must be set to "ti,adc128d818"
- - reg:         I2C address of the device
-
-Optional node properties:
-
- - ti,mode:     Operation mode (u8) (see above).
-
-
-Example (operation mode 2):
-
-       adc128d818@1d {
-               compatible = "ti,adc128d818";
-               reg = <0x1d>;
-               ti,mode = /bits/ 8 <2>;
-       };
index b680612949642fb9c56bb9d08fea3f9e205315eb..5b076d677395f90f314ff1995e96909e987a2b48 100644 (file)
@@ -5,7 +5,7 @@
 $id: http://devicetree.org/schemas/hwmon/adi,adm1275.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Analog Devices ADM1075/ADM127x/ADM129x digital power monitors
+title: Analog Devices ADM1075/ADM127x/ADM1281/ADM129x digital power monitors
 
 maintainers:
   - Krzysztof Kozlowski <krzk@kernel.org>
@@ -27,6 +27,7 @@ properties:
       - adi,adm1275
       - adi,adm1276
       - adi,adm1278
+      - adi,adm1281
       - adi,adm1293
       - adi,adm1294
 
@@ -91,6 +92,7 @@ allOf:
           contains:
             enum:
               - adi,adm1278
+              - adi,adm1281
               - adi,adm1293
               - adi,adm1294
     then:
diff --git a/Bindings/hwmon/as370.txt b/Bindings/hwmon/as370.txt
deleted file mode 100644 (file)
index d102fe7..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-Bindings for Synaptics AS370 PVT sensors
-
-Required properties:
-- compatible : "syna,as370-hwmon"
-- reg        : address and length of the register set.
-
-Example:
-       hwmon@ea0810 {
-               compatible = "syna,as370-hwmon";
-               reg = <0xea0810 0xc>;
-       };
diff --git a/Bindings/hwmon/ibm,opal-sensor.yaml b/Bindings/hwmon/ibm,opal-sensor.yaml
new file mode 100644 (file)
index 0000000..376ee7f
--- /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/hwmon/ibm,opal-sensor.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IBM POWERNV platform sensors
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+properties:
+  compatible:
+    enum:
+      - ibm,opal-sensor-cooling-fan
+      - ibm,opal-sensor-amb-temp
+      - ibm,opal-sensor-power-supply
+      - ibm,opal-sensor-power
+
+  sensor-id:
+    description:
+      An opaque id provided by the firmware to the kernel, identifies a
+      given sensor and its attribute data.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+required:
+  - compatible
+  - sensor-id
+
+additionalProperties: false
+
+examples:
+  - |
+    sensor {
+        compatible = "ibm,opal-sensor-cooling-fan";
+        sensor-id = <0x7052107>;
+    };
diff --git a/Bindings/hwmon/ibm,p8-occ-hwmon.txt b/Bindings/hwmon/ibm,p8-occ-hwmon.txt
deleted file mode 100644 (file)
index 5dc5d2e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Device-tree bindings for I2C-based On-Chip Controller hwmon device
-------------------------------------------------------------------
-
-Required properties:
- - compatible = "ibm,p8-occ-hwmon";
- - reg = <I2C address>;                        : I2C bus address
-
-Examples:
-
-    i2c-bus@100 {
-        #address-cells = <1>;
-        #size-cells = <0>;
-        clock-frequency = <100000>;
-        < more properties >
-
-        occ-hwmon@1 {
-            compatible = "ibm,p8-occ-hwmon";
-            reg = <0x50>;
-        };
-
-        occ-hwmon@2 {
-            compatible = "ibm,p8-occ-hwmon";
-            reg = <0x51>;
-        };
-    };
diff --git a/Bindings/hwmon/ibmpowernv.txt b/Bindings/hwmon/ibmpowernv.txt
deleted file mode 100644 (file)
index f93242b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-IBM POWERNV platform sensors
-----------------------------
-
-Required node properties:
-- compatible: must be one of
-               "ibm,opal-sensor-cooling-fan"
-               "ibm,opal-sensor-amb-temp"
-               "ibm,opal-sensor-power-supply"
-               "ibm,opal-sensor-power"
-- sensor-id: an opaque id provided by the firmware to the kernel, identifies a
-            given sensor and its attribute data
-
-Example sensors node:
-
-cooling-fan#8-data {
-       sensor-id = <0x7052107>;
-       compatible = "ibm,opal-sensor-cooling-fan";
-};
-
-amb-temp#1-thrs {
-       sensor-id = <0x5096000>;
-       compatible = "ibm,opal-sensor-amb-temp";
-};
diff --git a/Bindings/hwmon/lm87.txt b/Bindings/hwmon/lm87.txt
deleted file mode 100644 (file)
index 758ff39..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-*LM87 hwmon sensor.
-
-Required properties:
-- compatible: Should be
-       "ti,lm87"
-
-- reg: I2C address
-
-optional properties:
-- has-temp3: This configures pins 18 and 19 to be used as a second
-             remote temperature sensing channel. By default the pins
-             are configured as voltage input pins in0 and in5.
-
-- has-in6: When set, pin 5 is configured to be used as voltage input
-           in6. Otherwise the pin is set as FAN1 input.
-
-- has-in7: When set, pin 6 is configured to be used as voltage input
-           in7. Otherwise the pin is set as FAN2 input.
-
-- vcc-supply: a Phandle for the regulator supplying power, can be
-              configured to measure 5.0V power supply. Default is 3.3V.
-
-Example:
-
-lm87@2e {
-       compatible = "ti,lm87";
-       reg = <0x2e>;
-       has-temp3;
-       vcc-supply = <&reg_5v0>;
-};
diff --git a/Bindings/hwmon/max6650.txt b/Bindings/hwmon/max6650.txt
deleted file mode 100644 (file)
index f6bd87d..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-Bindings for MAX6651 and MAX6650 I2C fan controllers
-
-Reference:
-[1]    https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
-
-Required properties:
-- compatible : One of "maxim,max6650" or "maxim,max6651"
-- reg        : I2C address, one of 0x1b, 0x1f, 0x4b, 0x48.
-
-Optional properties, default is to retain the chip's current setting:
-- maxim,fan-microvolt : The supply voltage of the fan, either 5000000 uV or
-                       12000000 uV.
-- maxim,fan-prescale  : Pre-scaling value, as per datasheet [1]. Lower values
-                       allow more fine-grained control of slower fans.
-                       Valid: 1, 2, 4, 8, 16.
-- maxim,fan-target-rpm: Initial requested fan rotation speed. If specified, the
-                       driver selects closed-loop mode and the requested speed.
-                       This ensures the fan is already running before userspace
-                       takes over.
-
-Example:
-       fan-max6650: max6650@1b {
-               reg = <0x1b>;
-               compatible = "maxim,max6650";
-               maxim,fan-microvolt = <12000000>;
-               maxim,fan-prescale = <4>;
-               maxim,fan-target-rpm = <1200>;
-       };
diff --git a/Bindings/hwmon/maxim,max6650.yaml b/Bindings/hwmon/maxim,max6650.yaml
new file mode 100644 (file)
index 0000000..2c26104
--- /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,max6650.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim MAX6650 and MAX6651 I2C Fan Controllers
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+description: |
+  The MAX6650 and MAX6651 regulate and monitor the speed
+  of 5VDC/12VDC burshless fans with built-in tachometers.
+
+  Datasheets:
+    https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
+
+properties:
+  compatible:
+    enum:
+      - maxim,max6650
+      - maxim,max6651
+
+  reg:
+    maxItems: 1
+
+  maxim,fan-microvolt:
+    description:
+      The supply voltage of the fan, either 5000000 uV or
+      12000000 uV.
+    enum: [5000000, 12000000]
+
+  maxim,fan-prescale:
+    description:
+      Pre-scaling value, as per datasheet. Lower values
+      allow more fine-grained control of slower fans.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [1, 2, 4, 8, 16]
+
+  maxim,fan-target-rpm:
+    description:
+      Initial requested fan rotation speed. If specified, the
+      driver selects closed-loop mode and the requested speed.
+      This ensures the fan is already running before userspace
+      takes over.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    maximum: 30000
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        fan-controller@1b {
+            compatible = "maxim,max6650";
+            reg = <0x1b>;
+            maxim,fan-microvolt = <12000000>;
+            maxim,fan-prescale = <4>;
+            maxim,fan-target-rpm = <1200>;
+        };
+    };
diff --git a/Bindings/hwmon/pmbus/adi,adp1050.yaml b/Bindings/hwmon/pmbus/adi,adp1050.yaml
new file mode 100644 (file)
index 0000000..10c2204
--- /dev/null
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/pmbus/adi,adp1050.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices ADP1050 digital controller with PMBus interface
+
+maintainers:
+  - Radu Sabau <radu.sabau@analog.com>
+
+description: |
+   The ADP1050 is used to monitor system voltages, currents and temperatures.
+   Through the PMBus interface, the ADP1050 targets isolated power supplies
+   and has four individual monitors for input/output voltage, input current
+   and temperature.
+   Datasheet:
+     https://www.analog.com/en/products/adp1050.html
+
+properties:
+  compatible:
+    const: adi,adp1050
+
+  reg:
+    maxItems: 1
+
+  vcc-supply: true
+
+required:
+  - compatible
+  - reg
+  - vcc-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        clock-frequency = <100000>;
+
+        hwmon@70 {
+            compatible = "adi,adp1050";
+            reg = <0x70>;
+            vcc-supply = <&vcc>;
+        };
+    };
+...
diff --git a/Bindings/hwmon/pwm-fan.txt b/Bindings/hwmon/pwm-fan.txt
deleted file mode 100644 (file)
index 48886f0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-This file has moved to pwm-fan.yaml.
diff --git a/Bindings/hwmon/st,stts751.yaml b/Bindings/hwmon/st,stts751.yaml
new file mode 100644 (file)
index 0000000..9c825ad
--- /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/hwmon/st,stts751.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STTS751 Thermometer
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+properties:
+  compatible:
+    const: st,stts751
+
+  reg:
+    maxItems: 1
+
+  smbus-timeout-disable:
+    description:
+      When set, the smbus timeout function will be disabled.
+    $ref: /schemas/types.yaml#/definitions/flag
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        thermometer@48 {
+            compatible = "st,stts751";
+            reg = <0x48>;
+            smbus-timeout-disable;
+        };
+    };
diff --git a/Bindings/hwmon/stts751.txt b/Bindings/hwmon/stts751.txt
deleted file mode 100644 (file)
index 3ee1dc3..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-* STTS751 thermometer.
-
-Required node properties:
-- compatible: "stts751"
-- reg: I2C bus address of the device
-
-Optional properties:
-- smbus-timeout-disable: when set, the smbus timeout function will be disabled
-
-Example stts751 node:
-
-temp-sensor {
-       compatible = "stts751";
-       reg = <0x48>;
-}
diff --git a/Bindings/hwmon/syna,as370.yaml b/Bindings/hwmon/syna,as370.yaml
new file mode 100644 (file)
index 0000000..1f7005f
--- /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/hwmon/syna,as370.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Synaptics AS370 PVT sensors
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+properties:
+  compatible:
+    const: syna,as370-hwmon
+
+  reg:
+    description:
+      Address and length of the register set.
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    sensor@ea0810 {
+        compatible = "syna,as370-hwmon";
+        reg = <0xea0810 0xc>;
+    };
diff --git a/Bindings/hwmon/ti,adc128d818.yaml b/Bindings/hwmon/ti,adc128d818.yaml
new file mode 100644 (file)
index 0000000..a320354
--- /dev/null
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+
+$id: http://devicetree.org/schemas/hwmon/ti,adc128d818.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments ADC128D818 ADC System Monitor With Temperature Sensor
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+description: |
+  The ADC128D818 is a 12-Bit, 8-Channel Analog to Digital Converter (ADC)
+  with a temperature sensor and an I2C interface.
+
+  Datasheets:
+    https://www.ti.com/product/ADC128D818
+
+properties:
+  compatible:
+    const: ti,adc128d818
+
+  reg:
+    maxItems: 1
+
+  ti,mode:
+    $ref: /schemas/types.yaml#/definitions/uint8
+    description: |
+      Operation mode.
+      Mode 0  - 7 single-ended voltage readings (IN0-IN6), 1 temperature
+      reading (internal).
+      Mode 1 - 8 single-ended voltage readings (IN0-IN7), no temperature.
+      Mode 2 - 4 pseudo-differential voltage readings
+      (IN0-IN1, IN3-IN2, IN4-IN5, IN7-IN6), 1 temperature reading (internal).
+      Mode 3 - 4 single-ended voltage readings (IN0-IN3), 2 pseudo-differential
+      voltage readings (IN4-IN5, IN7-IN6), 1 temperature reading (internal).
+    default: 0
+
+  vref-supply:
+    description:
+      The regulator to use as an external reference. If it does not exist, the
+      internal reference will be used.
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@1d {
+            compatible = "ti,adc128d818";
+            reg = <0x1d>;
+            vref-supply = <&vref>;
+            ti,mode = /bits/ 8 <2>;
+        };
+    };
diff --git a/Bindings/hwmon/ti,lm87.yaml b/Bindings/hwmon/ti,lm87.yaml
new file mode 100644 (file)
index 0000000..f553235
--- /dev/null
@@ -0,0 +1,69 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+
+$id: http://devicetree.org/schemas/hwmon/ti,lm87.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments LM87 Hardware Monitor
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+description: |
+  The LM87 is a serial interface system hardware monitor
+  with remote diode temperature sensing.
+
+  Datasheets:
+    https://www.ti.com/product/LM87
+
+properties:
+  compatible:
+    const: ti,lm87
+
+  reg:
+    maxItems: 1
+
+  has-temp3:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      This configures pins 18 and 19 to be used as a second
+      remote temperature sensing channel. By default the pins
+      are configured as voltage input pins in0 and in5.
+
+  has-in6:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      When set, pin 5 is configured to be used as voltage input
+      in6. Otherwise the pin is set as FAN1 input.
+
+  has-in7:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      When set, pin 6 is configured to be used as voltage input
+      in7. Otherwise the pin is set as FAN2 input.
+
+  vcc-supply:
+    description:
+      Regulator supplying power, can be configured to measure
+      5.0V power supply. Default is 3.3V.
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        hwmon@2e {
+            compatible = "ti,lm87";
+            reg = <0x2e>;
+            has-temp3;
+            vcc-supply = <&reg_5v0>;
+        };
+    };
index b1c13bab24722ff5ccdbb99e4bf9ecd7dc81f16d..b2d19cfb87addc250bda299ea8508209d10b635b 100644 (file)
@@ -77,7 +77,7 @@ required:
   - clocks
 
 allOf:
-  - $ref: i2c-controller.yaml
+  - $ref: /schemas/i2c/i2c-controller.yaml#
   - if:
       properties:
         compatible:
index ab151c9db219132d32b5ae28674f8d2cbbfe51e0..580003cdfff59ef6a847f8136327a5ae7fd39d0d 100644 (file)
@@ -21,7 +21,7 @@ description: |
   google,cros-ec-spi or google,cros-ec-i2c.
 
 allOf:
-  - $ref: i2c-controller.yaml#
+  - $ref: /schemas/i2c/i2c-controller.yaml#
 
 properties:
   compatible:
diff --git a/Bindings/i2c/i2c-pnx.txt b/Bindings/i2c/i2c-pnx.txt
deleted file mode 100644 (file)
index 2a59006..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-* NXP PNX I2C Controller
-
-Required properties:
-
- - reg: Offset and length of the register set for the device
- - compatible: should be "nxp,pnx-i2c"
- - interrupts: configure one interrupt line
- - #address-cells: always 1 (for i2c addresses)
- - #size-cells: always 0
-
-Optional properties:
-
- - clock-frequency: desired I2C bus clock frequency in Hz, Default: 100000 Hz
-
-Examples:
-
-       i2c1: i2c@400a0000 {
-               compatible = "nxp,pnx-i2c";
-               reg = <0x400a0000 0x100>;
-               interrupt-parent = <&mic>;
-               interrupts = <51 0>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-       };
-
-       i2c2: i2c@400a8000 {
-               compatible = "nxp,pnx-i2c";
-               reg = <0x400a8000 0x100>;
-               interrupt-parent = <&mic>;
-               interrupts = <50 0>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               clock-frequency = <100000>;
-       };
diff --git a/Bindings/i2c/nxp,pnx-i2c.yaml b/Bindings/i2c/nxp,pnx-i2c.yaml
new file mode 100644 (file)
index 0000000..798a693
--- /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/i2c/nxp,pnx-i2c.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP PNX I2C Controller
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+allOf:
+  - $ref: /schemas/i2c/i2c-controller.yaml#
+
+properties:
+  compatible:
+    const: nxp,pnx-i2c
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clock-frequency:
+    default: 100000
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - "#address-cells"
+  - "#size-cells"
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c@400a0000 {
+        compatible = "nxp,pnx-i2c";
+        reg = <0x400a0000 0x100>;
+        interrupt-parent = <&mic>;
+        interrupts = <51 0>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+    };
index f0eabff863106afdaf8547fceb0126ae1147dc88..daf4e71b8e7f9326fff477e36e0d56672a9e8cdb 100644 (file)
@@ -26,6 +26,7 @@ properties:
       - items:
           - enum:
               - qcom,sc7280-cci
+              - qcom,sc8280xp-cci
               - qcom,sdm845-cci
               - qcom,sm6350-cci
               - qcom,sm8250-cci
@@ -176,6 +177,24 @@ allOf:
             - const: cci
             - const: cci_src
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sc8280xp-cci
+    then:
+      properties:
+        clocks:
+          minItems: 4
+          maxItems: 4
+        clock-names:
+          items:
+            - const: camnoc_axi
+            - const: slow_ahb_src
+            - const: cpas_ahb
+            - const: cci
+
 additionalProperties: false
 
 examples:
index 2291a7cd619be4eedef4be803663fadc60f946a8..91ecf17b7a81a1447ef8adbcd1a8224228681a5c 100644 (file)
@@ -15,14 +15,17 @@ allOf:
 
 properties:
   compatible:
-    items:
-      - enum:
-          - renesas,riic-r7s72100   # RZ/A1H
-          - renesas,riic-r7s9210    # RZ/A2M
-          - renesas,riic-r9a07g043  # RZ/G2UL and RZ/Five
-          - renesas,riic-r9a07g044  # RZ/G2{L,LC}
-          - renesas,riic-r9a07g054  # RZ/V2L
-      - const: renesas,riic-rz      # RZ/A or RZ/G2L
+    oneOf:
+      - items:
+          - enum:
+              - renesas,riic-r7s72100   # RZ/A1H
+              - renesas,riic-r7s9210    # RZ/A2M
+              - renesas,riic-r9a07g043  # RZ/G2UL and RZ/Five
+              - renesas,riic-r9a07g044  # RZ/G2{L,LC}
+              - renesas,riic-r9a07g054  # RZ/V2L
+          - const: renesas,riic-rz      # RZ/A or RZ/G2L
+
+      - const: renesas,riic-r9a09g057   # RZ/V2H(P)
 
   reg:
     maxItems: 1
index 1b31b87c1800a00d8935d261432117ea5d601191..8fd8be76875ec12b71da052d6ef5614dd944e7ed 100644 (file)
@@ -127,6 +127,10 @@ properties:
 
   wakeup-source: true
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
index 07cacc3f6a975b5e138cb4fddd843c24865ad372..280ed479ef5abc24c9d2361f8dcd81e012c8ba8a 100644 (file)
@@ -32,6 +32,8 @@ properties:
 
   spi-cpol: true
 
+  spi-3wire: true
+
   interrupts:
     maxItems: 1
 
diff --git a/Bindings/iio/adc/adi,ad7173.yaml b/Bindings/iio/adc/adi,ad7173.yaml
new file mode 100644 (file)
index 0000000..ea6cfcd
--- /dev/null
@@ -0,0 +1,279 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2023 Analog Devices Inc.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/adi,ad7173.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AD7173 ADC
+
+maintainers:
+  - Ceclan Dumitru <dumitru.ceclan@analog.com>
+
+description: |
+  Analog Devices AD717x ADC's:
+  The AD717x family offer a complete integrated Sigma-Delta ADC solution which
+  can be used in high precision, low noise single channel applications
+  (Life Science measurements) or higher speed multiplexed applications
+  (Factory Automation PLC Input modules). The Sigma-Delta ADC is intended
+  primarily for measurement of signals close to DC but also delivers
+  outstanding performance with input bandwidths out to ~10kHz.
+
+  Datasheets for supported chips:
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-2.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-4.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7173-8.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7175-2.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7175-8.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7176-2.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7177-2.pdf
+
+properties:
+  compatible:
+    enum:
+      - adi,ad7172-2
+      - adi,ad7172-4
+      - adi,ad7173-8
+      - adi,ad7175-2
+      - adi,ad7175-8
+      - adi,ad7176-2
+      - adi,ad7177-2
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    minItems: 1
+    items:
+      - description: |
+          Ready: multiplexed with SPI data out. While SPI CS is low,
+          can be used to indicate the completion of a conversion.
+
+      - description: |
+          Error: The three error bits in the status register (ADC_ERROR, CRC_ERROR,
+          and REG_ERROR) are OR'ed, inverted, and mapped to the ERROR pin.
+          Therefore, the ERROR pin indicates that an error has occurred.
+
+  interrupt-names:
+    minItems: 1
+    items:
+      - const: rdy
+      - const: err
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+  spi-max-frequency:
+    maximum: 20000000
+
+  gpio-controller:
+    description: Marks the device node as a GPIO controller.
+
+  '#gpio-cells':
+    const: 2
+    description:
+      The first cell is the GPIO number and the second cell specifies
+      GPIO flags, as defined in <dt-bindings/gpio/gpio.h>.
+
+  vref-supply:
+    description: |
+      Differential external reference supply used for conversion. The reference
+      voltage (Vref) specified here must be the voltage difference between the
+      REF+ and REF- pins: Vref = (REF+) - (REF-).
+
+  vref2-supply:
+    description: |
+      Differential external reference supply used for conversion. The reference
+      voltage (Vref2) specified here must be the voltage difference between the
+      REF2+ and REF2- pins: Vref2 = (REF2+) - (REF2-).
+
+  avdd-supply:
+    description: Avdd supply, can be used as reference for conversion.
+                 This supply is referenced to AVSS, voltage specified here
+                 represents (AVDD1 - AVSS).
+
+  avdd2-supply:
+    description: Avdd2 supply, used as the input to the internal voltage regulator.
+                 This supply is referenced to AVSS, voltage specified here
+                 represents (AVDD2 - AVSS).
+
+  iovdd-supply:
+    description: iovdd supply, used for the chip digital interface.
+
+  clocks:
+    maxItems: 1
+    description: |
+      Optional external clock source. Can include one clock source: external
+      clock or external crystal.
+
+  clock-names:
+    enum:
+      - ext-clk
+      - xtal
+
+  '#clock-cells':
+    const: 0
+
+patternProperties:
+  "^channel@[0-9a-f]$":
+    type: object
+    $ref: adc.yaml
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        minimum: 0
+        maximum: 15
+
+      diff-channels:
+        items:
+          minimum: 0
+          maximum: 31
+
+      adi,reference-select:
+        description: |
+          Select the reference source to use when converting on
+          the specific channel. Valid values are:
+          vref       : REF+  /REF−
+          vref2      : REF2+ /REF2−
+          refout-avss: REFOUT/AVSS (Internal reference)
+          avdd       : AVDD  /AVSS
+
+          External reference ref2 only available on ad7173-8 and ad7172-4.
+          Internal reference refout-avss not available on ad7172-4.
+
+          If not specified, internal reference used (if available).
+        $ref: /schemas/types.yaml#/definitions/string
+        enum:
+          - vref
+          - vref2
+          - refout-avss
+          - avdd
+        default: refout-avss
+
+    required:
+      - reg
+      - diff-channels
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+  # Only ad7172-4, ad7173-8 and ad7175-8 support vref2
+  # Other models have [0-3] channel registers
+  - if:
+      properties:
+        compatible:
+          not:
+            contains:
+              enum:
+                - adi,ad7172-4
+                - adi,ad7173-8
+                - adi,ad7175-8
+    then:
+      properties:
+        vref2-supply: false
+      patternProperties:
+        "^channel@[0-9a-f]$":
+          properties:
+            adi,reference-select:
+              enum:
+                - vref
+                - refout-avss
+                - avdd
+            reg:
+              maximum: 3
+
+  # Model ad7172-4 does not support internal reference
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: adi,ad7172-4
+    then:
+      patternProperties:
+        "^channel@[0-9a-f]$":
+          properties:
+            reg:
+              maximum: 7
+            adi,reference-select:
+              enum:
+                - vref
+                - vref2
+                - avdd
+          required:
+            - adi,reference-select
+
+  - if:
+      anyOf:
+        - required: [clock-names]
+        - required: [clocks]
+    then:
+      properties:
+        '#clock-cells': false
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      adc@0 {
+        compatible = "adi,ad7173-8";
+        reg = <0>;
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
+        interrupt-names = "rdy";
+        interrupt-parent = <&gpio>;
+        spi-max-frequency = <5000000>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        #clock-cells = <0>;
+
+        vref-supply = <&dummy_regulator>;
+
+        channel@0 {
+          reg = <0>;
+          bipolar;
+          diff-channels = <0 1>;
+          adi,reference-select = "vref";
+        };
+
+        channel@1 {
+          reg = <1>;
+          diff-channels = <2 3>;
+        };
+
+        channel@2 {
+          reg = <2>;
+          bipolar;
+          diff-channels = <4 5>;
+        };
+
+        channel@3 {
+          reg = <3>;
+          bipolar;
+          diff-channels = <6 7>;
+        };
+
+        channel@4 {
+          reg = <4>;
+          diff-channels = <8 9>;
+          adi,reference-select = "avdd";
+        };
+      };
+    };
diff --git a/Bindings/iio/adc/adi,ad7944.yaml b/Bindings/iio/adc/adi,ad7944.yaml
new file mode 100644 (file)
index 0000000..d17d184
--- /dev/null
@@ -0,0 +1,213 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/adi,ad7944.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices PulSAR LFCSP Analog to Digital Converters
+
+maintainers:
+  - Michael Hennerich <Michael.Hennerich@analog.com>
+  - Nuno Sá <nuno.sa@analog.com>
+
+description: |
+  A family of pin-compatible single channel differential analog to digital
+  converters with SPI support in a LFCSP package.
+
+  * https://www.analog.com/en/products/ad7944.html
+  * https://www.analog.com/en/products/ad7985.html
+  * https://www.analog.com/en/products/ad7986.html
+
+$ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    enum:
+      - adi,ad7944
+      - adi,ad7985
+      - adi,ad7986
+
+  reg:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 111111111
+
+  spi-cpol: true
+  spi-cpha: true
+
+  adi,spi-mode:
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [ single, chain ]
+    description: |
+      This property indicates the SPI wiring configuration.
+
+      When this property is omitted, it is assumed that the device is using what
+      the datasheet calls "4-wire mode". This is the conventional SPI mode used
+      when there are multiple devices on the same bus. In this mode, the CNV
+      line is used to initiate the conversion and the SDI line is connected to
+      CS on the SPI controller.
+
+      When this property is present, it indicates that the device is using one
+      of the following alternative wiring configurations:
+
+      * single: The datasheet calls this "3-wire mode". (NOTE: The datasheet's
+        definition of 3-wire mode is NOT at all related to the standard
+        spi-3wire property!) This mode is often used when the ADC is the only
+        device on the bus. In this mode, SDI is tied to VIO, and the CNV line
+        can be connected to the CS line of the SPI controller or to a GPIO, in
+        which case the CS line of the controller is unused.
+      * chain: The datasheet calls this "chain mode". This mode is used to save
+        on wiring when multiple ADCs are used. In this mode, the SDI line of
+        one chip is tied to the SDO of the next chip in the chain and the SDI of
+        the last chip in the chain is tied to GND. Only the first chip in the
+        chain is connected to the SPI bus. The CNV line of all chips are tied
+        together. The CS line of the SPI controller can be used as the CNV line
+        only if it is active high.
+
+  '#daisy-chained-devices': true
+
+  avdd-supply:
+    description: A 2.5V supply that powers the analog circuitry.
+
+  dvdd-supply:
+    description: A 2.5V supply that powers the digital circuitry.
+
+  vio-supply:
+    description:
+      A 1.8V to 2.7V supply for the digital inputs and outputs.
+
+  bvdd-supply:
+    description:
+      A voltage supply for the buffered power. When using an external reference
+      without an internal buffer (PDREF high, REFIN low), this should be
+      connected to the same supply as ref-supply. Otherwise, when using an
+      internal reference or an external reference with an internal buffer, this
+      is connected to a 5V supply.
+
+  ref-supply:
+    description:
+      Voltage regulator for the external reference voltage (REF). This property
+      is omitted when using an internal reference.
+
+  refin-supply:
+    description:
+      Voltage regulator for the reference buffer input (REFIN). When using an
+      external buffer with internal reference, this should be connected to a
+      1.2V external reference voltage supply. Otherwise, this property is
+      omitted.
+
+  cnv-gpios:
+    description:
+      The Convert Input (CNV). This input has multiple functions. It initiates
+      the conversions and selects the SPI mode of the device (chain or CS). In
+      'single' mode, this property is omitted if the CNV pin is connected to the
+      CS line of the SPI controller.
+    maxItems: 1
+
+  turbo-gpios:
+    description:
+      GPIO connected to the TURBO line. If omitted, it is assumed that the TURBO
+      line is hard-wired and the state is determined by the adi,always-turbo
+      property.
+    maxItems: 1
+
+  adi,always-turbo:
+    type: boolean
+    description:
+      When present, this property indicates that the TURBO line is hard-wired
+      and the state is always high. If neither this property nor turbo-gpios is
+      present, the TURBO line is assumed to be hard-wired and the state is
+      always low.
+
+  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 ('single' mode) or the
+      SDI line is low and the CNV line is high ('multi' mode); or when the SDO
+      line goes high while the SDI and CNV lines are high (chain mode),
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - avdd-supply
+  - dvdd-supply
+  - vio-supply
+  - bvdd-supply
+
+allOf:
+  # ref-supply and refin-supply are mutually exclusive (neither is also valid)
+  - if:
+      required:
+        - ref-supply
+    then:
+      properties:
+        refin-supply: false
+  - if:
+      required:
+        - refin-supply
+    then:
+      properties:
+        ref-supply: false
+  # in '4-wire' mode, cnv-gpios is required, for other modes it is optional
+  - if:
+      not:
+        required:
+          - adi,spi-mode
+    then:
+      required:
+        - cnv-gpios
+  # chain mode has lower SCLK max rate and doesn't work when TURBO is enabled
+  - if:
+      required:
+        - adi,spi-mode
+      properties:
+        adi,spi-mode:
+          const: chain
+    then:
+      properties:
+        spi-max-frequency:
+          maximum: 90909090
+        adi,always-turbo: false
+      required:
+        - '#daisy-chained-devices'
+    else:
+      properties:
+        '#daisy-chained-devices': false
+  # turbo-gpios and adi,always-turbo are mutually exclusive
+  - if:
+      required:
+        - turbo-gpios
+    then:
+      properties:
+        adi,always-turbo: false
+  - if:
+      required:
+        - adi,always-turbo
+    then:
+      properties:
+        turbo-gpios: false
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        adc@0 {
+            compatible = "adi,ad7944";
+            reg = <0>;
+            spi-cpha;
+            spi-max-frequency = <111111111>;
+            avdd-supply = <&supply_2_5V>;
+            dvdd-supply = <&supply_2_5V>;
+            vio-supply = <&supply_1_8V>;
+            bvdd-supply = <&supply_5V>;
+            cnv-gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+            turbo-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+        };
+    };
index 3d49d21ad33df256f722ad0ec5203ef822910203..e1f450b80db27896c0c2f939e247396caf0a0e9c 100644 (file)
@@ -28,6 +28,9 @@ properties:
   reg:
     maxItems: 1
 
+  clocks:
+    maxItems: 1
+
   dmas:
     maxItems: 1
 
@@ -48,6 +51,7 @@ required:
   - compatible
   - dmas
   - reg
+  - clocks
 
 additionalProperties: false
 
@@ -58,6 +62,7 @@ examples:
         reg = <0x44a00000 0x10000>;
         dmas = <&rx_dma 0>;
         dma-names = "rx";
+        clocks = <&axi_clk>;
         #io-backend-cells = <0>;
     };
 ...
index 7ef46c90ebc8ea209205597f405a64f3ebf0e0d7..da605a051b949729bc4aff1e7cd4038b96c1e067 100644 (file)
@@ -11,8 +11,13 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - allwinner,sun20i-d1-gpadc
+    oneOf:
+      - enum:
+          - allwinner,sun20i-d1-gpadc
+      - items:
+          - enum:
+              - allwinner,sun50i-h616-gpadc
+          - const: allwinner,sun20i-d1-gpadc
 
   "#io-channel-cells":
     const: 1
index 995cbf8cefc66f71ec5768b05c14c98e8619f8ce..ec34c48d48782b9a72b714a37d7264c57c501f74 100644 (file)
@@ -93,6 +93,10 @@ properties:
   '#size-cells':
     const: 0
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 allOf:
   - if:
       properties:
index 1970503389aa9aacf88c356477b4ad6aff5e0bbc..c1b1324fa13295dc30ba6c8621659cbe862da37f 100644 (file)
@@ -59,6 +59,10 @@ properties:
       If not, SPI CLKOUT frequency will not be accurate.
     maximum: 20000000
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
index 96340a05754ce6071c3671fee48d27a64eaa8b38..8265d709094dcb531e84258e588ac206c53299f1 100644 (file)
@@ -139,7 +139,7 @@ allOf:
                 Voltage output range of the channel as <minimum, maximum>
                 Required connections:
                   Rfb1x for: 0 to 2.5 V; 0 to 3V; 0 to 5 V;
-                  Rfb2x for: 0 to 10 V; 2.5 to 7.5V; -5 to 5 V;
+                  Rfb2x for: 0 to 10 V; -2.5 to 7.5V; -5 to 5 V;
               oneOf:
                 - items:
                     - const: 0
diff --git a/Bindings/iio/dac/adi,ad9739a.yaml b/Bindings/iio/dac/adi,ad9739a.yaml
new file mode 100644 (file)
index 0000000..c0b3647
--- /dev/null
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/adi,ad9739a.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AD9739A RF DAC
+
+maintainers:
+  - Dragos Bogdan <dragos.bogdan@analog.com>
+  - Nuno Sa <nuno.sa@analog.com>
+
+description: |
+  The AD9739A is a 14-bit, 2.5 GSPS high performance RF DACs that are capable
+  of synthesizing wideband signals from dc up to 3 GHz.
+
+  https://www.analog.com/media/en/technical-documentation/data-sheets/ad9737a_9739a.pdf
+
+properties:
+  compatible:
+    enum:
+      - adi,ad9739a
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  reset-gpios:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  vdd-3p3-supply:
+    description: 3.3V Digital input supply.
+
+  vdd-supply:
+    description: 1.8V Digital input supply.
+
+  vdda-supply:
+    description: 3.3V Analog input supply.
+
+  vddc-supply:
+    description: 1.8V Clock input supply.
+
+  vref-supply:
+    description: Input/Output reference supply.
+
+  io-backends:
+    maxItems: 1
+
+  adi,full-scale-microamp:
+    description: This property represents the DAC full scale current.
+    minimum: 8580
+    maximum: 31700
+    default: 20000
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - io-backends
+  - vdd-3p3-supply
+  - vdd-supply
+  - vdda-supply
+  - vddc-supply
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        dac@0 {
+            compatible = "adi,ad9739a";
+            reg = <0>;
+
+            clocks = <&dac_clk>;
+
+            io-backends = <&iio_backend>;
+
+            vdd-3p3-supply = <&vdd_3_3>;
+            vdd-supply = <&vdd>;
+            vdda-supply = <&vdd_3_3>;
+            vddc-supply = <&vdd>;
+        };
+    };
+...
diff --git a/Bindings/iio/dac/adi,axi-dac.yaml b/Bindings/iio/dac/adi,axi-dac.yaml
new file mode 100644 (file)
index 0000000..a55e9bf
--- /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/iio/dac/adi,axi-dac.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AXI DAC IP core
+
+maintainers:
+  - Nuno Sa <nuno.sa@analog.com>
+
+description: |
+  Analog Devices Generic AXI DAC IP core for interfacing a DAC device
+  with a high speed serial (JESD204B/C) or source synchronous parallel
+  interface (LVDS/CMOS).
+  Usually, some other interface type (i.e SPI) is used as a control
+  interface for the actual DAC, while this IP core will interface
+  to the data-lines of the DAC and handle the streaming of data from
+  memory via DMA into the DAC.
+
+  https://wiki.analog.com/resources/fpga/docs/axi_dac_ip
+
+properties:
+  compatible:
+    enum:
+      - adi,axi-dac-9.1.b
+
+  reg:
+    maxItems: 1
+
+  dmas:
+    maxItems: 1
+
+  dma-names:
+    items:
+      - const: tx
+
+  clocks:
+    maxItems: 1
+
+  '#io-backend-cells':
+    const: 0
+
+required:
+  - compatible
+  - dmas
+  - reg
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    dac@44a00000 {
+        compatible = "adi,axi-dac-9.1.b";
+        reg = <0x44a00000 0x10000>;
+        dmas = <&tx_dma 0>;
+        dma-names = "tx";
+        #io-backend-cells = <0>;
+        clocks = <&axi_clk>;
+    };
+...
index 04045b932bd221fb7c3b00b45bbd773b1f92e9b1..b15de4eb209c53d400782e4d0ff3aba4e53471ac 100644 (file)
@@ -45,6 +45,10 @@ properties:
   '#size-cells':
     const: 0
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 additionalProperties: false
 
 required:
index 79da0323c327ee52935b6911342a837755a64b01..e59db861e2eb105acc88db1abbe76f9ccc87076f 100644 (file)
@@ -21,6 +21,7 @@ properties:
       - ti,dac5573
       - ti,dac6573
       - ti,dac7573
+      - ti,dac081c081
       - ti,dac121c081
 
   reg:
index eed0df9d3a2322d9818709588ca4c335f5f689d5..205d352ab46727828d2c57ed17c29df2238260dc 100644 (file)
@@ -4,16 +4,20 @@
 $id: http://devicetree.org/schemas/iio/health/maxim,max30102.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Maxim MAX30102 heart rate and pulse oximeter and MAX30105 particle-sensor
+title: Maxim MAX30101/2 heart rate and pulse oximeter and MAX30105 particle-sensor
 
 maintainers:
   - Matt Ranostay <matt.ranostay@konsulko.com>
 
 properties:
   compatible:
-    enum:
-      - maxim,max30102
-      - maxim,max30105
+    oneOf:
+      - enum:
+          - maxim,max30102
+          - maxim,max30105
+      - items:
+          - const: maxim,max30101
+          - const: maxim,max30105
 
   reg:
     maxItems: 1
index 8b5dedd1a598cfb300c97e453da1765e582c3478..b375d307513fec14d3a729d60d243a2312b9c1c3 100644 (file)
@@ -34,6 +34,9 @@ properties:
   reg:
     maxItems: 1
 
+  reset-gpios:
+    maxItems: 1
+
 required:
   - compatible
   - reg
@@ -43,6 +46,7 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/gpio/gpio.h>
     #include <dt-bindings/interrupt-controller/irq.h>
     i2c {
         #address-cells = <1>;
@@ -54,5 +58,6 @@ examples:
             vdd-supply = <&vcc_3v3>;
             interrupt-parent = <&gpio3>;
             interrupts = <23 IRQ_TYPE_EDGE_RISING>;
+            reset-gpios = <&gpio3 27 GPIO_ACTIVE_LOW>;
         };
     };
index 7cd05bcbee317ce71b6fd8e7711870ea5eeeb95c..3769f8e8e98cee3db61cc0138f485c488d55a63e 100644 (file)
@@ -32,6 +32,8 @@ properties:
       - invensense,icm42605
       - invensense,icm42622
       - invensense,icm42631
+      - invensense,icm42686
+      - invensense,icm42688
 
   reg:
     maxItems: 1
index 297b8a1a7ffbcaaa2b911d467ff7f688a8963259..587ff2bced2ddd42e767f72b8e84c334d0e90481 100644 (file)
@@ -62,14 +62,15 @@ properties:
 allOf:
   - $ref: /schemas/spi/spi-peripheral-props.yaml#
   - if:
-      not:
-        properties:
-          compatible:
-            contains:
-              enum:
-                - invensense,mpu9150
-                - invensense,mpu9250
-                - invensense,mpu9255
+      properties:
+        compatible:
+          contains:
+            enum:
+              - invensense,iam20680
+              - invensense,icm20602
+              - invensense,icm20608
+              - invensense,icm20609
+              - invensense,icm20689
     then:
       properties:
         i2c-gate: false
index 206af44f2c43331d7ade3489f1be6b78078a98a7..b750096530bc63688855c4e7ae181c4180dcc521 100644 (file)
@@ -4,17 +4,22 @@
 $id: http://devicetree.org/schemas/iio/light/avago,apds9300.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Avago APDS9300 ambient light sensor
+title: Avago Gesture/RGB/ALS/Proximity sensors
 
 maintainers:
-  - Jonathan Cameron <jic23@kernel.org>
+  - Subhajit Ghosh <subhajit.ghosh@tweaklogic.com>
 
 description: |
-  Datasheet at https://www.avagotech.com/docs/AV02-1077EN
+  Datasheet: https://www.avagotech.com/docs/AV02-1077EN
+  Datasheet: https://www.avagotech.com/docs/AV02-4191EN
+  Datasheet: https://www.avagotech.com/docs/AV02-4755EN
 
 properties:
   compatible:
-    const: avago,apds9300
+    enum:
+      - avago,apds9300
+      - avago,apds9306
+      - avago,apds9960
 
   reg:
     maxItems: 1
@@ -22,6 +27,8 @@ properties:
   interrupts:
     maxItems: 1
 
+  vdd-supply: true
+
 additionalProperties: false
 
 required:
@@ -30,6 +37,8 @@ required:
 
 examples:
   - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
     i2c {
         #address-cells = <1>;
         #size-cells = <0>;
@@ -38,7 +47,8 @@ examples:
             compatible = "avago,apds9300";
             reg = <0x39>;
             interrupt-parent = <&gpio2>;
-            interrupts = <29 8>;
+            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
+            vdd-supply = <&regulator_3v3>;
         };
     };
 ...
diff --git a/Bindings/iio/light/avago,apds9960.yaml b/Bindings/iio/light/avago,apds9960.yaml
deleted file mode 100644 (file)
index f06e0fd..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/iio/light/avago,apds9960.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Avago APDS9960 gesture/RGB/ALS/proximity sensor
-
-maintainers:
-  - Matt Ranostay <matt.ranostay@konsulko.com>
-
-description: |
-  Datasheet at https://www.avagotech.com/docs/AV02-4191EN
-
-properties:
-  compatible:
-    const: avago,apds9960
-
-  reg:
-    maxItems: 1
-
-  interrupts:
-    maxItems: 1
-
-additionalProperties: false
-
-required:
-  - compatible
-  - reg
-
-examples:
-  - |
-    i2c {
-        #address-cells = <1>;
-        #size-cells = <0>;
-
-        light-sensor@39 {
-            compatible = "avago,apds9960";
-            reg = <0x39>;
-            interrupt-parent = <&gpio1>;
-            interrupts = <16 1>;
-        };
-    };
-...
index dbb85135fd66885ecdd798ac7043b0e18a18353c..312febeeb3bba8ce4354af36380d5125bf5671fb 100644 (file)
@@ -57,6 +57,8 @@ properties:
   interrupts:
     maxItems: 1
 
+  vdd-supply: true
+
   adi,mux-delay-config-us:
     description: |
       Extra delay prior to each conversion, in addition to the internal 1ms
@@ -460,6 +462,7 @@ required:
   - compatible
   - reg
   - interrupts
+  - vdd-supply
 
 additionalProperties: false
 
@@ -489,6 +492,7 @@ examples:
             #address-cells = <1>;
             #size-cells = <0>;
 
+            vdd-supply = <&supply>;
             interrupts = <20 IRQ_TYPE_EDGE_RISING>;
             interrupt-parent = <&gpio>;
 
index 5b1769c19b1735e3bd70db002581e0693498ec07..418c168b223b7cdfffbb3d6b12f3d88e079d33c1 100644 (file)
@@ -784,7 +784,7 @@ patternProperties:
       gpio-2: GPIO4
 
     allOf:
-      - $ref: ../pinctrl/pincfg-node.yaml#
+      - $ref: /schemas/pinctrl/pincfg-node.yaml#
 
     properties:
       drive-open-drain: true
index dc4ac41f244117e9598225faa8c3dea3dd3932bd..a62916d07a08c74e519a262063556521f7f616af 100644 (file)
@@ -18,9 +18,12 @@ allOf:
 
 properties:
   compatible:
-    enum:
-      - elan,ekth6915
-      - ilitek,ili2901
+    oneOf:
+      - items:
+          - enum:
+              - elan,ekth5015m
+          - const: elan,ekth6915
+      - const: elan,ekth6915
 
   reg:
     const: 0x10
@@ -33,6 +36,12 @@ properties:
   reset-gpios:
     description: Reset GPIO; not all touchscreens using eKTH6915 hook this up.
 
+  no-reset-on-power-off:
+    type: boolean
+    description:
+      Reset line is wired so that it can (and should) be left deasserted when
+      the power supply is off.
+
   vcc33-supply:
     description: The 3.3V supply to the touchscreen.
 
@@ -58,8 +67,8 @@ examples:
       #address-cells = <1>;
       #size-cells = <0>;
 
-      ap_ts: touchscreen@10 {
-        compatible = "elan,ekth6915";
+      touchscreen@10 {
+        compatible = "elan,ekth5015m", "elan,ekth6915";
         reg = <0x10>;
 
         interrupt-parent = <&tlmm>;
diff --git a/Bindings/input/ilitek,ili2901.yaml b/Bindings/input/ilitek,ili2901.yaml
new file mode 100644 (file)
index 0000000..1abeec7
--- /dev/null
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/ilitek,ili2901.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Ilitek ILI2901 touchscreen controller
+
+maintainers:
+  - Jiri Kosina <jkosina@suse.com>
+
+description:
+  Supports the Ilitek ILI2901 touchscreen controller.
+  This touchscreen controller uses the i2c-hid protocol with a reset GPIO.
+
+allOf:
+  - $ref: /schemas/input/touchscreen/touchscreen.yaml#
+
+properties:
+  compatible:
+    enum:
+      - ilitek,ili2901
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  panel: true
+
+  reset-gpios:
+    maxItems: 1
+
+  vcc33-supply: true
+
+  vccio-supply: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - vcc33-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      touchscreen@41 {
+        compatible = "ilitek,ili2901";
+        reg = <0x41>;
+
+        interrupt-parent = <&tlmm>;
+        interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
+
+        reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
+        vcc33-supply = <&pp3300_ts>;
+      };
+    };
index c8832cd0d7da2f9c1a85fdbb86f6ebb33a24e448..2025d6a5423e285d868f1ccd752b404f33f35342 100644 (file)
@@ -11,10 +11,18 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - qcom,pm8058-vib
-      - qcom,pm8916-vib
-      - qcom,pm8921-vib
+    oneOf:
+      - enum:
+          - qcom,pm8058-vib
+          - qcom,pm8916-vib
+          - qcom,pm8921-vib
+          - qcom,pmi632-vib
+      - items:
+          - enum:
+              - qcom,pm7250b-vib
+              - qcom,pm7325b-vib
+              - qcom,pm7550ba-vib
+          - const: qcom,pmi632-vib
 
   reg:
     maxItems: 1
index f2808cb4d99dfdab68755d3211b3e84b38f3b087..745e57c05176ea73bb2be62b33b7bf62d9a0488f 100644 (file)
@@ -39,7 +39,9 @@ properties:
       - edt,edt-ft5406
       - edt,edt-ft5506
       - evervision,ev-ft5726
+      - focaltech,ft5452
       - focaltech,ft6236
+      - focaltech,ft8719
 
   reg:
     maxItems: 1
diff --git a/Bindings/input/twl4030-pwrbutton.txt b/Bindings/input/twl4030-pwrbutton.txt
deleted file mode 100644 (file)
index 6c201a2..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-Texas Instruments TWL family (twl4030) pwrbutton module
-
-This module is part of the TWL4030. For more details about the whole
-chip see Documentation/devicetree/bindings/mfd/ti,twl.yaml.
-
-This module provides a simple power button event via an Interrupt.
-
-Required properties:
-- compatible: should be one of the following
-   - "ti,twl4030-pwrbutton": For controllers compatible with twl4030
-- interrupts: should be one of the following
-   - <8>: For controllers compatible with twl4030
-
-Example:
-
-&twl {
-       twl_pwrbutton: pwrbutton {
-               compatible = "ti,twl4030-pwrbutton";
-               interrupts = <8>;
-       };
-};
index 83603180d8d9cd6b64602dcfd415db7a4c65cf58..f49b43f45f3d9313bc163422e0bcc74ef1703ab0 100644 (file)
@@ -25,12 +25,12 @@ properties:
       - const: allwinner,sun6i-a31-sc-nmi
         deprecated: true
       - const: allwinner,sun7i-a20-sc-nmi
-      - items:
-          - const: allwinner,sun8i-v3s-nmi
-          - const: allwinner,sun9i-a80-nmi
       - const: allwinner,sun9i-a80-nmi
       - items:
-          - const: allwinner,sun50i-a100-nmi
+          - enum:
+              - allwinner,sun8i-v3s-nmi
+              - allwinner,sun50i-a100-nmi
+              - allwinner,sun50i-h616-nmi
           - const: allwinner,sun9i-a80-nmi
 
   reg:
index e1a379c052e44cd3484c92c165fdd7f9ca987ffa..123d24b05556c67374fbb87abe5e16c65031d2ed 100644 (file)
@@ -48,7 +48,7 @@ properties:
   interrupt-controller: true
 
   "#interrupt-cells":
-    $ref: "arm,gic.yaml#/properties/#interrupt-cells"
+    $ref: arm,gic.yaml#/properties/#interrupt-cells
 
 required:
   - reg
index b417341fc8ae049b91dc715fcb7c619e407fd923..fb3c29e813499e3ff4c6575c212e02f7deaf8374 100644 (file)
@@ -39,6 +39,7 @@ properties:
           - renesas,intc-ex-r8a779a0    # R-Car V3U
           - renesas,intc-ex-r8a779f0    # R-Car S4-8
           - renesas,intc-ex-r8a779g0    # R-Car V4H
+          - renesas,intc-ex-r8a779h0    # R-Car V4M
       - const: renesas,irqc
 
   '#interrupt-cells':
diff --git a/Bindings/interrupt-controller/riscv,aplic.yaml b/Bindings/interrupt-controller/riscv,aplic.yaml
new file mode 100644 (file)
index 0000000..190a649
--- /dev/null
@@ -0,0 +1,172 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/riscv,aplic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RISC-V Advanced Platform Level Interrupt Controller (APLIC)
+
+maintainers:
+  - Anup Patel <anup@brainfault.org>
+
+description:
+  The RISC-V advanced interrupt architecture (AIA) defines an advanced
+  platform level interrupt controller (APLIC) for handling wired interrupts
+  in a RISC-V platform. The RISC-V AIA specification can be found at
+  https://github.com/riscv/riscv-aia.
+
+  The RISC-V APLIC is implemented as hierarchical APLIC domains where all
+  interrupt sources connect to the root APLIC domain and a parent APLIC
+  domain can delegate interrupt sources to it's child APLIC domains. There
+  is one device tree node for each APLIC domain.
+
+allOf:
+  - $ref: /schemas/interrupt-controller.yaml#
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - qemu,aplic
+      - const: riscv,aplic
+
+  reg:
+    maxItems: 1
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    const: 2
+
+  interrupts-extended:
+    minItems: 1
+    maxItems: 16384
+    description:
+      Given APLIC domain directly injects external interrupts to a set of
+      RISC-V HARTS (or CPUs). Each node pointed to should be a riscv,cpu-intc
+      node, which has a CPU node (i.e. RISC-V HART) as parent.
+
+  msi-parent:
+    description:
+      Given APLIC domain forwards wired interrupts as MSIs to a AIA incoming
+      message signaled interrupt controller (IMSIC). If both "msi-parent" and
+      "interrupts-extended" properties are present then it means the APLIC
+      domain supports both MSI mode and Direct mode in HW. In this case, the
+      APLIC driver has to choose between MSI mode or Direct mode.
+
+  riscv,num-sources:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 1
+    maximum: 1023
+    description:
+      Specifies the number of wired interrupt sources supported by this
+      APLIC domain.
+
+  riscv,children:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    minItems: 1
+    maxItems: 1024
+    items:
+      maxItems: 1
+    description:
+      A list of child APLIC domains for the given APLIC domain. Each child
+      APLIC domain is assigned a child index in increasing order, with the
+      first child APLIC domain assigned child index 0. The APLIC domain child
+      index is used by firmware to delegate interrupts from the given APLIC
+      domain to a particular child APLIC domain.
+
+  riscv,delegation:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    minItems: 1
+    maxItems: 1024
+    items:
+      items:
+        - description: child APLIC domain phandle
+        - description: first interrupt number of the parent APLIC domain (inclusive)
+        - description: last interrupt number of the parent APLIC domain (inclusive)
+    description:
+      A interrupt delegation list where each entry is a triple consisting
+      of child APLIC domain phandle, first interrupt number of the parent
+      APLIC domain, and last interrupt number of the parent APLIC domain.
+      Firmware must configure interrupt delegation registers based on
+      interrupt delegation list.
+
+dependencies:
+  riscv,delegation: [ "riscv,children" ]
+
+required:
+  - compatible
+  - reg
+  - interrupt-controller
+  - "#interrupt-cells"
+  - riscv,num-sources
+
+anyOf:
+  - required:
+      - interrupts-extended
+  - required:
+      - msi-parent
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    // Example 1 (APLIC domains directly injecting interrupt to HARTs):
+
+    interrupt-controller@c000000 {
+      compatible = "qemu,aplic", "riscv,aplic";
+      interrupts-extended = <&cpu1_intc 11>,
+                            <&cpu2_intc 11>,
+                            <&cpu3_intc 11>,
+                            <&cpu4_intc 11>;
+      reg = <0xc000000 0x4080>;
+      interrupt-controller;
+      #interrupt-cells = <2>;
+      riscv,num-sources = <63>;
+      riscv,children = <&aplic1>, <&aplic2>;
+      riscv,delegation = <&aplic1 1 63>;
+    };
+
+    aplic1: interrupt-controller@d000000 {
+      compatible = "qemu,aplic", "riscv,aplic";
+      interrupts-extended = <&cpu1_intc 9>,
+                            <&cpu2_intc 9>;
+      reg = <0xd000000 0x4080>;
+      interrupt-controller;
+      #interrupt-cells = <2>;
+      riscv,num-sources = <63>;
+    };
+
+    aplic2: interrupt-controller@e000000 {
+      compatible = "qemu,aplic", "riscv,aplic";
+      interrupts-extended = <&cpu3_intc 9>,
+                            <&cpu4_intc 9>;
+      reg = <0xe000000 0x4080>;
+      interrupt-controller;
+      #interrupt-cells = <2>;
+      riscv,num-sources = <63>;
+    };
+
+  - |
+    // Example 2 (APLIC domains forwarding interrupts as MSIs):
+
+    interrupt-controller@c000000 {
+      compatible = "qemu,aplic", "riscv,aplic";
+      msi-parent = <&imsic_mlevel>;
+      reg = <0xc000000 0x4000>;
+      interrupt-controller;
+      #interrupt-cells = <2>;
+      riscv,num-sources = <63>;
+      riscv,children = <&aplic3>;
+      riscv,delegation = <&aplic3 1 63>;
+    };
+
+    aplic3: interrupt-controller@d000000 {
+      compatible = "qemu,aplic", "riscv,aplic";
+      msi-parent = <&imsic_slevel>;
+      reg = <0xd000000 0x4000>;
+      interrupt-controller;
+      #interrupt-cells = <2>;
+      riscv,num-sources = <63>;
+    };
+...
diff --git a/Bindings/interrupt-controller/riscv,imsics.yaml b/Bindings/interrupt-controller/riscv,imsics.yaml
new file mode 100644 (file)
index 0000000..84976f1
--- /dev/null
@@ -0,0 +1,172 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/riscv,imsics.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RISC-V Incoming MSI Controller (IMSIC)
+
+maintainers:
+  - Anup Patel <anup@brainfault.org>
+
+description: |
+  The RISC-V advanced interrupt architecture (AIA) defines a per-CPU incoming
+  MSI controller (IMSIC) for handling MSIs in a RISC-V platform. The RISC-V
+  AIA specification can be found at https://github.com/riscv/riscv-aia.
+
+  The IMSIC is a per-CPU (or per-HART) device with separate interrupt file
+  for each privilege level (machine or supervisor). The configuration of
+  a IMSIC interrupt file is done using AIA CSRs and it also has a 4KB MMIO
+  space to receive MSIs from devices. Each IMSIC interrupt file supports a
+  fixed number of interrupt identities (to distinguish MSIs from devices)
+  which is same for given privilege level across CPUs (or HARTs).
+
+  The device tree of a RISC-V platform will have one IMSIC device tree node
+  for each privilege level (machine or supervisor) which collectively describe
+  IMSIC interrupt files at that privilege level across CPUs (or HARTs).
+
+  The arrangement of IMSIC interrupt files in MMIO space of a RISC-V platform
+  follows a particular scheme defined by the RISC-V AIA specification. A IMSIC
+  group is a set of IMSIC interrupt files co-located in MMIO space and we can
+  have multiple IMSIC groups (i.e. clusters, sockets, chiplets, etc) in a
+  RISC-V platform. The MSI target address of a IMSIC interrupt file at given
+  privilege level (machine or supervisor) encodes group index, HART index,
+  and guest index (shown below).
+
+  XLEN-1            > (HART Index MSB)                  12    0
+  |                  |                                  |     |
+  -------------------------------------------------------------
+  |xxxxxx|Group Index|xxxxxxxxxxx|HART Index|Guest Index|  0  |
+  -------------------------------------------------------------
+
+allOf:
+  - $ref: /schemas/interrupt-controller.yaml#
+  - $ref: /schemas/interrupt-controller/msi-controller.yaml#
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - qemu,imsics
+      - const: riscv,imsics
+
+  reg:
+    minItems: 1
+    maxItems: 16384
+    description:
+      Base address of each IMSIC group.
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    const: 0
+
+  msi-controller: true
+
+  "#msi-cells":
+    const: 0
+
+  interrupts-extended:
+    minItems: 1
+    maxItems: 16384
+    description:
+      This property represents the set of CPUs (or HARTs) for which given
+      device tree node describes the IMSIC interrupt files. Each node pointed
+      to should be a riscv,cpu-intc node, which has a CPU node (i.e. RISC-V
+      HART) as parent.
+
+  riscv,num-ids:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 63
+    maximum: 2047
+    description:
+      Number of interrupt identities supported by IMSIC interrupt file.
+
+  riscv,num-guest-ids:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 63
+    maximum: 2047
+    description:
+      Number of interrupt identities are supported by IMSIC guest interrupt
+      file. When not specified it is assumed to be same as specified by the
+      riscv,num-ids property.
+
+  riscv,guest-index-bits:
+    minimum: 0
+    maximum: 7
+    default: 0
+    description:
+      Number of guest index bits in the MSI target address.
+
+  riscv,hart-index-bits:
+    minimum: 0
+    maximum: 15
+    description:
+      Number of HART index bits in the MSI target address. When not
+      specified it is calculated based on the interrupts-extended property.
+
+  riscv,group-index-bits:
+    minimum: 0
+    maximum: 7
+    default: 0
+    description:
+      Number of group index bits in the MSI target address.
+
+  riscv,group-index-shift:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 55
+    default: 24
+    description:
+      The least significant bit position of the group index bits in the
+      MSI target address.
+
+required:
+  - compatible
+  - reg
+  - interrupt-controller
+  - msi-controller
+  - "#msi-cells"
+  - interrupts-extended
+  - riscv,num-ids
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    // Example 1 (Machine-level IMSIC files with just one group):
+
+    interrupt-controller@24000000 {
+      compatible = "qemu,imsics", "riscv,imsics";
+      interrupts-extended = <&cpu1_intc 11>,
+                            <&cpu2_intc 11>,
+                            <&cpu3_intc 11>,
+                            <&cpu4_intc 11>;
+      reg = <0x28000000 0x4000>;
+      interrupt-controller;
+      #interrupt-cells = <0>;
+      msi-controller;
+      #msi-cells = <0>;
+      riscv,num-ids = <127>;
+    };
+
+  - |
+    // Example 2 (Supervisor-level IMSIC files with two groups):
+
+    interrupt-controller@28000000 {
+      compatible = "qemu,imsics", "riscv,imsics";
+      interrupts-extended = <&cpu1_intc 9>,
+                            <&cpu2_intc 9>,
+                            <&cpu3_intc 9>,
+                            <&cpu4_intc 9>;
+      reg = <0x28000000 0x2000>, /* Group0 IMSICs */
+            <0x29000000 0x2000>; /* Group1 IMSICs */
+      interrupt-controller;
+      #interrupt-cells = <0>;
+      msi-controller;
+      #msi-cells = <0>;
+      riscv,num-ids = <127>;
+      riscv,group-index-bits = <1>;
+      riscv,group-index-shift = <24>;
+    };
+...
index 00c10a8258f138e94e089f464b8d5b293e74cf6c..9967e57b449b0a7bfca9bcd65fe5ef549b0b78f6 100644 (file)
@@ -89,8 +89,23 @@ examples:
         reg = <0x5000d000 0x400>;
     };
 
+  - |
     //Example 2
-    exti2: interrupt-controller@40013c00 {
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    exti2: interrupt-controller@5000d000 {
+        compatible = "st,stm32mp1-exti", "syscon";
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        reg = <0x5000d000 0x400>;
+        interrupts-extended =
+            <&intc GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
+            <0>,
+            <&intc GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+    };
+
+  - |
+    //Example 3
+    exti3: interrupt-controller@40013c00 {
         compatible = "st,stm32-exti";
         interrupt-controller;
         #interrupt-cells = <2>;
diff --git a/Bindings/iommu/qcom,tbu.yaml b/Bindings/iommu/qcom,tbu.yaml
new file mode 100644 (file)
index 0000000..82dfe93
--- /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/iommu/qcom,tbu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm TBU (Translation Buffer Unit)
+
+maintainers:
+  - Georgi Djakov <quic_c_gdjako@quicinc.com>
+
+description:
+  The Qualcomm SMMU500 implementation consists of TCU and TBU. The TBU contains
+  a Translation Lookaside Buffer (TLB) that caches page tables. TBUs provides
+  debug features to trace and trigger debug transactions. There are multiple TBU
+  instances with each client core.
+
+properties:
+  compatible:
+    enum:
+      - qcom,sc7280-tbu
+      - qcom,sdm845-tbu
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  interconnects:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  qcom,stream-id-range:
+    description: |
+      Phandle of a SMMU device and Stream ID range (address and size) that
+      is assigned by the TBU
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: phandle of a smmu node
+          - description: stream id base address
+          - description: stream id size
+
+required:
+  - compatible
+  - reg
+  - qcom,stream-id-range
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
+    #include <dt-bindings/interconnect/qcom,icc.h>
+    #include <dt-bindings/interconnect/qcom,sdm845.h>
+
+    tbu@150e1000 {
+        compatible = "qcom,sdm845-tbu";
+        reg = <0x150e1000 0x1000>;
+        clocks = <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>;
+        interconnects = <&system_noc MASTER_GNOC_SNOC QCOM_ICC_TAG_ACTIVE_ONLY
+                         &config_noc SLAVE_IMEM_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+        power-domains = <&gcc HLOS1_VOTE_AGGRE_NOC_MMU_PCIE_TBU_GDSC>;
+        qcom,stream-id-range = <&apps_smmu 0x1c00 0x400>;
+    };
+...
index be90f68c11d18b03c748d2cbb1e8be18fb9294aa..0acaa2bcec0898b24c30b6339daeac807a0369e6 100644 (file)
@@ -50,6 +50,7 @@ properties:
               - renesas,ipmmu-r8a779a0           # R-Car V3U
               - renesas,ipmmu-r8a779f0           # R-Car S4-8
               - renesas,ipmmu-r8a779g0           # R-Car V4H
+              - renesas,ipmmu-r8a779h0           # R-Car V4M
           - const: renesas,rcar-gen4-ipmmu-vmsa  # R-Car Gen4
 
   reg:
index 54a428d3d46ffed37322297b56d5f3d9aeaa8edd..8b82c45d1a48be6ff63193aae9d67625a943a72b 100644 (file)
@@ -27,9 +27,14 @@ properties:
           - qcom,pm8994-lpg
           - qcom,pmc8180c-lpg
           - qcom,pmi632-lpg
+          - qcom,pmi8950-pwm
           - qcom,pmi8994-lpg
           - qcom,pmi8998-lpg
           - qcom,pmk8550-pwm
+      - items:
+          - enum:
+              - qcom,pm6150l-lpg
+          - const: qcom,pm8150l-lpg
       - items:
           - enum:
               - qcom,pm8550-pwm
@@ -142,6 +147,7 @@ allOf:
               - qcom,pm8941-lpg
               - qcom,pm8994-lpg
               - qcom,pmc8180c-lpg
+              - qcom,pmi8950-pwm
               - qcom,pmi8994-lpg
               - qcom,pmi8998-lpg
               - qcom,pmk8550-pwm
@@ -290,5 +296,3 @@ examples:
         label = "blue";
       };
     };
-
-...
diff --git a/Bindings/leds/nxp,pca963x.yaml b/Bindings/leds/nxp,pca963x.yaml
new file mode 100644 (file)
index 0000000..938d0e4
--- /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/leds/nxp,pca963x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP PCA963x LED controllers
+
+maintainers:
+  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+
+description: |
+  The NXP PCA963x are I2C-controlled LED drivers optimized for
+  Red/Green/Blue/Amber (RGBA) color mixing applications. Each LED is
+  individually controllable and has its own PWM controller.
+
+  Datasheets are available at
+
+  - https://www.nxp.com/docs/en/data-sheet/PCA9632.pdf
+  - https://www.nxp.com/docs/en/data-sheet/PCA9633.pdf
+  - https://www.nxp.com/docs/en/data-sheet/PCA9634.pdf
+  - https://www.nxp.com/docs/en/data-sheet/PCA9635.pdf
+
+properties:
+  compatible:
+    enum:
+      - nxp,pca9632
+      - nxp,pca9633
+      - nxp,pca9634
+      - nxp,pca9635
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+  nxp,hw-blink:
+    type: boolean
+    description:
+      Use hardware blinking instead of software blinking
+
+  nxp,inverted-out:
+    type: boolean
+    description:
+      Invert the polarity of the generated PWM.
+
+  nxp,period-scale:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      In some configurations, the chip blinks faster than expected. This
+      parameter provides a scaling ratio (fixed point, decimal divided by 1000)
+      to compensate, e.g. 1300=1.3x and 750=0.75x.
+
+  nxp,totem-pole:
+    type: boolean
+    description:
+      Use totem pole (push-pull) instead of open-drain (pca9632 defaults to
+      open-drain, newer chips to totem pole).
+
+patternProperties:
+  "^led@[0-9a-f]+$":
+    type: object
+    $ref: common.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        minimum: 0
+
+    required:
+      - reg
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - nxp,pca9632
+              - nxp,pca9633
+    then:
+      patternProperties:
+        "^led@[0-9a-f]+$":
+          properties:
+            reg:
+              maximum: 3
+    else:
+      patternProperties:
+        "^led@[0-9a-f]+$":
+          properties:
+            reg:
+              maximum: 7
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/leds/common.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        led-controller@62 {
+            compatible = "nxp,pca9632";
+            reg = <0x62>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            led@0 {
+                    reg = <0>;
+                    color = <LED_COLOR_ID_RED>;
+                    function = LED_FUNCTION_STATUS;
+            };
+
+            led@1 {
+                    reg = <1>;
+                    color = <LED_COLOR_ID_GREEN>;
+                    function = LED_FUNCTION_STATUS;
+            };
+
+            led@2 {
+                    reg = <2>;
+                    color = <LED_COLOR_ID_BLUE>;
+                    function = LED_FUNCTION_STATUS;
+            };
+
+            led@3 {
+                    reg = <3>;
+                    color = <LED_COLOR_ID_WHITE>;
+                    function = LED_FUNCTION_STATUS;
+            };
+        };
+    };
+
+...
diff --git a/Bindings/leds/pca963x.txt b/Bindings/leds/pca963x.txt
deleted file mode 100644 (file)
index 4eee414..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-LEDs connected to pca9632, pca9633 or pca9634
-
-Required properties:
-- compatible : should be : "nxp,pca9632", "nxp,pca9633", "nxp,pca9634" or "nxp,pca9635"
-
-Optional properties:
-- nxp,totem-pole : use totem pole (push-pull) instead of open-drain (pca9632 defaults
-  to open-drain, newer chips to totem pole)
-- nxp,hw-blink : use hardware blinking instead of software blinking
-- nxp,period-scale : In some configurations, the chip blinks faster than expected.
-                    This parameter provides a scaling ratio (fixed point, decimal divided
-                    by 1000) to compensate, e.g. 1300=1.3x and 750=0.75x.
-- nxp,inverted-out: invert the polarity of the generated PWM
-
-Each led is represented as a sub-node of the nxp,pca963x device.
-
-LED sub-node properties:
-- label : (optional) see Documentation/devicetree/bindings/leds/common.txt
-- reg : number of LED line (could be from 0 to 3 in pca9632 or pca9633,
-               0 to 7 in pca9634, or 0 to 15 in pca9635)
-- linux,default-trigger : (optional)
-   see Documentation/devicetree/bindings/leds/common.txt
-
-Examples:
-
-pca9632: pca9632 {
-       compatible = "nxp,pca9632";
-       #address-cells = <1>;
-       #size-cells = <0>;
-       reg = <0x62>;
-
-       red@0 {
-               label = "red";
-               reg = <0>;
-               linux,default-trigger = "none";
-       };
-       green@1 {
-               label = "green";
-               reg = <1>;
-               linux,default-trigger = "none";
-       };
-       blue@2 {
-               label = "blue";
-               reg = <2>;
-               linux,default-trigger = "none";
-       };
-       unused@3 {
-               label = "unused";
-               reg = <3>;
-               linux,default-trigger = "none";
-       };
-};
diff --git a/Bindings/mailbox/arm,mhuv3.yaml b/Bindings/mailbox/arm,mhuv3.yaml
new file mode 100644 (file)
index 0000000..449b55a
--- /dev/null
@@ -0,0 +1,224 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mailbox/arm,mhuv3.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ARM MHUv3 Mailbox Controller
+
+maintainers:
+  - Sudeep Holla <sudeep.holla@arm.com>
+  - Cristian Marussi <cristian.marussi@arm.com>
+
+description: |
+  The Arm Message Handling Unit (MHU) Version 3 is a mailbox controller that
+  enables unidirectional communications with remote processors through various
+  possible transport protocols.
+  The controller can optionally support a varying number of extensions that, in
+  turn, enable different kinds of transport to be used for communication.
+  Number, type and characteristics of each supported extension can be discovered
+  dynamically at runtime.
+
+  Given the unidirectional nature of the controller, an MHUv3 mailbox controller
+  is composed of a MHU Sender (MHUS) containing a PostBox (PBX) block and a MHU
+  Receiver (MHUR) containing a MailBox (MBX) block, where
+
+   PBX is used to
+      - Configure the MHU
+      - Send Transfers to the Receiver
+      - Optionally receive acknowledgment of a Transfer from the Receiver
+
+   MBX is used to
+      - Configure the MHU
+      - Receive Transfers from the Sender
+      - Optionally acknowledge Transfers sent by the Sender
+
+  Both PBX and MBX need to be present and defined in the DT description if you
+  need to establish a bidirectional communication, since you will have to
+  acquire two distinct unidirectional channels, one for each block.
+
+  As a consequence both blocks needs to be represented separately and specified
+  as distinct DT nodes in order to properly describe their resources.
+
+  Note that, though, thanks to the runtime discoverability, there is no need to
+  identify the type of blocks with distinct compatibles.
+
+  Following are the MHUv3 possible extensions.
+
+  - Doorbell Extension (DBE): DBE defines a type of channel called a Doorbell
+    Channel (DBCH). DBCH enables a single bit Transfer to be sent from the
+    Sender to Receiver. The Transfer indicates that an event has occurred.
+    When DBE is implemented, the number of DBCHs that an implementation of the
+    MHU can support is between 1 and 128, numbered starting from 0 in ascending
+    order and discoverable at run-time.
+    Each DBCH contains 32 individual fields, referred to as flags, each of which
+    can be used independently. It is possible for the Sender to send multiple
+    Transfers at once using a single DBCH, so long as each Transfer uses
+    a different flag in the DBCH.
+    Optionally, data may be transmitted through an out-of-band shared memory
+    region, wherein the MHU Doorbell is used strictly as an interrupt generation
+    mechanism, but this is out of the scope of these bindings.
+
+  - FastChannel Extension (FCE): FCE defines a type of channel called a Fast
+    Channel (FCH). FCH is intended for lower overhead communication between
+    Sender and Receiver at the expense of determinism. An FCH allows the Sender
+    to update the channel value at any time, regardless of whether the previous
+    value has been seen by the Receiver. When the Receiver reads the channel's
+    content it gets the last value written to the channel.
+    FCH is considered lossy in nature, and means that the Sender has no way of
+    knowing if, or when, the Receiver will act on the Transfer.
+    FCHs are expected to behave as RAM which generates interrupts when writes
+    occur to the locations within the RAM.
+    When FCE is implemented, the number of FCHs that an implementation of the
+    MHU can support is between 1-1024, if the FastChannel word-size is 32-bits,
+    or between 1-512, when the FastChannel word-size is 64-bits.
+    FCHs are numbered from 0 in ascending order.
+    Note that the number of FCHs and the word-size are implementation defined,
+    not configurable but discoverable at run-time.
+    Optionally, data may be transmitted through an out-of-band shared memory
+    region, wherein the MHU FastChannel is used as an interrupt generation
+    mechanism which carries also a pointer to such out-of-band data, but this
+    is out of the scope of these bindings.
+
+  - FIFO Extension (FE): FE defines a Channel type called a FIFO Channel (FFCH).
+    FFCH allows a Sender to send
+       - Multiple Transfers to the Receiver without having to wait for the
+         previous Transfer to be acknowledged by the Receiver, as long as the
+         FIFO has room for the Transfer.
+       - Transfers which require the Receiver to provide acknowledgment.
+       - Transfers which have in-band payload.
+    In all cases, the data is guaranteed to be observed by the Receiver in the
+    same order which the Sender sent it.
+    When FE is implemented, the number of FFCHs that an implementation of the
+    MHU can support is between 1 and 64, numbered starting from 0 in ascending
+    order. The number of FFCHs, their depth (same for all implemented FFCHs) and
+    the access-granularity are implementation defined, not configurable but
+    discoverable at run-time.
+    Optionally, additional data may be transmitted through an out-of-band shared
+    memory region, wherein the MHU FIFO is used to transmit, in order, a small
+    part of the payload (like a header) and a reference to the shared memory
+    area holding the remaining, bigger, chunk of the payload, but this is out of
+    the scope of these bindings.
+
+properties:
+  compatible:
+    const: arm,mhuv3
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    minItems: 1
+    maxItems: 74
+
+  interrupt-names:
+    description: |
+      The MHUv3 controller generates a number of events some of which are used
+      to generate interrupts; as a consequence it can expose a varying number of
+      optional PBX/MBX interrupts, representing the events generated during the
+      operation of the various transport protocols associated with different
+      extensions. All interrupts of the MHU are level-sensitive.
+      Some of these optional interrupts are defined per-channel, where the
+      number of channels effectively available is implementation defined and
+      run-time discoverable.
+      In the following names are enumerated using patterns, with per-channel
+      interrupts implicitly capped at the maximum channels allowed by the
+      specification for each extension type.
+      For the sake of simplicity maxItems is anyway capped to a most plausible
+      number, assuming way less channels would be implemented than actually
+      possible.
+
+      The only mandatory interrupts on the MHU are:
+        - combined
+        - mbx-fch-xfer-<N> but only if mbx-fcgrp-xfer-<N> is not implemented.
+
+    minItems: 1
+    maxItems: 74
+    items:
+      oneOf:
+        - const: combined
+          description: PBX/MBX Combined interrupt
+        - const: combined-ffch
+          description: PBX/MBX FIFO Combined interrupt
+        - pattern: '^ffch-low-tide-[0-9]+$'
+          description: PBX/MBX FIFO Channel <N> Low Tide interrupt
+        - pattern: '^ffch-high-tide-[0-9]+$'
+          description: PBX/MBX FIFO Channel <N> High Tide interrupt
+        - pattern: '^ffch-flush-[0-9]+$'
+          description: PBX/MBX FIFO Channel <N> Flush interrupt
+        - pattern: '^mbx-dbch-xfer-[0-9]+$'
+          description: MBX Doorbell Channel <N> Transfer interrupt
+        - pattern: '^mbx-fch-xfer-[0-9]+$'
+          description: MBX FastChannel <N> Transfer interrupt
+        - pattern: '^mbx-fchgrp-xfer-[0-9]+$'
+          description: MBX FastChannel <N> Group Transfer interrupt
+        - pattern: '^mbx-ffch-xfer-[0-9]+$'
+          description: MBX FIFO Channel <N> Transfer interrupt
+        - pattern: '^pbx-dbch-xfer-ack-[0-9]+$'
+          description: PBX Doorbell Channel <N> Transfer Ack interrupt
+        - pattern: '^pbx-ffch-xfer-ack-[0-9]+$'
+          description: PBX FIFO Channel <N> Transfer Ack interrupt
+
+  '#mbox-cells':
+    description: |
+      The first argument in the consumers 'mboxes' property represents the
+      extension type, the second is for the channel number while the third
+      depends on extension type.
+
+      Extension types constants are defined in <dt-bindings/arm/mhuv3-dt.h>.
+
+      Extension type for DBE is DBE_EXT and the third parameter represents the
+      doorbell flag number to use.
+      Extension type for FCE is FCE_EXT, third parameter unused.
+      Extension type for FE is FE_EXT, third parameter unused.
+
+      mboxes = <&mhu DBE_EXT 0 5>; // DBE, Doorbell Channel Window 0, doorbell 5.
+      mboxes = <&mhu DBE_EXT 7>; // DBE, Doorbell Channel Window 1, doorbell 7.
+      mboxes = <&mhu FCE_EXT 0 0>; // FCE, FastChannel Window 0.
+      mboxes = <&mhu FCE_EXT 3 0>; // FCE, FastChannel Window 3.
+      mboxes = <&mhu FE_EXT 1 0>; // FE, FIFO Channel Window 1.
+      mboxes = <&mhu FE_EXT 7 0>; // FE, FIFO Channel Window 7.
+    const: 3
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-names
+  - '#mbox-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        mailbox@2aaa0000 {
+            compatible = "arm,mhuv3";
+            #mbox-cells = <3>;
+            reg = <0 0x2aaa0000 0 0x10000>;
+            clocks = <&clock 0>;
+            interrupt-names = "combined", "pbx-dbch-xfer-ack-1",
+                               "ffch-high-tide-0";
+            interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+        };
+
+        mailbox@2ab00000 {
+            compatible = "arm,mhuv3";
+            #mbox-cells = <3>;
+            reg = <0 0x2aab0000 0 0x10000>;
+            clocks = <&clock 0>;
+            interrupt-names = "combined", "mbx-dbch-xfer-1", "ffch-low-tide-0";
+            interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+        };
+    };
index 79eb523b843644d49b74843a3ae6bb9e832bf308..982c741e622513953af64e3d133a0257631eea82 100644 (file)
@@ -30,6 +30,7 @@ properties:
           - const: syscon
       - items:
           - enum:
+              - qcom,msm8974-apcs-kpss-global
               - qcom,msm8976-apcs-kpss-global
           - const: qcom,msm8994-apcs-kpss-global
           - const: syscon
index 8f004868aad988fa1d0be7bf10dc8b06f4ab82ce..05e4e1d51713a612d3d0f02758e8bfd0500c7460 100644 (file)
@@ -28,6 +28,7 @@ properties:
           - qcom,sa8775p-ipcc
           - qcom,sc7280-ipcc
           - qcom,sc8280xp-ipcc
+          - qcom,sdx75-ipcc
           - qcom,sm6350-ipcc
           - qcom,sm6375-ipcc
           - qcom,sm8250-ipcc
index c0d83d7552399b960308a7d7054fc71d9e810a73..9801de3ed84e8edb62231db514f9aa21cb169754 100644 (file)
@@ -44,7 +44,7 @@ patternProperties:
     description:
       Each vpu encoder or decoder correspond a MU, which used for communication
       between driver and firmware. Implement via mailbox on driver.
-    $ref: ../mailbox/fsl,mu.yaml#
+    $ref: /schemas/mailbox/fsl,mu.yaml#
 
 
   "^vpu-core@[0-9a-f]+$":
diff --git a/Bindings/media/brcm,bcm2835-unicam.yaml b/Bindings/media/brcm,bcm2835-unicam.yaml
new file mode 100644 (file)
index 0000000..5fb5d60
--- /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/media/brcm,bcm2835-unicam.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom BCM283x Camera Interface (Unicam)
+
+maintainers:
+  - Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
+
+description: |-
+  The Unicam block on BCM283x SoCs is the receiver for either
+  CSI-2 or CCP2 data from image sensors or similar devices.
+
+  The main platform using this SoC is the Raspberry Pi family of boards.  On
+  the Pi the VideoCore firmware can also control this hardware block, and
+  driving it from two different processors will cause issues.  To avoid this,
+  the firmware checks the device tree configuration during boot. If it finds
+  device tree nodes whose name starts with 'csi' then it will stop the firmware
+  accessing the block, and it can then safely be used via the device tree
+  binding.
+
+properties:
+  compatible:
+    const: brcm,bcm2835-unicam
+
+  reg:
+    items:
+      - description: Unicam block.
+      - description: Clock Manager Image (CMI) block.
+
+  reg-names:
+    items:
+      - const: unicam
+      - const: cmi
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Clock to drive the LP state machine of Unicam.
+      - description: Clock for the VPU (core clock).
+
+  clock-names:
+    items:
+      - const: lp
+      - const: vpu
+
+  power-domains:
+    items:
+      - description: Unicam power domain
+
+  brcm,num-data-lanes:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [ 2, 4 ]
+    description: |
+      Number of CSI-2 data lanes supported by this Unicam instance. The number
+      of data lanes actively used is specified with the data-lanes endpoint
+      property.
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    unevaluatedProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        additionalProperties: false
+
+        properties:
+          bus-type:
+            enum: [ 3, 4 ]
+
+          clock-noncontinuous: true
+          data-lanes: true
+          remote-endpoint: true
+
+        required:
+          - bus-type
+          - data-lanes
+          - remote-endpoint
+
+    required:
+      - endpoint
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+  - clocks
+  - clock-names
+  - power-domains
+  - brcm,num-data-lanes
+  - port
+
+additionalProperties: False
+
+examples:
+  - |
+    #include <dt-bindings/clock/bcm2835.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/media/video-interfaces.h>
+    #include <dt-bindings/power/raspberrypi-power.h>
+
+    csi1: csi@7e801000 {
+        compatible = "brcm,bcm2835-unicam";
+        reg = <0x7e801000 0x800>,
+              <0x7e802004 0x4>;
+        reg-names = "unicam", "cmi";
+        interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&clocks BCM2835_CLOCK_CAM1>,
+                 <&firmware_clocks 4>;
+        clock-names = "lp", "vpu";
+        power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>;
+        brcm,num-data-lanes = <2>;
+        port {
+                csi1_ep: endpoint {
+                        remote-endpoint = <&imx219_0>;
+                        bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+                        data-lanes = <1 2>;
+                };
+        };
+    };
+...
index 2314a9a146509889f0e982e6dc3f723a2e72ccf1..1d930d9e10fd83496e84d6e415adcd01193e73a2 100644 (file)
@@ -29,6 +29,10 @@ properties:
       - const: cec
       - const: hdmi-cec
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
index f81e7daed67b61ddbdc842f936eeeed153247c2e..2bf1a81feaf478451df5a4a70b8958c370f27b94 100644 (file)
@@ -15,7 +15,7 @@ description: |
   They include an ISP capable of auto exposure and auto white balance.
 
 allOf:
-  - $ref: ../video-interface-devices.yaml#
+  - $ref: /schemas/media/video-interface-devices.yaml#
 
 properties:
   compatible:
index 1726ecca4c77e44282237bfb651364dbb47401c7..9eac588de0bc28d85f44663afe5472e35f1e652c 100644 (file)
@@ -19,7 +19,7 @@ description:
   either through a parallel interface or through MIPI CSI-2.
 
 allOf:
-  - $ref: ../video-interface-devices.yaml#
+  - $ref: /schemas/media/video-interface-devices.yaml#
 
 properties:
   compatible:
index cf456f8d9ddcb8a4c11274fea1fe066524819e5e..634d3b821b8c7592260ae6af4f53e9577a52f785 100644 (file)
@@ -37,31 +37,45 @@ properties:
       active low.
     maxItems: 1
 
-  dovdd-supply:
+  DOVDD-supply:
     description:
       Definition of the regulator used as interface power supply.
 
-  avdd-supply:
+  AVDD-supply:
     description:
       Definition of the regulator used as analog power supply.
 
-  dvdd-supply:
+  DVDD-supply:
     description:
       Definition of the regulator used as digital power supply.
 
   port:
-    $ref: /schemas/graph.yaml#/properties/port
     description:
       A node containing an output port node.
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        additionalProperties: false
+
+        properties:
+          link-frequencies: true
+
+          remote-endpoint: true
+
+        required:
+          - link-frequencies
 
 required:
   - compatible
   - reg
   - clocks
   - clock-names
-  - dovdd-supply
-  - avdd-supply
-  - dvdd-supply
+  - DOVDD-supply
+  - AVDD-supply
+  - DVDD-supply
   - reset-gpios
   - port
 
@@ -82,13 +96,14 @@ examples:
                 clock-names = "xvclk";
                 reset-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
 
-                dovdd-supply = <&sw2_reg>;
-                dvdd-supply = <&sw2_reg>;
-                avdd-supply = <&reg_peri_3p15v>;
+                DOVDD-supply = <&sw2_reg>;
+                DVDD-supply = <&sw2_reg>;
+                AVDD-supply = <&reg_peri_3p15v>;
 
                 port {
                         ov2680_to_mipi: endpoint {
                                 remote-endpoint = <&mipi_from_sensor>;
+                                link-frequencies = /bits/ 64 <330000000>;
                         };
                 };
         };
similarity index 98%
rename from Bindings/media/i2c/ov8856.yaml
rename to Bindings/media/i2c/ovti,ov8856.yaml
index 816dac9c6f609190b088975a9e096bab18239de7..3f6f72c35485ecf435106ab56c293bdf2ed7761a 100644 (file)
@@ -2,7 +2,7 @@
 # Copyright (c) 2019 MediaTek Inc.
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/media/i2c/ov8856.yaml#
+$id: http://devicetree.org/schemas/media/i2c/ovti,ov8856.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Omnivision OV8856 CMOS Sensor
index 60903da84e1f3281e9faeaf43c057a07462cc277..0162eec8ca993a7614d29908f89fa9fe6d4b545d 100644 (file)
@@ -16,7 +16,7 @@ description: |
   maximum throughput of 1.2Gbps/lane.
 
 allOf:
-  - $ref: ../video-interface-devices.yaml#
+  - $ref: /schemas/media/video-interface-devices.yaml#
 
 properties:
   compatible:
index a531badc16c98bd94db63e53bd68493ba09d0c8e..bf05ca48601abda53d60a3d03aa556e7b8fd825b 100644 (file)
@@ -23,6 +23,9 @@ description: |-
   is treated the same as this as it was the original compatible string.
   imx290llr is the mono version of the sensor.
 
+allOf:
+  - $ref: /schemas/media/video-interface-devices.yaml#
+
 properties:
   compatible:
     oneOf:
@@ -101,7 +104,7 @@ required:
   - vdddo-supply
   - port
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 9a00dab2e8a3f008857a9dcc493f103e497fbe7e..34962c5c70065efacd77ac6a948bb421328cd783 100644 (file)
@@ -18,7 +18,7 @@ description: |-
   available via CSI-2 serial data output (two or four lanes).
 
 allOf:
-  - $ref: ../video-interface-devices.yaml#
+  - $ref: /schemas/media/video-interface-devices.yaml#
 
 properties:
   compatible:
index e4665469a86c3ac5f77e029c12675d02884afc02..4d5348d456a1fedf8b98b405dc1c278dfdeed797 100644 (file)
@@ -84,6 +84,7 @@ allOf:
           properties:
             port@0:
               description: MIPI CSI-2 RX
+            port@1: false
           required:
             - port@0
 
index 3d9d1db37040de06edc38bc26c0983d38e8c6731..2be30c5fdc8398e5390c1384c5dce173e8691d8b 100644 (file)
@@ -31,6 +31,11 @@ properties:
   reg:
     maxItems: 1
 
+  clocks:
+    items:
+      - description: AXI DMA engine clock for fetching JPEG bitstream from memory (per)
+      - description: IP bus clock for register access (ipg)
+
   interrupts:
     description: |
       There are 4 slots available in the IP, which the driver may use
@@ -49,6 +54,7 @@ properties:
 required:
   - compatible
   - reg
+  - clocks
   - interrupts
   - power-domains
 
@@ -56,12 +62,15 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/clock/imx8-lpcg.h>
     #include <dt-bindings/interrupt-controller/arm-gic.h>
     #include <dt-bindings/firmware/imx/rsrc.h>
 
     jpegdec: jpegdec@58400000 {
         compatible = "nxp,imx8qxp-jpgdec";
         reg = <0x58400000 0x00050000 >;
+        clocks = <&img_jpeg_dec_lpcg IMX_LPCG_CLK_0>,
+                 <&img_jpeg_dec_lpcg IMX_LPCG_CLK_4>;
         interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>,
                      <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>,
                      <GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>,
@@ -76,6 +85,8 @@ examples:
     jpegenc: jpegenc@58450000 {
         compatible = "nxp,imx8qm-jpgenc", "nxp,imx8qxp-jpgenc";
         reg = <0x58450000 0x00050000 >;
+        clocks = <&img_jpeg_enc_lpcg IMX_LPCG_CLK_0>,
+                 <&img_jpeg__lpcg IMX_LPCG_CLK_4>;
         interrupts = <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
                      <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>,
                      <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/Bindings/media/qcom,sc8280xp-camss.yaml b/Bindings/media/qcom,sc8280xp-camss.yaml
new file mode 100644 (file)
index 0000000..c0bc317
--- /dev/null
@@ -0,0 +1,512 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/qcom,sc8280xp-camss.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SC8280XP Camera Subsystem (CAMSS)
+
+maintainers:
+  - Bryan O'Donoghue <bryan.odonoghue@linaro.org>
+
+description: |
+  The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms.
+
+properties:
+  compatible:
+    const: qcom,sc8280xp-camss
+
+  clocks:
+    maxItems: 40
+
+  clock-names:
+    items:
+      - const: camnoc_axi
+      - const: cpas_ahb
+      - const: csiphy0
+      - const: csiphy0_timer
+      - const: csiphy1
+      - const: csiphy1_timer
+      - const: csiphy2
+      - const: csiphy2_timer
+      - const: csiphy3
+      - const: csiphy3_timer
+      - const: vfe0_axi
+      - const: vfe0
+      - const: vfe0_cphy_rx
+      - const: vfe0_csid
+      - const: vfe1_axi
+      - const: vfe1
+      - const: vfe1_cphy_rx
+      - const: vfe1_csid
+      - const: vfe2_axi
+      - const: vfe2
+      - const: vfe2_cphy_rx
+      - const: vfe2_csid
+      - const: vfe3_axi
+      - const: vfe3
+      - const: vfe3_cphy_rx
+      - const: vfe3_csid
+      - const: vfe_lite0
+      - const: vfe_lite0_cphy_rx
+      - const: vfe_lite0_csid
+      - const: vfe_lite1
+      - const: vfe_lite1_cphy_rx
+      - const: vfe_lite1_csid
+      - const: vfe_lite2
+      - const: vfe_lite2_cphy_rx
+      - const: vfe_lite2_csid
+      - const: vfe_lite3
+      - const: vfe_lite3_cphy_rx
+      - const: vfe_lite3_csid
+      - const: gcc_axi_hf
+      - const: gcc_axi_sf
+
+  interrupts:
+    maxItems: 20
+
+  interrupt-names:
+    items:
+      - const: csid1_lite
+      - const: vfe_lite1
+      - const: csiphy3
+      - const: csid0
+      - const: vfe0
+      - const: csid1
+      - const: vfe1
+      - const: csid0_lite
+      - const: vfe_lite0
+      - const: csiphy0
+      - const: csiphy1
+      - const: csiphy2
+      - const: csid2
+      - const: vfe2
+      - const: csid3_lite
+      - const: csid2_lite
+      - const: vfe_lite3
+      - const: vfe_lite2
+      - const: csid3
+      - const: vfe3
+
+  iommus:
+    maxItems: 16
+
+  interconnects:
+    maxItems: 4
+
+  interconnect-names:
+    items:
+      - const: cam_ahb
+      - const: cam_hf_mnoc
+      - const: cam_sf_mnoc
+      - const: cam_sf_icp_mnoc
+
+  power-domains:
+    items:
+      - description: IFE0 GDSC - Image Front End, Global Distributed Switch Controller.
+      - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller.
+      - description: IFE2 GDSC - Image Front End, Global Distributed Switch Controller.
+      - description: IFE3 GDSC - Image Front End, Global Distributed Switch Controller.
+      - description: Titan Top GDSC - Titan ISP Block, Global Distributed Switch Controller.
+
+  power-domain-names:
+    items:
+      - const: ife0
+      - const: ife1
+      - const: ife2
+      - const: ife3
+      - const: top
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    description:
+      CSI input ports.
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description:
+          Input port for receiving CSI data from CSIPHY0.
+
+        properties:
+          endpoint:
+            $ref: video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              clock-lanes:
+                maxItems: 1
+
+              data-lanes:
+                minItems: 1
+                maxItems: 4
+
+            required:
+              - clock-lanes
+              - data-lanes
+
+      port@1:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description:
+          Input port for receiving CSI data from CSIPHY1.
+
+        properties:
+          endpoint:
+            $ref: video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              clock-lanes:
+                maxItems: 1
+
+              data-lanes:
+                minItems: 1
+                maxItems: 4
+
+            required:
+              - clock-lanes
+              - data-lanes
+
+      port@2:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description:
+          Input port for receiving CSI data from CSIPHY2.
+
+        properties:
+          endpoint:
+            $ref: video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              clock-lanes:
+                maxItems: 1
+
+              data-lanes:
+                minItems: 1
+                maxItems: 4
+
+            required:
+              - clock-lanes
+              - data-lanes
+
+      port@3:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description:
+          Input port for receiving CSI data from CSIPHY3.
+
+        properties:
+          endpoint:
+            $ref: video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              clock-lanes:
+                maxItems: 1
+
+              data-lanes:
+                minItems: 1
+                maxItems: 4
+
+            required:
+              - clock-lanes
+              - data-lanes
+
+  reg:
+    maxItems: 20
+
+  reg-names:
+    items:
+      - const: csiphy2
+      - const: csiphy3
+      - const: csiphy0
+      - const: csiphy1
+      - const: vfe0
+      - const: csid0
+      - const: vfe1
+      - const: csid1
+      - const: vfe2
+      - const: csid2
+      - const: vfe_lite0
+      - const: csid0_lite
+      - const: vfe_lite1
+      - const: csid1_lite
+      - const: vfe_lite2
+      - const: csid2_lite
+      - const: vfe_lite3
+      - const: csid3_lite
+      - const: vfe3
+      - const: csid3
+
+  vdda-phy-supply:
+    description:
+      Phandle to a regulator supply to PHY core block.
+
+  vdda-pll-supply:
+    description:
+      Phandle to 1.8V regulator supply to PHY refclk pll block.
+
+required:
+  - clock-names
+  - clocks
+  - compatible
+  - interconnects
+  - interconnect-names
+  - interrupts
+  - interrupt-names
+  - iommus
+  - power-domains
+  - power-domain-names
+  - reg
+  - reg-names
+  - vdda-phy-supply
+  - vdda-pll-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
+    #include <dt-bindings/clock/qcom,sc8280xp-camcc.h>
+    #include <dt-bindings/interconnect/qcom,sc8280xp.h>
+    #include <dt-bindings/power/qcom-rpmpd.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        camss: camss@ac5a000 {
+            compatible = "qcom,sc8280xp-camss";
+
+            reg = <0 0x0ac5a000 0 0x2000>,
+                  <0 0x0ac5c000 0 0x2000>,
+                  <0 0x0ac65000 0 0x2000>,
+                  <0 0x0ac67000 0 0x2000>,
+                  <0 0x0acaf000 0 0x4000>,
+                  <0 0x0acb3000 0 0x1000>,
+                  <0 0x0acb6000 0 0x4000>,
+                  <0 0x0acba000 0 0x1000>,
+                  <0 0x0acbd000 0 0x4000>,
+                  <0 0x0acc1000 0 0x1000>,
+                  <0 0x0acc4000 0 0x4000>,
+                  <0 0x0acc8000 0 0x1000>,
+                  <0 0x0accb000 0 0x4000>,
+                  <0 0x0accf000 0 0x1000>,
+                  <0 0x0acd2000 0 0x4000>,
+                  <0 0x0acd6000 0 0x1000>,
+                  <0 0x0acd9000 0 0x4000>,
+                  <0 0x0acdd000 0 0x1000>,
+                  <0 0x0ace0000 0 0x4000>,
+                  <0 0x0ace4000 0 0x1000>;
+
+            reg-names = "csiphy2",
+                        "csiphy3",
+                        "csiphy0",
+                        "csiphy1",
+                        "vfe0",
+                        "csid0",
+                        "vfe1",
+                        "csid1",
+                        "vfe2",
+                        "csid2",
+                        "vfe_lite0",
+                        "csid0_lite",
+                        "vfe_lite1",
+                        "csid1_lite",
+                        "vfe_lite2",
+                        "csid2_lite",
+                        "vfe_lite3",
+                        "csid3_lite",
+                        "vfe3",
+                        "csid3";
+
+            vdda-phy-supply = <&vreg_l6d>;
+            vdda-pll-supply = <&vreg_l4d>;
+
+            interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 448 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 477 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 478 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 479 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 640 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 758 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 759 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 760 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 761 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 762 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 764 IRQ_TYPE_LEVEL_HIGH>;
+
+            interrupt-names = "csid1_lite",
+                              "vfe_lite1",
+                              "csiphy3",
+                              "csid0",
+                              "vfe0",
+                              "csid1",
+                              "vfe1",
+                              "csid0_lite",
+                              "vfe_lite0",
+                              "csiphy0",
+                              "csiphy1",
+                              "csiphy2",
+                              "csid2",
+                              "vfe2",
+                              "csid3_lite",
+                              "csid2_lite",
+                              "vfe_lite3",
+                              "vfe_lite2",
+                              "csid3",
+                              "vfe3";
+
+            power-domains = <&camcc IFE_0_GDSC>,
+                            <&camcc IFE_1_GDSC>,
+                            <&camcc IFE_2_GDSC>,
+                            <&camcc IFE_3_GDSC>,
+                            <&camcc TITAN_TOP_GDSC>;
+
+            power-domain-names = "ife0",
+                                 "ife1",
+                                 "ife2",
+                                 "ife3",
+                                 "top";
+
+            clocks = <&camcc CAMCC_CAMNOC_AXI_CLK>,
+                     <&camcc CAMCC_CPAS_AHB_CLK>,
+                     <&camcc CAMCC_CSIPHY0_CLK>,
+                     <&camcc CAMCC_CSI0PHYTIMER_CLK>,
+                     <&camcc CAMCC_CSIPHY1_CLK>,
+                     <&camcc CAMCC_CSI1PHYTIMER_CLK>,
+                     <&camcc CAMCC_CSIPHY2_CLK>,
+                     <&camcc CAMCC_CSI2PHYTIMER_CLK>,
+                     <&camcc CAMCC_CSIPHY3_CLK>,
+                     <&camcc CAMCC_CSI3PHYTIMER_CLK>,
+                     <&camcc CAMCC_IFE_0_AXI_CLK>,
+                     <&camcc CAMCC_IFE_0_CLK>,
+                     <&camcc CAMCC_IFE_0_CPHY_RX_CLK>,
+                     <&camcc CAMCC_IFE_0_CSID_CLK>,
+                     <&camcc CAMCC_IFE_1_AXI_CLK>,
+                     <&camcc CAMCC_IFE_1_CLK>,
+                     <&camcc CAMCC_IFE_1_CPHY_RX_CLK>,
+                     <&camcc CAMCC_IFE_1_CSID_CLK>,
+                     <&camcc CAMCC_IFE_2_AXI_CLK>,
+                     <&camcc CAMCC_IFE_2_CLK>,
+                     <&camcc CAMCC_IFE_2_CPHY_RX_CLK>,
+                     <&camcc CAMCC_IFE_2_CSID_CLK>,
+                     <&camcc CAMCC_IFE_3_AXI_CLK>,
+                     <&camcc CAMCC_IFE_3_CLK>,
+                     <&camcc CAMCC_IFE_3_CPHY_RX_CLK>,
+                     <&camcc CAMCC_IFE_3_CSID_CLK>,
+                     <&camcc CAMCC_IFE_LITE_0_CLK>,
+                     <&camcc CAMCC_IFE_LITE_0_CPHY_RX_CLK>,
+                     <&camcc CAMCC_IFE_LITE_0_CSID_CLK>,
+                     <&camcc CAMCC_IFE_LITE_1_CLK>,
+                     <&camcc CAMCC_IFE_LITE_1_CPHY_RX_CLK>,
+                     <&camcc CAMCC_IFE_LITE_1_CSID_CLK>,
+                     <&camcc CAMCC_IFE_LITE_2_CLK>,
+                     <&camcc CAMCC_IFE_LITE_2_CPHY_RX_CLK>,
+                     <&camcc CAMCC_IFE_LITE_2_CSID_CLK>,
+                     <&camcc CAMCC_IFE_LITE_3_CLK>,
+                     <&camcc CAMCC_IFE_LITE_3_CPHY_RX_CLK>,
+                     <&camcc CAMCC_IFE_LITE_3_CSID_CLK>,
+                     <&gcc GCC_CAMERA_HF_AXI_CLK>,
+                     <&gcc GCC_CAMERA_SF_AXI_CLK>;
+
+            clock-names = "camnoc_axi",
+                          "cpas_ahb",
+                          "csiphy0",
+                          "csiphy0_timer",
+                          "csiphy1",
+                          "csiphy1_timer",
+                          "csiphy2",
+                          "csiphy2_timer",
+                          "csiphy3",
+                          "csiphy3_timer",
+                          "vfe0_axi",
+                          "vfe0",
+                          "vfe0_cphy_rx",
+                          "vfe0_csid",
+                          "vfe1_axi",
+                          "vfe1",
+                          "vfe1_cphy_rx",
+                          "vfe1_csid",
+                          "vfe2_axi",
+                          "vfe2",
+                          "vfe2_cphy_rx",
+                          "vfe2_csid",
+                          "vfe3_axi",
+                          "vfe3",
+                          "vfe3_cphy_rx",
+                          "vfe3_csid",
+                          "vfe_lite0",
+                          "vfe_lite0_cphy_rx",
+                          "vfe_lite0_csid",
+                          "vfe_lite1",
+                          "vfe_lite1_cphy_rx",
+                          "vfe_lite1_csid",
+                          "vfe_lite2",
+                          "vfe_lite2_cphy_rx",
+                          "vfe_lite2_csid",
+                          "vfe_lite3",
+                          "vfe_lite3_cphy_rx",
+                          "vfe_lite3_csid",
+                          "gcc_axi_hf",
+                          "gcc_axi_sf";
+
+
+            iommus = <&apps_smmu 0x2000 0x4e0>,
+                     <&apps_smmu 0x2020 0x4e0>,
+                     <&apps_smmu 0x2040 0x4e0>,
+                     <&apps_smmu 0x2060 0x4e0>,
+                     <&apps_smmu 0x2080 0x4e0>,
+                     <&apps_smmu 0x20e0 0x4e0>,
+                     <&apps_smmu 0x20c0 0x4e0>,
+                     <&apps_smmu 0x20a0 0x4e0>,
+                     <&apps_smmu 0x2400 0x4e0>,
+                     <&apps_smmu 0x2420 0x4e0>,
+                     <&apps_smmu 0x2440 0x4e0>,
+                     <&apps_smmu 0x2460 0x4e0>,
+                     <&apps_smmu 0x2480 0x4e0>,
+                     <&apps_smmu 0x24e0 0x4e0>,
+                     <&apps_smmu 0x24c0 0x4e0>,
+                     <&apps_smmu 0x24a0 0x4e0>;
+
+            interconnects = <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_CAMERA_CFG 0>,
+                            <&mmss_noc MASTER_CAMNOC_HF 0 &mc_virt SLAVE_EBI1 0>,
+                            <&mmss_noc MASTER_CAMNOC_SF 0 &mc_virt SLAVE_EBI1 0>,
+                            <&mmss_noc MASTER_CAMNOC_ICP 0 &mc_virt SLAVE_EBI1 0>;
+            interconnect-names = "cam_ahb",
+                                 "cam_hf_mnoc",
+                                 "cam_sf_mnoc",
+                                 "cam_sf_icp_mnoc";
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    #address-cells = <1>;
+                    #size-cells = <0>;
+
+                    csiphy_ep0: endpoint@0 {
+                        reg = <0>;
+                        clock-lanes = <7>;
+                        data-lanes = <0 1>;
+                        remote-endpoint = <&sensor_ep>;
+                    };
+                };
+            };
+        };
+    };
index 6b3e413cedb259ef71f7726ad1bb84c3068cbdca..34147127192fd830c92d4f5e0fc657e5ce2ce4f1 100644 (file)
@@ -36,6 +36,10 @@ properties:
   resets:
     maxItems: 1
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
   port:
     $ref: /schemas/graph.yaml#/$defs/port-base
     unevaluatedProperties: false
index b8611bc8756c48d0bd7dd1887b6f6bcf13320b20..73726c65cfb940b498b8ee5119f464ab7684b26f 100644 (file)
@@ -30,6 +30,10 @@ properties:
   clocks:
     maxItems: 1
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
diff --git a/Bindings/memory-controllers/samsung,s5pv210-dmc.yaml b/Bindings/memory-controllers/samsung,s5pv210-dmc.yaml
new file mode 100644 (file)
index 0000000..c0e4705
--- /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/memory-controllers/samsung,s5pv210-dmc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung S5Pv210 SoC Dynamic Memory Controller
+
+maintainers:
+  - Krzysztof Kozlowski <krzk@kernel.org>
+
+description:
+  Dynamic Memory Controller interfaces external JEDEC DDR-type SDRAM.
+
+properties:
+  compatible:
+    const: samsung,s5pv210-dmc
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    memory-controller@f0000000 {
+        compatible = "samsung,s5pv210-dmc";
+        reg = <0xf0000000 0x1000>;
+    };
index 84ac6f50a6fc3ff23968beb1d3c7b1f251692186..706e45eb4d279f9723f9e9b758b7bb4318999f45 100644 (file)
@@ -50,6 +50,10 @@ properties:
       Reflects the memory layout with four integer values per bank. Format:
       <bank-number> 0 <address of the bank> <size>
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 patternProperties:
   "^.*@[0-4],[a-f0-9]+$":
     additionalProperties: true
index 6811246c57713258728322a879627b7dc525e2ec..9ae419748aa73c97cdf8664a678806fcb8d9ac9d 100644 (file)
@@ -21,7 +21,7 @@ description: |
   regulators.
 
 allOf:
-  - $ref: ../input/input.yaml
+  - $ref: /schemas/input/input.yaml
 
 properties:
   compatible:
@@ -57,7 +57,7 @@ properties:
 
       switchldo1:
         type: object
-        $ref: ../regulator/regulator.yaml
+        $ref: /schemas/regulator/regulator.yaml
 
         properties:
           regulator-name: true
@@ -76,7 +76,7 @@ properties:
 
       "^(dcdc[0-4]|ldo[0-9]|ldo1[1-2])$":
         type: object
-        $ref: ../regulator/regulator.yaml
+        $ref: /schemas/regulator/regulator.yaml
 
         properties:
           regulator-name: true
index 8789e3639ff7e2b4eec4e67ae1b1f05ec79bcefd..ca0e9f1f2354893c19f5a0513a4f4c0cc3712cdc 100644 (file)
@@ -20,7 +20,7 @@ properties:
     maxItems: 1
 
 patternProperties:
-  "^.*_(clk|rst)$":
+  "^.*-(clk|rst)$":
     type: object
     unevaluatedProperties: false
 
@@ -171,7 +171,7 @@ examples:
         compatible = "allwinner,sun6i-a31-prcm";
         reg = <0x01f01400 0x200>;
 
-        ar100: ar100_clk {
+        ar100: ar100-clk {
             compatible = "allwinner,sun6i-a31-ar100-clk";
             #clock-cells = <0>;
             clocks = <&rtc 0>, <&osc24M>,
@@ -180,7 +180,7 @@ examples:
             clock-output-names = "ar100";
         };
 
-        ahb0: ahb0_clk {
+        ahb0: ahb0-clk {
             compatible = "fixed-factor-clock";
             #clock-cells = <0>;
             clock-div = <1>;
@@ -189,14 +189,14 @@ examples:
             clock-output-names = "ahb0";
         };
 
-        apb0: apb0_clk {
+        apb0: apb0-clk {
             compatible = "allwinner,sun6i-a31-apb0-clk";
             #clock-cells = <0>;
             clocks = <&ahb0>;
             clock-output-names = "apb0";
         };
 
-        apb0_gates: apb0_gates_clk {
+        apb0_gates: apb0-gates-clk {
             compatible = "allwinner,sun6i-a31-apb0-gates-clk";
             #clock-cells = <1>;
             clocks = <&apb0>;
@@ -206,14 +206,14 @@ examples:
                                  "apb0_i2c";
         };
 
-        ir_clk: ir_clk {
+        ir_clk: ir-clk {
             #clock-cells = <0>;
             compatible = "allwinner,sun4i-a10-mod0-clk";
             clocks = <&rtc 0>, <&osc24M>;
             clock-output-names = "ir";
         };
 
-        apb0_rst: apb0_rst {
+        apb0_rst: apb0-rst {
             compatible = "allwinner,sun6i-a31-clock-reset";
             #reset-cells = <1>;
         };
index 1689b986f4417ac9e226e885dd2d56c8284259f6..86ee69c0f45b5a3d16ca0ba9495fb877e4d2480c 100644 (file)
@@ -47,10 +47,18 @@ patternProperties:
     type: object
 
   '^pinctrl(@[0-9a-f]+)?$':
-    oneOf:
-      - $ref: /schemas/pinctrl/aspeed,ast2400-pinctrl.yaml
-      - $ref: /schemas/pinctrl/aspeed,ast2500-pinctrl.yaml
-      - $ref: /schemas/pinctrl/aspeed,ast2600-pinctrl.yaml
+    type: object
+    additionalProperties: true
+    properties:
+      compatible:
+        contains:
+          enum:
+            - aspeed,ast2400-pinctrl
+            - aspeed,ast2500-pinctrl
+            - aspeed,ast2600-pinctrl
+
+    required:
+      - compatible
 
   '^interrupt-controller@[0-9a-f]+$':
     description: See Documentation/devicetree/bindings/interrupt-controller/aspeed,ast2xxx-scu-ic.txt
index b85819fbb07c8d9886bd1ab4289d227fa690f09f..04910e4f88b2437ad7bda382dd1041f5a44e4648 100644 (file)
@@ -34,19 +34,19 @@ properties:
 
 patternProperties:
   '^clock-controller@[a-f0-9]+$':
-    $ref: ../clock/brcm,iproc-clocks.yaml
+    $ref: /schemas/clock/brcm,iproc-clocks.yaml
 
   '^phy@[a-f0-9]+$':
-    $ref: ../phy/bcm-ns-usb2-phy.yaml
+    $ref: /schemas/phy/bcm-ns-usb2-phy.yaml
 
   '^pinctrl@[a-f0-9]+$':
-    $ref: ../pinctrl/brcm,ns-pinmux.yaml
+    $ref: /schemas/pinctrl/brcm,ns-pinmux.yaml
 
   '^syscon@[a-f0-9]+$':
     $ref: syscon.yaml
 
   '^thermal@[a-f0-9]+$':
-    $ref: ../thermal/brcm,ns-thermal.yaml
+    $ref: /schemas/thermal/brcm,ns-thermal.yaml
 
 additionalProperties: false
 
diff --git a/Bindings/mfd/brcm,iproc-cdru.txt b/Bindings/mfd/brcm,iproc-cdru.txt
deleted file mode 100644 (file)
index 82f82e0..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Broadcom iProc Chip Device Resource Unit (CDRU)
-
-Various Broadcom iProc SoCs have a set of registers that provide various
-chip specific device and resource configurations. This node allows access to
-these CDRU registers via syscon.
-
-Required properties:
-- compatible: should contain:
-               "brcm,sr-cdru", "syscon" for Stingray
-- reg: base address and range of the CDRU registers
-
-Example:
-       cdru: syscon@6641d000 {
-               compatible = "brcm,sr-cdru", "syscon";
-               reg = <0 0x6641d000 0 0x400>;
-       };
diff --git a/Bindings/mfd/brcm,iproc-mhb.txt b/Bindings/mfd/brcm,iproc-mhb.txt
deleted file mode 100644 (file)
index 4421e97..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-Broadcom iProc Multi Host Bridge (MHB)
-
-Certain Broadcom iProc SoCs have a multi host bridge (MHB) block that controls
-the connection and configuration of 1) internal PCIe serdes; 2) PCIe endpoint
-interface; 3) access to the Nitro (network processing) engine
-
-This node allows access to these MHB registers via syscon.
-
-Required properties:
-- compatible: should contain:
-               "brcm,sr-mhb", "syscon" for Stingray
-- reg: base address and range of the MHB registers
-
-Example:
-       mhb: syscon@60401000 {
-               compatible = "brcm,sr-mhb", "syscon";
-               reg = <0 0x60401000 0 0x38c>;
-       };
index cff7d772a7dbda09afdbfb2dc662a749741b09bc..abe24526f3d789d47eb0e6f054764e3907cc173d 100644 (file)
@@ -33,7 +33,7 @@ properties:
 
 patternProperties:
   '^reset-controller@[a-f0-9]+$':
-    $ref: ../reset/brcm,bcm4908-misc-pcie-reset.yaml
+    $ref: /schemas/reset/brcm,bcm4908-misc-pcie-reset.yaml
 
 additionalProperties: false
 
index 3b3beab9db3f31a597fdff2b2e3135a1d7947de4..2451d0f0e4e34bfb2756a54c5b60e5563e7c1c2d 100644 (file)
@@ -36,7 +36,7 @@ properties:
   clock-controller:
     # Child node
     type: object
-    $ref: ../clock/canaan,k210-clk.yaml
+    $ref: /schemas/clock/canaan,k210-clk.yaml
     description:
       Clock controller for the SoC clocks. This child node definition
       should follow the bindings specified in
@@ -45,7 +45,7 @@ properties:
   reset-controller:
     # Child node
     type: object
-    $ref: ../reset/canaan,k210-rst.yaml
+    $ref: /schemas/reset/canaan,k210-rst.yaml
     description:
       Reset controller for the SoC. This child node definition
       should follow the bindings specified in
@@ -54,7 +54,7 @@ properties:
   syscon-reboot:
     # Child node
     type: object
-    $ref: ../power/reset/syscon-reboot.yaml
+    $ref: /schemas/power/reset/syscon-reboot.yaml
     description:
       Reboot method for the SoC. This child node definition
       should follow the bindings specified in
index f6967c1f6235f75b83e00185e5908f27db53026c..d3b79140cce2b87692985fe6e4f7d84564e5d98a 100644 (file)
@@ -42,10 +42,10 @@ required:
 
 patternProperties:
   "^gpio(@[0-9a-f]+)?$":
-    $ref: ../gpio/delta,tn48m-gpio.yaml
+    $ref: /schemas/gpio/delta,tn48m-gpio.yaml
 
   "^reset-controller?$":
-    $ref: ../reset/delta,tn48m-reset.yaml
+    $ref: /schemas/reset/delta,tn48m-reset.yaml
 
 additionalProperties: false
 
index f438c2374966394fd584a89ee92513238afe936d..e79ce447a8008d0c8d56f8f314a4db072dc64ddc 100644 (file)
@@ -38,10 +38,10 @@ properties:
       device name with ".bin" as the extension (e.g. iqs620a.bin for IQS620A).
 
   keys:
-    $ref: ../input/iqs62x-keys.yaml
+    $ref: /schemas/input/iqs62x-keys.yaml
 
   pwm:
-    $ref: ../pwm/iqs620a-pwm.yaml
+    $ref: /schemas/pwm/iqs620a-pwm.yaml
 
 required:
   - compatible
index eb3b43547cb6c7d68acf094b9234447ce43de9de..37207a97e06c69d444642766fc544bcd49c3e66b 100644 (file)
@@ -39,19 +39,19 @@ properties:
 
 patternProperties:
   "^gpio(@[0-9a-f]+)?$":
-    $ref: ../gpio/kontron,sl28cpld-gpio.yaml
+    $ref: /schemas/gpio/kontron,sl28cpld-gpio.yaml
 
   "^hwmon(@[0-9a-f]+)?$":
-    $ref: ../hwmon/kontron,sl28cpld-hwmon.yaml
+    $ref: /schemas/hwmon/kontron,sl28cpld-hwmon.yaml
 
   "^interrupt-controller(@[0-9a-f]+)?$":
-    $ref: ../interrupt-controller/kontron,sl28cpld-intc.yaml
+    $ref: /schemas/interrupt-controller/kontron,sl28cpld-intc.yaml
 
   "^pwm(@[0-9a-f]+)?$":
-    $ref: ../pwm/kontron,sl28cpld-pwm.yaml
+    $ref: /schemas/pwm/kontron,sl28cpld-pwm.yaml
 
   "^watchdog(@[0-9a-f]+)?$":
-    $ref: ../watchdog/kontron,sl28cpld-wdt.yaml
+    $ref: /schemas/watchdog/kontron,sl28cpld-wdt.yaml
 
 required:
   - "#address-cells"
diff --git a/Bindings/mfd/lp873x.txt b/Bindings/mfd/lp873x.txt
deleted file mode 100644 (file)
index ae9cf39..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-TI LP873X PMIC MFD driver
-
-Required properties:
-  - compatible:        "ti,lp8732", "ti,lp8733"
-  - reg:               I2C slave address.
-  - gpio-controller:   Marks the device node as a GPIO Controller.
-  - #gpio-cells:       Should be two.  The first cell is the pin number and
-                       the second cell is used to specify flags.
-                       See ../gpio/gpio.txt for more information.
-  - xxx-in-supply:     Phandle to parent supply node of each regulator
-                       populated under regulators node. xxx can be
-                       buck0, buck1, ldo0 or ldo1.
-  - regulators:        List of child nodes that specify the regulator
-                       initialization data.
-Example:
-
-pmic: lp8733@60 {
-       compatible = "ti,lp8733";
-       reg = <0x60>;
-       gpio-controller;
-       #gpio-cells = <2>;
-
-       buck0-in-supply = <&vsys_3v3>;
-       buck1-in-supply = <&vsys_3v3>;
-       ldo0-in-supply = <&vsys_3v3>;
-       ldo1-in-supply = <&vsys_3v3>;
-
-       regulators {
-               lp8733_buck0: buck0 {
-                       regulator-name = "lp8733-buck0";
-                       regulator-min-microvolt = <800000>;
-                       regulator-max-microvolt = <1400000>;
-                       regulator-min-microamp = <1500000>;
-                       regulator-max-microamp = <4000000>;
-                       regulator-ramp-delay = <10000>;
-                       regulator-always-on;
-                       regulator-boot-on;
-               };
-
-               lp8733_buck1: buck1 {
-                       regulator-name = "lp8733-buck1";
-                       regulator-min-microvolt = <800000>;
-                       regulator-max-microvolt = <1400000>;
-                       regulator-min-microamp = <1500000>;
-                       regulator-max-microamp = <4000000>;
-                       regulator-ramp-delay = <10000>;
-                       regulator-boot-on;
-                       regulator-always-on;
-               };
-
-               lp8733_ldo0: ldo0 {
-                       regulator-name = "lp8733-ldo0";
-                       regulator-min-microvolt = <800000>;
-                       regulator-max-microvolt = <3000000>;
-                       regulator-boot-on;
-                       regulator-always-on;
-               };
-
-               lp8733_ldo1: ldo1 {
-                       regulator-name = "lp8733-ldo1";
-                       regulator-min-microvolt = <800000>;
-                       regulator-max-microvolt = <3000000>;
-                       regulator-always-on;
-                       regulator-boot-on;
-               };
-       };
-};
index 4181174fcf58969beafed3e329a29732317b981c..d93d84171a31c1ecc1b9903b253ac72783dff6c4 100644 (file)
@@ -53,16 +53,16 @@ properties:
       Single string containing the name of the GPIO line.
 
   regulators:
-    $ref: ../regulator/max77650-regulator.yaml
+    $ref: /schemas/regulator/max77650-regulator.yaml
 
   charger:
-    $ref: ../power/supply/max77650-charger.yaml
+    $ref: /schemas/power/supply/max77650-charger.yaml
 
   leds:
-    $ref: ../leds/leds-max77650.yaml
+    $ref: /schemas/leds/leds-max77650.yaml
 
   onkey:
-    $ref: ../input/max77650-onkey.yaml
+    $ref: /schemas/input/max77650-onkey.yaml
 
 required:
   - compatible
index d027aabe453ba5d3a789244d37119768561e1dfd..c13d51e462ba8021e239754a23b25cd66f45ebc2 100644 (file)
@@ -35,7 +35,7 @@ properties:
     maxItems: 1
 
   voltage-regulators:
-    $ref: ../regulator/maxim,max77686.yaml
+    $ref: /schemas/regulator/maxim,max77686.yaml
     description:
       List of child nodes that specify the regulators.
 
index 6a6f222b868ffa06e606e2bd4062efa5d319a6ec..cce273ba4034a061f5973dd5fabc921053bdadad 100644 (file)
@@ -81,7 +81,7 @@ properties:
       - pwms
 
   regulators:
-    $ref: ../regulator/maxim,max77693.yaml
+    $ref: /schemas/regulator/maxim,max77693.yaml
     description:
       List of child nodes that specify the regulators.
 
index 8103fb61a16cc907ab46aeb728aab4a1139523e2..b7f01cbb8fffa0135bd68b4cc3484bea41c123e0 100644 (file)
@@ -160,6 +160,10 @@ patternProperties:
     type: object
     $ref: /schemas/nvmem/qcom,spmi-sdam.yaml#
 
+  "^pbs@[0-9a-f]+$":
+    type: object
+    $ref: /schemas/soc/qcom/qcom,pbs.yaml#
+
   "phy@[0-9a-f]+$":
     type: object
     $ref: /schemas/phy/qcom,snps-eusb2-repeater.yaml#
index b97d77015335f10d5c6fac206ac15ac474429240..c6bd14ec5aa0fc28533c3cf98f764eeee4b62400 100644 (file)
@@ -28,6 +28,7 @@ properties:
           - qcom,sdm845-tcsr
           - qcom,sdx55-tcsr
           - qcom,sdx65-tcsr
+          - qcom,sdx75-tcsr
           - qcom,sm4450-tcsr
           - qcom,sm6115-tcsr
           - qcom,sm8150-tcsr
index 7fe3875a5996ca0c0dec01693682d0999c4ec7ec..63e18d6a9c21aff80ef51b8665eccae3d4cd17e8 100644 (file)
@@ -19,6 +19,7 @@ properties:
       - enum:
           - qcom,pm8058
           - qcom,pm8821
+          - qcom,pm8901
           - qcom,pm8921
       - items:
           - enum:
index 4762eb1439ce6a5de7430bf0c579e1538c70d1df..e3ccba177b21313417f4084c521f5a3ed2cf73cb 100644 (file)
@@ -37,10 +37,10 @@ properties:
     maxItems: 1
 
   regulators:
-    $ref: ../regulator/richtek,rt4831-regulator.yaml
+    $ref: /schemas/regulator/richtek,rt4831-regulator.yaml
 
   backlight:
-    $ref: ../leds/backlight/richtek,rt4831-backlight.yaml
+    $ref: /schemas/leds/backlight/richtek,rt4831-backlight.yaml
 
 required:
   - compatible
index 032a7fb0b4a71196110a2408273b25d0c70312c9..e3d64307b5315730e8374e863203a15abb9f83e3 100644 (file)
@@ -28,7 +28,7 @@ allOf:
         regulators:
           patternProperties:
             "^(DCDC[1-4]|LDO[1-5]|LDORTC[12])$":
-              $ref: ../regulator/regulator.yaml
+              $ref: /schemas/regulator/regulator.yaml
           additionalProperties: false
   - if:
       properties:
@@ -40,7 +40,7 @@ allOf:
         regulators:
           patternProperties:
             "^(DCDC[1-3]|LDO[1-5]|LDORTC[12])$":
-              $ref: ../regulator/regulator.yaml
+              $ref: /schemas/regulator/regulator.yaml
           additionalProperties: false
   - if:
       properties:
@@ -52,7 +52,7 @@ allOf:
         regulators:
           patternProperties:
             "^(DCDC[1-5]|LDO[1-9]|LDO10|LDORTC[12])$":
-              $ref: ../regulator/regulator.yaml
+              $ref: /schemas/regulator/regulator.yaml
           additionalProperties: false
 
 properties:
index 44f8188360dd42d9ec17380c66908631882411ac..da2391530c16c0aa5067128cd6f76e99f1f0f8fe 100644 (file)
@@ -82,7 +82,7 @@ properties:
     patternProperties:
       "^(DCDC_REG[1-4]|LDO_REG[1-3])$":
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
     unevaluatedProperties: false
 
index d2ac6fbd5ce6987a82328398606b942f8575cfc0..50dfffac8fbf53034df8b0c88eb43c7675749311 100644 (file)
@@ -109,7 +109,7 @@ properties:
     patternProperties:
       "^(DCDC_REG[1-4]|LDO_REG[1-8]|SWITCH_REG[1-2])$":
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
     unevaluatedProperties: false
 
diff --git a/Bindings/mfd/rockchip,rk816.yaml b/Bindings/mfd/rockchip,rk816.yaml
new file mode 100644 (file)
index 0000000..0676890
--- /dev/null
@@ -0,0 +1,274 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/rockchip,rk816.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RK816 Power Management Integrated Circuit
+
+maintainers:
+  - Chris Zhong <zyw@rock-chips.com>
+  - Zhang Qing <zhangqing@rock-chips.com>
+
+description:
+  Rockchip RK816 series PMIC. This device consists of an i2c controlled MFD
+  that includes regulators, a RTC, a GPIO controller, a power button, and a
+  battery charger manager with fuel gauge.
+
+properties:
+  compatible:
+    enum:
+      - rockchip,rk816
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  '#clock-cells':
+    description:
+      See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
+    const: 1
+
+  clock-output-names:
+    maxItems: 2
+
+  gpio-controller: true
+
+  '#gpio-cells':
+    const: 2
+
+  system-power-controller:
+    type: boolean
+    description:
+      Telling whether or not this PMIC is controlling the system power.
+
+  wakeup-source:
+    type: boolean
+
+  vcc1-supply:
+    description:
+      The input supply for dcdc1.
+
+  vcc2-supply:
+    description:
+      The input supply for dcdc2.
+
+  vcc3-supply:
+    description:
+      The input supply for dcdc3.
+
+  vcc4-supply:
+    description:
+      The input supply for dcdc4.
+
+  vcc5-supply:
+    description:
+      The input supply for ldo1, ldo2, and ldo3.
+
+  vcc6-supply:
+    description:
+      The input supply for ldo4, ldo5, and ldo6.
+
+  vcc7-supply:
+    description:
+      The input supply for boost.
+
+  vcc8-supply:
+    description:
+      The input supply for otg-switch.
+
+  regulators:
+    type: object
+    patternProperties:
+      '^(boost|dcdc[1-4]|ldo[1-6]|otg-switch)$':
+        type: object
+        $ref: /schemas/regulator/regulator.yaml#
+        unevaluatedProperties: false
+    additionalProperties: false
+
+patternProperties:
+  '-pins$':
+    type: object
+    additionalProperties: false
+    $ref: /schemas/pinctrl/pinmux-node.yaml
+
+    properties:
+      function:
+        enum: [gpio, thermistor]
+
+      pins:
+        $ref: /schemas/types.yaml#/definitions/string
+        const: gpio0
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/pinctrl/rockchip.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        rk816: pmic@1a {
+            compatible = "rockchip,rk816";
+            reg = <0x1a>;
+            interrupt-parent = <&gpio0>;
+            interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
+            clock-output-names = "xin32k", "rk816-clkout2";
+            pinctrl-names = "default";
+            pinctrl-0 = <&pmic_int_l>;
+            gpio-controller;
+            system-power-controller;
+            wakeup-source;
+            #clock-cells = <1>;
+            #gpio-cells = <2>;
+
+            vcc1-supply = <&vcc_sys>;
+            vcc2-supply = <&vcc_sys>;
+            vcc3-supply = <&vcc_sys>;
+            vcc4-supply = <&vcc_sys>;
+            vcc5-supply = <&vcc33_io>;
+            vcc6-supply = <&vcc_sys>;
+
+            regulators {
+                vdd_cpu: dcdc1 {
+                    regulator-name = "vdd_cpu";
+                    regulator-min-microvolt = <750000>;
+                    regulator-max-microvolt = <1450000>;
+                    regulator-ramp-delay = <6001>;
+                    regulator-initial-mode = <1>;
+                    regulator-always-on;
+                    regulator-boot-on;
+
+                    regulator-state-mem {
+                        regulator-off-in-suspend;
+                    };
+                };
+
+                vdd_logic: dcdc2 {
+                    regulator-name = "vdd_logic";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <1250000>;
+                    regulator-ramp-delay = <6001>;
+                    regulator-initial-mode = <1>;
+                    regulator-always-on;
+                    regulator-boot-on;
+
+                    regulator-state-mem {
+                        regulator-on-in-suspend;
+                        regulator-suspend-microvolt = <1000000>;
+                    };
+                };
+
+                vcc_ddr: dcdc3 {
+                    regulator-name = "vcc_ddr";
+                    regulator-initial-mode = <1>;
+                    regulator-always-on;
+                    regulator-boot-on;
+
+                    regulator-state-mem {
+                        regulator-on-in-suspend;
+                    };
+                };
+
+                vcc33_io: dcdc4 {
+                    regulator-min-microvolt = <3300000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-name = "vcc33_io";
+                    regulator-initial-mode = <1>;
+                    regulator-always-on;
+                    regulator-boot-on;
+
+                    regulator-state-mem {
+                        regulator-on-in-suspend;
+                        regulator-suspend-microvolt = <3300000>;
+                    };
+                };
+
+                vccio_pmu: ldo1 {
+                    regulator-min-microvolt = <3300000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-name = "vccio_pmu";
+                    regulator-always-on;
+                    regulator-boot-on;
+
+                    regulator-state-mem {
+                        regulator-on-in-suspend;
+                        regulator-suspend-microvolt = <3300000>;
+                    };
+                };
+
+                vcc_tp: ldo2 {
+                    regulator-min-microvolt = <3300000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-name = "vcc_tp";
+
+                    regulator-state-mem {
+                        regulator-off-in-suspend;
+                    };
+                };
+
+                vdd_10: ldo3 {
+                    regulator-min-microvolt = <1000000>;
+                    regulator-max-microvolt = <1000000>;
+                    regulator-name = "vdd_10";
+                    regulator-always-on;
+                    regulator-boot-on;
+
+                    regulator-state-mem {
+                        regulator-on-in-suspend;
+                        regulator-suspend-microvolt = <1000000>;
+                    };
+                };
+
+                vcc18_lcd: ldo4 {
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <1800000>;
+                    regulator-name = "vcc18_lcd";
+
+                    regulator-state-mem {
+                        regulator-on-in-suspend;
+                        regulator-suspend-microvolt = <1800000>;
+                    };
+                };
+
+                vccio_sd: ldo5 {
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-name = "vccio_sd";
+
+                    regulator-state-mem {
+                        regulator-on-in-suspend;
+                        regulator-suspend-microvolt = <3300000>;
+                    };
+                };
+
+                vdd10_lcd: ldo6 {
+                    regulator-min-microvolt = <1000000>;
+                    regulator-max-microvolt = <1000000>;
+                    regulator-name = "vdd10_lcd";
+
+                    regulator-state-mem {
+                        regulator-on-in-suspend;
+                        regulator-suspend-microvolt = <1000000>;
+                    };
+                };
+            };
+
+            rk816_gpio_pins: gpio-pins {
+                function = "gpio";
+                pins = "gpio0";
+            };
+        };
+    };
index 92b1592e89422e3d192bc9e4c36dc45d8718d118..8c2fd0fabb927ecbc312ea93813ffbd398c5568c 100644 (file)
@@ -91,7 +91,7 @@ properties:
       "^(LDO_REG[1-9]|DCDC_REG[1-4]|BOOST|OTG_SWITCH)$":
         type: object
         unevaluatedProperties: false
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
     unevaluatedProperties: false
 
   clocks:
index fd4b9de364aa9164706baa99cbc843c85f48f0a3..90d944c27ba147aa83ff86fdacb546d08272fe1e 100644 (file)
@@ -101,7 +101,7 @@ properties:
     patternProperties:
       "^(DCDC_REG[1-4]|DCDC_BOOST|LDO_REG[1-9]|SWITCH_REG|HDMI_SWITCH|OTG_SWITCH)$":
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
     unevaluatedProperties: false
 
index 05747e012516e2d0ebd4ba6e708aa589b03e84e9..bb81307dc11b8975b00cb4777fc2ea0393806fa1 100644 (file)
@@ -61,7 +61,7 @@ properties:
     default: 30000000
 
   regulators:
-    $ref: ../regulator/rohm,bd71815-regulator.yaml
+    $ref: /schemas/regulator/rohm,bd71815-regulator.yaml
     description:
       List of child nodes that specify the regulators.
 
index 11089aa89ec6678aba416ad48cbaa60ff009e9fb..fa17686a64f79f94aa66c5840038671a1c8e57be 100644 (file)
@@ -17,7 +17,12 @@ description: |
 
 properties:
   compatible:
-    const: rohm,bd71828
+    oneOf:
+      - const: rohm,bd71828
+
+      - items:
+          - const: rohm,bd71879
+          - const: rohm,bd71828
 
   reg:
     description:
@@ -60,12 +65,12 @@ properties:
       here in Ohms.
 
   regulators:
-    $ref: ../regulator/rohm,bd71828-regulator.yaml
+    $ref: /schemas/regulator/rohm,bd71828-regulator.yaml
     description:
       List of child nodes that specify the regulators.
 
   leds:
-    $ref: ../leds/rohm,bd71828-leds.yaml
+    $ref: /schemas/leds/rohm,bd71828-leds.yaml
 
   gpio-reserved-ranges:
     description: |
@@ -73,6 +78,8 @@ properties:
       used to mark the pins which should not be configured for GPIO. Please see
       the ../gpio/gpio.txt for more information.
 
+  system-power-controller: true
+
 required:
   - compatible
   - reg
index 7aa343f58cb66f7f39fe54c20cb99b54b65552be..08f958dc700d6f2e3b678bb67986a6a69b910f68 100644 (file)
@@ -109,7 +109,7 @@ properties:
       - 14000
 
   regulators:
-    $ref: ../regulator/rohm,bd71837-regulator.yaml
+    $ref: /schemas/regulator/rohm,bd71837-regulator.yaml
     description:
       List of child nodes that specify the regulators.
 
index 89f9efee465b8ed071d0ad47555f85eeedfd0f53..534cf03f36bbade96ed26e4dcfa7427665fba835 100644 (file)
@@ -67,7 +67,7 @@ properties:
     patternProperties:
       "^(vd09|vd18|vd25|vd33|dvfs)$":
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
 
         properties:
           regulator-name:
index b7b323b1a4f21967f655beff593d093dfceedcc5..70fd9b5e4c3fc9900ffa9e6a3d43b28ea0e83066 100644 (file)
@@ -71,7 +71,7 @@ properties:
       # (HW) minimum for max timeout is 4ms, maximum 4416 ms.
 
   regulators:
-    $ref: ../regulator/rohm,bd9576-regulator.yaml
+    $ref: /schemas/regulator/rohm,bd9576-regulator.yaml
     description:
       List of child nodes that specify the regulators.
 
index 055dfc337c2f943ab98ec173caec202cf7fbe983..ad92eb6fcd3ab93a4545a76b3f26ff1d4efce0b6 100644 (file)
@@ -27,7 +27,7 @@ properties:
     maxItems: 1
 
   regulators:
-    $ref: ../regulator/samsung,s2mpa01.yaml
+    $ref: /schemas/regulator/samsung,s2mpa01.yaml
     description:
       List of child nodes that specify the regulators.
 
index 5ff6546c72b79a54723d00b6de093df2d22fca31..bc8b5940b1c5c42750582ff1c694315658c31a97 100644 (file)
@@ -27,7 +27,7 @@ properties:
       - samsung,s2mpu02-pmic
 
   clocks:
-    $ref: ../clock/samsung,s2mps11.yaml
+    $ref: /schemas/clock/samsung,s2mps11.yaml
     description:
       Child node describing clock provider.
 
@@ -75,7 +75,7 @@ allOf:
     then:
       properties:
         regulators:
-          $ref: ../regulator/samsung,s2mps11.yaml
+          $ref: /schemas/regulator/samsung,s2mps11.yaml
         samsung,s2mps11-wrstbi-ground: false
 
   - if:
@@ -86,7 +86,7 @@ allOf:
     then:
       properties:
         regulators:
-          $ref: ../regulator/samsung,s2mps13.yaml
+          $ref: /schemas/regulator/samsung,s2mps13.yaml
         samsung,s2mps11-acokb-ground: false
 
   - if:
@@ -97,7 +97,7 @@ allOf:
     then:
       properties:
         regulators:
-          $ref: ../regulator/samsung,s2mps14.yaml
+          $ref: /schemas/regulator/samsung,s2mps14.yaml
         samsung,s2mps11-acokb-ground: false
         samsung,s2mps11-wrstbi-ground: false
 
@@ -109,7 +109,7 @@ allOf:
     then:
       properties:
         regulators:
-          $ref: ../regulator/samsung,s2mps15.yaml
+          $ref: /schemas/regulator/samsung,s2mps15.yaml
         samsung,s2mps11-acokb-ground: false
         samsung,s2mps11-wrstbi-ground: false
 
@@ -121,7 +121,7 @@ allOf:
     then:
       properties:
         regulators:
-          $ref: ../regulator/samsung,s2mpu02.yaml
+          $ref: /schemas/regulator/samsung,s2mpu02.yaml
         samsung,s2mps11-acokb-ground: false
         samsung,s2mps11-wrstbi-ground: false
 
index aea0b7d57d04e044036403dbe820548dda96b647..249248078c59b18f1e332821872c9cad5016ca84 100644 (file)
@@ -21,7 +21,7 @@ properties:
     const: samsung,s5m8767-pmic
 
   clocks:
-    $ref: ../clock/samsung,s2mps11.yaml
+    $ref: /schemas/clock/samsung,s2mps11.yaml
     description:
       Child node describing clock provider.
 
@@ -32,7 +32,7 @@ properties:
     maxItems: 1
 
   regulators:
-    $ref: ../regulator/samsung,s5m8767.yaml
+    $ref: /schemas/regulator/samsung,s5m8767.yaml
     description:
       List of child nodes that specify the regulators.
 
index 27329c5dc38e6e1bb87ea50798eda2afb3cdb4a3..d41308856408fcb1124239f5e726e6d44f2de190 100644 (file)
@@ -44,6 +44,10 @@ properties:
 
   wakeup-source: true
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
   pwm:
     type: object
     additionalProperties: false
index f84e09a5743b77c5be31ac4f6f3a979c0122d44d..b0e438ff49509ea0a62242c859f9a9bb31060e19 100644 (file)
@@ -67,6 +67,10 @@ properties:
   "#size-cells":
     const: 0
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
   pwm:
     type: object
     additionalProperties: false
index 76551c90b128e86781e51b8c201298671dd8cb8a..61daf36b3c8081c5fb2a31bf0f98f6d7e12327f0 100644 (file)
@@ -60,7 +60,7 @@ properties:
         additionalProperties: false
 
         allOf:
-          - $ref: ../pinctrl/pinmux-node.yaml
+          - $ref: /schemas/pinctrl/pinmux-node.yaml
 
         properties:
           pins: true
index b17ebeb0a42f16000d1bec520f0f873abdcb1921..e822817188fd14fbf8fad30544a56052ce95f210 100644 (file)
@@ -29,7 +29,7 @@ properties:
   onkey:
     type: object
 
-    $ref: ../input/input.yaml
+    $ref: /schemas/input/input.yaml
 
     properties:
       compatible:
@@ -67,7 +67,7 @@ properties:
   watchdog:
     type: object
 
-    $ref: ../watchdog/watchdog.yaml
+    $ref: /schemas/watchdog/watchdog.yaml
 
     properties:
       compatible:
index 94f9767a927d64e2c84b59e4f3fc333e11da907d..b2cfa4120b8af89313589bd7cb7b00a56d1c95c7 100644 (file)
@@ -126,7 +126,7 @@ properties:
     patternProperties:
       "^channel@[0-9a-f]+$":
         type: object
-        $ref: ../iio/adc/adc.yaml#
+        $ref: /schemas/iio/adc/adc.yaml#
         description: Represents each of the external channels which are
           connected to the ADC.
 
@@ -180,22 +180,22 @@ properties:
   ab8500_fg:
     description: Node describing the AB8500 fuel gauge control block.
     type: object
-    $ref: ../power/supply/stericsson,ab8500-fg.yaml
+    $ref: /schemas/power/supply/stericsson,ab8500-fg.yaml
 
   ab8500_btemp:
     description: Node describing the AB8500 battery temperature control block.
     type: object
-    $ref: ../power/supply/stericsson,ab8500-btemp.yaml
+    $ref: /schemas/power/supply/stericsson,ab8500-btemp.yaml
 
   ab8500_charger:
     description: Node describing the AB8500 battery charger control block.
     type: object
-    $ref: ../power/supply/stericsson,ab8500-charger.yaml
+    $ref: /schemas/power/supply/stericsson,ab8500-charger.yaml
 
   ab8500_chargalg:
     description: Node describing the AB8500 battery charger algorithm.
     type: object
-    $ref: ../power/supply/stericsson,ab8500-chargalg.yaml
+    $ref: /schemas/power/supply/stericsson,ab8500-chargalg.yaml
 
   phy:
     description: Node describing the AB8500 USB PHY control block.
@@ -339,40 +339,40 @@ properties:
       ab8500_ldo_aux1:
         description: The voltage for the auxiliary LDO regulator 1
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_aux2:
         description: The voltage for the auxiliary LDO regulator 2
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_aux3:
         description: The voltage for the auxiliary LDO regulator 3
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_aux4:
         description: The voltage for the auxiliary LDO regulator 4
           only present on AB8505
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_aux5:
         description: The voltage for the auxiliary LDO regulator 5
           only present on AB8505
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_aux6:
         description: The voltage for the auxiliary LDO regulator 6
           only present on AB8505
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       # There is never any AUX7 regulator which is confusing
@@ -381,21 +381,21 @@ properties:
         description: The voltage for the auxiliary LDO regulator 8
           only present on AB8505
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_intcore:
         description: The LDO regulator for the internal core voltage
           of the AB8500
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_adc:
         description: Analog power regulator for the analog to digital converter
           ADC, only present on AB8505
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_tvout:
@@ -404,39 +404,39 @@ properties:
           the temperature of the NTC thermistor on the battery.
           Only present on AB8500.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_audio:
         description: The LDO regulator for the audio codec output
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_anamic1:
         description: The LDO regulator for the analog microphone 1
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_anamic2:
         description: The LDO regulator for the analog microphone 2
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_dmic:
         description: The LDO regulator for the digital microphone
           only present on AB8500
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ldo_ana:
         description: Analog power regulator for CSI and DSI interfaces,
           Camera Serial Interface CSI and Display Serial Interface DSI.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
     required:
@@ -459,19 +459,19 @@ properties:
       ab8500_ext1:
         description: The voltage for the VSMPS1 external regulator
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ext2:
         description: The voltage for the VSMPS2 external regulator
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       ab8500_ext3:
         description: The voltage for the VSMPS3 external regulator
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
     required:
@@ -482,7 +482,7 @@ properties:
 patternProperties:
   "^pwm@[1-9]+?$":
     type: object
-    $ref: ../pwm/pwm.yaml#
+    $ref: /schemas/pwm/pwm.yaml#
     unevaluatedProperties: false
     description: Represents each of the PWM blocks in the AB8500
 
index cb2a42caabb5d7f8354cab173a76f65d5ee861f3..d6c13779d44e93b6726a156566ec9afc7b88b32e 100644 (file)
@@ -71,52 +71,52 @@ properties:
         description: The voltage for the application processor, the
           main voltage domain for the chip.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_varm:
         description: The voltage for the ARM Cortex-A9 CPU.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_vmodem:
         description: The voltage for the modem subsystem.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_vpll:
         description: The voltage for the phase locked loop clocks.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_vsmps1:
         description: Also known as VIO12, is a step-down voltage regulator
           for 1.2V I/O. SMPS means System Management Power Source.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_vsmps2:
         description: Also known as VIO18, is a step-down voltage regulator
           for 1.8V I/O. SMPS means System Management Power Source.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_vsmps3:
         description: This is a step-down voltage regulator
           for 0.87 thru 1.875V I/O. SMPS means System Management Power Source.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_vrf1:
         description: RF transceiver voltage regulator.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_sva_mmdsp:
@@ -124,21 +124,21 @@ properties:
           voltage regulator. This is the voltage for the accelerator DSP
           for video encoding and decoding.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_sva_mmdsp_ret:
         description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP)
           voltage regulator for retention mode.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_sva_pipe:
         description: Smart Video Accelerator (SVA) multimedia DSP (MMDSP)
           voltage regulator for the data pipe.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_sia_mmdsp:
@@ -146,21 +146,21 @@ properties:
           voltage regulator. This is the voltage for the accelerator DSP
           for image encoding and decoding.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_sia_mmdsp_ret:
         description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP)
           voltage regulator for retention mode.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_sia_pipe:
         description: Smart Image Accelerator (SIA) multimedia DSP (MMDSP)
           voltage regulator for the data pipe.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_sga:
@@ -168,7 +168,7 @@ properties:
           This is in effect controlling the power to the MALI400 3D
           accelerator block.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_b2r2_mcde:
@@ -176,33 +176,33 @@ properties:
           Display Engine (MCDE) voltage regulator. These are two graphics
           blocks.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_esram12:
         description: Embedded Static RAM (ESRAM) 1 and 2 voltage regulator.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_esram12_ret:
         description: Embedded Static RAM (ESRAM) 1 and 2 voltage regulator for
           retention mode.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_esram34:
         description: Embedded Static RAM (ESRAM) 3 and 4 voltage regulator.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
       db8500_esram34_ret:
         description: Embedded Static RAM (ESRAM) 3 and 4 voltage regulator for
           retention mode.
         type: object
-        $ref: ../regulator/regulator.yaml#
+        $ref: /schemas/regulator/regulator.yaml#
         unevaluatedProperties: false
 
     required:
index 9d55bee155ce9fc1df25a0fc7a9d225b349c63af..7ed12a938baa3e73298188ec3bb1d6c98dac15a2 100644 (file)
@@ -38,11 +38,20 @@ properties:
               - allwinner,sun8i-h3-system-controller
               - allwinner,sun8i-v3s-system-controller
               - allwinner,sun50i-a64-system-controller
+              - altr,sdr-ctl
               - amd,pensando-elba-syscon
+              - apm,xgene-csw
+              - apm,xgene-efuse
+              - apm,xgene-mcb
+              - apm,xgene-rb
+              - apm,xgene-scu
               - brcm,cru-clkset
+              - brcm,sr-cdru
+              - brcm,sr-mhb
               - freecom,fsg-cs2-system-controller
               - fsl,imx93-aonmix-ns-syscfg
               - fsl,imx93-wakeupmix-syscfg
+              - fsl,ls1088a-reset
               - hisilicon,dsa-subctrl
               - hisilicon,hi6220-sramctrl
               - hisilicon,pcie-sas-subctrl
@@ -51,9 +60,15 @@ properties:
               - intel,lgm-syscon
               - loongson,ls1b-syscon
               - loongson,ls1c-syscon
+              - marvell,armada-3700-cpu-misc
+              - marvell,armada-3700-nb-pm
+              - marvell,armada-3700-avs
               - marvell,armada-3700-usb2-host-misc
+              - mediatek,mt2712-pctl-a-syscfg
+              - mediatek,mt6397-pctl-pmic-syscfg
               - mediatek,mt8135-pctl-a-syscfg
               - mediatek,mt8135-pctl-b-syscfg
+              - mediatek,mt8173-pctl-a-syscfg
               - mediatek,mt8365-syscfg
               - microchip,lan966x-cpu-syscon
               - microchip,sparx5-cpu-syscon
@@ -73,6 +88,7 @@ properties:
               - rockchip,rv1126-qos
               - starfive,jh7100-sysmain
               - ti,am62-usb-phy-ctrl
+              - ti,am62p-cpsw-mac-efuse
               - ti,am654-dss-oldi-io-ctrl
               - ti,am654-serdes-ctrl
               - ti,j784s4-pcie-ctrl
diff --git a/Bindings/mfd/ti,lp8732.yaml b/Bindings/mfd/ti,lp8732.yaml
new file mode 100644 (file)
index 0000000..9a90cee
--- /dev/null
@@ -0,0 +1,112 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/ti,lp8732.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI LP873X Power Management Integrated Circuit
+
+maintainers:
+  - J Keerthy <j-keerthy@ti.com>
+
+description:
+  PMIC with two high-current buck converters and two linear regulators.
+
+properties:
+  compatible:
+    enum:
+      - ti,lp8732
+      - ti,lp8733
+
+  reg:
+    maxItems: 1
+
+  gpio-controller: true
+
+  '#gpio-cells':
+    const: 2
+
+  regulators:
+    description:
+      List of child nodes that specify the regulator initialization data.
+    type: object
+    patternProperties:
+      "^buck[01]|ldo[01]$":
+        type: object
+        $ref: /schemas/regulator/regulator.yaml#
+        unevaluatedProperties: false
+    additionalProperties: false
+
+patternProperties:
+  '^(buck[01]|ldo[01])-in-supply$':
+    description: Phandle to parent supply of each regulator populated under regulators node.
+
+required:
+  - compatible
+  - reg
+  - regulators
+  - buck0-in-supply
+  - buck1-in-supply
+  - ldo0-in-supply
+  - ldo1-in-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pmic: pmic@60 {
+            compatible = "ti,lp8733";
+            reg = <0x60>;
+            gpio-controller;
+            #gpio-cells = <2>;
+
+            buck0-in-supply = <&vsys_3v3>;
+            buck1-in-supply = <&vsys_3v3>;
+            ldo0-in-supply = <&vsys_3v3>;
+            ldo1-in-supply = <&vsys_3v3>;
+
+            regulators {
+                buck0: buck0 {
+                    regulator-name = "buck0";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <1400000>;
+                    regulator-min-microamp = <1500000>;
+                    regulator-max-microamp = <4000000>;
+                    regulator-ramp-delay = <10000>;
+                    regulator-always-on;
+                    regulator-boot-on;
+                };
+
+                buck1: buck1 {
+                    regulator-name = "buck1";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <1400000>;
+                    regulator-min-microamp = <1500000>;
+                    regulator-max-microamp = <4000000>;
+                    regulator-ramp-delay = <10000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                };
+
+                ldo0: ldo0 {
+                    regulator-name = "ldo0";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3000000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                };
+
+                ldo1: ldo1 {
+                    regulator-name = "ldo1";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3000000>;
+                    regulator-always-on;
+                    regulator-boot-on;
+                };
+            };
+        };
+    };
index bd36a07c172137ac367fc72b763fef884cb61ae1..a8eed9065d96bfee3db403c9b708e1a6f61b5e39 100644 (file)
@@ -49,7 +49,7 @@ properties:
     patternProperties:
       "^buck[1-6]$":
         type: object
-        $ref: ../regulator/regulator.yaml
+        $ref: /schemas/regulator/regulator.yaml
 
         properties:
           regulator-name: true
@@ -72,7 +72,7 @@ properties:
 
       "^(ldoa[1-3]|swa1|swb[1-2]|vtt)$":
         type: object
-        $ref: ../regulator/regulator.yaml
+        $ref: /schemas/regulator/regulator.yaml
 
         properties:
           regulator-name: true
index 9d43376bebed1a0f066cab14360003b8f2cf5491..6341b6070366e9138ffbebc8a507bb284ed9edd2 100644 (file)
@@ -21,6 +21,7 @@ properties:
       - ti,lp8764-q1
       - ti,tps6593-q1
       - ti,tps6594-q1
+      - ti,tps65224-q1
 
   reg:
     description: I2C slave address or SPI chip select number.
index 52ed228fb1e7ede86413048ffcd6c0fd37ba0127..c2357fecb56ccd5e0fb0fd0832572f30f29ba63e 100644 (file)
@@ -15,6 +15,67 @@ description: |
   USB transceiver or Audio amplifier.
   These chips are connected to an i2c bus.
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,twl4030
+    then:
+      properties:
+        madc:
+          type: object
+          $ref: /schemas/iio/adc/ti,twl4030-madc.yaml
+          unevaluatedProperties: false
+
+        bci:
+          type: object
+          $ref: /schemas/power/supply/twl4030-charger.yaml
+          unevaluatedProperties: false
+
+        pwrbutton:
+          type: object
+          additionalProperties: false
+          properties:
+            compatible:
+              const: ti,twl4030-pwrbutton
+            interrupts:
+              items:
+                - items:
+                    const: 8
+
+        watchdog:
+          type: object
+          additionalProperties: false
+          properties:
+            compatible:
+              const: ti,twl4030-wdt
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,twl6030
+    then:
+      properties:
+        gpadc:
+          type: object
+          properties:
+            compatible:
+              const: ti,twl6030-gpadc
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,twl6032
+    then:
+      properties:
+        gpadc:
+          type: object
+          properties:
+            compatible:
+              const: ti,twl6032-gpadc
+
 properties:
   compatible:
     description:
@@ -42,7 +103,16 @@ properties:
   "#clock-cells":
     const: 1
 
-additionalProperties: false
+  rtc:
+    type: object
+    additionalProperties: false
+    properties:
+      compatible:
+        const: ti,twl4030-rtc
+      interrupts:
+        maxItems: 1
+
+unevaluatedProperties: false
 
 required:
   - compatible
index 06f1779835a1ef9e57888cd5bd1879521a3dce5e..b8e8db0d58e9c33bacfe588001e375c290b7fcad 100644 (file)
@@ -83,6 +83,7 @@ allOf:
             enum:
               - x-powers,axp313a
               - x-powers,axp15060
+              - x-powers,axp717
 
     then:
       properties:
@@ -99,6 +100,7 @@ properties:
           - x-powers,axp221
           - x-powers,axp223
           - x-powers,axp313a
+          - x-powers,axp717
           - x-powers,axp803
           - x-powers,axp806
           - x-powers,axp809
index 940b126881674629eb00679e223bbd4900b4c7cc..8f62e2c7fa6414015fb8bceb86a8807e4a7192cd 100644 (file)
@@ -79,6 +79,10 @@ properties:
           - const: rx
           - const: tx
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
   power-domains: true
 
   resets:
index 82f7ee8702cb28bd8f3e8157629a7f8d3c0166d6..b9b999570529014129886e447b8b308e4a5c04a2 100644 (file)
@@ -91,6 +91,9 @@ properties:
           - enum:
               - fsl,imxrt1170-usdhc
           - const: fsl,imxrt1050-usdhc
+      - items:
+          - const: nxp,s32g3-usdhc
+          - const: nxp,s32g2-usdhc
 
   reg:
     maxItems: 1
index 29f2400247ebc6746e92ed8ad1f7ebb2129a3e03..3d0e61e59856b992ab45878e8535df0bdaf3d5b2 100644 (file)
@@ -12,16 +12,13 @@ maintainers:
 properties:
   compatible:
     oneOf:
-      - items:
-          - const: renesas,sdhi-sh73a0  # R-Mobile APE6
-      - items:
-          - const: renesas,sdhi-r7s72100 # RZ/A1H
-      - items:
-          - const: renesas,sdhi-r7s9210 # SH-Mobile AG5
-      - items:
-          - const: renesas,sdhi-r8a73a4 # R-Mobile APE6
-      - items:
-          - const: renesas,sdhi-r8a7740 # R-Mobile A1
+      - enum:
+          - renesas,sdhi-mmc-r8a77470 # RZ/G1C
+          - renesas,sdhi-r7s72100 # RZ/A1H
+          - renesas,sdhi-r7s9210 # SH-Mobile AG5
+          - renesas,sdhi-r8a73a4 # R-Mobile APE6
+          - renesas,sdhi-r8a7740 # R-Mobile A1
+          - renesas,sdhi-sh73a0  # R-Mobile APE6
       - items:
           - enum:
               - renesas,sdhi-r8a7778 # R-Car M1
@@ -40,8 +37,6 @@ properties:
               - renesas,sdhi-r8a7793  # R-Car M2-N
               - renesas,sdhi-r8a7794  # R-Car E2
           - const: renesas,rcar-gen2-sdhi # R-Car Gen2 and RZ/G1
-      - items:
-          - const: renesas,sdhi-mmc-r8a77470 # RZ/G1C (SDHI/MMC IP)
       - items:
           - enum:
               - renesas,sdhi-r8a774a1  # RZ/G2M
@@ -56,11 +51,6 @@ properties:
               - renesas,sdhi-r8a77980  # R-Car V3H
               - renesas,sdhi-r8a77990  # R-Car E3
               - renesas,sdhi-r8a77995  # R-Car D3
-              - renesas,sdhi-r9a07g043 # RZ/G2UL and RZ/Five
-              - renesas,sdhi-r9a07g044 # RZ/G2{L,LC}
-              - renesas,sdhi-r9a07g054 # RZ/V2L
-              - renesas,sdhi-r9a08g045 # RZ/G3S
-              - renesas,sdhi-r9a09g011 # RZ/V2M
           - const: renesas,rcar-gen3-sdhi # R-Car Gen3 or RZ/G2
       - items:
           - enum:
@@ -69,6 +59,14 @@ properties:
               - renesas,sdhi-r8a779g0  # R-Car V4H
               - renesas,sdhi-r8a779h0  # R-Car V4M
           - const: renesas,rcar-gen4-sdhi # R-Car Gen4
+      - items:
+          - enum:
+              - renesas,sdhi-r9a07g043 # RZ/G2UL and RZ/Five
+              - renesas,sdhi-r9a07g044 # RZ/G2{L,LC}
+              - renesas,sdhi-r9a07g054 # RZ/V2L
+              - renesas,sdhi-r9a08g045 # RZ/G3S
+              - renesas,sdhi-r9a09g011 # RZ/V2M
+          - const: renesas,rzg2l-sdhi
 
   reg:
     maxItems: 1
@@ -120,12 +118,7 @@ allOf:
       properties:
         compatible:
           contains:
-            enum:
-              - renesas,sdhi-r9a07g043
-              - renesas,sdhi-r9a07g044
-              - renesas,sdhi-r9a07g054
-              - renesas,sdhi-r9a08g045
-              - renesas,sdhi-r9a09g011
+            const: renesas,rzg2l-sdhi
     then:
       properties:
         clocks:
index ee442ecb11cd9cbc9562777f7cb3c3225087c394..bbb56216a4e253aa40790d7afd02df8b54d6bc08 100644 (file)
@@ -48,8 +48,8 @@ patternProperties:
     type: object
 
     allOf:
-      - $ref: ../nvmem/nvmem.yaml#
-      - $ref: ../nvmem/nvmem-deprecated-cells.yaml#
+      - $ref: /schemas/nvmem/nvmem.yaml#
+      - $ref: /schemas/nvmem/nvmem-deprecated-cells.yaml#
 
     unevaluatedProperties: false
 
diff --git a/Bindings/mtd/partitions/binman.yaml b/Bindings/mtd/partitions/binman.yaml
new file mode 100644 (file)
index 0000000..bb4b085
--- /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/mtd/partitions/binman.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Binman entries
+
+description: |
+  This corresponds to a binman 'entry'. It is a single partition which holds
+  data of a defined type.
+
+  Binman uses the type to indicate what data file / type to place in the
+  partition. There are quite a number of binman-specific entry types, such as
+  section, fill and files, to be added later.
+
+maintainers:
+  - Simon Glass <sjg@chromium.org>
+
+allOf:
+  - $ref: /schemas/mtd/partitions/partition.yaml#
+
+properties:
+  compatible:
+    enum:
+      - u-boot       # u-boot.bin from U-Boot project
+      - tfa-bl31     # bl31.bin or bl31.elf from TF-A project
+
+required:
+  - compatible
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    partitions {
+        compatible = "fixed-partitions";
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        partition@100000 {
+            compatible = "u-boot";
+            reg = <0x100000 0xf00000>;
+            align-size = <0x1000>;
+            align-end = <0x10000>;
+        };
+
+        partition@200000 {
+            compatible = "tfa-bl31";
+            reg = <0x200000 0x100000>;
+            align = <0x4000>;
+        };
+    };
index 1ebe9e2347eaf7d7d1eac1c958ca3211112a414f..80d0452a2a332fb098e6ef8a09590673d8954144 100644 (file)
@@ -57,6 +57,57 @@ properties:
       user space from
     type: boolean
 
+  align:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 2
+    maximum: 0x80000000
+    multipleOf: 2
+    description:
+      This sets the alignment of the entry in bytes.
+
+      The entry offset is adjusted so that the entry starts on an aligned
+      boundary within the containing section or image. For example â€˜align =
+      <16>’ means that the entry will start on a 16-byte boundary. This may
+      mean that padding is added before the entry. The padding is part of
+      the containing section but is not included in the entry, meaning that
+      an empty space may be created before the entry starts. Alignment
+      must be a power of 2. If â€˜align’ is not provided, no alignment is
+      performed.
+
+  align-size:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 2
+    maximum: 0x80000000
+    multipleOf: 2
+    description:
+      This sets the alignment of the entry size in bytes. It must be a power
+      of 2.
+
+      For example, to ensure that the size of an entry is a multiple of 64
+      bytes, set this to 64. While this does not affect the content of the
+      entry itself (the padding is performed only when its parent section is
+      assembled), the end result is that the entry ends with the padding
+      bytes, so may grow. If â€˜align-size’ is not provided, no alignment is
+      performed.
+
+  align-end:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 2
+    maximum: 0x80000000
+    multipleOf: 2
+    description:
+      This sets the alignment (in bytes) of the end of an entry with respect
+      to the containing section. It must be a power of 2.
+
+      Some entries require that they end on an alignment boundary,
+      regardless of where they start. This does not move the start of the
+      entry, so the content of the entry will still start at the beginning.
+      But there may be padding at the end. While this does not affect the
+      content of the entry itself (the padding is performed only when its
+      parent section is assembled), the end result is that the entry ends
+      with the padding bytes, so may grow. If â€˜align-end’ is not provided,
+      no alignment is performed.
+
 if:
   not:
     required: [ reg ]
@@ -67,3 +118,24 @@ then:
 
 # This is a generic file other binding inherit from and extend
 additionalProperties: true
+
+examples:
+  - |
+    partitions {
+        compatible = "fixed-partitions";
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        partition@100000 {
+            compatible = "u-boot";
+            reg = <0x100000 0xf00000>;
+            align-size = <0x1000>;
+            align-end = <0x10000>;
+        };
+
+        partition@200000 {
+            compatible = "tfa-bl31";
+            reg = <0x200000 0x100000>;
+            align = <0x4000>;
+        };
+    };
diff --git a/Bindings/mtd/samsung,s5pv210-onenand.yaml b/Bindings/mtd/samsung,s5pv210-onenand.yaml
new file mode 100644 (file)
index 0000000..e07941b
--- /dev/null
@@ -0,0 +1,65 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/samsung,s5pv210-onenand.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung S5Pv210 SoC OneNAND Controller
+
+maintainers:
+  - Krzysztof Kozlowski <krzk@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - samsung,s5pv210-onenand
+
+  reg:
+    items:
+      - description: Control registers
+      - description: OneNAND interface nCE[0]
+      - description: OneNAND interface nCE[1]
+
+  clocks:
+    maxItems: 2
+
+  clock-names:
+    items:
+      - const: bus
+      - const: onenand
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+allOf:
+  - $ref: nand-controller.yaml
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/s5pv210.h>
+
+    nand-controller@b0600000 {
+        compatible = "samsung,s5pv210-onenand";
+        reg = <0xb0600000 0x2000>,
+              <0xb0000000 0x20000>,
+              <0xb0040000 0x20000>;
+        clocks = <&clocks CLK_NANDXL>, <&clocks DOUT_FLASH>;
+        clock-names = "bus", "onenand";
+        interrupt-parent = <&vic1>;
+        interrupts = <31>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        nand@0 {
+            reg = <0>;
+        };
+    };
diff --git a/Bindings/net/airoha,en8811h.yaml b/Bindings/net/airoha,en8811h.yaml
new file mode 100644 (file)
index 0000000..ecb5149
--- /dev/null
@@ -0,0 +1,56 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/airoha,en8811h.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Airoha EN8811H PHY
+
+maintainers:
+  - Eric Woudstra <ericwouds@gmail.com>
+
+description:
+  The Airoha EN8811H PHY has the ability to reverse polarity
+  on the lines to and/or from the MAC. It is reversed by
+  the booleans in the devicetree node of the phy.
+
+allOf:
+  - $ref: ethernet-phy.yaml#
+
+properties:
+  compatible:
+    enum:
+      - ethernet-phy-id03a2.a411
+
+  reg:
+    maxItems: 1
+
+  airoha,pnswap-rx:
+    type: boolean
+    description:
+      Reverse rx polarity of the SERDES. This is the receiving
+      side of the lines from the MAC towards the EN881H.
+
+  airoha,pnswap-tx:
+    type: boolean
+    description:
+      Reverse tx polarity of SERDES. This is the transmitting
+      side of the lines from EN8811H towards the MAC.
+
+required:
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    mdio {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        ethernet-phy@1 {
+            compatible = "ethernet-phy-id03a2.a411";
+            reg = <1>;
+            airoha,pnswap-rx;
+        };
+    };
diff --git a/Bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml b/Bindings/net/bluetooth/mediatek,mt7921s-bluetooth.yaml
new file mode 100644 (file)
index 0000000..67ff7ca
--- /dev/null
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/bluetooth/mediatek,mt7921s-bluetooth.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek MT7921S Bluetooth
+
+maintainers:
+  - Sean Wang <sean.wang@mediatek.com>
+
+description:
+  MT7921S is an SDIO-attached dual-radio WiFi+Bluetooth Combo chip; each
+  function is its own SDIO function on a shared SDIO interface. The chip
+  has two dedicated reset lines, one for each function core.
+  This binding only covers the Bluetooth SDIO function, with one device
+  node describing only this SDIO function.
+
+allOf:
+  - $ref: bluetooth-controller.yaml#
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt7921s-bluetooth
+
+  reg:
+    const: 2
+
+  reset-gpios:
+    maxItems: 1
+    description:
+      An active-low reset line for the Bluetooth core; on typical M.2
+      key E modules this is the W_DISABLE2# pin.
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    mmc {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        bluetooth@2 {
+            compatible = "mediatek,mt7921s-bluetooth";
+            reg = <2>;
+            reset-gpios = <&pio 8 GPIO_ACTIVE_LOW>;
+        };
+    };
index cc70b00c6ce570d7fdf142cb7b305a73539664dd..4a1bfc2b35849cf81a40fc44fa992805991d2bd9 100644 (file)
@@ -14,20 +14,25 @@ description:
 
 properties:
   compatible:
-    enum:
-      - brcm,bcm20702a1
-      - brcm,bcm4329-bt
-      - brcm,bcm4330-bt
-      - brcm,bcm4334-bt
-      - brcm,bcm43430a0-bt
-      - brcm,bcm43430a1-bt
-      - brcm,bcm43438-bt
-      - brcm,bcm4345c5
-      - brcm,bcm43540-bt
-      - brcm,bcm4335a0
-      - brcm,bcm4349-bt
-      - cypress,cyw4373a0-bt
-      - infineon,cyw55572-bt
+    oneOf:
+      - items:
+          - enum:
+              - infineon,cyw43439-bt
+          - const: brcm,bcm4329-bt
+      - enum:
+          - brcm,bcm20702a1
+          - brcm,bcm4329-bt
+          - brcm,bcm4330-bt
+          - brcm,bcm4334-bt
+          - brcm,bcm43430a0-bt
+          - brcm,bcm43430a1-bt
+          - brcm,bcm43438-bt
+          - brcm,bcm4345c5
+          - brcm,bcm43540-bt
+          - brcm,bcm4335a0
+          - brcm,bcm4349-bt
+          - cypress,cyw4373a0-bt
+          - infineon,cyw55572-bt
 
   shutdown-gpios:
     maxItems: 1
index f9ffb963d6b122fb5fccec50b8a244261299bf1a..c4887522e8fe97c3947357b4dbd4ecf20ee8100a 100644 (file)
@@ -118,6 +118,10 @@ properties:
   phys:
     maxItems: 1
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
index c80c880a9dab4e9654332b93f94131251a216180..60aaf30d68edf5f2eed3249b480f4624a725bf2c 100644 (file)
@@ -128,7 +128,6 @@ required:
   - cell-index
   - reg
   - fsl,fman-ports
-  - ptp-timer
 
 dependencies:
   pcs-handle-names:
index 4c01cae7c93a7776a1f1fbff0057c0337ac4b83f..87bc4416eadf212289c1724813383073b825a226 100644 (file)
@@ -66,6 +66,10 @@ properties:
       Should be phandle/offset pair. The phandle to the syscon node which
       encompases the GPR register, and the offset of the GPR register.
 
+  nvmem-cells: true
+
+  nvmem-cell-names: true
+
   snps,rmii_refclk_ext:
     $ref: /schemas/types.yaml#/definitions/flag
     description:
diff --git a/Bindings/net/pse-pd/microchip,pd692x0.yaml b/Bindings/net/pse-pd/microchip,pd692x0.yaml
new file mode 100644 (file)
index 0000000..fd4244f
--- /dev/null
@@ -0,0 +1,176 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/pse-pd/microchip,pd692x0.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip PD692x0 Power Sourcing Equipment controller
+
+maintainers:
+  - Kory Maincent <kory.maincent@bootlin.com>
+
+allOf:
+  - $ref: pse-controller.yaml#
+
+properties:
+  compatible:
+    enum:
+      - microchip,pd69200
+      - microchip,pd69210
+      - microchip,pd69220
+
+  reg:
+    maxItems: 1
+
+  managers:
+    type: object
+    additionalProperties: false
+    description:
+      List of the PD69208T4/PD69204T4/PD69208M PSE managers. Each manager
+      have 4 or 8 physical ports according to the chip version. No need to
+      specify the SPI chip select as it is automatically detected by the
+      PD692x0 PSE controller. The PSE managers have to be described from
+      the lowest chip select to the greatest one, which is the detection
+      behavior of the PD692x0 PSE controller. The PD692x0 support up to
+      12 PSE managers which can expose up to 96 physical ports. All
+      physical ports available on a manager have to be described in the
+      incremental order even if they are not used.
+
+    properties:
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 0
+
+    required:
+      - "#address-cells"
+      - "#size-cells"
+
+    patternProperties:
+      "^manager@[0-9a-b]$":
+        type: object
+        additionalProperties: false
+        description:
+          PD69208T4/PD69204T4/PD69208M PSE manager exposing 4 or 8 physical
+          ports.
+
+        properties:
+          reg:
+            description:
+              Incremental index of the PSE manager starting from 0, ranging
+              from lowest to highest chip select, up to 11.
+            maxItems: 1
+
+          "#address-cells":
+            const: 1
+
+          "#size-cells":
+            const: 0
+
+        patternProperties:
+          '^port@[0-7]$':
+            type: object
+            additionalProperties: false
+
+            properties:
+              reg:
+                maxItems: 1
+
+            required:
+              - reg
+
+        required:
+          - reg
+          - "#address-cells"
+          - "#size-cells"
+
+required:
+  - compatible
+  - reg
+  - pse-pis
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      ethernet-pse@3c {
+        compatible = "microchip,pd69200";
+        reg = <0x3c>;
+
+        managers {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          manager@0 {
+            reg = <0>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            phys0: port@0 {
+              reg = <0>;
+            };
+
+            phys1: port@1 {
+              reg = <1>;
+            };
+
+            phys2: port@2 {
+              reg = <2>;
+            };
+
+            phys3: port@3 {
+              reg = <3>;
+            };
+          };
+
+          manager@1 {
+            reg = <1>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            phys4: port@0 {
+              reg = <0>;
+            };
+
+            phys5: port@1 {
+              reg = <1>;
+            };
+
+            phys6: port@2 {
+              reg = <2>;
+            };
+
+            phys7: port@3 {
+              reg = <3>;
+            };
+          };
+        };
+
+        pse-pis {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          pse_pi0: pse-pi@0 {
+            reg = <0>;
+            #pse-cells = <0>;
+            pairset-names = "alternative-a", "alternative-b";
+            pairsets = <&phys0>, <&phys1>;
+            polarity-supported = "MDI", "S";
+            vpwr-supply = <&vpwr1>;
+          };
+          pse_pi1: pse-pi@1 {
+            reg = <1>;
+            #pse-cells = <0>;
+            pairset-names = "alternative-a";
+            pairsets = <&phys2>;
+            polarity-supported = "MDI";
+            vpwr-supply = <&vpwr2>;
+          };
+        };
+      };
+    };
index 2d382faca0e6d16ff0bff5e1f5915110d722e1ed..a12cda8aa7648f81192026a6db56cbd5d898710e 100644 (file)
@@ -13,6 +13,7 @@ description: Binding for the Power Sourcing Equipment (PSE) as defined in the
 
 maintainers:
   - Oleksij Rempel <o.rempel@pengutronix.de>
+  - Kory Maincent <kory.maincent@bootlin.com>
 
 properties:
   $nodename:
@@ -22,11 +23,105 @@ properties:
     description:
       Used to uniquely identify a PSE instance within an IC. Will be
       0 on PSE nodes with only a single output and at least 1 on nodes
-      controlling several outputs.
+      controlling several outputs which are not described in the pse-pis
+      subnode. This property is deprecated, please use pse-pis instead.
     enum: [0, 1]
 
-required:
-  - "#pse-cells"
+  pse-pis:
+    type: object
+    description:
+      Overview of the PSE PIs provided by the controller.
+
+    properties:
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 0
+
+    required:
+      - "#address-cells"
+      - "#size-cells"
+
+    patternProperties:
+      "^pse-pi@[0-9a-f]+$":
+        type: object
+        description:
+          PSE PI for power delivery via pairsets, compliant with IEEE
+          802.3-2022, Section 145.2.4. Each pairset comprises a positive and
+          a negative VPSE pair, adhering to the pinout configurations
+          detailed in the standard.
+          See Documentation/networking/pse-pd/pse-pi.rst for details.
+
+        properties:
+          reg:
+            description:
+              Address describing the PSE PI index.
+            maxItems: 1
+
+          "#pse-cells":
+            const: 0
+
+          pairset-names:
+            $ref: /schemas/types.yaml#/definitions/string-array
+            description:
+              Names of the pairsets as per IEEE 802.3-2022, Section 145.2.4.
+              Each name should correspond to a phandle in the 'pairset'
+              property pointing to the power supply for that pairset.
+            minItems: 1
+            maxItems: 2
+            items:
+              enum:
+                - alternative-a
+                - alternative-b
+
+          pairsets:
+            $ref: /schemas/types.yaml#/definitions/phandle-array
+            description:
+              List of phandles, each pointing to the power supply for the
+              corresponding pairset named in 'pairset-names'. This property
+              aligns with IEEE 802.3-2022, Section 33.2.3 and 145.2.4.
+              PSE Pinout Alternatives (as per IEEE 802.3-2022 Table 145\u20133)
+              |-----------|---------------|---------------|---------------|---------------|
+              | Conductor | Alternative A | Alternative A | Alternative B | Alternative B |
+              |           |    (MDI-X)    |     (MDI)     |      (X)      |      (S)      |
+              |-----------|---------------|---------------|---------------|---------------|
+              | 1         | Negative VPSE | Positive VPSE | -             | -             |
+              | 2         | Negative VPSE | Positive VPSE | -             | -             |
+              | 3         | Positive VPSE | Negative VPSE | -             | -             |
+              | 4         | -             | -             | Negative VPSE | Positive VPSE |
+              | 5         | -             | -             | Negative VPSE | Positive VPSE |
+              | 6         | Positive VPSE | Negative VPSE | -             | -             |
+              | 7         | -             | -             | Positive VPSE | Negative VPSE |
+              | 8         | -             | -             | Positive VPSE | Negative VPSE |
+            minItems: 1
+            maxItems: 2
+
+          polarity-supported:
+            $ref: /schemas/types.yaml#/definitions/string-array
+            description:
+              Polarity configuration supported by the PSE PI pairsets.
+            minItems: 1
+            maxItems: 4
+            items:
+              enum:
+                - MDI-X
+                - MDI
+                - X
+                - S
+
+          vpwr-supply:
+            description: Regulator power supply for the PSE PI.
+
+        required:
+          - reg
+          - "#pse-cells"
+
+oneOf:
+  - required:
+      - "#pse-cells"
+  - required:
+      - pse-pis
 
 additionalProperties: true
 
diff --git a/Bindings/net/pse-pd/ti,tps23881.yaml b/Bindings/net/pse-pd/ti,tps23881.yaml
new file mode 100644 (file)
index 0000000..6992d56
--- /dev/null
@@ -0,0 +1,113 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/pse-pd/ti,tps23881.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI TPS23881 Power Sourcing Equipment controller
+
+maintainers:
+  - Kory Maincent <kory.maincent@bootlin.com>
+
+allOf:
+  - $ref: pse-controller.yaml#
+
+properties:
+  compatible:
+    enum:
+      - ti,tps23881
+
+  reg:
+    maxItems: 1
+
+  '#pse-cells':
+    const: 1
+
+  channels:
+    description: each set of 8 ports can be assigned to one physical
+      channels or two for PoE4. This parameter describes the configuration
+      of the ports conversion matrix that establishes relationship between
+      the logical ports and the physical channels.
+    type: object
+    additionalProperties: false
+
+    properties:
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 0
+
+    patternProperties:
+      '^channel@[0-7]$':
+        type: object
+        additionalProperties: false
+
+        properties:
+          reg:
+            maxItems: 1
+
+        required:
+          - reg
+
+    required:
+      - "#address-cells"
+      - "#size-cells"
+
+unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+
+examples:
+  - |
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      ethernet-pse@20 {
+        compatible = "ti,tps23881";
+        reg = <0x20>;
+
+        channels {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          phys0: channel@0 {
+            reg = <0>;
+          };
+
+          phys1: channel@1 {
+            reg = <1>;
+          };
+
+          phys2: channel@2 {
+            reg = <2>;
+          };
+        };
+
+        pse-pis {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          pse_pi0: pse-pi@0 {
+            reg = <0>;
+            #pse-cells = <0>;
+            pairset-names = "alternative-a", "alternative-b";
+            pairsets = <&phys0>, <&phys1>;
+            polarity-supported = "MDI", "S";
+            vpwr-supply = <&vpwr1>;
+          };
+
+          pse_pi1: pse-pi@1 {
+            reg = <1>;
+            #pse-cells = <0>;
+            pairset-names = "alternative-a";
+            pairsets = <&phys2>;
+            polarity-supported = "MDI";
+            vpwr-supply = <&vpwr2>;
+          };
+        };
+      };
+    };
index 69a337c7e345eac4b191bee816beb29f00d85b1f..6672327358bc13f4a464c845d242d32569bf66a7 100644 (file)
@@ -61,6 +61,8 @@ properties:
   iommus:
     maxItems: 1
 
+  dma-coherent: true
+
   phys: true
 
   phy-names:
index 0029e197a8251e79f3b401768be979748e4123e2..a94480e819ac4ec914ec5c5d3aec29083bdeb843 100644 (file)
@@ -20,6 +20,7 @@ properties:
           - enum:
               - qcom,ipq6018-mdio
               - qcom,ipq8074-mdio
+              - qcom,ipq9574-mdio
           - const: qcom,ipq4019-mdio
 
   "#address-cells":
@@ -76,6 +77,7 @@ allOf:
               - qcom,ipq5018-mdio
               - qcom,ipq6018-mdio
               - qcom,ipq8074-mdio
+              - qcom,ipq9574-mdio
     then:
       required:
         - clocks
index de7ba7f345a937789299f6c5f91b6f96b376a5fd..21a92f179093d9959fb51f263c7b0dd8e25605bc 100644 (file)
@@ -88,10 +88,16 @@ properties:
   '#address-cells':
     description: Number of address cells for the MDIO bus.
     const: 1
+    deprecated: true
 
   '#size-cells':
     description: Number of size cells on the MDIO bus.
     const: 0
+    deprecated: true
+
+  mdio:
+    $ref: /schemas/net/mdio.yaml#
+    unevaluatedProperties: false
 
   renesas,no-ether-link:
     type: boolean
@@ -110,9 +116,13 @@ properties:
   tx-internal-delay-ps:
     enum: [0, 2000]
 
+# In older bindings there where no mdio child-node to describe the MDIO bus
+# and the PHY. To not fail older bindings accept any node with an address. New
+# users should describe the PHY inside the mdio child-node.
 patternProperties:
   "@[0-9a-f]$":
     type: object
+    deprecated: true
 
 required:
   - compatible
@@ -123,8 +133,6 @@ required:
   - resets
   - phy-mode
   - phy-handle
-  - '#address-cells'
-  - '#size-cells'
 
 allOf:
   - $ref: ethernet-controller.yaml#
index ea35d19be829a37a657f6a3fb45153981ea16fb9..b4680a1d0a068ed6c5d128c503ee5c2da9dfa476 100644 (file)
@@ -71,16 +71,8 @@ properties:
     enum: [0, 2000]
     default: 0
 
-  '#address-cells':
-    const: 1
-
-  '#size-cells':
-    const: 0
-
-patternProperties:
-  "^ethernet-phy@[0-9a-f]$":
-    type: object
-    $ref: ethernet-phy.yaml#
+  mdio:
+    $ref: /schemas/net/mdio.yaml#
     unevaluatedProperties: false
 
 required:
@@ -94,8 +86,7 @@ required:
   - resets
   - phy-mode
   - phy-handle
-  - '#address-cells'
-  - '#size-cells'
+  - mdio
 
 additionalProperties: false
 
@@ -122,14 +113,18 @@ examples:
         tx-internal-delay-ps = <2000>;
         phy-handle = <&phy3>;
 
-        #address-cells = <1>;
-        #size-cells = <0>;
+        mdio {
+            #address-cells = <1>;
+            #size-cells = <0>;
 
-        phy3: ethernet-phy@3 {
-            compatible = "ethernet-phy-ieee802.3-c45";
-            reg = <0>;
-            interrupt-parent = <&gpio4>;
-            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
             reset-gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
+            reset-post-delay-us = <4000>;
+
+            phy3: ethernet-phy@0 {
+                compatible = "ethernet-phy-ieee802.3-c45";
+                reg = <0>;
+                interrupt-parent = <&gpio4>;
+                interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+            };
         };
     };
diff --git a/Bindings/net/renesas,rzn1-gmac.yaml b/Bindings/net/renesas,rzn1-gmac.yaml
new file mode 100644 (file)
index 0000000..d9a8d58
--- /dev/null
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/renesas,rzn1-gmac.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas GMAC
+
+maintainers:
+  - Romain Gantois <romain.gantois@bootlin.com>
+
+select:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - renesas,r9a06g032-gmac
+          - renesas,rzn1-gmac
+  required:
+    - compatible
+
+allOf:
+  - $ref: snps,dwmac.yaml#
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - renesas,r9a06g032-gmac
+      - const: renesas,rzn1-gmac
+      - const: snps,dwmac
+
+  pcs-handle:
+    description:
+      phandle pointing to a PCS sub-node compatible with
+      renesas,rzn1-miic.yaml#
+
+required:
+  - compatible
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/r9a06g032-sysctrl.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    ethernet@44000000 {
+      compatible = "renesas,r9a06g032-gmac", "renesas,rzn1-gmac", "snps,dwmac";
+      reg = <0x44000000 0x2000>;
+      interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+      interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
+      clock-names = "stmmaceth";
+      clocks = <&sysctrl R9A06G032_HCLK_GMAC0>;
+      power-domains = <&sysctrl>;
+      snps,multicast-filter-bins = <256>;
+      snps,perfect-filter-entries = <128>;
+      tx-fifo-depth = <2048>;
+      rx-fifo-depth = <4096>;
+      pcs-handle = <&mii_conv1>;
+      phy-mode = "mii";
+    };
+
+...
index 70bbc4220e2acdc3e2e373a4733cff950b65dd09..6bbe96e35250945ed3b5f80e850088592314db2a 100644 (file)
@@ -137,8 +137,6 @@ examples:
         assigned-clock-parents = <&ext_gmac>;
 
         rockchip,grf = <&grf>;
-        phy-mode = "rgmii";
+        phy-mode = "rgmii-id";
         clock_in_out = "input";
-        tx_delay = <0x30>;
-        rx_delay = <0x10>;
     };
index bf6cbc7c2ba3b5cb1ffc26d8d456d0073633a6fe..90611b598d2bdde658f754cd277fc4363499a2f9 100644 (file)
@@ -29,39 +29,39 @@ properties:
       allowable by a module in the slot, in milli-Watts. Presently, modules can
       be up to 1W, 1.5W or 2W.
 
-  "mod-def0-gpios":
+  mod-def0-gpios:
     maxItems: 1
     description:
       GPIO phandle and a specifier of the MOD-DEF0 (AKA Mod_ABS) module
       presence input gpio signal, active (module absent) high. Must not be
       present for SFF modules
 
-  "los-gpios":
+  los-gpios:
     maxItems: 1
     description:
       GPIO phandle and a specifier of the Receiver Loss of Signal Indication
       input gpio signal, active (signal lost) high
 
-  "tx-fault-gpios":
+  tx-fault-gpios:
     maxItems: 1
     description:
       GPIO phandle and a specifier of the Module Transmitter Fault input gpio
       signal, active (fault condition) high
 
-  "tx-disable-gpios":
+  tx-disable-gpios:
     maxItems: 1
     description:
       GPIO phandle and a specifier of the Transmitter Disable output gpio
       signal, active (Tx disable) high
 
-  "rate-select0-gpios":
+  rate-select0-gpios:
     maxItems: 1
     description:
       GPIO phandle and a specifier of the Rx Signaling Rate Select (AKA RS0)
       output gpio signal, low - low Rx rate, high - high Rx rate Must not be
       present for SFF modules
 
-  "rate-select1-gpios":
+  rate-select1-gpios:
     maxItems: 1
     description:
       GPIO phandle and a specifier of the Tx Signaling Rate Select (AKA RS1)
index 6b0341a8e0ea5f7ff45c4a6d7803cc6295fe0f01..21cc27e75f50a4a574d6ac483345731f91060040 100644 (file)
@@ -242,7 +242,8 @@ properties:
             type: boolean
             description: Multicast & Broadcast Packets
           snps,priority:
-            $ref: /schemas/types.yaml#/definitions/uint32
+            $ref: /schemas/types.yaml#/definitions/uint32-array
+            maxItems: 1
             description: Bitmask of the tagged frames priorities assigned to the queue
         allOf:
           - if:
@@ -327,9 +328,6 @@ properties:
       snps,tx-sched-dwrr:
         type: boolean
         description: Deficit Weighted Round Robin
-      snps,tx-sched-sp:
-        type: boolean
-        description: Strict priority
     allOf:
       - if:
           required:
@@ -338,7 +336,6 @@ properties:
           properties:
             snps,tx-sched-wfq: false
             snps,tx-sched-dwrr: false
-            snps,tx-sched-sp: false
       - if:
           required:
             - snps,tx-sched-wfq
@@ -346,7 +343,6 @@ properties:
           properties:
             snps,tx-sched-wrr: false
             snps,tx-sched-dwrr: false
-            snps,tx-sched-sp: false
       - if:
           required:
             - snps,tx-sched-dwrr
@@ -354,15 +350,6 @@ properties:
           properties:
             snps,tx-sched-wrr: false
             snps,tx-sched-wfq: false
-            snps,tx-sched-sp: false
-      - if:
-          required:
-            - snps,tx-sched-sp
-        then:
-          properties:
-            snps,tx-sched-wrr: false
-            snps,tx-sched-wfq: false
-            snps,tx-sched-dwrr: false
     patternProperties:
       "^queue[0-9]$":
         description: Each subnode represents a queue.
@@ -393,7 +380,8 @@ properties:
             $ref: /schemas/types.yaml#/definitions/uint32
             description: max read outstanding req. limit
           snps,priority:
-            $ref: /schemas/types.yaml#/definitions/uint32
+            $ref: /schemas/types.yaml#/definitions/uint32-array
+            maxItems: 1
             description:
               Bitmask of the tagged frames priorities assigned to the queue.
               When a PFC frame is received with priorities matching the bitmask,
index 0d1962980f57f55f31a02b2486e3b679cee2184e..313a15331661208a1fa64386739d87a4f11b7e20 100644 (file)
@@ -30,6 +30,10 @@ properties:
       - items:
           - const: starfive,jh7110-dwmac
           - const: snps,dwmac-5.20
+      - items:
+          - const: starfive,jh8100-dwmac
+          - const: starfive,jh7110-dwmac
+          - const: snps,dwmac-5.20
 
   reg:
     maxItems: 1
@@ -116,11 +120,25 @@ allOf:
           minItems: 3
           maxItems: 3
 
-        resets:
-          minItems: 2
-
-        reset-names:
-          minItems: 2
+      if:
+        properties:
+          compatible:
+            contains:
+              const: starfive,jh8100-dwmac
+      then:
+        properties:
+          resets:
+            maxItems: 1
+
+          reset-names:
+            const: stmmaceth
+      else:
+        properties:
+          resets:
+            minItems: 2
+
+          reset-names:
+            minItems: 2
 
 unevaluatedProperties: false
 
index fc8c96b08d7dca709fa5e0fe2a34afbdff3eea74..7ccf75676b6d5544403baff4645c388d44f99c73 100644 (file)
@@ -82,6 +82,13 @@ properties:
       Should be phandle/offset pair. The phandle to the syscon node which
       encompases the glue register, and the offset of the control register
 
+  st,ext-phyclk:
+    description:
+      set this property in RMII mode when you have PHY without crystal 50MHz and want to
+      select RCC clock instead of ETH_REF_CLK. OR in RGMII mode when you want to select
+      RCC clock instead of ETH_CLK125.
+    type: boolean
+
   st,eth-clk-sel:
     description:
       set this property in RGMII PHY when you want to select RCC clock instead of ETH_CLK125.
@@ -93,6 +100,10 @@ properties:
       select RCC clock instead of ETH_REF_CLK.
     type: boolean
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - clocks
index d5bd93ee4dbb1642c2e6af42d10ca50842bef9aa..d14ca81f70e08be1b46194fa3d67a39bf46347b0 100644 (file)
@@ -8,7 +8,6 @@ title: TI SoC Ethernet Switch Controller (CPSW)
 
 maintainers:
   - Siddharth Vadapalli <s-vadapalli@ti.com>
-  - Ravi Gunasekaran <r-gunasekaran@ti.com>
   - Roger Quadros <rogerq@kernel.org>
 
 description:
index 229c8f32019fb3aae3c892fbbebf47871337c9b9..e253fa786092220cba4c15be87d5aaa3284ad678 100644 (file)
@@ -13,14 +13,12 @@ description:
   Ethernet based on the Programmable Real-Time Unit and Industrial
   Communication Subsystem.
 
-allOf:
-  - $ref: /schemas/remoteproc/ti,pru-consumer.yaml#
-
 properties:
   compatible:
     enum:
-      - ti,am642-icssg-prueth  # for AM64x SoC family
-      - ti,am654-icssg-prueth  # for AM65x SoC family
+      - ti,am642-icssg-prueth      # for AM64x SoC family
+      - ti,am654-icssg-prueth      # for AM65x SoC family
+      - ti,am654-sr1-icssg-prueth  # for AM65x SoC family, SR1.0
 
   sram:
     $ref: /schemas/types.yaml#/definitions/phandle
@@ -28,9 +26,11 @@ properties:
       phandle to MSMC SRAM node
 
   dmas:
-    maxItems: 10
+    minItems: 10
+    maxItems: 12
 
   dma-names:
+    minItems: 10
     items:
       - const: tx0-0
       - const: tx0-1
@@ -42,6 +42,8 @@ properties:
       - const: tx1-3
       - const: rx0
       - const: rx1
+      - const: rxmgm0
+      - const: rxmgm1
 
   ti,mii-g-rt:
     $ref: /schemas/types.yaml#/definitions/phandle
@@ -132,6 +134,27 @@ required:
   - interrupts
   - interrupt-names
 
+allOf:
+  - $ref: /schemas/remoteproc/ti,pru-consumer.yaml#
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,am654-sr1-icssg-prueth
+    then:
+      properties:
+        dmas:
+          minItems: 12
+        dma-names:
+          minItems: 12
+    else:
+      properties:
+        dmas:
+          maxItems: 10
+        dma-names:
+          maxItems: 10
+
 unevaluatedProperties: false
 
 examples:
index 73ed5951d29695b0f7a7558b22560d7c62533017..02b6d32003cc1c29f22918f06e138ceae81aef49 100644 (file)
@@ -8,7 +8,6 @@ title: The TI AM654x/J721E/AM642x SoC Gigabit Ethernet MAC (Media Access Control
 
 maintainers:
   - Siddharth Vadapalli <s-vadapalli@ti.com>
-  - Ravi Gunasekaran <r-gunasekaran@ti.com>
   - Roger Quadros <rogerq@kernel.org>
 
 description:
index b1c875325776d484f78c6b748f9429cdbac6e582..3888692275ad49ff4c0bfa1da84c6e66b8040f5b 100644 (file)
@@ -8,7 +8,6 @@ title: The TI AM654x/J721E Common Platform Time Sync (CPTS) module
 
 maintainers:
   - Siddharth Vadapalli <s-vadapalli@ti.com>
-  - Ravi Gunasekaran <r-gunasekaran@ti.com>
   - Roger Quadros <rogerq@kernel.org>
 
 description: |+
index 4aa521f1be8cdd18032be89a9daeba9b40aa1a2c..e564f20d8f4157b9fc750d074fd4e83b93962663 100644 (file)
@@ -44,6 +44,7 @@ properties:
               - brcm,bcm4366-fmac
               - cypress,cyw4373-fmac
               - cypress,cyw43012-fmac
+              - infineon,cyw43439-fmac
           - const: brcm,bcm4329-fmac
       - enum:
           - brcm,bcm4329-fmac
index 9b3ef4bc373258be8037f51e713cf798fd233bd5..5c4498b762c89fe6964b7e3d2dba710e925eef51 100644 (file)
@@ -73,6 +73,12 @@ properties:
       - sky85703-11
       - sky85803
 
+  firmware-name:
+    maxItems: 1
+    description:
+      If present, a board or platform specific string used to lookup firmware
+      files for the device.
+
   wifi-firmware:
     type: object
     additionalProperties: false
index 672282cdfc2fc4f2e076c58813843ef88e45f01c..a2d55bf4c7a518a5d81a9a646c70a319a7e9217c 100644 (file)
@@ -59,6 +59,8 @@ properties:
     minItems: 1
     maxItems: 2
 
+  ieee80211-freq-limit: true
+
   wifi-firmware:
     type: object
     description: |
@@ -88,6 +90,7 @@ required:
 additionalProperties: false
 
 allOf:
+  - $ref: ieee80211.yaml#
   - if:
       properties:
         compatible:
index 8c8f05d9eaf1e38932856edf84daa20811188dc8..80845c722ae46611c722effeaaf014a0caf76e4a 100644 (file)
@@ -34,6 +34,7 @@ properties:
           - qcom,qcs404-qfprom
           - qcom,sc7180-qfprom
           - qcom,sc7280-qfprom
+          - qcom,sc8280xp-qfprom
           - qcom,sdm630-qfprom
           - qcom,sdm670-qfprom
           - qcom,sdm845-qfprom
@@ -42,6 +43,9 @@ properties:
           - qcom,sm6375-qfprom
           - qcom,sm8150-qfprom
           - qcom,sm8250-qfprom
+          - qcom,sm8450-qfprom
+          - qcom,sm8550-qfprom
+          - qcom,sm8650-qfprom
       - const: qcom,qfprom
 
   reg:
index 068bedf5dbc9b9a6035cc63505760fbea8d556d6..5d7be0b34536f7d049dfedb409250cecf2534ccf 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Technologies, Inc. SPMI SDAM
 
 maintainers:
-  - Shyam Kumar Thella <sthella@codeaurora.org>
+  - David Collins <quic_collinsd@quicinc.com>
 
 description: |
   The SDAM provides scratch register space for the PMIC clients. This
index 51f62c3ae1947107d6dc2ee5950076f4b71af42c..ec5e424bb3c8383bbb3acc4a855753bad09d35d1 100644 (file)
@@ -13,25 +13,25 @@ maintainers:
 description: |
   For some SoCs, the CPU frequency subset and voltage value of each
   OPP varies based on the silicon variant in use. Allwinner Process
-  Voltage Scaling Tables defines the voltage and frequency value based
-  on the speedbin blown in the efuse combination. The
-  sun50i-cpufreq-nvmem driver reads the efuse value from the SoC to
-  provide the OPP framework with required information.
+  Voltage Scaling Tables define the voltage and frequency values based
+  on the speedbin blown in the efuse combination.
 
 allOf:
   - $ref: opp-v2-base.yaml#
 
 properties:
   compatible:
-    const: allwinner,sun50i-h6-operating-points
+    enum:
+      - allwinner,sun50i-h6-operating-points
+      - allwinner,sun50i-h616-operating-points
 
   nvmem-cells:
     description: |
       A phandle pointing to a nvmem-cells node representing the efuse
-      registers that has information about the speedbin that is used
+      register that has information about the speedbin that is used
       to select the right frequency/voltage value pair. Please refer
-      the for nvmem-cells bindings
-      Documentation/devicetree/bindings/nvmem/nvmem.txt and also
+      to the nvmem-cells bindings in
+      Documentation/devicetree/bindings/nvmem/nvmem.yaml and also the
       examples below.
 
   opp-shared: true
@@ -47,15 +47,18 @@ patternProperties:
     properties:
       opp-hz: true
       clock-latency-ns: true
+      opp-microvolt: true
+      opp-supported-hw:
+        maxItems: 1
+        description:
+          A single 32 bit bitmap value, representing compatible HW, one
+          bit per speed bin index.
 
     patternProperties:
       "^opp-microvolt-speed[0-9]$": true
 
     required:
       - opp-hz
-      - opp-microvolt-speed0
-      - opp-microvolt-speed1
-      - opp-microvolt-speed2
 
     unevaluatedProperties: false
 
@@ -77,58 +80,54 @@ examples:
             opp-microvolt-speed2 = <800000>;
         };
 
-        opp-720000000 {
+        opp-1080000000 {
             clock-latency-ns = <244144>; /* 8 32k periods */
-            opp-hz = /bits/ 64 <720000000>;
+            opp-hz = /bits/ 64 <1080000000>;
 
-            opp-microvolt-speed0 = <880000>;
-            opp-microvolt-speed1 = <820000>;
-            opp-microvolt-speed2 = <800000>;
+            opp-microvolt-speed0 = <1060000>;
+            opp-microvolt-speed1 = <880000>;
+            opp-microvolt-speed2 = <840000>;
         };
 
-        opp-816000000 {
+        opp-1488000000 {
             clock-latency-ns = <244144>; /* 8 32k periods */
-            opp-hz = /bits/ 64 <816000000>;
+            opp-hz = /bits/ 64 <1488000000>;
 
-            opp-microvolt-speed0 = <880000>;
-            opp-microvolt-speed1 = <820000>;
-            opp-microvolt-speed2 = <800000>;
+            opp-microvolt-speed0 = <1160000>;
+            opp-microvolt-speed1 = <1000000>;
+            opp-microvolt-speed2 = <960000>;
         };
+    };
 
-        opp-888000000 {
-            clock-latency-ns = <244144>; /* 8 32k periods */
-            opp-hz = /bits/ 64 <888000000>;
-
-            opp-microvolt-speed0 = <940000>;
-            opp-microvolt-speed1 = <820000>;
-            opp-microvolt-speed2 = <800000>;
-        };
+  - |
+    opp-table {
+        compatible = "allwinner,sun50i-h616-operating-points";
+        nvmem-cells = <&speedbin_efuse>;
+        opp-shared;
 
-        opp-1080000000 {
+        opp-480000000 {
             clock-latency-ns = <244144>; /* 8 32k periods */
-            opp-hz = /bits/ 64 <1080000000>;
+            opp-hz = /bits/ 64 <480000000>;
 
-            opp-microvolt-speed0 = <1060000>;
-            opp-microvolt-speed1 = <880000>;
-            opp-microvolt-speed2 = <840000>;
+            opp-microvolt = <900000>;
+            opp-supported-hw = <0x1f>;
         };
 
-        opp-1320000000 {
+        opp-792000000 {
             clock-latency-ns = <244144>; /* 8 32k periods */
-            opp-hz = /bits/ 64 <1320000000>;
+            opp-hz = /bits/ 64 <792000000>;
 
-            opp-microvolt-speed0 = <1160000>;
-            opp-microvolt-speed1 = <940000>;
-            opp-microvolt-speed2 = <900000>;
+            opp-microvolt-speed1 = <900000>;
+            opp-microvolt-speed4 = <940000>;
+            opp-supported-hw = <0x12>;
         };
 
-        opp-1488000000 {
+        opp-1512000000 {
             clock-latency-ns = <244144>; /* 8 32k periods */
-            opp-hz = /bits/ 64 <1488000000>;
+            opp-hz = /bits/ 64 <1512000000>;
 
-            opp-microvolt-speed0 = <1160000>;
-            opp-microvolt-speed1 = <1000000>;
-            opp-microvolt-speed2 = <960000>;
+            opp-microvolt = <1100000>;
+            opp-supported-hw = <0x0a>;
         };
     };
 
index a5bd90bc0712e4d16c741e510bd59fa56d71f173..79a21ba0f9fd62804ba95fe8a6cc3252cf652197 100644 (file)
@@ -13,7 +13,7 @@ description:
   Amlogic Meson PCIe host controller is based on the Synopsys DesignWare PCI core.
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
   - $ref: /schemas/pci/snps,dw-pcie-common.yaml#
 
 # We need a select here so we don't match all nodes with 'snps,dw-pcie'
index 215ff9a9c8352ecd551051971285d066a4fb3858..c8775f9cb071339dfa6f17f9f4a99f031c98b70a 100644 (file)
@@ -85,7 +85,7 @@ required:
 unevaluatedProperties: false
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
   - $ref: /schemas/interrupt-controller/msi-controller.yaml#
   - if:
       properties:
index 0e07ab61a48d28954f278acb2ac05d430b492ff7..5434c144d2ec0fd05be6455c7b5ae60dc4bac778 100644 (file)
@@ -11,7 +11,7 @@ maintainers:
   - Scott Branden <scott.branden@broadcom.com>
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 properties:
   compatible:
index 22491f7f88521c853c1ed8e91c5f9d5db2d095ef..11f8ea33240cfd2df4b9cab4163659f6b98ff544 100644 (file)
@@ -108,7 +108,7 @@ required:
   - msi-controller
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
   - $ref: /schemas/interrupt-controller/msi-controller.yaml#
   - if:
       properties:
index bc3c48f60fff8465fdf21b209971cb23d2920700..a8190d9b100fc0022d74e45e90a7cfc270b3414a 100644 (file)
@@ -10,7 +10,6 @@ maintainers:
   - Tom Joseph <tjoseph@cadence.com>
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
   - $ref: cdns-pcie-host.yaml#
 
 properties:
@@ -25,8 +24,6 @@ properties:
       - const: reg
       - const: cfg
 
-  msi-parent: true
-
 required:
   - reg
   - reg-names
index a6b494401ebbc85ea499a49a5a3e7ff23dee3a8f..f4eb82e684bd5a33dda4146f7746d3e22b54d2a3 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Tom Joseph <tjoseph@cadence.com>
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
   - $ref: cdns-pcie.yaml#
 
 properties:
index 92efbf0f1297f65cc5efeb15eedac1f2b5d49aa2..378dd1c8e2ee2e3964d7408e0be6646a3a42bec9 100644 (file)
@@ -51,7 +51,7 @@ description: |
         <0x6000 0 0 4 &pci_intc 2>;
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 properties:
   compatible:
diff --git a/Bindings/pci/fsl,layerscape-pcie-ep.yaml b/Bindings/pci/fsl,layerscape-pcie-ep.yaml
new file mode 100644 (file)
index 0000000..399efa7
--- /dev/null
@@ -0,0 +1,102 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/fsl,layerscape-pcie-ep.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Layerscape PCIe Endpoint(EP) controller
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  This PCIe EP controller is based on the Synopsys DesignWare PCIe IP.
+
+  This controller derives its clocks from the Reset Configuration Word (RCW)
+  which is used to describe the PLL settings at the time of chip-reset.
+
+  Also as per the available Reference Manuals, there is no specific 'version'
+  register available in the Freescale PCIe controller register set,
+  which can allow determining the underlying DesignWare PCIe controller version
+  information.
+
+properties:
+  compatible:
+    enum:
+      - fsl,ls2088a-pcie-ep
+      - fsl,ls1088a-pcie-ep
+      - fsl,ls1046a-pcie-ep
+      - fsl,ls1028a-pcie-ep
+      - fsl,lx2160ar2-pcie-ep
+
+  reg:
+    maxItems: 2
+
+  reg-names:
+    items:
+      - const: regs
+      - const: addr_space
+
+  fsl,pcie-scfg:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    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.
+
+  big-endian:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: If the PEX_LUT and PF register block is in big-endian, specify
+      this property.
+
+  dma-coherent: true
+
+  interrupts:
+    minItems: 1
+    maxItems: 2
+
+  interrupt-names:
+    minItems: 1
+    maxItems: 2
+
+required:
+  - compatible
+  - reg
+  - reg-names
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          enum:
+            - fsl,ls1028a-pcie-ep
+            - fsl,ls1046a-pcie-ep
+            - fsl,ls1088a-pcie-ep
+    then:
+      properties:
+        interrupt-names:
+          items:
+            - const: pme
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      pcie_ep1: pcie-ep@3400000 {
+        compatible = "fsl,ls1028a-pcie-ep";
+        reg = <0x00 0x03400000 0x0 0x00100000
+              0x80 0x00000000 0x8 0x00000000>;
+        reg-names = "regs", "addr_space";
+        interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
+        interrupt-names = "pme";
+        num-ib-windows = <6>;
+        num-ob-windows = <8>;
+        status = "disabled";
+      };
+    };
+...
diff --git a/Bindings/pci/fsl,layerscape-pcie.yaml b/Bindings/pci/fsl,layerscape-pcie.yaml
new file mode 100644 (file)
index 0000000..793986c
--- /dev/null
@@ -0,0 +1,167 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/fsl,layerscape-pcie.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Layerscape PCIe Root Complex(RC) controller
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  This PCIe RC controller is based on the Synopsys DesignWare PCIe IP
+
+  This controller derives its clocks from the Reset Configuration Word (RCW)
+  which is used to describe the PLL settings at the time of chip-reset.
+
+  Also as per the available Reference Manuals, there is no specific 'version'
+  register available in the Freescale PCIe controller register set,
+  which can allow determining the underlying DesignWare PCIe controller version
+  information.
+
+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
+
+  reg:
+    maxItems: 2
+
+  reg-names:
+    items:
+      - const: regs
+      - const: config
+
+  fsl,pcie-scfg:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    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.
+
+  big-endian:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: If the PEX_LUT and PF register block is in big-endian, specify
+      this property.
+
+  dma-coherent: true
+
+  msi-parent: true
+
+  iommu-map: true
+
+  interrupts:
+    minItems: 1
+    maxItems: 2
+
+  interrupt-names:
+    minItems: 1
+    maxItems: 2
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - "#address-cells"
+  - "#size-cells"
+  - device_type
+  - bus-range
+  - ranges
+  - interrupts
+  - interrupt-names
+  - "#interrupt-cells"
+  - interrupt-map-mask
+  - interrupt-map
+
+allOf:
+  - $ref: /schemas/pci/pci-bus.yaml#
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - fsl,ls1028a-pcie
+            - fsl,ls1046a-pcie
+            - fsl,ls1043a-pcie
+            - fsl,ls1012a-pcie
+    then:
+      properties:
+        interrupts:
+          maxItems: 2
+        interrupt-names:
+          items:
+            - const: pme
+            - const: aer
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - fsl,ls2080a-pcie
+            - fsl,ls2085a-pcie
+            - fsl,ls2088a-pcie
+    then:
+      properties:
+        interrupts:
+          maxItems: 1
+        interrupt-names:
+          items:
+            - const: intr
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - fsl,ls1088a-pcie
+    then:
+      properties:
+        interrupts:
+          maxItems: 1
+        interrupt-names:
+          items:
+            - const: aer
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      pcie@3400000 {
+        compatible = "fsl,ls1088a-pcie";
+        reg = <0x00 0x03400000 0x0 0x00100000>, /* controller registers */
+            <0x20 0x00000000 0x0 0x00002000>; /* configuration space */
+        reg-names = "regs", "config";
+        interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
+        interrupt-names = "aer";
+        #address-cells = <3>;
+        #size-cells = <2>;
+        dma-coherent;
+        device_type = "pci";
+        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>;
+        #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>,
+                        <0000 0 0 2 &gic 0 0 0 110 IRQ_TYPE_LEVEL_HIGH>,
+                        <0000 0 0 3 &gic 0 0 0 111 IRQ_TYPE_LEVEL_HIGH>,
+                        <0000 0 0 4 &gic 0 0 0 112 IRQ_TYPE_LEVEL_HIGH>;
+        iommu-map = <0 &smmu 0 1>; /* Fixed-up by bootloader */
+      };
+    };
+...
index d25423aa71674c40c5718fa33cd01de27f2441b6..3484e0b4b412e8e558435d193dd55ce1fad178f1 100644 (file)
@@ -116,7 +116,7 @@ required:
   - ranges
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
   - if:
       properties:
         compatible:
index debfb54a8042491b6472ef3e50e20dc1cb9c2d9a..3cae2e0f7f5e263a2c51c5f13ac9838cd6837a7f 100644 (file)
@@ -12,7 +12,7 @@ maintainers:
 description: PCI host controller found in the Intel IXP4xx SoC series.
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 properties:
   compatible:
index 505acc4f3efc1ec74b74e5bf628796ecd9dfc76f..1fd557504b107e74bd539a99443672e1320088e0 100644 (file)
@@ -11,7 +11,7 @@ maintainers:
   - Srikanth Thokala <srikanth.thokala@intel.com>
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 properties:
   compatible:
diff --git a/Bindings/pci/layerscape-pci.txt b/Bindings/pci/layerscape-pci.txt
deleted file mode 100644 (file)
index ee8a479..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-Freescale Layerscape PCIe controller
-
-This PCIe host controller is based on the Synopsys DesignWare PCIe IP
-and thus inherits all the common properties defined in snps,dw-pcie.yaml.
-
-This controller derives its clocks from the Reset Configuration Word (RCW)
-which is used to describe the PLL settings at the time of chip-reset.
-
-Also as per the available Reference Manuals, there is no specific 'version'
-register available in the Freescale PCIe controller register set,
-which can allow determining the underlying DesignWare PCIe controller version
-information.
-
-Required properties:
-- compatible: should contain the platform identifier such as:
-  RC mode:
-        "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"
-  EP mode:
-       "fsl,ls1028a-pcie-ep", "fsl,ls-pcie-ep"
-       "fsl,ls1046a-pcie-ep", "fsl,ls-pcie-ep"
-       "fsl,ls1088a-pcie-ep", "fsl,ls-pcie-ep"
-       "fsl,ls2088a-pcie-ep", "fsl,ls-pcie-ep"
-       "fsl,lx2160ar2-pcie-ep", "fsl,ls-pcie-ep"
-- reg: base addresses and lengths of the PCIe controller register blocks.
-- interrupts: A list of interrupt outputs of the controller. Must contain an
-  entry for each entry in the interrupt-names property.
-- interrupt-names: It could include the following entries:
-  "aer": Used for interrupt line which reports AER events when
-        non MSI/MSI-X/INTx mode is used
-  "pme": Used for interrupt line which reports PME events when
-        non MSI/MSI-X/INTx mode is used
-  "intr": Used for SoCs(like ls2080a, lx2160a, ls2080a, ls2088a, ls1088a)
-         which has a single interrupt line for miscellaneous controller
-         events(could include AER and PME events).
-- fsl,pcie-scfg: Must include two entries.
-  The first entry must be a link 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
-- dma-coherent: Indicates that the hardware IP block can ensure the coherency
-  of the data transferred from/to the IP block. This can avoid the software
-  cache flush/invalid actions, and improve the performance significantly.
-
-Optional properties:
-- big-endian: If the PEX_LUT and PF register block is in big-endian, specify
-  this property.
-
-Example:
-
-        pcie@3400000 {
-                compatible = "fsl,ls1088a-pcie";
-                reg = <0x00 0x03400000 0x0 0x00100000>, /* controller registers */
-                      <0x20 0x00000000 0x0 0x00002000>; /* configuration space */
-                reg-names = "regs", "config";
-                interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
-                interrupt-names = "aer";
-                #address-cells = <3>;
-                #size-cells = <2>;
-                device_type = "pci";
-                dma-coherent;
-                num-viewport = <256>;
-                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>;
-                #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>,
-                                <0000 0 0 2 &gic 0 0 0 110 IRQ_TYPE_LEVEL_HIGH>,
-                                <0000 0 0 3 &gic 0 0 0 111 IRQ_TYPE_LEVEL_HIGH>,
-                                <0000 0 0 4 &gic 0 0 0 112 IRQ_TYPE_LEVEL_HIGH>;
-                iommu-map = <0 &smmu 0 1>; /* Fixed-up by bootloader */
-        };
index a8324a9bd002f6b867eb11aba40a83385002fce4..1988465e73a12129e07bc62d828242060c81f2f3 100644 (file)
@@ -13,7 +13,7 @@ description: |+
   PCI host controller found on Loongson PCHs and SoCs.
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 properties:
   compatible:
index e63e6458cea8f780055744081b281cc9dc522724..6fba42156db60895600cdd63498ea199a42fb9c3 100644 (file)
@@ -14,7 +14,7 @@ description: |+
   with 3 Root Ports. Each Root Port supports a Gen1 1-lane Link
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 properties:
   compatible:
@@ -33,9 +33,12 @@ properties:
 patternProperties:
   '^pcie@[0-2],0$':
     type: object
-    $ref: /schemas/pci/pci-bus.yaml#
+    $ref: /schemas/pci/pci-pci-bridge.yaml#
 
     properties:
+      reg:
+        maxItems: 1
+
       resets:
         maxItems: 1
 
index 7e8c7a2a5f9b6c387b1ec2fd7b5a47dcee5867e1..76d742051f7346c16aeadbfeec72ad3f59c2a29a 100644 (file)
@@ -140,7 +140,7 @@ required:
   - interrupt-controller
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
   - if:
       properties:
         compatible:
index f7a3c26363556d4daf3050db4da74c221c7711db..5d7aec5f54e71a901a4793daaa0fa7d9caaf9721 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Daire McNamara <daire.mcnamara@microchip.com>
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
   - $ref: /schemas/interrupt-controller/msi-controller.yaml#
 
 properties:
@@ -65,7 +65,8 @@ properties:
       - const: msi
 
   ranges:
-    maxItems: 1
+    minItems: 1
+    maxItems: 3
 
   dma-ranges:
     minItems: 1
index 0d1b23523f62e7050bfffddf399ce160b06ae746..0a39bbfcb28b08c12b130468108bd452c7320ec9 100644 (file)
@@ -95,6 +95,6 @@ anyOf:
       - msi-map
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 additionalProperties: true
index 9eb6e457b07f1d70fe07cbd2931e35f6669aecea..2a4cc41fc710aa5aa1e6355811664dda4eb4beec 100644 (file)
@@ -71,28 +71,6 @@ properties:
     items:
       - const: pci
 
-oneOf:
-  - properties:
-      interrupts:
-        maxItems: 1
-      interrupt-names:
-        items:
-          - const: msi
-
-  - properties:
-      interrupts:
-        minItems: 8
-      interrupt-names:
-        items:
-          - const: msi0
-          - const: msi1
-          - const: msi2
-          - const: msi3
-          - const: msi4
-          - const: msi5
-          - const: msi6
-          - const: msi7
-
 allOf:
   - $ref: qcom,pcie-common.yaml#
 
index cf9a6910b542f0b9529cdcedb6740a820b397f91..f867746b1ae594a4f6b3cea171f245be866bdf53 100644 (file)
@@ -130,7 +130,7 @@ anyOf:
       - msi-map
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
   - if:
       properties:
         compatible:
index fe38f62da066676f5cb2c852958a57d922e6a1ac..91b81ac75592c4166612c60ba07120f85e1f966e 100644 (file)
@@ -16,7 +16,9 @@ allOf:
 properties:
   compatible:
     items:
-      - const: renesas,r8a779f0-pcie-ep   # R-Car S4-8
+      - enum:
+          - renesas,r8a779f0-pcie-ep      # R-Car S4-8
+          - renesas,r8a779g0-pcie-ep      # R-Car V4H
       - const: renesas,rcar-gen4-pcie-ep  # R-Car Gen4
 
   reg:
index ffb34339b637051b845954e375108ee6eeffa004..955c664f1fbb2b0c08d4e00e22d7dd8e1d7ad2e3 100644 (file)
@@ -16,7 +16,9 @@ allOf:
 properties:
   compatible:
     items:
-      - const: renesas,r8a779f0-pcie   # R-Car S4-8
+      - enum:
+          - renesas,r8a779f0-pcie      # R-Car S4-8
+          - renesas,r8a779g0-pcie      # R-Car V4H
       - const: renesas,rcar-gen4-pcie  # R-Car Gen4
 
   reg:
index b6a7cb32f61e5d4f1d0cff979bf3e7ecd46116fb..666f013e3af8f3ad1ae6bea020e4456f48c3a42d 100644 (file)
@@ -12,7 +12,7 @@ maintainers:
   - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
 
 allOf:
-  - $ref: pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 properties:
   compatible:
@@ -77,6 +77,9 @@ properties:
   vpcie12v-supply:
     description: The 12v regulator to use for PCIe.
 
+  iommu-map: true
+  iommu-map-mask: true
+
 required:
   - compatible
   - reg
index 5a0d64d3ae6b9515eca803b7b749960d5144495a..b288cdb1ec70a53fb335bf6f35c00752f0efcfe7 100644 (file)
@@ -110,7 +110,7 @@ required:
   - "#interrupt-cells"
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
   - if:
       properties:
index 531008f0b6ac327401452d0f0ae9043806059534..720a5f945a4e6b35a18b26f00b926399c437a1a9 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Shawn Lin <shawn.lin@rock-chips.com>
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
   - $ref: rockchip,rk3399-pcie-common.yaml#
 
 properties:
@@ -37,6 +37,7 @@ properties:
     description: This property is needed if using 24MHz OSC for RC's PHY.
 
   ep-gpios:
+    maxItems: 1
     description: pre-reset GPIO
 
   vpcie12v-supply:
index 022055edbf9e69fcd9ccf3e2551025192f72f3ad..548f59d76ef2094c413635f6bf278c657d16a1c6 100644 (file)
@@ -23,7 +23,7 @@ select:
     - compatible
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
   - $ref: /schemas/pci/snps,dw-pcie-common.yaml#
   - if:
       not:
index a20dccbafd94e7c276875e65adc0e3acce23341a..0a9d10532cc8ced79689c2352bcb221d8cfc0338 100644 (file)
@@ -11,7 +11,7 @@ maintainers:
   - Kishon Vijay Abraham I <kishon@ti.com>
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 properties:
   compatible:
@@ -55,6 +55,20 @@ properties:
 
   dma-coherent: true
 
+  num-viewport:
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  phys:
+    description: per-lane PHYs
+    minItems: 1
+    maxItems: 2
+
+  phy-names:
+    minItems: 1
+    maxItems: 2
+    items:
+      pattern: '^pcie-phy[0-1]$'
+
 required:
   - compatible
   - reg
@@ -74,6 +88,7 @@ then:
     - dma-coherent
     - power-domains
     - msi-map
+    - num-viewport
 
 unevaluatedProperties: false
 
@@ -81,6 +96,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/soc/ti,sci_pm_domain.h>
 
     pcie0_rc: pcie@5500000 {
@@ -98,9 +114,13 @@ examples:
         ti,syscon-pcie-id = <&scm_conf 0x0210>;
         ti,syscon-pcie-mode = <&scm_conf 0x4060>;
         bus-range = <0x0 0xff>;
+        num-viewport = <16>;
         max-link-speed = <2>;
         dma-coherent;
         interrupts = <GIC_SPI 340 IRQ_TYPE_EDGE_RISING>;
         msi-map = <0x0 &gic_its 0x0 0x10000>;
         device_type = "pci";
+        num-lanes = <1>;
+        phys = <&serdes0 PHY_TYPE_PCIE 0>;
+        phy-names = "pcie-phy0";
     };
index b7a534cef24d314d20d9e725575301dcb499a782..15a2658ceeeff248c6794d9d4a308e017fc00b66 100644 (file)
@@ -23,6 +23,10 @@ properties:
         items:
           - const: ti,j7200-pcie-host
           - const: ti,j721e-pcie-host
+      - description: PCIe controller in J722S
+        items:
+          - const: ti,j722s-pcie-host
+          - const: ti,j721e-pcie-host
 
   reg:
     maxItems: 4
@@ -68,6 +72,7 @@ properties:
       - 0xb00d
       - 0xb00f
       - 0xb010
+      - 0xb012
       - 0xb013
 
   msi-map: true
index 09748ef6b94f5af8ec0d7a3b42a7415fece61034..294c7cd84b37f11b7bf33c1b3a5a3f7bfc378738 100644 (file)
@@ -13,7 +13,7 @@ description: |+
   PCI host controller found on the ARM Versatile PB board's FPGA.
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 properties:
   compatible:
index 4734be456bde6c6c4b2c567e0ac6ccc7d518e6cc..4770ce02fcc3c595f5861f55df5276f653713cb0 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Bharat Kumar Gogada <bharat.kumar.gogada@amd.com>
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 properties:
   compatible:
@@ -48,13 +48,16 @@ properties:
   interrupt-controller:
     description: Interrupt controller node for handling legacy PCI interrupts.
     type: object
+    additionalProperties: false
+
     properties:
       "#address-cells":
         const: 0
+
       "#interrupt-cells":
         const: 1
-      "interrupt-controller": true
-    additionalProperties: false
+
+      interrupt-controller: true
 
 required:
   - reg
index 69b7decabd45479b77da7ce19c2beca931d05a6e..fb87b960a250c100f1781ec56601e8657e912523 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Thippeswamy Havalige <thippeswamy.havalige@amd.com>
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 properties:
   compatible:
index 426f90a47f355a196178f716a439c1c040c63663..9cad860c51a3352833c4673e538f46657cae9332 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Thippeswamy Havalige <thippeswamy.havalige@amd.com>
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
   - $ref: /schemas/interrupt-controller/msi-controller.yaml#
 
 properties:
@@ -84,7 +84,7 @@ properties:
       "#interrupt-cells":
         const: 1
 
-      "interrupt-controller": true
+      interrupt-controller: true
 
     required:
       - "#address-cells"
index 0aa00b8e49b3afc6707cd860e79b25cc63debb88..2f59b3a73dd27f12df332a846c15ac3aa27c422a 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Thippeswamy Havalige <thippeswamy.havalige@amd.com>
 
 allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
 
 properties:
   compatible:
index 8467c8e6368cc086b37dc612424bf51397e88182..439bda1427646a47e5c51e881ff2c350119cba26 100644 (file)
@@ -59,14 +59,14 @@ patternProperties:
       "#phy-cells":
         const: 0
 
-      "brcm,enable-ssc":
+      brcm,enable-ssc:
         $ref: /schemas/types.yaml#/definitions/flag
         description: |
           Use spread spectrum clocking (SSC) on this port
           This property is not applicable for "brcm,iproc-ns2-sata-phy",
           "brcm,iproc-nsp-sata-phy" and "brcm,iproc-sr-sata-phy".
 
-      "brcm,rxaeq-mode":
+      brcm,rxaeq-mode:
         $ref: /schemas/types.yaml#/definitions/string
         description:
           String that indicates the desired RX equalizer mode.
@@ -75,7 +75,7 @@ patternProperties:
           - auto
           - manual
 
-      "brcm,rxaeq-value":
+      brcm,rxaeq-value:
         $ref: /schemas/types.yaml#/definitions/uint32
         description: |
             When 'brcm,rxaeq-mode' is set to "manual", provides the RX
@@ -83,7 +83,7 @@ patternProperties:
         minimum: 0
         maximum: 63
 
-      "brcm,tx-amplitude-millivolt":
+      brcm,tx-amplitude-millivolt:
         description: |
             Transmit amplitude voltage in millivolt.
         $ref: /schemas/types.yaml#/definitions/uint32
diff --git a/Bindings/phy/fsl,imx8mp-hdmi-phy.yaml b/Bindings/phy/fsl,imx8mp-hdmi-phy.yaml
new file mode 100644 (file)
index 0000000..c43e86a
--- /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/phy/fsl,imx8mp-hdmi-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale i.MX8MP HDMI PHY
+
+maintainers:
+  - Lucas Stach <l.stach@pengutronix.de>
+
+properties:
+  compatible:
+    enum:
+      - fsl,imx8mp-hdmi-phy
+
+  reg:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 0
+
+  clocks:
+    maxItems: 2
+
+  clock-names:
+    items:
+      - const: apb
+      - const: ref
+
+  "#phy-cells":
+    const: 0
+
+  power-domains:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - "#clock-cells"
+  - clocks
+  - clock-names
+  - "#phy-cells"
+  - power-domains
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/imx8mp-clock.h>
+    #include <dt-bindings/power/imx8mp-power.h>
+
+    phy@32fdff00 {
+        compatible = "fsl,imx8mp-hdmi-phy";
+        reg = <0x32fdff00 0x100>;
+        clocks = <&clk IMX8MP_CLK_HDMI_APB>,
+                 <&clk IMX8MP_CLK_HDMI_24M>;
+        clock-names = "apb", "ref";
+        power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_HDMI_TX_PHY>;
+        #clock-cells = <0>;
+        #phy-cells = <0>;
+    };
diff --git a/Bindings/phy/mediatek,mt7988-xfi-tphy.yaml b/Bindings/phy/mediatek,mt7988-xfi-tphy.yaml
new file mode 100644 (file)
index 0000000..cfb3ca9
--- /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/phy/mediatek,mt7988-xfi-tphy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek MT7988 XFI T-PHY
+
+maintainers:
+  - Daniel Golle <daniel@makrotopia.org>
+
+description:
+  The MediaTek XFI SerDes T-PHY provides the physical SerDes lanes
+  used by the (10G/5G) USXGMII PCS and (1G/2.5G) LynxI PCS found in
+  MediaTek's 10G-capabale MT7988 SoC.
+  In MediaTek's SDK sources, this unit is referred to as "pextp".
+
+properties:
+  compatible:
+    const: mediatek,mt7988-xfi-tphy
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: XFI PHY clock
+      - description: XFI register clock
+
+  clock-names:
+    items:
+      - const: xfipll
+      - const: topxtal
+
+  resets:
+    items:
+      - description: Reset controller corresponding to the phy instance.
+
+  mediatek,usxgmii-performance-errata:
+    $ref: /schemas/types.yaml#/definitions/flag
+    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
+      is required for XFI Port0 of the MT7988 SoC to be in compliance with
+      the SFP specification.
+
+  "#phy-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - resets
+  - "#phy-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/mediatek,mt7988-clk.h>
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      phy@11f20000 {
+        compatible = "mediatek,mt7988-xfi-tphy";
+        reg = <0 0x11f20000 0 0x10000>;
+        clocks = <&xfi_pll CLK_XFIPLL_PLL_EN>,
+                 <&topckgen CLK_TOP_XFI_PHY_0_XTAL_SEL>;
+        clock-names = "xfipll", "topxtal";
+        resets = <&watchdog 14>;
+        mediatek,usxgmii-performance-errata;
+        #phy-cells = <0>;
+      };
+    };
+
+...
diff --git a/Bindings/phy/phy-rockchip-usbdp.yaml b/Bindings/phy/phy-rockchip-usbdp.yaml
new file mode 100644 (file)
index 0000000..1f1f886
--- /dev/null
@@ -0,0 +1,148 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/phy-rockchip-usbdp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip USBDP Combo PHY with Samsung IP block
+
+maintainers:
+  - Frank Wang <frank.wang@rock-chips.com>
+  - Zhang Yubing <yubing.zhang@rock-chips.com>
+
+properties:
+  compatible:
+    enum:
+      - rockchip,rk3588-usbdp-phy
+
+  reg:
+    maxItems: 1
+
+  "#phy-cells":
+    description: |
+      Cell allows setting the type of the PHY. Possible values are:
+      - PHY_TYPE_USB3
+      - PHY_TYPE_DP
+    const: 1
+
+  clocks:
+    maxItems: 4
+
+  clock-names:
+    items:
+      - const: refclk
+      - const: immortal
+      - const: pclk
+      - const: utmi
+
+  resets:
+    maxItems: 5
+
+  reset-names:
+    items:
+      - const: init
+      - const: cmn
+      - const: lane
+      - const: pcs_apb
+      - const: pma_apb
+
+  rockchip,dp-lane-mux:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 2
+    maxItems: 4
+    items:
+      maximum: 3
+    description:
+      An array of physical Type-C lanes indexes. Position of an entry
+      determines the DisplayPort (DP) lane index, while the value of an entry
+      indicates physical Type-C lane. The supported DP lanes number are 2 or 4.
+      e.g. for 2 lanes DP lanes map, we could have "rockchip,dp-lane-mux = <2,
+      3>;", assuming DP lane0 on Type-C phy lane2, DP lane1 on Type-C phy
+      lane3. For 4 lanes DP lanes map, we could have "rockchip,dp-lane-mux =
+      <0, 1, 2, 3>;", assuming DP lane0 on Type-C phy lane0, DP lane1 on Type-C
+      phy lane1, DP lane2 on Type-C phy lane2, DP lane3 on Type-C phy lane3. If
+      DP lanes are mapped by DisplayPort Alt mode, this property is not needed.
+
+  rockchip,u2phy-grf:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the syscon managing the 'usb2 phy general register files'.
+
+  rockchip,usb-grf:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the syscon managing the 'usb general register files'.
+
+  rockchip,usbdpphy-grf:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the syscon managing the 'usbdp phy general register files'.
+
+  rockchip,vo-grf:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the syscon managing the 'video output general register files'.
+      When select the DP lane mapping will request its phandle.
+
+  sbu1-dc-gpios:
+    description:
+      GPIO connected to the SBU1 line of the USB-C connector via a big resistor
+      (~100K) to apply a DC offset for signalling the connector orientation.
+    maxItems: 1
+
+  sbu2-dc-gpios:
+    description:
+      GPIO connected to the SBU2 line of the USB-C connector via a big resistor
+      (~100K) to apply a DC offset for signalling the connector orientation.
+    maxItems: 1
+
+  orientation-switch:
+    description: Flag the port as possible handler of orientation switching
+    type: boolean
+
+  mode-switch:
+    description: Flag the port as possible handler of altmode switching
+    type: boolean
+
+  port:
+    $ref: /schemas/graph.yaml#/properties/port
+    description:
+      A port node to link the PHY to a TypeC controller for the purpose of
+      handling orientation switching.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - "#phy-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/rockchip,rk3588-cru.h>
+    #include <dt-bindings/reset/rockchip,rk3588-cru.h>
+
+    usbdp_phy0: phy@fed80000 {
+      compatible = "rockchip,rk3588-usbdp-phy";
+      reg = <0xfed80000 0x10000>;
+      #phy-cells = <1>;
+      clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
+               <&cru CLK_USBDP_PHY0_IMMORTAL>,
+               <&cru PCLK_USBDPPHY0>,
+               <&u2phy0>;
+      clock-names = "refclk", "immortal", "pclk", "utmi";
+      resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>,
+               <&cru SRST_USBDP_COMBO_PHY0_CMN>,
+               <&cru SRST_USBDP_COMBO_PHY0_LANE>,
+               <&cru SRST_USBDP_COMBO_PHY0_PCS>,
+               <&cru SRST_P_USBDPPHY0>;
+      reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
+      rockchip,u2phy-grf = <&usb2phy0_grf>;
+      rockchip,usb-grf = <&usb_grf>;
+      rockchip,usbdpphy-grf = <&usbdpphy0_grf>;
+      rockchip,vo-grf = <&vo0_grf>;
+    };
index 24a3dbde223bc35dd4520b7d40db34dd2902b1ab..ceea122ae1a6a7aab97aa2b28af271f2010b677f 100644 (file)
@@ -55,6 +55,10 @@ properties:
     description: number of clock cells for ck_usbo_48m consumer
     const: 0
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 # Required child nodes:
 
 patternProperties:
index 6566353f1a0262a732d41510a8616361a75a9dd4..4e15d90d08b0ec91846480118b6c3b3a27c3863e 100644 (file)
@@ -21,6 +21,7 @@ properties:
       - qcom,sc8180x-edp-phy
       - qcom,sc8280xp-dp-phy
       - qcom,sc8280xp-edp-phy
+      - qcom,x1e80100-dp-phy
 
   reg:
     items:
index ba966a78a1283f5249a7c015c45d605845b85e41..16634f73bdcff362859ca19afa4b57a03724d776 100644 (file)
@@ -88,11 +88,11 @@ properties:
           - description: offset of PCIe 4-lane configuration register
           - description: offset of configuration bit for this PHY
 
-  "#clock-cells":
-    const: 0
+  "#clock-cells": true
 
   clock-output-names:
-    maxItems: 1
+    minItems: 1
+    maxItems: 2
 
   "#phy-cells":
     const: 0
@@ -198,7 +198,6 @@ allOf:
             enum:
               - qcom,sm8550-qmp-gen4x2-pcie-phy
               - qcom,sm8650-qmp-gen4x2-pcie-phy
-              - qcom,x1e80100-qmp-gen3x2-pcie-phy
               - qcom,x1e80100-qmp-gen4x2-pcie-phy
     then:
       properties:
@@ -213,6 +212,27 @@ allOf:
         reset-names:
           maxItems: 1
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sm8450-qmp-gen4x2-pcie-phy
+              - qcom,sm8550-qmp-gen4x2-pcie-phy
+              - qcom,sm8650-qmp-gen4x2-pcie-phy
+    then:
+      properties:
+        clock-output-names:
+          minItems: 2
+        "#clock-cells":
+          const: 1
+    else:
+      properties:
+        clock-output-names:
+          maxItems: 1
+        "#clock-cells":
+          const: 0
+
 examples:
   - |
     #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
index 91a6cc38ff7ff5d8df2fd33997b540e4338e9ab2..f9cfbd0b2de6c4d7096fbd8658431ad68c18c4f2 100644 (file)
@@ -32,6 +32,7 @@ properties:
       - qcom,sm8250-qmp-ufs-phy
       - qcom,sm8350-qmp-ufs-phy
       - qcom,sm8450-qmp-ufs-phy
+      - qcom,sm8475-qmp-ufs-phy
       - qcom,sm8550-qmp-ufs-phy
       - qcom,sm8650-qmp-ufs-phy
 
@@ -71,7 +72,6 @@ required:
   - reg
   - clocks
   - clock-names
-  - power-domains
   - resets
   - reset-names
   - vdda-phy-supply
@@ -86,6 +86,7 @@ allOf:
             enum:
               - qcom,msm8998-qmp-ufs-phy
               - qcom,sa8775p-qmp-ufs-phy
+              - qcom,sc7180-qmp-ufs-phy
               - qcom,sc7280-qmp-ufs-phy
               - qcom,sc8180x-qmp-ufs-phy
               - qcom,sc8280xp-qmp-ufs-phy
@@ -98,6 +99,7 @@ allOf:
               - qcom,sm8250-qmp-ufs-phy
               - qcom,sm8350-qmp-ufs-phy
               - qcom,sm8450-qmp-ufs-phy
+              - qcom,sm8475-qmp-ufs-phy
               - qcom,sm8550-qmp-ufs-phy
               - qcom,sm8650-qmp-ufs-phy
     then:
@@ -127,6 +129,21 @@ allOf:
             - const: ref
             - const: qref
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,msm8996-qmp-ufs-phy
+              - qcom,msm8998-qmp-ufs-phy
+    then:
+      properties:
+        power-domains:
+          false
+    else:
+      required:
+        - power-domains
+
 additionalProperties: false
 
 examples:
index 1e2d4ddc5391f10e2d1c983a4058bbe6225d4f42..325585bc881bac456875846668aa0c3e2f1c9758 100644 (file)
@@ -20,6 +20,7 @@ properties:
       - qcom,ipq8074-qmp-usb3-phy
       - qcom,ipq9574-qmp-usb3-phy
       - qcom,msm8996-qmp-usb3-phy
+      - com,qdu1000-qmp-usb3-uni-phy
       - qcom,sa8775p-qmp-usb3-uni-phy
       - qcom,sc8280xp-qmp-usb3-uni-phy
       - qcom,sdm845-qmp-usb3-uni-phy
@@ -109,6 +110,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,qdu1000-qmp-usb3-uni-phy
               - qcom,sa8775p-qmp-usb3-uni-phy
               - qcom,sc8280xp-qmp-usb3-uni-phy
               - qcom,sm8150-qmp-usb3-uni-phy
index 24c733c10e0e92d36fdffe78ec140dde68e1ef4d..90d79491e2815402b8ec07fd453aad955b79abfd 100644 (file)
@@ -20,7 +20,9 @@ properties:
           - enum:
               - qcom,pm7550ba-eusb2-repeater
           - const: qcom,pm8550b-eusb2-repeater
-      - const: qcom,pm8550b-eusb2-repeater
+      - enum:
+          - qcom,pm8550b-eusb2-repeater
+          - qcom,smb2360-eusb2-repeater
 
   reg:
     maxItems: 1
index 0f200e3f97a9a39c40738ee0f607aa1ceb8480cc..519c2b403f66d5c9d055d04c640d075f11f61bce 100644 (file)
@@ -15,9 +15,6 @@ description: |
 properties:
   compatible:
     oneOf:
-      - enum:
-          - qcom,sc8180x-usb-hs-phy
-          - qcom,usb-snps-femto-v2-phy
       - items:
           - enum:
               - qcom,sa8775p-usb-hs-phy
@@ -25,7 +22,9 @@ properties:
           - const: qcom,usb-snps-hs-5nm-phy
       - items:
           - enum:
+              - qcom,qdu1000-usb-hs-phy
               - qcom,sc7280-usb-hs-phy
+              - qcom,sc8180x-usb-hs-phy
               - qcom,sdx55-usb-hs-phy
               - qcom,sdx65-usb-hs-phy
               - qcom,sm6375-usb-hs-phy
index c4fbffcde6e4037a2f29f6ad10528b665f19dfef..ba67dca5a446fee9fb34ba8f9380ba02e59e27ce 100644 (file)
@@ -54,6 +54,16 @@ properties:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: phandle to the syscon managing the pipe "general register files"
 
+  rockchip,rx-common-refclk-mode:
+    description: which lanes (by position) should be configured to run in
+      RX common reference clock mode. 0 means disabled, 1 means enabled.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 1
+    maxItems: 16
+    items:
+      minimum: 0
+      maximum: 1
+
 required:
   - compatible
   - reg
index 782f975b43aeaceb7a3f5ca0fec72f0dc37472d4..f402e31bf58d82e4e310be250f1c7c111845e207 100644 (file)
@@ -15,6 +15,7 @@ properties:
 
   compatible:
     enum:
+      - google,gs101-ufs-phy
       - samsung,exynos7-ufs-phy
       - samsung,exynosautov9-ufs-phy
       - tesla,fsd-ufs-phy
index bd72a326e6e069cbccc25b1cf394b0f9595c33af..d74cae9d4d6508d6469108fe0010df6a8e0a11fa 100644 (file)
@@ -34,6 +34,9 @@ properties:
       the amount of cells must be specified as 2. See the below mentioned gpio
       binding representation for description of particular cells.
 
+  gpio-ranges:
+    maxItems: 1
+
   interrupt-controller: true
 
   interrupts:
@@ -75,8 +78,8 @@ patternProperties:
           function:
             description:
               A string containing the name of the function to mux to the group.
-            enum: [emmc, eth, i2c, i2s, ir, led, flash, pcie, pmic, pwm, sd,
-                   spi, tdm, uart, watchdog, wifi]
+            enum: [antsel, emmc, eth, i2c, i2s, ir, led, flash, pcie, pmic, pwm,
+                   sd, spi, tdm, uart, watchdog, wifi]
 
           groups:
             description:
@@ -90,6 +93,20 @@ patternProperties:
           - function
 
         allOf:
+          - if:
+              properties:
+                function:
+                  const: antsel
+            then:
+              properties:
+                groups:
+                  items:
+                    enum: [antsel0, antsel1, antsel2, antsel3, antsel4, antsel5,
+                           antsel6, antsel7, antsel8, antsel9, antsel10,
+                           antsel11, antsel12, antsel13, antsel14, antsel15,
+                           antsel16, antsel17, antsel18, antsel19, antsel20,
+                           antsel21, antsel22, antsel23, antsel24, antsel25,
+                           antsel26, antsel27, antsel28, antsel29]
           - if:
               properties:
                 function:
@@ -97,7 +114,8 @@ patternProperties:
             then:
               properties:
                 groups:
-                  enum: [emmc, emmc_rst]
+                  items:
+                    enum: [emmc, emmc_rst]
           - if:
               properties:
                 function:
@@ -105,8 +123,9 @@ patternProperties:
             then:
               properties:
                 groups:
-                  enum: [esw, esw_p0_p1, esw_p2_p3_p4, rgmii_via_esw,
-                         rgmii_via_gmac1, rgmii_via_gmac2, mdc_mdio]
+                  items:
+                    enum: [esw, esw_p0_p1, esw_p2_p3_p4, rgmii_via_esw,
+                           rgmii_via_gmac1, rgmii_via_gmac2, mdc_mdio]
           - if:
               properties:
                 function:
@@ -123,10 +142,11 @@ patternProperties:
             then:
               properties:
                 groups:
-                  enum: [i2s_in_mclk_bclk_ws, i2s1_in_data, i2s2_in_data,
-                         i2s3_in_data, i2s4_in_data, i2s_out_mclk_bclk_ws,
-                         i2s1_out_data, i2s2_out_data, i2s3_out_data,
-                         i2s4_out_data]
+                  items:
+                    enum: [i2s_in_mclk_bclk_ws, i2s1_in_data, i2s2_in_data,
+                           i2s3_in_data, i2s4_in_data, i2s_out_mclk_bclk_ws,
+                           i2s1_out_data, i2s2_out_data, i2s3_out_data,
+                           i2s4_out_data]
           - if:
               properties:
                 function:
@@ -159,10 +179,11 @@ patternProperties:
             then:
               properties:
                 groups:
-                  enum: [pcie0_0_waken, pcie0_1_waken, pcie1_0_waken,
-                         pcie0_0_clkreq, pcie0_1_clkreq, pcie1_0_clkreq,
-                         pcie0_pad_perst, pcie1_pad_perst, pcie_pereset,
-                         pcie_wake, pcie_clkreq]
+                  items:
+                    enum: [pcie0_0_waken, pcie0_1_waken, pcie1_0_waken,
+                           pcie0_0_clkreq, pcie0_1_clkreq, pcie1_0_clkreq,
+                           pcie0_pad_perst, pcie1_pad_perst, pcie_pereset,
+                           pcie_wake, pcie_clkreq]
           - if:
               properties:
                 function:
@@ -178,11 +199,12 @@ patternProperties:
             then:
               properties:
                 groups:
-                  enum: [pwm_ch1_0, pwm_ch1_1, pwm_ch1_2, pwm_ch2_0, pwm_ch2_1,
-                         pwm_ch2_2, pwm_ch3_0, pwm_ch3_1, pwm_ch3_2, pwm_ch4_0,
-                         pwm_ch4_1, pwm_ch4_2, pwm_ch4_3, pwm_ch5_0, pwm_ch5_1,
-                         pwm_ch5_2, pwm_ch6_0, pwm_ch6_1, pwm_ch6_2, pwm_ch6_3,
-                         pwm_ch7_0, pwm_0, pwm_1]
+                  items:
+                    enum: [pwm_ch1_0, pwm_ch1_1, pwm_ch1_2, pwm_ch2_0, pwm_ch2_1,
+                           pwm_ch2_2, pwm_ch3_0, pwm_ch3_1, pwm_ch3_2, pwm_ch4_0,
+                           pwm_ch4_1, pwm_ch4_2, pwm_ch4_3, pwm_ch5_0, pwm_ch5_1,
+                           pwm_ch5_2, pwm_ch6_0, pwm_ch6_1, pwm_ch6_2, pwm_ch6_3,
+                           pwm_ch7_0, pwm_0, pwm_1]
           - if:
               properties:
                 function:
@@ -260,33 +282,34 @@ patternProperties:
           pins:
             description:
               An array of strings. Each string contains the name of a pin.
-            enum: [GPIO_A, I2S1_IN, I2S1_OUT, I2S_BCLK, I2S_WS, I2S_MCLK, TXD0,
-                   RXD0, SPI_WP, SPI_HOLD, SPI_CLK, SPI_MOSI, SPI_MISO, SPI_CS,
-                   I2C_SDA, I2C_SCL, I2S2_IN, I2S3_IN, I2S4_IN, I2S2_OUT,
-                   I2S3_OUT, I2S4_OUT, GPIO_B, MDC, MDIO, G2_TXD0, G2_TXD1,
-                   G2_TXD2, G2_TXD3, G2_TXEN, G2_TXC, G2_RXD0, G2_RXD1, G2_RXD2,
-                   G2_RXD3, G2_RXDV, G2_RXC, NCEB, NWEB, NREB, NDL4, NDL5, NDL6,
-                   NDL7, NRB, NCLE, NALE, NDL0, NDL1, NDL2, NDL3, MDI_TP_P0,
-                   MDI_TN_P0, MDI_RP_P0, MDI_RN_P0, MDI_TP_P1, MDI_TN_P1,
-                   MDI_RP_P1, MDI_RN_P1, MDI_RP_P2, MDI_RN_P2, MDI_TP_P2,
-                   MDI_TN_P2, MDI_TP_P3, MDI_TN_P3, MDI_RP_P3, MDI_RN_P3,
-                   MDI_RP_P4, MDI_RN_P4, MDI_TP_P4, MDI_TN_P4, PMIC_SCL,
-                   PMIC_SDA, SPIC1_CLK, SPIC1_MOSI, SPIC1_MISO, SPIC1_CS,
-                   GPIO_D, WATCHDOG, RTS3_N, CTS3_N, TXD3, RXD3, PERST0_N,
-                   PERST1_N, WLED_N, EPHY_LED0_N, AUXIN0, AUXIN1, AUXIN2,
-                   AUXIN3, TXD4, RXD4, RTS4_N, CST4_N, PWM1, PWM2, PWM3, PWM4,
-                   PWM5, PWM6, PWM7, GPIO_E, TOP_5G_CLK, TOP_5G_DATA,
-                   WF0_5G_HB0, WF0_5G_HB1, WF0_5G_HB2, WF0_5G_HB3, WF0_5G_HB4,
-                   WF0_5G_HB5, WF0_5G_HB6, XO_REQ, TOP_RST_N, SYS_WATCHDOG,
-                   EPHY_LED0_N_JTDO, EPHY_LED1_N_JTDI, EPHY_LED2_N_JTMS,
-                   EPHY_LED3_N_JTCLK, EPHY_LED4_N_JTRST_N, WF2G_LED_N,
-                   WF5G_LED_N, GPIO_9, GPIO_10, GPIO_11, GPIO_12, UART1_TXD,
-                   UART1_RXD, UART1_CTS, UART1_RTS, UART2_TXD, UART2_RXD,
-                   UART2_CTS, UART2_RTS, SMI_MDC, SMI_MDIO, PCIE_PERESET_N,
-                   PWM_0, GPIO_0, GPIO_1, GPIO_2, GPIO_3, GPIO_4, GPIO_5,
-                   GPIO_6, GPIO_7, GPIO_8, UART0_TXD, UART0_RXD, TOP_2G_CLK,
-                   TOP_2G_DATA, WF0_2G_HB0, WF0_2G_HB1, WF0_2G_HB2, WF0_2G_HB3,
-                   WF0_2G_HB4, WF0_2G_HB5, WF0_2G_HB6]
+            items:
+              enum: [GPIO_A, I2S1_IN, I2S1_OUT, I2S_BCLK, I2S_WS, I2S_MCLK, TXD0,
+                     RXD0, SPI_WP, SPI_HOLD, SPI_CLK, SPI_MOSI, SPI_MISO, SPI_CS,
+                     I2C_SDA, I2C_SCL, I2S2_IN, I2S3_IN, I2S4_IN, I2S2_OUT,
+                     I2S3_OUT, I2S4_OUT, GPIO_B, MDC, MDIO, G2_TXD0, G2_TXD1,
+                     G2_TXD2, G2_TXD3, G2_TXEN, G2_TXC, G2_RXD0, G2_RXD1, G2_RXD2,
+                     G2_RXD3, G2_RXDV, G2_RXC, NCEB, NWEB, NREB, NDL4, NDL5, NDL6,
+                     NDL7, NRB, NCLE, NALE, NDL0, NDL1, NDL2, NDL3, MDI_TP_P0,
+                     MDI_TN_P0, MDI_RP_P0, MDI_RN_P0, MDI_TP_P1, MDI_TN_P1,
+                     MDI_RP_P1, MDI_RN_P1, MDI_RP_P2, MDI_RN_P2, MDI_TP_P2,
+                     MDI_TN_P2, MDI_TP_P3, MDI_TN_P3, MDI_RP_P3, MDI_RN_P3,
+                     MDI_RP_P4, MDI_RN_P4, MDI_TP_P4, MDI_TN_P4, PMIC_SCL,
+                     PMIC_SDA, SPIC1_CLK, SPIC1_MOSI, SPIC1_MISO, SPIC1_CS,
+                     GPIO_D, WATCHDOG, RTS3_N, CTS3_N, TXD3, RXD3, PERST0_N,
+                     PERST1_N, WLED_N, EPHY_LED0_N, AUXIN0, AUXIN1, AUXIN2,
+                     AUXIN3, TXD4, RXD4, RTS4_N, CST4_N, PWM1, PWM2, PWM3, PWM4,
+                     PWM5, PWM6, PWM7, GPIO_E, TOP_5G_CLK, TOP_5G_DATA,
+                     WF0_5G_HB0, WF0_5G_HB1, WF0_5G_HB2, WF0_5G_HB3, WF0_5G_HB4,
+                     WF0_5G_HB5, WF0_5G_HB6, XO_REQ, TOP_RST_N, SYS_WATCHDOG,
+                     EPHY_LED0_N_JTDO, EPHY_LED1_N_JTDI, EPHY_LED2_N_JTMS,
+                     EPHY_LED3_N_JTCLK, EPHY_LED4_N_JTRST_N, WF2G_LED_N,
+                     WF5G_LED_N, GPIO_9, GPIO_10, GPIO_11, GPIO_12, UART1_TXD,
+                     UART1_RXD, UART1_CTS, UART1_RTS, UART2_TXD, UART2_RXD,
+                     UART2_CTS, UART2_RTS, SMI_MDC, SMI_MDIO, PCIE_PERESET_N,
+                     PWM_0, GPIO_0, GPIO_1, GPIO_2, GPIO_3, GPIO_4, GPIO_5,
+                     GPIO_6, GPIO_7, GPIO_8, UART0_TXD, UART0_RXD, TOP_2G_CLK,
+                     TOP_2G_DATA, WF0_2G_HB0, WF0_2G_HB1, WF0_2G_HB2, WF0_2G_HB3,
+                     WF0_2G_HB4, WF0_2G_HB5, WF0_2G_HB6]
 
           bias-disable: true
 
index 3f8ad07c7cfdce4d569e562ef0a27ff44db07eed..0bf2d9f093b5c0406f7181ba0763adcd9874fe2f 100644 (file)
@@ -24,11 +24,11 @@ properties:
           - qcom,pm6150-gpio
           - qcom,pm6150l-gpio
           - qcom,pm6350-gpio
+          - qcom,pm6450-gpio
           - qcom,pm7250b-gpio
           - qcom,pm7325-gpio
           - qcom,pm7550ba-gpio
           - qcom,pm8005-gpio
-          - qcom,pm8008-gpio
           - qcom,pm8018-gpio
           - qcom,pm8019-gpio
           - qcom,pm8038-gpio
@@ -56,10 +56,12 @@ properties:
           - qcom,pma8084-gpio
           - qcom,pmc8180-gpio
           - qcom,pmc8180c-gpio
+          - qcom,pmd8028-gpio
           - qcom,pmi632-gpio
           - qcom,pmi8950-gpio
           - qcom,pmi8994-gpio
           - qcom,pmi8998-gpio
+          - qcom,pmih0108-gpio
           - qcom,pmk8350-gpio
           - qcom,pmk8550-gpio
           - qcom,pmm8155au-gpio
@@ -72,6 +74,7 @@ properties:
           - qcom,pmx55-gpio
           - qcom,pmx65-gpio
           - qcom,pmx75-gpio
+          - qcom,pmxr2230-gpio
 
       - enum:
           - qcom,spmi-gpio
@@ -122,7 +125,6 @@ allOf:
         compatible:
           contains:
             enum:
-              - qcom,pm8008-gpio
               - qcom,pmi8950-gpio
               - qcom,pmr735d-gpio
     then:
@@ -141,6 +143,7 @@ allOf:
               - qcom,pm8005-gpio
               - qcom,pm8450-gpio
               - qcom,pm8916-gpio
+              - qcom,pmd8028-gpio
               - qcom,pmk8350-gpio
               - qcom,pmr735a-gpio
               - qcom,pmr735b-gpio
@@ -198,6 +201,7 @@ allOf:
           contains:
             enum:
               - qcom,pm6350-gpio
+              - qcom,pm6450-gpio
               - qcom,pm8350c-gpio
     then:
       properties:
@@ -261,6 +265,7 @@ allOf:
               - qcom,pmc8180c-gpio
               - qcom,pmp8074-gpio
               - qcom,pms405-gpio
+              - qcom,pmxr2230-gpio
     then:
       properties:
         gpio-line-names:
@@ -300,6 +305,21 @@ allOf:
           minItems: 1
           maxItems: 7
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,pmih0108-gpio
+    then:
+      properties:
+        gpio-line-names:
+          minItems: 18
+          maxItems: 18
+        gpio-reserved-ranges:
+          minItems: 1
+          maxItems: 9
+
   - if:
       properties:
         compatible:
@@ -402,6 +422,10 @@ patternProperties:
             $ref: "#/$defs/qcom-pmic-gpio-state"
         additionalProperties: false
 
+  "-hog(-[0-9]+)?$":
+    required:
+      - gpio-hog
+
 $defs:
   qcom-pmic-gpio-state:
     type: object
@@ -417,11 +441,11 @@ $defs:
                  - gpio1-gpio10 for pm6150
                  - gpio1-gpio12 for pm6150l
                  - gpio1-gpio9 for pm6350
+                 - gpio1-gpio9 for pm6450
                  - gpio1-gpio12 for pm7250b
                  - gpio1-gpio10 for pm7325
                  - gpio1-gpio8 for pm7550ba
                  - gpio1-gpio4 for pm8005
-                 - gpio1-gpio2 for pm8008
                  - gpio1-gpio6 for pm8018
                  - gpio1-gpio12 for pm8038
                  - gpio1-gpio40 for pm8058
@@ -447,9 +471,11 @@ $defs:
                  - gpio1-gpio22 for pm8994
                  - gpio1-gpio26 for pm8998
                  - gpio1-gpio22 for pma8084
+                 - gpio1-gpio4 for pmd8028
                  - gpio1-gpio8 for pmi632
                  - gpio1-gpio2 for pmi8950
                  - gpio1-gpio10 for pmi8994
+                 - gpio1-gpio18 for pmih0108
                  - gpio1-gpio4 for pmk8350
                  - gpio1-gpio6 for pmk8550
                  - gpio1-gpio10 for pmm8155au
@@ -464,6 +490,7 @@ $defs:
                                             and gpio11)
                  - gpio1-gpio16 for pmx65
                  - gpio1-gpio16 for pmx75
+                 - gpio1-gpio12 for pmxr2230
 
         items:
           pattern: "^gpio([0-9]+)$"
@@ -545,6 +572,7 @@ $defs:
 
 examples:
   - |
+    #include <dt-bindings/gpio/gpio.h>
     #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
     pm8921_gpio: gpio@150 {
@@ -568,5 +596,12 @@ examples:
           power-source = <PM8921_GPIO_S4>;
         };
       };
+
+      otg-hog {
+        gpio-hog;
+        gpios = <35 GPIO_ACTIVE_HIGH>;
+        output-high;
+        line-name = "otg-gpio";
+      };
     };
 ...
index fe717d8d47982408001aad49d714b8e3faa8c501..43146709e2044d9dead08a6786b98672ef766629 100644 (file)
@@ -35,6 +35,7 @@ properties:
               - qcom,pm8038-mpp
               - qcom,pm8058-mpp
               - qcom,pm8821-mpp
+              - qcom,pm8901-mpp
               - qcom,pm8917-mpp
               - qcom,pm8921-mpp
           - const: qcom,ssbi-mpp
index bb675c8ec220f556f57aad532a462a1928d0f6f6..1b941b276b3f8dd60018ebf383818ae4799364d3 100644 (file)
@@ -72,40 +72,24 @@ $defs:
         description:
           Specify the alternative function to be configured for the specified
           pins.
-        enum: [ gpio, atest_char, atest_char0, atest_char1, atest_char2,
-                atest_char3, atest_usb0, atest_usb00, atest_usb01, atest_usb02,
-                atest_usb03, audio_ref, cam_mclk, cci_async, cci_i2c,
-                cci_timer0, cci_timer1, cci_timer2, cci_timer3, cci_timer4,
-                cmu_rng0, cmu_rng1, cmu_rng2, cmu_rng3, coex_uart1, cri_trng,
-                cri_trng0, cri_trng1, dbg_out, ddr_bist, ddr_pxi0, ddr_pxi1,
-                dp0_hot, gcc_gp1, gcc_gp2, gcc_gp3, host2wlan_sol, ibi_i3c,
-                jitter_bist, mdp_vsync, mdp_vsync0, mdp_vsync1, mdp_vsync2,
-                mdp_vsync3, mi2s0_data0, mi2s0_data1, mi2s0_sck, mi2s0_ws,
-                mi2s2_data0, mi2s2_data1, mi2s2_sck, mi2s2_ws, mi2s_mclk0,
-                mi2s_mclk1, nav_gpio0, nav_gpio1, nav_gpio2, pcie0_clk,
-                phase_flag0, phase_flag1, phase_flag10, phase_flag11,
-                phase_flag12, phase_flag13, phase_flag14, phase_flag15,
-                phase_flag16, phase_flag17, phase_flag18, phase_flag19,
-                phase_flag2, phase_flag20, phase_flag21, phase_flag22,
-                phase_flag23, phase_flag24, phase_flag25, phase_flag26,
-                phase_flag27, phase_flag28, phase_flag29, phase_flag3,
-                phase_flag30, phase_flag31, phase_flag4, phase_flag5,
-                phase_flag6, phase_flag7, phase_flag8, phase_flag9,
-                pll_bist, pll_clk, prng_rosc0, prng_rosc1, prng_rosc2,
-                prng_rosc3, qdss_cti, qdss_gpio, qdss_gpio0, qdss_gpio1,
-                qdss_gpio10, qdss_gpio11, qdss_gpio12, qdss_gpio13, qdss_gpio14,
-                qdss_gpio15, qdss_gpio2, qdss_gpio3, qdss_gpio4, qdss_gpio5,
-                qdss_gpio6, qdss_gpio7, qdss_gpio8, qdss_gpio9, qlink0_enable,
-                qlink0_request, qlink0_wmss, qlink1_enable, qlink1_request,
-                qlink1_wmss, qlink2_enable, qlink2_request, qlink2_wmss,
-                qup0_se0, qup0_se1, qup0_se2, qup0_se3, qup0_se4, qup0_se5,
-                qup0_se6, qup0_se7, qup1_se0, qup1_se1, qup1_se2, qup1_se3,
-                qup1_se4, qup1_se5, qup1_se6, sd_write, tb_trig, tgu_ch0,
-                tgu_ch1, tgu_ch2, tgu_ch3, tmess_prng0, tmess_prng1,
-                tmess_prng2, tmess_prng3, tsense_pwm1, tsense_pwm2, uim0_clk,
-                uim0_data, uim0_present, uim0_reset, uim1_clk, uim1_data,
-                uim1_present, uim1_reset, usb0_hs, usb0_phy, vfr_0, vfr_1,
-                vsense_trigger ]
+        enum: [ gpio, atest_char, atest_usb0, audio_ref_clk, cam_mclk,
+                cci_async_in0, cci_i2c, cci, cmu_rng, coex_uart1_rx,
+                coex_uart1_tx, cri_trng, dbg_out_clk, ddr_bist,
+                ddr_pxi0_test, ddr_pxi1_test, gcc_gp1_clk, gcc_gp2_clk,
+                gcc_gp3_clk, host2wlan_sol, ibi_i3c_qup0, ibi_i3c_qup1,
+                jitter_bist_ref, mdp_vsync0_out, mdp_vsync1_out,
+                mdp_vsync2_out, mdp_vsync3_out, mdp_vsync, nav,
+                pcie0_clk_req, phase_flag, pll_bist_sync, pll_clk_aux,
+                prng_rosc, qdss_cti_trig0, qdss_cti_trig1, qdss_gpio,
+                qlink0_enable, qlink0_request, qlink0_wmss_reset,
+                qup0_se0, qup0_se1, qup0_se2, qup0_se3, qup0_se4,
+                qup1_se0, qup1_se1, qup1_se2, qup1_se2_l2, qup1_se3,
+                qup1_se4, sd_write_protect, tb_trig_sdc1, tb_trig_sdc2,
+                tgu_ch0_trigout, tgu_ch1_trigout, tgu_ch2_trigout,
+                tgu_ch3_trigout, tmess_prng, tsense_pwm1_out,
+                tsense_pwm2_out, uim0, uim1, usb0_hs_ac, usb0_phy_ps,
+                vfr_0_mira, vfr_0_mirb, vfr_1, vsense_trigger_mirnat,
+                wlan1_adc_dtest0, wlan1_adc_dtest1 ]
 
         required:
           - pins
index 118549c25976570c760c9d5059735e9667ff5135..242dd13c276b5a7ae465fa0b2966fa9e378a523b 100644 (file)
@@ -73,6 +73,13 @@ properties:
     minItems: 1
     maxItems: 2
 
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: pclk
+
   wakeup-interrupt-controller:
     $ref: samsung,pinctrl-wakeup-interrupt.yaml
 
@@ -120,6 +127,20 @@ required:
 
 allOf:
   - $ref: pinctrl.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: google,gs101-pinctrl
+    then:
+      required:
+        - clocks
+        - clock-names
+    else:
+      properties:
+        clocks: false
+        clock-names: false
+
   - if:
       properties:
         compatible:
diff --git a/Bindings/platform/acer,aspire1-ec.yaml b/Bindings/platform/acer,aspire1-ec.yaml
new file mode 100644 (file)
index 0000000..7cb0134
--- /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/platform/acer,aspire1-ec.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Acer Aspire 1 Embedded Controller
+
+maintainers:
+  - Nikita Travkin <nikita@trvn.ru>
+
+description:
+  The Acer Aspire 1 laptop uses an embedded controller to control battery
+  and charging as well as to provide a set of misc features such as the
+  laptop lid status and HPD events for the USB Type-C DP alt mode.
+
+properties:
+  compatible:
+    const: acer,aspire1-ec
+
+  reg:
+    const: 0x76
+
+  interrupts:
+    maxItems: 1
+
+  connector:
+    $ref: /schemas/connector/usb-connector.yaml#
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        embedded-controller@76 {
+            compatible = "acer,aspire1-ec";
+            reg = <0x76>;
+
+            interrupts-extended = <&tlmm 30 IRQ_TYPE_LEVEL_LOW>;
+
+            connector {
+                compatible = "usb-c-connector";
+
+                port {
+                    ec_dp_in: endpoint {
+                        remote-endpoint = <&mdss_dp_out>;
+                    };
+                };
+            };
+        };
+    };
index a8d625f285f1f868bc834160df436ec0fdf3afca..86af3837899926868a5621f01a29838312f62d10 100644 (file)
@@ -34,7 +34,7 @@ properties:
 
   flt-gpios:
     maxItems: 1
-    description: Fault pin (active low, output)
+    description: Fault pin (active low, input)
 
   dcm-gpios:
     maxItems: 1
index d84268b59784ff8c3036d9fc593b82e1984424e6..96cd6f3c3546ffc7a94becc2397d5e4d363e4600 100644 (file)
@@ -25,6 +25,9 @@ properties:
       - items:
           - const: microchip,sama7g5-pwm
           - const: atmel,sama5d2-pwm
+      - items:
+          - const: microchip,sam9x7-pwm
+          - const: microchip,sam9x60-pwm
 
   reg:
     maxItems: 1
index 3afe1480df5200de49c59c0388d9a578972fc729..f7bc84b05a871b186905b8413795d1ab8fc20afc 100644 (file)
@@ -35,7 +35,6 @@ properties:
 
 required:
   - compatible
-  - '#pwm-cells'
 
 additionalProperties: false
 
index ba6325575ea040cc851bae789782f289d585abb5..9ee1946dc2e1202b1461b86322325e6cca3582af 100644 (file)
@@ -34,7 +34,6 @@ properties:
 required:
   - compatible
   - reg
-  - "#pwm-cells"
   - clocks
 
 additionalProperties: false
index a5c30880161933605bfbe3617dfa8d32286dcc7b..d515c09e102176930cc99f4635b32e67087006b3 100644 (file)
@@ -66,7 +66,6 @@ properties:
 required:
   - compatible
   - reg
-  - "#pwm-cells"
   - clocks
   - clock-names
 
index bc813fe74faba5ae50bc81ecb2f75f9e1d8803c9..195e4371196beb2bc1a331c35eb24aba32a5d598 100644 (file)
@@ -31,6 +31,7 @@ properties:
               - mediatek,mt8188-disp-pwm
               - mediatek,mt8192-disp-pwm
               - mediatek,mt8195-disp-pwm
+              - mediatek,mt8365-disp-pwm
           - const: mediatek,mt8183-disp-pwm
 
   reg:
@@ -58,7 +59,6 @@ properties:
 required:
   - compatible
   - reg
-  - "#pwm-cells"
   - clocks
   - clock-names
 
index 15e7fd98defc842ed29620ee8f8c51cfe187a9ea..9dc25f38fb9484e4a7f4c31a9eafda5efb738e4b 100644 (file)
@@ -29,7 +29,6 @@ required:
   - compatible
   - reg
   - clocks
-  - "#pwm-cells"
 
 additionalProperties: false
 
index 4d0b5964443dd304824d2cee12e5ee03ec22843d..7523a89a1773357ca7e94cb116bdf8b64439e173 100644 (file)
@@ -51,7 +51,6 @@ properties:
 required:
   - compatible
   - reg
-  - "#pwm-cells"
   - clocks
   - clock-names
 
diff --git a/Bindings/regulator/allwinner,sun20i-d1-system-ldos.yaml b/Bindings/regulator/allwinner,sun20i-d1-system-ldos.yaml
new file mode 100644 (file)
index 0000000..ec6695c
--- /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/regulator/allwinner,sun20i-d1-system-ldos.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Allwinner D1 System LDOs
+
+maintainers:
+  - Samuel Holland <samuel@sholland.org>
+
+description:
+  Allwinner D1 contains a pair of general-purpose LDOs which are designed to
+  supply power inside and outside the SoC. They are controlled by a register
+  within the system control MMIO space.
+
+properties:
+  compatible:
+    enum:
+      - allwinner,sun20i-d1-system-ldos
+
+  reg:
+    maxItems: 1
+
+patternProperties:
+  "^ldo[ab]$":
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+...
index 9ff9abf2691a5041b5b8b998fe440a357c15e966..51e2f6fb7a5a93f39a503072c0f5d26495064655 100644 (file)
@@ -41,6 +41,13 @@ allOf:
         - gpios
 
 properties:
+  $nodename:
+    anyOf:
+      - description: Preferred name is 'regulator-[0-9]v[0-9]'
+        pattern: '^regulator(-[0-9]+v[0-9]+|-[0-9a-z-]+)?$'
+      - description: Any name allowed
+        deprecated: true
+
   compatible:
     enum:
       - regulator-fixed
index 3d469b8e9774841163f4e9366ded26d0120dd87e..849bfa50bdbaba0ad1c7df3f810400441cac7c05 100644 (file)
@@ -28,6 +28,7 @@ properties:
       - nxp,pca9450a
       - nxp,pca9450b
       - nxp,pca9450c
+      - nxp,pca9451a
 
   reg:
     maxItems: 1
index 33ae1f786802eca931721f3c3feff5bdb2ce0f97..fcefc722ee2a495837fedba026669de97350c566 100644 (file)
@@ -26,6 +26,7 @@ properties:
           - enum:
               - qcom,pm4125-vbus-reg
               - qcom,pm6150-vbus-reg
+              - qcom,pm7250b-vbus-reg
               - qcom,pmi632-vbus-reg
           - const: qcom,pm8150b-vbus-reg
 
index 05f4ad2c7d3a1d854abda35271aaebb1f20b2dc3..6ceaffb45dc968041660b50080d9e2e6923da999 100644 (file)
@@ -30,6 +30,10 @@ properties:
   vdda-supply:
     description: phandle to the vdda input analog voltage.
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
index 0f29c75f42ea67201a7312d1fe4e40ea2a8236dd..dddea27596e9917b46e5ae4c977281c4efcb330b 100644 (file)
@@ -24,7 +24,7 @@ properties:
     type: object
 
     properties:
-      "SW":
+      SW:
         type: object
         $ref: regulator.yaml#
         unevaluatedProperties: false
index 507f98f73d235449cff58334cd9b07da2a0cdf3a..c5dc3c2820d71c8f91cbc485e0d6033b26267d71 100644 (file)
@@ -19,6 +19,7 @@ properties:
       - mediatek,mt8183-scp
       - mediatek,mt8186-scp
       - mediatek,mt8188-scp
+      - mediatek,mt8188-scp-dual
       - mediatek,mt8192-scp
       - mediatek,mt8195-scp
       - mediatek,mt8195-scp-dual
@@ -194,6 +195,7 @@ allOf:
       properties:
         compatible:
           enum:
+            - mediatek,mt8188-scp-dual
             - mediatek,mt8195-scp-dual
     then:
       properties:
index 971734085d512ec8bc7171b401e96198bee107d5..4d2055f283ac441770a5709b4bdf0f3c8b9bfd0e 100644 (file)
@@ -231,7 +231,6 @@ allOf:
             - const: snoc_axi
             - const: mnoc_axi
             - const: qdss
-        glink-edge: false
       required:
         - pll-supply
         - smd-edge
index 06f5f93f62a9449adf7d5dea9bc5d19629ad89f4..bca59394aef49210af53d0d1468f661df57bbcfd 100644 (file)
@@ -81,7 +81,11 @@ properties:
     $ref: /schemas/types.yaml#/definitions/phandle-array
     description:
       Phandle reference to a syscon representing TCSR followed by the
-      three offsets within syscon for q6, modem and nc halt registers.
+      offset within syscon for q6 halt register.
+    items:
+      - items:
+          - description: phandle to TCSR syscon region
+          - description: offset to the Q6 halt register
 
   qcom,smem-states:
     $ref: /schemas/types.yaml#/definitions/phandle-array
index 9381c7022ff499b99dc4179c93bce4960f78222c..f4118b2da5f655328e411cc8aea8790b2d614734 100644 (file)
@@ -89,7 +89,11 @@ properties:
     $ref: /schemas/types.yaml#/definitions/phandle-array
     description:
       Phandle reference to a syscon representing TCSR followed by the
-      three offsets within syscon for q6, modem and nc halt registers.
+      offset within syscon for q6 halt register.
+    items:
+      - items:
+          - description: phandle to TCSR syscon region
+          - description: offset to the Q6 halt register
 
   qcom,qmp:
     $ref: /schemas/types.yaml#/definitions/phandle
index 20df83a96ef30e59b3d3ad5ef35c928788ab6648..a3c74871457fc5d32cd99cc4b700fa5d692de2ce 100644 (file)
@@ -81,7 +81,11 @@ properties:
     $ref: /schemas/types.yaml#/definitions/phandle-array
     description:
       Phandle reference to a syscon representing TCSR followed by the
-      three offsets within syscon for q6, modem and nc halt registers.
+      offset within syscon for q6 halt register.
+    items:
+      - items:
+          - description: phandle to TCSR syscon region
+          - description: offset to the Q6 halt register
 
   qcom,smem-states:
     $ref: /schemas/types.yaml#/definitions/phandle-array
index 02c85b420c1a1bcf0932332b5a4c8551a4663ca4..63500b1a0f6fce5e8fb1c821009e6001fdfc036e 100644 (file)
@@ -61,6 +61,7 @@ properties:
     description:
       Three entries specifying the outgoing ipc bit used for signaling the
       remote processor.
+    deprecated: true
 
   qcom,smd-edge:
     $ref: /schemas/types.yaml#/definitions/uint32
@@ -111,7 +112,7 @@ examples:
         smd-edge {
             interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
 
-            qcom,ipc = <&apcs 8 8>;
+            mboxes = <&apcs 8>;
             qcom,smd-edge = <1>;
         };
     };
index 78aac69f10606edace8c3dc01e0135e3190cbf7a..6f13da11f59396260afde848d58659074977aaae 100644 (file)
@@ -18,11 +18,26 @@ description: |
 
 properties:
   compatible:
-    const: xlnx,zynqmp-r5fss
+    enum:
+      - xlnx,zynqmp-r5fss
+      - xlnx,versal-r5fss
+      - xlnx,versal-net-r52fss
+
+  "#address-cells":
+    const: 2
+
+  "#size-cells":
+    const: 2
+
+  ranges:
+    description: |
+      Standard ranges definition providing address translations for
+      local R5F TCM address spaces to bus addresses.
 
   xlnx,cluster-mode:
     $ref: /schemas/types.yaml#/definitions/uint32
     enum: [0, 1, 2]
+    default: 1
     description: |
       The RPU MPCore can operate in split mode (Dual-processor performance), Safety
       lock-step mode(Both RPU cores execute the same code in lock-step,
@@ -36,8 +51,16 @@ properties:
       1: lockstep mode (default)
       2: single cpu mode
 
+  xlnx,tcm-mode:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1]
+    description: |
+      Configure RPU TCM
+      0: split mode
+      1: lockstep mode
+
 patternProperties:
-  "^r5f-[a-f0-9]+$":
+  "^r(.*)@[0-9a-f]+$":
     type: object
     description: |
       The RPU is located in the Low Power Domain of the Processor Subsystem.
@@ -52,10 +75,22 @@ patternProperties:
 
     properties:
       compatible:
-        const: xlnx,zynqmp-r5f
+        enum:
+          - xlnx,zynqmp-r5f
+          - xlnx,versal-r5f
+          - xlnx,versal-net-r52f
+
+      reg:
+        minItems: 1
+        maxItems: 4
+
+      reg-names:
+        minItems: 1
+        maxItems: 4
 
       power-domains:
-        maxItems: 1
+        minItems: 2
+        maxItems: 5
 
       mboxes:
         minItems: 1
@@ -101,35 +136,235 @@ patternProperties:
 
     required:
       - compatible
+      - reg
+      - reg-names
       - power-domains
 
-    unevaluatedProperties: false
-
 required:
   - compatible
+  - "#address-cells"
+  - "#size-cells"
+  - ranges
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - xlnx,versal-net-r52fss
+    then:
+      properties:
+        xlnx,tcm-mode: false
+
+      patternProperties:
+        "^r52f@[0-9a-f]+$":
+          type: object
+
+          properties:
+            reg:
+              minItems: 1
+              items:
+                - description: ATCM internal memory
+                - description: BTCM internal memory
+                - description: CTCM internal memory
+
+            reg-names:
+              minItems: 1
+              items:
+                - const: atcm0
+                - const: btcm0
+                - const: ctcm0
+
+            power-domains:
+              minItems: 2
+              items:
+                - description: RPU core power domain
+                - description: ATCM power domain
+                - description: BTCM power domain
+                - description: CTCM power domain
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - xlnx,zynqmp-r5fss
+              - xlnx,versal-r5fss
+    then:
+      if:
+        properties:
+          xlnx,cluster-mode:
+            enum: [1, 2]
+      then:
+        properties:
+          xlnx,tcm-mode:
+            enum: [1]
+
+        patternProperties:
+          "^r5f@[0-9a-f]+$":
+            type: object
+
+            properties:
+              reg:
+                minItems: 1
+                items:
+                  - description: ATCM internal memory
+                  - description: BTCM internal memory
+                  - description: extra ATCM memory in lockstep mode
+                  - description: extra BTCM memory in lockstep mode
+
+              reg-names:
+                minItems: 1
+                items:
+                  - const: atcm0
+                  - const: btcm0
+                  - const: atcm1
+                  - const: btcm1
+
+              power-domains:
+                minItems: 2
+                items:
+                  - description: RPU core power domain
+                  - description: ATCM power domain
+                  - description: BTCM power domain
+                  - description: second ATCM power domain
+                  - description: second BTCM power domain
+
+        required:
+          - xlnx,tcm-mode
+
+      else:
+        properties:
+          xlnx,tcm-mode:
+            enum: [0]
+
+        patternProperties:
+          "^r5f@[0-9a-f]+$":
+            type: object
+
+            properties:
+              reg:
+                minItems: 1
+                items:
+                  - description: ATCM internal memory
+                  - description: BTCM internal memory
+
+              reg-names:
+                minItems: 1
+                items:
+                  - const: atcm0
+                  - const: btcm0
+
+              power-domains:
+                minItems: 2
+                items:
+                  - description: RPU core power domain
+                  - description: ATCM power domain
+                  - description: BTCM power domain
+
+        required:
+          - xlnx,tcm-mode
 
 additionalProperties: false
 
 examples:
   - |
-    remoteproc {
-        compatible = "xlnx,zynqmp-r5fss";
-        xlnx,cluster-mode = <1>;
-
-        r5f-0 {
-            compatible = "xlnx,zynqmp-r5f";
-            power-domains = <&zynqmp_firmware 0x7>;
-            memory-region = <&rproc_0_fw_image>, <&rpu0vdev0buffer>, <&rpu0vdev0vring0>, <&rpu0vdev0vring1>;
-            mboxes = <&ipi_mailbox_rpu0 0>, <&ipi_mailbox_rpu0 1>;
-            mbox-names = "tx", "rx";
+    #include <dt-bindings/power/xlnx-zynqmp-power.h>
+
+    // Split mode configuration
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        remoteproc@ffe00000 {
+            compatible = "xlnx,zynqmp-r5fss";
+            xlnx,cluster-mode = <0>;
+            xlnx,tcm-mode = <0>;
+
+            #address-cells = <2>;
+            #size-cells = <2>;
+            ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x10000>,
+                     <0x0 0x20000 0x0 0xffe20000 0x0 0x10000>,
+                     <0x1 0x0 0x0 0xffe90000 0x0 0x10000>,
+                     <0x1 0x20000 0x0 0xffeb0000 0x0 0x10000>;
+
+            r5f@0 {
+                compatible = "xlnx,zynqmp-r5f";
+                reg = <0x0 0x0 0x0 0x10000>, <0x0 0x20000 0x0 0x10000>;
+                reg-names = "atcm0", "btcm0";
+                power-domains = <&zynqmp_firmware PD_RPU_0>,
+                                <&zynqmp_firmware PD_R5_0_ATCM>,
+                                <&zynqmp_firmware PD_R5_0_BTCM>;
+                memory-region = <&rproc_0_fw_image>, <&rpu0vdev0buffer>,
+                                <&rpu0vdev0vring0>, <&rpu0vdev0vring1>;
+                mboxes = <&ipi_mailbox_rpu0 0>, <&ipi_mailbox_rpu0 1>;
+                mbox-names = "tx", "rx";
+            };
+
+            r5f@1 {
+                compatible = "xlnx,zynqmp-r5f";
+                reg = <0x1 0x0 0x0 0x10000>, <0x1 0x20000 0x0 0x10000>;
+                reg-names = "atcm0", "btcm0";
+                power-domains = <&zynqmp_firmware PD_RPU_1>,
+                                <&zynqmp_firmware PD_R5_1_ATCM>,
+                                <&zynqmp_firmware PD_R5_1_BTCM>;
+                memory-region = <&rproc_1_fw_image>, <&rpu1vdev0buffer>,
+                                <&rpu1vdev0vring0>, <&rpu1vdev0vring1>;
+                mboxes = <&ipi_mailbox_rpu1 0>, <&ipi_mailbox_rpu1 1>;
+                mbox-names = "tx", "rx";
+            };
         };
+    };
+
+  - |
+    //Lockstep configuration
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        remoteproc@ffe00000 {
+            compatible = "xlnx,zynqmp-r5fss";
+            xlnx,cluster-mode = <1>;
+            xlnx,tcm-mode = <1>;
+
+            #address-cells = <2>;
+            #size-cells = <2>;
+            ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x10000>,
+                     <0x0 0x20000 0x0 0xffe20000 0x0 0x10000>,
+                     <0x0 0x10000 0x0 0xffe10000 0x0 0x10000>,
+                     <0x0 0x30000 0x0 0xffe30000 0x0 0x10000>;
+
+            r5f@0 {
+                compatible = "xlnx,zynqmp-r5f";
+                reg = <0x0 0x0 0x0 0x10000>,
+                      <0x0 0x20000 0x0 0x10000>,
+                      <0x0 0x10000 0x0 0x10000>,
+                      <0x0 0x30000 0x0 0x10000>;
+                reg-names = "atcm0", "btcm0", "atcm1", "btcm1";
+                power-domains = <&zynqmp_firmware PD_RPU_0>,
+                                <&zynqmp_firmware PD_R5_0_ATCM>,
+                                <&zynqmp_firmware PD_R5_0_BTCM>,
+                                <&zynqmp_firmware PD_R5_1_ATCM>,
+                                <&zynqmp_firmware PD_R5_1_BTCM>;
+                memory-region = <&rproc_0_fw_image>, <&rpu0vdev0buffer>,
+                                <&rpu0vdev0vring0>, <&rpu0vdev0vring1>;
+                mboxes = <&ipi_mailbox_rpu0 0>, <&ipi_mailbox_rpu0 1>;
+                mbox-names = "tx", "rx";
+            };
 
-        r5f-1 {
-            compatible = "xlnx,zynqmp-r5f";
-            power-domains = <&zynqmp_firmware 0x8>;
-            memory-region = <&rproc_1_fw_image>, <&rpu1vdev0buffer>, <&rpu1vdev0vring0>, <&rpu1vdev0vring1>;
-            mboxes = <&ipi_mailbox_rpu1 0>, <&ipi_mailbox_rpu1 1>;
-            mbox-names = "tx", "rx";
+            r5f@1 {
+                compatible = "xlnx,zynqmp-r5f";
+                reg = <0x1 0x0 0x0 0x10000>, <0x1 0x20000 0x0 0x10000>;
+                reg-names = "atcm0", "btcm0";
+                power-domains = <&zynqmp_firmware PD_RPU_1>,
+                                <&zynqmp_firmware PD_R5_1_ATCM>,
+                                <&zynqmp_firmware PD_R5_1_BTCM>;
+                memory-region = <&rproc_1_fw_image>, <&rpu1vdev0buffer>,
+                                <&rpu1vdev0vring0>, <&rpu1vdev0vring1>;
+                mboxes = <&ipi_mailbox_rpu1 0>, <&ipi_mailbox_rpu1 1>;
+                mbox-names = "tx", "rx";
+            };
         };
     };
 ...
index cc4d92f0a1bf8233879c9f9fc89aab78b43315ba..b672f85219499890abd7cbf721041c970c63c146 100644 (file)
@@ -26,6 +26,7 @@ properties:
 
       - items:
           - enum:
+              - milkv,mars
               - starfive,visionfive-2-v1.2a
               - starfive,visionfive-2-v1.3b
           - const: starfive,jh7110
diff --git a/Bindings/rng/microsoft,vmgenid.yaml b/Bindings/rng/microsoft,vmgenid.yaml
new file mode 100644 (file)
index 0000000..8f20dee
--- /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/rng/microsoft,vmgenid.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Virtual Machine Generation ID
+
+maintainers:
+  - Jason A. Donenfeld <Jason@zx2c4.com>
+
+description:
+  Firmwares or hypervisors can use this devicetree to describe an
+  interrupt and a shared resource to inject a Virtual Machine Generation ID.
+  Virtual Machine Generation ID is a globally unique identifier (GUID) and
+  the devicetree binding follows VMGenID specification defined in
+  http://go.microsoft.com/fwlink/?LinkId=260709.
+
+properties:
+  compatible:
+    const: microsoft,vmgenid
+
+  reg:
+    description:
+      Specifies a 16-byte VMGenID in endianness-agnostic hexadecimal format.
+    maxItems: 1
+
+  interrupts:
+    description:
+      Interrupt used to notify that a new VMGenID is available.
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    rng@80000000 {
+      compatible = "microsoft,vmgenid";
+      reg = <0x80000000 0x1000>;
+      interrupts = <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
+    };
+
+...
index 717f6b321f884d39dc197796da8a4e33e59c3f1d..340d01d481d12ce8664a60db42182ddaf0d1385b 100644 (file)
@@ -37,6 +37,10 @@ properties:
     description: If set, the RNG configuration in RNG_CR, RNG_HTCR and
                   RNG_NSCR will be locked.
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
diff --git a/Bindings/rtc/alphascale,asm9260-rtc.txt b/Bindings/rtc/alphascale,asm9260-rtc.txt
deleted file mode 100644 (file)
index 76ebca5..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-* Alphascale asm9260 SoC Real Time Clock
-
-Required properties:
-- compatible: Should be "alphascale,asm9260-rtc"
-- reg: Physical base address of the controller and length
-       of memory mapped region.
-- interrupts: IRQ line for the RTC.
-- clocks: Reference to the clock entry.
-- clock-names: should contain:
-  * "ahb" for the SoC RTC clock
-
-Example:
-rtc0: rtc@800a0000 {
-       compatible = "alphascale,asm9260-rtc";
-       reg = <0x800a0000 0x100>;
-       clocks = <&acc CLKID_AHB_RTC>;
-       clock-names = "ahb";
-       interrupts = <2>;
-};
diff --git a/Bindings/rtc/alphascale,asm9260-rtc.yaml b/Bindings/rtc/alphascale,asm9260-rtc.yaml
new file mode 100644 (file)
index 0000000..f955a7f
--- /dev/null
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/alphascale,asm9260-rtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Alphascale asm9260 SoC Real Time Clock
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+allOf:
+  - $ref: rtc.yaml#
+
+properties:
+  compatible:
+    const: alphascale,asm9260-rtc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: ahb
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/alphascale,asm9260.h>
+
+    rtc@800a0000 {
+        compatible = "alphascale,asm9260-rtc";
+        reg = <0x800a0000 0x100>;
+        clocks = <&acc CLKID_AHB_RTC>;
+        clock-names = "ahb";
+        interrupts = <2>;
+    };
diff --git a/Bindings/rtc/armada-380-rtc.txt b/Bindings/rtc/armada-380-rtc.txt
deleted file mode 100644 (file)
index c3c9a12..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-* Real Time Clock of the Armada 38x/7K/8K SoCs
-
-RTC controller for the Armada 38x, 7K and 8K SoCs
-
-Required properties:
-- compatible : Should be one of the following:
-       "marvell,armada-380-rtc" for Armada 38x SoC
-       "marvell,armada-8k-rtc" for Aramda 7K/8K SoCs
-- reg: a list of base address and size pairs, one for each entry in
-  reg-names
-- reg names: should contain:
-  * "rtc" for the RTC registers
-  * "rtc-soc" for the SoC related registers and among them the one
-    related to the interrupt.
-- interrupts: IRQ line for the RTC.
-
-Example:
-
-rtc@a3800 {
-       compatible = "marvell,armada-380-rtc";
-       reg = <0xa3800 0x20>, <0x184a0 0x0c>;
-       reg-names = "rtc", "rtc-soc";
-       interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
-};
diff --git a/Bindings/rtc/digicolor-rtc.txt b/Bindings/rtc/digicolor-rtc.txt
deleted file mode 100644 (file)
index d464986..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Conexant Digicolor Real Time Clock controller
-
-This binding currently supports the CX92755 SoC.
-
-Required properties:
-- compatible: should be "cnxt,cx92755-rtc"
-- reg: physical base address of the controller and length of memory mapped
-  region.
-- interrupts: rtc alarm interrupt
-
-Example:
-
-       rtc@f0000c30 {
-               compatible = "cnxt,cx92755-rtc";
-               reg = <0xf0000c30 0x18>;
-               interrupts = <25>;
-       };
diff --git a/Bindings/rtc/fsl,stmp3xxx-rtc.yaml b/Bindings/rtc/fsl,stmp3xxx-rtc.yaml
new file mode 100644 (file)
index 0000000..534de41
--- /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/rtc/fsl,stmp3xxx-rtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMP3xxx/i.MX28 Time Clock Controller
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+allOf:
+  - $ref: rtc.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - fsl,imx28-rtc
+              - fsl,imx23-rtc
+          - const: fsl,stmp3xxx-rtc
+      - const: fsl,stmp3xxx-rtc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  stmp,crystal-freq:
+    description:
+      Override crystal frequency as determined from fuse bits.
+      Use <0> for "no crystal".
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 32000, 32768]
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    rtc@80056000 {
+        compatible = "fsl,imx28-rtc", "fsl,stmp3xxx-rtc";
+        reg = <0x80056000 2000>;
+        interrupts = <29>;
+    };
diff --git a/Bindings/rtc/google,goldfish-rtc.txt b/Bindings/rtc/google,goldfish-rtc.txt
deleted file mode 100644 (file)
index 634312d..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish RTC
-
-Android Goldfish RTC device used by Android emulator.
-
-Required properties:
-
-- compatible : should contain "google,goldfish-rtc"
-- reg        : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
-       goldfish_timer@9020000 {
-               compatible = "google,goldfish-rtc";
-               reg = <0x9020000 0x1000>;
-               interrupts = <0x3>;
-       };
diff --git a/Bindings/rtc/lpc32xx-rtc.txt b/Bindings/rtc/lpc32xx-rtc.txt
deleted file mode 100644 (file)
index a87a1e9..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-* NXP LPC32xx SoC Real Time Clock controller
-
-Required properties:
-- compatible: must be "nxp,lpc3220-rtc"
-- reg: physical base address of the controller and length of memory mapped
-  region.
-- interrupts: The RTC interrupt
-
-Example:
-
-       rtc@40024000 {
-               compatible = "nxp,lpc3220-rtc";
-               reg = <0x40024000 0x1000>;
-               interrupts = <52 0>;
-       };
diff --git a/Bindings/rtc/marvell,armada-380-rtc.yaml b/Bindings/rtc/marvell,armada-380-rtc.yaml
new file mode 100644 (file)
index 0000000..adf3ba0
--- /dev/null
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/marvell,armada-380-rtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RTC controller for the Armada 38x, 7K and 8K SoCs
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+allOf:
+  - $ref: rtc.yaml#
+
+properties:
+  compatible:
+    enum:
+      - marvell,armada-380-rtc
+      - marvell,armada-8k-rtc
+
+  reg:
+    items:
+      - description: RTC base address size
+      - description: Base address and size of SoC related registers
+
+  reg-names:
+    items:
+      - const: rtc
+      - const: rtc-soc
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    rtc@a3800 {
+        compatible = "marvell,armada-380-rtc";
+        reg = <0xa3800 0x20>, <0x184a0 0x0c>;
+        reg-names = "rtc", "rtc-soc";
+        interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
+    };
diff --git a/Bindings/rtc/marvell,pxa-rtc.yaml b/Bindings/rtc/marvell,pxa-rtc.yaml
new file mode 100644 (file)
index 0000000..43d6868
--- /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/rtc/marvell,pxa-rtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: PXA Real Time Clock
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+allOf:
+  - $ref: rtc.yaml#
+
+properties:
+  compatible:
+    const: marvell,pxa-rtc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: 1 Hz
+      - description: Alarm
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    rtc@40900000 {
+        compatible = "marvell,pxa-rtc";
+        reg = <0x40900000 0x3c>;
+        interrupts = <30>, <31>;
+    };
diff --git a/Bindings/rtc/maxim,ds1742.txt b/Bindings/rtc/maxim,ds1742.txt
deleted file mode 100644 (file)
index d0f937c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-* Maxim (Dallas) DS1742/DS1743 Real Time Clock
-
-Required properties:
-- compatible: Should contain "maxim,ds1742".
-- reg: Physical base address of the RTC and length of memory
-  mapped region.
-
-Example:
-       rtc: rtc@10000000 {
-               compatible = "maxim,ds1742";
-               reg = <0x10000000 0x800>;
-       };
diff --git a/Bindings/rtc/nxp,lpc1788-rtc.txt b/Bindings/rtc/nxp,lpc1788-rtc.txt
deleted file mode 100644 (file)
index 3c97bd1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-NXP LPC1788 real-time clock
-
-The LPC1788 RTC provides calendar and clock functionality
-together with periodic tick and alarm interrupt support.
-
-Required properties:
-- compatible   : must contain "nxp,lpc1788-rtc"
-- reg          : Specifies base physical address and size of the registers.
-- interrupts   : A single interrupt specifier.
-- clocks       : Must contain clock specifiers for rtc and register clock
-- clock-names  : Must contain "rtc" and "reg"
-  See ../clocks/clock-bindings.txt for details.
-
-Example:
-rtc: rtc@40046000 {
-       compatible = "nxp,lpc1788-rtc";
-       reg = <0x40046000 0x1000>;
-       interrupts = <47>;
-       clocks = <&creg_clk 0>, <&ccu1 CLK_CPU_BUS>;
-       clock-names = "rtc", "reg";
-};
diff --git a/Bindings/rtc/nxp,lpc1788-rtc.yaml b/Bindings/rtc/nxp,lpc1788-rtc.yaml
new file mode 100644 (file)
index 0000000..e88b847
--- /dev/null
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/nxp,lpc1788-rtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP LPC1788 real-time clock
+
+description:
+  The LPC1788 RTC provides calendar and clock functionality
+  together with periodic tick and alarm interrupt support.
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+allOf:
+  - $ref: rtc.yaml#
+
+properties:
+  compatible:
+    const: nxp,lpc1788-rtc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: RTC clock
+      - description: Register clock
+
+  clock-names:
+    items:
+      - const: rtc
+      - const: reg
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/lpc18xx-ccu.h>
+
+    rtc@40046000 {
+        compatible = "nxp,lpc1788-rtc";
+        reg = <0x40046000 0x1000>;
+        clocks = <&creg_clk 0>, <&ccu1 CLK_CPU_BUS>;
+        clock-names = "rtc", "reg";
+        interrupts = <47>;
+    };
diff --git a/Bindings/rtc/orion-rtc.txt b/Bindings/rtc/orion-rtc.txt
deleted file mode 100644 (file)
index 3bf63ff..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-* Mvebu Real Time Clock
-
-RTC controller for the Kirkwood, the Dove, the Armada 370 and the
-Armada XP SoCs
-
-Required properties:
-- compatible : Should be "marvell,orion-rtc"
-- reg: physical base address of the controller and length of memory mapped
-  region.
-- interrupts: IRQ line for the RTC.
-
-Example:
-
-rtc@10300 {
-        compatible = "marvell,orion-rtc";
-        reg = <0xd0010300 0x20>;
-        interrupts = <50>;
-};
diff --git a/Bindings/rtc/pxa-rtc.txt b/Bindings/rtc/pxa-rtc.txt
deleted file mode 100644 (file)
index 8c6672a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-* PXA RTC
-
-PXA specific RTC driver.
-
-Required properties:
-- compatible : Should be "marvell,pxa-rtc"
-
-Examples:
-
-rtc@40900000 {
-       compatible = "marvell,pxa-rtc";
-       reg = <0x40900000 0x3c>;
-       interrupts = <30 31>;
-};
diff --git a/Bindings/rtc/rtc-aspeed.txt b/Bindings/rtc/rtc-aspeed.txt
deleted file mode 100644 (file)
index 2e956b3..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-ASPEED BMC RTC
-==============
-
-Required properties:
- - compatible: should be one of the following
-   * aspeed,ast2400-rtc for the ast2400
-   * aspeed,ast2500-rtc for the ast2500
-   * aspeed,ast2600-rtc for the ast2600
-
- - reg: physical base address of the controller and length of memory mapped
-   region
-
- - interrupts: The interrupt number
-
-Example:
-
-   rtc@1e781000 {
-           compatible = "aspeed,ast2400-rtc";
-           reg = <0x1e781000 0x18>;
-           interrupts = <22>;
-           status = "disabled";
-   };
diff --git a/Bindings/rtc/spear-rtc.txt b/Bindings/rtc/spear-rtc.txt
deleted file mode 100644 (file)
index fecf8e4..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-* SPEAr RTC
-
-Required properties:
-- compatible : "st,spear600-rtc"
-- reg : Address range of the rtc registers
-- interrupt: Should contain the rtc interrupt number
-
-Example:
-
-       rtc@fc000000 {
-               compatible = "st,spear600-rtc";
-               reg = <0xfc000000 0x1000>;
-               interrupt-parent = <&vic1>;
-               interrupts = <12>;
-       };
diff --git a/Bindings/rtc/stmp3xxx-rtc.txt b/Bindings/rtc/stmp3xxx-rtc.txt
deleted file mode 100644 (file)
index fa6a942..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-* STMP3xxx/i.MX28 Time Clock controller
-
-Required properties:
-- compatible: should be one of the following.
-    * "fsl,stmp3xxx-rtc"
-- reg: physical base address of the controller and length of memory mapped
-  region.
-- interrupts: rtc alarm interrupt
-
-Optional properties:
-- stmp,crystal-freq: override crystal frequency as determined from fuse bits.
-  Only <32000> and <32768> are possible for the hardware.  Use <0> for
-  "no crystal".
-
-Example:
-
-rtc@80056000 {
-       compatible = "fsl,imx28-rtc", "fsl,stmp3xxx-rtc";
-       reg = <0x80056000 2000>;
-       interrupts = <29>;
-};
index c9e3c5262c21a243f51b319f1a366ce8c0627f71..fffd759c603f843fed26f56cd9d9efa791523447 100644 (file)
@@ -24,6 +24,14 @@ properties:
       - abracon,abb5zes3
       # AB-RTCMC-32.768kHz-EOZ9: Real Time Clock/Calendar Module with I2C Interface
       - abracon,abeoz9
+      # ASPEED BMC ast2400 Real-time Clock
+      - aspeed,ast2400-rtc
+      # ASPEED BMC ast2500 Real-time Clock
+      - aspeed,ast2500-rtc
+      # ASPEED BMC ast2600 Real-time Clock
+      - aspeed,ast2600-rtc
+      # Conexant Digicolor Real Time Clock Controller
+      - cnxt,cx92755-rtc
       # I2C, 32-Bit Binary Counter Watchdog RTC with Trickle Charger and Reset Input/Output
       - dallas,ds1374
       # Dallas DS1672 Real-time Clock
@@ -38,19 +46,28 @@ properties:
       - epson,rx8025
       - epson,rx8035
       # I2C-BUS INTERFACE REAL TIME CLOCK MODULE with Battery Backed RAM
+      - epson,rx8111
       - epson,rx8571
       # I2C-BUS INTERFACE REAL TIME CLOCK MODULE
       - 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
+      - maxim,ds1742
       # SPI-BUS INTERFACE REAL TIME CLOCK MODULE
       - maxim,mcp795
       # Real Time Clock Module with I2C-Bus
       - microcrystal,rv3029
       # Real Time Clock
       - 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
@@ -67,6 +84,10 @@ properties:
       - ricoh,rv5c387a
       # 2-wire CMOS real-time clock
       - sii,s35390a
+      # ST SPEAr Real-time Clock
+      - st,spear600-rtc
+      # VIA/Wondermedia VT8500 Real-time Clock
+      - via,vt8500-rtc
       # I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
       - whwave,sd3078
       # Xircom X1205 I2C RTC
diff --git a/Bindings/rtc/twl-rtc.txt b/Bindings/rtc/twl-rtc.txt
deleted file mode 100644 (file)
index 8f9a94f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-* Texas Instruments TWL4030/6030 RTC
-
-Required properties:
-- compatible : Should be "ti,twl4030-rtc"
-- interrupts : Should be the interrupt number.
-
-Example:
-       rtc {
-               compatible = "ti,twl4030-rtc";
-               interrupts = <11>;
-       };
diff --git a/Bindings/rtc/via,vt8500-rtc.txt b/Bindings/rtc/via,vt8500-rtc.txt
deleted file mode 100644 (file)
index 3c0484c..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-VIA/Wondermedia VT8500 Realtime Clock Controller
------------------------------------------------------
-
-Required properties:
-- compatible : "via,vt8500-rtc"
-- reg : Should contain 1 register ranges(address and length)
-- interrupts : alarm interrupt
-
-Example:
-
-       rtc@d8100000 {
-               compatible = "via,vt8500-rtc";
-               reg = <0xd8100000 0x10000>;
-               interrupts = <48>;
-       };
diff --git a/Bindings/serial/actions,owl-uart.txt b/Bindings/serial/actions,owl-uart.txt
deleted file mode 100644 (file)
index aa873ea..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Actions Semi Owl UART
-
-Required properties:
-- compatible :  "actions,s500-uart", "actions,owl-uart" for S500
-                "actions,s900-uart", "actions,owl-uart" for S900
-- reg        :  Offset and length of the register set for the device.
-- interrupts :  Should contain UART interrupt.
-
-
-Example:
-
-               uart3: serial@b0126000 {
-                       compatible = "actions,s500-uart", "actions,owl-uart";
-                       reg = <0xb0126000 0x1000>;
-                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-               };
diff --git a/Bindings/serial/actions,owl-uart.yaml b/Bindings/serial/actions,owl-uart.yaml
new file mode 100644 (file)
index 0000000..ab1c451
--- /dev/null
@@ -0,0 +1,48 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/serial/actions,owl-uart.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Actions Semi Owl UART
+
+maintainers:
+  - Kanak Shilledar <kanakshilledar111@protonmail.com>
+
+allOf:
+  - $ref: serial.yaml
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - actions,s500-uart
+          - actions,s900-uart
+      - const: actions,owl-uart
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/actions,s500-cmu.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    uart0: serial@b0126000 {
+        compatible = "actions,s500-uart", "actions,owl-uart";
+        reg = <0xb0126000 0x1000>;
+        clocks = <&cmu CLK_UART0>;
+        interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+    };
index 2e189e548327daa360dcd553f807ff52acd7f002..0565fb7649c5b3f150c5066061f816b36ee023df 100644 (file)
@@ -54,7 +54,9 @@ properties:
           - const: amlogic,meson-gx-uart
       - description: UART controller on S4 compatible SoCs
         items:
-          - const: amlogic,t7-uart
+          - enum:
+              - amlogic,a4-uart
+              - amlogic,t7-uart
           - const: amlogic,meson-s4-uart
 
   reg:
diff --git a/Bindings/serial/brcm,bcm2835-aux-uart.txt b/Bindings/serial/brcm,bcm2835-aux-uart.txt
deleted file mode 100644 (file)
index b5cc629..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-* BCM2835 AUXILIAR UART
-
-Required properties:
-
-- compatible: "brcm,bcm2835-aux-uart"
-- reg: The base address of the UART register bank.
-- interrupts: A single interrupt specifier.
-- clocks: Clock driving the hardware; used to figure out the baud rate
-  divisor.
-
-Example:
-
-       uart1: serial@7e215040 {
-               compatible = "brcm,bcm2835-aux-uart";
-               reg = <0x7e215040 0x40>;
-               interrupts = <1 29>;
-               clocks = <&aux BCM2835_AUX_CLOCK_UART>;
-       };
diff --git a/Bindings/serial/brcm,bcm2835-aux-uart.yaml b/Bindings/serial/brcm,bcm2835-aux-uart.yaml
new file mode 100644 (file)
index 0000000..6b72459
--- /dev/null
@@ -0,0 +1,46 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/serial/brcm,bcm2835-aux-uart.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: BCM2835 AUXILIARY UART
+
+maintainers:
+  - Pratik Farkase <pratikfarkase94@gmail.com>
+  - Florian Fainelli <florian.fainelli@broadcom.com>
+  - Stefan Wahren <wahrenst@gmx.net>
+
+allOf:
+  - $ref: serial.yaml
+
+properties:
+  compatible:
+    const: brcm,bcm2835-aux-uart
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/bcm2835-aux.h>
+    serial@7e215040 {
+        compatible = "brcm,bcm2835-aux-uart";
+        reg = <0x7e215040 0x40>;
+        interrupts = <1 29>;
+        clocks = <&aux BCM2835_AUX_CLOCK_UART>;
+    };
index 2129247d7c816d5b33e600af41b633aef7efa295..d7f047b0bf24c444e2d81e0156fb01a89207ee2a 100644 (file)
@@ -46,6 +46,9 @@ properties:
   power-domains:
     maxItems: 1
 
+  resets:
+    maxItems: 1
+
 required:
   - compatible
   - reg
index 7a105551fa6a89a3e2434a5410d315e409bccab5..4171f524a928cce87e50feff5ef110f9d0b06ac2 100644 (file)
@@ -23,7 +23,9 @@ properties:
     oneOf:
       - const: fsl,s32v234-linflexuart
       - items:
-          - const: nxp,s32g2-linflexuart
+          - enum:
+              - nxp,s32g2-linflexuart
+              - nxp,s32g3-linflexuart
           - const: fsl,s32v234-linflexuart
 
   reg:
index 4610a5bd580c23891b5a6bdba810dfa6e2ab9fe2..f3a3eb2831e9fd5fb1a1192b906172cebf6502d1 100644 (file)
@@ -68,6 +68,7 @@ properties:
               - renesas,scif-r8a779a0     # R-Car V3U
               - renesas,scif-r8a779f0     # R-Car S4-8
               - renesas,scif-r8a779g0     # R-Car V4H
+              - renesas,scif-r8a779h0     # R-Car V4M
           - const: renesas,rcar-gen4-scif # R-Car Gen4
           - const: renesas,scif           # generic SCIF compatible UART
 
index 62f97da1b2fd7c944442c17127897d154d6c4acb..2ed526139269c2d3fcadfcd135308ac2ec43c8d6 100644 (file)
@@ -73,6 +73,10 @@ properties:
     enum: [1, 2, 4, 8, 12, 14, 16]
     default: 8
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 allOf:
   - $ref: rs485.yaml#
   - $ref: serial.yaml#
index 4310bae6c58ef320a3af1abf01a86c64719a6afa..4512390f90f04387f7aef36a6416bb96615ef0f1 100644 (file)
@@ -58,20 +58,6 @@ patternProperties:
 required:
   - compatible
 
-allOf:
-  - if:
-      not:
-        properties:
-          compatible:
-            contains:
-              enum:
-                - qcom,sm8450-pmic-glink
-                - qcom,sm8550-pmic-glink
-                - qcom,x1e80100-pmic-glink
-    then:
-      properties:
-        orientation-gpios: false
-
 additionalProperties: false
 
 examples:
index 74bb92e315541343ece7680d3629669516f5d424..fd6db0ca98eb7e56d7399f55c408844d5e782805 100644 (file)
@@ -116,8 +116,8 @@ examples:
 
             bluetooth {
                 compatible = "qcom,wcnss-bt";
-                /* BD address 00:11:22:33:44:55 */
-                local-bd-address = [ 55 44 33 22 11 00 ];
+                /* Updated by boot firmware (little-endian order) */
+                local-bd-address = [ 00 00 00 00 00 00 ];
             };
 
             wifi {
diff --git a/Bindings/soc/renesas/renesas,r9a09g057-sys.yaml b/Bindings/soc/renesas/renesas,r9a09g057-sys.yaml
new file mode 100644 (file)
index 0000000..ebbf0c9
--- /dev/null
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/renesas/renesas,r9a09g057-sys.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas RZ/V2H(P) System Controller (SYS)
+
+maintainers:
+  - Geert Uytterhoeven <geert+renesas@glider.be>
+
+description: |
+  The RZ/V2H(P) SYS (System Controller) controls the overall
+  configuration of the LSI and supports the following functions,
+  - Trust zone control
+  - Extend access by specific masters to address beyond 4GB space
+  - GBETH configuration
+  - Control of settings and states of SRAM/PCIe/CM33/CA55/CR8/xSPI/ADC/TSU
+  - LSI version
+  - WDT stop control
+  - General registers
+
+properties:
+  compatible:
+    const: renesas,r9a09g057-sys
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - resets
+
+additionalProperties: false
+
+examples:
+  - |
+    sys: system-controller@10430000 {
+        compatible = "renesas,r9a09g057-sys";
+        reg = <0x10430000 0x10000>;
+        clocks = <&cpg 1>;
+        resets = <&cpg 1>;
+    };
index c1ce4da2dc325e586fb8cf7c0d1d0400be321daf..09d3ce97efa2a3daabf141fa5dbac505156ed103 100644 (file)
@@ -513,6 +513,14 @@ properties:
               - renesas,rzv2mevk2   # RZ/V2M Eval Board v2.0
           - const: renesas,r9a09g011
 
+      - description: RZ/V2H(P) (R9A09G057)
+        items:
+          - enum:
+              - renesas,r9a09g057h41 # RZ/V2H
+              - renesas,r9a09g057h42 # RZ/V2H with Mali-G31 support
+              - renesas,r9a09g057h44 # RZ/V2HP with Mali-G31 + Mali-C55 support
+          - const: renesas,r9a09g057
+
 additionalProperties: true
 
 ...
index c0c6ce8fc7863e1bc942fa3cea9c66906d1cdca1..3ca220582897f5b36dbeb8aeccbadfa6bdd9bd98 100644 (file)
@@ -15,6 +15,7 @@ properties:
       - items:
           - enum:
               - google,gs101-apm-sysreg
+              - google,gs101-hsi2-sysreg
               - google,gs101-peric0-sysreg
               - google,gs101-peric1-sysreg
               - samsung,exynos3-sysreg
@@ -72,6 +73,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - google,gs101-hsi2-sysreg
               - google,gs101-peric0-sysreg
               - google,gs101-peric1-sysreg
               - samsung,exynos850-cmgp-sysreg
index b86f6f53ca95da42fa795ccd19bc769344c8e03c..7140c312d8986b0b733c519b1e89e360d9602add 100644 (file)
@@ -365,9 +365,9 @@ allOf:
 additionalProperties: false
 
 dependencies:
-  "nvidia,suspend-mode": ["nvidia,core-pwr-off-time", "nvidia,cpu-pwr-off-time"]
-  "nvidia,core-pwr-off-time": ["nvidia,core-pwr-good-time"]
-  "nvidia,cpu-pwr-off-time": ["nvidia,cpu-pwr-good-time"]
+  nvidia,suspend-mode: ["nvidia,core-pwr-off-time", "nvidia,cpu-pwr-off-time"]
+  nvidia,core-pwr-off-time: ["nvidia,core-pwr-good-time"]
+  nvidia,cpu-pwr-off-time: ["nvidia,cpu-pwr-good-time"]
 
 examples:
   - |
diff --git a/Bindings/sound/davinci-mcbsp.txt b/Bindings/sound/davinci-mcbsp.txt
deleted file mode 100644 (file)
index 3ffc256..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-Texas Instruments DaVinci McBSP module
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This binding describes the "Multi-channel Buffered Serial Port" (McBSP)
-audio interface found in some TI DaVinci processors like the OMAP-L138 or AM180x.
-
-
-Required properties:
-~~~~~~~~~~~~~~~~~~~~
-- compatible :
-        "ti,da850-mcbsp" : for DA850, AM180x and OPAM-L138 platforms
-
-- reg : physical base address and length of the controller memory mapped
-        region(s).
-- reg-names : Should contain:
-        * "mpu" for the main registers (required).
-        * "dat" for the data FIFO (optional).
-
-- dmas: three element list of DMA controller phandles, DMA request line and
-       TC channel ordered triplets.
-- dma-names: identifier string for each DMA request line in the dmas property.
-       These strings correspond 1:1 with the ordered pairs in dmas. The dma
-       identifiers must be "rx" and "tx".
-
-Optional properties:
-~~~~~~~~~~~~~~~~~~~~
-- interrupts : Interrupt numbers for McBSP
-- interrupt-names : Known interrupt names are "rx" and "tx"
-
-- pinctrl-0: Should specify pin control group used for this controller.
-- pinctrl-names: Should contain only one value - "default", for more details
-        please refer to pinctrl-bindings.txt
-
-Example (AM1808):
-~~~~~~~~~~~~~~~~~
-
-mcbsp0: mcbsp@1d10000 {
-       compatible = "ti,da850-mcbsp";
-       pinctrl-names = "default";
-       pinctrl-0 = <&mcbsp0_pins>;
-
-       reg =   <0x00110000 0x1000>,
-               <0x00310000 0x1000>;
-       reg-names = "mpu", "dat";
-       interrupts = <97 98>;
-       interrupt-names = "rx", "tx";
-       dmas = <&edma0 3 1
-               &edma0 2 1>;
-       dma-names = "tx", "rx";
-};
diff --git a/Bindings/sound/davinci-mcbsp.yaml b/Bindings/sound/davinci-mcbsp.yaml
new file mode 100644 (file)
index 0000000..4fa6770
--- /dev/null
@@ -0,0 +1,113 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/davinci-mcbsp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: McBSP Controller for TI SoCs
+
+maintainers:
+  - Bastien Curutchet <bastien.curutchet@bootlin.com>
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - ti,da850-mcbsp
+
+  reg:
+    minItems: 1
+    items:
+      - description: CFG registers
+      - description: data registers
+
+  reg-names:
+    minItems: 1
+    items:
+      - const: mpu
+      - const: dat
+
+  dmas:
+    items:
+      - description: transmission DMA channel
+      - description: reception DMA channel
+
+  dma-names:
+    items:
+      - const: tx
+      - const: rx
+
+  interrupts:
+    items:
+      - description: RX interrupt
+      - description: TX interrupt
+
+  interrupt-names:
+    items:
+      - const: rx
+      - const: tx
+
+  clocks:
+    minItems: 1
+    items:
+      - description: functional clock
+      - description: external input clock for sample rate generator.
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: fck
+      - const: clks
+
+  power-domains:
+    maxItems: 1
+
+  "#sound-dai-cells":
+    const: 0
+
+  ti,T1-framing-tx:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      If the property is present, tx data delay is set to 2 bit clock periods.
+      McBSP will insert a blank period (high-impedance period) before the first
+      data bit. This can be used to interface to T1-framing devices.
+
+  ti,T1-framing-rx:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      If the property is present, rx data delay is set to 2 bit clock periods.
+      McBSP will discard the bit preceding the data stream (called framing bit).
+      This can be used to interface to T1-framing devices.
+
+required:
+  - "#sound-dai-cells"
+  - compatible
+  - reg
+  - reg-names
+  - dmas
+  - dma-names
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    mcbsp0@1d10000 {
+      #sound-dai-cells = <0>;
+      compatible = "ti,da850-mcbsp";
+      pinctrl-names = "default";
+      pinctrl-0 = <&mcbsp0_pins>;
+
+      reg = <0x111000 0x1000>,
+            <0x311000 0x1000>;
+      reg-names = "mpu", "dat";
+      interrupts = <97>, <98>;
+      interrupt-names = "rx", "tx";
+      dmas = <&edma0 3 1>,
+             <&edma0 2 1>;
+      dma-names = "tx", "rx";
+
+      clocks = <&psc1 14>;
+    };
diff --git a/Bindings/sound/fsl,audmix.txt b/Bindings/sound/fsl,audmix.txt
deleted file mode 100644 (file)
index 840b7e0..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-NXP Audio Mixer (AUDMIX).
-
-The Audio Mixer is a on-chip functional module that allows mixing of two
-audio streams into a single audio stream. Audio Mixer has two input serial
-audio interfaces. These are driven by two Synchronous Audio interface
-modules (SAI). Each input serial interface carries 8 audio channels in its
-frame in TDM manner. Mixer mixes audio samples of corresponding channels
-from two interfaces into a single sample. Before mixing, audio samples of
-two inputs can be attenuated based on configuration. The output of the
-Audio Mixer is also a serial audio interface. Like input interfaces it has
-the same TDM frame format. This output is used to drive the serial DAC TDM
-interface of audio codec and also sent to the external pins along with the
-receive path of normal audio SAI module for readback by the CPU.
-
-The output of Audio Mixer can be selected from any of the three streams
- - serial audio input 1
- - serial audio input 2
- - mixed audio
-
-Mixing operation is independent of audio sample rate but the two audio
-input streams must have same audio sample rate with same number of channels
-in TDM frame to be eligible for mixing.
-
-Device driver required properties:
-=================================
-  - compatible         : Compatible list, contains "fsl,imx8qm-audmix"
-
-  - reg                        : Offset and length of the register set for the device.
-
-  - clocks             : Must contain an entry for each entry in clock-names.
-
-  - clock-names                : Must include the "ipg" for register access.
-
-  - power-domains      : Must contain the phandle to AUDMIX power domain node
-
-  - dais               : Must contain a list of phandles to AUDMIX connected
-                         DAIs. The current implementation requires two phandles
-                         to SAI interfaces to be provided, the first SAI in the
-                         list being used to route the AUDMIX output.
-
-Device driver configuration example:
-======================================
-  audmix: audmix@59840000 {
-    compatible = "fsl,imx8qm-audmix";
-    reg = <0x0 0x59840000 0x0 0x10000>;
-    clocks = <&clk IMX8QXP_AUD_AUDMIX_IPG>;
-    clock-names = "ipg";
-    power-domains = <&pd_audmix>;
-    dais = <&sai4>, <&sai5>;
-  };
diff --git a/Bindings/sound/fsl,audmix.yaml b/Bindings/sound/fsl,audmix.yaml
new file mode 100644 (file)
index 0000000..9413b90
--- /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,audmix.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP Audio Mixer (AUDMIX).
+
+maintainers:
+  - Shengjiu Wang <shengjiu.wang@nxp.com>
+  - Frank Li <Frank.Li@nxp.com>
+
+description: |
+  The Audio Mixer is a on-chip functional module that allows mixing of two
+  audio streams into a single audio stream. Audio Mixer has two input serial
+  audio interfaces. These are driven by two Synchronous Audio interface
+  modules (SAI). Each input serial interface carries 8 audio channels in its
+  frame in TDM manner. Mixer mixes audio samples of corresponding channels
+  from two interfaces into a single sample. Before mixing, audio samples of
+  two inputs can be attenuated based on configuration. The output of the
+  Audio Mixer is also a serial audio interface. Like input interfaces it has
+  the same TDM frame format. This output is used to drive the serial DAC TDM
+  interface of audio codec and also sent to the external pins along with the
+  receive path of normal audio SAI module for readback by the CPU.
+
+  The output of Audio Mixer can be selected from any of the three streams
+    - serial audio input 1
+    - serial audio input 2
+    - mixed audio
+
+  Mixing operation is independent of audio sample rate but the two audio
+  input streams must have same audio sample rate with same number of channels
+  in TDM frame to be eligible for mixing.
+
+properties:
+  compatible:
+    const: fsl,imx8qm-audmix
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: ipg
+
+  power-domains:
+    maxItems: 1
+
+  dais:
+    description: contain a list of phandles to AUDMIX connected DAIs.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    minItems: 2
+    items:
+      - description: the AUDMIX output
+        maxItems: 1
+      - description: serial audio input 1
+        maxItems: 1
+      - description: serial audio input 2
+        maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - power-domains
+  - dais
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    audmix@59840000 {
+      compatible = "fsl,imx8qm-audmix";
+      reg = <0x59840000 0x10000>;
+      clocks = <&amix_lpcg 0>;
+      clock-names = "ipg";
+      power-domains = <&pd_audmix>;
+      dais = <&sai4>, <&sai5>;
+    };
diff --git a/Bindings/sound/fsl,esai.txt b/Bindings/sound/fsl,esai.txt
deleted file mode 100644 (file)
index 90112ca..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-Freescale Enhanced Serial Audio Interface (ESAI) Controller
-
-The Enhanced Serial Audio Interface (ESAI) provides a full-duplex serial port
-for serial communication with a variety of serial devices, including industry
-standard codecs, Sony/Phillips Digital Interface (S/PDIF) transceivers, and
-other DSPs. It has up to six transmitters and four receivers.
-
-Required properties:
-
-  - compatible         : Compatible list, should contain one of the following
-                         compatibles:
-                         "fsl,imx35-esai",
-                         "fsl,vf610-esai",
-                         "fsl,imx6ull-esai",
-                         "fsl,imx8qm-esai",
-
-  - reg                        : Offset and length of the register set for the device.
-
-  - interrupts         : Contains the spdif interrupt.
-
-  - dmas               : Generic dma devicetree binding as described in
-                         Documentation/devicetree/bindings/dma/dma.txt.
-
-  - dma-names          : Two dmas have to be defined, "tx" and "rx".
-
-  - clocks             : Contains an entry for each entry in clock-names.
-
-  - clock-names                : Includes the following entries:
-       "core"            The core clock used to access registers
-       "extal"           The esai baud clock for esai controller used to
-                         derive HCK, SCK and FS.
-       "fsys"            The system clock derived from ahb clock used to
-                         derive HCK, SCK and FS.
-       "spba"            The spba clock is required when ESAI is placed as a
-                         bus slave of the Shared Peripheral Bus and when two
-                         or more bus masters (CPU, DMA or DSP) try to access
-                         it. This property is optional depending on the SoC
-                         design.
-
-  - fsl,fifo-depth     : The number of elements in the transmit and receive
-                         FIFOs. This number is the maximum allowed value for
-                         TFCR[TFWM] or RFCR[RFWM].
-
-  - fsl,esai-synchronous: This is a boolean property. If present, indicating
-                         that ESAI would work in the synchronous mode, which
-                         means all the settings for Receiving would be
-                         duplicated from Transmission related registers.
-
-Optional properties:
-
-  - big-endian         : If this property is absent, the native endian mode
-                         will be in use as default, or the big endian mode
-                         will be in use for all the device registers.
-
-Example:
-
-esai: esai@2024000 {
-       compatible = "fsl,imx35-esai";
-       reg = <0x02024000 0x4000>;
-       interrupts = <0 51 0x04>;
-       clocks = <&clks 208>, <&clks 118>, <&clks 208>;
-       clock-names = "core", "extal", "fsys";
-       dmas = <&sdma 23 21 0>, <&sdma 24 21 0>;
-       dma-names = "rx", "tx";
-       fsl,fifo-depth = <128>;
-       fsl,esai-synchronous;
-       big-endian;
-};
diff --git a/Bindings/sound/fsl,esai.yaml b/Bindings/sound/fsl,esai.yaml
new file mode 100644 (file)
index 0000000..f99ed20
--- /dev/null
@@ -0,0 +1,118 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/fsl,esai.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Enhanced Serial Audio Interface (ESAI) Controller
+
+maintainers:
+  - Shengjiu Wang <shengjiu.wang@nxp.com>
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  The Enhanced Serial Audio Interface (ESAI) provides a full-duplex serial port
+  for serial communication with a variety of serial devices, including industry
+  standard codecs, Sony/Phillips Digital Interface (S/PDIF) transceivers, and
+  other DSPs. It has up to six transmitters and four receivers.
+
+properties:
+  compatible:
+    enum:
+      - fsl,imx35-esai
+      - fsl,imx6ull-esai
+      - fsl,imx8qm-esai
+      - fsl,vf610-esai
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    minItems: 3
+    items:
+      - description:
+          The core clock used to access registers.
+      - description:
+          The esai baud clock for esai controller used to
+          derive HCK, SCK and FS.
+      - description:
+          The system clock derived from ahb clock used to
+          derive HCK, SCK and FS.
+      - description:
+          The spba clock is required when ESAI is placed as a
+          bus slave of the Shared Peripheral Bus and when two
+          or more bus masters (CPU, DMA or DSP) try to access
+          it. This property is optional depending on the SoC
+          design.
+
+  clock-names:
+    minItems: 3
+    items:
+      - const: core
+      - const: extal
+      - const: fsys
+      - const: spba
+
+  dmas:
+    minItems: 2
+    maxItems: 2
+
+  dma-names:
+    items:
+      - const: rx
+      - const: tx
+
+  fsl,fifo-depth:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 64
+    description:
+      The number of elements in the transmit and receive
+      FIFOs. This number is the maximum allowed value for
+      TFCR[TFWM] or RFCR[RFWM].
+
+  fsl,esai-synchronous:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      This is a boolean property. If present, indicating
+      that ESAI would work in the synchronous mode, which
+      means all the settings for Receiving would be
+      duplicated from Transmission related registers.
+
+  big-endian:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      If this property is absent, the native endian mode
+      will be in use as default, or the big endian mode
+      will be in use for all the device registers.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+  - dmas
+  - dma-names
+
+unevaluatedProperties: false
+
+allOf:
+  - $ref: dai-common.yaml#
+
+examples:
+  - |
+    esai@2024000 {
+      compatible = "fsl,imx35-esai";
+      reg = <0x02024000 0x4000>;
+      interrupts = <0 51 0x04>;
+      clocks = <&clks 208>, <&clks 118>, <&clks 208>;
+      clock-names = "core", "extal", "fsys";
+      dmas = <&sdma 23 21 0>, <&sdma 24 21 0>;
+      dma-names = "rx", "tx";
+      fsl,fifo-depth = <128>;
+      fsl,esai-synchronous;
+      big-endian;
+    };
index bfef2fcb75b145a2050996ea4c395b2bf2e28cba..76aa1f2484883d6b3331f2ea3b8c738db4f837c4 100644 (file)
@@ -74,6 +74,9 @@ properties:
       - const: asrck_f
       - const: spba
 
+  power-domains:
+    maxItems: 1
+
   fsl,asrc-rate:
     $ref: /schemas/types.yaml#/definitions/uint32
     description: The mutual sample rate used by DPCM Back Ends
@@ -131,6 +134,17 @@ allOf:
       properties:
         fsl,asrc-clk-map: false
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx8qm-asrc
+              - fsl,imx8qxp-asrc
+    then:
+      required:
+        - power-domains
+
 additionalProperties: false
 
 examples:
diff --git a/Bindings/sound/fsl,imx-audio-spdif.yaml b/Bindings/sound/fsl,imx-audio-spdif.yaml
new file mode 100644 (file)
index 0000000..5fc543d
--- /dev/null
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/fsl,imx-audio-spdif.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale i.MX audio complex with S/PDIF transceiver
+
+maintainers:
+  - Shengjiu Wang <shengjiu.wang@nxp.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - fsl,imx-sabreauto-spdif
+              - fsl,imx6sx-sdb-spdif
+          - const: fsl,imx-audio-spdif
+      - enum:
+          - fsl,imx-audio-spdif
+
+  model:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: User specified audio sound card name
+
+  spdif-controller:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: The phandle of the i.MX S/PDIF controller
+
+  spdif-out:
+    type: boolean
+    description:
+      If present, the transmitting function of S/PDIF will be enabled,
+      indicating there's a physical S/PDIF out connector or jack on the
+      board or it's connecting to some other IP block, such as an HDMI
+      encoder or display-controller.
+
+  spdif-in:
+    type: boolean
+    description:
+      If present, the receiving function of S/PDIF will be enabled,
+      indicating there is a physical S/PDIF in connector/jack on the board.
+
+required:
+  - compatible
+  - model
+  - spdif-controller
+
+anyOf:
+  - required:
+      - spdif-in
+  - required:
+      - spdif-out
+
+additionalProperties: false
+
+examples:
+  - |
+    sound-spdif {
+        compatible = "fsl,imx-audio-spdif";
+        model = "imx-spdif";
+        spdif-controller = <&spdif>;
+        spdif-out;
+        spdif-in;
+    };
index 2456d958adeef6ac217e5698f7b0d89c702e7ad7..a5d9c246cc476ceebf956d1a4ce2ee19fefd62ac 100644 (file)
@@ -81,14 +81,12 @@ properties:
 
   dmas:
     minItems: 1
-    items:
-      - description: DMA controller phandle and request line for RX
-      - description: DMA controller phandle and request line for TX
+    maxItems: 2
 
   dma-names:
     minItems: 1
     items:
-      - const: rx
+      - enum: [ rx, tx ]
       - const: tx
 
   interrupts:
index 1d64e8337aa4b2fe16fab4aa6b9d9b09e99a29c8..204f361cea27ab3785254aae77e550b30493161d 100644 (file)
@@ -31,7 +31,10 @@ properties:
     maxItems: 1
 
   interrupts:
-    maxItems: 1
+    minItems: 1
+    items:
+      - description: Combined or receive interrupt
+      - description: Transmit interrupt
 
   dmas:
     items:
@@ -86,6 +89,9 @@ properties:
       registers. Set this flag for HCDs with big endian descriptors and big
       endian registers.
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
@@ -97,6 +103,33 @@ required:
 
 additionalProperties: false
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          enum:
+            - fsl,imx8qm-spdif
+            - fsl,imx8qxp-spdif
+    then:
+      properties:
+        interrupts:
+          minItems: 2
+    else:
+      properties:
+        interrupts:
+          maxItems: 1
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx8qm-spdif
+              - fsl,imx8qxp-spdif
+    then:
+      required:
+        - power-domains
+
 examples:
   - |
     spdif@2004000 {
diff --git a/Bindings/sound/fsl,ssi.txt b/Bindings/sound/fsl,ssi.txt
deleted file mode 100644 (file)
index 7e15a85..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-Freescale Synchronous Serial Interface
-
-The SSI is a serial device that communicates with audio codecs.  It can
-be programmed in AC97, I2S, left-justified, or right-justified modes.
-
-Required properties:
-- compatible:       Compatible list, should contain one of the following
-                    compatibles:
-                      fsl,mpc8610-ssi
-                      fsl,imx51-ssi
-                      fsl,imx35-ssi
-                      fsl,imx21-ssi
-- cell-index:       The SSI, <0> = SSI1, <1> = SSI2, and so on.
-- reg:              Offset and length of the register set for the device.
-- interrupts:       <a b> where a is the interrupt number and b is a
-                    field that represents an encoding of the sense and
-                    level information for the interrupt.  This should be
-                    encoded based on the information in section 2)
-                    depending on the type of interrupt controller you
-                    have.
-- fsl,fifo-depth:   The number of elements in the transmit and receive FIFOs.
-                    This number is the maximum allowed value for SFCSR[TFWM0].
- - clocks:          "ipg" - Required clock for the SSI unit
-                    "baud" - Required clock for SSI master mode. Otherwise this
-                     clock is not used
-
-Required are also ac97 link bindings if ac97 is used. See
-Documentation/devicetree/bindings/sound/soc-ac97link.txt for the necessary
-bindings.
-
-Optional properties:
-- codec-handle:     Phandle to a 'codec' node that defines an audio
-                    codec connected to this SSI.  This node is typically
-                    a child of an I2C or other control node.
-- fsl,fiq-stream-filter: Bool property. Disabled DMA and use FIQ instead to
-                   filter the codec stream. This is necessary for some boards
-                   where an incompatible codec is connected to this SSI, e.g.
-                   on pca100 and pcm043.
-- dmas:                    Generic dma devicetree binding as described in
-                   Documentation/devicetree/bindings/dma/dma.txt.
-- dma-names:       Two dmas have to be defined, "tx" and "rx", if fsl,imx-fiq
-                   is not defined.
-- fsl,mode:         The operating mode for the AC97 interface only.
-                    "ac97-slave" - AC97 mode, SSI is clock slave
-                    "ac97-master" - AC97 mode, SSI is clock master
-- fsl,ssi-asynchronous:
-                    If specified, the SSI is to be programmed in asynchronous
-                    mode.  In this mode, pins SRCK, STCK, SRFS, and STFS must
-                    all be connected to valid signals.  In synchronous mode,
-                    SRCK and SRFS are ignored.  Asynchronous mode allows
-                    playback and capture to use different sample sizes and
-                    sample rates.  Some drivers may require that SRCK and STCK
-                    be connected together, and SRFS and STFS be connected
-                    together.  This would still allow different sample sizes,
-                    but not different sample rates.
-- fsl,playback-dma: Phandle to a node for the DMA channel to use for
-                    playback of audio.  This is typically dictated by SOC
-                    design.  See the notes below.
-                    Only used on Power Architecture.
-- fsl,capture-dma:  Phandle to a node for the DMA channel to use for
-                    capture (recording) of audio.  This is typically dictated
-                    by SOC design.  See the notes below.
-                    Only used on Power Architecture.
-
-Child 'codec' node required properties:
-- compatible:       Compatible list, contains the name of the codec
-
-Child 'codec' node optional properties:
-- clock-frequency:  The frequency of the input clock, which typically comes
-                    from an on-board dedicated oscillator.
-
-Notes on fsl,playback-dma and fsl,capture-dma:
-
-On SOCs that have an SSI, specific DMA channels are hard-wired for playback
-and capture.  On the MPC8610, for example, SSI1 must use DMA channel 0 for
-playback and DMA channel 1 for capture.  SSI2 must use DMA channel 2 for
-playback and DMA channel 3 for capture.  The developer can choose which
-DMA controller to use, but the channels themselves are hard-wired.  The
-purpose of these two properties is to represent this hardware design.
-
-The device tree nodes for the DMA channels that are referenced by
-"fsl,playback-dma" and "fsl,capture-dma" must be marked as compatible with
-"fsl,ssi-dma-channel".  The SOC-specific compatible string (e.g.
-"fsl,mpc8610-dma-channel") can remain.  If these nodes are left as
-"fsl,elo-dma-channel" or "fsl,eloplus-dma-channel", then the generic Elo DMA
-drivers (fsldma) will attempt to use them, and it will conflict with the
-sound drivers.
diff --git a/Bindings/sound/fsl,ssi.yaml b/Bindings/sound/fsl,ssi.yaml
new file mode 100644 (file)
index 0000000..4ab10cd
--- /dev/null
@@ -0,0 +1,194 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/fsl,ssi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Synchronous Serial Interface
+
+maintainers:
+  - Shengjiu Wang <shengjiu.wang@nxp.com>
+
+description:
+  Notes on fsl,playback-dma and fsl,capture-dma
+  On SOCs that have an SSI, specific DMA channels are hard-wired for playback
+  and capture.  On the MPC8610, for example, SSI1 must use DMA channel 0 for
+  playback and DMA channel 1 for capture.  SSI2 must use DMA channel 2 for
+  playback and DMA channel 3 for capture.  The developer can choose which
+  DMA controller to use, but the channels themselves are hard-wired.  The
+  purpose of these two properties is to represent this hardware design.
+
+  The device tree nodes for the DMA channels that are referenced by
+  "fsl,playback-dma" and "fsl,capture-dma" must be marked as compatible with
+  "fsl,ssi-dma-channel".  The SOC-specific compatible string (e.g.
+  "fsl,mpc8610-dma-channel") can remain.  If these nodes are left as
+  "fsl,elo-dma-channel" or "fsl,eloplus-dma-channel", then the generic Elo DMA
+  drivers (fsldma) will attempt to use them, and it will conflict with the
+  sound drivers.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - fsl,imx50-ssi
+              - fsl,imx53-ssi
+          - const: fsl,imx51-ssi
+          - const: fsl,imx21-ssi
+      - items:
+          - enum:
+              - fsl,imx25-ssi
+              - fsl,imx27-ssi
+              - fsl,imx35-ssi
+              - fsl,imx51-ssi
+          - const: fsl,imx21-ssi
+      - items:
+          - enum:
+              - fsl,imx6q-ssi
+              - fsl,imx6sl-ssi
+              - fsl,imx6sx-ssi
+          - const: fsl,imx51-ssi
+      - items:
+          - const: fsl,imx21-ssi
+      - items:
+          - const: fsl,mpc8610-ssi
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: The ipg clock for register access
+      - description: clock for SSI master mode
+    minItems: 1
+
+  clock-names:
+    items:
+      - const: ipg
+      - const: baud
+    minItems: 1
+
+  dmas:
+    oneOf:
+      - items:
+          - description: DMA controller phandle and request line for RX
+          - description: DMA controller phandle and request line for TX
+      - items:
+          - description: DMA controller phandle and request line for RX0
+          - description: DMA controller phandle and request line for TX0
+          - description: DMA controller phandle and request line for RX1
+          - description: DMA controller phandle and request line for TX1
+
+  dma-names:
+    oneOf:
+      - items:
+          - const: rx
+          - const: tx
+      - items:
+          - const: rx0
+          - const: tx0
+          - const: rx1
+          - const: tx1
+
+  "#sound-dai-cells":
+    const: 0
+    description: optional, some dts node didn't add it.
+
+  cell-index:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1, 2]
+    description: The SSI index
+
+  ac97-gpios:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    description: Please refer to soc-ac97link.txt
+
+  codec-handle:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to a 'codec' node that defines an audio
+      codec connected to this SSI.  This node is typically
+      a child of an I2C or other control node.
+
+  fsl,fifo-depth:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      The number of elements in the transmit and receive FIFOs.
+      This number is the maximum allowed value for SFCSR[TFWM0].
+    enum: [8, 15]
+
+  fsl,fiq-stream-filter:
+    type: boolean
+    description:
+      Disabled DMA and use FIQ instead to filter the codec stream.
+      This is necessary for some boards where an incompatible codec
+      is connected to this SSI, e.g. on pca100 and pcm043.
+
+  fsl,mode:
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [ ac97-slave, ac97-master, i2s-slave, i2s-master,
+            lj-slave, lj-master, rj-slave, rj-master ]
+    description: |
+      "ac97-slave" - AC97 mode, SSI is clock slave
+      "ac97-master" - AC97 mode, SSI is clock master
+      "i2s-slave" - I2S mode, SSI is clock slave
+      "i2s-master" - I2S mode, SSI is clock master
+      "lj-slave" - Left justified mode, SSI is clock slave
+      "lj-master" - Left justified mode, SSI is clock master
+      "rj-slave" - Right justified mode, SSI is clock slave
+      "rj-master" - Right justified mode, SSI is clock master
+
+  fsl,ssi-asynchronous:
+    type: boolean
+    description: If specified, the SSI is to be programmed in asynchronous
+      mode.  In this mode, pins SRCK, STCK, SRFS, and STFS must
+      all be connected to valid signals.  In synchronous mode,
+      SRCK and SRFS are ignored.  Asynchronous mode allows
+      playback and capture to use different sample sizes and
+      sample rates.  Some drivers may require that SRCK and STCK
+      be connected together, and SRFS and STFS be connected
+      together.  This would still allow different sample sizes,
+      but not different sample rates.
+
+  fsl,playback-dma:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: Phandle to a node for the DMA channel to use for
+      playback of audio.  This is typically dictated by SOC
+      design. Only used on Power Architecture.
+
+  fsl,capture-dma:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: Phandle to a node for the DMA channel to use for
+      capture (recording) of audio.  This is typically dictated
+      by SOC design. Only used on Power Architecture.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - fsl,fifo-depth
+
+allOf:
+  - $ref: dai-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/imx6qdl-clock.h>
+    ssi@2028000 {
+        compatible = "fsl,imx6q-ssi", "fsl,imx51-ssi";
+        reg = <0x02028000 0x4000>;
+        interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&clks IMX6QDL_CLK_SSI1_IPG>,
+                 <&clks IMX6QDL_CLK_SSI1>;
+        clock-names = "ipg", "baud";
+        dmas = <&sdma 37 1 0>, <&sdma 38 1 0>;
+        dma-names = "rx", "tx";
+        #sound-dai-cells = <0>;
+        fsl,fifo-depth = <15>;
+    };
diff --git a/Bindings/sound/fsl-asoc-card.txt b/Bindings/sound/fsl-asoc-card.txt
deleted file mode 100644 (file)
index 4e8dbc5..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-Freescale Generic ASoC Sound Card with ASRC support
-
-The Freescale Generic ASoC Sound Card can be used, ideally, for all Freescale
-SoCs connecting with external CODECs.
-
-The idea of this generic sound card is a bit like ASoC Simple Card. However,
-for Freescale SoCs (especially those released in recent years), most of them
-have ASRC (Documentation/devicetree/bindings/sound/fsl,asrc.txt) inside. And
-this is a specific feature that might be painstakingly controlled and merged
-into the Simple Card.
-
-So having this generic sound card allows all Freescale SoC users to benefit
-from the simplification of a new card support and the capability of the wide
-sample rates support through ASRC.
-
-Note: The card is initially designed for those sound cards who use AC'97, I2S
-      and PCM DAI formats. However, it'll be also possible to support those non
-      AC'97/I2S/PCM type sound cards, such as S/PDIF audio and HDMI audio, as
-      long as the driver has been properly upgraded.
-
-
-The compatible list for this generic sound card currently:
- "fsl,imx-audio-ac97"
-
- "fsl,imx-audio-cs42888"
-
- "fsl,imx-audio-cs427x"
- (compatible with CS4271 and CS4272)
-
- "fsl,imx-audio-wm8962"
-
- "fsl,imx-audio-sgtl5000"
- (compatible with Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt)
-
- "fsl,imx-audio-wm8960"
-
- "fsl,imx-audio-mqs"
-
- "fsl,imx-audio-wm8524"
-
- "fsl,imx-audio-tlv320aic32x4"
-
- "fsl,imx-audio-tlv320aic31xx"
-
- "fsl,imx-audio-si476x"
-
- "fsl,imx-audio-wm8958"
-
- "fsl,imx-audio-nau8822"
-
-Required properties:
-
-  - compatible         : Contains one of entries in the compatible list.
-
-  - model              : The user-visible name of this sound complex
-
-  - audio-cpu          : The phandle of an CPU DAI controller
-
-  - audio-codec                : The phandle of an audio codec
-
-Optional properties:
-
-  - audio-asrc         : The phandle of ASRC. It can be absent if there's no
-                         need to add ASRC support via DPCM.
-
-  - 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. There're a few pre-designed board connectors:
-                          * Line Out Jack
-                          * Line In Jack
-                          * Headphone Jack
-                          * Mic Jack
-                          * Ext Spk
-                          * AMIC (stands for Analog Microphone Jack)
-                          * DMIC (stands for Digital Microphone Jack)
-
-                         Note: The "Mic Jack" and "AMIC" are redundant while
-                               coexisting in order to support the old bindings
-                               of wm8962 and sgtl5000.
-
-  - hp-det-gpio                : The GPIO that detect headphones are plugged in
-  - mic-det-gpio       : The GPIO that detect microphones are plugged in
-  - bitclock-master    : Indicates dai-link bit clock master; for details see simple-card.yaml.
-  - frame-master       : Indicates dai-link frame master; for details see simple-card.yaml.
-  - dai-format         : audio format, for details see simple-card.yaml.
-  - frame-inversion    : dai-link uses frame clock inversion, for details see simple-card.yaml.
-  - bitclock-inversion : dai-link uses bit clock inversion, for details see simple-card.yaml.
-  - mclk-id            : main clock id, specific for each card configuration.
-
-Optional unless SSI is selected as a CPU DAI:
-
-  - 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
-
-Example:
-sound-cs42888 {
-       compatible = "fsl,imx-audio-cs42888";
-       model = "cs42888-audio";
-       audio-cpu = <&esai>;
-       audio-asrc = <&asrc>;
-       audio-codec = <&cs42888>;
-       audio-routing =
-               "Line Out Jack", "AOUT1L",
-               "Line Out Jack", "AOUT1R",
-               "Line Out Jack", "AOUT2L",
-               "Line Out Jack", "AOUT2R",
-               "Line Out Jack", "AOUT3L",
-               "Line Out Jack", "AOUT3R",
-               "Line Out Jack", "AOUT4L",
-               "Line Out Jack", "AOUT4R",
-               "AIN1L", "Line In Jack",
-               "AIN1R", "Line In Jack",
-               "AIN2L", "Line In Jack",
-               "AIN2R", "Line In Jack";
-};
diff --git a/Bindings/sound/fsl-asoc-card.yaml b/Bindings/sound/fsl-asoc-card.yaml
new file mode 100644 (file)
index 0000000..9922664
--- /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/sound/fsl-asoc-card.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Generic ASoC Sound Card with ASRC support
+
+description:
+  The Freescale Generic ASoC Sound Card can be used, ideally,
+  for all Freescale SoCs connecting with external CODECs.
+
+  The idea of this generic sound card is a bit like ASoC Simple Card.
+  However, for Freescale SoCs (especially those released in recent years),
+  most of them have ASRC inside. And this is a specific feature that might
+  be painstakingly controlled and merged into the Simple Card.
+
+  So having this generic sound card allows all Freescale SoC users to
+  benefit from the simplification of a new card support and the capability
+  of the wide sample rates support through ASRC.
+
+  Note, The card is initially designed for those sound cards who use AC'97, I2S
+  and PCM DAI formats. However, it'll be also possible to support those non
+  AC'97/I2S/PCM type sound cards, such as S/PDIF audio and HDMI audio, as
+  long as the driver has been properly upgraded.
+
+maintainers:
+  - Shengjiu Wang <shengjiu.wang@nxp.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - fsl,imx-sgtl5000
+              - fsl,imx25-pdk-sgtl5000
+              - fsl,imx53-cpuvo-sgtl5000
+              - fsl,imx51-babbage-sgtl5000
+              - fsl,imx53-m53evk-sgtl5000
+              - fsl,imx53-qsb-sgtl5000
+              - fsl,imx53-voipac-sgtl5000
+              - fsl,imx6-armadeus-sgtl5000
+              - fsl,imx6-rex-sgtl5000
+              - fsl,imx6-sabreauto-cs42888
+              - fsl,imx6-wandboard-sgtl5000
+              - fsl,imx6dl-nit6xlite-sgtl5000
+              - fsl,imx6q-ba16-sgtl5000
+              - fsl,imx6q-nitrogen6_max-sgtl5000
+              - fsl,imx6q-nitrogen6_som2-sgtl5000
+              - fsl,imx6q-nitrogen6x-sgtl5000
+              - fsl,imx6q-sabrelite-sgtl5000
+              - fsl,imx6q-sabresd-wm8962
+              - fsl,imx6q-udoo-ac97
+              - fsl,imx6q-ventana-sgtl5000
+              - fsl,imx6sl-evk-wm8962
+              - fsl,imx6sx-sdb-mqs
+              - fsl,imx6sx-sdb-wm8962
+              - fsl,imx7d-evk-wm8960
+              - karo,tx53-audio-sgtl5000
+              - tq,imx53-mba53-sgtl5000
+          - enum:
+              - fsl,imx-audio-ac97
+              - fsl,imx-audio-cs42888
+              - fsl,imx-audio-mqs
+              - fsl,imx-audio-sgtl5000
+              - fsl,imx-audio-wm8960
+              - fsl,imx-audio-wm8962
+      - items:
+          - enum:
+              - fsl,imx-audio-ac97
+              - fsl,imx-audio-cs42888
+              - fsl,imx-audio-cs427x
+              - fsl,imx-audio-mqs
+              - fsl,imx-audio-nau8822
+              - fsl,imx-audio-sgtl5000
+              - fsl,imx-audio-si476x
+              - fsl,imx-audio-tlv320aic31xx
+              - fsl,imx-audio-tlv320aic32x4
+              - fsl,imx-audio-wm8524
+              - fsl,imx-audio-wm8904
+              - fsl,imx-audio-wm8960
+              - fsl,imx-audio-wm8962
+              - fsl,imx-audio-wm8958
+
+  model:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: The user-visible name of this sound complex
+
+  audio-asrc:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      The phandle of ASRC. It can be absent if there's no
+      need to add ASRC support via DPCM.
+
+  audio-codec:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: The phandle of an audio codec
+
+  audio-cpu:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: The phandle of an CPU DAI controller
+
+  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. There're a few pre-designed board
+      connectors. "AMIC" stands for Analog Microphone Jack.
+      "DMIC" stands for Digital Microphone Jack. The "Mic Jack" and "AMIC"
+      are redundant while coexisting in order to support the old bindings
+      of wm8962 and sgtl5000.
+
+  hp-det-gpio:
+    deprecated: true
+    maxItems: 1
+    description: The GPIO that detect headphones are plugged in
+
+  hp-det-gpios:
+    maxItems: 1
+    description: The GPIO that detect headphones are plugged in
+
+  mic-det-gpio:
+    deprecated: true
+    maxItems: 1
+    description: The GPIO that detect microphones are plugged in
+
+  mic-det-gpios:
+    maxItems: 1
+    description: The GPIO that detect microphones are plugged in
+
+  bitclock-master:
+    $ref: simple-card.yaml#/definitions/bitclock-master
+    description: Indicates dai-link bit clock master.
+
+  frame-master:
+    $ref: simple-card.yaml#/definitions/frame-master
+    description: Indicates dai-link frame master.
+
+  format:
+    $ref: simple-card.yaml#/definitions/format
+    description: audio format.
+
+  frame-inversion:
+    $ref: simple-card.yaml#/definitions/frame-inversion
+    description: dai-link uses frame clock inversion.
+
+  bitclock-inversion:
+    $ref: simple-card.yaml#/definitions/bitclock-inversion
+    description: dai-link uses bit clock inversion.
+
+  mclk-id:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: main clock id, specific for each card configuration.
+
+  mux-int-port:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [1, 2, 7]
+    description: The internal port of the i.MX audio muxer (AUDMUX)
+
+  mux-ext-port:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [3, 4, 5, 6]
+    description: The external port of the i.MX audio muxer
+
+  ssi-controller:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: The phandle of an CPU DAI controller
+
+required:
+  - compatible
+  - model
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    sound-cs42888 {
+        compatible = "fsl,imx-audio-cs42888";
+        model = "cs42888-audio";
+        audio-cpu = <&esai>;
+        audio-asrc = <&asrc>;
+        audio-codec = <&cs42888>;
+        audio-routing =
+             "Line Out Jack", "AOUT1L",
+             "Line Out Jack", "AOUT1R",
+             "Line Out Jack", "AOUT2L",
+             "Line Out Jack", "AOUT2R",
+             "Line Out Jack", "AOUT3L",
+             "Line Out Jack", "AOUT3R",
+             "Line Out Jack", "AOUT4L",
+             "Line Out Jack", "AOUT4R",
+             "AIN1L", "Line In Jack",
+             "AIN1R", "Line In Jack",
+             "AIN2L", "Line In Jack",
+             "AIN2R", "Line In Jack";
+    };
diff --git a/Bindings/sound/imx-audio-spdif.txt b/Bindings/sound/imx-audio-spdif.txt
deleted file mode 100644 (file)
index da84a44..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-Freescale i.MX audio complex with S/PDIF transceiver
-
-Required properties:
-
-  - compatible         : "fsl,imx-audio-spdif"
-
-  - model              : The user-visible name of this sound complex
-
-  - spdif-controller   : The phandle of the i.MX S/PDIF controller
-
-
-Optional properties:
-
-  - spdif-out          : This is a boolean property. If present, the
-                         transmitting function of S/PDIF will be enabled,
-                         indicating there's a physical S/PDIF out connector
-                         or jack on the board or it's connecting to some
-                         other IP block, such as an HDMI encoder or
-                         display-controller.
-
-  - spdif-in           : This is a boolean property. If present, the receiving
-                         function of S/PDIF will be enabled, indicating there
-                         is a physical S/PDIF in connector/jack on the board.
-
-* Note: At least one of these two properties should be set in the DT binding.
-
-
-Example:
-
-sound-spdif {
-       compatible = "fsl,imx-audio-spdif";
-       model = "imx-spdif";
-       spdif-controller = <&spdif>;
-       spdif-out;
-       spdif-in;
-};
diff --git a/Bindings/sound/mediatek,mt2701-wm8960.yaml b/Bindings/sound/mediatek,mt2701-wm8960.yaml
new file mode 100644 (file)
index 0000000..cf98546
--- /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/sound/mediatek,mt2701-wm8960.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek MT2701 with WM8960 CODEC
+
+maintainers:
+  - Kartik Agarwala <agarwala.kartik@gmail.com>
+
+properties:
+  compatible:
+    const: mediatek,mt2701-wm8960-machine
+
+  mediatek,platform:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: The phandle of MT2701 ASoC platform.
+
+  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.
+
+  mediatek,audio-codec:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: The phandle of the WM8960 audio codec.
+
+unevaluatedProperties: false
+
+required:
+  - compatible
+  - mediatek,platform
+  - audio-routing
+  - mediatek,audio-codec
+  - pinctrl-names
+  - pinctrl-0
+
+examples:
+  - |
+    sound {
+        compatible = "mediatek,mt2701-wm8960-machine";
+        mediatek,platform = <&afe>;
+        audio-routing =
+            "Headphone", "HP_L",
+            "Headphone", "HP_R",
+            "LINPUT1", "AMIC",
+            "RINPUT1", "AMIC";
+        mediatek,audio-codec = <&wm8960>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&aud_pins_default>;
+    };
diff --git a/Bindings/sound/mt2701-wm8960.txt b/Bindings/sound/mt2701-wm8960.txt
deleted file mode 100644 (file)
index 809b609..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-MT2701 with WM8960 CODEC
-
-Required properties:
-- compatible: "mediatek,mt2701-wm8960-machine"
-- mediatek,platform: the phandle of MT2701 ASoC platform
-- audio-routing: a list of the connections between audio
-- mediatek,audio-codec: the phandles of wm8960 codec
-- pinctrl-names: Should contain only one value - "default"
-- pinctrl-0: Should specify pin control groups used for this controller.
-
-Example:
-
-       sound:sound {
-               compatible = "mediatek,mt2701-wm8960-machine";
-               mediatek,platform = <&afe>;
-               audio-routing =
-                       "Headphone", "HP_L",
-                       "Headphone", "HP_R",
-                       "LINPUT1", "AMIC",
-                       "RINPUT1", "AMIC";
-               mediatek,audio-codec = <&wm8960>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&aud_pins_default>;
-       };
index 9853c11a1330b8bc06433543153096cfac9c63f2..cbc641ecbe94afee731c7494875e11183a9b389e 100644 (file)
@@ -12,17 +12,46 @@ maintainers:
 description:
   This binding describes the MT8186 sound card.
 
+allOf:
+  - $ref: sound-card-common.yaml#
+
 properties:
   compatible:
     enum:
       - mediatek,mt8186-mt6366-da7219-max98357-sound
 
+  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 the input or output widgets of audio components,
+      power supplies, MicBias of codec and the software switch.
+    minItems: 2
+    items:
+      enum:
+        # Sinks
+        - HDMI1
+        - Headphones
+        - Line Out
+        - MIC
+        - Speakers
+
+        # Sources
+        - Headset Mic
+        - HPL
+        - HPR
+        - Speaker
+        - TX
+
   mediatek,platform:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: The phandle of MT8186 ASoC platform.
 
   headset-codec:
     type: object
+    deprecated: true
     additionalProperties: false
     properties:
       sound-dai:
@@ -32,6 +61,7 @@ properties:
 
   playback-codecs:
     type: object
+    deprecated: true
     additionalProperties: false
     properties:
       sound-dai:
@@ -53,32 +83,115 @@ properties:
       A list of the desired dai-links in the sound card. Each entry is a
       name defined in the machine driver.
 
-additionalProperties: false
+patternProperties:
+  ".*-dai-link$":
+    type: object
+    additionalProperties: false
+    description:
+      Container for dai-link level properties and CODEC sub-nodes.
+
+    properties:
+      link-name:
+        description: Indicates dai-link name and PCM stream name
+        items:
+          enum:
+            - I2S0
+            - I2S1
+            - I2S2
+            - I2S3
+
+      codec:
+        description: Holds subnode which indicates codec dai.
+        type: object
+        additionalProperties: false
+        properties:
+          sound-dai:
+            minItems: 1
+            maxItems: 2
+        required:
+          - sound-dai
+
+      dai-format:
+        description: audio format
+        items:
+          enum:
+            - i2s
+            - right_j
+            - left_j
+            - dsp_a
+            - dsp_b
+
+      mediatek,clk-provider:
+        $ref: /schemas/types.yaml#/definitions/string
+        description: Indicates dai-link clock master.
+        items:
+          enum:
+            - cpu
+            - codec
+
+    required:
+      - link-name
+
+unevaluatedProperties: false
 
 required:
   - compatible
   - mediatek,platform
-  - headset-codec
-  - playback-codecs
+
+# Disallow legacy properties if xxx-dai-link nodes are specified
+if:
+  not:
+    patternProperties:
+      ".*-dai-link$": false
+then:
+  properties:
+    headset-codec: false
+    speaker-codecs: false
 
 examples:
   - |
 
     sound: mt8186-sound {
         compatible = "mediatek,mt8186-mt6366-da7219-max98357-sound";
-        mediatek,platform = <&afe>;
+        model = "mt8186_da7219_m98357";
         pinctrl-names = "aud_clk_mosi_off",
                         "aud_clk_mosi_on";
         pinctrl-0 = <&aud_clk_mosi_off>;
         pinctrl-1 = <&aud_clk_mosi_on>;
+        mediatek,platform = <&afe>;
+
+        audio-routing =
+                "Headphones", "HPL",
+                "Headphones", "HPR",
+                "MIC", "Headset Mic",
+                "Speakers", "Speaker",
+                "HDMI1", "TX";
+
+        hs-playback-dai-link {
+                link-name = "I2S0";
+                dai-format = "i2s";
+                mediatek,clk-provider = "cpu";
+                codec {
+                        sound-dai = <&da7219>;
+                };
+        };
 
-        headset-codec {
-            sound-dai = <&da7219>;
+        hs-capture-dai-link {
+                link-name = "I2S1";
+                dai-format = "i2s";
+                mediatek,clk-provider = "cpu";
+                codec {
+                        sound-dai = <&da7219>;
+                };
         };
 
-        playback-codecs {
-            sound-dai = <&anx_bridge_dp>,
-                        <&max98357a>;
+        spk-dp-playback-dai-link {
+                link-name = "I2S3";
+                dai-format = "i2s";
+                mediatek,clk-provider = "cpu";
+                codec {
+                        sound-dai = <&anx_bridge_dp>, <&max98357a>;
+                };
         };
     };
 
index bdf7b09605330a910451ceb59792f995d8046de3..ed93f18ef985cfe9b3ba5884af4679510a4bdaaf 100644 (file)
@@ -12,6 +12,9 @@ maintainers:
 description:
   This binding describes the MT8186 sound card.
 
+allOf:
+  - $ref: sound-card-common.yaml#
+
 properties:
   compatible:
     enum:
@@ -19,6 +22,34 @@ properties:
       - mediatek,mt8186-mt6366-rt5682s-max98360-sound
       - mediatek,mt8186-mt6366-rt5650-sound
 
+  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 the input or output widgets of audio components,
+      power supplies, MicBias of codec and the software switch.
+    minItems: 2
+    items:
+      enum:
+        # Sinks
+        - HDMI1
+        - Headphone
+        - IN1P
+        - IN1N
+        - Line Out
+        - Speakers
+
+        # Sources
+        - Headset Mic
+        - HPOL
+        - HPOR
+        - Speaker
+        - SPOL
+        - SPOR
+        - TX
+
   mediatek,platform:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: The phandle of MT8186 ASoC platform.
@@ -32,6 +63,7 @@ properties:
 
   headset-codec:
     type: object
+    deprecated: true
     additionalProperties: false
     properties:
       sound-dai:
@@ -41,6 +73,7 @@ properties:
 
   playback-codecs:
     type: object
+    deprecated: true
     additionalProperties: false
     properties:
       sound-dai:
@@ -62,13 +95,56 @@ properties:
       A list of the desired dai-links in the sound card. Each entry is a
       name defined in the machine driver.
 
-additionalProperties: false
+patternProperties:
+  ".*-dai-link$":
+    type: object
+    additionalProperties: false
+    description:
+      Container for dai-link level properties and CODEC sub-nodes.
+
+    properties:
+      link-name:
+        description: Indicates dai-link name and PCM stream name
+        enum: [ I2S0, I2S1, I2S2, I2S3 ]
+
+      codec:
+        description: Holds subnode which indicates codec dai.
+        type: object
+        additionalProperties: false
+        properties:
+          sound-dai:
+            minItems: 1
+            maxItems: 2
+        required:
+          - sound-dai
+
+      dai-format:
+        description: audio format
+        enum: [ i2s, right_j, left_j, dsp_a, dsp_b ]
+
+      mediatek,clk-provider:
+        $ref: /schemas/types.yaml#/definitions/string
+        description: Indicates dai-link clock master.
+        enum: [ cpu, codec ]
+
+    required:
+      - link-name
+
+unevaluatedProperties: false
 
 required:
   - compatible
   - mediatek,platform
-  - headset-codec
-  - playback-codecs
+
+# Disallow legacy properties if xxx-dai-link nodes are specified
+if:
+  not:
+    patternProperties:
+      ".*-dai-link$": false
+then:
+  properties:
+    headset-codec: false
+    speaker-codecs: false
 
 examples:
   - |
@@ -76,23 +152,49 @@ examples:
 
     sound: mt8186-sound {
         compatible = "mediatek,mt8186-mt6366-rt1019-rt5682s-sound";
-        mediatek,platform = <&afe>;
+        model = "mt8186_rt1019_rt5682s";
         pinctrl-names = "aud_clk_mosi_off",
                         "aud_clk_mosi_on",
                         "aud_gpio_dmic_sec";
         pinctrl-0 = <&aud_clk_mosi_off>;
         pinctrl-1 = <&aud_clk_mosi_on>;
         pinctrl-2 = <&aud_gpio_dmic_sec>;
+        mediatek,platform = <&afe>;
 
         dmic-gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
 
-        headset-codec {
-            sound-dai = <&rt5682s>;
+        audio-routing =
+                "Headphone", "HPOL",
+                "Headphone", "HPOR",
+                "IN1P", "Headset Mic",
+                "Speakers", "Speaker",
+                "HDMI1", "TX";
+
+        hs-playback-dai-link {
+                link-name = "I2S0";
+                dai-format = "i2s";
+                mediatek,clk-provider = "cpu";
+                codec {
+                        sound-dai = <&rt5682s 0>;
+                };
+        };
+
+        hs-capture-dai-link {
+                link-name = "I2S1";
+                dai-format = "i2s";
+                mediatek,clk-provider = "cpu";
+                codec {
+                        sound-dai = <&rt5682s 0>;
+                };
         };
 
-        playback-codecs {
-             sound-dai = <&it6505dptx>,
-                         <&rt1019p>;
+        spk-hdmi-playback-dai-link {
+                link-name = "I2S3";
+                dai-format = "i2s";
+                mediatek,clk-provider = "cpu";
+                codec {
+                        sound-dai = <&it6505dptx>, <&rt1019p>;
+                };
         };
     };
 
index 7e50f5d65c8fbd235be00af5cbd7a309b7ae15bd..c4e68f31aaabd7e3f19e004e2d78f77a0ed1a7be 100644 (file)
@@ -13,6 +13,9 @@ maintainers:
 description:
   This binding describes the MT8192 sound card.
 
+allOf:
+  - $ref: sound-card-common.yaml#
+
 properties:
   compatible:
     enum:
@@ -20,6 +23,31 @@ properties:
       - mediatek,mt8192_mt6359_rt1015p_rt5682
       - mediatek,mt8192_mt6359_rt1015p_rt5682s
 
+  audio-routing:
+    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 the input or output widgets of audio components,
+      power supplies, MicBias of codec and the software switch.
+    minItems: 2
+    items:
+      enum:
+        # Sinks
+        - Speakers
+        - Headphone Jack
+        - IN1P
+        - Left Spk
+        - Right Spk
+
+        # Sources
+        - Headset Mic
+        - HPOL
+        - HPOR
+        - Left SPO
+        - Right SPO
+        - Speaker
+
   mediatek,platform:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: The phandle of MT8192 ASoC platform.
@@ -27,10 +55,12 @@ properties:
   mediatek,hdmi-codec:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: The phandle of HDMI codec.
+    deprecated: true
 
   headset-codec:
     type: object
     additionalProperties: false
+    deprecated: true
 
     properties:
       sound-dai:
@@ -41,6 +71,7 @@ properties:
   speaker-codecs:
     type: object
     additionalProperties: false
+    deprecated: true
 
     properties:
       sound-dai:
@@ -51,33 +82,121 @@ properties:
     required:
       - sound-dai
 
-additionalProperties: false
+patternProperties:
+  ".*-dai-link$":
+    type: object
+    additionalProperties: false
+
+    description:
+      Container for dai-link level properties and CODEC sub-nodes.
+
+    properties:
+      link-name:
+        description: Indicates dai-link name and PCM stream name
+        enum:
+          - I2S0
+          - I2S1
+          - I2S2
+          - I2S3
+          - I2S4
+          - I2S5
+          - I2S6
+          - I2S7
+          - I2S8
+          - I2S9
+          - TDM
+
+      codec:
+        description: Holds subnode which indicates codec dai.
+        type: object
+        additionalProperties: false
+        properties:
+          sound-dai:
+            minItems: 1
+            maxItems: 2
+        required:
+          - sound-dai
+
+      dai-format:
+        description: audio format
+        enum: [ i2s, right_j, left_j, dsp_a, dsp_b ]
+
+      mediatek,clk-provider:
+        $ref: /schemas/types.yaml#/definitions/string
+        description: Indicates dai-link clock master.
+        enum: [ cpu, codec ]
+
+    required:
+      - link-name
+
+unevaluatedProperties: false
 
 required:
   - compatible
   - mediatek,platform
-  - headset-codec
-  - speaker-codecs
+
+# Disallow legacy properties if xxx-dai-link nodes are specified
+if:
+  not:
+    patternProperties:
+      ".*-dai-link$": false
+then:
+  properties:
+    headset-codec: false
+    speaker-codecs: false
+    mediatek,hdmi-codec: false
 
 examples:
   - |
 
     sound: mt8192-sound {
         compatible = "mediatek,mt8192_mt6359_rt1015_rt5682";
-        mediatek,platform = <&afe>;
-        mediatek,hdmi-codec = <&anx_bridge_dp>;
+        model = "mt8192_mt6359_rt1015_rt5682";
         pinctrl-names = "aud_clk_mosi_off",
                         "aud_clk_mosi_on";
         pinctrl-0 = <&aud_clk_mosi_off>;
         pinctrl-1 = <&aud_clk_mosi_on>;
+        mediatek,platform = <&afe>;
+
+        audio-routing =
+                "Headphone Jack", "HPOL",
+                "Headphone Jack", "HPOR",
+                "IN1P", "Headset Mic",
+                "Speakers", "Speaker";
+
+        spk-playback-dai-link {
+                link-name = "I2S3";
+                dai-format = "i2s";
+                mediatek,clk-provider = "cpu";
+                codec {
+                        sound-dai = <&rt1015p>;
+                };
+        };
+
+        hs-playback-dai-link {
+                link-name = "I2S8";
+                dai-format = "i2s";
+                mediatek,clk-provider = "cpu";
+                codec {
+                        sound-dai = <&rt5682 0>;
+                };
+        };
 
-        headset-codec {
-            sound-dai = <&rt5682>;
+        hs-capture-dai-link {
+                link-name = "I2S9";
+                dai-format = "i2s";
+                mediatek,clk-provider = "cpu";
+                codec {
+                        sound-dai = <&rt5682 0>;
+                };
         };
 
-        speaker-codecs {
-            sound-dai = <&rt1015_l>,
-                        <&rt1015_r>;
+        displayport-dai-link {
+                link-name = "TDM";
+                dai-format = "dsp_a";
+                codec {
+                        sound-dai = <&anx_bridge_dp>;
+                };
         };
     };
 
index c1ddbf672ca3fba06086a278bc68271bc0fa1420..2af1d8ffbd8b58f1dce42b369fd699795183a7d7 100644 (file)
@@ -12,6 +12,9 @@ maintainers:
 description:
   This binding describes the MT8195 sound card.
 
+allOf:
+  - $ref: sound-card-common.yaml#
+
 properties:
   compatible:
     enum:
@@ -23,6 +26,33 @@ properties:
     $ref: /schemas/types.yaml#/definitions/string
     description: User specified audio sound card name
 
+  audio-routing:
+    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 the input or output widgets of audio components,
+      power supplies, MicBias of codec and the software switch.
+    minItems: 2
+    items:
+      enum:
+        # Sinks
+        - Ext Spk
+        - Headphone
+        - IN1P
+        - Left Spk
+        - Right Spk
+
+        # Sources
+        - Headset Mic
+        - HPOL
+        - HPOR
+        - Left BE_OUT
+        - Left SPO
+        - Right BE_OUT
+        - Right SPO
+        - Speaker
+
   mediatek,platform:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: The phandle of MT8195 ASoC platform.
@@ -30,10 +60,12 @@ properties:
   mediatek,dptx-codec:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: The phandle of MT8195 Display Port Tx codec node.
+    deprecated: true
 
   mediatek,hdmi-codec:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: The phandle of MT8195 HDMI codec node.
+    deprecated: true
 
   mediatek,adsp:
     $ref: /schemas/types.yaml#/definitions/phandle
@@ -45,20 +77,122 @@ properties:
       A list of the desired dai-links in the sound card. Each entry is a
       name defined in the machine driver.
 
+patternProperties:
+  ".*-dai-link$":
+    type: object
+    additionalProperties: false
+    description:
+      Container for dai-link level properties and CODEC sub-nodes.
+
+    properties:
+      link-name:
+        description: Indicates dai-link name and PCM stream name
+        enum:
+          - DPTX_BE
+          - ETDM1_IN_BE
+          - ETDM2_IN_BE
+          - ETDM1_OUT_BE
+          - ETDM2_OUT_BE
+          - ETDM3_OUT_BE
+          - PCM1_BE
+
+      codec:
+        description: Holds subnode which indicates codec dai.
+        type: object
+        additionalProperties: false
+        properties:
+          sound-dai:
+            minItems: 1
+            maxItems: 2
+        required:
+          - sound-dai
+
+      dai-format:
+        description: audio format
+        enum: [ i2s, right_j, left_j, dsp_a, dsp_b ]
+
+      mediatek,clk-provider:
+        $ref: /schemas/types.yaml#/definitions/string
+        description: Indicates dai-link clock master.
+        enum: [ cpu, codec ]
+
+    required:
+      - link-name
+
 additionalProperties: false
 
 required:
   - compatible
   - mediatek,platform
 
+# Disallow legacy properties if xxx-dai-link nodes are specified
+if:
+  not:
+    patternProperties:
+      ".*-dai-link$": false
+then:
+  properties:
+    mediatek,dptx-codec: false
+    mediatek,hdmi-codec: false
+
 examples:
   - |
 
     sound: mt8195-sound {
         compatible = "mediatek,mt8195_mt6359_rt1019_rt5682";
+        model = "mt8195_r1019_5682";
         mediatek,platform = <&afe>;
         pinctrl-names = "default";
         pinctrl-0 = <&aud_pins_default>;
+
+        audio-routing =
+                "Headphone", "HPOL",
+                "Headphone", "HPOR",
+                "IN1P", "Headset Mic",
+                "Ext Spk", "Speaker";
+
+        mm-dai-link {
+                link-name = "ETDM1_IN_BE";
+                mediatek,clk-provider = "cpu";
+        };
+
+        hs-playback-dai-link {
+                link-name = "ETDM1_OUT_BE";
+                mediatek,clk-provider = "cpu";
+                codec {
+                        sound-dai = <&headset_codec>;
+                };
+        };
+
+        hs-capture-dai-link {
+                link-name = "ETDM2_IN_BE";
+                mediatek,clk-provider = "cpu";
+                codec {
+                        sound-dai = <&headset_codec>;
+                };
+        };
+
+        spk-playback-dai-link {
+                link-name = "ETDM2_OUT_BE";
+                mediatek,clk-provider = "cpu";
+                codec {
+                        sound-dai = <&spk_amplifier>;
+                };
+        };
+
+        hdmi-dai-link {
+                link-name = "ETDM3_OUT_BE";
+                codec {
+                        sound-dai = <&hdmi_tx>;
+                };
+        };
+
+        displayport-dai-link {
+                link-name = "DPTX_BE";
+                codec {
+                        sound-dai = <&dp_tx>;
+                };
+        };
     };
 
 ...
diff --git a/Bindings/sound/nuvoton,nau8325.yaml b/Bindings/sound/nuvoton,nau8325.yaml
new file mode 100644 (file)
index 0000000..979be0d
--- /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/sound/nuvoton,nau8325.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NAU8325 audio Amplifier
+
+maintainers:
+  - Seven Lee <WTLI@nuvoton.com>
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    const: nuvoton,nau8325
+
+  reg:
+    maxItems: 1
+
+  nuvoton,vref-impedance-ohms:
+    description:
+      The vref impedance to be used in ohms. Middle of voltage enables
+      Tie-Off selection options. Due to the high impedance of the VREF
+      pin, it is important to use a low-leakage capacitor.
+
+    enum: [0, 25000, 125000, 2500]
+
+  nuvoton,dac-vref-microvolt:
+    description:
+      The DAC vref to be used in voltage. DAC reference voltage setting. Can
+      be used for minor tuning of the output level. Since the VDDA is range
+      between 1.62 to 1.98 voltage, the typical value for design is 1.8V. After
+      the minor tuning, the final microvolt are as the below.
+
+    enum: [1800000, 2700000, 2880000, 3060000]
+
+  nuvoton,alc-enable:
+    description:
+      Enable digital automatic level control (ALC) function.
+    type: boolean
+
+  nuvoton,clock-detection-disable:
+    description:
+      When clock detection is enabled, it will detect whether MCLK
+      and FS are within the range. MCLK range is from 2.048MHz to 24.576MHz.
+      FS range is from 8kHz to 96kHz. And also needs to detect the ratio
+      MCLK_SRC/LRCK of 256, 400 or 500, and needs to detect the BCLK
+      to make sure data is present. There needs to be at least 8 BCLK
+      cycles per Frame Sync.
+    type: boolean
+
+  nuvoton,clock-det-data:
+    description:
+      Request clock detection to require 2048 non-zero samples before enabling
+      the audio paths. If set then non-zero samples is required, otherwise it
+      doesn't matter.
+    type: boolean
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        codec@21 {
+            compatible = "nuvoton,nau8325";
+            reg = <0x21>;
+            nuvoton,vref-impedance-ohms = <125000>;
+            nuvoton,dac-vref-microvolt = <2880000>;
+            nuvoton,alc-enable;
+            nuvoton,clock-det-data;
+        };
+    };
index 054b53954ac3d812195ce401f74dca69d82e69c5..9f44168efb3ed159cf4175890e67609e784aeddb 100644 (file)
@@ -103,6 +103,12 @@ properties:
         just limited to the left adc for design demand.
     type: boolean
 
+  nuvoton,adc-delay-ms:
+    description: Delay (in ms) to make input path stable and avoid pop noise.
+    minimum: 125
+    maximum: 500
+    default: 125
+
   '#sound-dai-cells':
     const: 0
 
@@ -136,6 +142,7 @@ examples:
             nuvoton,jack-eject-debounce = <0>;
             nuvoton,dmic-clk-threshold = <3072000>;
             nuvoton,dmic-slew-rate = <0>;
+            nuvoton,adc-delay-ms = <125>;
             #sound-dai-cells = <0>;
         };
     };
diff --git a/Bindings/sound/nvidia,tegra20-ac97.txt b/Bindings/sound/nvidia,tegra20-ac97.txt
deleted file mode 100644 (file)
index eaf0010..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-NVIDIA Tegra 20 AC97 controller
-
-Required properties:
-- compatible : "nvidia,tegra20-ac97"
-- reg : Should contain AC97 controller registers location and length
-- interrupts : Should contain AC97 interrupt
-- resets : Must contain an entry for each entry in reset-names.
-  See ../reset/reset.txt for details.
-- reset-names : Must include the following entries:
-  - ac97
-- dmas : Must contain an entry for each entry in clock-names.
-  See ../dma/dma.txt for details.
-- dma-names : Must include the following entries:
-  - rx
-  - tx
-- clocks : Must contain one entry, for the module clock.
-  See ../clocks/clock-bindings.txt for details.
-- nvidia,codec-reset-gpio : The Tegra GPIO controller's phandle and the number
-  of the GPIO used to reset the external AC97 codec
-- nvidia,codec-sync-gpio : The Tegra GPIO controller's phandle and the number
-  of the GPIO corresponding with the AC97 DAP _FS line
-
-Example:
-
-ac97@70002000 {
-       compatible = "nvidia,tegra20-ac97";
-       reg = <0x70002000 0x200>;
-       interrupts = <0 81 0x04>;
-       nvidia,codec-reset-gpio = <&gpio 170 0>;
-       nvidia,codec-sync-gpio = <&gpio 120 0>;
-       clocks = <&tegra_car 3>;
-       resets = <&tegra_car 3>;
-       reset-names = "ac97";
-       dmas = <&apbdma 12>, <&apbdma 12>;
-       dma-names = "rx", "tx";
-};
diff --git a/Bindings/sound/nvidia,tegra20-ac97.yaml b/Bindings/sound/nvidia,tegra20-ac97.yaml
new file mode 100644 (file)
index 0000000..4ea0a30
--- /dev/null
@@ -0,0 +1,82 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/nvidia,tegra20-ac97.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra20 AC97 controller
+
+maintainers:
+  - Thierry Reding <treding@nvidia.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+properties:
+  compatible:
+    const: nvidia,tegra20-ac97
+
+  reg:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    const: ac97
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  dmas:
+    maxItems: 2
+
+  dma-names:
+    items:
+      - const: rx
+      - const: tx
+
+  nvidia,codec-reset-gpios:
+    description: Reset pin of external AC97 codec
+    maxItems: 1
+
+  nvidia,codec-sync-gpios:
+    description: AC97 DAP _FS line
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - resets
+  - reset-names
+  - interrupts
+  - clocks
+  - dmas
+  - dma-names
+  - nvidia,codec-reset-gpios
+  - nvidia,codec-sync-gpios
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/tegra20-car.h>
+    #include <dt-bindings/gpio/tegra-gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    ac97@70002000 {
+        compatible = "nvidia,tegra20-ac97";
+        reg = <0x70002000 0x200>;
+        resets = <&tegra_car 3>;
+        reset-names = "ac97";
+        interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&tegra_car 3>;
+        dmas = <&apbdma 12>, <&apbdma 12>;
+        dma-names = "rx", "tx";
+        nvidia,codec-reset-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
+        nvidia,codec-sync-gpios = <&gpio TEGRA_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
+    };
+...
diff --git a/Bindings/sound/nvidia,tegra20-das.txt b/Bindings/sound/nvidia,tegra20-das.txt
deleted file mode 100644 (file)
index 6de3a7e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-NVIDIA Tegra 20 DAS (Digital Audio Switch) controller
-
-Required properties:
-- compatible : "nvidia,tegra20-das"
-- reg : Should contain DAS registers location and length
-
-Example:
-
-das@70000c00 {
-       compatible = "nvidia,tegra20-das";
-       reg = <0x70000c00 0x80>;
-};
diff --git a/Bindings/sound/nvidia,tegra20-das.yaml b/Bindings/sound/nvidia,tegra20-das.yaml
new file mode 100644 (file)
index 0000000..44c5ce8
--- /dev/null
@@ -0,0 +1,36 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/nvidia,tegra20-das.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra 20 DAS (Digital Audio Switch) controller
+
+maintainers:
+  - Thierry Reding <treding@nvidia.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+properties:
+  compatible:
+    const: nvidia,tegra20-das
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    bus {
+        #address-cells = <1>;
+        #size-cells = <1>;
+        das@70000c00 {
+            compatible = "nvidia,tegra20-das";
+            reg = <0x70000c00 0x80>;
+        };
+    };
+...
diff --git a/Bindings/sound/nvidia,tegra30-i2s.txt b/Bindings/sound/nvidia,tegra30-i2s.txt
deleted file mode 100644 (file)
index 38caa93..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-NVIDIA Tegra30 I2S controller
-
-Required properties:
-- compatible : For Tegra30, must contain "nvidia,tegra30-i2s".  For Tegra124,
-  must contain "nvidia,tegra124-i2s".  Otherwise, must contain
-  "nvidia,<chip>-i2s" plus at least one of the above, where <chip> is
-  tegra114 or tegra132.
-- reg : Should contain I2S registers location and length
-- clocks : Must contain one entry, for the module clock.
-  See ../clocks/clock-bindings.txt for details.
-- resets : Must contain an entry for each entry in reset-names.
-  See ../reset/reset.txt for details.
-- reset-names : Must include the following entries:
-  - i2s
-- nvidia,ahub-cif-ids : The list of AHUB CIF IDs for this port, rx (playback)
-  first, tx (capture) second. See nvidia,tegra30-ahub.txt for values.
-
-Example:
-
-i2s@70080300 {
-       compatible = "nvidia,tegra30-i2s";
-       reg = <0x70080300 0x100>;
-       nvidia,ahub-cif-ids = <4 4>;
-       clocks = <&tegra_car 11>;
-       resets = <&tegra_car 11>;
-       reset-names = "i2s";
-};
diff --git a/Bindings/sound/nvidia,tegra30-i2s.yaml b/Bindings/sound/nvidia,tegra30-i2s.yaml
new file mode 100644 (file)
index 0000000..89c3c64
--- /dev/null
@@ -0,0 +1,67 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/nvidia,tegra30-i2s.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra30 I2S controller
+
+maintainers:
+  - Thierry Reding <treding@nvidia.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - nvidia,tegra124-i2s
+          - nvidia,tegra30-i2s
+      - items:
+          - const: nvidia,tegra114-i2s
+          - const: nvidia,tegra30-i2s
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: i2s
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    const: i2s
+
+  nvidia,ahub-cif-ids:
+    description: list of AHUB CIF IDs
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    items:
+      - description: rx (playback)
+      - description: tx (capture)
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - resets
+  - reset-names
+  - nvidia,ahub-cif-ids
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/tegra30-car.h>
+
+    i2s@70080300 {
+        compatible = "nvidia,tegra30-i2s";
+        reg = <0x70080300 0x100>;
+        nvidia,ahub-cif-ids = <4 4>;
+        clocks = <&tegra_car TEGRA30_CLK_I2S0>;
+        resets = <&tegra_car 30>;
+        reset-names = "i2s";
+    };
+...
index 2ab6871e89e5e03eb34071edb9f11c471533cd60..b2e15ebbd1bc9864a1a23caff42b5c2e37e496fa 100644 (file)
@@ -29,6 +29,8 @@ properties:
       - enum:
           - qcom,apq8016-sbc-sndcard
           - qcom,msm8916-qdsp6-sndcard
+          - qcom,qcm6490-idp-sndcard
+          - qcom,qcs6490-rb3gen2-sndcard
           - qcom,qrb5165-rb5-sndcard
           - qcom,sc7180-qdsp6-sndcard
           - qcom,sc8280xp-sndcard
index 0d7a6b576d8802e73b96bd3b209eb67f6e617b49..07ec6247d9defc4176fa638df8d96bbf5bd46a06 100644 (file)
@@ -48,13 +48,16 @@ properties:
           - const: renesas,rcar_sound-gen3
       # for Gen4 SoC
       - items:
-          - const: renesas,rcar_sound-r8a779g0  # R-Car V4H
+          - enum:
+              - renesas,rcar_sound-r8a779g0  # R-Car V4H
+              - renesas,rcar_sound-r8a779h0  # R-Car V4M
           - const: renesas,rcar_sound-gen4
       # for Generic
       - enum:
           - renesas,rcar_sound-gen1
           - renesas,rcar_sound-gen2
           - renesas,rcar_sound-gen3
+          - renesas,rcar_sound-gen4
 
   reg:
     minItems: 1
diff --git a/Bindings/sound/rockchip,rk3308-codec.yaml b/Bindings/sound/rockchip,rk3308-codec.yaml
new file mode 100644 (file)
index 0000000..ecf3d7d
--- /dev/null
@@ -0,0 +1,98 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/rockchip,rk3308-codec.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip RK3308 Internal Codec
+
+description: |
+  This is the audio codec embedded in the Rockchip RK3308
+  SoC. It has 8 24-bit ADCs and 2 24-bit DACs. The maximum supported
+  sampling rate is 192 kHz.
+
+  It is connected internally to one out of a selection of the internal I2S
+  controllers.
+
+  The RK3308 audio codec has 8 independent capture channels, but some
+  features work on stereo pairs called groups:
+    * grp 0 -- MIC1 / MIC2
+    * grp 1 -- MIC3 / MIC4
+    * grp 2 -- MIC5 / MIC6
+    * grp 3 -- MIC7 / MIC8
+
+maintainers:
+  - Luca Ceresoli <luca.ceresoli@bootlin.com>
+
+properties:
+  compatible:
+    const: rockchip,rk3308-codec
+
+  reg:
+    maxItems: 1
+
+  rockchip,grf:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the General Register Files (GRF)
+
+  clocks:
+    items:
+      - description: clock for TX
+      - description: clock for RX
+      - description: AHB clock driving the interface
+
+  clock-names:
+    items:
+      - const: mclk_tx
+      - const: mclk_rx
+      - const: hclk
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    items:
+      - const: codec
+
+  "#sound-dai-cells":
+    const: 0
+
+  rockchip,micbias-avdd-percent:
+    description: |
+      Voltage setting for the MICBIAS pins expressed as a percentage of
+      AVDD.
+
+      E.g. if rockchip,micbias-avdd-percent = 85 and AVDD = 3v3, then the
+      MIC BIAS voltage will be 3.3 V * 85% = 2.805 V.
+
+    enum: [ 50, 55, 60, 65, 70, 75, 80, 85 ]
+
+required:
+  - compatible
+  - reg
+  - rockchip,grf
+  - clocks
+  - resets
+  - "#sound-dai-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/rk3308-cru.h>
+
+    audio_codec: audio-codec@ff560000 {
+        compatible = "rockchip,rk3308-codec";
+        reg = <0xff560000 0x10000>;
+        rockchip,grf = <&grf>;
+        clock-names = "mclk_tx", "mclk_rx", "hclk";
+        clocks = <&cru SCLK_I2S2_8CH_TX_OUT>,
+                 <&cru SCLK_I2S2_8CH_RX_OUT>,
+                 <&cru PCLK_ACODEC>;
+        reset-names = "codec";
+        resets = <&cru SRST_ACODEC_P>;
+        #sound-dai-cells = <0>;
+    };
+
+...
index b9111d375b93f52de81452e2a119c833ee2f9e22..8978f6bd63e59eed24243695c170f814299ba24d 100644 (file)
@@ -65,6 +65,10 @@ properties:
     $ref: audio-graph-port.yaml#
     unevaluatedProperties: false
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - "#sound-dai-cells"
index 59df8a832310da21acab762924d6a012ea836ee7..68f97b462598bc4cf1a7ef1455f82bcca5889057 100644 (file)
@@ -48,6 +48,10 @@ properties:
   clock-names:
     maxItems: 3
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
@@ -68,7 +72,7 @@ patternProperties:
     properties:
       compatible:
         description: Compatible for SAI sub-block A or B.
-        pattern: "st,stm32-sai-sub-[ab]"
+        pattern: "^st,stm32-sai-sub-[ab]$"
 
       "#sound-dai-cells":
         const: 0
index bc48151b9adbdc0e219230dd9af1b8ca0ecf4f3e..3dedc81ec12f67ae539d30782656fd2b79837695 100644 (file)
@@ -50,6 +50,10 @@ properties:
   resets:
     maxItems: 1
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - "#sound-dai-cells"
diff --git a/Bindings/sound/ti,pcm1681.txt b/Bindings/sound/ti,pcm1681.txt
deleted file mode 100644 (file)
index 4df1718..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-Texas Instruments PCM1681 8-channel PWM Processor
-
-Required properties:
-
- - compatible:         Should contain "ti,pcm1681".
- - reg:                        The i2c address. Should contain <0x4c>.
-
-Examples:
-
-       i2c_bus {
-               pcm1681@4c {
-                       compatible = "ti,pcm1681";
-                       reg = <0x4c>;
-               };
-       };
diff --git a/Bindings/sound/ti,pcm1681.yaml b/Bindings/sound/ti,pcm1681.yaml
new file mode 100644 (file)
index 0000000..5aa0061
--- /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/sound/ti,pcm1681.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments PCM1681 8-channel PWM Processor
+
+maintainers:
+  - Shenghao Ding <shenghao-ding@ti.com>
+  - Kevin Lu <kevin-lu@ti.com>
+  - Baojun Xu <baojun.xu@ti.com>
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    const: ti,pcm1681
+
+  reg:
+    maxItems: 1
+
+  "#sound-dai-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pcm1681: audio-codec@4c {
+            compatible = "ti,pcm1681";
+            reg = <0x4c>;
+        };
+    };
diff --git a/Bindings/sound/ti,pcm6240.yaml b/Bindings/sound/ti,pcm6240.yaml
new file mode 100644 (file)
index 0000000..dd5b08e
--- /dev/null
@@ -0,0 +1,177 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2022 - 2024 Texas Instruments Incorporated
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/ti,pcm6240.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments PCM6240 Family Audio ADC/DAC
+
+maintainers:
+  - Shenghao Ding <shenghao-ding@ti.com>
+
+description: |
+  The PCM6240 Family is a big family of Audio ADC/DAC for
+  different Specifications, range from Personal Electric
+  to Automotive Electric, even some professional fields.
+
+  Specifications about the audio chip can be found at:
+    https://www.ti.com/lit/gpn/tlv320adc3120
+    https://www.ti.com/lit/gpn/tlv320adc5120
+    https://www.ti.com/lit/gpn/tlv320adc6120
+    https://www.ti.com/lit/gpn/dix4192
+    https://www.ti.com/lit/gpn/pcm1690
+    https://www.ti.com/lit/gpn/pcm3120-q1
+    https://www.ti.com/lit/gpn/pcm3140-q1
+    https://www.ti.com/lit/gpn/pcm5120-q1
+    https://www.ti.com/lit/gpn/pcm6120-q1
+    https://www.ti.com/lit/gpn/pcm6260-q1
+    https://www.ti.com/lit/gpn/pcm9211
+    https://www.ti.com/lit/gpn/pcmd3140
+    https://www.ti.com/lit/gpn/pcmd3180
+    https://www.ti.com/lit/gpn/taa5212
+    https://www.ti.com/lit/gpn/tad5212
+
+properties:
+  compatible:
+    description: |
+      ti,adc3120: Stereo-channel, 768-kHz, Burr-Brownâ„¢ audio analog-to-
+      digital converter (ADC) with 106-dB SNR.
+
+      ti,adc5120: 2-Channel, 768-kHz, Burr-Brownâ„¢ Audio ADC with 120-dB SNR.
+
+      ti,adc6120: Stereo-channel, 768-kHz, Burr-Brownâ„¢ audio analog-to-
+      digital converter (ADC) with 123-dB SNR.
+
+      ti,dix4192: 216-kHz digital audio converter with Quad-Channel In
+      and One-Channel Out.
+
+      ti,pcm1690: Automotive Catalog 113dB SNR 8-Channel Audio DAC with
+      Differential Outputs.
+
+      ti,pcm3120: Automotive, stereo, 106-dB SNR, 768-kHz, low-power
+      software-controlled audio ADC.
+
+      ti,pcm3140: Automotive, Quad-Channel, 768-kHz, Burr-Brownâ„¢ Audio ADC
+      with 106-dB SNR.
+
+      ti,pcm5120: Automotive, stereo, 120-dB SNR, 768-kHz, low-power
+      software-controlled audio ADC.
+
+      ti,pcm5140: Automotive, Quad-Channel, 768-kHz, Burr-Brownâ„¢ Audio ADC
+      with 120-dB SNR.
+
+      ti,pcm6120: Automotive, stereo, 123-dB SNR, 768-kHz, low-power
+      software-controlled audio ADC.
+
+      ti,pcm6140: Automotive, Quad-Channel, 768-kHz, Burr-Brownâ„¢ Audio ADC
+      with 123-dB SNR.
+
+      ti,pcm6240: Automotive 4-ch audio ADC with integrated programmable mic
+      bias, boost and input diagnostics.
+
+      ti,pcm6260: Automotive 6-ch audio ADC with integrated programmable mic
+      bias, boost and input diagnostics.
+
+      ti,pcm9211: 216-kHz digital audio converter With Stereo ADC and
+      Routing.
+
+      ti,pcmd3140: Four-channel PDM-input to TDM or I2S output converter.
+
+      ti,pcmd3180: Eight-channel pulse-density-modulation input to TDM or
+      I2S output converter.
+
+      ti,taa5212: Low-power high-performance stereo audio ADC with 118-dB
+      dynamic range.
+
+      ti,tad5212: Low-power stereo audio DAC with 120-dB dynamic range.
+    oneOf:
+      - items:
+          - enum:
+              - ti,adc3120
+              - ti,adc5120
+              - ti,pcm3120
+              - ti,pcm5120
+              - ti,pcm6120
+          - const: ti,adc6120
+      - items:
+          - enum:
+              - ti,pcmd512x
+              - ti,pcm9211
+              - ti,taa5212
+              - ti,tad5212
+          - const: ti,adc6120
+      - items:
+          - enum:
+              - ti,pcm3140
+              - ti,pcm5140
+              - ti,dix4192
+              - ti,pcm6140
+              - ti,pcm6260
+          - const: ti,pcm6240
+      - items:
+          - enum:
+              - ti,pcmd3140
+              - ti,pcmd3180
+              - ti,pcm1690
+              - ti,taa5412
+              - ti,tad5412
+          - const: ti,pcm6240
+      - enum:
+          - ti,adc6120
+          - ti,pcm6240
+
+  reg:
+    description:
+      I2C address, in multiple pcmdevices case, all the i2c address
+      aggregate as one Audio Device to support multiple audio slots.
+    minItems: 1
+    maxItems: 4
+
+  reset-gpios:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+    description:
+      Invalid only for ti,pcm1690 because of no INT pin.
+
+  '#sound-dai-cells':
+    const: 0
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: dai-common.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ti,pcm1690
+    then:
+      properties:
+        interrupts: false
+
+additionalProperties: false
+
+examples:
+  - |
+   #include <dt-bindings/gpio/gpio.h>
+   i2c {
+     /* example for two devices with interrupt support */
+     #address-cells = <1>;
+     #size-cells = <0>;
+     pcm6240: audio-codec@48 {
+       compatible = "ti,pcm6240";
+       reg = <0x48>, /* primary-device */
+             <0x4b>; /* secondary-device */
+       #sound-dai-cells = <0>;
+       reset-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+       interrupt-parent = <&gpio1>;
+       interrupts = <15>;
+     };
+   };
+...
diff --git a/Bindings/sound/wlf,wm8776.yaml b/Bindings/sound/wlf,wm8776.yaml
new file mode 100644 (file)
index 0000000..7bbc96e
--- /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/sound/wlf,wm8776.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: WM8776 audio CODEC
+
+maintainers:
+  - patches@opensource.cirrus.com
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    const: wlf,wm8776
+
+  reg:
+    maxItems: 1
+
+  "#sound-dai-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        codec@1a {
+            compatible = "wlf,wm8776";
+            reg = <0x1a>;
+        };
+    };
diff --git a/Bindings/sound/wlf,wm8974.txt b/Bindings/sound/wlf,wm8974.txt
deleted file mode 100644 (file)
index 01d3a7c..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-WM8974 audio CODEC
-
-This device supports both I2C and SPI (configured with pin strapping
-on the board).
-
-Required properties:
-  - compatible: "wlf,wm8974"
-  - reg: the I2C address or SPI chip select number of the device
-
-Examples:
-
-codec: wm8974@1a {
-       compatible = "wlf,wm8974";
-       reg = <0x1a>;
-};
diff --git a/Bindings/sound/wlf,wm8974.yaml b/Bindings/sound/wlf,wm8974.yaml
new file mode 100644 (file)
index 0000000..d273002
--- /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/sound/wlf,wm8974.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: WM8974 audio CODEC
+
+maintainers:
+  - patches@opensource.cirrus.com
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    const: wlf,wm8974
+
+  reg:
+    maxItems: 1
+
+  "#sound-dai-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        codec@1a {
+            compatible = "wlf,wm8974";
+            reg = <0x1a>;
+        };
+    };
diff --git a/Bindings/sound/wm8776.txt b/Bindings/sound/wm8776.txt
deleted file mode 100644 (file)
index 0117336..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-WM8776 audio CODEC
-
-This device supports both I2C and SPI (configured with pin strapping
-on the board).
-
-Required properties:
-
-  - compatible : "wlf,wm8776"
-
-  - reg : the I2C address of the device for I2C, the chip select
-          number for SPI.
-
-Example:
-
-wm8776: codec@1a {
-       compatible = "wlf,wm8776";
-       reg = <0x1a>;
-};
diff --git a/Bindings/sound/xmos,xvf3500.yaml b/Bindings/sound/xmos,xvf3500.yaml
new file mode 100644 (file)
index 0000000..fb77a61
--- /dev/null
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/xmos,xvf3500.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: XMOS XVF3500 VocalFusion Voice Processor
+
+maintainers:
+  - Javier Carrasco <javier.carrasco@wolfvision.net>
+
+description:
+  The XMOS XVF3500 VocalFusion Voice Processor is a low-latency, 32-bit
+  multicore controller for voice processing.
+  https://www.xmos.com/xvf3500/
+
+allOf:
+  - $ref: /schemas/usb/usb-device.yaml#
+
+properties:
+  compatible:
+    const: usb20b1,0013
+
+  reg: true
+
+  reset-gpios:
+    maxItems: 1
+
+  vdd-supply:
+    description:
+      Regulator for the 1V0 supply.
+
+  vddio-supply:
+    description:
+      Regulator for the 3V3 supply.
+
+required:
+  - compatible
+  - reg
+  - reset-gpios
+  - vdd-supply
+  - vddio-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    usb {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        voice_processor: voice-processor@1 {
+            compatible = "usb20b1,0013";
+            reg = <1>;
+            reset-gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+            vdd-supply = <&vcc1v0>;
+            vddio-supply = <&vcc3v3>;
+        };
+    };
+
+...
diff --git a/Bindings/spi/airoha,en7581-snand.yaml b/Bindings/spi/airoha,en7581-snand.yaml
new file mode 100644 (file)
index 0000000..b820c56
--- /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/spi/airoha,en7581-snand.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: SPI-NAND flash controller for Airoha ARM SoCs
+
+maintainers:
+  - Lorenzo Bianconi <lorenzo@kernel.org>
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+properties:
+  compatible:
+    const: airoha,en7581-snand
+
+  reg:
+    items:
+      - description: spi base address
+      - description: nfi2spi base address
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: spi
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/en7523-clk.h>
+
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      spi@1fa10000 {
+        compatible = "airoha,en7581-snand";
+        reg = <0x0 0x1fa10000 0x0 0x140>,
+              <0x0 0x1fa11000 0x0 0x160>;
+
+        clocks = <&scuclk EN7523_CLK_SPI>;
+        clock-names = "spi";
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        flash@0 {
+          compatible = "spi-nand";
+          reg = <0>;
+          spi-tx-bus-width = <1>;
+          spi-rx-bus-width = <2>;
+        };
+      };
+    };
index cca81f89e252d55c0aeb7dcaac7caee6096bbf1a..d48ecd6cd5ad83dceb84bfce8738f4f645c472c2 100644 (file)
@@ -68,12 +68,13 @@ properties:
       - items:
           - enum:
               - amd,pensando-elba-qspi
-              - ti,k2g-qspi
-              - ti,am654-ospi
               - intel,lgm-qspi
-              - xlnx,versal-ospi-1.0
               - intel,socfpga-qspi
+              - mobileye,eyeq5-ospi
               - starfive,jh7110-qspi
+              - ti,am654-ospi
+              - ti,k2g-qspi
+              - xlnx,versal-ospi-1.0
           - const: cdns,qspi-nor
       - const: cdns,qspi-nor
 
@@ -145,7 +146,6 @@ required:
   - reg
   - interrupts
   - clocks
-  - cdns,fifo-depth
   - cdns,fifo-width
   - cdns,trigger-address
   - '#address-cells'
diff --git a/Bindings/spi/marvell,armada-3700-spi.yaml b/Bindings/spi/marvell,armada-3700-spi.yaml
new file mode 100644 (file)
index 0000000..61caa1d
--- /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/spi/marvell,armada-3700-spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Marvell Armada 3700 SPI Controller
+
+description:
+  The SPI controller on Marvell Armada 3700 SoC.
+
+maintainers:
+  - Kousik Sanagavarapu <five231003@gmail.com>
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+properties:
+  compatible:
+    const: marvell,armada-3700-spi
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  num-cs:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    spi0: spi@10600 {
+        compatible = "marvell,armada-3700-spi";
+        #address-cells = <1>;
+        #size-cells = <0>;
+        reg = <0x10600 0x5d>;
+        clocks = <&nb_perih_clk 7>;
+        interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+        num-cs = <4>;
+    };
+...
index 00acbbb0f65dcf5752766cd3eb5ce12ba330641c..49649fc3f95af9719f14f71a0c098d0b09043821 100644 (file)
@@ -54,6 +54,7 @@ properties:
               - renesas,msiof-r8a779a0      # R-Car V3U
               - renesas,msiof-r8a779f0      # R-Car S4-8
               - renesas,msiof-r8a779g0      # R-Car V4H
+              - renesas,msiof-r8a779h0      # R-Car V4M
           - const: renesas,rcar-gen4-msiof  # generic R-Car Gen4
                                             # compatible device
       - items:
diff --git a/Bindings/spi/spi-armada-3700.txt b/Bindings/spi/spi-armada-3700.txt
deleted file mode 100644 (file)
index 1564aa8..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-* Marvell Armada 3700 SPI Controller
-
-Required Properties:
-
-- compatible: should be "marvell,armada-3700-spi"
-- reg: physical base address of the controller and length of memory mapped
-       region.
-- interrupts: The interrupt number. The interrupt specifier format depends on
-             the interrupt controller and of its driver.
-- clocks: Must contain the clock source, usually from the North Bridge clocks.
-- num-cs: The number of chip selects that is supported by this SPI Controller
-- #address-cells: should be 1.
-- #size-cells: should be 0.
-
-Example:
-
-       spi0: spi@10600 {
-               compatible = "marvell,armada-3700-spi";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               reg = <0x10600 0x5d>;
-               clocks = <&nb_perih_clk 7>;
-               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
-               num-cs = <4>;
-       };
index 8bba965a9ae64e5ce50b0cbc6a2edb1c684b6c34..3f1a27efff80e5e95c9fbbbd1e3907cfdb3bf65e 100644 (file)
@@ -46,6 +46,10 @@ properties:
       - const: tx
       - const: rx
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
index 4bd9aeb8120859152de1eeb93acf96874a0e27c9..a55c8633c32ce9c9fe4306695e31b66a15baf0a1 100644 (file)
@@ -52,6 +52,10 @@ properties:
       - const: rx
       - const: tx
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
diff --git a/Bindings/spi/ti,qspi.yaml b/Bindings/spi/ti,qspi.yaml
new file mode 100644 (file)
index 0000000..626a915
--- /dev/null
@@ -0,0 +1,96 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/ti,qspi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI QSPI controller
+
+maintainers:
+  - Kousik Sanagavarapu <five231003@gmail.com>
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+properties:
+  compatible:
+    enum:
+      - ti,am4372-qspi
+      - ti,dra7xxx-qspi
+
+  reg:
+    items:
+      - description: base registers
+      - description: mapped memory
+
+  reg-names:
+    items:
+      - const: qspi_base
+      - const: qspi_mmap
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: fck
+
+  interrupts:
+    maxItems: 1
+
+  num-cs:
+    minimum: 1
+    maximum: 4
+    default: 1
+
+  ti,hwmods:
+    description:
+      Name of the hwmod associated to the QSPI.  This is for legacy
+      platforms only.
+    $ref: /schemas/types.yaml#/definitions/string
+    deprecated: true
+
+  syscon-chipselects:
+    description:
+      Handle to system control region containing QSPI chipselect register
+      and offset of that register.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: phandle to system control register
+          - description: register offset
+
+  spi-max-frequency:
+    description: Maximum SPI clocking speed of the controller in Hz.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - clocks
+  - clock-names
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/dra7.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    spi@4b300000 {
+        compatible = "ti,dra7xxx-qspi";
+        reg = <0x4b300000 0x100>,
+              <0x5c000000 0x4000000>;
+        reg-names = "qspi_base", "qspi_mmap";
+        syscon-chipselects = <&scm_conf 0x558>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+        clocks = <&l4per2_clkctrl DRA7_L4PER2_QSPI_CLKCTRL 25>;
+        clock-names = "fck";
+        num-cs = <4>;
+        spi-max-frequency = <48000000>;
+        interrupts = <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>;
+    };
+...
diff --git a/Bindings/spi/ti_qspi.txt b/Bindings/spi/ti_qspi.txt
deleted file mode 100644 (file)
index 47b184b..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-TI QSPI controller.
-
-Required properties:
-- compatible : should be "ti,dra7xxx-qspi" or "ti,am4372-qspi".
-- reg: Should contain QSPI registers location and length.
-- reg-names: Should contain the resource reg names.
-       - qspi_base: Qspi configuration register Address space
-       - qspi_mmap: Memory mapped Address space
-       - (optional) qspi_ctrlmod: Control module Address space
-- interrupts: should contain the qspi interrupt number.
-- #address-cells, #size-cells : Must be present if the device has sub-nodes
-- ti,hwmods: Name of the hwmod associated to the QSPI
-
-Recommended properties:
-- spi-max-frequency: Definition as per
-                     Documentation/devicetree/bindings/spi/spi-bus.txt
-
-Optional properties:
-- syscon-chipselects: Handle to system control region contains QSPI
-                     chipselect register and offset of that register.
-
-NOTE: TI QSPI controller requires different pinmux and IODelay
-parameters for Mode-0 and Mode-3 operations, which needs to be set up by
-the bootloader (U-Boot). Default configuration only supports Mode-0
-operation. Hence, "spi-cpol" and "spi-cpha" DT properties cannot be
-specified in the slave nodes of TI QSPI controller without appropriate
-modification to bootloader.
-
-Example:
-
-For am4372:
-qspi: qspi@47900000 {
-       compatible = "ti,am4372-qspi";
-       reg = <0x47900000 0x100>, <0x30000000 0x4000000>;
-       reg-names = "qspi_base", "qspi_mmap";
-       #address-cells = <1>;
-       #size-cells = <0>;
-       spi-max-frequency = <25000000>;
-       ti,hwmods = "qspi";
-};
-
-For dra7xx:
-qspi: qspi@4b300000 {
-       compatible = "ti,dra7xxx-qspi";
-       reg = <0x4b300000 0x100>,
-             <0x5c000000 0x4000000>,
-       reg-names = "qspi_base", "qspi_mmap";
-       syscon-chipselects = <&scm_conf 0x558>;
-       #address-cells = <1>;
-       #size-cells = <0>;
-       spi-max-frequency = <48000000>;
-       ti,hwmods = "qspi";
-};
index f882903769f95450c76dcbebae4d21d75c06d757..3ccf35de3719e1bdeb962592328d00de166b64c8 100644 (file)
@@ -14,7 +14,7 @@ description: |
   It is a MIPI System Power Management (SPMI) controller.
 
   The PMIC part is provided by
-  ./Documentation/devicetree/bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml.
+  Documentation/devicetree/bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml.
 
 allOf:
   - $ref: spmi.yaml#
@@ -48,26 +48,23 @@ patternProperties:
       PMIC properties, which are specific to the used SPMI PMIC device(s).
       When used in combination with HiSilicon 6421v600, the properties
       are documented at
-      drivers/staging/hikey9xx/hisilicon,hi6421-spmi-pmic.yaml.
+      Documentation/devicetree/bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml
 
 unevaluatedProperties: false
 
 examples:
   - |
-    bus {
-      #address-cells = <2>;
-      #size-cells = <2>;
+    #include <dt-bindings/spmi/spmi.h>
 
-      spmi: spmi@fff24000 {
+    spmi@fff24000 {
         compatible = "hisilicon,kirin970-spmi-controller";
+        reg = <0xfff24000 0x1000>;
         #address-cells = <2>;
         #size-cells = <0>;
-        reg = <0x0 0xfff24000 0x0 0x1000>;
         hisilicon,spmi-channel = <2>;
 
         pmic@0 {
-          reg = <0 0>;
-          /* pmic properties */
+            reg = <0 SPMI_USID>;
+            /* pmic properties */
         };
-      };
     };
index f983b4af6db93f03b39dc65a35f3da2c9489d2f9..51daf1b847a9b1468fadf73d487a636fc3618227 100644 (file)
@@ -92,6 +92,7 @@ properties:
     description: >
       SPMI bus instance. only applicable to PMIC arbiter version 7 and beyond.
       Supported values, 0 = primary bus, 1 = secondary bus
+    deprecated: true
 
 required:
   - compatible
diff --git a/Bindings/spmi/qcom,x1e80100-spmi-pmic-arb.yaml b/Bindings/spmi/qcom,x1e80100-spmi-pmic-arb.yaml
new file mode 100644 (file)
index 0000000..a28b70f
--- /dev/null
@@ -0,0 +1,136 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spmi/qcom,x1e80100-spmi-pmic-arb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm X1E80100 SPMI Controller (PMIC Arbiter v7)
+
+maintainers:
+  - Stephen Boyd <sboyd@kernel.org>
+
+description: |
+  The X1E80100 SPMI PMIC Arbiter implements HW version 7 and it's an SPMI
+  controller with wrapping arbitration logic to allow for multiple on-chip
+  devices to control up to 2 SPMI separate buses.
+
+  The PMIC Arbiter can also act as an interrupt controller, providing interrupts
+  to slave devices.
+
+properties:
+  compatible:
+    const: qcom,x1e80100-spmi-pmic-arb
+
+  reg:
+    items:
+      - description: core registers
+      - description: tx-channel per virtual slave registers
+      - description: rx-channel (called observer) per virtual slave registers
+
+  reg-names:
+    items:
+      - const: core
+      - const: chnls
+      - const: obsrvr
+
+  ranges: true
+
+  '#address-cells':
+    const: 2
+
+  '#size-cells':
+    const: 2
+
+  qcom,ee:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 5
+    description: >
+      indicates the active Execution Environment identifier
+
+  qcom,channel:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 5
+    description: >
+      which of the PMIC Arb provided channels to use for accesses
+
+patternProperties:
+  "^spmi@[a-f0-9]+$":
+    type: object
+    $ref: /schemas/spmi/spmi.yaml
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        items:
+          - description: configuration registers
+          - description: interrupt controller registers
+
+      reg-names:
+        items:
+          - const: cnfg
+          - const: intr
+
+      interrupts:
+        maxItems: 1
+
+      interrupt-names:
+        const: periph_irq
+
+      interrupt-controller: true
+
+      '#interrupt-cells':
+        const: 4
+        description: |
+          cell 1: slave ID for the requested interrupt (0-15)
+          cell 2: peripheral ID for requested interrupt (0-255)
+          cell 3: the requested peripheral interrupt (0-7)
+          cell 4: interrupt flags indicating level-sense information,
+                  as defined in dt-bindings/interrupt-controller/irq.h
+
+required:
+  - compatible
+  - reg-names
+  - qcom,ee
+  - qcom,channel
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      spmi: arbiter@c400000 {
+        compatible = "qcom,x1e80100-spmi-pmic-arb";
+        reg = <0 0x0c400000 0 0x3000>,
+              <0 0x0c500000 0 0x4000000>,
+              <0 0x0c440000 0 0x80000>;
+        reg-names = "core", "chnls", "obsrvr";
+
+        qcom,ee = <0>;
+        qcom,channel = <0>;
+
+        #address-cells = <2>;
+        #size-cells = <2>;
+        ranges;
+
+        spmi_bus0: spmi@c42d000 {
+          reg = <0 0x0c42d000 0 0x4000>,
+                <0 0x0c4c0000 0 0x10000>;
+          reg-names = "cnfg", "intr";
+
+          interrupt-names = "periph_irq";
+          interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
+          interrupt-controller;
+          #interrupt-cells = <4>;
+
+          #address-cells = <2>;
+          #size-cells = <0>;
+        };
+      };
+    };
index 20f8f9b3b971b6fe1e92c29a7d7e5b46709f6ec5..01fccdfc41781a8a52022af87d29c95847d61c13 100644 (file)
@@ -13,11 +13,13 @@ description: Binding for Amlogic Thermal
 
 properties:
   compatible:
-    items:
-      - enum:
-          - amlogic,g12a-cpu-thermal
-          - amlogic,g12a-ddr-thermal
-      - const: amlogic,g12a-thermal
+    oneOf:
+      - items:
+          - enum:
+              - amlogic,g12a-cpu-thermal
+              - amlogic,g12a-ddr-thermal
+          - const: amlogic,g12a-thermal
+      - const: amlogic,a1-cpu-thermal
 
   reg:
     maxItems: 1
index b634f57cd011d738fc0dd4db633a9a805506cca5..ca81c8afba79c673aea6dba21e21deb0adbe43d1 100644 (file)
@@ -18,13 +18,15 @@ properties:
     oneOf:
       - enum:
           - loongson,ls2k1000-thermal
+          - loongson,ls2k2000-thermal
       - items:
           - enum:
-              - loongson,ls2k2000-thermal
+              - loongson,ls2k0500-thermal
           - const: loongson,ls2k1000-thermal
 
   reg:
-    maxItems: 1
+    minItems: 1
+    maxItems: 2
 
   interrupts:
     maxItems: 1
@@ -38,6 +40,24 @@ required:
   - interrupts
   - '#thermal-sensor-cells'
 
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - loongson,ls2k2000-thermal
+
+then:
+  properties:
+    reg:
+      minItems: 2
+      maxItems: 2
+
+else:
+  properties:
+    reg:
+      maxItems: 1
+
 unevaluatedProperties: false
 
 examples:
index e6665af52ee6c07e9dffbfb0c3b9baf2bc5d44ae..331cf4e662e3094b9122f4cbbb27d55e1c493079 100644 (file)
@@ -19,6 +19,9 @@ properties:
   compatible:
     enum:
       - mediatek,mt7988-lvts-ap
+      - mediatek,mt8186-lvts
+      - mediatek,mt8188-lvts-ap
+      - mediatek,mt8188-lvts-mcu
       - mediatek,mt8192-lvts-ap
       - mediatek,mt8192-lvts-mcu
       - mediatek,mt8195-lvts-ap
@@ -60,6 +63,8 @@ allOf:
         compatible:
           contains:
             enum:
+              - mediatek,mt8188-lvts-ap
+              - mediatek,mt8188-lvts-mcu
               - mediatek,mt8192-lvts-ap
               - mediatek,mt8192-lvts-mcu
     then:
@@ -75,6 +80,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - mediatek,mt8186-lvts
               - mediatek,mt8195-lvts-ap
               - mediatek,mt8195-lvts-mcu
     then:
index 5ff72ce5c8877a985885f744f12d4ccd1d4a0fbb..1175bb358382512a79be82619b3328b92e99270d 100644 (file)
@@ -17,10 +17,14 @@ description:
 
 properties:
   compatible:
-    enum:
-      - qcom,sc8180x-lmh
-      - qcom,sdm845-lmh
-      - qcom,sm8150-lmh
+    oneOf:
+      - enum:
+          - qcom,sc8180x-lmh
+          - qcom,sdm845-lmh
+          - qcom,sm8150-lmh
+      - items:
+          - const: qcom,qcm2290-lmh
+          - const: qcom,sm8150-lmh
 
   reg:
     items:
diff --git a/Bindings/thermal/st,stih407-thermal.yaml b/Bindings/thermal/st,stih407-thermal.yaml
new file mode 100644 (file)
index 0000000..9f6fc5c
--- /dev/null
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/thermal/st,stih407-thermal.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics STi digital thermal sensor (DTS)
+
+maintainers:
+  - Patrice Chotard <patrice.chotard@foss.st.com>
+  - Lee Jones <lee@kernel.org>
+
+allOf:
+  - $ref: thermal-sensor.yaml
+
+properties:
+  compatible:
+    const: st,stih407-thermal
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: thermal
+
+  interrupts:
+    description:
+      For thermal sensors for which no interrupt has been defined, a polling
+      delay of 1000ms will be used to read the temperature from device.
+    maxItems: 1
+
+  '#thermal-sensor-cells':
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    temperature-sensor@91a0000 {
+        compatible = "st,stih407-thermal";
+        reg = <0x91a0000 0x28>;
+        clock-names = "thermal";
+        clocks = <&CLK_SYSIN>;
+        interrupts = <GIC_SPI 205 IRQ_TYPE_EDGE_RISING>;
+        #thermal-sensor-cells = <0>;
+    };
+...
diff --git a/Bindings/thermal/st-thermal.txt b/Bindings/thermal/st-thermal.txt
deleted file mode 100644 (file)
index a2f9391..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-Binding for Thermal Sensor driver for STMicroelectronics STi series of SoCs.
-
-Required parameters:
--------------------
-
-compatible :   Should be "st,stih407-thermal"
-
-clock-names :  Should be "thermal".
-                 See: Documentation/devicetree/bindings/resource-names.txt
-clocks :       Phandle of the clock used by the thermal sensor.
-                 See: Documentation/devicetree/bindings/clock/clock-bindings.txt
-
-Optional parameters:
--------------------
-
-reg :          For non-sysconf based sensors, this should be the physical base
-               address and length of the sensor's registers.
-interrupts :   Standard way to define interrupt number.
-                 NB: For thermal sensor's for which no interrupt has been
-                 defined, a polling delay of 1000ms will be used to read the
-                 temperature from device.
-
-Example:
-
-       temp0@91a0000 {
-               compatible = "st,stih407-thermal";
-               reg = <0x91a0000 0x28>;
-               clock-names = "thermal";
-               clocks = <&CLK_SYSIN>;
-               interrupts = <GIC_SPI 205 IRQ_TYPE_EDGE_RISING>;
-               st,passive_cooling_temp = <110>;
-       };
index a0be1755ea28b9966c53e634929627fc69631524..5e09c04da30e47d5a92ed2ed494908c225d5052b 100644 (file)
@@ -103,6 +103,7 @@ properties:
               - renesas,r8a779a0-cmt0     # 32-bit CMT0 on R-Car V3U
               - renesas,r8a779f0-cmt0     # 32-bit CMT0 on R-Car S4-8
               - renesas,r8a779g0-cmt0     # 32-bit CMT0 on R-Car V4H
+              - renesas,r8a779h0-cmt0     # 32-bit CMT0 on R-Car V4M
           - const: renesas,rcar-gen4-cmt0 # 32-bit CMT0 on R-Car Gen4
 
       - items:
@@ -110,6 +111,7 @@ properties:
               - renesas,r8a779a0-cmt1     # 48-bit CMT on R-Car V3U
               - renesas,r8a779f0-cmt1     # 48-bit CMT on R-Car S4-8
               - renesas,r8a779g0-cmt1     # 48-bit CMT on R-Car V4H
+              - renesas,r8a779h0-cmt1     # 48-bit CMT on R-Car V4M
           - const: renesas,rcar-gen4-cmt1 # 48-bit CMT on R-Car Gen4
 
   reg:
index 8b06a681764e3b5dfedf7b41d7e87b12f5d083a9..e8c6421664626120186cd7a4fbbd2a952ffe7de7 100644 (file)
@@ -26,6 +26,7 @@ properties:
           - renesas,r9a07g043-ostm # RZ/G2UL and RZ/Five
           - renesas,r9a07g044-ostm # RZ/G2{L,LC}
           - renesas,r9a07g054-ostm # RZ/V2L
+          - renesas,r9a09g057-ostm # RZ/V2H(P)
       - const: renesas,ostm        # Generic
 
   reg:
@@ -58,6 +59,7 @@ if:
           - renesas,r9a07g043-ostm
           - renesas,r9a07g044-ostm
           - renesas,r9a07g054-ostm
+          - renesas,r9a09g057-ostm
 then:
   required:
     - resets
index 84bbe15028a1de941e38f4510500a43d4be88d68..360a5cf1ae9c7462c0e927f151eeff3e04cd8dbd 100644 (file)
@@ -39,6 +39,7 @@ properties:
           - renesas,tmu-r8a779a0 # R-Car V3U
           - renesas,tmu-r8a779f0 # R-Car S4-8
           - renesas,tmu-r8a779g0 # R-Car V4H
+          - renesas,tmu-r8a779h0 # R-Car V4M
       - const: renesas,tmu
 
   reg:
index 50a3fd31241cb31ed1a1581b3ffdff65e0c8b87f..8b0d3d4be5d8ca19acd023860c65ece942bd3c05 100644 (file)
@@ -33,13 +33,13 @@ properties:
   reg:
     maxItems: 1
 
-  'ibm,#dma-address-cells':
+  ibm,#dma-address-cells:
     description:
       number of cells that are used to encode the physical address field of
       dma-window properties
     $ref: /schemas/types.yaml#/definitions/uint32-array
 
-  'ibm,#dma-size-cells':
+  ibm,#dma-size-cells:
     description:
       number of cells that are used to encode the size field of
       dma-window properties
index 3ab4434b73524ffbf4a1776efdab3878d0ade565..af7720dc4a12ce435d85e83d76911ac26db01e95 100644 (file)
@@ -32,6 +32,7 @@ properties:
           - enum:
               - infineon,slb9673
               - nuvoton,npct75x
+              - st,st33ktpm2xi2c
           - const: tcg,tpm-tis-i2c
 
       - description: TPM 1.2 and 2.0 chips with vendor-specific I²C interface
index e07be7bf8395f7dd29f59e1028ce87311b90b19c..0a419453d183292d76ada29739c6b603eb0bd5d3 100644 (file)
@@ -126,6 +126,8 @@ properties:
           - ibm,cffps1
             # IBM Common Form Factor Power Supply Versions 2
           - ibm,cffps2
+            # IBM On-Chip Controller hwmon device
+          - ibm,p8-occ-hwmon
             # Infineon barometric pressure and temperature sensor
           - infineon,dps310
             # Infineon IR36021 digital POL buck controller
@@ -134,6 +136,8 @@ properties:
           - infineon,irps5401
             # Infineon TLV493D-A1B6 I2C 3D Magnetic Sensor
           - infineon,tlv493d-a1b6
+            # Infineon Hot-swap controller xdp710
+          - infineon,xdp710
             # Infineon Multi-phase Digital VR Controller xdpe11280
           - infineon,xdpe11280
             # Infineon Multi-phase Digital VR Controller xdpe12254
@@ -160,6 +164,8 @@ properties:
           - isil,isl29030
             # Intersil ISL68137 Digital Output Configurable PWM Controller
           - isil,isl68137
+            # Intersil ISL69269 PMBus Voltage Regulator
+          - isil,isl69269
             # Intersil ISL76682 Ambient Light Sensor
           - isil,isl76682
             # Linear Technology LTC2488
index b2b509b3944d85714316c8f91b042054373416a4..720879820f6616a30cae2db3d4d2d22e847666c4 100644 (file)
@@ -12,12 +12,10 @@ maintainers:
 description: |
   Each Samsung UFS host controller instance should have its own node.
 
-allOf:
-  - $ref: ufs-common.yaml
-
 properties:
   compatible:
     enum:
+      - google,gs101-ufs
       - samsung,exynos7-ufs
       - samsung,exynosautov9-ufs
       - samsung,exynosautov9-ufs-vh
@@ -38,14 +36,24 @@ properties:
       - const: ufsp
 
   clocks:
+    minItems: 2
     items:
       - description: ufs link core clock
       - description: unipro main clock
+      - description: fmp clock
+      - description: ufs aclk clock
+      - description: ufs pclk clock
+      - description: sysreg clock
 
   clock-names:
+    minItems: 2
     items:
       - const: core_clk
       - const: sclk_unipro_main
+      - const: fmp
+      - const: aclk
+      - const: pclk
+      - const: sysreg
 
   phys:
     maxItems: 1
@@ -72,6 +80,30 @@ required:
   - clocks
   - clock-names
 
+allOf:
+  - $ref: ufs-common.yaml
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: google,gs101-ufs
+
+    then:
+      properties:
+        clocks:
+          minItems: 6
+
+        clock-names:
+          minItems: 6
+
+    else:
+      properties:
+        clocks:
+          maxItems: 2
+
+        clock-names:
+          maxItems: 2
+
 unevaluatedProperties: false
 
 examples:
diff --git a/Bindings/usb/chipidea,usb2-common.yaml b/Bindings/usb/chipidea,usb2-common.yaml
new file mode 100644 (file)
index 0000000..d2a7d2e
--- /dev/null
@@ -0,0 +1,200 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/chipidea,usb2-common.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: USB2 ChipIdea USB controller Common Properties
+
+maintainers:
+  - Xu Yang <xu.yang_2@nxp.com>
+
+properties:
+  reg:
+    minItems: 1
+    maxItems: 2
+
+  interrupts:
+    minItems: 1
+    maxItems: 2
+
+  clocks:
+    minItems: 1
+    maxItems: 3
+
+  clock-names:
+    minItems: 1
+    maxItems: 3
+
+  dr_mode: true
+
+  power-domains:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    maxItems: 1
+
+  "#reset-cells":
+    const: 1
+
+  phy_type: true
+
+  itc-setting:
+    description:
+      interrupt threshold control register control, the setting should be
+      aligned with ITC bits at register USBCMD.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  ahb-burst-config:
+    description:
+      it is vendor dependent, the required value should be aligned with
+      AHBBRST at SBUSCFG, the range is from 0x0 to 0x7. This property is
+      used to change AHB burst configuration, check the chipidea spec for
+      meaning of each value. If this property is not existed, it will use
+      the reset value.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0x0
+    maximum: 0x7
+
+  tx-burst-size-dword:
+    description:
+      it is vendor dependent, the tx burst size in dword (4 bytes), This
+      register represents the maximum length of a the burst in 32-bit
+      words while moving data from system memory to the USB bus, the value
+      of this property will only take effect if property "ahb-burst-config"
+      is set to 0, if this property is missing the reset default of the
+      hardware implementation will be used.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0x0
+    maximum: 0x20
+
+  rx-burst-size-dword:
+    description:
+      it is vendor dependent, the rx burst size in dword (4 bytes), This
+      register represents the maximum length of a the burst in 32-bit words
+      while moving data from the USB bus to system memory, the value of
+      this property will only take effect if property "ahb-burst-config"
+      is set to 0, if this property is missing the reset default of the
+      hardware implementation will be used.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0x0
+    maximum: 0x20
+
+  extcon:
+    description:
+      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.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    minItems: 1
+    items:
+      - description: vbus extcon
+      - description: id extcon
+
+  phy-clkgate-delay-us:
+    description:
+      The delay time (us) between putting the PHY into low power mode and
+      gating the PHY clock.
+
+  non-zero-ttctrl-ttha:
+    description:
+      After setting this property, the value of register ttctrl.ttha
+      will be 0x7f; if not, the value will be 0x0, this is the default
+      value. It needs to be very carefully for setting this property, it
+      is recommended that consult with your IC engineer before setting
+      this value.  On the most of chipidea platforms, the "usage_tt" flag
+      at RTL is 0, so this property only affects siTD.
+
+      If this property is not set, the max packet size is 1023 bytes, and
+      if the total of packet size for previous transactions are more than
+      256 bytes, it can't accept any transactions within this frame. The
+      use case is single transaction, but higher frame rate.
+
+      If this property is set, the max packet size is 188 bytes, it can
+      handle more transactions than above case, it can accept transactions
+      until it considers the left room size within frame is less than 188
+      bytes, software needs to make sure it does not send more than 90%
+      maximum_periodic_data_per_frame. The use case is multiple
+      transactions, but less frame rate.
+    type: boolean
+
+  mux-controls:
+    description:
+      The mux control for toggling host/device output of this controller.
+      It's expected that a mux state of 0 indicates device mode and a mux
+      state of 1 indicates host mode.
+    maxItems: 1
+
+  mux-control-names:
+    const: usb_switch
+
+  pinctrl-names:
+    description:
+      Names for optional pin modes in "default", "host", "device".
+      In case of HSIC-mode, "idle" and "active" pin modes are mandatory.
+      In this case, the "idle" state needs to pull down the data and
+      strobe pin and the "active" state needs to pull up the strobe pin.
+    oneOf:
+      - items:
+          - const: idle
+          - const: active
+      - items:
+          - const: default
+          - const: host
+          - const: device
+      - items:
+          - const: default
+          - enum:
+              - host
+              - device
+      - items:
+          - const: default
+
+  pinctrl-0:
+    maxItems: 1
+
+  pinctrl-1:
+    maxItems: 1
+
+  phys:
+    maxItems: 1
+
+  phy-names:
+    const: usb-phy
+
+  vbus-supply:
+    description: reference to the VBUS regulator.
+
+  usb-phy:
+    description: phandle for the PHY device. Use "phys" instead.
+    maxItems: 1
+    deprecated: true
+
+  port:
+    description:
+      Any connector to the data bus of this controller should be modelled
+      using the OF graph bindings specified, if the "usb-role-switch"
+      property is used.
+    $ref: /schemas/graph.yaml#/properties/port
+
+  reset-gpios:
+    maxItems: 1
+
+dependencies:
+  port: [ usb-role-switch ]
+  mux-controls: [ mux-control-names ]
+
+required:
+  - reg
+  - interrupts
+
+allOf:
+  - $ref: usb-hcd.yaml#
+  - $ref: usb-drd.yaml#
+
+additionalProperties: true
diff --git a/Bindings/usb/chipidea,usb2-imx.yaml b/Bindings/usb/chipidea,usb2-imx.yaml
new file mode 100644 (file)
index 0000000..8f6136f
--- /dev/null
@@ -0,0 +1,287 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/chipidea,usb2-imx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP USB2 ChipIdea USB controller
+
+maintainers:
+  - Xu Yang <xu.yang_2@nxp.com>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - fsl,imx27-usb
+      - items:
+          - enum:
+              - fsl,imx23-usb
+              - fsl,imx25-usb
+              - fsl,imx28-usb
+              - fsl,imx35-usb
+              - fsl,imx50-usb
+              - fsl,imx51-usb
+              - fsl,imx53-usb
+              - fsl,imx6q-usb
+              - fsl,imx6sl-usb
+              - fsl,imx6sx-usb
+              - fsl,imx6ul-usb
+              - fsl,imx7d-usb
+              - fsl,vf610-usb
+          - const: fsl,imx27-usb
+      - items:
+          - enum:
+              - fsl,imx8dxl-usb
+              - fsl,imx8ulp-usb
+          - const: fsl,imx7ulp-usb
+          - const: fsl,imx6ul-usb
+      - items:
+          - enum:
+              - fsl,imx8mm-usb
+              - fsl,imx8mn-usb
+              - fsl,imx93-usb
+          - const: fsl,imx7d-usb
+          - const: fsl,imx27-usb
+      - items:
+          - enum:
+              - fsl,imx6sll-usb
+              - fsl,imx7ulp-usb
+          - const: fsl,imx6ul-usb
+          - const: fsl,imx27-usb
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    minItems: 1
+    maxItems: 3
+
+  clock-names:
+    minItems: 1
+    maxItems: 3
+
+  fsl,usbmisc:
+    description:
+      Phandler of non-core register device, with one argument that
+      indicate usb controller index
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: phandle to usbmisc node
+          - description: index of usb controller
+
+  disable-over-current:
+    type: boolean
+    description: disable over current detect
+
+  over-current-active-low:
+    type: boolean
+    description: over current signal polarity is active low
+
+  over-current-active-high:
+    type: boolean
+    description:
+      Over current signal polarity is active high. It's recommended to
+      specify the over current polarity.
+
+  power-active-high:
+    type: boolean
+    description: power signal polarity is active high
+
+  external-vbus-divider:
+    type: boolean
+    description: enables off-chip resistor divider for Vbus
+
+  samsung,picophy-pre-emp-curr-control:
+    description:
+      HS Transmitter Pre-Emphasis Current Control. This signal controls
+      the amount of current sourced to the USB_OTG*_DP and USB_OTG*_DN
+      pins after a J-to-K or K-to-J transition. The range is from 0x0 to
+      0x3, the default value is 0x1. Details can refer to TXPREEMPAMPTUNE0
+      bits of USBNC_n_PHY_CFG1.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0x0
+    maximum: 0x3
+
+  samsung,picophy-dc-vol-level-adjust:
+    description:
+      HS DC Voltage Level Adjustment. Adjust the high-speed transmitter DC
+      level voltage. The range is from 0x0 to 0xf, the default value is
+      0x3. Details can refer to TXVREFTUNE0 bits of USBNC_n_PHY_CFG1.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0x0
+    maximum: 0xf
+
+  fsl,picophy-rise-fall-time-adjust:
+    description:
+      HS Transmitter Rise/Fall Time Adjustment. Adjust the rise/fall times
+      of the high-speed transmitter waveform. It has no unit. The rise/fall
+      time will be increased or decreased by a certain percentage relative
+      to design default time. (0:-10%; 1:design default; 2:+15%; 3:+20%)
+      Details can refer to TXRISETUNE0 bit of USBNC_n_PHY_CFG1.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 3
+    default: 1
+
+  fsl,usbphy:
+    description: phandle of usb phy that connects to the port. Use "phys" instead.
+    $ref: /schemas/types.yaml#/definitions/phandle
+    deprecated: true
+
+required:
+  - compatible
+
+allOf:
+  - $ref: chipidea,usb2-common.yaml#
+  - if:
+      properties:
+        phy_type:
+          const: hsic
+      required:
+        - phy_type
+    then:
+      properties:
+        pinctrl-names:
+          items:
+            - const: idle
+            - const: active
+
+  # imx27 Soc needs three clocks
+  - if:
+      properties:
+        compatible:
+          const: fsl,imx27-usb
+    then:
+      properties:
+        clocks:
+          minItems: 3
+        clock-names:
+          items:
+            - const: ipg
+            - const: ahb
+            - const: per
+
+  # imx25 and imx35 Soc need three clocks
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx25-usb
+              - fsl,imx35-usb
+    then:
+      properties:
+        clocks:
+          minItems: 3
+        clock-names:
+          items:
+            - const: ipg
+            - const: ahb
+            - const: per
+
+  # imx93 Soc needs two clocks
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx93-usb
+    then:
+      properties:
+        clocks:
+          minItems: 2
+          maxItems: 2
+        clock-names:
+          items:
+            - const: usb_ctrl_root
+            - const: usb_wakeup
+
+  # imx7d Soc need one clock
+  - if:
+      properties:
+        compatible:
+          items:
+            - const: fsl,imx7d-usb
+            - const: fsl,imx27-usb
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+        clock-names: false
+
+  # other Soc need one clock
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx23-usb
+              - fsl,imx28-usb
+              - fsl,imx50-usb
+              - fsl,imx51-usb
+              - fsl,imx53-usb
+              - fsl,imx6q-usb
+              - fsl,imx6sl-usb
+              - fsl,imx6sx-usb
+              - fsl,imx6ul-usb
+              - fsl,imx8mm-usb
+              - fsl,imx8mn-usb
+              - fsl,vf610-usb
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+        clock-names: false
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/imx7d-clock.h>
+
+    usb@30b10000 {
+        compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
+        reg = <0x30b10000 0x200>;
+        interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&clks IMX7D_USB_CTRL_CLK>;
+        fsl,usbphy = <&usbphynop1>;
+        fsl,usbmisc = <&usbmisc1 0>;
+        phy-clkgate-delay-us = <400>;
+    };
+
+  # Example for HSIC:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/imx6qdl-clock.h>
+
+    usb@2184400 {
+        compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
+        reg = <0x02184400 0x200>;
+        interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&clks IMX6QDL_CLK_USBOH3>;
+        fsl,usbphy = <&usbphynop1>;
+        fsl,usbmisc = <&usbmisc 2>;
+        phy_type = "hsic";
+        dr_mode = "host";
+        ahb-burst-config = <0x0>;
+        tx-burst-size-dword = <0x10>;
+        rx-burst-size-dword = <0x10>;
+        pinctrl-names = "idle", "active";
+        pinctrl-0 = <&pinctrl_usbh2_idle>;
+        pinctrl-1 = <&pinctrl_usbh2_active>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        ethernet@1 {
+            compatible = "usb424,9730";
+            reg = <1>;
+        };
+    };
+
+...
index 3b56e0edb1c676cbcad7a6e74dd650ea7e96a490..cc5787a8cfa3ed1a50382fea6af731c2eda68422 100644 (file)
@@ -15,7 +15,6 @@ properties:
     oneOf:
       - enum:
           - chipidea,usb2
-          - fsl,imx27-usb
           - lsi,zevio-usb
           - nuvoton,npcm750-udc
           - nvidia,tegra20-ehci
@@ -31,40 +30,6 @@ properties:
               - nvidia,tegra124-ehci
               - nvidia,tegra210-ehci
           - const: nvidia,tegra30-ehci
-      - items:
-          - enum:
-              - fsl,imx23-usb
-              - fsl,imx25-usb
-              - fsl,imx28-usb
-              - fsl,imx35-usb
-              - fsl,imx50-usb
-              - fsl,imx51-usb
-              - fsl,imx53-usb
-              - fsl,imx6q-usb
-              - fsl,imx6sl-usb
-              - fsl,imx6sx-usb
-              - fsl,imx6ul-usb
-              - fsl,imx7d-usb
-              - fsl,vf610-usb
-          - const: fsl,imx27-usb
-      - items:
-          - enum:
-              - fsl,imx8dxl-usb
-              - fsl,imx8ulp-usb
-          - const: fsl,imx7ulp-usb
-          - const: fsl,imx6ul-usb
-      - items:
-          - enum:
-              - fsl,imx8mm-usb
-              - fsl,imx8mn-usb
-          - const: fsl,imx7d-usb
-          - const: fsl,imx27-usb
-      - items:
-          - enum:
-              - fsl,imx6sll-usb
-              - fsl,imx7ulp-usb
-          - const: fsl,imx6ul-usb
-          - const: fsl,imx27-usb
       - items:
           - const: xlnx,zynq-usb-2.20a
           - const: chipidea,usb2
@@ -73,163 +38,18 @@ properties:
               - nuvoton,npcm845-udc
           - const: nuvoton,npcm750-udc
 
-  reg:
-    minItems: 1
-    maxItems: 2
-
-  interrupts:
-    minItems: 1
-    maxItems: 2
-
   clocks:
     minItems: 1
-    maxItems: 3
+    maxItems: 2
 
   clock-names:
     minItems: 1
-    maxItems: 3
-
-  dr_mode: true
-
-  power-domains:
-    maxItems: 1
-
-  resets:
-    maxItems: 1
-
-  reset-names:
-    maxItems: 1
-
-  "#reset-cells":
-    const: 1
-
-  phy_type: true
-
-  itc-setting:
-    description:
-      interrupt threshold control register control, the setting should be
-      aligned with ITC bits at register USBCMD.
-    $ref: /schemas/types.yaml#/definitions/uint32
-
-  ahb-burst-config:
-    description:
-      it is vendor dependent, the required value should be aligned with
-      AHBBRST at SBUSCFG, the range is from 0x0 to 0x7. This property is
-      used to change AHB burst configuration, check the chipidea spec for
-      meaning of each value. If this property is not existed, it will use
-      the reset value.
-    $ref: /schemas/types.yaml#/definitions/uint32
-    minimum: 0x0
-    maximum: 0x7
-
-  tx-burst-size-dword:
-    description:
-      it is vendor dependent, the tx burst size in dword (4 bytes), This
-      register represents the maximum length of a the burst in 32-bit
-      words while moving data from system memory to the USB bus, the value
-      of this property will only take effect if property "ahb-burst-config"
-      is set to 0, if this property is missing the reset default of the
-      hardware implementation will be used.
-    $ref: /schemas/types.yaml#/definitions/uint32
-    minimum: 0x0
-    maximum: 0x20
-
-  rx-burst-size-dword:
-    description:
-      it is vendor dependent, the rx burst size in dword (4 bytes), This
-      register represents the maximum length of a the burst in 32-bit words
-      while moving data from the USB bus to system memory, the value of
-      this property will only take effect if property "ahb-burst-config"
-      is set to 0, if this property is missing the reset default of the
-      hardware implementation will be used.
-    $ref: /schemas/types.yaml#/definitions/uint32
-    minimum: 0x0
-    maximum: 0x20
-
-  extcon:
-    description:
-      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.
-    $ref: /schemas/types.yaml#/definitions/phandle-array
-    minItems: 1
-    items:
-      - description: vbus extcon
-      - description: id extcon
-
-  phy-clkgate-delay-us:
-    description:
-      The delay time (us) between putting the PHY into low power mode and
-      gating the PHY clock.
-
-  non-zero-ttctrl-ttha:
-    description:
-      After setting this property, the value of register ttctrl.ttha
-      will be 0x7f; if not, the value will be 0x0, this is the default
-      value. It needs to be very carefully for setting this property, it
-      is recommended that consult with your IC engineer before setting
-      this value.  On the most of chipidea platforms, the "usage_tt" flag
-      at RTL is 0, so this property only affects siTD.
-
-      If this property is not set, the max packet size is 1023 bytes, and
-      if the total of packet size for previous transactions are more than
-      256 bytes, it can't accept any transactions within this frame. The
-      use case is single transaction, but higher frame rate.
-
-      If this property is set, the max packet size is 188 bytes, it can
-      handle more transactions than above case, it can accept transactions
-      until it considers the left room size within frame is less than 188
-      bytes, software needs to make sure it does not send more than 90%
-      maximum_periodic_data_per_frame. The use case is multiple
-      transactions, but less frame rate.
-    type: boolean
-
-  mux-controls:
-    description:
-      The mux control for toggling host/device output of this controller.
-      It's expected that a mux state of 0 indicates device mode and a mux
-      state of 1 indicates host mode.
-    maxItems: 1
-
-  mux-control-names:
-    const: usb_switch
+    maxItems: 2
 
   operating-points-v2:
     description: A phandle to the OPP table containing the performance states.
     $ref: /schemas/types.yaml#/definitions/phandle
 
-  pinctrl-names:
-    description:
-      Names for optional pin modes in "default", "host", "device".
-      In case of HSIC-mode, "idle" and "active" pin modes are mandatory.
-      In this case, the "idle" state needs to pull down the data and
-      strobe pin and the "active" state needs to pull up the strobe pin.
-    oneOf:
-      - items:
-          - const: idle
-          - const: active
-      - items:
-          - const: default
-          - enum:
-              - host
-              - device
-      - items:
-          - const: default
-
-  pinctrl-0:
-    maxItems: 1
-
-  pinctrl-1:
-    maxItems: 1
-
-  phys:
-    maxItems: 1
-
-  phy-names:
-    const: usb-phy
-
   phy-select:
     description:
       Phandler of TCSR node with two argument that indicate register
@@ -240,87 +60,6 @@ properties:
       - description: register offset
       - description: phy index
 
-  vbus-supply:
-    description: reference to the VBUS regulator.
-
-  fsl,usbmisc:
-    description:
-      Phandler of non-core register device, with one argument that
-      indicate usb controller index
-    $ref: /schemas/types.yaml#/definitions/phandle-array
-    items:
-      - items:
-          - description: phandle to usbmisc node
-          - description: index of usb controller
-
-  fsl,anatop:
-    description: phandle for the anatop node.
-    $ref: /schemas/types.yaml#/definitions/phandle
-
-  disable-over-current:
-    type: boolean
-    description: disable over current detect
-
-  over-current-active-low:
-    type: boolean
-    description: over current signal polarity is active low
-
-  over-current-active-high:
-    type: boolean
-    description:
-      Over current signal polarity is active high. It's recommended to
-      specify the over current polarity.
-
-  power-active-high:
-    type: boolean
-    description: power signal polarity is active high
-
-  external-vbus-divider:
-    type: boolean
-    description: enables off-chip resistor divider for Vbus
-
-  samsung,picophy-pre-emp-curr-control:
-    description:
-      HS Transmitter Pre-Emphasis Current Control. This signal controls
-      the amount of current sourced to the USB_OTG*_DP and USB_OTG*_DN
-      pins after a J-to-K or K-to-J transition. The range is from 0x0 to
-      0x3, the default value is 0x1. Details can refer to TXPREEMPAMPTUNE0
-      bits of USBNC_n_PHY_CFG1.
-    $ref: /schemas/types.yaml#/definitions/uint32
-    minimum: 0x0
-    maximum: 0x3
-
-  samsung,picophy-dc-vol-level-adjust:
-    description:
-      HS DC Voltage Level Adjustment. Adjust the high-speed transmitter DC
-      level voltage. The range is from 0x0 to 0xf, the default value is
-      0x3. Details can refer to TXVREFTUNE0 bits of USBNC_n_PHY_CFG1.
-    $ref: /schemas/types.yaml#/definitions/uint32
-    minimum: 0x0
-    maximum: 0xf
-
-  fsl,picophy-rise-fall-time-adjust:
-    description:
-      HS Transmitter Rise/Fall Time Adjustment. Adjust the rise/fall times
-      of the high-speed transmitter waveform. It has no unit. The rise/fall
-      time will be increased or decreased by a certain percentage relative
-      to design default time. (0:-10%; 1:design default; 2:+15%; 3:+20%)
-      Details can refer to TXRISETUNE0 bit of USBNC_n_PHY_CFG1.
-    $ref: /schemas/types.yaml#/definitions/uint32
-    minimum: 0
-    maximum: 3
-    default: 1
-
-  usb-phy:
-    description: phandle for the PHY device. Use "phys" instead.
-    maxItems: 1
-    deprecated: true
-
-  fsl,usbphy:
-    description: phandle of usb phy that connects to the port. Use "phys" instead.
-    $ref: /schemas/types.yaml#/definitions/phandle
-    deprecated: true
-
   nvidia,phy:
     description: phandle of usb phy that connects to the port. Use "phys" instead.
     $ref: /schemas/types.yaml#/definitions/phandle
@@ -331,16 +70,6 @@ properties:
     type: boolean
     deprecated: true
 
-  port:
-    description:
-      Any connector to the data bus of this controller should be modelled
-      using the OF graph bindings specified, if the "usb-role-switch"
-      property is used.
-    $ref: /schemas/graph.yaml#/properties/port
-
-  reset-gpios:
-    maxItems: 1
-
   ulpi:
     type: object
     additionalProperties: false
@@ -350,67 +79,13 @@ properties:
         type: object
         $ref: /schemas/phy/qcom,usb-hs-phy.yaml
 
-dependencies:
-  port: [ usb-role-switch ]
-  mux-controls: [ mux-control-names ]
-
 required:
   - compatible
-  - reg
-  - interrupts
 
 allOf:
+  - $ref: chipidea,usb2-common.yaml#
   - $ref: usb-hcd.yaml#
   - $ref: usb-drd.yaml#
-  - if:
-      properties:
-        phy_type:
-          const: hsic
-      required:
-        - phy_type
-    then:
-      properties:
-        pinctrl-names:
-          items:
-            - const: idle
-            - const: active
-    else:
-      properties:
-        pinctrl-names:
-          minItems: 1
-          maxItems: 2
-          oneOf:
-            - items:
-                - const: default
-                - enum:
-                    - host
-                    - device
-            - items:
-                - const: default
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - chipidea,usb2
-              - lsi,zevio-usb
-              - nuvoton,npcm750-udc
-              - nvidia,tegra20-udc
-              - nvidia,tegra30-udc
-              - nvidia,tegra114-udc
-              - nvidia,tegra124-udc
-              - qcom,ci-hdrc
-              - xlnx,zynq-usb-2.20a
-    then:
-      properties:
-        fsl,usbmisc: false
-        disable-over-current: false
-        over-current-active-low: false
-        over-current-active-high: false
-        power-active-high: false
-        external-vbus-divider: false
-        samsung,picophy-pre-emp-curr-control: false
-        samsung,picophy-dc-vol-level-adjust: false
 
 unevaluatedProperties: false
 
@@ -438,33 +113,4 @@ examples:
         mux-control-names = "usb_switch";
     };
 
-  # Example for HSIC:
-  - |
-    #include <dt-bindings/interrupt-controller/arm-gic.h>
-    #include <dt-bindings/clock/imx6qdl-clock.h>
-
-    usb@2184400 {
-        compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
-        reg = <0x02184400 0x200>;
-        interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
-        clocks = <&clks IMX6QDL_CLK_USBOH3>;
-        fsl,usbphy = <&usbphynop1>;
-        fsl,usbmisc = <&usbmisc 2>;
-        phy_type = "hsic";
-        dr_mode = "host";
-        ahb-burst-config = <0x0>;
-        tx-burst-size-dword = <0x10>;
-        rx-burst-size-dword = <0x10>;
-        pinctrl-names = "idle", "active";
-        pinctrl-0 = <&pinctrl_usbh2_idle>;
-        pinctrl-1 = <&pinctrl_usbh2_active>;
-        #address-cells = <1>;
-        #size-cells = <0>;
-
-        ethernet@1 {
-            compatible = "usb424,9730";
-            reg = <1>;
-        };
-    };
-
 ...
index 28096619a882712d70e7522f3ea4b99438db27d2..e44e88d993d0bfc072aa40b678af91d79f45f793 100644 (file)
@@ -51,7 +51,6 @@ examples:
     #include <dt-bindings/gpio/gpio.h>
 
     usb {
-        dr_mode = "host";
         #address-cells = <1>;
         #size-cells = <0>;
 
index 0a5c98ea711d489cf6b8e81b1c2697e11ee98bc4..4f36a22aa6d7292d609d9a84472df1b0a7cc692c 100644 (file)
@@ -59,6 +59,7 @@ properties:
       - const: amcc,dwc-otg
       - const: apm,apm82181-dwc-otg
       - const: snps,dwc2
+      - const: sophgo,cv1800-usb
       - const: st,stm32f4x9-fsotg
       - const: st,stm32f4x9-hsotg
       - const: st,stm32f7-hsotg
@@ -172,6 +173,10 @@ properties:
 
   tpl-support: true
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 dependencies:
   port: [ usb-role-switch ]
   role-switch-default-mode: [ usb-role-switch ]
index 2d3589d284b220a0623a538cedd094b70c2797d1..0a6e7ac1b37e28f2a7b284d37a9131eef9b7f0dc 100644 (file)
@@ -33,6 +33,7 @@ properties:
               - fsl,imx7ulp-usbmisc
               - fsl,imx8mm-usbmisc
               - fsl,imx8mn-usbmisc
+              - fsl,imx8ulp-usbmisc
           - const: fsl,imx7d-usbmisc
           - const: fsl,imx6q-usbmisc
       - items:
index 924fd3d748a8817517c01172680728ab7b0d87d4..ef3143f4b794cc734011a70855b657c64efeaef6 100644 (file)
@@ -29,6 +29,7 @@ properties:
           - mediatek,mt7623-xhci
           - mediatek,mt7629-xhci
           - mediatek,mt7986-xhci
+          - mediatek,mt7988-xhci
           - mediatek,mt8173-xhci
           - mediatek,mt8183-xhci
           - mediatek,mt8186-xhci
diff --git a/Bindings/usb/microchip,usb2514.yaml b/Bindings/usb/microchip,usb2514.yaml
new file mode 100644 (file)
index 0000000..783c275
--- /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/usb/microchip,usb2514.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip USB2514 Hub Controller
+
+maintainers:
+  - Fabio Estevam <festevam@gmail.com>
+
+allOf:
+  - $ref: usb-hcd.yaml#
+
+properties:
+  compatible:
+    enum:
+      - usb424,2412
+      - usb424,2417
+      - usb424,2514
+
+  reg: true
+
+  reset-gpios:
+    description: GPIO connected to the RESET_N pin.
+
+  vdd-supply:
+    description: 3.3V power supply.
+
+  clocks:
+    description: External 24MHz clock connected to the CLKIN pin.
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/imx6qdl-clock.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    usb {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        usb-hub@1 {
+            compatible = "usb424,2514";
+            reg = <1>;
+            clocks = <&clks IMX6QDL_CLK_CKO>;
+            reset-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;
+            vdd-supply = <&reg_3v3_hub>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ethernet@1 {
+                compatible = "usbb95,772b";
+                reg = <1>;
+            };
+        };
+    };
index 38a3404ec71bbb8a2438b2dc61b161f5bc82a3a2..cf633d488c3f261f3cbe1e9120d5326840fcace1 100644 (file)
@@ -26,10 +26,12 @@ properties:
           - qcom,msm8998-dwc3
           - qcom,qcm2290-dwc3
           - qcom,qcs404-dwc3
+          - qcom,qdu1000-dwc3
           - qcom,sa8775p-dwc3
           - qcom,sc7180-dwc3
           - qcom,sc7280-dwc3
           - qcom,sc8280xp-dwc3
+          - qcom,sc8280xp-dwc3-mp
           - qcom,sdm660-dwc3
           - qcom,sdm670-dwc3
           - qcom,sdm845-dwc3
@@ -117,11 +119,11 @@ properties:
                                exception of SDM670/SDM845/SM6350.
         - ss_phy_irq: Used for remote wakeup in Super Speed mode of operation.
     minItems: 2
-    maxItems: 5
+    maxItems: 18
 
   interrupt-names:
     minItems: 2
-    maxItems: 5
+    maxItems: 18
 
   qcom,select-utmi-as-pipe-clk:
     description:
@@ -245,6 +247,7 @@ allOf:
           contains:
             enum:
               - qcom,ipq8074-dwc3
+              - qcom,qdu1000-dwc3
     then:
       properties:
         clocks:
@@ -282,6 +285,7 @@ allOf:
           contains:
             enum:
               - qcom,sc8280xp-dwc3
+              - qcom,sc8280xp-dwc3-mp
               - qcom,x1e80100-dwc3
     then:
       properties:
@@ -440,6 +444,7 @@ allOf:
               - qcom,ipq4019-dwc3
               - qcom,ipq8064-dwc3
               - qcom,msm8994-dwc3
+              - qcom,qdu1000-dwc3
               - qcom,sa8775p-dwc3
               - qcom,sc7180-dwc3
               - qcom,sc7280-dwc3
@@ -470,6 +475,38 @@ allOf:
             - const: dm_hs_phy_irq
             - const: ss_phy_irq
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sc8280xp-dwc3-mp
+    then:
+      properties:
+        interrupts:
+          minItems: 18
+          maxItems: 18
+        interrupt-names:
+          items:
+            - const: pwr_event_1
+            - const: pwr_event_2
+            - const: pwr_event_3
+            - const: pwr_event_4
+            - const: hs_phy_1
+            - const: hs_phy_2
+            - const: hs_phy_3
+            - const: hs_phy_4
+            - const: dp_hs_phy_1
+            - const: dm_hs_phy_1
+            - const: dp_hs_phy_2
+            - const: dm_hs_phy_2
+            - const: dp_hs_phy_3
+            - const: dm_hs_phy_3
+            - const: dp_hs_phy_4
+            - const: dm_hs_phy_4
+            - const: ss_phy_1
+            - const: ss_phy_2
+
 additionalProperties: false
 
 examples:
index d9694570c419e8cc43119d63990262b7dcf00a05..6d3ef364672e9096e8bd36fe0d79667142f44341 100644 (file)
@@ -21,6 +21,7 @@ properties:
       - items:
           - enum:
               - qcom,pm6150-typec
+              - qcom,pm7250b-typec
           - const: qcom,pm8150b-typec
       - items:
           - enum:
@@ -192,15 +193,22 @@ examples:
 
                     port@0 {
                         reg = <0>;
-                        pmic_typec_mux_out: endpoint {
-                            remote-endpoint = <&usb_phy_typec_mux_in>;
+                        pmic_typec_hs_in: endpoint {
+                            remote-endpoint = <&usb_hs_out>;
                         };
                     };
 
                     port@1 {
                         reg = <1>;
-                        pmic_typec_role_switch_out: endpoint {
-                            remote-endpoint = <&usb_role_switch_in>;
+                        pmic_typec_ss_in: endpoint {
+                            remote-endpoint = <&usb_phy_typec_ss_out>;
+                        };
+                    };
+
+                    port@2 {
+                        reg = <2>;
+                        pmic_typec_sbu: endpoint {
+                            remote-endpoint = <&usb_mux_sbu>;
                         };
                     };
                 };
@@ -212,8 +220,8 @@ examples:
         dr_mode = "otg";
         usb-role-switch;
         port {
-            usb_role_switch_in: endpoint {
-                remote-endpoint = <&pmic_typec_role_switch_out>;
+            usb_hs_out: endpoint {
+                remote-endpoint = <&pmic_typec_hs_in>;
             };
         };
     };
@@ -221,8 +229,19 @@ examples:
     usb-phy {
         orientation-switch;
         port {
-            usb_phy_typec_mux_in: endpoint {
-                remote-endpoint = <&pmic_typec_mux_out>;
+            usb_phy_typec_ss_out: endpoint {
+                remote-endpoint = <&pmic_typec_ss_in>;
+            };
+        };
+    };
+
+    usb-mux {
+        orientation-switch;
+        mode-switch;
+
+        port {
+            usb_mux_sbu: endpoint {
+                remote-endpoint = <&pmic_typec_sbu>;
             };
         };
     };
index 0874fc21f66fbba36548774b40d5712aa190c7c5..6577a61cc07531d56f1a02dec8cde5c14ae1160a 100644 (file)
@@ -65,6 +65,7 @@ patternProperties:
     description: The hard wired USB devices
     type: object
     $ref: /schemas/usb/usb-device.yaml
+    additionalProperties: true
 
 required:
   - peer-hub
index 40ada78f2328895ac2378fab9a09c818e1034dfd..c63db3ebd07bd493bbc33345b553db39e8d47152 100644 (file)
@@ -19,10 +19,14 @@ properties:
       - items:
           - enum:
               - renesas,usbhs-r7s9210   # RZ/A2
+          - const: renesas,rza2-usbhs
+
+      - items:
+          - enum:
               - renesas,usbhs-r9a07g043 # RZ/G2UL and RZ/Five
               - renesas,usbhs-r9a07g044 # RZ/G2{L,LC}
               - renesas,usbhs-r9a07g054 # RZ/V2L
-          - const: renesas,rza2-usbhs
+          - const: renesas,rzg2l-usbhs
 
       - items:
           - enum:
index 1ade99e85ba8f5078239ccb8bf9110b4f323cf11..2b3430cebe99106f3b6201ab31d4d9e3fcc55627 100644 (file)
@@ -12,6 +12,7 @@ maintainers:
 properties:
   compatible:
     enum:
+      - google,gs101-dwusb3
       - samsung,exynos5250-dwusb3
       - samsung,exynos5433-dwusb3
       - samsung,exynos7-dwusb3
@@ -55,6 +56,23 @@ required:
   - vdd33-supply
 
 allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: google,gs101-dwusb3
+    then:
+      properties:
+        clocks:
+          minItems: 4
+          maxItems: 4
+        clock-names:
+          items:
+            - const: bus_early
+            - const: susp_clk
+            - const: link_aclk
+            - const: link_pclk
+
   - if:
       properties:
         compatible:
index 203a1eb66691f6f3ea69686e397bc5a986a830ba..1cd0ca90127d91d89083ba8e50b9053fdbe25537 100644 (file)
@@ -85,15 +85,16 @@ properties:
 
   phys:
     minItems: 1
-    maxItems: 2
+    maxItems: 19
 
   phy-names:
     minItems: 1
-    maxItems: 2
-    items:
-      enum:
-        - usb2-phy
-        - usb3-phy
+    maxItems: 19
+    oneOf:
+      - items:
+          enum: [ usb2-phy, usb3-phy ]
+      - items:
+          pattern: "^usb(2-([0-9]|1[0-4])|3-[0-3])$"
 
   power-domains:
     description:
diff --git a/Bindings/usb/usb-uhci.txt b/Bindings/usb/usb-uhci.txt
deleted file mode 100644 (file)
index d1702eb..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-Generic Platform UHCI Controller
------------------------------------------------------
-
-Required properties:
-- compatible : "generic-uhci" (deprecated: "platform-uhci")
-- reg : Should contain 1 register ranges(address and length)
-- interrupts : UHCI controller interrupt
-
-additionally the properties from usb-hcd.yaml (in the current directory) are
-supported.
-
-Example:
-
-       uhci@d8007b00 {
-               compatible = "generic-uhci";
-               reg = <0xd8007b00 0x200>;
-               interrupts = <43>;
-       };
diff --git a/Bindings/usb/usb-uhci.yaml b/Bindings/usb/usb-uhci.yaml
new file mode 100644 (file)
index 0000000..d8336f7
--- /dev/null
@@ -0,0 +1,75 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/usb-uhci.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic Platform UHCI Controller
+
+maintainers:
+  - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+properties:
+  compatible:
+    oneOf:
+      - const: generic-uhci
+      - const: platform-uhci
+        deprecated: true
+      - items:
+          - enum:
+              - aspeed,ast2400-uhci
+              - aspeed,ast2500-uhci
+              - aspeed,ast2600-uhci
+          - const: generic-uhci
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  '#ports':
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+allOf:
+  - $ref: usb-hcd.yaml
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: generic-uhci
+    then:
+      required:
+        - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/aspeed-clock.h>
+
+    usb@d8007b00 {
+        compatible = "generic-uhci";
+        reg = <0xd8007b00 0x200>;
+        interrupts = <43>;
+        clocks = <&syscon ASPEED_CLK_GATE_USBUHCICLK>;
+    };
+  - |
+    #include <dt-bindings/clock/aspeed-clock.h>
+
+    usb@1e6b0000 {
+        compatible = "aspeed,ast2500-uhci", "generic-uhci";
+        reg = <0x1e6b0000 0x100>;
+        interrupts = <14>;
+        #ports = <2>;
+        clocks = <&syscon ASPEED_CLK_GATE_USBUHCICLK>;
+    };
+...
index b97d298b3eb695ba016d98b0715d692c23bb6ce1..fbf47f0bacf1ae3f4f20013278008e0ca2ddd485 100644 (file)
@@ -151,6 +151,8 @@ patternProperties:
     description: ARM Ltd.
   "^armadeus,.*":
     description: ARMadeus Systems SARL
+  "^armsom,.*":
+    description: ArmSoM Technology Co., Ltd.
   "^arrow,.*":
     description: Arrow Electronics
   "^artesyn,.*":
@@ -256,6 +258,8 @@ patternProperties:
     description: Catalyst Semiconductor, Inc.
   "^cavium,.*":
     description: Cavium, Inc.
+  "^cct,.*":
+    description: Crystal Clear Technology Sdn. Bhd.
   "^cdns,.*":
     description: Cadence Design Systems Inc.
   "^cdtech,.*":
@@ -438,6 +442,8 @@ patternProperties:
     description: Dongguan EmbedFire Electronic Technology Co., Ltd.
   "^embest,.*":
     description: Shenzhen Embest Technology Co., Ltd.
+  "^emcraft,.*":
+    description: Emcraft Systems
   "^emlid,.*":
     description: Emlid, Ltd.
   "^emmicro,.*":
@@ -529,6 +535,8 @@ patternProperties:
     description: FX Technology Ltd.
   "^galaxycore,.*":
     description: GalaxyCore Inc.
+  "^gameforce,.*":
+    description: GameForce
   "^gardena,.*":
     description: GARDENA GmbH
   "^gateway,.*":
@@ -1627,6 +1635,8 @@ patternProperties:
     description: Wondermedia Technologies, Inc.
   "^wobo,.*":
     description: Wobo
+  "^wolfvision,.*":
+    description: WolfVision GmbH
   "^x-powers,.*":
     description: X-Powers
   "^xen,.*":
diff --git a/Bindings/watchdog/aspeed,ast2400-wdt.yaml b/Bindings/watchdog/aspeed,ast2400-wdt.yaml
new file mode 100644 (file)
index 0000000..be78a98
--- /dev/null
@@ -0,0 +1,142 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Aspeed watchdog timer controllers
+
+maintainers:
+  - Andrew Jeffery <andrew@codeconstruct.com.au>
+
+properties:
+  compatible:
+    enum:
+      - aspeed,ast2400-wdt
+      - aspeed,ast2500-wdt
+      - aspeed,ast2600-wdt
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+    description: >
+      The clock used to drive the watchdog counter. From the AST2500 no source
+      other than the 1MHz clock can be selected, so the clocks property is
+      optional.
+
+  aspeed,reset-type:
+    $ref: /schemas/types.yaml#/definitions/string
+    enum:
+      - cpu
+      - soc
+      - system
+      - none
+    default: system
+    description: >
+      The watchdog can be programmed to generate one of three different types of
+      reset when a timeout occcurs.
+
+      Specifying 'cpu' will only reset the processor on a timeout event.
+
+      Specifying 'soc' will reset a configurable subset of the SoC's controllers
+      on a timeout event. Controllers critical to the SoC's operation may remain
+      untouched. The set of SoC controllers to reset may be specified via the
+      aspeed,reset-mask property if the node has the aspeed,ast2500-wdt or
+      aspeed,ast2600-wdt compatible.
+
+      Specifying 'system' will reset all controllers on a timeout event, as if
+      EXTRST had been asserted.
+
+      Specifying 'none' will cause the timeout event to have no reset effect.
+      Another watchdog engine on the chip must be used for chip reset operations.
+
+  aspeed,alt-boot:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: >
+      Direct the watchdog to configure the SoC to boot from the alternative boot
+      region if a timeout occurs.
+
+  aspeed,external-signal:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: >
+      Assert the timeout event on an external signal pin associated with the
+      watchdog controller instance. The pin must be muxed appropriately.
+
+  aspeed,ext-pulse-duration:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: >
+      The duration, in microseconds, of the pulse emitted on the external signal
+      pin.
+
+  aspeed,ext-push-pull:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: >
+      If aspeed,external-signal is specified in the node, set the external
+      signal pin's drive type to push-pull. If aspeed,ext-push-pull is not
+      specified then the pin is configured as open-drain.
+
+  aspeed,ext-active-high:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: >
+      If both aspeed,external-signal and aspeed,ext-push-pull are specified in
+      the node, set the pulse polarity to active-high. If aspeed,ext-active-high
+      is not specified then the pin is configured as active-low.
+
+  aspeed,reset-mask:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 1
+    maxItems: 2
+    description: >
+      A bitmask indicating which peripherals will be reset if the watchdog
+      timer expires. On AST2500 SoCs this should be a single word defined using
+      the AST2500_WDT_RESET_* macros; on AST2600 SoCs this should be a two-word
+      array with the first word defined using the AST2600_WDT_RESET1_* macros,
+      and the second word defined using the AST2600_WDT_RESET2_* macros.
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - if:
+      anyOf:
+        - required:
+            - aspeed,ext-push-pull
+        - required:
+            - aspeed,ext-active-high
+        - required:
+            - aspeed,reset-mask
+    then:
+      properties:
+        compatible:
+          enum:
+            - aspeed,ast2500-wdt
+            - aspeed,ast2600-wdt
+  - if:
+      required:
+        - aspeed,ext-active-high
+    then:
+      required:
+        - aspeed,ext-push-pull
+
+additionalProperties: false
+
+examples:
+  - |
+    watchdog@1e785000 {
+        compatible = "aspeed,ast2400-wdt";
+        reg = <0x1e785000 0x1c>;
+        aspeed,reset-type = "system";
+        aspeed,external-signal;
+    };
+  - |
+    #include <dt-bindings/watchdog/aspeed-wdt.h>
+    watchdog@1e785040 {
+        compatible = "aspeed,ast2600-wdt";
+        reg = <0x1e785040 0x40>;
+        aspeed,reset-type = "soc";
+        aspeed,reset-mask = <AST2600_WDT_RESET1_DEFAULT
+                            (AST2600_WDT_RESET2_DEFAULT & ~AST2600_WDT_RESET2_LPC)>;
+    };
diff --git a/Bindings/watchdog/aspeed-wdt.txt b/Bindings/watchdog/aspeed-wdt.txt
deleted file mode 100644 (file)
index 3208adb..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-Aspeed Watchdog Timer
-
-Required properties:
- - compatible: must be one of:
-       - "aspeed,ast2400-wdt"
-       - "aspeed,ast2500-wdt"
-       - "aspeed,ast2600-wdt"
-
- - reg: physical base address of the controller and length of memory mapped
-   region
-
-Optional properties:
-
- - aspeed,reset-type = "cpu|soc|system|none"
-
-   Reset behavior - Whenever a timeout occurs the watchdog can be programmed
-   to generate one of three different, mutually exclusive, types of resets.
-
-   Type "none" can be specified to indicate that no resets are to be done.
-   This is useful in situations where another watchdog engine on chip is
-   to perform the reset.
-
-   If 'aspeed,reset-type=' is not specified the default is to enable system
-   reset.
-
-   Reset types:
-
-        - cpu: Reset CPU on watchdog timeout
-
-        - soc: Reset 'System on Chip' on watchdog timeout
-
-        - system: Reset system on watchdog timeout
-
-        - none: No reset is performed on timeout. Assumes another watchdog
-                engine is responsible for this.
-
- - aspeed,alt-boot:    If property is present then boot from alternate block.
- - aspeed,external-signal: If property is present then signal is sent to
-                       external reset counter (only WDT1 and WDT2). If not
-                       specified no external signal is sent.
- - aspeed,ext-pulse-duration: External signal pulse duration in microseconds
-
-Optional properties for AST2500-compatible watchdogs:
- - aspeed,ext-push-pull: If aspeed,external-signal is present, set the pin's
-                        drive type to push-pull. The default is open-drain.
- - aspeed,ext-active-high: If aspeed,external-signal is present and and the pin
-                          is configured as push-pull, then set the pulse
-                          polarity to active-high. The default is active-low.
-
-Optional properties for AST2500- and AST2600-compatible watchdogs:
- - aspeed,reset-mask: A bitmask indicating which peripherals will be reset if
-                     the watchdog timer expires.  On AST2500 this should be a
-                     single word defined using the AST2500_WDT_RESET_* macros;
-                     on AST2600 this should be a two-word array with the first
-                     word defined using the AST2600_WDT_RESET1_* macros and the
-                     second word defined using the AST2600_WDT_RESET2_* macros.
-
-Examples:
-
-       wdt1: watchdog@1e785000 {
-               compatible = "aspeed,ast2400-wdt";
-               reg = <0x1e785000 0x1c>;
-               aspeed,reset-type = "system";
-               aspeed,external-signal;
-       };
-
-       #include <dt-bindings/watchdog/aspeed-wdt.h>
-       wdt2: watchdog@1e785040 {
-               compatible = "aspeed,ast2600-wdt";
-               reg = <0x1e785040 0x40>;
-               aspeed,reset-mask = <AST2600_WDT_RESET1_DEFAULT
-                                    (AST2600_WDT_RESET2_DEFAULT & ~AST2600_WDT_RESET2_LPC)>;
-       };
diff --git a/Bindings/watchdog/twl4030-wdt.txt b/Bindings/watchdog/twl4030-wdt.txt
deleted file mode 100644 (file)
index 80a3719..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-Device tree bindings for twl4030-wdt driver (TWL4030 watchdog)
-
-Required properties:
-       compatible = "ti,twl4030-wdt";
-
-Example:
-
-watchdog {
-       compatible = "ti,twl4030-wdt";
-};
diff --git a/include/dt-bindings/arm/mhuv3-dt.h b/include/dt-bindings/arm/mhuv3-dt.h
new file mode 100644 (file)
index 0000000..4575406
--- /dev/null
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * This header provides constants for the defined MHUv3 types.
+ */
+
+#ifndef _DT_BINDINGS_ARM_MHUV3_DT_H
+#define _DT_BINDINGS_ARM_MHUV3_DT_H
+
+#define DBE_EXT                0
+#define FCE_EXT                1
+#define FE_EXT         2
+
+#endif /* _DT_BINDINGS_ARM_MHUV3_DT_H */
index 19ac7b36f608eafdf1b25bbabeea4296ddffe8d3..d040033dc8eea0530cd9ddf530a1f0d67679f6d2 100644 (file)
 #define QCOM_ID_QRU1000                        539
 #define QCOM_ID_SM8475_2               540
 #define QCOM_ID_QDU1000                        545
+#define QCOM_ID_X1E80100               555
 #define QCOM_ID_SM8650                 557
 #define QCOM_ID_SM4450                 568
 #define QCOM_ID_QDU1010                        587
index 3dac3577788a70af3b5c80a0ea5b599559e53c59..442f9e9037dc33198a1cee20af62fc70bbd96605 100644 (file)
 #define CLK_APM_PLL_DIV4_APM                           70
 #define CLK_APM_PLL_DIV16_APM                          71
 
+/* CMU_HSI0 */
+#define CLK_FOUT_USB_PLL                                       1
+#define CLK_MOUT_PLL_USB                                       2
+#define CLK_MOUT_HSI0_ALT_USER                                 3
+#define CLK_MOUT_HSI0_BUS_USER                                 4
+#define CLK_MOUT_HSI0_DPGTC_USER                               5
+#define CLK_MOUT_HSI0_TCXO_USER                                        6
+#define CLK_MOUT_HSI0_USB20_USER                               7
+#define CLK_MOUT_HSI0_USB31DRD_USER                            8
+#define CLK_MOUT_HSI0_USBDPDBG_USER                            9
+#define CLK_MOUT_HSI0_BUS                                      10
+#define CLK_MOUT_HSI0_USB20_REF                                        11
+#define CLK_MOUT_HSI0_USB31DRD                                 12
+#define CLK_DOUT_HSI0_USB31DRD                                 13
+#define CLK_GOUT_HSI0_PCLK                                     14
+#define CLK_GOUT_HSI0_USB31DRD_I_USB31DRD_SUSPEND_CLK_26       15
+#define CLK_GOUT_HSI0_CLK_HSI0_ALT                             16
+#define CLK_GOUT_HSI0_DP_LINK_I_DP_GTC_CLK                     17
+#define CLK_GOUT_HSI0_DP_LINK_I_PCLK                           18
+#define CLK_GOUT_HSI0_D_TZPC_HSI0_PCLK                         19
+#define CLK_GOUT_HSI0_ETR_MIU_I_ACLK                           20
+#define CLK_GOUT_HSI0_ETR_MIU_I_PCLK                           21
+#define CLK_GOUT_HSI0_GPC_HSI0_PCLK                            22
+#define CLK_GOUT_HSI0_LHM_AXI_G_ETR_HSI0_I_CLK                 23
+#define CLK_GOUT_HSI0_LHM_AXI_P_AOCHSI0_I_CLK                  24
+#define CLK_GOUT_HSI0_LHM_AXI_P_HSI0_I_CLK                     25
+#define CLK_GOUT_HSI0_LHS_ACEL_D_HSI0_I_CLK                    26
+#define CLK_GOUT_HSI0_LHS_AXI_D_HSI0AOC_I_CLK                  27
+#define CLK_GOUT_HSI0_PPMU_HSI0_AOC_ACLK                       28
+#define CLK_GOUT_HSI0_PPMU_HSI0_AOC_PCLK                       29
+#define CLK_GOUT_HSI0_PPMU_HSI0_BUS0_ACLK                      30
+#define CLK_GOUT_HSI0_PPMU_HSI0_BUS0_PCLK                      31
+#define CLK_GOUT_HSI0_CLK_HSI0_BUS_CLK                         32
+#define CLK_GOUT_HSI0_SSMT_USB_ACLK                            33
+#define CLK_GOUT_HSI0_SSMT_USB_PCLK                            34
+#define CLK_GOUT_HSI0_SYSMMU_USB_CLK_S2                                35
+#define CLK_GOUT_HSI0_SYSREG_HSI0_PCLK                         36
+#define CLK_GOUT_HSI0_UASC_HSI0_CTRL_ACLK                      37
+#define CLK_GOUT_HSI0_UASC_HSI0_CTRL_PCLK                      38
+#define CLK_GOUT_HSI0_UASC_HSI0_LINK_ACLK                      39
+#define CLK_GOUT_HSI0_UASC_HSI0_LINK_PCLK                      40
+#define CLK_GOUT_HSI0_USB31DRD_ACLK_PHYCTRL                    41
+#define CLK_GOUT_HSI0_USB31DRD_BUS_CLK_EARLY                   42
+#define CLK_GOUT_HSI0_USB31DRD_I_USB20_PHY_REFCLK_26           43
+#define CLK_GOUT_HSI0_USB31DRD_I_USB31DRD_REF_CLK_40           44
+#define CLK_GOUT_HSI0_USB31DRD_I_USBDPPHY_REF_SOC_PLL          45
+#define CLK_GOUT_HSI0_USB31DRD_I_USBDPPHY_SCL_APB_PCLK         46
+#define CLK_GOUT_HSI0_USB31DRD_I_USBPCS_APB_CLK                        47
+#define CLK_GOUT_HSI0_USB31DRD_USBDPPHY_I_ACLK                 48
+#define CLK_GOUT_HSI0_USB31DRD_USBDPPHY_UDBG_I_APB_PCLK                49
+#define CLK_GOUT_HSI0_XIU_D0_HSI0_ACLK                         50
+#define CLK_GOUT_HSI0_XIU_D1_HSI0_ACLK                         51
+#define CLK_GOUT_HSI0_XIU_P_HSI0_ACLK                          52
+
+/* CMU_HSI2 */
+#define CLK_MOUT_HSI2_BUS_USER                                         1
+#define CLK_MOUT_HSI2_MMC_CARD_USER                                    2
+#define CLK_MOUT_HSI2_PCIE_USER                                                3
+#define CLK_MOUT_HSI2_UFS_EMBD_USER                                    4
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_003_PHY_REFCLK_IN               5
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_004_PHY_REFCLK_IN               6
+#define CLK_GOUT_HSI2_SSMT_PCIE_IA_GEN4A_1_ACLK                                7
+#define CLK_GOUT_HSI2_SSMT_PCIE_IA_GEN4A_1_PCLK                                8
+#define CLK_GOUT_HSI2_SSMT_PCIE_IA_GEN4B_1_ACLK                                9
+#define CLK_GOUT_HSI2_SSMT_PCIE_IA_GEN4B_1_PCLK                                10
+#define CLK_GOUT_HSI2_D_TZPC_HSI2_PCLK                                 11
+#define CLK_GOUT_HSI2_GPC_HSI2_PCLK                                    12
+#define CLK_GOUT_HSI2_GPIO_HSI2_PCLK                                   13
+#define CLK_GOUT_HSI2_HSI2_CMU_HSI2_PCLK                               14
+#define CLK_GOUT_HSI2_LHM_AXI_P_HSI2_I_CLK                             15
+#define CLK_GOUT_HSI2_LHS_ACEL_D_HSI2_I_CLK                            16
+#define CLK_GOUT_HSI2_MMC_CARD_I_ACLK                                  17
+#define CLK_GOUT_HSI2_MMC_CARD_SDCLKIN                                 18
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_003_DBI_ACLK_UG                 19
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_003_MSTR_ACLK_UG                        20
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_003_SLV_ACLK_UG                 21
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_003_I_DRIVER_APB_CLK            22
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_004_DBI_ACLK_UG                 23
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_004_MSTR_ACLK_UG                        24
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_004_SLV_ACLK_UG                 25
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_004_I_DRIVER_APB_CLK            26
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCS_PMA_PHY_UDBG_I_APB_PCLK          27
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCS_PMA_PIPE_PAL_PCIE_I_APB_PCLK     28
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCS_PMA_PCIEPHY210X2_QCH_I_APB_PCLK  29
+#define CLK_GOUT_HSI2_PCIE_IA_GEN4A_1_I_CLK                            30
+#define CLK_GOUT_HSI2_PCIE_IA_GEN4B_1_I_CLK                            31
+#define CLK_GOUT_HSI2_PPMU_HSI2_ACLK                                   32
+#define CLK_GOUT_HSI2_PPMU_HSI2_PCLK                                   33
+#define CLK_GOUT_HSI2_QE_MMC_CARD_HSI2_ACLK                            34
+#define CLK_GOUT_HSI2_QE_MMC_CARD_HSI2_PCLK                            35
+#define CLK_GOUT_HSI2_QE_PCIE_GEN4A_HSI2_ACLK                          36
+#define CLK_GOUT_HSI2_QE_PCIE_GEN4A_HSI2_PCLK                          37
+#define CLK_GOUT_HSI2_QE_PCIE_GEN4B_HSI2_ACLK                          38
+#define CLK_GOUT_HSI2_QE_PCIE_GEN4B_HSI2_PCLK                          39
+#define CLK_GOUT_HSI2_QE_UFS_EMBD_HSI2_ACLK                            40
+#define CLK_GOUT_HSI2_QE_UFS_EMBD_HSI2_PCLK                            41
+#define CLK_GOUT_HSI2_CLK_HSI2_BUS_CLK                                 42
+#define CLK_GOUT_HSI2_CLK_HSI2_OSCCLK_CLK                              43
+#define CLK_GOUT_HSI2_SSMT_HSI2_ACLK                                   44
+#define CLK_GOUT_HSI2_SSMT_HSI2_PCLK                                   45
+#define CLK_GOUT_HSI2_SYSMMU_HSI2_CLK_S2                               46
+#define CLK_GOUT_HSI2_SYSREG_HSI2_PCLK                                 47
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4A_DBI_1_ACLK                       48
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4A_DBI_1_PCLK                       49
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4A_SLV_1_ACLK                       50
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4A_SLV_1_PCLK                       51
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4B_DBI_1_ACLK                       52
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4B_DBI_1_PCLK                       53
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4B_SLV_1_ACLK                       54
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4B_SLV_1_PCLK                       55
+#define CLK_GOUT_HSI2_UFS_EMBD_I_ACLK                                  56
+#define CLK_GOUT_HSI2_UFS_EMBD_I_CLK_UNIPRO                            57
+#define CLK_GOUT_HSI2_UFS_EMBD_I_FMP_CLK                               58
+#define CLK_GOUT_HSI2_XIU_D_HSI2_ACLK                                  59
+#define CLK_GOUT_HSI2_XIU_P_HSI2_ACLK                                  60
+
 /* CMU_MISC */
 #define CLK_MOUT_MISC_BUS_USER                         1
 #define CLK_MOUT_MISC_SSS_USER                         2
index 3bc4dfc193c2dfad4d1822c42d300b84b4c669d7..4279ba595f1e0396c21083bb0c5b0eb3f5119311 100644 (file)
@@ -7,24 +7,40 @@
 #ifndef __DT_BINDINGS_CLOCK_LOONGSON2_H
 #define __DT_BINDINGS_CLOCK_LOONGSON2_H
 
-#define LOONGSON2_REF_100M                             0
-#define LOONGSON2_NODE_PLL                             1
-#define LOONGSON2_DDR_PLL                              2
-#define LOONGSON2_DC_PLL                               3
-#define LOONGSON2_PIX0_PLL                             4
-#define LOONGSON2_PIX1_PLL                             5
-#define LOONGSON2_NODE_CLK                             6
-#define LOONGSON2_HDA_CLK                              7
-#define LOONGSON2_GPU_CLK                              8
-#define LOONGSON2_DDR_CLK                              9
-#define LOONGSON2_GMAC_CLK                             10
-#define LOONGSON2_DC_CLK                               11
-#define LOONGSON2_APB_CLK                              12
-#define LOONGSON2_USB_CLK                              13
-#define LOONGSON2_SATA_CLK                             14
-#define LOONGSON2_PIX0_CLK                             15
-#define LOONGSON2_PIX1_CLK                             16
-#define LOONGSON2_BOOT_CLK                             17
-#define LOONGSON2_CLK_END                              18
+#define LOONGSON2_REF_100M     0
+#define LOONGSON2_NODE_PLL     1
+#define LOONGSON2_DDR_PLL      2
+#define LOONGSON2_DC_PLL       3
+#define LOONGSON2_PIX0_PLL     4
+#define LOONGSON2_PIX1_PLL     5
+#define LOONGSON2_NODE_CLK     6
+#define LOONGSON2_HDA_CLK      7
+#define LOONGSON2_GPU_CLK      8
+#define LOONGSON2_DDR_CLK      9
+#define LOONGSON2_GMAC_CLK     10
+#define LOONGSON2_DC_CLK       11
+#define LOONGSON2_APB_CLK      12
+#define LOONGSON2_USB_CLK      13
+#define LOONGSON2_SATA_CLK     14
+#define LOONGSON2_PIX0_CLK     15
+#define LOONGSON2_PIX1_CLK     16
+#define LOONGSON2_BOOT_CLK     17
+#define LOONGSON2_OUT0_GATE    18
+#define LOONGSON2_GMAC_GATE    19
+#define LOONGSON2_RIO_GATE     20
+#define LOONGSON2_DC_GATE      21
+#define LOONGSON2_GPU_GATE     22
+#define LOONGSON2_DDR_GATE     23
+#define LOONGSON2_HDA_GATE     24
+#define LOONGSON2_NODE_GATE    25
+#define LOONGSON2_EMMC_GATE    26
+#define LOONGSON2_PIX0_GATE    27
+#define LOONGSON2_PIX1_GATE    28
+#define LOONGSON2_OUT0_CLK     29
+#define LOONGSON2_RIO_CLK      30
+#define LOONGSON2_EMMC_CLK     31
+#define LOONGSON2_DES_CLK      32
+#define LOONGSON2_I2S_CLK      33
+#define LOONGSON2_MISC_CLK     34
 
 #endif
diff --git a/include/dt-bindings/clock/nxp,imx95-clock.h b/include/dt-bindings/clock/nxp,imx95-clock.h
new file mode 100644 (file)
index 0000000..782662c
--- /dev/null
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR MIT */
+/*
+ * Copyright 2024 NXP
+ */
+
+#ifndef __DT_BINDINGS_CLOCK_IMX95_H
+#define __DT_BINDINGS_CLOCK_IMX95_H
+
+#define IMX95_CLK_VPUBLK_WAVE                  0
+#define IMX95_CLK_VPUBLK_JPEG_ENC              1
+#define IMX95_CLK_VPUBLK_JPEG_DEC              2
+
+#define IMX95_CLK_CAMBLK_CSI2_FOR0             0
+#define IMX95_CLK_CAMBLK_CSI2_FOR1             1
+#define IMX95_CLK_CAMBLK_ISP_AXI               2
+#define IMX95_CLK_CAMBLK_ISP_PIXEL             3
+#define IMX95_CLK_CAMBLK_ISP                   4
+
+#define IMX95_CLK_DISPMIX_LVDS_PHY_DIV         0
+#define IMX95_CLK_DISPMIX_LVDS_CH0_GATE                1
+#define IMX95_CLK_DISPMIX_LVDS_CH1_GATE                2
+#define IMX95_CLK_DISPMIX_PIX_DI0_GATE         3
+#define IMX95_CLK_DISPMIX_PIX_DI1_GATE         4
+
+#define IMX95_CLK_DISPMIX_ENG0_SEL             0
+#define IMX95_CLK_DISPMIX_ENG1_SEL             1
+
+#endif /* __DT_BINDINGS_CLOCK_IMX95_H */
index 1ec4827b80916054f353a60787f37f3021587255..655440a3e7c6868a547e0ec7f0ab439829fe522c 100644 (file)
 #define R8A73A4_CLK_ZS         14
 #define R8A73A4_CLK_HP         15
 
+/* MSTP1 */
+#define R8A73A4_CLK_TMU0       25
+#define R8A73A4_CLK_TMU3       21
+
 /* MSTP2 */
 #define R8A73A4_CLK_DMAC       18
 #define R8A73A4_CLK_SCIFB3     17
index 77cde8effdc73c6f68b3775b995034f8553fb106..1319933437779071b41bea735caaa3c914ee29b8 100644 (file)
 #define R9A07G043_CLK_SD0              5
 #define R9A07G043_CLK_SD1              6
 #define R9A07G043_CLK_M0               7
-#define R9A07G043_CLK_M2               8
-#define R9A07G043_CLK_M3               9
+#define R9A07G043_CLK_M2               8       /* RZ/G2UL Only */
+#define R9A07G043_CLK_M3               9       /* RZ/G2UL Only */
 #define R9A07G043_CLK_HP               10
 #define R9A07G043_CLK_TSU              11
 #define R9A07G043_CLK_ZT               12
 #define R9A07G043_CLK_P0               13
 #define R9A07G043_CLK_P1               14
 #define R9A07G043_CLK_P2               15
-#define R9A07G043_CLK_AT               16
+#define R9A07G043_CLK_AT               16      /* RZ/G2UL Only */
 #define R9A07G043_OSCCLK               17
 #define R9A07G043_CLK_P0_DIV2          18
 
 #define R9A07G043_AX45MP_CORE0_RESETN  78      /* RZ/Five Only */
 #define R9A07G043_IAX45_RESETN         79      /* RZ/Five Only */
 
+/* Power domain IDs. */
+#define R9A07G043_PD_ALWAYS_ON         0
+#define R9A07G043_PD_GIC               1       /* RZ/G2UL Only */
+#define R9A07G043_PD_IA55              2       /* RZ/G2UL Only */
+#define R9A07G043_PD_MHU               3       /* RZ/G2UL Only */
+#define R9A07G043_PD_CORESIGHT         4       /* RZ/G2UL Only */
+#define R9A07G043_PD_SYC               5       /* RZ/G2UL Only */
+#define R9A07G043_PD_DMAC              6
+#define R9A07G043_PD_GTM0              7
+#define R9A07G043_PD_GTM1              8
+#define R9A07G043_PD_GTM2              9
+#define R9A07G043_PD_MTU               10
+#define R9A07G043_PD_POE3              11
+#define R9A07G043_PD_WDT0              12
+#define R9A07G043_PD_SPI               13
+#define R9A07G043_PD_SDHI0             14
+#define R9A07G043_PD_SDHI1             15
+#define R9A07G043_PD_ISU               16      /* RZ/G2UL Only */
+#define R9A07G043_PD_CRU               17      /* RZ/G2UL Only */
+#define R9A07G043_PD_LCDC              18      /* RZ/G2UL Only */
+#define R9A07G043_PD_SSI0              19
+#define R9A07G043_PD_SSI1              20
+#define R9A07G043_PD_SSI2              21
+#define R9A07G043_PD_SSI3              22
+#define R9A07G043_PD_SRC               23
+#define R9A07G043_PD_USB0              24
+#define R9A07G043_PD_USB1              25
+#define R9A07G043_PD_USB_PHY           26
+#define R9A07G043_PD_ETHER0            27
+#define R9A07G043_PD_ETHER1            28
+#define R9A07G043_PD_I2C0              29
+#define R9A07G043_PD_I2C1              30
+#define R9A07G043_PD_I2C2              31
+#define R9A07G043_PD_I2C3              32
+#define R9A07G043_PD_SCIF0             33
+#define R9A07G043_PD_SCIF1             34
+#define R9A07G043_PD_SCIF2             35
+#define R9A07G043_PD_SCIF3             36
+#define R9A07G043_PD_SCIF4             37
+#define R9A07G043_PD_SCI0              38
+#define R9A07G043_PD_SCI1              39
+#define R9A07G043_PD_IRDA              40
+#define R9A07G043_PD_RSPI0             41
+#define R9A07G043_PD_RSPI1             42
+#define R9A07G043_PD_RSPI2             43
+#define R9A07G043_PD_CANFD             44
+#define R9A07G043_PD_ADC               45
+#define R9A07G043_PD_TSU               46
+#define R9A07G043_PD_PLIC              47      /* RZ/Five Only */
+#define R9A07G043_PD_IAX45             48      /* RZ/Five Only */
+#define R9A07G043_PD_NCEPLDM           49      /* RZ/Five Only */
+#define R9A07G043_PD_NCEPLMT           50      /* RZ/Five Only */
 
 #endif /* __DT_BINDINGS_CLOCK_R9A07G043_CPG_H__ */
index 0bb17ff1a01a7365d8e82c6526df50375fa8c382..e209f96f92b7efe93fb0476036b9c1f13ef919ef 100644 (file)
 #define R9A07G044_ADC_ADRST_N          82
 #define R9A07G044_TSU_PRESETN          83
 
+/* Power domain IDs. */
+#define R9A07G044_PD_ALWAYS_ON         0
+#define R9A07G044_PD_GIC               1
+#define R9A07G044_PD_IA55              2
+#define R9A07G044_PD_MHU               3
+#define R9A07G044_PD_CORESIGHT         4
+#define R9A07G044_PD_SYC               5
+#define R9A07G044_PD_DMAC              6
+#define R9A07G044_PD_GTM0              7
+#define R9A07G044_PD_GTM1              8
+#define R9A07G044_PD_GTM2              9
+#define R9A07G044_PD_MTU               10
+#define R9A07G044_PD_POE3              11
+#define R9A07G044_PD_GPT               12
+#define R9A07G044_PD_POEGA             13
+#define R9A07G044_PD_POEGB             14
+#define R9A07G044_PD_POEGC             15
+#define R9A07G044_PD_POEGD             16
+#define R9A07G044_PD_WDT0              17
+#define R9A07G044_PD_WDT1              18
+#define R9A07G044_PD_SPI               19
+#define R9A07G044_PD_SDHI0             20
+#define R9A07G044_PD_SDHI1             21
+#define R9A07G044_PD_3DGE              22
+#define R9A07G044_PD_ISU               23
+#define R9A07G044_PD_VCPL4             24
+#define R9A07G044_PD_CRU               25
+#define R9A07G044_PD_MIPI_DSI          26
+#define R9A07G044_PD_LCDC              27
+#define R9A07G044_PD_SSI0              28
+#define R9A07G044_PD_SSI1              29
+#define R9A07G044_PD_SSI2              30
+#define R9A07G044_PD_SSI3              31
+#define R9A07G044_PD_SRC               32
+#define R9A07G044_PD_USB0              33
+#define R9A07G044_PD_USB1              34
+#define R9A07G044_PD_USB_PHY           35
+#define R9A07G044_PD_ETHER0            36
+#define R9A07G044_PD_ETHER1            37
+#define R9A07G044_PD_I2C0              38
+#define R9A07G044_PD_I2C1              39
+#define R9A07G044_PD_I2C2              40
+#define R9A07G044_PD_I2C3              41
+#define R9A07G044_PD_SCIF0             42
+#define R9A07G044_PD_SCIF1             43
+#define R9A07G044_PD_SCIF2             44
+#define R9A07G044_PD_SCIF3             45
+#define R9A07G044_PD_SCIF4             46
+#define R9A07G044_PD_SCI0              47
+#define R9A07G044_PD_SCI1              48
+#define R9A07G044_PD_IRDA              49
+#define R9A07G044_PD_RSPI0             50
+#define R9A07G044_PD_RSPI1             51
+#define R9A07G044_PD_RSPI2             52
+#define R9A07G044_PD_CANFD             53
+#define R9A07G044_PD_ADC               54
+#define R9A07G044_PD_TSU               55
+
 #endif /* __DT_BINDINGS_CLOCK_R9A07G044_CPG_H__ */
index 43f4dbda872cc04f37fa7c4fd59c32c15d78b9bd..2c99f89397c4caa7d97bcded6dd5bdf6bc090906 100644 (file)
 #define R9A07G054_TSU_PRESETN          83
 #define R9A07G054_STPAI_ARESETN                84
 
+/* Power domain IDs. */
+#define R9A07G054_PD_ALWAYS_ON         0
+#define R9A07G054_PD_GIC               1
+#define R9A07G054_PD_IA55              2
+#define R9A07G054_PD_MHU               3
+#define R9A07G054_PD_CORESIGHT         4
+#define R9A07G054_PD_SYC               5
+#define R9A07G054_PD_DMAC              6
+#define R9A07G054_PD_GTM0              7
+#define R9A07G054_PD_GTM1              8
+#define R9A07G054_PD_GTM2              9
+#define R9A07G054_PD_MTU               10
+#define R9A07G054_PD_POE3              11
+#define R9A07G054_PD_GPT               12
+#define R9A07G054_PD_POEGA             13
+#define R9A07G054_PD_POEGB             14
+#define R9A07G054_PD_POEGC             15
+#define R9A07G054_PD_POEGD             16
+#define R9A07G054_PD_WDT0              17
+#define R9A07G054_PD_WDT1              18
+#define R9A07G054_PD_SPI               19
+#define R9A07G054_PD_SDHI0             20
+#define R9A07G054_PD_SDHI1             21
+#define R9A07G054_PD_3DGE              22
+#define R9A07G054_PD_ISU               23
+#define R9A07G054_PD_VCPL4             24
+#define R9A07G054_PD_CRU               25
+#define R9A07G054_PD_MIPI_DSI          26
+#define R9A07G054_PD_LCDC              27
+#define R9A07G054_PD_SSI0              28
+#define R9A07G054_PD_SSI1              29
+#define R9A07G054_PD_SSI2              30
+#define R9A07G054_PD_SSI3              31
+#define R9A07G054_PD_SRC               32
+#define R9A07G054_PD_USB0              33
+#define R9A07G054_PD_USB1              34
+#define R9A07G054_PD_USB_PHY           35
+#define R9A07G054_PD_ETHER0            36
+#define R9A07G054_PD_ETHER1            37
+#define R9A07G054_PD_I2C0              38
+#define R9A07G054_PD_I2C1              39
+#define R9A07G054_PD_I2C2              40
+#define R9A07G054_PD_I2C3              41
+#define R9A07G054_PD_SCIF0             42
+#define R9A07G054_PD_SCIF1             43
+#define R9A07G054_PD_SCIF2             44
+#define R9A07G054_PD_SCIF3             45
+#define R9A07G054_PD_SCIF4             46
+#define R9A07G054_PD_SCI0              47
+#define R9A07G054_PD_SCI1              48
+#define R9A07G054_PD_IRDA              49
+#define R9A07G054_PD_RSPI0             50
+#define R9A07G054_PD_RSPI1             51
+#define R9A07G054_PD_RSPI2             52
+#define R9A07G054_PD_CANFD             53
+#define R9A07G054_PD_ADC               54
+#define R9A07G054_PD_TSU               55
+
 #endif /* __DT_BINDINGS_CLOCK_R9A07G054_CPG_H__ */
index 410725b778a86c9ee91e82296c9d5216f3e7c2ac..8281e9caf3a9ec2767d14bc40d069f15f3093e25 100644 (file)
 #define R9A08G045_I3C_PRESETN          92
 #define R9A08G045_VBAT_BRESETN         93
 
+/* Power domain IDs. */
+#define R9A08G045_PD_ALWAYS_ON         0
+#define R9A08G045_PD_GIC               1
+#define R9A08G045_PD_IA55              2
+#define R9A08G045_PD_MHU               3
+#define R9A08G045_PD_CORESIGHT         4
+#define R9A08G045_PD_SYC               5
+#define R9A08G045_PD_DMAC              6
+#define R9A08G045_PD_GTM0              7
+#define R9A08G045_PD_GTM1              8
+#define R9A08G045_PD_GTM2              9
+#define R9A08G045_PD_GTM3              10
+#define R9A08G045_PD_GTM4              11
+#define R9A08G045_PD_GTM5              12
+#define R9A08G045_PD_GTM6              13
+#define R9A08G045_PD_GTM7              14
+#define R9A08G045_PD_MTU               15
+#define R9A08G045_PD_POE3              16
+#define R9A08G045_PD_GPT               17
+#define R9A08G045_PD_POEGA             18
+#define R9A08G045_PD_POEGB             19
+#define R9A08G045_PD_POEGC             20
+#define R9A08G045_PD_POEGD             21
+#define R9A08G045_PD_WDT0              22
+#define R9A08G045_PD_XSPI              23
+#define R9A08G045_PD_SDHI0             24
+#define R9A08G045_PD_SDHI1             25
+#define R9A08G045_PD_SDHI2             26
+#define R9A08G045_PD_SSI0              27
+#define R9A08G045_PD_SSI1              28
+#define R9A08G045_PD_SSI2              29
+#define R9A08G045_PD_SSI3              30
+#define R9A08G045_PD_SRC               31
+#define R9A08G045_PD_USB0              32
+#define R9A08G045_PD_USB1              33
+#define R9A08G045_PD_USB_PHY           34
+#define R9A08G045_PD_ETHER0            35
+#define R9A08G045_PD_ETHER1            36
+#define R9A08G045_PD_I2C0              37
+#define R9A08G045_PD_I2C1              38
+#define R9A08G045_PD_I2C2              39
+#define R9A08G045_PD_I2C3              40
+#define R9A08G045_PD_SCIF0             41
+#define R9A08G045_PD_SCIF1             42
+#define R9A08G045_PD_SCIF2             43
+#define R9A08G045_PD_SCIF3             44
+#define R9A08G045_PD_SCIF4             45
+#define R9A08G045_PD_SCIF5             46
+#define R9A08G045_PD_SCI0              47
+#define R9A08G045_PD_SCI1              48
+#define R9A08G045_PD_IRDA              49
+#define R9A08G045_PD_RSPI0             50
+#define R9A08G045_PD_RSPI1             51
+#define R9A08G045_PD_RSPI2             52
+#define R9A08G045_PD_RSPI3             53
+#define R9A08G045_PD_RSPI4             54
+#define R9A08G045_PD_CANFD             55
+#define R9A08G045_PD_ADC               56
+#define R9A08G045_PD_TSU               57
+#define R9A08G045_PD_OCTA              58
+#define R9A08G045_PD_PDM               59
+#define R9A08G045_PD_PCI               60
+#define R9A08G045_PD_SPDIF             61
+#define R9A08G045_PD_I3C               62
+#define R9A08G045_PD_VBAT              63
+
+#define R9A08G045_PD_DDR               64
+#define R9A08G045_PD_TZCDDR            65
+#define R9A08G045_PD_OTFDE_DDR         66
+
 #endif /* __DT_BINDINGS_CLOCK_R9A08G045_CPG_H__ */
index d29890865150d3c6e371e3fd589116db91c7764e..5263085c5b23895388d24a7bfc4a9b4ab37cc64d 100644 (file)
@@ -78,6 +78,7 @@
 #define CPLL_333M              9
 #define ARMCLK                 10
 #define USB480M                        11
+#define USB480M_PHY            12
 #define ACLK_CORE_NIU2BUS      18
 #define CLK_CORE_PVTM          19
 #define CLK_CORE_PVTM_CORE     20
index 03edf2ccdf6c80c52eca377c3f4066819e88555f..a4206723f50333db2e5d9d06c538636536846a6a 100644 (file)
 #define KEY_CAMERA_ACCESS_ENABLE       0x24b   /* Enables programmatic access to camera devices. (HUTRR72) */
 #define KEY_CAMERA_ACCESS_DISABLE      0x24c   /* Disables programmatic access to camera devices. (HUTRR72) */
 #define KEY_CAMERA_ACCESS_TOGGLE       0x24d   /* Toggles the current state of the camera access control. (HUTRR72) */
+#define KEY_ACCESSIBILITY              0x24e   /* Toggles the system bound accessibility UI/command (HUTRR116) */
+#define KEY_DO_NOT_DISTURB             0x24f   /* Toggles the system-wide "Do Not Disturb" control (HUTRR94)*/
 
 #define KEY_BRIGHTNESS_MIN             0x250   /* Set Brightness to Minimum */
 #define KEY_BRIGHTNESS_MAX             0x251   /* Set Brightness to Maximum */
index ecea167930d95f684768c6ffb39eef4fc4550b37..4f017bea01233f008a9dcb24af250b9723769ce4 100644 (file)
@@ -46,6 +46,7 @@
 #define LED_FUNCTION_CAPSLOCK "capslock"
 #define LED_FUNCTION_SCROLLLOCK "scrolllock"
 #define LED_FUNCTION_NUMLOCK "numlock"
+#define LED_FUNCTION_FNLOCK "fnlock"
 /*   Obsolete equivalents: "tpacpi::thinklight" (IBM/Lenovo Thinkpads),
      "lp5523:kb{1,2,3,4,5,6}" (Nokia N900) */
 #define LED_FUNCTION_KBD_BACKLIGHT "kbd_backlight"
 #define LED_FUNCTION_INDICATOR "indicator"
 #define LED_FUNCTION_LAN "lan"
 #define LED_FUNCTION_MAIL "mail"
+#define LED_FUNCTION_MOBILE "mobile"
 #define LED_FUNCTION_MTD "mtd"
 #define LED_FUNCTION_PANIC "panic"
 #define LED_FUNCTION_PROGRAMMING "programming"
 #define LED_FUNCTION_RX "rx"
 #define LED_FUNCTION_SD "sd"
+#define LED_FUNCTION_SPEED_LAN "speed-lan"
+#define LED_FUNCTION_SPEED_WAN "speed-wan"
 #define LED_FUNCTION_STANDBY "standby"
 #define LED_FUNCTION_TORCH "torch"
 #define LED_FUNCTION_TX "tx"
index 6fc4b445d3a1435d5b6cb9fc2286e8b72228f14e..b8a4f3ff4a3b75f0057c29e726cac1e3c86685dc 100644 (file)
@@ -1,10 +1,10 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
+/* SPDX-License-Identifier: GPL-2.0-only OR MIT */
 /*
  * Device Tree constants for the Texas Instruments DP83867 PHY
  *
  * Author: Dan Murphy <dmurphy@ti.com>
  *
- * Copyright:   (C) 2015 Texas Instruments, Inc.
+ * Copyright (C) 2015-2024 Texas Instruments Incorporated - https://www.ti.com/
  */
 
 #ifndef _DT_BINDINGS_TI_DP83867_H
index 218b1a64e9750a80d008fa881f48d51d98b70eb1..917114aad7d0eac57b7e7b941e2e7c57bf177434 100644 (file)
@@ -1,10 +1,10 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
+/* SPDX-License-Identifier: GPL-2.0-only OR MIT */
 /*
  * Device Tree constants for the Texas Instruments DP83869 PHY
  *
  * Author: Dan Murphy <dmurphy@ti.com>
  *
- * Copyright:   (C) 2019 Texas Instruments, Inc.
+ * Copyright (C) 2015-2024 Texas Instruments Incorporated - https://www.ti.com/
  */
 
 #ifndef _DT_BINDINGS_TI_DP83869_H
index 4edec4c5b22419188a65cb1309c26c664fb44d55..6b43ea9e005185f9047fbba3a73cdf8aa79798bc 100644 (file)
@@ -17,4 +17,8 @@
 #define QMP_USB43DP_USB3_PHY           0
 #define QMP_USB43DP_DP_PHY             1
 
+/* QMP PCIE PHYs */
+#define QMP_PCIE_PIPE_CLK              0
+#define QMP_PCIE_PHY_AUX_CLK           1
+
 #endif /* _DT_BINDINGS_PHY_QMP */
diff --git a/include/dt-bindings/pinctrl/samsung.h b/include/dt-bindings/pinctrl/samsung.h
deleted file mode 100644 (file)
index d1da5ff..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Samsung's Exynos pinctrl bindings
- *
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
- *             http://www.samsung.com
- * Author: Krzysztof Kozlowski <krzk@kernel.org>
- */
-
-#ifndef __DT_BINDINGS_PINCTRL_SAMSUNG_H__
-#define __DT_BINDINGS_PINCTRL_SAMSUNG_H__
-
-/*
- * These bindings are deprecated, because they do not match the actual
- * concept of bindings but rather contain pure register values.
- * Instead include the header in the DTS source directory.
- */
-#warning "These bindings are deprecated. Instead use the header in the DTS source directory."
-
-#define EXYNOS_PIN_PULL_NONE           0
-#define EXYNOS_PIN_PULL_DOWN           1
-#define EXYNOS_PIN_PULL_UP             3
-
-#define S3C64XX_PIN_PULL_NONE          0
-#define S3C64XX_PIN_PULL_DOWN          1
-#define S3C64XX_PIN_PULL_UP            2
-
-/* Pin function in power down mode */
-#define EXYNOS_PIN_PDN_OUT0            0
-#define EXYNOS_PIN_PDN_OUT1            1
-#define EXYNOS_PIN_PDN_INPUT           2
-#define EXYNOS_PIN_PDN_PREV            3
-
-/* Drive strengths for Exynos3250, Exynos4 (all) and Exynos5250 */
-#define EXYNOS4_PIN_DRV_LV1            0
-#define EXYNOS4_PIN_DRV_LV2            2
-#define EXYNOS4_PIN_DRV_LV3            1
-#define EXYNOS4_PIN_DRV_LV4            3
-
-/* Drive strengths for Exynos5260 */
-#define EXYNOS5260_PIN_DRV_LV1         0
-#define EXYNOS5260_PIN_DRV_LV2         1
-#define EXYNOS5260_PIN_DRV_LV4         2
-#define EXYNOS5260_PIN_DRV_LV6         3
-
-/*
- * Drive strengths for Exynos5410, Exynos542x, Exynos5800 and Exynos850 (except
- * GPIO_HSI block)
- */
-#define EXYNOS5420_PIN_DRV_LV1         0
-#define EXYNOS5420_PIN_DRV_LV2         1
-#define EXYNOS5420_PIN_DRV_LV3         2
-#define EXYNOS5420_PIN_DRV_LV4         3
-
-/* Drive strengths for Exynos5433 */
-#define EXYNOS5433_PIN_DRV_FAST_SR1    0
-#define EXYNOS5433_PIN_DRV_FAST_SR2    1
-#define EXYNOS5433_PIN_DRV_FAST_SR3    2
-#define EXYNOS5433_PIN_DRV_FAST_SR4    3
-#define EXYNOS5433_PIN_DRV_FAST_SR5    4
-#define EXYNOS5433_PIN_DRV_FAST_SR6    5
-#define EXYNOS5433_PIN_DRV_SLOW_SR1    8
-#define EXYNOS5433_PIN_DRV_SLOW_SR2    9
-#define EXYNOS5433_PIN_DRV_SLOW_SR3    0xa
-#define EXYNOS5433_PIN_DRV_SLOW_SR4    0xb
-#define EXYNOS5433_PIN_DRV_SLOW_SR5    0xc
-#define EXYNOS5433_PIN_DRV_SLOW_SR6    0xf
-
-/* Drive strengths for Exynos850 GPIO_HSI block */
-#define EXYNOS850_HSI_PIN_DRV_LV1      0       /* 1x   */
-#define EXYNOS850_HSI_PIN_DRV_LV1_5    1       /* 1.5x */
-#define EXYNOS850_HSI_PIN_DRV_LV2      2       /* 2x   */
-#define EXYNOS850_HSI_PIN_DRV_LV2_5    3       /* 2.5x */
-#define EXYNOS850_HSI_PIN_DRV_LV3      4       /* 3x   */
-#define EXYNOS850_HSI_PIN_DRV_LV4      5       /* 4x   */
-
-#define EXYNOS_PIN_FUNC_INPUT          0
-#define EXYNOS_PIN_FUNC_OUTPUT         1
-#define EXYNOS_PIN_FUNC_2              2
-#define EXYNOS_PIN_FUNC_3              3
-#define EXYNOS_PIN_FUNC_4              4
-#define EXYNOS_PIN_FUNC_5              5
-#define EXYNOS_PIN_FUNC_6              6
-#define EXYNOS_PIN_FUNC_EINT           0xf
-#define EXYNOS_PIN_FUNC_F              EXYNOS_PIN_FUNC_EINT
-
-/* Drive strengths for Exynos7 FSYS1 block */
-#define EXYNOS7_FSYS1_PIN_DRV_LV1      0
-#define EXYNOS7_FSYS1_PIN_DRV_LV2      4
-#define EXYNOS7_FSYS1_PIN_DRV_LV3      2
-#define EXYNOS7_FSYS1_PIN_DRV_LV4      6
-#define EXYNOS7_FSYS1_PIN_DRV_LV5      1
-#define EXYNOS7_FSYS1_PIN_DRV_LV6      5
-
-#endif /* __DT_BINDINGS_PINCTRL_SAMSUNG_H__ */
index d4264db2a07f135a9cc1667a29ad8032114a1ebe..e2fe4bd5f7f01569c804ae4ea87c7cf0433d2ae7 100644 (file)
 #define SRST_P_TRNG_CHK                        658
 #define SRST_TRNG_S                    659
 
+#define SRST_A_HDMIRX_BIU              660
+
 #endif
index d5615930bcc86a4f5b1d0de61be780c1d79a23e1..748e78ae20bde0105f61904c58c35a1d34e647a5 100644 (file)
@@ -69,7 +69,7 @@
 #define ADC3_R         59
 #define ETH1_R         60
 #define ETH2_R         61
-#define USB2_R         62
+#define USBH_R         62
 #define USB2PHY1_R     63
 #define USB2PHY2_R     64
 #define USB3DR_R       65
index 997e2f55128a87ee6ee3b95292bac30d1675fc04..bf95309d2525f0c603b9ea370ceb34249a9d2ba6 100644 (file)
 #define MT7988_ETHWARP_0       6
 #define MT7988_ETHWARP_1       7
 
+#define MT8186_LITTLE_CPU0     0
+#define MT8186_LITTLE_CPU1     1
+#define MT8186_LITTLE_CPU2     2
+#define MT8186_CAM             3
+#define MT8186_BIG_CPU0        4
+#define MT8186_BIG_CPU1        5
+#define MT8186_NNA             6
+#define MT8186_ADSP            7
+#define MT8186_MFG             8
+
+#define MT8188_MCU_LITTLE_CPU0 0
+#define MT8188_MCU_LITTLE_CPU1 1
+#define MT8188_MCU_LITTLE_CPU2 2
+#define MT8188_MCU_LITTLE_CPU3 3
+#define MT8188_MCU_BIG_CPU0    4
+#define MT8188_MCU_BIG_CPU1    5
+
+#define MT8188_AP_APU          0
+#define MT8188_AP_GPU1         1
+#define MT8188_AP_GPU2         2
+#define MT8188_AP_SOC1         3
+#define MT8188_AP_SOC2         4
+#define MT8188_AP_SOC3         5
+#define MT8188_AP_CAM1         6
+#define MT8188_AP_CAM2         7
+
 #define MT8195_MCU_BIG_CPU0     0
 #define MT8195_MCU_BIG_CPU1     1
 #define MT8195_MCU_BIG_CPU2     2
index f01166b8e4e759ed36ea6cbfb4f6013933049b48..6cc1373284d755f87f102d14a1d8e368a08146f0 100755 (executable)
@@ -6,7 +6,7 @@ cd $(dirname $0)/..
 
 UPSTREAM_GIT="git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git"
 
-BRANCHES="master filter-state upstream/master upstream/dts"
+BRANCHES="master filter-state-split upstream/master upstream/dts"
 
 if [ ! -f scripts/filter.sh ] ; then
     echo "`pwd`: does not appear to be a device-tree.git" 1>&2
@@ -75,7 +75,7 @@ echo "Filtering"
 echo
 ) 2>&1 `
 
-#git push --dry-run origin filter-state upstream/dts upstream/master
+#git push --dry-run origin filter-state-split upstream/dts upstream/master
 #git push --dry-run origin --tags
 #echo
 
index 5e10ff417766b7c9b3c311cc4252d37398e82199..998b8f0a144c1690ed176337b7ac8ce94c8dfcbc 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# git branch -D upstream/rewritten-prev upstream/master upstream/rewritten filter-state      
+# git branch -D upstream/rewritten-prev upstream/master upstream/rewritten filter-state-split
 
 set -e
 
@@ -29,12 +29,12 @@ rm -f .git/refs/original/refs/heads/${UPSTREAM_REWRITTEN}
 
 git branch -f $UPSTREAM_REWRITTEN FETCH_HEAD
 
-git filter-branch --force \
+PATH=$(git --exec-path):$PATH $SCRIPTS/git-filter-branch --force \
        --index-filter ${SCRIPTS}/index-filter.sh \
        --msg-filter 'cat && /bin/echo -e "\n[ upstream commit: $GIT_COMMIT ]"' \
        --tag-name-filter 'while read t ; do /bin/echo -n $t-dts-raw ; done' \
        --parent-filter 'sed "s/-p //g" | xargs -r git show-branch --independent | sed "s/\</-p /g"' \
-       --prune-empty --state-branch refs/heads/filter-state \
+       --prune-empty --state-branch refs/heads/filter-state-split \
        -- $RANGE
 
 git branch -f $UPSTREAM_MASTER FETCH_HEAD
diff --git a/scripts/git-filter-branch b/scripts/git-filter-branch
new file mode 100755 (executable)
index 0000000..690497c
--- /dev/null
@@ -0,0 +1,673 @@
+#!/bin/sh
+#
+# Rewrite revision history
+# Copyright (c) Petr Baudis, 2006
+# Minimal changes to "port" it to core-git (c) Johannes Schindelin, 2007
+#
+# Lets you rewrite the revision history of the current branch, creating
+# a new branch. You can specify a number of filters to modify the commits,
+# files and trees.
+
+# The following functions will also be available in the commit filter:
+
+functions=$(cat << \EOF
+EMPTY_TREE=$(git hash-object -t tree /dev/null)
+
+warn () {
+       echo "$*" >&2
+}
+
+map()
+{
+       # if it was not rewritten, take the original
+       if test -r "$workdir/../map/$1"
+       then
+               cat "$workdir/../map/$1"
+       else
+               echo "$1"
+       fi
+}
+
+# if you run 'skip_commit "$@"' in a commit filter, it will print
+# the (mapped) parents, effectively skipping the commit.
+
+skip_commit()
+{
+       shift;
+       while [ -n "$1" ];
+       do
+               shift;
+               map "$1";
+               shift;
+       done;
+}
+
+# if you run 'git_commit_non_empty_tree "$@"' in a commit filter,
+# it will skip commits that leave the tree untouched, commit the other.
+git_commit_non_empty_tree()
+{
+       if test $# = 3 && test "$1" = $(git rev-parse "$3^{tree}"); then
+               map "$3"
+       elif test $# = 1 && test "$1" = $EMPTY_TREE; then
+               :
+       else
+               git commit-tree "$@"
+       fi
+}
+# override die(): this version puts in an extra line break, so that
+# the progress is still visible
+
+die()
+{
+       echo >&2
+       echo "$*" >&2
+       exit 1
+}
+EOF
+)
+
+eval "$functions"
+
+finish_ident() {
+       # Ensure non-empty id name.
+       echo "case \"\$GIT_$1_NAME\" in \"\") GIT_$1_NAME=\"\${GIT_$1_EMAIL%%@*}\" && export GIT_$1_NAME;; esac"
+       # And make sure everything is exported.
+       echo "export GIT_$1_NAME"
+       echo "export GIT_$1_EMAIL"
+       echo "export GIT_$1_DATE"
+}
+
+set_ident () {
+       parse_ident_from_commit author AUTHOR committer COMMITTER
+       finish_ident AUTHOR
+       finish_ident COMMITTER
+}
+
+if test -z "$FILTER_BRANCH_SQUELCH_WARNING$GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS"
+then
+       cat <<EOF
+WARNING: git-filter-branch has a glut of gotchas generating mangled history
+        rewrites.  Hit Ctrl-C before proceeding to abort, then use an
+        alternative filtering tool such as 'git filter-repo'
+        (https://github.com/newren/git-filter-repo/) instead.  See the
+        filter-branch manual page for more details; to squelch this warning,
+        set FILTER_BRANCH_SQUELCH_WARNING=1.
+EOF
+       sleep 10
+       printf "Proceeding with filter-branch...\n\n"
+fi
+
+USAGE="[--setup <command>] [--subdirectory-filter <directory>] [--env-filter <command>]
+       [--tree-filter <command>] [--index-filter <command>]
+       [--parent-filter <command>] [--msg-filter <command>]
+       [--commit-filter <command>] [--tag-name-filter <command>]
+       [--original <namespace>]
+       [-d <directory>] [-f | --force] [--state-branch <branch>]
+       [--] [<rev-list options>...]"
+
+OPTIONS_SPEC=
+. git-sh-setup
+
+if [ "$(is_bare_repository)" = false ]; then
+       require_clean_work_tree 'rewrite branches'
+fi
+
+tempdir=.git-rewrite
+filter_setup=
+filter_env=
+filter_tree=
+filter_index=
+filter_parent=
+filter_msg=cat
+filter_commit=
+filter_tag_name=
+filter_subdir=
+state_branch=
+orig_namespace=refs/original/
+force=
+prune_empty=
+remap_to_ancestor=
+while :
+do
+       case "$1" in
+       --)
+               shift
+               break
+               ;;
+       --force|-f)
+               shift
+               force=t
+               continue
+               ;;
+       --remap-to-ancestor)
+               # deprecated ($remap_to_ancestor is set now automatically)
+               shift
+               remap_to_ancestor=t
+               continue
+               ;;
+       --prune-empty)
+               shift
+               prune_empty=t
+               continue
+               ;;
+       -*)
+               ;;
+       *)
+               break;
+       esac
+
+       # all switches take one argument
+       ARG="$1"
+       case "$#" in 1) usage ;; esac
+       shift
+       OPTARG="$1"
+       shift
+
+       case "$ARG" in
+       -d)
+               tempdir="$OPTARG"
+               ;;
+       --setup)
+               filter_setup="$OPTARG"
+               ;;
+       --subdirectory-filter)
+               filter_subdir="$OPTARG"
+               remap_to_ancestor=t
+               ;;
+       --env-filter)
+               filter_env="$OPTARG"
+               ;;
+       --tree-filter)
+               filter_tree="$OPTARG"
+               ;;
+       --index-filter)
+               filter_index="$OPTARG"
+               ;;
+       --parent-filter)
+               filter_parent="$OPTARG"
+               ;;
+       --msg-filter)
+               filter_msg="$OPTARG"
+               ;;
+       --commit-filter)
+               filter_commit="$functions; $OPTARG"
+               ;;
+       --tag-name-filter)
+               filter_tag_name="$OPTARG"
+               ;;
+       --original)
+               orig_namespace=$(expr "$OPTARG/" : '\(.*[^/]\)/*$')/
+               ;;
+       --state-branch)
+               state_branch="$OPTARG"
+               ;;
+       *)
+               usage
+               ;;
+       esac
+done
+
+case "$prune_empty,$filter_commit" in
+,)
+       filter_commit='git commit-tree "$@"';;
+t,)
+       filter_commit="$functions;"' git_commit_non_empty_tree "$@"';;
+,*)
+       ;;
+*)
+       die "Cannot set --prune-empty and --commit-filter at the same time"
+esac
+
+case "$force" in
+t)
+       rm -rf "$tempdir"
+;;
+'')
+       test -d "$tempdir" &&
+               die "$tempdir already exists, please remove it"
+esac
+orig_dir=$(pwd)
+mkdir -p "$tempdir/t" &&
+tempdir="$(cd "$tempdir"; pwd)" &&
+cd "$tempdir/t" &&
+workdir="$(pwd)" ||
+die ""
+
+# Remove tempdir on exit
+trap 'cd "$orig_dir"; rm -rf "$tempdir"' 0
+
+ORIG_GIT_DIR="$GIT_DIR"
+ORIG_GIT_WORK_TREE="$GIT_WORK_TREE"
+ORIG_GIT_INDEX_FILE="$GIT_INDEX_FILE"
+ORIG_GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME"
+ORIG_GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL"
+ORIG_GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE"
+ORIG_GIT_COMMITTER_NAME="$GIT_COMMITTER_NAME"
+ORIG_GIT_COMMITTER_EMAIL="$GIT_COMMITTER_EMAIL"
+ORIG_GIT_COMMITTER_DATE="$GIT_COMMITTER_DATE"
+
+GIT_WORK_TREE=.
+export GIT_DIR GIT_WORK_TREE
+
+# Make sure refs/original is empty
+git for-each-ref > "$tempdir"/backup-refs || exit
+while read sha1 type name
+do
+       case "$force,$name" in
+       ,$orig_namespace*)
+               die "Cannot create a new backup.
+A previous backup already exists in $orig_namespace
+Force overwriting the backup with -f"
+       ;;
+       t,$orig_namespace*)
+               git update-ref -d "$name" $sha1
+       ;;
+       esac
+done < "$tempdir"/backup-refs
+
+# The refs should be updated if their heads were rewritten
+git rev-parse --no-flags --revs-only --symbolic-full-name \
+       --default HEAD "$@" > "$tempdir"/raw-refs || exit
+while read ref
+do
+       case "$ref" in ^?*) continue ;; esac
+
+       if git rev-parse --verify "$ref"^0 >/dev/null 2>&1
+       then
+               echo "$ref"
+       else
+               warn "WARNING: not rewriting '$ref' (not a committish)"
+       fi
+done >"$tempdir"/heads <"$tempdir"/raw-refs
+
+test -s "$tempdir"/heads ||
+       die "You must specify a ref to rewrite."
+
+GIT_INDEX_FILE="$(pwd)/../index"
+export GIT_INDEX_FILE
+
+# map old->new commit ids for rewriting parents
+mkdir ../map || die "Could not create map/ directory"
+
+state_prefixes="0 1 2 3 4 5 6 7 8 9 a b c d e f"
+
+if test -n "$state_branch"
+then
+       state_commit=$(git rev-parse --no-flags --revs-only "$state_branch")
+       if test -n "$state_commit"
+       then
+               echo "Populating map from $state_branch ($state_commit)" 1>&2
+               for prefix in $state_prefixes ; do
+                       perl -e'open(MAP, "-|", "git show $ARGV[0]:$ARGV[1]") or die;
+                               while (<MAP>) {
+                                       m/(.*):(.*)/ or die;
+                                       open F, ">../map/$1" or die;
+                                       print F "$2" or die;
+                                       close(F) or die;
+                               }
+                               close(MAP) or die;' "$state_commit" "filter_${prefix}.map" \
+                                       || die "Unable to load state from $state_branch:filter_${prefix}.map"
+               done
+       else
+               echo "Branch $state_branch does not exist. Will create" 1>&2
+       fi
+fi
+
+# we need "--" only if there are no path arguments in $@
+nonrevs=$(git rev-parse --no-revs "$@") || exit
+if test -z "$nonrevs"
+then
+       dashdash=--
+else
+       dashdash=
+       remap_to_ancestor=t
+fi
+
+git rev-parse --revs-only "$@" >../parse
+
+case "$filter_subdir" in
+"")
+       eval set -- "$(git rev-parse --sq --no-revs "$@")"
+       ;;
+*)
+       eval set -- "$(git rev-parse --sq --no-revs "$@" $dashdash \
+               "$filter_subdir")"
+       ;;
+esac
+
+git rev-list --reverse --topo-order --default HEAD \
+       --parents --simplify-merges --stdin "$@" <../parse >../revs ||
+       die "Could not get the commits"
+commits=$(wc -l <../revs | tr -d " ")
+
+test $commits -eq 0 && die_with_status 2 "Found nothing to rewrite"
+
+# Rewrite the commits
+report_progress ()
+{
+       if test -n "$progress" &&
+               test $git_filter_branch__commit_count -gt $next_sample_at
+       then
+               count=$git_filter_branch__commit_count
+
+               now=$(date +%s)
+               elapsed=$(($now - $start_timestamp))
+               remaining=$(( ($commits - $count) * $elapsed / $count ))
+               if test $elapsed -gt 0
+               then
+                       next_sample_at=$(( ($elapsed + 1) * $count / $elapsed ))
+               else
+                       next_sample_at=$(($next_sample_at + 1))
+               fi
+               progress=" ($elapsed seconds passed, remaining $remaining predicted)"
+       fi
+       printf "\rRewrite $commit ($count/$commits)$progress    "
+}
+
+git_filter_branch__commit_count=0
+
+progress= start_timestamp=
+if date '+%s' 2>/dev/null | grep -q '^[0-9][0-9]*$'
+then
+       next_sample_at=0
+       progress="dummy to ensure this is not empty"
+       start_timestamp=$(date '+%s')
+fi
+
+if test -n "$filter_index" ||
+   test -n "$filter_tree" ||
+   test -n "$filter_subdir"
+then
+       need_index=t
+else
+       need_index=
+fi
+
+eval "$filter_setup" < /dev/null ||
+       die "filter setup failed: $filter_setup"
+
+while read commit parents; do
+       git_filter_branch__commit_count=$(($git_filter_branch__commit_count+1))
+
+       report_progress
+       test -f "$workdir"/../map/$commit && continue
+
+       case "$filter_subdir" in
+       "")
+               if test -n "$need_index"
+               then
+                       GIT_ALLOW_NULL_SHA1=1 git read-tree -i -m $commit
+               fi
+               ;;
+       *)
+               # The commit may not have the subdirectory at all
+               err=$(GIT_ALLOW_NULL_SHA1=1 \
+                     git read-tree -i -m $commit:"$filter_subdir" 2>&1) || {
+                       if ! git rev-parse -q --verify $commit:"$filter_subdir"
+                       then
+                               rm -f "$GIT_INDEX_FILE"
+                       else
+                               echo >&2 "$err"
+                               false
+                       fi
+               }
+       esac || die "Could not initialize the index"
+
+       GIT_COMMIT=$commit
+       export GIT_COMMIT
+       git cat-file commit "$commit" >../commit ||
+               die "Cannot read commit $commit"
+
+       eval "$(set_ident <../commit)" ||
+               die "setting author/committer failed for commit $commit"
+       eval "$filter_env" < /dev/null ||
+               die "env filter failed: $filter_env"
+
+       if [ "$filter_tree" ]; then
+               git checkout-index -f -u -a ||
+                       die "Could not checkout the index"
+               # files that $commit removed are now still in the working tree;
+               # remove them, else they would be added again
+               git clean -d -q -f -x
+               eval "$filter_tree" < /dev/null ||
+                       die "tree filter failed: $filter_tree"
+
+               (
+                       git diff-index -r --name-only --ignore-submodules $commit -- &&
+                       git ls-files --others
+               ) > "$tempdir"/tree-state || exit
+               git update-index --add --replace --remove --stdin \
+                       < "$tempdir"/tree-state || exit
+       fi
+
+       eval "$filter_index" < /dev/null ||
+               die "index filter failed: $filter_index"
+
+       parentstr=
+       for parent in $parents; do
+               for reparent in $(map "$parent"); do
+                       case "$parentstr " in
+                       *" -p $reparent "*)
+                               ;;
+                       *)
+                               parentstr="$parentstr -p $reparent"
+                               ;;
+                       esac
+               done
+       done
+       if [ "$filter_parent" ]; then
+               parentstr="$(echo "$parentstr" | eval "$filter_parent")" ||
+                               die "parent filter failed: $filter_parent"
+       fi
+
+       {
+               while IFS='' read -r header_line && test -n "$header_line"
+               do
+                       # skip header lines...
+                       :;
+               done
+               # and output the actual commit message
+               cat
+       } <../commit |
+               eval "$filter_msg" > ../message ||
+                       die "msg filter failed: $filter_msg"
+
+       if test -n "$need_index"
+       then
+               tree=$(git write-tree)
+       else
+               tree=$(git rev-parse "$commit^{tree}")
+       fi
+       workdir=$workdir /bin/sh -c "$filter_commit" "git commit-tree" \
+               "$tree" $parentstr < ../message > ../map/$commit ||
+                       die "could not write rewritten commit"
+done <../revs
+
+# If we are filtering for paths, as in the case of a subdirectory
+# filter, it is possible that a specified head is not in the set of
+# rewritten commits, because it was pruned by the revision walker.
+# Ancestor remapping fixes this by mapping these heads to the unique
+# nearest ancestor that survived the pruning.
+
+if test "$remap_to_ancestor" = t
+then
+       while read ref
+       do
+               sha1=$(git rev-parse "$ref"^0)
+               test -f "$workdir"/../map/$sha1 && continue
+               ancestor=$(git rev-list --simplify-merges -1 "$ref" "$@")
+               test "$ancestor" && echo $(map $ancestor) >"$workdir"/../map/$sha1
+       done < "$tempdir"/heads
+fi
+
+# Finally update the refs
+
+echo
+while read ref
+do
+       # avoid rewriting a ref twice
+       test -f "$orig_namespace$ref" && continue
+
+       sha1=$(git rev-parse "$ref"^0)
+       rewritten=$(map $sha1)
+
+       test $sha1 = "$rewritten" &&
+               warn "WARNING: Ref '$ref' is unchanged" &&
+               continue
+
+       case "$rewritten" in
+       '')
+               echo "Ref '$ref' was deleted"
+               git update-ref -m "filter-branch: delete" -d "$ref" $sha1 ||
+                       die "Could not delete $ref"
+       ;;
+       *)
+               echo "Ref '$ref' was rewritten"
+               if ! git update-ref -m "filter-branch: rewrite" \
+                                       "$ref" $rewritten $sha1 2>/dev/null; then
+                       if test $(git cat-file -t "$ref") = tag; then
+                               if test -z "$filter_tag_name"; then
+                                       warn "WARNING: You said to rewrite tagged commits, but not the corresponding tag."
+                                       warn "WARNING: Perhaps use '--tag-name-filter cat' to rewrite the tag."
+                               fi
+                       else
+                               die "Could not rewrite $ref"
+                       fi
+               fi
+       ;;
+       esac
+       git update-ref -m "filter-branch: backup" "$orig_namespace$ref" $sha1 ||
+                exit
+done < "$tempdir"/heads
+
+# TODO: This should possibly go, with the semantics that all positive given
+#       refs are updated, and their original heads stored in refs/original/
+# Filter tags
+
+if [ "$filter_tag_name" ]; then
+       git for-each-ref --format='%(objectname) %(objecttype) %(refname)' refs/tags |
+       while read sha1 type ref; do
+               ref="${ref#refs/tags/}"
+               # XXX: Rewrite tagged trees as well?
+               if [ "$type" != "commit" -a "$type" != "tag" ]; then
+                       continue;
+               fi
+
+               if [ "$type" = "tag" ]; then
+                       # Dereference to a commit
+                       sha1t="$sha1"
+                       sha1="$(git rev-parse -q "$sha1"^{commit})" || continue
+               fi
+
+               [ -f "../map/$sha1" ] || continue
+               new_sha1="$(cat "../map/$sha1")"
+               GIT_COMMIT="$sha1"
+               export GIT_COMMIT
+               new_ref="$(echo "$ref" | eval "$filter_tag_name")" ||
+                       die "tag name filter failed: $filter_tag_name"
+
+               echo "$ref -> $new_ref ($sha1 -> $new_sha1)"
+
+               if [ "$type" = "tag" ]; then
+                       new_sha1=$( ( printf 'object %s\ntype commit\ntag %s\n' \
+                                               "$new_sha1" "$new_ref"
+                               git cat-file tag "$ref" |
+                               sed -n \
+                                   -e '1,/^$/{
+                                         /^object /d
+                                         /^type /d
+                                         /^tag /d
+                                       }' \
+                                   -e '/^-----BEGIN PGP SIGNATURE-----/q' \
+                                   -e 'p' ) |
+                               git hash-object -t tag -w --stdin) ||
+                               die "Could not create new tag object for $ref"
+                       if git cat-file tag "$ref" | \
+                          grep '^-----BEGIN PGP SIGNATURE-----' >/dev/null 2>&1
+                       then
+                               warn "gpg signature stripped from tag object $sha1t"
+                       fi
+               fi
+
+               git update-ref "refs/tags/$new_ref" "$new_sha1" ||
+                       die "Could not write tag $new_ref"
+       done
+fi
+
+unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE
+unset GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE
+unset GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_COMMITTER_DATE
+test -z "$ORIG_GIT_DIR" || {
+       GIT_DIR="$ORIG_GIT_DIR" && export GIT_DIR
+}
+test -z "$ORIG_GIT_WORK_TREE" || {
+       GIT_WORK_TREE="$ORIG_GIT_WORK_TREE" &&
+       export GIT_WORK_TREE
+}
+test -z "$ORIG_GIT_INDEX_FILE" || {
+       GIT_INDEX_FILE="$ORIG_GIT_INDEX_FILE" &&
+       export GIT_INDEX_FILE
+}
+test -z "$ORIG_GIT_AUTHOR_NAME" || {
+       GIT_AUTHOR_NAME="$ORIG_GIT_AUTHOR_NAME" &&
+       export GIT_AUTHOR_NAME
+}
+test -z "$ORIG_GIT_AUTHOR_EMAIL" || {
+       GIT_AUTHOR_EMAIL="$ORIG_GIT_AUTHOR_EMAIL" &&
+       export GIT_AUTHOR_EMAIL
+}
+test -z "$ORIG_GIT_AUTHOR_DATE" || {
+       GIT_AUTHOR_DATE="$ORIG_GIT_AUTHOR_DATE" &&
+       export GIT_AUTHOR_DATE
+}
+test -z "$ORIG_GIT_COMMITTER_NAME" || {
+       GIT_COMMITTER_NAME="$ORIG_GIT_COMMITTER_NAME" &&
+       export GIT_COMMITTER_NAME
+}
+test -z "$ORIG_GIT_COMMITTER_EMAIL" || {
+       GIT_COMMITTER_EMAIL="$ORIG_GIT_COMMITTER_EMAIL" &&
+       export GIT_COMMITTER_EMAIL
+}
+test -z "$ORIG_GIT_COMMITTER_DATE" || {
+       GIT_COMMITTER_DATE="$ORIG_GIT_COMMITTER_DATE" &&
+       export GIT_COMMITTER_DATE
+}
+
+if test -n "$state_branch"
+then
+       echo "Saving rewrite state to $state_branch" 1>&2
+       for prefix in $state_prefixes ; do
+               state_blob=$(
+                       perl -e'opendir D, "../map" or die;
+                               open H, "|-", "git hash-object -w --stdin" or die;
+                               foreach (sort readdir(D)) {
+                                       next if m/^\.\.?$/;
+                                       next unless m/^$ARGV[0]/;
+                                       open F, "<../map/$_" or die;
+                                       chomp($f = <F>);
+                                       print H "$_:$f\n" or die;
+                               }
+                               close(H) or die;' "$prefix" || die "Unable to save state")
+               printf '100644 blob %s\tfilter_%s.map\n' "$state_blob" "$prefix" >> $tempdir/state-branch-tree
+       done
+       state_tree=$(cat $tempdir/state-branch-tree | git mktree)
+
+       if test -n "$state_commit"
+       then
+               state_commit=$(echo "Sync" | git commit-tree "$state_tree" -p "$state_commit")
+       else
+               state_commit=$(echo "Sync" | git commit-tree "$state_tree" )
+       fi
+       git update-ref "$state_branch" "$state_commit"
+fi
+
+cd "$orig_dir"
+rm -rf "$tempdir"
+
+trap - 0
+
+if [ "$(is_bare_repository)" = false ]; then
+       git read-tree -u -m HEAD || exit
+fi
+
+exit 0
diff --git a/src/arm/allwinner/sun5i-a13-pocketbook-614-plus.dts b/src/arm/allwinner/sun5i-a13-pocketbook-614-plus.dts
new file mode 100644 (file)
index 0000000..ab8d138
--- /dev/null
@@ -0,0 +1,218 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2024 Denis Burkov <hitechshell@mail.ru>
+ */
+
+/dts-v1/;
+#include "sun5i-a13.dtsi"
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "PocketBook 614 Plus";
+       compatible = "pocketbook,614-plus", "allwinner,sun5i-a13";
+
+       aliases {
+               serial0 = &uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_POWER;
+                       linux,default-trigger = "default-on";
+                       gpios = <&pio 4 8 GPIO_ACTIVE_LOW>; /* PE8 */
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               key-0 {
+                       label = "Right";
+                       linux,code = <KEY_NEXT>;
+                       gpios = <&pio 6 9 GPIO_ACTIVE_LOW>; /* PG9 */
+               };
+
+               key-1 {
+                       label = "Left";
+                       linux,code = <KEY_PREVIOUS>;
+                       gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 */
+               };
+       };
+
+       reg_3v3_mmc0: regulator-mmc0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd-mmc0";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pio 4 4 GPIO_ACTIVE_LOW>; /* PE4 */
+               vin-supply = <&reg_vcc3v3>;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       axp209: pmic@34 {
+               compatible = "x-powers,axp209";
+               reg = <0x34>;
+               interrupts = <0>;
+       };
+};
+
+#include "axp209.dtsi"
+
+&i2c1 {
+       status = "okay";
+
+       pcf8563: rtc@51 {
+               compatible = "nxp,pcf8563";
+               reg = <0x51>;
+               #clock-cells = <0>;
+       };
+};
+
+&lradc {
+       vref-supply = <&reg_ldo2>;
+       status = "okay";
+
+       button-300 {
+               label = "Down";
+               linux,code = <KEY_DOWN>;
+               channel = <0>;
+               voltage = <300000>;
+       };
+
+       button-700 {
+               label = "Up";
+               linux,code = <KEY_UP>;
+               channel = <0>;
+               voltage = <700000>;
+       };
+
+       button-1000 {
+               label = "Left";
+               linux,code = <KEY_LEFT>;
+               channel = <0>;
+               voltage = <1000000>;
+       };
+
+       button-1200 {
+               label = "Menu";
+               linux,code = <KEY_MENU>;
+               channel = <0>;
+               voltage = <1200000>;
+       };
+
+       button-1500 {
+               label = "Right";
+               linux,code = <KEY_RIGHT>;
+               channel = <0>;
+               voltage = <1500000>;
+       };
+};
+
+&mmc0 {
+       vmmc-supply = <&reg_3v3_mmc0>;
+       bus-width = <4>;
+       cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
+       status = "okay";
+};
+
+&mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_4bit_pc_pins>;
+       vmmc-supply = <&reg_vcc3v3>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&otg_sram {
+       status = "okay";
+};
+
+&reg_dcdc2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1000000>;
+       regulator-max-microvolt = <1500000>;
+       regulator-name = "vdd-cpu";
+};
+
+&reg_dcdc3 {
+       regulator-always-on;
+       regulator-min-microvolt = <1000000>;
+       regulator-max-microvolt = <1400000>;
+       regulator-name = "vdd-int-dll";
+};
+
+&reg_ldo1 {
+       regulator-name = "vdd-rtc";
+};
+
+&reg_ldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "avcc";
+};
+
+&reg_usb0_vbus {
+       status = "okay";
+       gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
+};
+
+&reg_usb1_vbus {
+       gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pg_pins>;
+       status = "okay";
+};
+
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usb_power_supply {
+       status = "okay";
+};
+
+&battery_power_supply {
+       status = "okay";
+};
+
+&usbphy {
+       usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
+       usb0_vbus_det-gpios = <&axp_gpio 1 GPIO_ACTIVE_HIGH>;
+       usb0_vbus-supply = <&reg_usb0_vbus>;
+       usb1_vbus-supply = <&reg_usb1_vbus>;
+       status = "okay";
+};
index 3325ab07094a07963b693ffa1b3e38dd60ef0134..2c9152b151be294f987d536ec4e231e29e8fb457 100644 (file)
                        };
 
                        trips {
-                               cpu_alert0: cpu_alert0 {
+                               cpu_alert0: cpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <85000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               cpu_crit: cpu_crit {
+                               cpu_crit: cpu-crit {
                                        /* milliCelsius */
                                        temperature = <100000>;
                                        hysteresis = <2000>;
index 5c3562b85a5bf95003b63013ba5d6e43cbda2d71..ffbd99c176db19f289131a81aaf20c6994f4069e 100644 (file)
@@ -77,7 +77,7 @@
                };
        };
 
-       mmc0_pwrseq: mmc0_pwrseq {
+       mmc0_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 1 10 GPIO_ACTIVE_LOW>; /* PB10 */
        };
index 4192c23848c316c29ed874ebb85b52ab64c8ce11..8c784a2c086edb301d599f7c66e089f289ea8a9b 100644 (file)
@@ -77,7 +77,7 @@
                };
        };
 
-       mmc0_pwrseq: mmc0_pwrseq {
+       mmc0_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 2 19 GPIO_ACTIVE_LOW>; /* PC19 */
        };
index 236ebfc061924bf694b6c897f872beb8c5d75d20..5bce7a32651ed2bb93c35618ea70985ab9e3e0fe 100644 (file)
                };
        };
 
-       reg_vga_3v3: vga_3v3_regulator {
+       reg_vga_3v3: vga-3v3-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vga-3v3";
                regulator-min-microvolt = <3300000>;
                gpio = <&pio 7 25 GPIO_ACTIVE_HIGH>; /* PH25 */
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 */
        };
index 5cce4918f84c96170319d01fddfcbb2cb8073362..f0145d6b9c531879d9fdac7e2ded28cd6af7e539 100644 (file)
                        };
 
                        trips {
-                               cpu_alert0: cpu_alert0 {
+                               cpu_alert0: cpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <70000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               cpu_crit: cpu_crit {
+                               cpu_crit: cpu-crit {
                                        /* milliCelsius */
                                        temperature = <100000>;
                                        hysteresis = <2000>;
                        compatible = "allwinner,sun6i-a31-prcm";
                        reg = <0x01f01400 0x200>;
 
-                       ar100: ar100_clk {
+                       ar100: ar100-clk {
                                compatible = "allwinner,sun6i-a31-ar100-clk";
                                #clock-cells = <0>;
                                clocks = <&rtc CLK_OSC32K>, <&osc24M>,
                                clock-output-names = "ar100";
                        };
 
-                       ahb0: ahb0_clk {
+                       ahb0: ahb0-clk {
                                compatible = "fixed-factor-clock";
                                #clock-cells = <0>;
                                clock-div = <1>;
                                clock-output-names = "ahb0";
                        };
 
-                       apb0: apb0_clk {
+                       apb0: apb0-clk {
                                compatible = "allwinner,sun6i-a31-apb0-clk";
                                #clock-cells = <0>;
                                clocks = <&ahb0>;
                                clock-output-names = "apb0";
                        };
 
-                       apb0_gates: apb0_gates_clk {
+                       apb0_gates: apb0-gates-clk {
                                compatible = "allwinner,sun6i-a31-apb0-gates-clk";
                                #clock-cells = <1>;
                                clocks = <&apb0>;
                                                "apb0_i2c";
                        };
 
-                       ir_clk: ir_clk {
+                       ir_clk: ir-clk {
                                #clock-cells = <0>;
                                compatible = "allwinner,sun4i-a10-mod0-clk";
                                clocks = <&rtc CLK_OSC32K>, <&osc24M>;
                                clock-output-names = "ir";
                        };
 
-                       apb0_rst: apb0_rst {
+                       apb0_rst: apb0-rst {
                                compatible = "allwinner,sun6i-a31-clock-reset";
                                #reset-cells = <1>;
                        };
index 96554ab4f6d3373eac165bb72f6ddc215fe3d5fd..f63d67ec98875515971e3849e1919c97642da396 100644 (file)
@@ -75,7 +75,7 @@
                };
        };
 
-       mmc2_pwrseq: mmc2_pwrseq {
+       mmc2_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 WIFI_EN */
        };
index caa935ca4f190bccf9f8ddac7ab8ddb89bb6633e..f2d7fab9978d47b94c360b8b98a009925123f1d8 100644 (file)
@@ -86,7 +86,7 @@
                };
        };
 
-       mmc3_pwrseq: mmc3_pwrseq {
+       mmc3_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 WL-PMU-EN */
        };
index 52160e3683049aa83e4c106e8506a04a87691fef..be9b31d0f4b57b20d8eae023ffc2a79b22c36802 100644 (file)
@@ -96,7 +96,7 @@
                };
        };
 
-       mmc3_pwrseq: mmc3_pwrseq {
+       mmc3_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 7 9 GPIO_ACTIVE_LOW>; /* PH9 WIFI_EN */
                clocks = <&ccu CLK_OUT_A>;
index 3def2a33059810a3b3e18c4d491aad6c54998ebd..f1e26b75cd902d5e4ca260b3fbd78bcb5adb886c 100644 (file)
@@ -65,7 +65,7 @@
                stdout-path = "serial0:115200n8";
        };
 
-       reg_mmc3_vdd: mmc3_vdd {
+       reg_mmc3_vdd: regulator-mmc3-vdd {
                compatible = "regulator-fixed";
                regulator-name = "mmc3_vdd";
                regulator-min-microvolt = <3000000>;
@@ -74,7 +74,7 @@
                gpio = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
        };
 
-       reg_gmac_vdd: gmac_vdd {
+       reg_gmac_vdd: regulator-gmac-vdd {
                compatible = "regulator-fixed";
                regulator-name = "gmac_vdd";
                regulator-min-microvolt = <3000000>;
index 20bf09b2226cf4780a8e7642ed5d1954c4966632..fb835730bbc49ec66b1bde2d7faed49225406bda 100644 (file)
@@ -14,7 +14,7 @@
        model = "Olimex A20-Olimex-SOM-EVB-eMMC";
        compatible = "olimex,a20-olimex-som-evb-emmc", "allwinner,sun7i-a20";
 
-       mmc2_pwrseq: mmc2_pwrseq {
+       mmc2_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-emmc";
                reset-gpios = <&pio 2 18 GPIO_ACTIVE_LOW>;
        };
index a59755a2e7a9db9e2fa8baf06f18571663da78ad..e8977c2fe7986f80f6c96e6cda9eccbfd069e242 100644 (file)
@@ -13,7 +13,7 @@
        model = "Olimex A20-SOM204-EVB-eMMC";
        compatible = "olimex,a20-olimex-som204-evb-emmc", "allwinner,sun7i-a20";
 
-       mmc2_pwrseq: mmc2_pwrseq {
+       mmc2_pwrseq: pwrseq-1 {
                compatible = "mmc-pwrseq-emmc";
                reset-gpios = <&pio 2 16 GPIO_ACTIVE_LOW>;
        };
index 54af6c18075b50dca6f008e0d5f3d61333ddde41..a55406657449d848841707768394f7dea3763384 100644 (file)
@@ -65,7 +65,7 @@
                };
        };
 
-       rtl_pwrseq: rtl_pwrseq {
+       rtl_pwrseq: pwrseq-0 {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 6 9 GPIO_ACTIVE_LOW>;
        };
        non-removable;
        status = "okay";
 
-       rtl8723bs: sdio_wifi@1 {
+       rtl8723bs: wifi@1 {
                reg = <1>;
        };
 };
index ecb91fb899ff3db1d1bb0bc54da12ce069be7586..435a189332e8f1aa4da54f295a0d0d4902afb70b 100644 (file)
@@ -82,7 +82,7 @@
                };
        };
 
-       reg_axp_ipsout: axp_ipsout {
+       reg_axp_ipsout: regulator-axp-ipsout {
                compatible = "regulator-fixed";
                regulator-name = "axp-ipsout";
                regulator-min-microvolt = <5000000>;
index 3bfae98f3cc3a18e6d312ced1337acb9340e397f..29199b6a3b4a1eeb88ed2d7a77323414a1a1d5a9 100644 (file)
@@ -60,7 +60,7 @@
                stdout-path = "serial0:115200n8";
        };
 
-       mmc3_pwrseq: mmc3_pwrseq {
+       mmc3_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 7 9 GPIO_ACTIVE_LOW>; /* PH9 WIFI_EN */
        };
index 5574299685ab5c614fa8aa0df413aec798ea9c94..5f44f09c554528dc6ffda06f7713440ab56426af 100644 (file)
                        };
 
                        trips {
-                               cpu_alert0: cpu_alert0 {
+                               cpu_alert0: cpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <75000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               cpu_crit: cpu_crit {
+                               cpu_crit: cpu-crit {
                                        /* milliCelsius */
                                        temperature = <100000>;
                                        hysteresis = <2000>;
index cd4bf60dbb3cb1bdfbf9224e5f94f4933a69c89d..2af8382ccdf5769b9e3ae681c45b529e6d0aa821 100644 (file)
                #size-cells = <1>;
                ranges;
 
-               osc24M: osc24M_clk {
+               osc24M: osc24M-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <24000000>;
                        clock-output-names = "osc24M";
                };
 
-               ext_osc32k: ext_osc32k_clk {
+               ext_osc32k: ext-osc32k-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <32768>;
                        compatible = "allwinner,sun8i-a23-prcm";
                        reg = <0x01f01400 0x200>;
 
-                       ar100: ar100_clk {
+                       ar100: ar100-clk {
                                compatible = "fixed-factor-clock";
                                #clock-cells = <0>;
                                clock-div = <1>;
                                clock-output-names = "ar100";
                        };
 
-                       ahb0: ahb0_clk {
+                       ahb0: ahb0-clk {
                                compatible = "fixed-factor-clock";
                                #clock-cells = <0>;
                                clock-div = <1>;
                                clock-output-names = "ahb0";
                        };
 
-                       apb0: apb0_clk {
+                       apb0: apb0-clk {
                                compatible = "allwinner,sun8i-a23-apb0-clk";
                                #clock-cells = <0>;
                                clocks = <&ahb0>;
                                clock-output-names = "apb0";
                        };
 
-                       apb0_gates: apb0_gates_clk {
+                       apb0_gates: apb0-gates-clk {
                                compatible = "allwinner,sun8i-a23-apb0-gates-clk";
                                #clock-cells = <1>;
                                clocks = <&apb0>;
                                                "apb0_i2c";
                        };
 
-                       apb0_rst: apb0_rst {
+                       apb0_rst: apb0-rst {
                                compatible = "allwinner,sun6i-a31-clock-reset";
                                #reset-cells = <1>;
                        };
index d5f6aebd7216d2cc910d44919355bd622d98d480..0c585a6d990d4068a356214f3b5c87aa658e2f6b 100644 (file)
@@ -52,7 +52,7 @@
                ethernet0 = &esp8089;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL6 */
                /* The esp8089 needs 200 ms after driving wifi-en high */
@@ -76,7 +76,7 @@
        non-removable;
        status = "okay";
 
-       esp8089: sdio_wifi@1 {
+       esp8089: wifi@1 {
                compatible = "esp,esp8089";
                reg = <1>;
                esp,crystal-26M-en = <2>;
index 9f9232a2fefbbbe86225eea83aa5873c2f0bde58..63cb4e194a03d6f01f8fcb42e5245b36e9f8169b 100644 (file)
@@ -52,7 +52,7 @@
                ethernet0 = &esp8089;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL6 */
                /* The esp8089 needs 200 ms after driving wifi-en high */
@@ -69,7 +69,7 @@
        non-removable;
        status = "okay";
 
-       esp8089: sdio_wifi@1 {
+       esp8089: wifi@1 {
                compatible = "esp,esp8089";
                reg = <1>;
                esp,crystal-26M-en = <2>;
index 2dfdd0a3151e84863a38937c9b33346df5f74bd0..f00ce03ffc8477cbb8edf2c6d84d1e7cd2067d9c 100644 (file)
@@ -85,7 +85,7 @@
        non-removable;
        status = "okay";
 
-       rtl8703as: sdio_wifi@1 {
+       rtl8703as: wifi@1 {
                reg = <1>;
        };
 };
index 065cb620aa992431281317c3e9681018a77f153c..162ba93f748469ee247ee27639a2b0ebd55cd686 100644 (file)
@@ -78,7 +78,7 @@
        non-removable;
        status = "okay";
 
-       rtl8723bs: sdio_wifi@1 {
+       rtl8723bs: wifi@1 {
                reg = <1>;
        };
 };
index 30fdd2703b1ff493f06d4c44f566608172daf45e..36b2d78cdab9ec5770a458a891269547af68361e 100644 (file)
                        };
 
                        trips {
-                               cpu_alert0: cpu_alert0 {
+                               cpu_alert0: cpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <75000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               gpu_alert0: gpu_alert0 {
+                               gpu_alert0: gpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <85000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               cpu_alert1: cpu_alert1 {
+                               cpu_alert1: cpu-alert1 {
                                        /* milliCelsius */
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
 
-                               gpu_alert1: gpu_alert1 {
+                               gpu_alert1: gpu-alert1 {
                                        /* milliCelsius */
                                        temperature = <95000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
 
-                               cpu_crit: cpu_crit {
+                               cpu_crit: cpu-crit {
                                        /* milliCelsius */
                                        temperature = <110000>;
                                        hysteresis = <2000>;
index 8d56b103f063049dac71fa02439b63ed7e70fd32..32e811fa23e2289ff96a7c09f819d224690c0209 100644 (file)
@@ -95,7 +95,7 @@
                gpio = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                clocks = <&ac100_rtc 1>;
                clock-names = "ext_clock";
index 870993393fc2439953297003869052b28f6b4b5a..d5e6ddaffbce39c02e1aae15110e24af84d0408e 100644 (file)
                compatible = "linux,spdif-dit";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                clocks = <&ac100_rtc 1>;
                clock-names = "ext_clock";
index a7d4ca308990c2082985359a84c874cfe201c8ac..43982b106a4db8be70223d4f9cfd271e8fb1282f 100644 (file)
                vin-supply = <&reg_vbat>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 WL-PMU-EN */
 
index 94eb3bfc989e2913fb8ce79b6fe1358bcbced75c..addf0cb0f465d186ffac7d7c99da3b314d8fed51 100644 (file)
                ranges;
 
                /* TODO: PRCM block has a mux for this. */
-               osc24M: osc24M_clk {
+               osc24M: osc24M-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <24000000>;
                 * It is an internal RC-based oscillator.
                 * TODO: Its controls are in the PRCM block.
                 */
-               osc16M: osc16M_clk {
+               osc16M: osc16M-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <16000000>;
                        clock-output-names = "osc16M";
                };
 
-               osc16Md512: osc16Md512_clk {
+               osc16Md512: osc16Md512-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-factor-clock";
                        clock-div = <512>;
                        #reset-cells = <1>;
                };
 
-               r_cpucfg@1f01c00 {
+               cpucfg@1f01c00 {
                        compatible = "allwinner,sun8i-a83t-r-cpucfg";
                        reg = <0x1f01c00 0x400>;
                };
index d729b7c705db54d9cf9f40cda299fc71abc1cef1..d3a7c9fa23e4460da0bda00330f94a5057e31fba 100644 (file)
                cpu-supply = <&reg_vcc1v2>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
index 3356f4210d45b4e055d61f29ef72fad0238045fc..79b03b31c5eb8024d80e6395ed750f243d4cfae4 100644 (file)
 /* Orange Pi R1 is based on Orange Pi Zero design */
 #include "sun8i-h2-plus-orangepi-zero.dts"
 
+/delete-node/ &reg_vcc_wifi;
+
 / {
        model = "Xunlong Orange Pi R1";
        compatible = "xunlong,orangepi-r1", "allwinner,sun8i-h2-plus";
 
-       /delete-node/ reg_vcc_wifi;
 
        /*
         * Ths pin of this regulator is the same with the Wi-Fi extra
@@ -89,7 +90,7 @@
        vmmc-supply = <&reg_vcc3v3>;
        vqmmc-supply = <&reg_vcc3v3>;
 
-       rtl8189etv: sdio_wifi@1 {
+       rtl8189etv: wifi@1 {
                reg = <1>;
        };
 };
index 3706216ffb40bac94501f3f4f529e2d5f7a87cfc..1b001f2ad0efd2e77218742efe6d8edfdd18a816 100644 (file)
@@ -80,7 +80,7 @@
                };
        };
 
-       reg_vcc_wifi: reg_vcc_wifi {
+       reg_vcc_wifi: reg-vcc-wifi {
                compatible = "regulator-fixed";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
                states = <1100000 0>, <1300000 1>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>;
                post-power-on-delay-ms = <200>;
         * Explicitly define the sdio device, so that we can add an ethernet
         * alias for it (which e.g. makes u-boot set a mac-address).
         */
-       xr819: sdio_wifi@1 {
+       xr819: wifi@1 {
                reg = <1>;
        };
 };
index a6d38ecee141d438898325f08bcd5e595d425950..5b77300307dea7fdbe7db7d610ceffaf9b1e97b7 100644 (file)
                compatible = "linux,spdif-dit";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
         * Explicitly define the sdio device, so that we can add an ethernet
         * alias for it (which e.g. makes u-boot set a mac-address).
         */
-       sdiowifi: sdio_wifi@1 {
+       sdiowifi: wifi@1 {
                reg = <1>;
        };
 };
index 343b02b97155539c4b9b8a0356647c1dda691b17..2b0566d4b3867456af1800fb50d9ba23613acf39 100644 (file)
@@ -87,7 +87,7 @@
                vin-supply = <&reg_vcc5v0>;
         };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
        non-removable;
        status = "okay";
 
-       sdio_wifi: sdio_wifi@1 {
+       sdio_wifi: wifi@1 {
                reg = <1>;
                compatible = "brcm,bcm4329-fmac";
                interrupt-parent = <&pio>;
index 4ba533b0340f220c9ce38aba9a693bcf42e8d1a4..59bd0746acf82b4fe67c18766a8342b5bac1bc4f 100644 (file)
@@ -62,7 +62,7 @@
                gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
        };
        non-removable;
        status = "okay";
 
-       sdio_wifi: sdio_wifi@1 {
+       sdio_wifi: wifi@1 {
                reg = <1>;
                compatible = "brcm,bcm4329-fmac";
                interrupt-parent = <&pio>;
index 9e1a33f94cadc58a56e3bb92b6bcdda8341d830b..6d85370e04f16bdeddd959aa9f0d058099a040ce 100644 (file)
@@ -73,7 +73,7 @@
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
        };
index 42cd1131adf3d098fb434c9e4126a6d88d870db1..870649760f7075c1de98036944e2402e5c3563d0 100644 (file)
@@ -43,7 +43,7 @@
                         <1300000 0x1>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
index f1f9dbead32a93e19e48f627b82c76ea9dd9c9f4..d2ae47b074bf79f02bc6b91524ab169bd4131d51 100644 (file)
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 WIFI_EN */
        };
         * Explicitly define the sdio device, so that we can add an ethernet
         * alias for it (which e.g. makes u-boot set a mac-address).
         */
-       rtl8189: sdio_wifi@1 {
+       rtl8189: wifi@1 {
                reg = <1>;
        };
 };
index 305b34a321f5cc21ee38986b6d53f93bda6ae3a1..6a4316a52469ae125f7a0eb03b6cc2edafd809e1 100644 (file)
         * Explicitly define the sdio device, so that we can add an ethernet
         * alias for it (which e.g. makes u-boot set a mac-address).
         */
-       rtl8189ftv: sdio_wifi@1 {
+       rtl8189ftv: wifi@1 {
                reg = <1>;
        };
 };
index babf4cf1b2f6897cda3605aff044cbea96263c97..8a49b3376dfc9de7aded632dfd2ecda335ff2978 100644 (file)
@@ -63,7 +63,7 @@
         * Explicitly define the sdio device, so that we can add an ethernet
         * alias for it (which e.g. makes u-boot set a mac-address).
         */
-       rtl8189ftv: sdio_wifi@1 {
+       rtl8189ftv: wifi@1 {
                reg = <1>;
        };
 };
index 561ea1d2f861c437db66bea4125dfb4d8ba88ff5..7a6444a10e2534458b7380882ea4fd42bd54fea8 100644 (file)
@@ -92,7 +92,7 @@
                regulator-max-microvolt = <3300000>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
                post-power-on-delay-ms = <200>;
index 3d9a1524e17e4f613fd782d1807dff9a80ce3916..272584881bb214a201ad6b07715258e18d303439 100644 (file)
@@ -62,7 +62,7 @@
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                /*
                 * Q8 boards use various PL# pins as wifi-en. On other boards
@@ -94,7 +94,7 @@
        non-removable;
        status = "okay";
 
-       sdio_wifi: sdio_wifi@1 {
+       sdio_wifi: wifi@1 {
                reg = <1>;
        };
 };
index bc394686fedbb8fc8c9c514113eebb30c940b052..f4bf46b35bec8a7c0bb9de21ad452d4bed8e03e1 100644 (file)
@@ -88,7 +88,7 @@
                regulator-max-microvolt = <5000000>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL06 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
index 95543a9c21182fd74b02c9cb746563edb29855d2..75067522ff59bbceaa66e8d169be20df982d2e58 100644 (file)
@@ -75,7 +75,7 @@
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL06 */
        };
index 28197bbcb1d56ad3604f60a6172d0c9f8cf4586a..cd2351acc32f8b2d148f6dd359f6fc9c8c9406fc 100644 (file)
                enable-active-high;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */
                clocks = <&ccu CLK_OUTA>;
index 0bd1336206b839594668a3192dd59461cef2b0d2..15b0b4de626af30557c83b0840f841bb5f355b9c 100644 (file)
@@ -62,7 +62,7 @@
                regulator-max-microvolt = <5000000>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 1 10 GPIO_ACTIVE_LOW>; // PB10 WIFI_EN
                clocks = <&ccu CLK_OUTA>;
index 20966e954eda89cf309a97629ec10e8cda92dd31..e0d4404b5957d3270c497aa95d3a9bfcb9262260 100644 (file)
@@ -51,7 +51,7 @@
                startup-delay-us = <200000>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 1 3 GPIO_ACTIVE_LOW>; /* PB3 WIFI-RST */
                post-power-on-delay-ms = <200>;
index e8a04476b776251312ce5d36cf2dea8c503f5a71..9e13c2aa89112779925d65a428167076d9a91db7 100644 (file)
@@ -98,7 +98,7 @@
                #size-cells = <1>;
                ranges;
 
-               osc24M: osc24M_clk {
+               osc24M: osc24M-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <24000000>;
                        clock-output-names = "osc24M";
                };
 
-               osc32k: osc32k_clk {
+               osc32k: osc32k-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <32768>;
index 434871040aca00b07d74f42eae522b5d05ff6239..6575ef2744530f8d024e140be0d16f57efd42098 100644 (file)
@@ -94,7 +94,7 @@
                enable-active-high;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */
                clocks = <&ccu CLK_OUTA>;
index 7d3f3300f4316d5710b868646c3e6365cc58de70..a1ae0929cec9d22704ebea75c8ecfae2a6617008 100644 (file)
                 * The actual TX clock rate is not controlled by the
                 * gmac_tx clock.
                 */
-               mii_phy_tx_clk: mii_phy_tx_clk {
+               mii_phy_tx_clk: mii-phy-tx-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <25000000>;
                        clock-output-names = "mii_phy_tx";
                };
 
-               gmac_int_tx_clk: gmac_int_tx_clk {
+               gmac_int_tx_clk: gmac-int-tx-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <125000000>;
index 1d1d127cf38f5c8e473f6e06a13707fadfe39a37..873817ddb4eae6a24283ce9e29f3ef8853ab95fd 100644 (file)
@@ -98,7 +98,7 @@
                gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
index 60804b0e6c56a62f9049f4a51354747b0d195b26..be5f5528a118320f217551f9c098b6707247c8f3 100644 (file)
@@ -18,7 +18,7 @@
                stdout-path = "serial0:115200n8";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 2 7 GPIO_ACTIVE_LOW>; /* PC7 */
                post-power-on-delay-ms = <200>;
index ade1cd50e445706d9aaac80eb5f1a553f10b2d9f..7df60515a90320655b5203eecd6cbcab878def41 100644 (file)
@@ -83,7 +83,7 @@
                #size-cells = <1>;
                ranges;
 
-               osc24M: osc24M_clk {
+               osc24M: osc24M-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <24000000>;
@@ -91,7 +91,7 @@
                        clock-output-names = "osc24M";
                };
 
-               osc32k: osc32k_clk {
+               osc32k: osc32k-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <32768>;
index 7b540880cef9ec390802e8aefe0194dca9f9ab7f..3c8925034a8c4dde3361c6cba3a28d985b727e97 100644 (file)
 };
 
 &adc0 {
-       ref_voltage = <2500>;
        status = "okay";
 
        pinctrl-names = "default";
index c4b2efbfdf56d18f2c668c5572e3e83bbb16630a..bb2e6ef609afa4ca57957f72b7e56ea3fecd021c 100644 (file)
@@ -83,6 +83,9 @@
 
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
+
+       nvmem-cells = <&eth0_macaddress>;
+       nvmem-cell-names = "mac-address";
 };
 
 &i2c1 {
                compatible = "st,24c128", "atmel,24c128";
                reg = <0x57>;
                pagesize = <16>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               eth0_macaddress: macaddress@3f80 {
+                       reg = <0x3f80 6>;
+               };
        };
 };
 
diff --git a/src/arm/aspeed/aspeed-bmc-asrock-e3c256d4i.dts b/src/arm/aspeed/aspeed-bmc-asrock-e3c256d4i.dts
new file mode 100644 (file)
index 0000000..9d00ce9
--- /dev/null
@@ -0,0 +1,322 @@
+// SPDX-License-Identifier: GPL-2.0+
+/dts-v1/;
+
+#include "aspeed-g5.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/i2c/i2c.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/watchdog/aspeed-wdt.h>
+
+/{
+       model = "ASRock E3C256D4I BMC";
+       compatible = "asrock,e3c256d4i-bmc", "aspeed,ast2500";
+
+       aliases {
+               serial4 = &uart5;
+
+               i2c20 = &i2c2mux0ch0;
+               i2c21 = &i2c2mux0ch1;
+               i2c22 = &i2c2mux0ch2;
+               i2c23 = &i2c2mux0ch3;
+       };
+
+       chosen {
+               stdout-path = &uart5;
+       };
+
+       memory@80000000 {
+               reg = <0x80000000 0x20000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               /* BMC heartbeat */
+               led-0 {
+                       gpios = <&gpio ASPEED_GPIO(H, 6) GPIO_ACTIVE_LOW>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_GREEN>;
+                       linux,default-trigger = "timer";
+               };
+
+               /* system fault */
+               led-1 {
+                       gpios = <&gpio ASPEED_GPIO(Z, 2) GPIO_ACTIVE_LOW>;
+                       function = LED_FUNCTION_FAULT;
+                       color = <LED_COLOR_ID_RED>;
+                       panic-indicator;
+               };
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
+                       <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>,
+                       <&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
+                       <&adc 12>, <&adc 13>, <&adc 14>, <&adc 15>;
+       };
+};
+
+&fmc {
+       status = "okay";
+       flash@0 {
+               status = "okay";
+               m25p,fast-read;
+               label = "bmc";
+               spi-max-frequency = <100000000>; /* 100 MHz */
+#include "openbmc-flash-layout-64.dtsi"
+       };
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&uart4 {
+       status = "okay";
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&uart_routing {
+       status = "okay";
+};
+
+&mac0 {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
+
+       nvmem-cells = <&eth0_macaddress>;
+       nvmem-cell-names = "mac-address";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9545";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c2mux0ch0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               i2c2mux0ch1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               i2c2mux0ch2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               i2c2mux0ch3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+};
+
+&i2c5 {
+       status = "okay";
+};
+
+&i2c6 {
+       status = "okay";
+};
+
+&i2c7 {
+       status = "okay";
+};
+
+&i2c9 {
+       status = "okay";
+};
+
+&i2c10 {
+       status = "okay";
+};
+
+&i2c11 {
+       status = "okay";
+
+       vrm@60 {
+               compatible = "isil,isl69269";
+               reg = <0x60>;
+       };
+};
+
+&i2c12 {
+       status = "okay";
+
+       /* FRU eeprom */
+       eeprom@57 {
+               compatible = "st,24c128", "atmel,24c128";
+               reg = <0x57>;
+               pagesize = <16>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               eth0_macaddress: macaddress@3f80 {
+                       reg = <0x3f80 6>;
+               };
+       };
+};
+
+&video {
+       status = "okay";
+};
+
+&vhub {
+       status = "okay";
+};
+
+&lpc_ctrl {
+       status = "okay";
+};
+
+&lpc_snoop {
+       status = "okay";
+       snoop-ports = <0x80>;
+};
+
+&kcs3 {
+       status = "okay";
+       aspeed,lpc-io-reg = <0xca2>;
+};
+
+&peci0 {
+       status = "okay";
+};
+
+&wdt1 {
+       aspeed,reset-mask = <(AST2500_WDT_RESET_DEFAULT & ~AST2500_WDT_RESET_LPC)>;
+};
+
+&wdt2 {
+       aspeed,reset-mask = <(AST2500_WDT_RESET_DEFAULT & ~AST2500_WDT_RESET_LPC)>;
+};
+
+&pwm_tacho {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm0_default /* CPU */
+               &pinctrl_pwm2_default      /* rear */
+               &pinctrl_pwm4_default>;    /* front */
+
+       /* CPU */
+       fan@0 {
+               reg = <0x00>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x00>;
+       };
+
+       /* rear */
+       fan@2 {
+               reg = <0x02>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x02>;
+       };
+
+       /* front */
+       fan@4 {
+               reg = <0x04>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x04>;
+       };
+};
+
+&gpio {
+       status = "okay";
+       gpio-line-names =
+               /*  A */ "", "", "NMI_BTN_N", "BMC_NMI", "", "", "", "",
+               /*  B */ "", "", "", "", "", "", "", "",
+               /*  C */ "", "", "", "", "", "", "", "",
+               /*  D */ "BMC_PSIN", "BMC_PSOUT", "BMC_RESETCON", "RESETCON",
+                       "", "", "", "",
+               /*  E */ "", "", "", "", "", "", "", "",
+               /*  F */ "LOCATORLED_STATUS_N", "LOCATORBTN", "", "",
+                       "", "", "BMC_PCH_SCI_LPC", "BMC_NCSI_MUX_CTL",
+               /*  G */ "HWM_BAT_EN", "CHASSIS_ID0", "CHASSIS_ID1", "CHASSIS_ID2",
+                       "", "", "", "",
+               /*  H */ "FM_ME_RCVR_N", "O_PWROK", "", "D4_DIMM_EVENT_3V_N",
+                       "MFG_MODE_N", "BMC_RTCRST", "BMC_HB_LED_N", "BMC_CASEOPEN",
+               /*  I */ "", "", "", "", "", "", "", "",
+               /*  J */ "BMC_READY", "BMC_PCH_BIOS_CS_N", "BMC_SMI", "", "", "", "", "",
+               /*  K */ "", "", "", "", "", "", "", "",
+               /*  L */ "", "", "", "", "", "", "", "",
+               /*  M */ "", "", "", "", "", "", "", "",
+               /*  N */ "", "", "", "", "", "", "", "",
+               /*  O */ "", "", "", "", "", "", "", "",
+               /*  P */ "", "", "", "", "", "", "", "",
+               /*  Q */ "", "", "", "", "", "", "", "",
+               /*  R */ "", "", "", "", "", "", "", "",
+               /*  S */ "PCHHOT_BMC_N", "", "RSMRST", "", "", "", "", "",
+               /*  T */ "", "", "", "", "", "", "", "",
+               /*  U */ "", "", "", "", "", "", "", "",
+               /*  V */ "", "", "", "", "", "", "", "",
+               /*  W */ "", "", "", "", "", "", "", "",
+               /*  X */ "", "", "", "", "", "", "", "",
+               /*  Y */ "SLP_S3", "SLP_S5", "", "", "", "", "", "",
+               /*  Z */ "CPU_CATERR_BMC_N", "", "SYSTEM_FAULT_LED_N", "BMC_THROTTLE_N",
+                       "", "", "", "",
+               /* AA */ "CPU1_THERMTRIP_LATCH_N", "", "CPU1_PROCHOT_N", "",
+                       "", "", "IRQ_SMI_ACTIVE_N", "FM_BIOS_POST_CMPLT_N",
+               /* AB */ "", "", "ME_OVERRIDE", "BMC_DMI_MODIFY", "", "", "", "",
+               /* AC */ "", "", "", "", "", "", "", "";
+};
+
+&adc {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc0_default /* 3VSB */
+               &pinctrl_adc1_default      /* 5VSB */
+               &pinctrl_adc2_default      /* CPU1 */
+               &pinctrl_adc3_default      /* VCCSA */
+               &pinctrl_adc4_default      /* VCCM */
+               &pinctrl_adc5_default      /* V10M */
+               &pinctrl_adc6_default      /* VCCIO */
+               &pinctrl_adc7_default      /* VCCGT */
+               &pinctrl_adc8_default      /* VPPM */
+               &pinctrl_adc9_default      /* BAT */
+               &pinctrl_adc10_default     /* 3V */
+               &pinctrl_adc11_default     /* 5V */
+               &pinctrl_adc12_default     /* 12V */
+               &pinctrl_adc13_default     /* GND */
+               &pinctrl_adc14_default     /* GND */
+               &pinctrl_adc15_default>;   /* GND */
+};
index 4554abf0c7cdf2153356735c330ae43a6767606c..6dd221644dc6b171efce7b9868c4b321893e62d7 100644 (file)
@@ -71,6 +71,9 @@
 
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
+
+       nvmem-cells = <&eth0_macaddress>;
+       nvmem-cell-names = "mac-address";
 };
 
 &i2c0 {
 
        /* IPB PMIC */
        lm25066@40 {
-               compatible = "lm25066";
+               compatible = "ti,lm25066";
                reg = <0x40>;
                shunt-resistor-micro-ohms = <1000>;
        };
 
        /* 12VSB PMIC */
        lm25066@41 {
-               compatible = "lm25066";
+               compatible = "ti,lm25066";
                reg = <0x41>;
                shunt-resistor-micro-ohms = <10000>;
        };
                compatible = "st,24c128", "atmel,24c128";
                reg = <0x50>;
                pagesize = <16>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               eth0_macaddress: macaddress@3f80 {
+                       reg = <0x3f80 6>;
+               };
        };
 };
 
diff --git a/src/arm/aspeed/aspeed-bmc-asrock-spc621d8hm3.dts b/src/arm/aspeed/aspeed-bmc-asrock-spc621d8hm3.dts
new file mode 100644 (file)
index 0000000..5554858
--- /dev/null
@@ -0,0 +1,324 @@
+// SPDX-License-Identifier: GPL-2.0+
+/dts-v1/;
+
+#include "aspeed-g5.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/i2c/i2c.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/leds/common.h>
+
+/{
+       model = "ASRock SPC621D8HM3 BMC";
+       compatible = "asrock,spc621d8hm3-bmc", "aspeed,ast2500";
+
+       aliases {
+               serial4 = &uart5;
+
+               i2c20 = &i2c1mux0ch0;
+               i2c21 = &i2c1mux0ch1;
+       };
+
+       chosen {
+               stdout-path = &uart5;
+       };
+
+       memory@80000000 {
+               reg = <0x80000000 0x20000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               /* BMC heartbeat */
+               led-0 {
+                       gpios = <&gpio ASPEED_GPIO(H, 6) GPIO_ACTIVE_LOW>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_GREEN>;
+                       linux,default-trigger = "timer";
+               };
+
+               /* system fault */
+               led-1 {
+                       gpios = <&gpio ASPEED_GPIO(Z, 2) GPIO_ACTIVE_LOW>;
+                       function = LED_FUNCTION_FAULT;
+                       color = <LED_COLOR_ID_RED>;
+                       panic-indicator;
+               };
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
+                       <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>,
+                       <&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
+                       <&adc 12>, <&adc 13>, <&adc 14>, <&adc 15>;
+       };
+};
+
+&fmc {
+       status = "okay";
+       flash@0 {
+               status = "okay";
+               m25p,fast-read;
+               label = "bmc";
+               spi-max-frequency = <50000000>; /* 50 MHz */
+#include "openbmc-flash-layout-64.dtsi"
+       };
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&vuart {
+       status = "okay";
+       aspeed,lpc-io-reg = <0x2f8>;
+       aspeed,lpc-interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&mac0 {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
+
+       nvmem-cells = <&eth0_macaddress>;
+       nvmem-cell-names = "mac-address";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+
+       /* hardware monitor/thermal sensor */
+       temperature-sensor@29 {
+               compatible = "nuvoton,nct7802";
+               reg = <0x29>;
+       };
+
+       /* motherboard temp sensor (TMP1, near BMC) */
+       temperature-sensor@4c {
+               compatible = "nuvoton,w83773g";
+               reg = <0x4c>;
+       };
+
+       /* motherboard FRU eeprom */
+       eeprom@50 {
+               compatible = "st,24c128", "atmel,24c128";
+               reg = <0x50>;
+               pagesize = <16>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               eth0_macaddress: macaddress@3f80 {
+                       reg = <0x3f80 6>;
+               };
+       };
+
+       /* M.2 slot smbus mux */
+       i2c-mux@71 {
+               compatible = "nxp,pca9545";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c1mux0ch0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               i2c1mux0ch1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+};
+
+&i2c5 {
+       status = "okay";
+};
+
+&i2c6 {
+       status = "okay";
+};
+
+&i2c7 {
+       status = "okay";
+};
+
+&i2c8 {
+       status = "okay";
+};
+
+&i2c9 {
+       status = "okay";
+};
+
+&i2c10 {
+       status = "okay";
+};
+
+&i2c11 {
+       status = "okay";
+};
+
+&i2c12 {
+       status = "okay";
+};
+
+&i2c13 {
+       status = "okay";
+};
+
+&video {
+       status = "okay";
+};
+
+&vhub {
+       status = "okay";
+};
+
+&lpc_ctrl {
+       status = "okay";
+};
+
+&lpc_snoop {
+       status = "okay";
+       snoop-ports = <0x80>;
+};
+
+&kcs3 {
+       status = "okay";
+       aspeed,lpc-io-reg = <0xca2>;
+};
+
+&peci0 {
+       status = "okay";
+};
+
+&pwm_tacho {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm0_default
+               &pinctrl_pwm2_default
+               &pinctrl_pwm3_default
+               &pinctrl_pwm4_default>;
+
+       fan@0 {
+               reg = <0x00>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x00>;
+       };
+
+       fan@2 {
+               reg = <0x02>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x02>;
+       };
+
+       fan@3 {
+               reg = <0x03>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x03>;
+       };
+
+       fan@4 {
+               reg = <0x04>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x04>;
+       };
+};
+
+&gpio {
+       status = "okay";
+       gpio-line-names =
+               /*  A */ "LOCATORLED_STATUS_N", "LOCATORBTN_N",
+                       "BMC_READY_N", "FM_SPD_DDRCPU_LVLSHFT_EN",
+                       "", "", "", "",
+               /*  B */ "NODE_ID_1", "NODE_ID_2", "PSU_FAN_FAIL_N", "",
+                       "", "", "", "GPIO_RST",
+               /*  C */ "", "", "", "", "", "", "", "",
+               /*  D */ "FP_PWR_BTN_MUX_N", "FM_BMC_PWRBTN_OUT_N",
+                       "FP_RST_BTN_N", "RST_BMC_RSTBTN_OUT_N",
+                       "NMI_BTN_N", "BMC_NMI",
+                       "", "",
+               /*  E */ "", "", "", "FM_ME_RCVR_N", "", "", "", "",
+               /*  F */ "BMC_SMB_SEL_N", "FM_CPU2_DISABLE_COD_N",
+                       "FM_REMOTE_DEBUG_BMC_EN", "FM_CPU_ERR0_LVT3_EN",
+                       "FM_CPU_ERR1_LVT3_EN", "FM_CPU_ERR2_LVT3_EN",
+                       "FM_MEM_THERM_EVENT_CPU1_LVT3_N", "FM_MEM_THERM_EVENT_CPU2_LVT3_N",
+               /*  G */ "HWM_BAT_EN", "", "BMC_PHYRST_N", "FM_BIOS_SPI_BMC_CTRL",
+                       "BMC_ALERT1_N", "BMC_ALERT2_N", "BMC_ALERT3_N", "IRQ_SML0_ALERT_N",
+               /*  H */ "BMC_SMB_PRESENT_1_N", "FM_PCH_CORE_VID_0", "FM_PCH_CORE_VID_1", "",
+                       "FM_MFG_MODE", "BMC_RTCRST", "BMC_HB_LED_N", "BMC_CASEOPEN",
+               /*  I */ "IRQ_PVDDQ_ABCD_CPU1_VRHOT_LVC3_N", "IRQ_PVDDQ_ABCD_CPU2_VRHOT_LVC3_N",
+                       "IRQ_PVDDQ_EFGH_CPU1_VRHOT_LVC3_N", "IRQ_PVDDQ_EFGH_CPU2_VRHOT_LVC3_N",
+                       "", "", "", "",
+               /*  J */ "", "", "", "", "", "", "", "",
+               /*  K */ "", "", "", "", "", "", "", "",
+               /*  L */ "", "", "", "", "", "", "", "",
+               /*  M */ "FM_PVCCIN_CPU1_PWR_IN_ALERT_N", "FM_PVCCIN_CPU2_PWR_IN_ALERT_N",
+                       "IRQ_PVCCIN_CPU1_VRHOT_LVC3_N", "IRQ_PVCCIN_CPU2_VRHOT_LVC3_N",
+                       "FM_CPU1_PROCHOT_BMC_LVC3_N", "",
+                       "FM_CPU1_MEMHOT_OUT_N", "FM_CPU2_MEMHOT_OUT_N",
+               /*  N */ "", "", "", "", "", "", "", "",
+               /*  O */ "", "", "", "", "", "", "", "",
+               /*  P */ "", "", "", "", "", "", "", "",
+               /*  Q */ "", "", "", "", "", "", "RST_GLB_RST_WARN_N", "PCIE_WAKE_N",
+               /*  R */ "", "", "FM_BMC_SUSACK_N", "FM_BMC_EUP_LOT6_N",
+                       "", "FM_BMC_PCH_SCI_LPC_N", "", "",
+               /*  S */ "FM_DBP_PRESENT_N", "FM_CPU2_SKTOCC_LCT3_N",
+                       "FM_CPU1_FIVR_FAULT_LVT3", "FM_CPU2_FIVR_FAULT_LVT3",
+                        "", "", "", "",
+               /*  T */ "", "", "", "", "", "", "", "",
+               /*  U */ "", "", "", "", "", "", "", "",
+               /*  V */ "", "", "", "", "", "", "", "",
+               /*  W */ "", "", "", "", "", "", "", "",
+               /*  X */ "", "", "", "", "", "", "", "",
+               /*  Y */ "FM_SLPS3_N", "FM_SLPS4_N", "", "FM_BMC_ONCTL_N_PLD",
+                       "", "", "", "",
+               /*  Z */ "FM_CPU_MSMI_CATERR_LVT3_N", "", "SYSTEM_FAULT_LED_N", "BMC_THROTTLE_N",
+                       "", "", "", "",
+               /* AA */ "FM_CPU1_THERMTRIP_LATCH_LVT3_N", "FM_CPU2_THERMTRIP_LATCH_LVT3_N",
+                       "FM_BIOS_POST_COMPLT_N", "DBP_BMC_SYSPWROK",
+                       "", "IRQ_SML0_ALERT_MUX_N",
+                       "IRQ_SMI_ACTIVE_N", "IRQ_NMI_EVENT_N",
+               /* AB */ "FM_PCH_BMC_THERMTRIP_N", "PWRGD_SYS_PWROK",
+                       "ME_OVERRIDE", "IRQ_BMC_PCH_SMI_LPC_N",
+                       "", "", "", "",
+               /* AC */ "", "", "", "", "", "", "", "";
+};
+
+&adc {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc0_default /* 3VSB */
+               &pinctrl_adc1_default      /* 5VSB */
+               &pinctrl_adc2_default      /* CPU1 */
+               &pinctrl_adc3_default      /* NC */
+               &pinctrl_adc4_default      /* VCCMABCD */
+               &pinctrl_adc5_default      /* VCCMEFGH */
+               &pinctrl_adc6_default      /* NC */
+               &pinctrl_adc7_default      /* NC */
+               &pinctrl_adc8_default      /* PVNN_PCH */
+               &pinctrl_adc9_default      /* 1P05PCH */
+               &pinctrl_adc10_default     /* 1P8PCH */
+               &pinctrl_adc11_default     /* BAT */
+               &pinctrl_adc12_default     /* 3V */
+               &pinctrl_adc13_default     /* 5V */
+               &pinctrl_adc14_default     /* 12V */
+               &pinctrl_adc15_default>;   /* GND */
+};
diff --git a/src/arm/aspeed/aspeed-bmc-asrock-x570d4u.dts b/src/arm/aspeed/aspeed-bmc-asrock-x570d4u.dts
new file mode 100644 (file)
index 0000000..8dee4fa
--- /dev/null
@@ -0,0 +1,360 @@
+// SPDX-License-Identifier: GPL-2.0+
+/dts-v1/;
+#include "aspeed-g5.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "Asrock Rack X570D4U BMC";
+       compatible = "asrock,x570d4u-bmc", "aspeed,ast2500";
+
+       aliases {
+               i2c40 = &i2c4mux0ch0;
+               i2c41 = &i2c4mux0ch1;
+               i2c42 = &i2c4mux0ch2;
+               i2c43 = &i2c4mux0ch3;
+       };
+
+       chosen {
+               stdout-path = &uart5;
+       };
+
+       memory@80000000 {
+               reg = <0x80000000 0x20000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               pci_memory: region@9a000000 {
+                       no-map;
+                       reg = <0x9a000000 0x00010000>; /* 64K */
+               };
+
+               video_engine_memory: jpegbuffer {
+                       size = <0x02800000>;    /* 40M */
+                       alignment = <0x01000000>;
+                       compatible = "shared-dma-pool";
+                       reusable;
+               };
+
+               gfx_memory: framebuffer {
+                       size = <0x01000000>;
+                       alignment = <0x01000000>;
+                       compatible = "shared-dma-pool";
+                       reusable;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       /* led-heartbeat-n */
+                       gpios = <&gpio ASPEED_GPIO(H, 6) GPIO_ACTIVE_LOW>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       linux,default-trigger = "timer";
+               };
+
+               led-1 {
+                       /* led-fault-n */
+                       gpios = <&gpio ASPEED_GPIO(Z, 2) GPIO_ACTIVE_LOW>;
+                       color = <LED_COLOR_ID_AMBER>;
+                       function = LED_FUNCTION_FAULT;
+                       panic-indicator;
+               };
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>,
+                       <&adc 5>, <&adc 6>, <&adc 7>, <&adc 8>, <&adc 9>,
+                       <&adc 10>, <&adc 11>, <&adc 12>;
+       };
+};
+
+&gpio {
+       status = "okay";
+       gpio-line-names =
+       /*  A */ "input-locatorled-n", "", "", "", "", "", "", "",
+       /*  B */ "input-bios-post-cmplt-n", "", "", "", "", "", "", "",
+       /*  C */ "", "", "", "", "", "", "control-locatorbutton-n", "",
+       /*  D */ "button-power-n", "control-power-n", "button-reset-n",
+                "control-reset-n", "", "", "", "",
+       /*  E */ "", "", "", "", "", "", "", "",
+       /*  F */ "", "", "", "", "", "", "", "",
+       /*  G */ "output-hwm-vbat-enable", "input-id0-n", "input-id1-n",
+                "input-id2-n", "input-aux-smb-alert-n", "",
+                "input-psu-smb-alert-n", "",
+       /*  H */ "", "", "", "", "input-mfg-mode-n", "",
+                "led-heartbeat-n", "input-case-open-n",
+       /*  I */ "", "", "", "", "", "", "", "",
+       /*  J */ "output-bmc-ready-n", "", "", "", "", "", "", "",
+       /*  K */ "", "", "", "", "", "", "", "",
+       /*  L */ "", "", "", "", "", "", "", "",
+       /*  M */ "", "", "", "", "", "", "", "",
+       /*  N */ "", "", "", "", "", "", "", "",
+       /*  O */ "", "", "", "", "", "", "", "",
+       /*  P */ "", "", "", "", "", "", "", "",
+       /*  Q */ "", "", "", "", "input-bmc-smb-present-n", "", "",
+                "input-pcie-wake-n",
+       /*  R */ "", "", "", "", "", "", "", "",
+       /*  S */ "input-bmc-pchhot-n", "", "", "", "", "", "", "",
+       /*  T */ "", "", "", "", "", "", "", "",
+       /*  U */ "", "", "", "", "", "", "", "",
+       /*  V */ "", "", "", "", "", "", "", "",
+       /*  W */ "", "", "", "", "", "", "", "",
+       /*  X */ "", "", "", "", "", "", "", "",
+       /*  Y */ "input-sleep-s3-n", "input-sleep-s5-n", "", "", "", "",
+                "", "",
+       /*  Z */ "", "", "led-fault-n", "output-bmc-throttle-n", "", "",
+                "", "",
+       /* AA */ "input-cpu1-thermtrip-latch-n", "",
+                "input-cpu1-prochot-n", "", "", "", "", "",
+       /* AB */ "", "input-power-good", "", "", "", "", "", "",
+       /* AC */ "", "", "", "", "", "", "", "";
+};
+
+&fmc {
+       status = "okay";
+       flash@0 {
+               status = "okay";
+               label = "bmc";
+               m25p,fast-read;
+               spi-max-frequency = <10000000>;
+#include "openbmc-flash-layout-64.dtsi"
+       };
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&vuart {
+       status = "okay";
+};
+
+&mac0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
+
+       nvmem-cells = <&eth0_macaddress>;
+       nvmem-cell-names = "mac-address";
+};
+
+&mac1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rmii2_default &pinctrl_mdio2_default>;
+       use-ncsi;
+
+       nvmem-cells = <&eth1_macaddress>;
+       nvmem-cell-names = "mac-address";
+};
+
+&i2c0 {
+       /* SMBus on auxiliary panel header (AUX_PANEL1) */
+       status = "okay";
+};
+
+&i2c1 {
+       /* Hardware monitoring SMBus */
+       status = "okay";
+
+       w83773g@4c {
+               compatible = "nuvoton,w83773g";
+               reg = <0x4c>;
+       };
+};
+
+&i2c2 {
+       /* PSU SMBus (PSU_SMB1) */
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9545";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c4mux0ch0: i2c@0 {
+                       /* SMBus on PCI express 16x slot */
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               i2c4mux0ch1: i2c@1 {
+                       /* SMBus on PCI express 8x slot */
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               i2c4mux0ch2: i2c@2 {
+                       /* Unknown */
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               i2c4mux0ch3: i2c@3 {
+                       /* SMBus on PCI express 1x slot */
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+};
+
+&i2c5 {
+       /* SMBus on BMC connector (BMC_SMB_1) */
+       status = "okay";
+};
+
+&i2c7 {
+       /* FRU and SPD EEPROM SMBus */
+       status = "okay";
+
+       eeprom@57 {
+               compatible = "st,24c128", "atmel,24c128";
+               reg = <0x57>;
+               pagesize = <16>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               eth0_macaddress: macaddress@3f80 {
+                       reg = <0x3f80 6>;
+               };
+
+               eth1_macaddress: macaddress@3f88 {
+                       reg = <0x3f88 6>;
+               };
+       };
+};
+
+&i2c8 {
+       /* SMBus on intelligent platform management bus header (IPMB_1) */
+       status = "okay";
+};
+
+&gfx {
+       status = "okay";
+};
+
+&pinctrl {
+       aspeed,external-nodes = <&gfx &lhc>;
+};
+
+&vhub {
+       status = "okay";
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&uhci {
+       status = "okay";
+};
+
+&kcs3 {
+       aspeed,lpc-io-reg = <0xca2>;
+       status = "okay";
+};
+
+&lpc_ctrl {
+       status = "okay";
+};
+
+&lpc_snoop {
+       status = "okay";
+       snoop-ports = <0x80>;
+};
+
+&p2a {
+       status = "okay";
+       memory-region = <&pci_memory>;
+};
+
+&video {
+       status = "okay";
+       memory-region = <&video_engine_memory>;
+};
+
+&pwm_tacho {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm0_default
+                               &pinctrl_pwm1_default
+                               &pinctrl_pwm2_default
+                               &pinctrl_pwm3_default
+                               &pinctrl_pwm4_default
+                               &pinctrl_pwm5_default>;
+
+       fan@0 {
+               /* FAN1 (4-pin) */
+               reg = <0x00>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x00>;
+       };
+
+       fan@1 {
+               /* FAN2 (4-pin) */
+               reg = <0x01>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x01>;
+       };
+
+       fan@2 {
+               /* FAN3 (4-pin) */
+               reg = <0x02>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x02>;
+       };
+
+       fan@3 {
+               /* FAN4 (6-pin) */
+               reg = <0x03>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x04 0x0b>;
+       };
+
+       fan@4 {
+               /* FAN6 (6-pin) */
+               reg = <0x04>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x06 0x0d>;
+       };
+
+       fan@5 {
+               /* FAN5 (6-pin) */
+               reg = <0x05>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x05 0x0c>;
+       };
+};
+
+&adc {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc0_default       /* 3VSB */
+                       &pinctrl_adc1_default    /* 5VSB */
+                       &pinctrl_adc2_default    /* VCPU */
+                       &pinctrl_adc3_default    /* VSOC */
+                       &pinctrl_adc4_default    /* VCCM */
+                       &pinctrl_adc5_default    /* APU-VDDP */
+                       &pinctrl_adc6_default    /* PM-VDD-CLDO */
+                       &pinctrl_adc7_default    /* PM-VDDCR-S5 */
+                       &pinctrl_adc8_default    /* PM-VDDCR */
+                       &pinctrl_adc9_default    /* VBAT */
+                       &pinctrl_adc10_default   /* 3V */
+                       &pinctrl_adc11_default   /* 5V */
+                       &pinctrl_adc12_default>; /* 12V */
+};
diff --git a/src/arm/aspeed/aspeed-bmc-asus-x4tf.dts b/src/arm/aspeed/aspeed-bmc-asus-x4tf.dts
new file mode 100644 (file)
index 0000000..64f4ed0
--- /dev/null
@@ -0,0 +1,581 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// Copyright 2024 ASUS Corp.
+
+/dts-v1/;
+
+#include "aspeed-g6.dtsi"
+#include "aspeed-g6-pinctrl.dtsi"
+#include <dt-bindings/i2c/i2c.h>
+#include <dt-bindings/gpio/aspeed-gpio.h>
+
+/ {
+       model = "ASUS-X4TF";
+       compatible = "asus,x4tf-bmc", "aspeed,ast2600";
+
+       aliases {
+               serial4 = &uart5;
+       };
+
+       chosen {
+               stdout-path = "serial4:115200n8";
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x40000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               video_engine_memory: video {
+                       size = <0x04000000>;
+                       alignment = <0x01000000>;
+                       compatible = "shared-dma-pool";
+                       reusable;
+               };
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
+                               <&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,
+                               <&adc1 0>, <&adc1 1>, <&adc1 2>, <&adc1 3>,
+                               <&adc1 4>, <&adc1 5>, <&adc1 6>, <&adc1 7>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-heartbeat {
+                       gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led-uid {
+                       gpios = <&gpio0 ASPEED_GPIO(P, 1) (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+                       default-state = "off";
+               };
+
+               led-status_Y {
+                       gpios = <&gpio1 ASPEED_GPIO(B, 1) GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+
+               led-sys_boot_status {
+                       gpios = <&gpio1 ASPEED_GPIO(B, 0) GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+       };
+};
+
+&adc0 {
+       vref = <2500>;
+       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 = <2500>;
+       status = "okay";
+       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>;
+};
+
+&peci0 {
+       status = "okay";
+};
+
+&lpc_snoop {
+       snoop-ports = <0x80>;
+       status = "okay";
+};
+
+&mac2 {
+       status = "okay";
+       phy-mode = "rmii";
+       use-ncsi;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rmii3_default>;
+};
+
+&mac3 {
+       status = "okay";
+       phy-mode = "rmii";
+       use-ncsi;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rmii4_default>;
+};
+
+&fmc {
+       status = "okay";
+
+       flash@0 {
+               status = "okay";
+               m25p,fast-read;
+               label = "bmc";
+               spi-max-frequency = <50000000>;
+#include "openbmc-flash-layout-64.dtsi"
+       };
+};
+
+&spi1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi1_default>;
+
+       flash@0 {
+               status = "okay";
+               label = "bios";
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp75";
+               reg = <0x48>;
+       };
+
+       temperature-sensor@49 {
+               compatible = "ti,tmp75";
+               reg = <0x49>;
+       };
+
+       pca9555_4_20: gpio@20 {
+               compatible = "nxp,pca9555";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       pca9555_4_22: gpio@22 {
+               compatible = "nxp,pca9555";
+               reg = <0x22>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       pca9555_4_24: gpio@24 {
+               compatible = "nxp,pca9555";
+               reg = <0x24>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+               /*A0 - A3 0*/   "", "STRAP_BMC_BATTERY_GPIO1", "", "",
+               /*A4 - A7 4*/   "", "", "", "",
+               /*B0 - B7 8*/   "", "", "", "", "", "", "", "";
+       };
+
+       pca9555_4_26: gpio@26 {
+               compatible = "nxp,pca9555";
+               reg = <0x26>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               status = "okay";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel_1: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               channel_2: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               channel_3: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               channel_4: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+};
+
+&i2c5 {
+       status = "okay";
+
+       pca9555_5_24: gpio@24 {
+               compatible = "nxp,pca9555";
+               reg = <0x24>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       i2c-mux@70  {
+               compatible = "nxp,pca9546";
+               status = "okay";
+               reg = <0x70 >;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel_5: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       pca9555_5_5_20: gpio@20 {
+                               compatible = "nxp,pca9555";
+                               reg = <0x20>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               gpio-line-names =
+                                       "", "", "", "", "", "", "", "",
+                                       "", "", "SYS_FAN6", "SYS_FAN5",
+                                       "SYS_FAN4", "SYS_FAN3",
+                                       "SYS_FAN2", "SYS_FAN1";
+                       };
+
+                       pca9555_5_5_21: gpio@21 {
+                               compatible = "nxp,pca9555";
+                               reg = <0x21>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                       };
+
+                       power-monitor@44 {
+                               compatible = "ti,ina219";
+                               reg = <0x44>;
+                               shunt-resistor = <2>;
+                       };
+               };
+
+               channel_6: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               channel_7: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               channel_8: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+};
+
+&i2c6 {
+       status = "okay";
+
+       pca9555_6_27: gpio@27 {
+               compatible = "nxp,pca9555";
+               reg = <0x27>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       pca9555_6_20: gpio@20 {
+               compatible = "nxp,pca9555";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+               /*A0 0*/        "", "", "", "", "", "", "", "",
+               /*B0 8*/        "Drive_NVMe1", "Drive_NVMe2", "", "",
+               /*B4 12*/       "", "", "", "";
+       };
+
+       pca9555_6_21: gpio@21 {
+               compatible = "nxp,pca9555";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+};
+
+&i2c7 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               status = "okay";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               idle-state = <1>;
+
+               channel_9: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       temperature-sensor@48 {
+                               compatible = "ti,tmp75";
+                               reg = <0x48>;
+                       };
+
+                       temperature-sensor@49 {
+                               compatible = "ti,tmp75";
+                               reg = <0x49>;
+                       };
+
+                       power-monitor@40 {
+                               compatible = "ti,ina219";
+                               reg = <0x40>;
+                               shunt-resistor = <2>;
+                       };
+
+                       power-monitor@41 {
+                               compatible = "ti,ina219";
+                               reg = <0x41>;
+                               shunt-resistor = <5>;
+                       };
+               };
+
+               channel_10: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               channel_11: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               channel_12: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+
+       i2c-mux@71 {
+               compatible = "nxp,pca9546";
+               status = "okay";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               channel_13: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               channel_14: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               channel_15: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               channel_16: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+};
+
+&i2c8 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               status = "okay";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               channel_17: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               channel_18: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       temperature-sensor@48 {
+                               compatible = "ti,tmp75";
+                               reg = <0x48>;
+                       };
+
+                       power-monitor@41 {
+                               compatible = "ti,ina219";
+                               reg = <0x41>;
+                               shunt-resistor = <5>;
+                       };
+               };
+
+               channel_19: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               channel_20: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+};
+
+&i2c9 {
+       status = "okay";
+};
+
+&i2c10 {
+       status = "okay";
+};
+
+&i2c11 {
+       status = "okay";
+};
+
+&i2c14 {
+       status = "okay";
+       multi-master;
+
+       eeprom@50 {
+               compatible = "atmel,24c08";
+               reg = <0x50>;
+       };
+
+       eeprom@51 {
+               compatible = "atmel,24c08";
+               reg = <0x51>;
+       };
+};
+
+&sgpiom0 {
+       status = "okay";
+       ngpios = <128>;
+};
+
+&video {
+       status = "okay";
+       memory-region = <&video_engine_memory>;
+};
+
+&sdc {
+       status = "okay";
+};
+
+&lpc_snoop {
+       status = "okay";
+       snoop-ports = <0x80>;
+};
+
+&kcs1 {
+       aspeed,lpc-io-reg = <0xca0>;
+       status = "okay";
+};
+
+&kcs2 {
+       aspeed,lpc-io-reg = <0xca8>;
+       status = "okay";
+};
+
+&kcs3 {
+       aspeed,lpc-io-reg = <0xca2>;
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&uart_routing {
+       status = "okay";
+};
+
+&vhub {
+       status = "okay";
+};
+
+&gpio0 {
+       gpio-line-names =
+       /*A0 0*/        "", "", "", "", "", "", "", "",
+       /*B0 8*/        "", "", "", "", "", "", "PS_PWROK", "",
+       /*C0 16*/       "", "", "", "", "", "", "", "",
+       /*D0 24*/       "", "", "", "", "", "", "", "",
+       /*E0 32*/       "", "", "", "", "", "", "", "",
+       /*F0 40*/       "", "", "", "", "", "", "", "",
+       /*G0 48*/       "", "", "", "", "", "", "", "",
+       /*H0 56*/       "", "", "", "", "", "", "", "",
+       /*I0 64*/       "", "", "", "", "", "", "", "",
+       /*J0 72*/       "", "", "", "", "", "", "", "",
+       /*K0 80*/       "", "", "", "", "", "", "", "",
+       /*L0 88*/       "", "", "", "", "", "", "", "",
+       /*M0 96*/       "", "", "", "", "", "", "", "",
+       /*N0 104*/      "", "", "", "",
+       /*N4 108*/      "POST_COMPLETE", "ESR1_GPIO_AST_SPISEL", "", "",
+       /*O0 112*/      "", "", "", "", "", "", "", "",
+       /*P0 120*/      "ID_BUTTON", "ID_OUT", "POWER_BUTTON", "POWER_OUT",
+       /*P4 124*/      "RESET_BUTTON", "RESET_OUT", "", "HEARTBEAT",
+       /*Q0 128*/      "", "", "", "", "", "", "", "",
+       /*R0 136*/      "", "", "", "", "", "", "", "",
+       /*S0 144*/      "", "", "", "", "", "", "", "",
+       /*T0 152*/      "", "", "", "", "", "", "", "",
+       /*U0 160*/      "", "", "", "", "", "", "", "",
+       /*V0 168*/      "", "", "", "", "", "", "", "",
+       /*W0 176*/      "", "", "", "", "", "", "", "",
+       /*X0 184*/      "", "", "", "", "", "", "", "",
+       /*Y0 192*/      "", "", "", "", "", "", "", "",
+       /*Z0 200*/      "", "", "", "", "", "", "", "";
+};
index 6600f7e9bf5ed4dbb6c228fa1af831a5e2580a25..b6bfdaea08e6320a55c114599bd6dc116c60f316 100644 (file)
 
 #define EFUSE(hexaddr, num)                                                    \
        efuse@##hexaddr {                                                       \
-               compatible = "lm25066";                                         \
+               compatible = "ti,lm25066";                                      \
                reg = <0x##hexaddr>;                                            \
                shunt-resistor-micro-ohms = <675>;                              \
                regulators {                                                    \
-                       efuse##num: vout0 {                                     \
+                       efuse##num: vout {                                      \
                                regulator-name = __stringify(efuse##num##-reg); \
                        };                                                      \
                };                                                              \
diff --git a/src/arm/aspeed/aspeed-bmc-facebook-cloudripper.dts b/src/arm/aspeed/aspeed-bmc-facebook-cloudripper.dts
deleted file mode 100644 (file)
index d49328f..0000000
+++ /dev/null
@@ -1,544 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-// Copyright (c) 2020 Facebook Inc.
-
-/dts-v1/;
-
-#include <dt-bindings/leds/common.h>
-#include "ast2600-facebook-netbmc-common.dtsi"
-
-/ {
-       model = "Facebook Cloudripper BMC";
-       compatible = "facebook,cloudripper-bmc", "aspeed,ast2600";
-
-       aliases {
-               /*
-                * PCA9548 (1-0070) provides 8 channels connecting to
-                * SMB (Switch Main Board).
-                */
-               i2c16 = &imux16;
-               i2c17 = &imux17;
-               i2c18 = &imux18;
-               i2c19 = &imux19;
-               i2c20 = &imux20;
-               i2c21 = &imux21;
-               i2c22 = &imux22;
-               i2c23 = &imux23;
-
-               /*
-                * PCA9548 (2-0070) provides 8 channels connecting to
-                * SCM (System Controller Module).
-                */
-               i2c24 = &imux24;
-               i2c25 = &imux25;
-               i2c26 = &imux26;
-               i2c27 = &imux27;
-               i2c28 = &imux28;
-               i2c29 = &imux29;
-               i2c30 = &imux30;
-               i2c31 = &imux31;
-
-               /*
-                * PCA9548 (3-0070) provides 8 channels connecting to
-                * SMB (Switch Main Board).
-                */
-               i2c32 = &imux32;
-               i2c33 = &imux33;
-               i2c34 = &imux34;
-               i2c35 = &imux35;
-               i2c36 = &imux36;
-               i2c37 = &imux37;
-               i2c38 = &imux38;
-               i2c39 = &imux39;
-
-               /*
-                * PCA9548 (8-0070) provides 8 channels connecting to
-                * PDB (Power Delivery Board).
-                */
-               i2c40 = &imux40;
-               i2c41 = &imux41;
-               i2c42 = &imux42;
-               i2c43 = &imux43;
-               i2c44 = &imux44;
-               i2c45 = &imux45;
-               i2c46 = &imux46;
-               i2c47 = &imux47;
-
-               /*
-                * PCA9548 (15-0076) provides 8 channels connecting to
-                * FCM (Fan Controller Module).
-                */
-               i2c48 = &imux48;
-               i2c49 = &imux49;
-               i2c50 = &imux50;
-               i2c51 = &imux51;
-               i2c52 = &imux52;
-               i2c53 = &imux53;
-               i2c54 = &imux54;
-               i2c55 = &imux55;
-       };
-
-       spi_gpio: spi {
-               num-chipselects = <2>;
-               cs-gpios = <&gpio0 ASPEED_GPIO(X, 0) GPIO_ACTIVE_LOW>,
-                          <&gpio0 ASPEED_GPIO(X, 1) GPIO_ACTIVE_HIGH>;
-
-               eeprom@1 {
-                       compatible = "atmel,at93c46d";
-                       spi-max-frequency = <250000>;
-                       data-size = <16>;
-                       spi-cs-high;
-                       reg = <1>;
-               };
-       };
-};
-
-&ehci1 {
-       status = "okay";
-};
-
-/*
- * "mdio1" is connected to the MDC/MDIO interface of the on-board
- * management switch (whose ports are connected to BMC, Host and front
- * panel ethernet port).
- */
-&mdio1 {
-       status = "okay";
-};
-
-&mdio3 {
-       status = "okay";
-
-       ethphy1: ethernet-phy@13 {
-               compatible = "ethernet-phy-ieee802.3-c22";
-               reg = <0x0d>;
-       };
-};
-
-&mac3 {
-       status = "okay";
-       phy-mode = "rgmii";
-       phy-handle = <&ethphy1>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_rgmii4_default>;
-};
-
-&i2c0 {
-       multi-master;
-       bus-frequency = <1000000>;
-};
-
-&i2c1 {
-       /*
-        * PCA9548 (1-0070) provides 8 channels connecting to SMB (Switch
-        * Main Board).
-        */
-       i2c-mux@70 {
-               compatible = "nxp,pca9548";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               reg = <0x70>;
-               i2c-mux-idle-disconnect;
-
-               imux16: i2c@0 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <0>;
-               };
-
-               imux17: i2c@1 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <1>;
-               };
-
-               imux18: i2c@2 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <2>;
-               };
-
-               imux19: i2c@3 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <3>;
-               };
-
-               imux20: i2c@4 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <4>;
-               };
-
-               imux21: i2c@5 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <5>;
-               };
-
-               imux22: i2c@6 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <6>;
-               };
-
-               imux23: i2c@7 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <7>;
-               };
-       };
-};
-
-&i2c2 {
-       /*
-        * PCA9548 (2-0070) provides 8 channels connecting to SCM (System
-        * Controller Module).
-        */
-       i2c-mux@70 {
-               compatible = "nxp,pca9548";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               reg = <0x70>;
-               i2c-mux-idle-disconnect;
-
-               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>;
-               };
-
-               imux28: i2c@4 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <4>;
-               };
-
-               imux29: i2c@5 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <5>;
-               };
-
-               imux30: i2c@6 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <6>;
-               };
-
-               imux31: i2c@7 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <7>;
-               };
-       };
-};
-
-&i2c3 {
-       /*
-        * PCA9548 (3-0070) provides 8 channels connecting to SMB (Switch
-        * Main Board).
-        */
-       i2c-mux@70 {
-               compatible = "nxp,pca9548";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               reg = <0x70>;
-               i2c-mux-idle-disconnect;
-
-               imux32: i2c@0 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <0>;
-               };
-
-               imux33: i2c@1 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <1>;
-               };
-
-               imux34: i2c@2 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <2>;
-               };
-
-               imux35: i2c@3 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <3>;
-               };
-
-               imux36: i2c@4 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <4>;
-               };
-
-               imux37: i2c@5 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <5>;
-               };
-
-               imux38: i2c@6 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <6>;
-               };
-
-               imux39: i2c@7 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <7>;
-               };
-       };
-};
-
-&i2c6 {
-       lp5012@14 {
-               compatible = "ti,lp5012";
-               reg = <0x14>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               multi-led@0 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <0>;
-                       color = <LED_COLOR_ID_MULTI>;
-                       function = LED_FUNCTION_ACTIVITY;
-                       label = "sys";
-
-                       led@0 {
-                               reg = <0>;
-                               color = <LED_COLOR_ID_RED>;
-                       };
-
-                       led@1 {
-                               reg = <1>;
-                               color = <LED_COLOR_ID_BLUE>;
-                       };
-
-                       led@2 {
-                               reg = <2>;
-                               color = <LED_COLOR_ID_GREEN>;
-                       };
-               };
-
-               multi-led@1 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <1>;
-                       color = <LED_COLOR_ID_MULTI>;
-                       function = LED_FUNCTION_ACTIVITY;
-                       label = "fan";
-
-                       led@0 {
-                               reg = <0>;
-                               color = <LED_COLOR_ID_RED>;
-                       };
-
-                       led@1 {
-                               reg = <1>;
-                               color = <LED_COLOR_ID_BLUE>;
-                       };
-
-                       led@2 {
-                               reg = <2>;
-                               color = <LED_COLOR_ID_GREEN>;
-                       };
-               };
-
-               multi-led@2 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <2>;
-                       color = <LED_COLOR_ID_MULTI>;
-                       function = LED_FUNCTION_ACTIVITY;
-                       label = "psu";
-
-                       led@0 {
-                               reg = <0>;
-                               color = <LED_COLOR_ID_RED>;
-                       };
-
-                       led@1 {
-                               reg = <1>;
-                               color = <LED_COLOR_ID_BLUE>;
-                       };
-
-                       led@2 {
-                               reg = <2>;
-                               color = <LED_COLOR_ID_GREEN>;
-                       };
-               };
-
-               multi-led@3 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <3>;
-                       color = <LED_COLOR_ID_MULTI>;
-                       function = LED_FUNCTION_ACTIVITY;
-                       label = "scm";
-
-                       led@0 {
-                               reg = <0>;
-                               color = <LED_COLOR_ID_RED>;
-                       };
-
-                       led@1 {
-                               reg = <1>;
-                               color = <LED_COLOR_ID_BLUE>;
-                       };
-
-                       led@2 {
-                               reg = <2>;
-                               color = <LED_COLOR_ID_GREEN>;
-                       };
-               };
-       };
-};
-
-&i2c8 {
-       /*
-        * PCA9548 (8-0070) provides 8 channels connecting to PDB (Power
-        * Delivery Board).
-        */
-       i2c-mux@70 {
-               compatible = "nxp,pca9548";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               reg = <0x70>;
-               i2c-mux-idle-disconnect;
-
-               imux40: i2c@0 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <0>;
-               };
-
-               imux41: i2c@1 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <1>;
-               };
-
-               imux42: i2c@2 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <2>;
-               };
-
-               imux43: i2c@3 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <3>;
-               };
-
-               imux44: i2c@4 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <4>;
-               };
-
-               imux45: i2c@5 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <5>;
-               };
-
-               imux46: i2c@6 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <6>;
-               };
-
-               imux47: i2c@7 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <7>;
-               };
-
-       };
-};
-
-&i2c15 {
-       /*
-        * PCA9548 (15-0076) provides 8 channels connecting to FCM (Fan
-        * Controller Module).
-        */
-       i2c-mux@76 {
-               compatible = "nxp,pca9548";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               reg = <0x76>;
-               i2c-mux-idle-disconnect;
-
-               imux48: i2c@0 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <0>;
-               };
-
-               imux49: i2c@1 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <1>;
-               };
-
-               imux50: i2c@2 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <2>;
-               };
-
-               imux51: i2c@3 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <3>;
-               };
-
-               imux52: i2c@4 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <4>;
-               };
-
-               imux53: i2c@5 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <5>;
-               };
-
-               imux54: i2c@6 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <6>;
-               };
-
-               imux55: i2c@7 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <7>;
-               };
-       };
-};
index 7a53f54833a03df6f5656b35ebac089f064243e9..998598c15fd084ab569948ba274c1a9518255fe6 100644 (file)
@@ -66,7 +66,7 @@
        pinctrl-0 = <&pinctrl_rmii4_default>;
        no-hw-checksum;
        use-ncsi;
-       mlx,multi-host;
+       mellanox,multi-host;
        ncsi-ctrl,start-redo-probe;
        ncsi-ctrl,no-channel-monitor;
        ncsi-package = <1>;
 };
 
 &adc0 {
-       ref_voltage = <2500>;
        status = "okay";
        pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
                        &pinctrl_adc2_default &pinctrl_adc3_default
 };
 
 &adc1 {
-       ref_voltage = <2500>;
        status = "okay";
        pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc10_default
                        &pinctrl_adc11_default &pinctrl_adc12_default
diff --git a/src/arm/aspeed/aspeed-bmc-facebook-harma.dts b/src/arm/aspeed/aspeed-bmc-facebook-harma.dts
new file mode 100644 (file)
index 0000000..c118d47
--- /dev/null
@@ -0,0 +1,648 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// Copyright 2023 Facebook Inc.
+
+/dts-v1/;
+#include "aspeed-g6.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/i2c/i2c.h>
+
+/ {
+       model = "Facebook Harma";
+       compatible = "facebook,harma-bmc", "aspeed,ast2600";
+
+       aliases {
+               serial0 = &uart1;
+               serial1 = &uart2;
+               serial2 = &uart4;
+               serial4 = &uart5;
+
+               i2c20 = &imux20;
+               i2c21 = &imux21;
+               i2c22 = &imux22;
+               i2c23 = &imux23;
+               i2c24 = &imux24;
+               i2c25 = &imux25;
+               i2c26 = &imux26;
+               i2c27 = &imux27;
+               i2c28 = &imux28;
+               i2c29 = &imux29;
+               i2c30 = &imux30;
+               i2c31 = &imux31;
+
+               spi1 = &spi_gpio;
+       };
+
+       chosen {
+               stdout-path = &uart5;
+       };
+
+       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>;
+       };
+
+       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 13 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-2 {
+                       label = "power_blue";
+                       default-state = "off";
+                       gpios = <&gpio0 124 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       spi_gpio: spi-gpio {
+               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>;
+               num-chipselects = <1>;
+               cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
+
+               tpmdev@0 {
+                       compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
+                       spi-max-frequency = <33000000>;
+                       reg = <0>;
+               };
+       };
+};
+
+// HOST BIOS Debug
+&uart1 {
+       status = "okay";
+};
+
+// SOL Host Console
+&uart2 {
+       status = "okay";
+       pinctrl-0 = <>;
+};
+
+// SOL BMC Console
+&uart4 {
+       status = "okay";
+       pinctrl-0 = <>;
+};
+
+// BMC Debug Console
+&uart5 {
+       status = "okay";
+};
+
+// MTIA
+&uart6 {
+       status = "okay";
+};
+
+&uart_routing {
+       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>;
+};
+
+&mac3 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rmii4_default>;
+       use-ncsi;
+       mellanox,multi-host;
+};
+
+&rtc {
+       status = "okay";
+};
+
+&fmc {
+       status = "okay";
+
+       flash@0 {
+               status = "okay";
+               m25p,fast-read;
+               label = "bmc";
+               spi-max-frequency = <50000000>;
+#include "openbmc-flash-layout-128.dtsi"
+       };
+
+       flash@1 {
+               status = "okay";
+               m25p,fast-read;
+               label = "alt-bmc";
+               spi-max-frequency = <50000000>;
+       };
+};
+
+// BIOS Flash
+&spi2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi2_default>;
+
+       flash@0 {
+               status = "okay";
+               m25p,fast-read;
+               label = "pnor";
+               spi-max-frequency = <12000000>;
+               spi-tx-bus-width = <2>;
+               spi-rx-bus-width = <2>;
+       };
+};
+
+&kcs2 {
+       status = "okay";
+       aspeed,lpc-io-reg = <0xca8>;
+};
+
+&kcs3 {
+       status = "okay";
+       aspeed,lpc-io-reg = <0xca2>;
+};
+
+&i2c0 {
+       status = "okay";
+
+       pwm@5e{
+               compatible = "max31790";
+               reg = <0x5e>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+};
+
+&i2c1 {
+       status = "okay";
+
+       temperature-sensor@4b {
+               compatible = "ti,tmp75";
+               reg = <0x4b>;
+       };
+
+       // MB NIC FRU
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       pwm@5e{
+               compatible = "max31790";
+               reg = <0x5e>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+};
+
+&i2c3 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9543";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               imux20: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+                       //Retimer Flash
+                       eeprom@50 {
+                               compatible = "atmel,24c2048";
+                               reg = <0x50>;
+                               pagesize = <128>;
+                       };
+               };
+               imux21: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+                       retimer@24 {
+                               compatible = "asteralabs,pt5161l";
+                               reg = <0x24>;
+                       };
+               };
+       };
+};
+
+&i2c4 {
+       status = "okay";
+       // PDB FRU
+       eeprom@52 {
+               compatible = "atmel,24c64";
+               reg = <0x52>;
+       };
+
+       power-monitor@69 {
+               compatible = "pmbus";
+               reg = <0x69>;
+       };
+
+       temperature-sensor@49 {
+               compatible = "ti,tmp75";
+               reg = <0x49>;
+       };
+
+       power-monitor@22 {
+               compatible = "lltc,ltc4286";
+               reg = <0x22>;
+               adi,vrange-low-enable;
+               shunt-resistor-micro-ohms = <500>;
+       };
+};
+
+&i2c5 {
+       status = "okay";
+};
+
+&i2c6 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9543";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               imux22: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+               imux23: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+       };
+};
+
+&i2c7 {
+       status = "okay";
+};
+
+&i2c8 {
+       status = "okay";
+};
+
+&i2c9 {
+       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","",
+               "","","","",
+               "","","","";
+       };
+
+       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";
+               reg = <0x52>;
+       };
+};
+
+&i2c11 {
+       status = "okay";
+};
+
+&i2c12 {
+       status = "okay";
+       retimer@24 {
+               compatible = "asteralabs,pt5161l";
+               reg = <0x24>;
+       };
+};
+
+&i2c13 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9545";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               imux28: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+               imux29: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+                       //MB FRU
+                       eeprom@54 {
+                               compatible = "atmel,24c64";
+                               reg = <0x54>;
+                       };
+               };
+               imux30: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+               imux31: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+};
+
+// To Debug card
+&i2c14 {
+       status = "okay";
+       multi-master;
+
+       ipmb@10 {
+               compatible = "ipmb-dev";
+               reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
+               i2c-protocol;
+       };
+};
+
+&i2c15 {
+       status = "okay";
+
+       // SCM FRU
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+
+       // BSM FRU
+       eeprom@56 {
+               compatible = "atmel,24c64";
+               reg = <0x56>;
+       };
+};
+
+&adc0 {
+       aspeed,int-vref-microvolt = <2500000>;
+       status = "okay";
+       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 {
+       aspeed,int-vref-microvolt = <2500000>;
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc10_default>;
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&gpio0 {
+       pinctrl-names = "default";
+       gpio-line-names =
+       /*A0-A7*/       "","","","","","","","",
+       /*B0-B7*/       "","","","",
+                       "bmc-spi-mux-select-0","led-identify","","",
+       /*C0-C7*/       "reset-cause-platrst","","","","",
+                       "cpu0-err-alert","","",
+       /*D0-D7*/       "","","sol-uart-select","","","","","",
+       /*E0-E7*/       "","","","","","","","",
+       /*F0-F7*/       "","","","","","","","",
+       /*G0-G7*/       "","","","","","","","",
+       /*H0-H7*/       "","","","","","","","",
+       /*I0-I7*/       "","","","","","","","",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","",
+                       "leakage-detect-alert","","","",
+       /*M0-M7*/       "","","","","","","","",
+       /*N0-N7*/       "led-postcode-0","led-postcode-1",
+                       "led-postcode-2","led-postcode-3",
+                       "led-postcode-4","led-postcode-5",
+                       "led-postcode-6","led-postcode-7",
+       /*O0-O7*/       "","","","","","","","",
+       /*P0-P7*/       "power-button","power-host-control",
+                       "reset-button","","led-power","","","",
+       /*Q0-Q7*/       "","","","","","","","",
+       /*R0-R7*/       "","","","","","","","",
+       /*S0-S7*/       "","","","","","","","",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","led-identify-gate","",
+       /*V0-V7*/       "","","","",
+                       "rtc-battery-voltage-read-enable","","","",
+       /*W0-W7*/       "","","","","","","","",
+       /*X0-X7*/       "","","","","","","","",
+       /*Y0-Y7*/       "","","","","","","","",
+       /*Z0-Z7*/       "","","","","","","presence-post-card","";
+};
+
+&gpio1 {
+       gpio-line-names =
+       /*18A0-18A7*/ "ac-power-button","","","","","","","",
+       /*18B0-18B7*/ "","","","","","","","",
+       /*18C0-18C7*/ "","","","","","","","",
+       /*18D0-18D7*/ "","","","","","","","",
+       /*18E0-18E3*/ "","","","","","","","";
+};
+
+&sgpiom0 {
+       status = "okay";
+       max-ngpios = <128>;
+       ngpios = <128>;
+       bus-frequency = <2000000>;
+       gpio-line-names =
+       /*in - out - in - out */
+       /*A0-A3 line 0-7*/
+       "presence-scm-cable","power-config-disable-e1s-0",
+       "","",
+       "","power-config-disable-e1s-1",
+       "","",
+       /*A4-A7 line 8-15*/
+       "","power-config-asic-module-enable",
+       "","power-config-asic-power-good",
+       "","power-config-pdb-power-good",
+       "presence-cpu","smi-control-n",
+       /*B0-B3 line 16-23*/
+       "","nmi-control-n",
+       "","nmi-control-sync-flood-n",
+       "","",
+       "","",
+       /*B4-B7 line 24-31*/
+       "","FM_CPU_SP5R1",
+       "reset-cause-rsmrst","FM_CPU_SP5R2",
+       "","FM_CPU_SP5R3",
+       "","FM_CPU_SP5R4",
+       /*C0-C3 line 32-39*/
+       "","FM_CPU0_SA0",
+       "","FM_CPU0_SA1",
+       "","rt-cpu0-p0-enable",
+       "","rt-cpu0-p1-enable",
+       /*C4-C7 line 40-47*/
+       "","smb-rt-rom-p0-select",
+       "","smb-rt-rom-p1-select",
+       "","i3c-cpu-mux0-oe-n",
+       "","i3c-cpu-mux0-select",
+       /*D0-D3 line 48-55*/
+       "","i3c-cpu-mux1-oe-n",
+       "","i3c-cpu-mux1-select",
+       "","reset-control-bmc",
+       "","reset-control-cpu0-p0-mux",
+       /*D4-D7 line 56-63*/
+       "","reset-control-cpu0-p1-mux",
+       "","reset-control-e1s-mux",
+       "power-host-good","reset-control-mb-mux",
+       "host0-ready","reset-control-smb-e1s-0",
+       /*E0-E3 line 64-71*/
+       "","reset-control-smb-e1s-1",
+       "post-end-n","reset-control-srst",
+       "presence-e1s-0","reset-control-usb-hub",
+       "","reset-control",
+       /*E4-E7 line 72-79*/
+       "presence-e1s-1","reset-control-cpu-kbrst",
+       "","reset-control-platrst",
+       "","bmc-jtag-mux-select-0",
+       "","bmc-jtag-mux-select-1",
+       /*F0-F3 line 80-87*/
+       "","bmc-jtag-select",
+       "","bmc-ready-n",
+       "","bmc-ready-sgpio",
+       "","rt-cpu0-p0-force-enable",
+       /*F4-F7 line 88-95*/
+       "presence-asic-modules-0","rt-cpu0-p1-force-enable",
+       "presence-asic-modules-1","bios-debug-msg-disable",
+       "","uart-control-buffer-select",
+       "","ac-control-n",
+       /*G0-G3 line 96-103*/
+       "FM_CPU_CORETYPE2","",
+       "FM_CPU_CORETYPE1","",
+       "FM_CPU_CORETYPE0","",
+       "FM_BOARD_REV_ID5","",
+       /*G4-G7 line 104-111*/
+       "FM_BOARD_REV_ID4","",
+       "FM_BOARD_REV_ID3","",
+       "FM_BOARD_REV_ID2","",
+       "FM_BOARD_REV_ID1","",
+       /*H0-H3 line 112-119*/
+       "FM_BOARD_REV_ID0","",
+       "","","","","","",
+       /*H4-H7 line 120-127*/
+       "","",
+       "reset-control-pcie-expansion-3","",
+       "reset-control-pcie-expansion-2","",
+       "reset-control-pcie-expansion-1","",
+       /*I0-I3 line 128-135*/
+       "reset-control-pcie-expansion-0","",
+       "FM_EXP_SLOT_ID1","",
+       "FM_EXP_SLOT_ID0","",
+       "","",
+       /*I4-I7 line 136-143*/
+       "","","","","","","","",
+       /*J0-J3 line 144-151*/
+       "","","","","","","","",
+       /*J4-J7 line 152-159*/
+       "SLOT_ID_BCB_0","",
+       "SLOT_ID_BCB_1","",
+       "SLOT_ID_BCB_2","",
+       "SLOT_ID_BCB_3","",
+       /*K0-K3 line 160-167*/
+       "","","","","","","P0_I3C_APML_ALERT_L","",
+       /*K4-K7 line 168-175*/
+       "","","","","","","irq-uv-detect-alert","",
+       /*L0-L3 line 176-183*/
+       "irq-hsc-alert","",
+       "cpu0-prochot-alert","",
+       "cpu0-thermtrip-alert","",
+       "reset-cause-pcie","",
+       /*L4-L7 line 184-191*/
+       "pvdd11-ocp-alert","","","","","","","",
+       /*M0-M3 line 192-199*/
+       "","","","","","","","",
+       /*M4-M7 line 200-207*/
+       "","","","","","","","",
+       /*N0-N3 line 208-215*/
+       "","","","","","","","",
+       /*N4-N7 line 216-223*/
+       "","","","","","","","",
+       /*O0-O3 line 224-231*/
+       "","","","","","","","",
+       /*O4-O7 line 232-239*/
+       "","","","","","","","",
+       /*P0-P3 line 240-247*/
+       "","","","","","","","",
+       /*P4-P7 line 248-255*/
+       "","","","","","","","";
+};
diff --git a/src/arm/aspeed/aspeed-bmc-facebook-minerva-cmc.dts b/src/arm/aspeed/aspeed-bmc-facebook-minerva-cmc.dts
deleted file mode 100644 (file)
index f04ef90..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-// Copyright (c) 2023 Facebook Inc.
-/dts-v1/;
-
-#include "aspeed-g6.dtsi"
-#include <dt-bindings/gpio/aspeed-gpio.h>
-#include <dt-bindings/i2c/i2c.h>
-
-/ {
-       model = "Facebook Minerva CMC";
-       compatible = "facebook,minerva-cmc", "aspeed,ast2600";
-
-       aliases {
-               serial5 = &uart5;
-       };
-
-       chosen {
-               stdout-path = "serial5: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>;
-       };
-};
-
-&uart6 {
-       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>;
-};
-
-&mac3 {
-       status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_rmii4_default>;
-       use-ncsi;
-       mlx,multi-host;
-};
-
-&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>;
-       };
-};
-
-&rtc {
-       status = "okay";
-};
-
-&sgpiom1 {
-       status = "okay";
-       ngpios = <128>;
-       bus-frequency = <2000000>;
-};
-
-&i2c0 {
-       status = "okay";
-};
-
-&i2c1 {
-       status = "okay";
-
-       temperature-sensor@4b {
-               compatible = "ti,tmp75";
-               reg = <0x4B>;
-       };
-
-       eeprom@51 {
-               compatible = "atmel,24c128";
-               reg = <0x51>;
-       };
-};
-
-&i2c2 {
-       status = "okay";
-
-       i2c-mux@77 {
-               compatible = "nxp,pca9548";
-               reg = <0x77>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               i2c-mux-idle-disconnect;
-
-               i2c@0 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <0>;
-
-                       eeprom@50 {
-                               compatible = "atmel,24c128";
-                               reg = <0x50>;
-                       };
-               };
-
-               i2c@1 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <1>;
-
-                       eeprom@50 {
-                               compatible = "atmel,24c128";
-                               reg = <0x50>;
-                       };
-               };
-
-               i2c@2 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <2>;
-
-                       eeprom@50 {
-                               compatible = "atmel,24c128";
-                               reg = <0x50>;
-                       };
-               };
-
-               i2c@3 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <3>;
-
-                       eeprom@50 {
-                               compatible = "atmel,24c128";
-                               reg = <0x50>;
-                       };
-               };
-
-               i2c@4 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <4>;
-
-                       eeprom@50 {
-                               compatible = "atmel,24c128";
-                               reg = <0x50>;
-                       };
-               };
-
-               i2c@5 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <5>;
-
-                       eeprom@50 {
-                               compatible = "atmel,24c128";
-                               reg = <0x50>;
-                       };
-               };
-       };
-};
-
-&i2c3 {
-       status = "okay";
-};
-
-&i2c4 {
-       status = "okay";
-};
-
-&i2c5 {
-       status = "okay";
-};
-
-&i2c6 {
-       status = "okay";
-};
-
-&i2c7 {
-       status = "okay";
-};
-
-&i2c8 {
-       status = "okay";
-};
-
-&i2c9 {
-       status = "okay";
-};
-
-&i2c10 {
-       status = "okay";
-};
-
-&i2c11 {
-       status = "okay";
-};
-
-&i2c12 {
-       status = "okay";
-};
-
-&i2c13 {
-       status = "okay";
-};
-
-&i2c14 {
-       status = "okay";
-       multi-master;
-
-       ipmb@10 {
-               compatible = "ipmb-dev";
-               reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
-               i2c-protocol;
-       };
-};
-
-&i2c15 {
-       status = "okay";
-
-       eeprom@50 {
-               compatible = "atmel,24c128";
-               reg = <0x50>;
-       };
-};
-
-&adc0 {
-       aspeed,int-vref-microvolt = <2500000>;
-       status = "okay";
-       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 {
-       aspeed,int-vref-microvolt = <2500000>;
-       status = "okay";
-       pinctrl-0 = <&pinctrl_adc10_default>;
-};
-
-&ehci1 {
-       status = "okay";
-};
-
-&uhci {
-       status = "okay";
-};
diff --git a/src/arm/aspeed/aspeed-bmc-facebook-minerva.dts b/src/arm/aspeed/aspeed-bmc-facebook-minerva.dts
new file mode 100644 (file)
index 0000000..942e53d
--- /dev/null
@@ -0,0 +1,543 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Copyright (c) 2023 Facebook Inc.
+/dts-v1/;
+
+#include "aspeed-g6.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/i2c/i2c.h>
+
+/ {
+       model = "Facebook Minerva CMM";
+       compatible = "facebook,minerva-cmc", "aspeed,ast2600";
+
+       aliases {
+               serial5 = &uart5;
+               /*
+                * PCA9548 (2-0077) provides 8 channels connecting to
+                * 6 pcs of FCB (Fan Controller Board).
+                */
+               i2c16 = &imux16;
+               i2c17 = &imux17;
+               i2c18 = &imux18;
+               i2c19 = &imux19;
+               i2c20 = &imux20;
+               i2c21 = &imux21;
+       };
+
+       chosen {
+               stdout-path = "serial5: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>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-fan-fault {
+                       label = "led-fan-fault";
+                       gpios = <&leds_gpio 9 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+       };
+};
+
+&uart6 {
+       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>;
+};
+
+&mac3 {
+       status = "okay";
+       phy-mode = "rmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rmii4_default>;
+       fixed-link {
+               speed = <100>;
+               full-duplex;
+       };
+};
+
+&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>;
+       };
+};
+
+&rtc {
+       status = "okay";
+};
+
+&sgpiom0 {
+       status = "okay";
+       ngpios = <128>;
+       bus-frequency = <2000000>;
+};
+
+&i2c0 {
+       status = "okay";
+
+       power-monitor@40 {
+               compatible = "ti,ina230";
+               reg = <0x40>;
+               shunt-resistor = <1000>;
+       };
+
+       power-monitor@41 {
+               compatible = "ti,ina230";
+               reg = <0x41>;
+               shunt-resistor = <1000>;
+       };
+
+       power-monitor@67 {
+               compatible = "adi,ltc2945";
+               reg = <0x67>;
+       };
+
+       power-monitor@68 {
+               compatible = "adi,ltc2945";
+               reg = <0x68>;
+       };
+
+       leds_gpio: gpio@19 {
+               compatible = "nxp,pca9555";
+               reg = <0x19>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+};
+
+&i2c1 {
+       status = "okay";
+
+       temperature-sensor@4b {
+               compatible = "ti,tmp75";
+               reg = <0x4b>;
+       };
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp75";
+               reg = <0x48>;
+       };
+
+       eeprom@54 {
+               compatible = "atmel,24c128";
+               reg = <0x54>;
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       i2c-mux@77 {
+               compatible = "nxp,pca9548";
+               reg = <0x77>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               imux16: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c128";
+                               reg = <0x50>;
+                       };
+
+                       pwm@5e{
+                               compatible = "max31790";
+                               reg = <0x5e>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               imux17: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c128";
+                               reg = <0x50>;
+                       };
+
+                       pwm@5e{
+                               compatible = "max31790";
+                               reg = <0x5e>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               imux18: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c128";
+                               reg = <0x50>;
+                       };
+
+                       pwm@5e{
+                               compatible = "max31790";
+                               reg = <0x5e>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               imux19: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c128";
+                               reg = <0x50>;
+                       };
+
+                       pwm@5e{
+                               compatible = "max31790";
+                               reg = <0x5e>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               imux20: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c128";
+                               reg = <0x50>;
+                       };
+
+                       pwm@5e{
+                               compatible = "max31790";
+                               reg = <0x5e>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               imux21: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+
+                       eeprom@50 {
+                               compatible = "atmel,24c128";
+                               reg = <0x50>;
+                       };
+
+                       pwm@5e{
+                               compatible = "max31790";
+                               reg = <0x5e>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+       };
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+};
+
+&i2c5 {
+       status = "okay";
+};
+
+&i2c6 {
+       status = "okay";
+};
+
+&i2c7 {
+       status = "okay";
+};
+
+&i2c8 {
+       status = "okay";
+};
+
+&i2c9 {
+       status = "okay";
+};
+
+&i2c10 {
+       status = "okay";
+};
+
+&i2c11 {
+       status = "okay";
+};
+
+&i2c12 {
+       status = "okay";
+};
+
+&i2c13 {
+       status = "okay";
+};
+
+&i2c14 {
+       status = "okay";
+       multi-master;
+
+       ipmb@10 {
+               compatible = "ipmb-dev";
+               reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
+               i2c-protocol;
+       };
+};
+
+&i2c15 {
+       status = "okay";
+
+       eeprom@50 {
+               compatible = "atmel,24c128";
+               reg = <0x50>;
+       };
+};
+
+&adc0 {
+       aspeed,int-vref-microvolt = <2500000>;
+       status = "okay";
+       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 {
+       aspeed,int-vref-microvolt = <2500000>;
+       status = "okay";
+       pinctrl-0 = <&pinctrl_adc10_default>;
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&uhci {
+       status = "okay";
+};
+
+&gpio0 {
+       gpio-line-names =
+       /*A0-A7*/       "","","","","","","","",
+       /*B0-B7*/       "","","","","","","","",
+       /*C0-C7*/       "","","","","BLADE_UART_SEL2","","","",
+       /*D0-D7*/       "","","","","","","","",
+       /*E0-E7*/       "","","","","","","","",
+       /*F0-F7*/       "","","","","","","","",
+       /*G0-G7*/       "","","","","","","","",
+       /*H0-H7*/       "","","","","","","","",
+       /*I0-I7*/       "","","","","","","","",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","BLADE_UART_SEL0","","","",
+       /*M0-M7*/       "","","","","","BLADE_UART_SEL1","","",
+       /*N0-N7*/       "","","","","","","","",
+       /*O0-O7*/       "","","","","","","","",
+       /*P0-P7*/       "","","","","","","","",
+       /*Q0-Q7*/       "","","","","","","","",
+       /*R0-R7*/       "","","","","","","","",
+       /*S0-S7*/       "","","","","","","","",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","","",
+       /*V0-V7*/       "","","","","BAT_DETECT","","","",
+       /*W0-W7*/       "","","","","","","","",
+       /*X0-X7*/       "","","BLADE_UART_SEL3","","","","","",
+       /*Y0-Y7*/       "","","","","","","","",
+       /*Z0-Z7*/       "","","","","","","","";
+};
+
+&sgpiom0 {
+       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",
+       /*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",
+       /*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",
+       /*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",
+       /*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",
+       /*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",
+       /*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",
+       /*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",
+       /*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",
+       /*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","",
+       /*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","",
+       /*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","",
+       /*M0 - M7*/
+       "NW_BLADE2_STATUS_LED","",
+       "NW_BLADE3_STATUS_LED","",
+       "NW_BLADE4_STATUS_LED","",
+       "NW_BLADE5_STATUS_LED","",
+       "RPU_READY","",
+       "IT_GEAR_RPU_LINK_N","",
+       "IT_GEAR_LEAK","",
+       "WATER_VALVE_CLOSED_N","",
+       /*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","",
+       "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","",
+       /*P0 - P7*/
+       "MGMT_SFP_TX_FAULT","",
+       "MGMT_SFP_RX_LOS","",
+       "","",
+       "","",
+       "","",
+       "","",
+       "","",
+       "","";
+};
index 64075cc41d927574344817ccd6b1f16274cc7a17..98477792aa005a6c62d7bbb7daf0c31280bcc7e0 100644 (file)
@@ -88,7 +88,7 @@
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_rmii3_default>;
        use-ncsi;
-       mlx,multi-host;
+       mellanox,multi-host;
 };
 
 &mac3 {
@@ -96,7 +96,7 @@
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_rmii4_default>;
        use-ncsi;
-       mlx,multi-host;
+       mellanox,multi-host;
 };
 
 &fmc {
 
 &i2c13 {
        status = "okay";
-       bus-frequency = <400000>;
+       bus-frequency = <100000>;
+       multi-master;
+
+       ipmb@10 {
+               compatible = "ipmb-dev";
+               reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
+               i2c-protocol;
+       };
 };
 
 &i2c14 {
 };
 
 &adc0 {
-       ref_voltage = <2500>;
        status = "okay";
        pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
                        &pinctrl_adc2_default &pinctrl_adc3_default
 };
 
 &adc1 {
-       ref_voltage = <2500>;
        status = "okay";
        pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default>;
 };
index 6bf2ff85a40e724f17759a78f436a81c3e57a8c7..5143f85fbd70294ab12795281aa462b926fc4dfd 100644 (file)
@@ -95,7 +95,7 @@
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_rmii1_default>;
        use-ncsi;
-       mlx,multi-host;
+       mellanox,multi-host;
 };
 
 &adc {
index cad1b9aac97b368225c4a516d48c0d447e4763e9..6fdda42575df595f39d4b79a2ccd48be06b8fee9 100644 (file)
                #gpio-cells = <2>;
 
                led@0 {
-                       label = "nvme0";
+                       label = "nvme3";
                        reg = <0>;
                        retain-state-shutdown;
                        default-state = "keep";
                };
 
                led@1 {
-                       label = "nvme1";
+                       label = "nvme2";
                        reg = <1>;
                        retain-state-shutdown;
                        default-state = "keep";
                };
 
                led@2 {
-                       label = "nvme2";
+                       label = "nvme1";
                        reg = <2>;
                        retain-state-shutdown;
                        default-state = "keep";
                };
 
                led@3 {
-                       label = "nvme3";
+                       label = "nvme0";
                        reg = <3>;
                        retain-state-shutdown;
                        default-state = "keep";
diff --git a/src/arm/aspeed/aspeed-bmc-ibm-system1.dts b/src/arm/aspeed/aspeed-bmc-ibm-system1.dts
new file mode 100644 (file)
index 0000000..dcbc163
--- /dev/null
@@ -0,0 +1,1623 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// Copyright 2023 IBM Corp.
+/dts-v1/;
+
+#include "aspeed-g6.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/i2c/i2c.h>
+#include <dt-bindings/leds/leds-pca955x.h>
+
+/ {
+       model = "System1";
+       compatible = "ibm,system1-bmc", "aspeed,ast2600";
+
+       aliases {
+               i2c16 = &i2c8mux1chn0;
+               i2c17 = &i2c8mux1chn1;
+               i2c18 = &i2c8mux1chn2;
+               i2c19 = &i2c8mux1chn3;
+               i2c20 = &i2c8mux1chn4;
+               i2c21 = &i2c8mux1chn5;
+               i2c22 = &i2c8mux1chn6;
+               i2c23 = &i2c8mux1chn7;
+               i2c24 = &i2c3mux0chn0;
+               i2c25 = &i2c3mux0chn1;
+               i2c26 = &i2c3mux0chn2;
+               i2c27 = &i2c3mux0chn3;
+               i2c28 = &i2c3mux0chn4;
+               i2c29 = &i2c3mux0chn5;
+               i2c30 = &i2c3mux0chn6;
+               i2c31 = &i2c3mux0chn7;
+               i2c32 = &i2c6mux0chn0;
+               i2c33 = &i2c6mux0chn1;
+               i2c34 = &i2c6mux0chn2;
+               i2c35 = &i2c6mux0chn3;
+               i2c36 = &i2c6mux0chn4;
+               i2c37 = &i2c6mux0chn5;
+               i2c38 = &i2c6mux0chn6;
+               i2c39 = &i2c6mux0chn7;
+               i2c40 = &i2c7mux0chn0;
+               i2c41 = &i2c7mux0chn1;
+               i2c42 = &i2c7mux0chn2;
+               i2c43 = &i2c7mux0chn3;
+               i2c44 = &i2c7mux0chn4;
+               i2c45 = &i2c7mux0chn5;
+               i2c46 = &i2c7mux0chn6;
+               i2c47 = &i2c7mux0chn7;
+               i2c48 = &i2c8mux0chn0;
+               i2c49 = &i2c8mux0chn1;
+               i2c50 = &i2c8mux0chn2;
+               i2c51 = &i2c8mux0chn3;
+               i2c52 = &i2c8mux0chn4;
+               i2c53 = &i2c8mux0chn5;
+               i2c54 = &i2c8mux0chn6;
+               i2c55 = &i2c8mux0chn7;
+               i2c56 = &i2c14mux0chn0;
+               i2c57 = &i2c14mux0chn1;
+               i2c58 = &i2c14mux0chn2;
+               i2c59 = &i2c14mux0chn3;
+               i2c60 = &i2c14mux0chn4;
+               i2c61 = &i2c14mux0chn5;
+               i2c62 = &i2c14mux0chn6;
+               i2c63 = &i2c14mux0chn7;
+               i2c64 = &i2c15mux0chn0;
+               i2c65 = &i2c15mux0chn1;
+               i2c66 = &i2c15mux0chn2;
+               i2c67 = &i2c15mux0chn3;
+               i2c68 = &i2c15mux0chn4;
+               i2c69 = &i2c15mux0chn5;
+               i2c70 = &i2c15mux0chn6;
+               i2c71 = &i2c15mux0chn7;
+       };
+
+       chosen {
+               stdout-path = "uart5:115200n8";
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x40000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               eventlog: tcg-event-log@b3d00000 {
+                       no-map;
+                       reg = <0xb3d00000 0x100000>;
+               };
+
+               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 {
+                       no-map;
+                       reg = <0xb4000000 0x04000000>; /* 64M */
+               };
+
+               /* VGA region is dictated by hardware strapping */
+               vga_memory: region@bf000000 {
+                       no-map;
+                       compatible = "shared-dma-pool";
+                       reg = <0xbf000000 0x01000000>;  /* 16M */
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       gpios = <&gpio0 ASPEED_GPIO(L, 7) GPIO_ACTIVE_HIGH>;
+               };
+
+               led-1 {
+                       gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_HIGH>;
+               };
+
+               led-2 {
+                       gpios = <&gpio0 ASPEED_GPIO(S, 6) GPIO_ACTIVE_HIGH>;
+               };
+
+               led-3 {
+                       gpios = <&gpio0 ASPEED_GPIO(S, 7) GPIO_ACTIVE_HIGH>;
+               };
+
+               led-4 {
+                       gpios = <&pca3 5 GPIO_ACTIVE_LOW>;
+               };
+
+               led-5 {
+                       gpios = <&pca3 6 GPIO_ACTIVE_LOW>;
+               };
+
+               led-6 {
+                       gpios = <&pca3 7 GPIO_ACTIVE_LOW>;
+               };
+
+               led-7 {
+                       gpios = <&pca3 8 GPIO_ACTIVE_LOW>;
+               };
+
+               led-8 {
+                       gpios = <&pca3 9 GPIO_ACTIVE_LOW>;
+               };
+
+               led-9 {
+                       gpios = <&pca3 10 GPIO_ACTIVE_LOW>;
+               };
+
+               led-a {
+                       gpios = <&pca3 11 GPIO_ACTIVE_LOW>;
+               };
+
+               led-b {
+                       gpios = <&pca4 4 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-c {
+                       gpios = <&pca4 5 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-d {
+                       gpios = <&pca4 6 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-e {
+                       gpios = <&pca4 7 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               poll-interval = <1000>;
+
+               event-nvme0-presence {
+                       label = "nvme0-presence";
+                       gpios = <&pca4 0 GPIO_ACTIVE_LOW>;
+                       linux,code = <0>;
+               };
+
+               event-nvme1-presence {
+                       label = "nvme1-presence";
+                       gpios = <&pca4 1 GPIO_ACTIVE_LOW>;
+                       linux,code = <1>;
+               };
+
+               event-nvme2-presence {
+                       label = "nvme2-presence";
+                       gpios = <&pca4 2 GPIO_ACTIVE_LOW>;
+                       linux,code = <2>;
+               };
+
+               event-nvme3-presence {
+                       label = "nvme3-presence";
+                       gpios = <&pca4 3 GPIO_ACTIVE_LOW>;
+                       linux,code = <3>;
+               };
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&p12v_vd 0>, <&p5v_aux_vd 0>,
+                       <&p5v_bmc_aux_vd 0>, <&p3v3_aux_vd 0>,
+                       <&p3v3_bmc_aux_vd 0>, <&p1v8_bmc_aux_vd 0>,
+                       <&adc1 4>, <&adc0 2>, <&adc1 0>,
+                       <&p2v5_aux_vd 0>, <&adc1 7>;
+       };
+
+       p12v_vd: voltage-divider1 {
+               compatible = "voltage-divider";
+               io-channels = <&adc1 3>;
+               #io-channel-cells = <1>;
+
+               /*
+                * Scale the system voltage by 1127/127 to fit the ADC range.
+                * Use small nominator to prevent integer overflow.
+                */
+               output-ohms = <15>;
+               full-ohms = <133>;
+       };
+
+       p5v_aux_vd: voltage-divider2 {
+               compatible = "voltage-divider";
+               io-channels = <&adc1 5>;
+               #io-channel-cells = <1>;
+
+               /*
+                * Scale the system voltage by 1365/365 to fit the ADC range.
+                * Use small nominator to prevent integer overflow.
+                */
+               output-ohms = <50>;
+               full-ohms = <187>;
+       };
+
+       p5v_bmc_aux_vd: voltage-divider3 {
+               compatible = "voltage-divider";
+               io-channels = <&adc0 3>;
+               #io-channel-cells = <1>;
+
+               /*
+                * Scale the system voltage by 1365/365 to fit the ADC range.
+                * Use small nominator to prevent integer overflow.
+                */
+               output-ohms = <50>;
+               full-ohms = <187>;
+       };
+
+       p3v3_aux_vd: voltage-divider4 {
+               compatible = "voltage-divider";
+               io-channels = <&adc1 2>;
+               #io-channel-cells = <1>;
+
+               /*
+                * Scale the system voltage by 1698/698 to fit the ADC range.
+                * Use small nominator to prevent integer overflow.
+                */
+               output-ohms = <14>;
+               full-ohms = <34>;
+       };
+
+       p3v3_bmc_aux_vd: voltage-divider5 {
+               compatible = "voltage-divider";
+               io-channels = <&adc0 7>;
+               #io-channel-cells = <1>;
+
+               /*
+                * Scale the system voltage by 1698/698 to fit the ADC range.
+                * Use small nominator to prevent integer overflow.
+                */
+               output-ohms = <14>;
+               full-ohms = <34>;
+       };
+
+       p1v8_bmc_aux_vd: voltage-divider6 {
+               compatible = "voltage-divider";
+               io-channels = <&adc0 6>;
+               #io-channel-cells = <1>;
+
+               /*
+                * Scale the system voltage by 4000/3000 to fit the ADC range.
+                * Use small nominator to prevent integer overflow.
+                */
+               output-ohms = <3>;
+               full-ohms = <4>;
+       };
+
+       p2v5_aux_vd: voltage-divider7 {
+               compatible = "voltage-divider";
+               io-channels = <&adc1 1>;
+               #io-channel-cells = <1>;
+
+               /*
+                * Scale the system voltage by 2100/1100 to fit the ADC range.
+                * Use small nominator to prevent integer overflow.
+                */
+               output-ohms = <11>;
+               full-ohms = <21>;
+       };
+
+       p1v8_bmc_aux: fixedregulator-p1v8-bmc-aux {
+               compatible = "regulator-fixed";
+               regulator-name = "p1v8_bmc_aux";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+};
+
+&adc0 {
+       status = "okay";
+       vref-supply = <&p1v8_bmc_aux>;
+
+       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 {
+       status = "okay";
+       vref-supply = <&p1v8_bmc_aux>;
+       aspeed,battery-sensing;
+
+       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-tpm-reset","","","",
+       /*C0-C7*/       "","","","","","","","",
+       /*D0-D7*/       "","","","","","","","",
+       /*E0-E7*/       "","","","","","","","",
+       /*F0-F7*/       "","","","","","","","",
+       /*G0-G7*/       "","","","","","","","",
+       /*H0-H7*/       "","","","","","","","",
+       /*I0-I7*/       "","","","","","","","",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","","","","bmc-ready",
+       /*M0-M7*/       "","","","","","","","",
+       /*N0-N7*/       "","","","","","","","",
+       /*O0-O7*/       "","","","","","","","",
+       /*P0-P7*/       "","","","","","","","bmc-hb",
+       /*Q0-Q7*/       "","","","","","","","",
+       /*R0-R7*/       "","","","","","","","",
+       /*S0-S7*/       "","","","","","","rear-enc-fault0","rear-enc-id0",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","","",
+       /*V0-V7*/       "","rtc-battery-voltage-read-enable","","power-chassis-control","","","","",
+       /*W0-W7*/       "","","","","","","","",
+       /*X0-X7*/       "","power-chassis-good","","","","","","",
+       /*Y0-Y7*/       "","","","","","","","",
+       /*Z0-Z7*/       "","","","","","","","";
+};
+
+&emmc_controller {
+       status = "okay";
+};
+
+&pinctrl_emmc_default {
+       bias-disable;
+};
+
+&emmc {
+       status = "okay";
+       clk-phase-mmc-hs200 = <180>, <180>;
+};
+
+&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>;
+};
+
+&i2c0 {
+       status = "okay";
+
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+
+       regulator@60 {
+               compatible = "maxim,max8952";
+               reg = <0x60>;
+
+               max8952,default-mode = <0>;
+               max8952,dvs-mode-microvolt = <1250000>, <1200000>,
+                                               <1050000>, <950000>;
+               max8952,sync-freq = <0>;
+               max8952,ramp-speed = <0>;
+
+               regulator-name = "VR_v77_1v4";
+               regulator-min-microvolt = <770000>;
+               regulator-max-microvolt = <1400000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&i2c1 {
+       status = "okay";
+
+       regulator@42 {
+               compatible = "infineon,ir38263";
+               reg = <0x42>;
+       };
+
+       led-controller@60 {
+               compatible = "nxp,pca9552";
+               reg = <0x60>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       label = "nic1-perst";
+                       reg = <0>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       label = "bmc-perst";
+                       reg = <1>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@2 {
+                       label = "reset-M2-SSD1-2-perst";
+                       reg = <2>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       label = "pcie-perst1";
+                       reg = <3>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       label = "pcie-perst2";
+                       reg = <4>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       label = "pcie-perst3";
+                       reg = <5>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       label = "pcie-perst4";
+                       reg = <6>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       label = "pcie-perst5";
+                       reg = <7>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       label = "pcie-perst6";
+                       reg = <8>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@9 {
+                       label = "pcie-perst7";
+                       reg = <9>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@10 {
+                       label = "pcie-perst8";
+                       reg = <10>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@11 {
+                       label = "PV-cp0-sw1stk4-perst";
+                       reg = <11>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@12 {
+                       label = "PV-cp0-sw1stk5-perst";
+                       reg = <12>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@13 {
+                       label = "pe-cp-drv0-perst";
+                       reg = <13>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@14 {
+                       label = "pe-cp-drv1-perst";
+                       reg = <14>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@15 {
+                       label = "lom-perst";
+                       reg = <15>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       gpio@74 {
+               compatible = "nxp,pca9539";
+               reg = <0x74>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+                       "PLUG_DETECT_PCIE_J101_N",
+                       "PLUG_DETECT_PCIE_J102_N",
+                       "PLUG_DETECT_PCIE_J103_N",
+                       "PLUG_DETECT_PCIE_J104_N",
+                       "PLUG_DETECT_PCIE_J105_N",
+                       "PLUG_DETECT_PCIE_J106_N",
+                       "PLUG_DETECT_PCIE_J107_N",
+                       "PLUG_DETECT_PCIE_J108_N",
+                       "PLUG_DETECT_M2_SSD1_N",
+                       "PLUG_DETECT_NIC1_N",
+                       "SEL_SMB_DIMM_CPU0",
+                       "presence-ps2",
+                       "presence-ps3",
+                       "", "",
+                       "PWRBRD_PLUG_DETECT2_N";
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       power-supply@58 {
+               compatible = "ibm,cffps";
+               reg = <0x58>;
+       };
+
+       power-supply@59 {
+               compatible = "ibm,cffps";
+               reg = <0x59>;
+       };
+
+       power-supply@5a {
+               compatible = "ibm,cffps";
+               reg = <0x5a>;
+       };
+
+       power-supply@5b {
+               compatible = "ibm,cffps";
+               reg = <0x5b>;
+       };
+};
+
+&i2c3 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9548";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c3mux0chn0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               i2c3mux0chn1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               i2c3mux0chn2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               i2c3mux0chn3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+
+               i2c3mux0chn4: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+               };
+
+               i2c3mux0chn5: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               i2c3mux0chn6: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+               };
+
+               i2c3mux0chn7: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+       };
+};
+
+&i2c4 {
+       status = "okay";
+};
+
+&i2c5 {
+       status = "okay";
+
+       regulator@42 {
+               compatible = "infineon,ir38263";
+               reg = <0x42>;
+       };
+
+       regulator@43 {
+               compatible = "infineon,ir38060";
+               reg = <0x43>;
+       };
+};
+
+&i2c6 {
+       status = "okay";
+
+       fan-controller@52 {
+               compatible = "maxim,max31785a";
+               reg = <0x52>;
+       };
+
+       fan-controller@54 {
+               compatible = "maxim,max31785a";
+               reg = <0x54>;
+       };
+
+       eeprom@55 {
+               compatible = "atmel,24c64";
+               reg = <0x55>;
+       };
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9548";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c6mux0chn0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               i2c6mux0chn1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               i2c6mux0chn2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               i2c6mux0chn3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+
+               i2c6mux0chn4: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+
+                       humidity-sensor@40 {
+                               compatible = "ti,hdc1080";
+                               reg = <0x40>;
+                       };
+
+                       temperature-sensor@48 {
+                               compatible = "ti,tmp275";
+                               reg = <0x48>;
+                       };
+
+                       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 {
+                                       label = "enclosure-id-led";
+                                       reg = <0>;
+                                       retain-state-shutdown;
+                                       default-state = "keep";
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@1 {
+                                       label = "attention-led";
+                                       reg = <1>;
+                                       retain-state-shutdown;
+                                       default-state = "keep";
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@2 {
+                                       label = "enclosure-fault-rollup-led";
+                                       reg = <2>;
+                                       retain-state-shutdown;
+                                       default-state = "keep";
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+
+                               led@3 {
+                                       label = "power-on-led";
+                                       reg = <3>;
+                                       retain-state-shutdown;
+                                       default-state = "keep";
+                                       type = <PCA955X_TYPE_LED>;
+                               };
+                       };
+
+                       temperature-sensor@76 {
+                               compatible = "infineon,dps310";
+                               reg = <0x76>;
+                       };
+               };
+
+               i2c6mux0chn5: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               i2c6mux0chn6: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+               };
+
+               i2c6mux0chn7: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+       };
+
+       pca3: gpio@74 {
+               compatible = "nxp,pca9539";
+               reg = <0x74>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       pca4: gpio@77 {
+               compatible = "nxp,pca9539";
+               reg = <0x77>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+                       "PE_NVMED0_EXP_PRSNT_N",
+                       "PE_NVMED1_EXP_PRSNT_N",
+                       "PE_NVMED2_EXP_PRSNT_N",
+                       "PE_NVMED3_EXP_PRSNT_N",
+                       "LED_FAULT_NVMED0",
+                       "LED_FAULT_NVMED1",
+                       "LED_FAULT_NVMED2",
+                       "LED_FAULT_NVMED3",
+                       "FAN0_PRESENCE_R_N",
+                       "FAN1_PRESENCE_R_N",
+                       "FAN2_PRESENCE_R_N",
+                       "FAN3_PRESENCE_R_N",
+                       "FAN4_PRESENCE_R_N",
+                       "FAN5_PRESENCE_N",
+                       "FAN6_PRESENCE_N",
+                       "";
+       };
+};
+
+&i2c7 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9548";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c7mux0chn0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               i2c7mux0chn1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               i2c7mux0chn2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               i2c7mux0chn3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+
+                       regulator@58 {
+                               compatible = "mps,mp2973";
+                               reg = <0x58>;
+                       };
+               };
+
+               i2c7mux0chn4: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+               };
+
+               i2c7mux0chn5: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+
+                       regulator@40 {
+                               compatible = "infineon,tda38640";
+                               reg = <0x40>;
+                       };
+               };
+
+               i2c7mux0chn6: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+               };
+
+               i2c7mux0chn7: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+       };
+};
+
+&i2c8 {
+       status = "okay";
+
+       i2c-mux@71 {
+               compatible = "nxp,pca9548";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c8mux0chn0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       regulator@58 {
+                               compatible = "mps,mp2971";
+                               reg = <0x58>;
+                       };
+               };
+
+               i2c8mux0chn1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       regulator@40 {
+                               compatible = "infineon,tda38640";
+                               reg = <0x40>;
+                       };
+
+                       regulator@41 {
+                               compatible = "infineon,tda38640";
+                               reg = <0x41>;
+                       };
+
+                       regulator@58 {
+                               compatible = "mps,mp2971";
+                               reg = <0x58>;
+                       };
+
+                       regulator@5b {
+                               compatible = "mps,mp2971";
+                               reg = <0x5b>;
+                       };
+               };
+
+               i2c8mux0chn2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               i2c8mux0chn3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+
+               i2c8mux0chn4: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+
+                       i2c-mux@70 {
+                               compatible = "nxp,pca9548";
+                               reg = <0x70>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               i2c-mux-idle-disconnect;
+
+                               i2c8mux1chn0: i2c@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0>;
+                               };
+
+                               i2c8mux1chn1: i2c@1 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <1>;
+                               };
+
+                               i2c8mux1chn2: i2c@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <2>;
+                               };
+
+                               i2c8mux1chn3: i2c@3 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <3>;
+                               };
+
+                               i2c8mux1chn4: i2c@4 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <4>;
+                               };
+
+                               i2c8mux1chn5: i2c@5 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <5>;
+                               };
+
+                               i2c8mux1chn6: i2c@6 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <6>;
+                               };
+
+                               i2c8mux1chn7: i2c@7 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <7>;
+                               };
+                       };
+               };
+
+               i2c8mux0chn5: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               i2c8mux0chn6: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+
+                       temperature-sensor@4c {
+                               compatible = "ti,tmp423";
+                               reg = <0x4c>;
+                       };
+               };
+
+               i2c8mux0chn7: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+
+                       regulator@40 {
+                               compatible = "infineon,ir38060";
+                               reg = <0x40>;
+                       };
+               };
+       };
+};
+
+&i2c9 {
+       status = "okay";
+
+       regulator@40 {
+               compatible = "infineon,ir38263";
+               reg = <0x40>;
+       };
+
+       regulator@41 {
+               compatible = "infineon,ir38263";
+               reg = <0x41>;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+
+       regulator@60 {
+               compatible = "maxim,max8952";
+               reg = <0x60>;
+
+               max8952,default-mode = <0>;
+               max8952,dvs-mode-microvolt = <1250000>, <1200000>,
+                                               <1050000>, <950000>;
+               max8952,sync-freq = <0>;
+               max8952,ramp-speed = <0>;
+
+               regulator-name = "VR_v77_1v4";
+               regulator-min-microvolt = <770000>;
+               regulator-max-microvolt = <1400000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&i2c11 {
+       status = "okay";
+
+       tpm@2e {
+               compatible = "tcg,tpm-tis-i2c";
+               reg = <0x2e>;
+               memory-region = <&eventlog>;
+       };
+};
+
+&i2c12 {
+       status = "okay";
+};
+
+&i2c13 {
+       status = "okay";
+
+       regulator@41 {
+               compatible = "infineon,ir38263";
+               reg = <0x41>;
+       };
+
+       led-controller@61 {
+               compatible = "nxp,pca9552";
+               reg = <0x61>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               led@0 {
+                       label = "efuse-12v-slots";
+                       reg = <0>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@1 {
+                       label = "efuse-3p3v-slot";
+                       reg = <1>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@3 {
+                       label = "nic2-pert";
+                       reg = <3>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@4 {
+                       label = "pcie-perst9";
+                       reg = <4>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@5 {
+                       label = "pcie-perst10";
+                       reg = <5>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@6 {
+                       label = "pcie-perst11";
+                       reg = <6>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@7 {
+                       label = "pcie-perst12";
+                       reg = <7>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@8 {
+                       label = "pcie-perst13";
+                       reg = <8>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@9 {
+                       label = "pcie-perst14";
+                       reg = <9>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@10 {
+                       label = "pcie-perst15";
+                       reg = <10>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@11 {
+                       label = "pcie-perst16";
+                       reg = <11>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@12 {
+                       label = "PV-cp1-sw1stk4-perst";
+                       reg = <12>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@13 {
+                       label = "PV-cp1-sw1stk5-perst";
+                       reg = <13>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@14 {
+                       label = "pe-cp-drv2-perst";
+                       reg = <14>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+
+               led@15 {
+                       label = "pe-cp-drv3-perst";
+                       reg = <15>;
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       type = <PCA955X_TYPE_LED>;
+               };
+       };
+
+       gpio@75 {
+               compatible = "nxp,pca9539";
+               reg = <0x75>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+                       "PLUG_DETECT_PCIE_J109_N",
+                       "PLUG_DETECT_PCIE_J110_N",
+                       "PLUG_DETECT_PCIE_J111_N",
+                       "PLUG_DETECT_PCIE_J112_N",
+                       "PLUG_DETECT_PCIE_J113_N",
+                       "PLUG_DETECT_PCIE_J114_N",
+                       "PLUG_DETECT_PCIE_J115_N",
+                       "PLUG_DETECT_PCIE_J116_N",
+                       "PLUG_DETECT_M2_SSD2_N",
+                       "PLUG_DETECT_NIC2_N",
+                       "SEL_SMB_DIMM_CPU1",
+                       "presence-ps0",
+                       "presence-ps1",
+                       "", "",
+                       "PWRBRD_PLUG_DETECT1_N";
+       };
+
+       gpio@76 {
+               compatible = "nxp,pca9539";
+               reg = <0x76>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+                       "SW1_BOOTRCVRYB1_N",
+                       "SW1_BOOTRCVRYB0_N",
+                       "SW2_BOOTRCVRYB1_N",
+                       "SW2_BOOTRCVRYB0_N",
+                       "SW3_4_BOOTRCVRYB1_N",
+                       "SW3_4_BOOTRCVRYB0_N",
+                       "SW5_BOOTRCVRYB1_N",
+                       "SW5_BOOTRCVRYB0_N",
+                       "SW6_BOOTRCVRYB1_N",
+                       "SW6_BOOTRCVRYB0_N",
+                       "SW1_RESET_N",
+                       "SW3_RESET_N",
+                       "SW4_RESET_N",
+                       "SW2_RESET_N",
+                       "SW5_RESET_N",
+                       "SW6_RESET_N";
+       };
+};
+
+&i2c14 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9548";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c14mux0chn0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               i2c14mux0chn1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               i2c14mux0chn2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               i2c14mux0chn3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+
+                       regulator@58 {
+                               compatible = "mps,mp2973";
+                               reg = <0x58>;
+                       };
+               };
+
+               i2c14mux0chn4: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+               };
+
+               i2c14mux0chn5: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+
+                       regulator@40 {
+                               compatible = "infineon,tda38640";
+                               reg = <0x40>;
+                       };
+               };
+
+               i2c14mux0chn6: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+               };
+
+               i2c14mux0chn7: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+       };
+};
+
+&i2c15 {
+       status = "okay";
+
+       i2c-mux@71 {
+               compatible = "nxp,pca9548";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c15mux0chn0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       regulator@58 {
+                               compatible = "mps,mp2971";
+                               reg = <0x58>;
+                       };
+               };
+
+               i2c15mux0chn1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       regulator@40 {
+                               compatible = "infineon,tda38640";
+                               reg = <0x40>;
+                       };
+
+                       regulator@41 {
+                               compatible = "infineon,tda38640";
+                               reg = <0x41>;
+                       };
+
+                       regulator@58 {
+                               compatible = "mps,mp2971";
+                               reg = <0x58>;
+                       };
+
+                       regulator@5b {
+                               compatible = "mps,mp2971";
+                               reg = <0x5b>;
+                       };
+               };
+
+               i2c15mux0chn2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               i2c15mux0chn3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+
+               i2c15mux0chn4: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+
+                       i2c-mux@70 {
+                               compatible = "nxp,pca9548";
+                               reg = <0x70>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               i2c-mux-idle-disconnect;
+
+                               i2c15mux1chn0: i2c@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0>;
+                               };
+
+                               i2c15mux1chn1: i2c@1 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <1>;
+                               };
+
+                               i2c15mux1chn2: i2c@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <2>;
+                               };
+
+                               i2c15mux1chn3: i2c@3 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <3>;
+                               };
+
+                               i2c15mux1chn4: i2c@4 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <4>;
+                               };
+
+                               i2c15mux1chn5: i2c@5 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <5>;
+                               };
+
+                               i2c15mux1chn6: i2c@6 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <6>;
+                               };
+
+                               i2c15mux1chn7: i2c@7 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <7>;
+                               };
+                       };
+               };
+
+               i2c15mux0chn5: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               i2c15mux0chn6: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+
+                       temperature-sensor@4c {
+                               compatible = "ti,tmp423";
+                               reg = <0x4c>;
+                       };
+               };
+
+               i2c15mux0chn7: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+
+                       regulator@40 {
+                               compatible = "infineon,ir38060";
+                               reg = <0x40>;
+                       };
+
+                       temperature-sensor@4c {
+                               compatible = "ti,tmp423";
+                               reg = <0x4c>;
+                       };
+               };
+       };
+};
index 29f94696d8b189cba0113e7a65bbb25611358710..7fb421153596b7d02d1e476217581890464655c4 100644 (file)
                        };
 
                        fsim0: fsi@1e79b000 {
+                               #interrupt-cells = <1>;
                                compatible = "aspeed,ast2600-fsi-master", "fsi-master";
                                reg = <0x1e79b000 0x94>;
                                interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_fsi1_default>;
                                clocks = <&syscon ASPEED_CLK_GATE_FSICLK>;
+                               interrupt-controller;
                                status = "disabled";
                        };
 
                        fsim1: fsi@1e79b100 {
+                               #interrupt-cells = <1>;
                                compatible = "aspeed,ast2600-fsi-master", "fsi-master";
                                reg = <0x1e79b100 0x94>;
                                interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_fsi2_default>;
                                clocks = <&syscon ASPEED_CLK_GATE_FSICLK>;
+                               interrupt-controller;
                                status = "disabled";
                        };
 
index cc466910bb52f98971baf54551f822ce06b24510..07ce3b2bc62a3b91692b6e230a59f7ad5c878837 100644 (file)
                };
 
                fsi_hub0: hub@3400 {
+                       #interrupt-cells = <1>;
                        compatible = "fsi-master-hub";
                        reg = <0x3400 0x400>;
                        #address-cells = <2>;
                        #size-cells = <0>;
+                       interrupt-controller;
                };
        };
 };
index d5f8823230db9dd1332c8ffbb5cb76e7fe71b506..353bb50ce5425c9763f1a1f9d067bf1055ce4bb2 100644 (file)
@@ -5,6 +5,7 @@
 #include "bcm283x-rpi-led-deprecated.dtsi"
 #include "bcm283x-rpi-usb-peripheral.dtsi"
 #include "bcm283x-rpi-wifi-bt.dtsi"
+#include <dt-bindings/leds/common.h>
 
 / {
        compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
                stdout-path = "serial1:115200n8";
        };
 
+       cam1_reg: regulator-cam1 {
+               compatible = "regulator-fixed";
+               regulator-name = "cam1-reg";
+               enable-active-high;
+               gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
+       };
+
        sd_io_1v8_reg: regulator-sd-io-1v8 {
                compatible = "regulator-gpio";
                regulator-name = "vdd-sd-io";
        phy1: ethernet-phy@1 {
                /* No PHY interrupt */
                reg = <0x1>;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* LED1 */
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+
+                       /* LED2 */
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_AMBER>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+               };
        };
 };
 
index 5a2869a18bd555cbacdb92c5a7cdee18cf6ef842..ca9be91b4f365475610bf2f50ef4a44f94b8310e 100644 (file)
@@ -30,6 +30,7 @@
 
 &genet_mdio {
        clock-frequency = <1950000>;
+       /delete-node/ leds;
 };
 
 &led_pwr {
index d7ba02f586d30f6e37b4b2eeb4bb4860a6eee775..6bc77dd48c0d9b26b19968cb6f337fb8c03ab421 100644 (file)
@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /dts-v1/;
+#include <dt-bindings/leds/common.h>
 #include "bcm2711-rpi-cm4.dtsi"
 #include "bcm283x-rpi-led-deprecated.dtsi"
 #include "bcm283x-rpi-usb-host.dtsi"
        status = "okay";
 };
 
+&i2c0_1 {
+       rtc@51 {
+               /* Attention: An alarm resets the machine */
+               compatible = "nxp,pcf85063a";
+               reg = <0x51>;
+               quartz-load-femtofarads = <7000>;
+       };
+};
+
+&phy1 {
+       leds {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* LED2 */
+               led@1 {
+                       reg = <1>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_LAN;
+                       default-state = "keep";
+               };
+
+               /* LED3 */
+               led@2 {
+                       reg = <2>;
+                       color = <LED_COLOR_ID_AMBER>;
+                       function = LED_FUNCTION_LAN;
+                       default-state = "keep";
+               };
+       };
+};
+
 &led_act {
        gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
 };
index d233a191c139362d36e581ed7b9222b0ebee3189..6bf4241fe3b737a9a397fcadc2d2b1d51df08473 100644 (file)
                pcie0 = &pcie0;
                blconfig = &blconfig;
        };
-};
 
-&firmware {
-       firmware_clocks: clocks {
-               compatible = "raspberrypi,firmware-clocks";
-               #clock-cells = <1>;
+       i2c0mux: i2c-mux0 {
+               compatible = "i2c-mux-pinctrl";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c-parent = <&i2c0>;
+
+               pinctrl-names = "i2c0", "i2c0-vc";
+               pinctrl-0 = <&i2c0_gpio0>;
+               pinctrl-1 = <&i2c0_gpio44>;
+
+               i2c0_0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c0_1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
        };
+};
 
+&firmware {
        expgpio: gpio {
                compatible = "raspberrypi,firmware-gpio";
                gpio-controller;
        clocks = <&firmware_clocks 4>;
 };
 
+&i2c0 {
+       /delete-property/ pinctrl-names;
+       /delete-property/ pinctrl-0;
+};
+
 &rmem {
        /*
         * RPi4's co-processor will copy the board's bootloader configuration
index 22c7f1561344ed57978b4d91d6cdff6a6a84e9ff..e4e42af21ef3a4399fa697a4359b707f4189c484 100644 (file)
                };
        };
 
-       arm-pmu {
-               compatible = "arm,cortex-a72-pmu", "arm,armv8-pmuv3";
+       pmu {
+               compatible = "arm,cortex-a72-pmu";
                interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
                        <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
                        <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
        #address-cells = <2>;
 };
 
+&csi0 {
+       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&csi1 {
+       interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+};
+
 &cma {
        /*
         * arm64 reserves the CMA by default somewhere in ZONE_DMA32,
index 4e7b4a592da7c3284358222b92781af624d90ec4..8b3c21d9f333a16ed94d3f84ea55c54adb9756b3 100644 (file)
@@ -7,13 +7,6 @@
 
 #include <dt-bindings/power/raspberrypi-power.h>
 
-&firmware {
-       firmware_clocks: clocks {
-               compatible = "raspberrypi,firmware-clocks";
-               #clock-cells = <1>;
-       };
-};
-
 &hdmi {
        clocks = <&firmware_clocks 9>,
                 <&firmware_clocks 13>;
index f0acc9390f317c16d7fa148be4861a7eb2269d72..e9bf41b9f5c1814ae79f7b2308db885bf20d50ca 100644 (file)
@@ -4,11 +4,12 @@
        soc {
                firmware: firmware {
                        compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-
                        mboxes = <&mailbox>;
-                       dma-ranges;
+
+                       firmware_clocks: clocks {
+                               compatible = "raspberrypi,firmware-clocks";
+                               #clock-cells = <1>;
+                       };
                };
 
                power: power {
        };
 };
 
+&csi0 {
+       clocks = <&clocks BCM2835_CLOCK_CAM0>,
+                <&firmware_clocks 4>;
+       clock-names = "lp", "vpu";
+       power-domains = <&power RPI_POWER_DOMAIN_UNICAM0>;
+};
+
+&csi1 {
+       clocks = <&clocks BCM2835_CLOCK_CAM1>,
+                <&firmware_clocks 4>;
+       clock-names = "lp", "vpu";
+       power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>;
+};
+
 &gpio {
        gpioout: gpioout {
                brcm,pins = <6>;
index 2ca8a2505a4db87fc6412028c8205b736b29f32f..69b0919f1324abd5d875c70936de1b7f22e3e66d 100644 (file)
                        status = "disabled";
                };
 
+               csi0: csi@7e800000 {
+                       compatible = "brcm,bcm2835-unicam";
+                       reg = <0x7e800000 0x800>,
+                             <0x7e802000 0x4>;
+                       reg-names = "unicam", "cmi";
+                       interrupts = <2 6>;
+                       brcm,num-data-lanes = <2>;
+                       status = "disabled";
+                       port {
+                       };
+               };
+
+               csi1: csi@7e801000 {
+                       compatible = "brcm,bcm2835-unicam";
+                       reg = <0x7e801000 0x800>,
+                             <0x7e802004 0x4>;
+                       reg-names = "unicam", "cmi";
+                       interrupts = <2 7>;
+                       brcm,num-data-lanes = <4>;
+                       status = "disabled";
+                       port {
+                       };
+               };
+
                i2c1: i2c@7e804000 {
                        compatible = "brcm,bcm2835-i2c";
                        reg = <0x7e804000 0x1000>;
diff --git a/src/arm/broadcom/bcm4709-asus-rt-ac3200.dts b/src/arm/broadcom/bcm4709-asus-rt-ac3200.dts
new file mode 100644 (file)
index 0000000..53cb0c5
--- /dev/null
@@ -0,0 +1,150 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Author: Tom Brautaset <tbrautaset@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "bcm4709.dtsi"
+#include "bcm5301x-nand-cs0-bch8.dtsi"
+
+#include <dt-bindings/leds/common.h>
+
+/ {
+       compatible = "asus,rt-ac3200", "brcm,bcm4709", "brcm,bcm4708";
+       model = "ASUS RT-AC3200";
+
+       memory@0 {
+               reg = <0x00000000 0x08000000>,
+                     <0x88000000 0x08000000>;
+               device_type = "memory";
+       };
+
+       nvram@1c080000 {
+               compatible = "brcm,nvram";
+               reg = <0x1c080000 0x00180000>;
+
+               et0macaddr: et0macaddr {
+                       #nvmem-cell-cells = <1>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               button-reset {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+               };
+
+               button-wifi {
+                       label = "Wi-Fi";
+                       linux,code = <KEY_RFKILL>;
+                       gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+               };
+
+               button-wps {
+                       label = "WPS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-power {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-on";
+               };
+
+               led-wan-red {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_WAN;
+                       gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-wps {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_WPS;
+                       gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&gmac0 {
+       nvmem-cells = <&et0macaddr 0>;
+       nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+       nvmem-cells = <&et0macaddr 1>;
+       nvmem-cell-names = "mac-address";
+};
+
+&gmac2 {
+       nvmem-cells = <&et0macaddr 2>;
+       nvmem-cell-names = "mac-address";
+};
+
+&nandcs {
+       partitions {
+               compatible = "fixed-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       reg = <0x00000000 0x00080000>;
+                       label = "boot";
+                       read-only;
+               };
+
+               partition@80000 {
+                       reg = <0x00080000 0x00180000>;
+                       label = "nvram";
+               };
+
+               partition@200000 {
+                       compatible = "brcm,trx";
+                       reg = <0x00200000 0x07e00000>;
+                       label = "firmware";
+               };
+       };
+};
+
+&srab {
+       status = "okay";
+
+       ports {
+               port@0 {
+                       label = "wan";
+               };
+
+               port@1 {
+                       label = "lan1";
+               };
+
+               port@2 {
+                       label = "lan2";
+               };
+
+               port@3 {
+                       label = "lan3";
+               };
+
+               port@4 {
+                       label = "lan4";
+               };
+       };
+};
+
+&usb2 {
+       vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+};
+
+&usb3_phy {
+       status = "okay";
+};
index 5f089307cd8c19f8f02f41d3e3f099ad1c6bd1a7..1655ac95769c0895e826058fab3afd50b34097a9 100644 (file)
 
        nvram@1c080000 {
                et0macaddr: et0macaddr {
+                       #nvmem-cell-cells = <1>;
                };
        };
 };
 
 &gmac0 {
-       nvmem-cells = <&et0macaddr>;
+       nvmem-cells = <&et0macaddr 0>;
+       nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+       nvmem-cells = <&et0macaddr 1>;
+       nvmem-cell-names = "mac-address";
+};
+
+&gmac2 {
+       nvmem-cells = <&et0macaddr 2>;
        nvmem-cell-names = "mac-address";
 };
index 09cefce27fb10786c4f8a4b7475b130fed9edfc9..2cfaaabc7a6a827c03b50be097627d972141ab40 100644 (file)
@@ -6,15 +6,13 @@
 #include "bcm47094.dtsi"
 #include "bcm5301x-nand-cs0-bch8.dtsi"
 
-/ {
-       chosen {
-               bootargs = "earlycon";
-       };
+#include <dt-bindings/leds/common.h>
 
+/ {
        memory@0 {
-               device_type = "memory";
                reg = <0x00000000 0x08000000>,
                      <0x88000000 0x18000000>;
+               device_type = "memory";
        };
 
        nvram@1c080000 {
                reg = <0x1c080000 0x00180000>;
        };
 
-       leds {
-               compatible = "gpio-leds";
+       gpio-keys {
+               compatible = "gpio-keys";
 
-               led-power {
-                       label = "white:power";
-                       gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
-                       linux,default-trigger = "default-on";
+               button-led {
+                       label = "Backlight";
+                       linux,code = <KEY_BRIGHTNESS_ZERO>;
+                       gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
                };
 
-               led-wan-red {
-                       label = "red:wan";
-                       gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+               button-reset {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+               };
+
+               button-wifi {
+                       label = "Wi-Fi";
+                       linux,code = <KEY_RFKILL>;
+                       gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
                };
 
+               button-wps {
+                       label = "WPS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
                led-lan {
-                       label = "white:lan";
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_LAN;
                        gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
                };
 
+               led-power {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-on";
+               };
+
                led-usb2 {
-                       label = "white:usb2";
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_USB;
+                       function-enumerator = <1>;
                        gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
                        trigger-sources = <&ehci_port2>;
                        linux,default-trigger = "usbport";
                };
 
                led-usb3 {
-                       label = "white:usb3";
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_USB;
+                       function-enumerator = <2>;
                        gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
                        trigger-sources = <&ehci_port1>, <&xhci_port1>;
                        linux,default-trigger = "usbport";
                };
 
+               led-wan-red {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_WAN;
+                       gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+               };
+
                led-wps {
-                       label = "white:wps";
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_WPS;
                        gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
                };
        };
+};
 
-       gpio-keys {
-               compatible = "gpio-keys";
-
-               button-wps {
-                       label = "WPS";
-                       linux,code = <KEY_WPS_BUTTON>;
-                       gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
-               };
+&nandcs {
+       partitions {
+               compatible = "fixed-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
 
-               button-reset {
-                       label = "Reset";
-                       linux,code = <KEY_RESTART>;
-                       gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+               partition@0 {
+                       reg = <0x00000000 0x00080000>;
+                       label = "boot";
+                       read-only;
                };
 
-               button-wifi {
-                       label = "Wi-Fi";
-                       linux,code = <KEY_RFKILL>;
-                       gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+               partition@80000 {
+                       reg = <0x00080000 0x00180000>;
+                       label = "nvram";
                };
 
-               button-led {
-                       label = "Backlight";
-                       linux,code = <KEY_BRIGHTNESS_ZERO>;
-                       gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+               partition@200000 {
+                       compatible = "brcm,trx";
+                       reg = <0x00200000 0x07e00000>;
+                       label = "firmware";
                };
        };
 };
 
 &srab {
-       compatible = "brcm,bcm53012-srab", "brcm,bcm5301x-srab";
        status = "okay";
 
        ports {
 &usb3_phy {
        status = "okay";
 };
-
-&nandcs {
-       partitions {
-               compatible = "fixed-partitions";
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               partition@0 {
-                       label = "boot";
-                       reg = <0x00000000 0x00080000>;
-                       read-only;
-               };
-
-               partition@80000 {
-                       label = "nvram";
-                       reg = <0x00080000 0x00180000>;
-               };
-
-               partition@200000 {
-                       label = "firmware";
-                       reg = <0x00200000 0x07e00000>;
-                       compatible = "brcm,trx";
-               };
-       };
-};
diff --git a/src/arm/broadcom/bcm47094-asus-rt-ac5300.dts b/src/arm/broadcom/bcm47094-asus-rt-ac5300.dts
new file mode 100644 (file)
index 0000000..6c666dc
--- /dev/null
@@ -0,0 +1,156 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Author: Tom Brautaset <tbrautaset@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "bcm47094.dtsi"
+#include "bcm5301x-nand-cs0-bch8.dtsi"
+
+#include <dt-bindings/leds/common.h>
+
+/ {
+       compatible = "asus,rt-ac5300", "brcm,bcm47094", "brcm,bcm4708";
+       model = "ASUS RT-AC5300";
+
+       memory@0 {
+               reg = <0x00000000 0x08000000>,
+                     <0x88000000 0x18000000>;
+               device_type = "memory";
+       };
+
+       nvram@1c080000 {
+               compatible = "brcm,nvram";
+               reg = <0x1c080000 0x00180000>;
+
+               et1macaddr: et1macaddr {
+                       #nvmem-cell-cells = <1>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               button-reset {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+               };
+
+               button-wifi {
+                       label = "Wi-Fi";
+                       linux,code = <KEY_RFKILL>;
+                       gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
+               };
+
+               button-wps {
+                       label = "WPS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-lan {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_LAN;
+                       gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
+               };
+
+               led-power {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-on";
+               };
+
+               led-wan-red {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_WAN;
+                       gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-wps {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_WPS;
+                       gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&gmac0 {
+       nvmem-cells = <&et1macaddr 0>;
+       nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+       nvmem-cells = <&et1macaddr 1>;
+       nvmem-cell-names = "mac-address";
+};
+
+&gmac2 {
+       nvmem-cells = <&et1macaddr 2>;
+       nvmem-cell-names = "mac-address";
+};
+
+&nandcs {
+       partitions {
+               compatible = "fixed-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       reg = <0x00000000 0x00080000>;
+                       label = "boot";
+                       read-only;
+               };
+
+               partition@80000 {
+                       reg = <0x00080000 0x00180000>;
+                       label = "nvram";
+               };
+
+               partition@200000 {
+                       compatible = "brcm,trx";
+                       reg = <0x00200000 0x07e00000>;
+                       label = "firmware";
+               };
+       };
+};
+
+&srab {
+       status = "okay";
+
+       ports {
+               port@0 {
+                       label = "lan4";
+               };
+
+               port@1 {
+                       label = "lan3";
+               };
+
+               port@2 {
+                       label = "lan2";
+               };
+
+               port@3 {
+                       label = "lan1";
+               };
+
+               port@4 {
+                       label = "wan";
+               };
+       };
+};
+
+&usb2 {
+       vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+};
+
+&usb3_phy {
+       status = "okay";
+};
index fd344b55087e29f4fc21612044965f65840dac27..a197f447fd97f8704235e629753156ec386f698e 100644 (file)
 
        nvram@1c080000 {
                et1macaddr: et1macaddr {
+                       #nvmem-cell-cells = <1>;
                };
        };
 
        switch {
                compatible = "realtek,rtl8365mb";
-               /* 7 = MDIO (has input reads), 6 = MDC (clock, output only) */
                mdc-gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
                mdio-gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
                reset-gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
                realtek,disable-leds;
                dsa,member = <1 0>;
 
+               mdio {
+                       compatible = "realtek,smi-mdio";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       ethphy0: ethernet-phy@0 {
+                               reg = <0>;
+                       };
+
+                       ethphy1: ethernet-phy@1 {
+                               reg = <1>;
+                       };
+
+                       ethphy2: ethernet-phy@2 {
+                               reg = <2>;
+                       };
+
+                       ethphy3: ethernet-phy@3 {
+                               reg = <3>;
+                       };
+               };
+
                ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
                                };
                        };
                };
+       };
+};
 
-               mdio {
-                       compatible = "realtek,smi-mdio";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       ethphy0: ethernet-phy@0 {
-                               reg = <0>;
-                       };
-
-                       ethphy1: ethernet-phy@1 {
-                               reg = <1>;
-                       };
+&gmac0 {
+       status = "disabled";
+};
 
-                       ethphy2: ethernet-phy@2 {
-                               reg = <2>;
-                       };
+&gmac1 {
+       nvmem-cells = <&et1macaddr 0>;
+       nvmem-cell-names = "mac-address";
+};
 
-                       ethphy3: ethernet-phy@3 {
-                               reg = <3>;
-                       };
-               };
-       };
+&gmac2 {
+       nvmem-cells = <&et1macaddr 1>;
+       nvmem-cell-names = "mac-address";
 };
 
 &srab {
                };
        };
 };
-
-&gmac0 {
-       status = "disabled";
-};
-
-&gmac1 {
-       nvmem-cells = <&et1macaddr>;
-       nvmem-cell-names = "mac-address";
-};
index 8c1d5c9fa4831d457a8bedc88132623630ab53e2..2ff7be8f1382bf0bdf015db1fc8b3a5d1195452c 100644 (file)
 
        tegra_ac97: ac97@70002000 {
                status = "okay";
-               nvidia,codec-reset-gpio =
+               nvidia,codec-reset-gpios =
                        <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
-               nvidia,codec-sync-gpio =
+               nvidia,codec-sync-gpios =
                        <&gpio TEGRA_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
        };
 
index afb922bd79a713c39a32a76ac9188d5d900f8122..1408e1e007596e6ce5fda3620e1c67c64b8037c4 100644 (file)
                                        0x00000000 0x00000000 0x00000000 0x00000000>;
                        };
                };
+
+               emc-tables@1 {
+                       nvidia,ram-code = <0x1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       emc-table@166500 {
+                               reg = <166500>;
+                               compatible = "nvidia,tegra20-emc-table";
+                               clock-frequency = <166500>;
+                               nvidia,emc-registers = <0x0000000a 0x00000016
+                                       0x00000008 0x00000003 0x00000004 0x00000004
+                                       0x00000002 0x0000000c 0x00000003 0x00000003
+                                       0x00000002 0x00000001 0x00000004 0x00000005
+                                       0x00000004 0x00000009 0x0000000d 0x000004df
+                                       0x00000000 0x00000003 0x00000003 0x00000003
+                                       0x00000003 0x00000001 0x0000000a 0x000000c8
+                                       0x00000003 0x00000006 0x00000004 0x00000008
+                                       0x00000002 0x00000000 0x00000000 0x00000002
+                                       0x00000000 0x00000000 0x00000083 0xe03b0323
+                                       0x007fe010 0x00001414 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000>;
+                       };
+
+                       emc-table@333000 {
+                               reg = <333000>;
+                               compatible = "nvidia,tegra20-emc-table";
+                               clock-frequency = <333000>;
+                               nvidia,emc-registers = <0x00000018 0x00000033
+                                       0x00000012 0x00000004 0x00000004 0x00000005
+                                       0x00000003 0x0000000c 0x00000006 0x00000006
+                                       0x00000003 0x00000001 0x00000004 0x00000005
+                                       0x00000004 0x00000009 0x0000000d 0x00000bff
+                                       0x00000000 0x00000003 0x00000003 0x00000006
+                                       0x00000006 0x00000001 0x00000011 0x000000c8
+                                       0x00000003 0x0000000e 0x00000007 0x00000008
+                                       0x00000002 0x00000000 0x00000000 0x00000002
+                                       0x00000000 0x00000000 0x00000083 0xf0440303
+                                       0x007fe010 0x00001414 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000>;
+                       };
+               };
        };
 
        usb@c5000000 {
index dd03e3860f97f901524570a89552adee135accce..13756d39fb7b9168706f23b9df6cb10026d43b6e 100644 (file)
                compatible = "ricoh,rc5t619";
                reg = <0x32>;
                interrupt-parent = <&gpio5>;
-               interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+               interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
                system-power-controller;
 
                regulators {
index 4e1bf080eaca012ae0d1f9e6e74696eaea41da28..dcc3c9d488a8835303069c57855437bea1df5eb5 100644 (file)
                compatible = "ricoh,rc5t619";
                reg = <0x32>;
                interrupt-parent = <&gpio4>;
-               interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
+               interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
                system-power-controller;
 
                regulators {
index abc9233c5a1b1a8c02c911f58d4c5df22a152d2e..31b3fc972abbfc585c1c65eb10e006c89561dce2 100644 (file)
                device_type = "memory";
                reg = <0xa0000000 0x08000000>; /* 128MB */
        };
+
+       usbotgphy: usbotgphy {
+               compatible = "usb-nop-xceiv";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbotgphy>;
+               reset-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>;
+               #phy-cells = <0>;
+       };
+
+       usbh2phy: usbh2phy {
+               compatible = "usb-nop-xceiv";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbh2phy>;
+               reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>;
+               #phy-cells = <0>;
+       };
 };
 
 &cspi1 {
                                MX27_PAD_NFWE_B__NFWE_B 0x0
                        >;
                };
+
+               pinctrl_usbotgphy: usbotgphygrp {
+                       fsl,pins = <
+                               MX27_PAD_USBH1_RCV__GPIO2_25            0x1 /* reset gpio */
+                       >;
+               };
+
+               pinctrl_usbotg: usbotggrp {
+                       fsl,pins = <
+                               MX27_PAD_USBOTG_CLK__USBOTG_CLK         0x0
+                               MX27_PAD_USBOTG_DIR__USBOTG_DIR         0x0
+                               MX27_PAD_USBOTG_NXT__USBOTG_NXT         0x0
+                               MX27_PAD_USBOTG_STP__USBOTG_STP         0x0
+                               MX27_PAD_USBOTG_DATA0__USBOTG_DATA0     0x0
+                               MX27_PAD_USBOTG_DATA1__USBOTG_DATA1     0x0
+                               MX27_PAD_USBOTG_DATA2__USBOTG_DATA2     0x0
+                               MX27_PAD_USBOTG_DATA3__USBOTG_DATA3     0x0
+                               MX27_PAD_USBOTG_DATA4__USBOTG_DATA4     0x0
+                               MX27_PAD_USBOTG_DATA5__USBOTG_DATA5     0x0
+                               MX27_PAD_USBOTG_DATA6__USBOTG_DATA6     0x0
+                               MX27_PAD_USBOTG_DATA7__USBOTG_DATA7     0x0
+                       >;
+               };
+
+               pinctrl_usbh2phy: usbh2phygrp {
+                       fsl,pins = <
+                               MX27_PAD_USBH1_SUSP__GPIO2_22           0x0 /* reset gpio */
+                       >;
+               };
+
+               pinctrl_usbh2: usbh2grp {
+                       fsl,pins = <
+                               MX27_PAD_USBH2_CLK__USBH2_CLK           0x0
+                               MX27_PAD_USBH2_DIR__USBH2_DIR           0x0
+                               MX27_PAD_USBH2_NXT__USBH2_NXT           0x0
+                               MX27_PAD_USBH2_STP__USBH2_STP           0x0
+                               MX27_PAD_CSPI2_SCLK__USBH2_DATA0        0x0
+                               MX27_PAD_CSPI2_MOSI__USBH2_DATA1        0x0
+                               MX27_PAD_CSPI2_MISO__USBH2_DATA2        0x0
+                               MX27_PAD_CSPI2_SS1__USBH2_DATA3         0x0
+                               MX27_PAD_CSPI2_SS2__USBH2_DATA4         0x0
+                               MX27_PAD_CSPI1_SS2__USBH2_DATA5         0x0
+                               MX27_PAD_CSPI2_SS0__USBH2_DATA6         0x0
+                               MX27_PAD_USBH2_DATA7__USBH2_DATA7       0x0
+                       >;
+               };
        };
 };
 
        nand-on-flash-bbt;
        status = "okay";
 };
+
+&usbotg {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg>;
+       phy_type = "ulpi";
+       phys = <&usbotgphy>;
+       status = "okay";
+};
+
+&usbh2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbh2>;
+       phy_type = "ulpi";
+       phys = <&usbh2phy>;
+       status = "okay";
+};
index f7408722d68ab2332f407112bdaf1b942f34cf55..2bd0761c7e900fc69228b7e30b11c6d3dfe17a82 100644 (file)
@@ -45,7 +45,7 @@
 
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 78770>;
+               pwms = <&pwm1 0 78770 0>;
                brightness-levels = <0 150 200 255>;
                default-brightness-level = <1>;
                power-supply = <&backlight_reg>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm_backlight>;
        status = "okay";
index 0e7f071fd10e2dba7adcd30f1fec8112456bb7a6..f6f1163666434c78276f6f36caa99e68892b60cc 100644 (file)
@@ -13,7 +13,7 @@
 
        backlight_lcd: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm2 0 50000>;
+               pwms = <&pwm2 0 50000 0>;
                power-supply = <&reg_backlight>;
                brightness-levels = <0 24 28 32 36
                                     40 44 48 52 56
index 4508f34139a061aa0a4ce48ccffcc7b2b5da1d9d..ae5f87b8612d485b77248de913446249bb8b9b50 100644 (file)
@@ -13,7 +13,7 @@
                compatible = "pwm-beeper";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_buzzer>;
-               pwms = <&pwm1 0 500000>;
+               pwms = <&pwm1 0 500000 0>;
        };
 
        gpio-buttons {
        >;
 };
 
-&pwm1 {
-       #pwm-cells = <2>;
-};
-
-&pwm2 {
-       #pwm-cells = <2>;
-};
-
 &uart1 {
        status = "okay";
 };
index c323b4dbe9f0adf26b46738d94aea3ce2d2455e6..1353d985969cbb2b28e45475de7560df5efd9e6b 100644 (file)
@@ -41,7 +41,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 3000>;
+               pwms = <&pwm1 0 3000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                power-supply = <&reg_backlight>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 6a37616cef1c2d6bff3a3fe6710f119013f810cf..2117de872703bfdf730f1eacedc653dcaaf8650c 100644 (file)
@@ -17,7 +17,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm2 0 50000>;
+               pwms = <&pwm2 0 50000 0>;
                brightness-levels = <0 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100>;
                default-brightness-level = <10>;
                enable-gpios = <&gpio7 7 0>;
index 70c4a4852256c4ef2321e25b878eb3b01e2780df..e939acc1c88b7c17a5bdaf5a934769f79e5ea8b3 100644 (file)
 
        pwm_bl: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm2 0 50000>;
+               pwms = <&pwm2 0 50000 0>;
                brightness-levels = <0 2 5 7 10 12 15 17 20 22 25 28 30 33 35
                                     38 40 43 45 48 51 53 56 58 61 63 66 68 71
                                     73 76 79 81 84 86 89 91 94 96 99 102 104
 
                led-1 {
                        label = "alarm-brightness";
-                       pwms = <&pwm1 0 100000>;
+                       pwms = <&pwm1 0 100000 0>;
                        max-brightness = <255>;
                };
        };
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
 &pwm2 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm2>;
        status = "okay";
index d804404464737114f9677de8e55854de051ef8ce..05d7a462ea25a7c8225e8daffde2e41b1eb8b1ac 100644 (file)
@@ -85,7 +85,7 @@
                };
        };
 
-       panel {
+       panel_dpi: panel {
                compatible = "sii,43wvf1g";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_display_power>;
index c84e9b0525276a7ce7e4176502139d926f4f3d9d..151e9cee3c87eef9e83529cd42a056c4a56dca96 100644 (file)
@@ -10,8 +10,6 @@
 /plugin/;
 
 &{/} {
-       /delete-node/ panel;
-
        hdmi: connector-hdmi {
                compatible = "hdmi-connector";
                label = "hdmi";
        };
 };
 
+&panel_dpi {
+       status = "disabled";
+};
+
 &tve {
        status = "disabled";
 };
index 294811bfc8d2e0aa869877e2b784c8cdff73c34f..b2d7271d1d24cc4e3aebf206569725411e040913 100644 (file)
        };
 };
 
-&pwm1 {
-       #pwm-cells = <2>;
-};
-
-&pwm2 {
-       #pwm-cells = <2>;
-};
-
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
index cc861a43eb580734c5b7118fca0caa950c09575c..a5ac79346854264fc2daa561a0c93fb1ce0ae591 100644 (file)
@@ -14,7 +14,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                enable-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
@@ -79,6 +79,5 @@
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        status = "okay";
 };
index b6cb78870cd54b76e1eaa6d006cc4de77564b6ee..5a25bdbbeb68711c4bf70ac8aab3e143bae79aed 100644 (file)
@@ -49,7 +49,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 3000>;
+               pwms = <&pwm3 0 3000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                pinctrl-names = "default";
@@ -69,6 +69,5 @@
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        status = "okay";
 };
index 028951955bdee703ab42a56bf197292241df6b9c..72ee236d2f5e8b5fadf6588a5506c39a99d7b7aa 100644 (file)
@@ -21,7 +21,7 @@
 
        backlight_lcd: backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 25000>; /* 25000ns -> 40kHz */
+               pwms = <&pwm3 0 25000 0>; /* 25000ns -> 40kHz */
                brightness-levels = <0 4 8 16 32 64 128 160 192 224 255>;
                default-brightness-level = <7>;
        };
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
index f266f1b7e0cfc1b7e28572993c3b36759d227d50..09d9ca0cb3324384fb6fa6fbf817d59bf1bfae4f 100644 (file)
@@ -55,7 +55,7 @@
                compatible = "pwm-backlight";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_display>;
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <  0   1   2   3   4   5   6   7   8   9
                                      10  11  12  13  14  15  16  17  18  19
                                      20  21  22  23  24  25  26  27  28  29
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 02648806c2750861df3d0c61e40d28d3b5508de9..d3f14b4d3b51e19a5bdf52f9d99da4b314da7811 100644 (file)
@@ -36,7 +36,7 @@
 
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 200000>;
+               pwms = <&pwm1 0 200000 0>;
                brightness-levels = <0 61 499 1706 4079 8022 13938 22237 33328 47623 65535>;
                num-interpolated-steps = <10>;
                default-brightness-level = <60>;
                        color = <LED_COLOR_ID_RED>;
                        max-brightness = <248>;
                        default-state = "off";
-                       pwms = <&pwm2 0 500000>;
+                       pwms = <&pwm2 0 500000 0>;
                };
 
                led_white: led-1 {
                        color = <LED_COLOR_ID_WHITE>;
                        max-brightness = <248>;
                        default-state = "off";
-                       pwms = <&pwm3 0 500000>;
+                       pwms = <&pwm3 0 500000 0>;
                        linux,default-trigger = "heartbeat";
                };
        };
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
 &pwm2 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm2>;
        status = "okay";
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index 091903f53a56097c40f103600e5ddc2bdabb923c..c425d427663d0624646dc55c38a596ba78f6ce04 100644 (file)
@@ -15,7 +15,7 @@
 / {
        backlight_lcd: backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 255>;
                num-interpolated-steps = <255>;
                default-brightness-level = <250>;
@@ -23,7 +23,7 @@
 
        beeper {
                compatible = "pwm-beeper";
-               pwms = <&pwm2 0 500000>;
+               pwms = <&pwm2 0 500000 0>;
        };
 
        lcd_display: display {
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
 &pwm2 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm2>;
        status = "okay";
index a7d5a68110fcf723113ea4144ac8d454bbf5b042..d392b5bd2eea8375711995baa433735e1998b621 100644 (file)
@@ -67,7 +67,7 @@
 
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 10000000>;
+               pwms = <&pwm1 0 10000000 0>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_backlight_novena>;
                power-supply = <&reg_lvds_lcd>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        status = "okay";
 };
 
index 46c6b96d80739918765cf2ecfef2d2967fb2cba0..56b77cc0af2be51d8eb6a9b0931d977e1f267670 100644 (file)
 
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 50000>;
+               pwms = <&pwm1 0 50000 0>;
                brightness-levels = <
                        0  /*1  2  3  4  5  6*/  7  8  9
                        10 11 12 13 14 15 16 17 18 19
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 3508a2cd928a1af8fc31c2a88d51eb83e94817ca..a7d5693c5ab75257ed916578a52036b82739a3d6 100644 (file)
@@ -22,7 +22,7 @@
                compatible = "pwm-backlight";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_backlight>;
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 16 64 255>;
                num-interpolated-steps = <16>;
                default-brightness-level = <1>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 2290c1237634d9d77e8e99ead95648e3a6db3ac2..0225a621ec7a9e697ba95cf0617513156f8c521f 100644 (file)
@@ -18,7 +18,7 @@
 
        backlight_lvds: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm2 0 50000>;
+               pwms = <&pwm2 0 50000 0>;
                brightness-levels = <0 4 8 16 32 64 128 248>;
                default-brightness-level = <7>;
                status = "okay";
 };
 
 &pwm2 {
-       #pwm-cells = <2>;
        status = "okay";
 };
 
index 338d292553ad5461530ba51ac312a370bdaa3297..3a46ade3b6bd93ba9cc54861d88791eef9e2ae76 100644 (file)
@@ -13,7 +13,7 @@
 
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 191000>;
+               pwms = <&pwm3 0 191000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <0>;
                power-supply = <&reg_5v>;
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
index db1bc511e71f71fdc1dfaba508dca12727de9e0f..758eaf9d93d2a44c1cc8cb457a82005aabcf4fec 100644 (file)
@@ -46,7 +46,7 @@
 / {
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                enable-gpios = <&gpio6 31 GPIO_ACTIVE_HIGH>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 1e530d892b768dda9146c30df8a48e4cca9e065f..761566ae3cf5c0360db9bbc0a790ebe64b9f318d 100644 (file)
@@ -64,7 +64,7 @@
                        active-low;
                        label = "imx6:red:front";
                        max-brightness = <248>;
-                       pwms = <&pwm1 0 50000>;
+                       pwms = <&pwm1 0 50000 0>;
                };
        };
 
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        status = "okay";
 };
 
index 42b2ba23aefc9e26ddb3a8e0317013e30602fdbe..a308a3584b62571bc5bb3a4012edc5f8d90b636d 100644 (file)
@@ -66,7 +66,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_lvds_bl>;
                enable-gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>;
-               pwms = <&pwm1 0 50000>;
+               pwms = <&pwm1 0 50000 0>;
                brightness-levels = <
                        0 4 8 16 32 64 80 96 112
                        128 144 160 176 250
@@ -78,7 +78,7 @@
        pwm_fan: pwm-fan {
                compatible = "pwm-fan";
                #cooling-cells = <2>;
-               pwms = <&pwm4 0 50000>;
+               pwms = <&pwm4 0 50000 0>;
                cooling-levels = <0 64 127 191 255>;
                status = "disabled";
        };
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_rgb_bl>;
                enable-gpios = <&gpio6 8 GPIO_ACTIVE_HIGH>;
-               pwms = <&pwm3 0 5000000>;
+               pwms = <&pwm3 0 5000000 0>;
                brightness-levels = <
                        250 176 160 144 128 112
                        96 80 64 48 32 16 8 1
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        status = "okay";
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        status = "okay";
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        status = "okay";
 };
 
index 535679c27d6f75a29a7b5622346002be9dff320d..48ffb3ee01bdcd02431161980055f1db57759956 100644 (file)
@@ -25,7 +25,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
        };
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index 3e1c572af58267640e660edca5b92a298be10b6d..1eae438fbdaeb518c5b850746929197341416489 100644 (file)
@@ -25,7 +25,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
        };
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index 0ffa0357a6fa60d9629d3864fc6f0f93e6e65684..c2ec8572c8a50c4327e7353589a0b3e036f48326 100644 (file)
@@ -26,7 +26,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
        };
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default", "state_dio";
        pinctrl-0 = <&pinctrl_pwm4_backlight>;
        pinctrl-1 = <&pinctrl_pwm4_dio>;
index 46cf4080fec384fc98413a48e59e3d52a1db6a62..7cee983da669510fe0dc42897ffff9ad8b38b861 100644 (file)
@@ -66,7 +66,7 @@
 
        backlight-display {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <
                        0  1  2  3  4  5  6  7  8  9
                        10 11 12 13 14 15 16 17 18 19
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index a74cde05015894c08543ee34eb380002f5355d6a..fbc704c064b6dee10d7f45f04ced4bf4b564d242 100644 (file)
@@ -56,7 +56,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <
                        0  1  2  3  4  5  6  7  8  9
                        10 11 12 13 14 15 16 17 18 19
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 1e723807ab4c2424b6259fec11201847f231a33f..070506279186bbe75e634fa1febb73dd628b3be2 100644 (file)
@@ -70,7 +70,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
        };
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index efe11524b885db38ffa295d0e4465611114702bf..9975b6ee433d1daf4ed24bf2b91f167fbaa398ff 100644 (file)
@@ -20,7 +20,7 @@
 
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 100000>;
+               pwms = <&pwm3 0 100000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
        };
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
index 4d2abcd44eff2455a836e7237b83bce01ec8ed6c..60aa1e947f62f8623af823850446437b8a2e08bf 100644 (file)
                reg = <1>;
                #address-cells = <1>;
                #size-cells = <0>;
+               vdd-supply = <&reg_mba6_3p3v>;
 
                ethernet@1 {
                        compatible = "usb424,9e00";
 
        pinctrl_hog: hoggrp {
                fsl,pins = <
-                       MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x0001b099
-
                        MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x0001b099
                        MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x0001b099
                        MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x0001b099
index f2542d725ce7db45b4a2e9ff19dea024745c2f52..a30cf0d06206f3294262446012dc98999a606873 100644 (file)
 
        backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 
        backlight_lvds0: backlight-lvds0 {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index 32a110a35b0253c9643ce6902a331ed785350b2b..33174febf410b967c3ac47307e954507731da282 100644 (file)
 
        backlight_lcd: backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 
        backlight_lvds0: backlight-lvds0 {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 
        backlight_lvds1: backlight-lvds1 {
                compatible = "pwm-backlight";
-               pwms = <&pwm2 0 5000000>;
+               pwms = <&pwm2 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
 &pwm2 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm2>;
        status = "okay";
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index 414196b759910ad55c4154cd59fa6881155a7e33..8e64314fa8b2a6f69e10fa0577e49ef6bb931345 100644 (file)
@@ -17,7 +17,7 @@
 
        backlight_lcd: backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
@@ -26,7 +26,7 @@
 
        backlight_lvds0: backlight-lvds0 {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index f278b14911ced270f3e993e2c8addb2f1dd7fc52..121177273dd007bda2c1f11932f479d472453868 100644 (file)
 
        backlight_lcd: backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index 1ca4d219609f69fa71d3b514b25b1cd82b18f019..0b4c09b09c03dcc2a8628a8eb449143e32cbf8fe 100644 (file)
@@ -15,7 +15,7 @@
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_backlight>;
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                status = "okay";
        };
 
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 68e97180d33e38831865b866e861001bca2e4a3d..6656e2e762a1a4e32e6d91d77a38ff9ada98628d 100644 (file)
        };
 
        sound-spdif {
-               compatible = "fsl,imx-audio-spdif",
-                          "fsl,imx-sabreauto-spdif";
+               compatible = "fsl,imx-sabreauto-spdif",
+                            "fsl,imx-audio-spdif";
                model = "imx-spdif";
                spdif-controller = <&spdif>;
                spdif-in;
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 5000000>;
+               pwms = <&pwm3 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                status = "okay";
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
index 84c8a9531e181596bc800b2aa94d6c68edf54519..9c502bf77d0bf05e635197f74beef2e5c8141e95 100644 (file)
@@ -99,7 +99,7 @@
                #clock-cells = <0>;
                clock-frequency = <22000000>;
                clock-output-names = "mipi_pwm3";
-               pwms = <&pwm3 0 45>; /* 1 / 45 ns = 22 MHz */
+               pwms = <&pwm3 0 45 0>; /* 1 / 45 ns = 22 MHz */
                status = "okay";
        };
 
 
        backlight_lcd: backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index 4fe58764b929aee760f60d78a8ad7a6998b57752..8f4f5fba68cc5f4ff8af1465e618905ba34c5710 100644 (file)
 
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                status = "okay";
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 02e6d36e85fa82c60bef34a1644277a767108d0e..6823a639ed2fc25db1e153178ae376733d7c6472 100644 (file)
@@ -83,7 +83,7 @@
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <4>;
                power-supply = <&reg_3p3v>;
-               pwms = <&pwm1 0 10000>;
+               pwms = <&pwm1 0 10000 0>;
        };
 
        reg_3p3v: regulator-3p3v {
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index d59d5d0e1d19ea6aff4c54ff26178140ff7dbc51..6ab71a729fd85d0b0b6dbfbd810692b1a0e05ec6 100644 (file)
 &pwm2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm2>;
-       #pwm-cells = <2>;
        status = "okay";
 };
 
index 647ba5e623ddfa2aae04339576f2746e63993957..14272b42f9a1aea0031dc33e4667c523e2ebdeda 100644 (file)
                };
        };
 
-       reg_usb_h1_vbus: regulator-usb-h1-vbus {
-               compatible = "regulator-fixed";
-               regulator-name = "usb_h1_vbus";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               enable-active-high;
-               startup-delay-us = <2>; /* USB2415 requires a POR of 1 us minimum */
-               gpio = <&gpio7 12 0>;
-       };
-
        reg_panel: regulator-panel {
                compatible = "regulator-fixed";
                regulator-name = "lcd_panel";
 &usbh1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usbh>;
-       vbus-supply = <&reg_usb_h1_vbus>;
-       clocks = <&clks IMX6QDL_CLK_CKO>;
-       status = "disabled";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       usb-port@1 {
+               compatible = "usb424,2514";
+               reg = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&clks IMX6QDL_CLK_CKO>;
+               reset-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;
+       };
 };
 
 &usbotg {
index 8431b8a994f4c19a2e696019ab4dfaab62af5676..d2200c9db25aec90dbd348dedee4bfef47eb3ee7 100644 (file)
                                        reg = <0x02024000 0x4000>;
                                        interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>;
                                        clocks = <&clks IMX6QDL_CLK_ESAI_IPG>,
-                                                <&clks IMX6QDL_CLK_ESAI_MEM>,
                                                 <&clks IMX6QDL_CLK_ESAI_EXTAL>,
                                                 <&clks IMX6QDL_CLK_ESAI_IPG>,
                                                 <&clks IMX6QDL_CLK_SPBA>;
-                                       clock-names = "core", "mem", "extal", "fsys", "spba";
+                                       clock-names = "core", "extal", "fsys", "spba";
                                        dmas = <&sdma 23 21 0>, <&sdma 24 21 0>;
                                        dma-names = "rx", "tx";
                                        status = "disabled";
index 239bc6dfc5846475b17ccbf080030959c43eddf2..31eee0419af71c628c1b2849fa944e30df891af8 100644 (file)
@@ -23,7 +23,7 @@
 
        backlight_display: backlight_display {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
        };
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
-       status = "okay";
 };
 
 &reg_vdd1p1 {
index 5636fb3661e8a4e345e74767e329e403d2a58c9e..03d6965f014957a9ac7a9799554620fd4ae5e392 100644 (file)
                pinctrl-0 = <&pinctrl_zforce>;
                reg = <0x50>;
                interrupt-parent = <&gpio5>;
-               interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+               interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
                vdd-supply = <&ldo1_reg>;
                reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
                touchscreen-size-x = <1072>;
                pinctrl-0 = <&pinctrl_ricoh_gpio>;
                reg = <0x32>;
                interrupt-parent = <&gpio5>;
-               interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+               interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
                system-power-controller;
 
                regulators {
index e3e9b0ec4f734af2f660d917f64113a22bceeb9b..febc2dd9967de69e109bbd3d5d92217b6cbea13f 100644 (file)
@@ -26,7 +26,7 @@
 
        backlight_display: backlight-display {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                status = "okay";
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
-       status = "okay";
 };
 
 &snvs_poweroff {
index 3659fd5ecfa620e665edf570dd9d2b8c0f24bc09..ddeb5b37fb78b92e8b56fd8b1714d30f1760baa1 100644 (file)
                                clocks = <&clks IMX6SLL_CLK_USBOH3>;
                                fsl,usbphy = <&usbphy1>;
                                fsl,usbmisc = <&usbmisc 0>;
-                               fsl,anatop = <&anatop>;
                                ahb-burst-config = <0x0>;
                                tx-burst-size-dword = <0x10>;
                                rx-burst-size-dword = <0x10>;
index cd9cbc9ccc9e33cc7062ccb719ed70fcce16b101..1c1515a854c813c182390dc9f94b31fbd3f05bee 100644 (file)
@@ -18,7 +18,7 @@
 
        backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                power-supply = <&reg_3p3v>;
@@ -83,7 +83,7 @@
        sound {
                compatible = "fsl,imx-audio-sgtl5000";
                model = "imx6sx-nitrogen6sx-sgtl5000";
-               cpu-dai = <&ssi1>;
+               ssi-controller = <&ssi1>;
                audio-codec = <&codec>;
                audio-routing =
                        "MIC_IN", "Mic Jack",
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
-       status = "okay";
 };
 
 &ssi1 {
index c6e85e4a0883e0f233ba84dc0fe88357b2560d0e..7d4170c2773284d09ca29fa162f447844e06fef0 100644 (file)
@@ -23,7 +23,7 @@
 
        backlight_display: backlight-display {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 5000000>;
+               pwms = <&pwm3 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
        };
        };
 
        sound-spdif {
-               compatible = "fsl,imx-audio-spdif",
-                          "fsl,imx6sx-sdb-spdif";
+               compatible = "fsl,imx6sx-sdb-spdif",
+                            "fsl,imx-audio-spdif";
                model = "imx-spdif";
                spdif-controller = <&spdif>;
                spdif-out;
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
-       status = "okay";
 };
 
 &snvs_poweroff {
index bfcd8f7d86dde104035a9f4659c214782c847260..f999eb2443739ccda99c09ea5c3bb2ae08fa37bc 100644 (file)
                led-1 {
                        label = "red";
                        max-brightness = <255>;
-                       pwms = <&pwm6 0 50000>;
+                       pwms = <&pwm6 0 50000 0>;
                };
 
                led-2 {
                        label = "green";
                        max-brightness = <255>;
-                       pwms = <&pwm2 0 50000>;
+                       pwms = <&pwm2 0 50000 0>;
                };
 
                led-3 {
                        label = "blue";
                        max-brightness = <255>;
-                       pwms = <&pwm1 0 50000>;
+                       pwms = <&pwm1 0 50000 0>;
                };
        };
 };
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
-       status = "okay";
 };
 
 &pwm2 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm2>;
-       status = "okay";
 };
 
 &pwm6 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm6>;
-       status = "okay";
 };
 
 &reg_arm {
index 0de359d62a472f9942ffb1de8c844400dbd035ba..b386448486df80a033efbad38c37a4dd04ee1caa 100644 (file)
                                };
 
                                esai: esai@2024000 {
-                                       compatible = "fsl,imx6sx-esai", "fsl,imx35-esai";
+                                       compatible = "fsl,imx35-esai";
                                        reg = <0x02024000 0x4000>;
                                        interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
                                        clocks = <&clks IMX6SX_CLK_ESAI_IPG>,
-                                                <&clks IMX6SX_CLK_ESAI_MEM>,
                                                 <&clks IMX6SX_CLK_ESAI_EXTAL>,
                                                 <&clks IMX6SX_CLK_ESAI_IPG>,
                                                 <&clks IMX6SX_CLK_SPBA>;
-                                       clock-names = "core", "mem", "extal",
+                                       clock-names = "core", "extal",
                                                      "fsys", "spba";
                                        dmas = <&sdma 23 21 0>,
                                               <&sdma 24 21 0>;
                                clocks = <&clks IMX6SX_CLK_USBOH3>;
                                fsl,usbphy = <&usbphy1>;
                                fsl,usbmisc = <&usbmisc 0>;
-                               fsl,anatop = <&anatop>;
                                ahb-burst-config = <0x0>;
                                tx-burst-size-dword = <0x10>;
                                rx-burst-size-dword = <0x10>;
                                fsl,usbphy = <&usbphynop1>;
                                fsl,usbmisc = <&usbmisc 2>;
                                phy_type = "hsic";
-                               fsl,anatop = <&anatop>;
                                dr_mode = "host";
                                ahb-burst-config = <0x0>;
                                tx-burst-size-dword = <0x10>;
index f10f0525490b66f413c9fa9a41d08f8a82ae35f2..9cfb99ac9e9daaf5fe7479aee9dc8888909e4bdc 100644 (file)
@@ -16,7 +16,7 @@
 
        backlight_display: backlight-display {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                status = "okay";
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 1762bc47e18d50f23b96fb3b98c4b40e6a3e887e..ed61ae8524fa2a1445c7df50b2cdb03799b1c141 100644 (file)
@@ -18,7 +18,7 @@
 
        lcd_backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm5 0 50000>;
+               pwms = <&pwm5 0 50000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                status = "okay";
 };
 
 &pwm5 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm5>;
        status = "okay";
index 2ca18f3dad0aa6576398235398047753a79b285b..cdbb8c435cd6aa54036b646a39f3fd7873aec0fb 100644 (file)
@@ -21,7 +21,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm8 0 100000>;
+               pwms = <&pwm8 0 100000 0>;
                brightness-levels = < 0  1  2  3  4  5  6  7  8  9
                                     10 11 12 13 14 15 16 17 18 19
                                     20 21 22 23 24 25 26 27 28 29
 };
 
 &pwm8 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm8>;
        status = "okay";
index af337f18a266ca846be7ae3652a40ff69f507809..be3cacb4fa7abcab1b6b210079b38b4d0cf1df11 100644 (file)
@@ -9,7 +9,7 @@
 
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 191000>;
+               pwms = <&pwm3 0 191000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_5v>;
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
index 14fc4828ba4ef47b175e14f686aa397a3866263a..ee86c36205f9554dd1c8b5b853df3742ab9ae426 100644 (file)
@@ -20,7 +20,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm8 0 100000>;
+               pwms = <&pwm8 0 100000 0>;
                brightness-levels = < 0  1  2  3  4  5  6  7  8  9
                                     10 11 12 13 14 15 16 17 18 19
                                     20 21 22 23 24 25 26 27 28 29
 };
 
 &pwm8 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm8>;
        status = "okay";
index 0c643706a158be9ea2aff6493a0b0eeff59cf0aa..4e8191a65211330c15f972ba41d8adccba24a5ba 100644 (file)
@@ -14,7 +14,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm7 0 5000000>;
+               pwms = <&pwm7 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                status = "okay";
@@ -41,7 +41,6 @@
 };
 
 &pwm7 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm7>;
        status = "okay";
index 33d5f27285a476d7a3308b4cb7d92a5408a76385..d8f7877349c98fdeb8c211a719c303b978e57cd0 100644 (file)
@@ -35,7 +35,7 @@
 
        pwm-beeper {
                compatible = "pwm-beeper";
-               pwms = <&pwm8 0 5000>;
+               pwms = <&pwm8 0 5000 0>;
        };
 
        reg_3v3: regulator-3v3 {
 };
 
 &pwm8 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm8>;
        status = "okay";
index 07dcecbe485dca41b66f3deef932f750d31f5544..fe307f49b9e56794f538486a90cc0af6cfe3bd5e 100644 (file)
@@ -22,7 +22,7 @@
 
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 5000000>;
+               pwms = <&pwm3 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                status = "okay";
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
diff --git a/src/arm/nxp/imx/imx6ull-seeed-npi-dev-board-emmc.dts b/src/arm/nxp/imx/imx6ull-seeed-npi-dev-board-emmc.dts
new file mode 100644 (file)
index 0000000..cfcd878
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 Linumiz
+ * Author: Parthiban <parthiban@linumiz.com>
+ */
+
+/dts-v1/;
+#include "imx6ull.dtsi"
+#include "imx6ull-seeed-npi.dtsi"
+#include "imx6ull-seeed-npi-dev-board.dtsi"
+
+/ {
+       model = "Seeed NPi iMX6ULL Dev Board with NAND";
+       compatible = "seeed,imx6ull-seeed-npi-emmc", "seeed,imx6ull-seeed-npi", "fsl,imx6ull";
+};
+
+&usdhc2 {
+       status = "okay";
+};
diff --git a/src/arm/nxp/imx/imx6ull-seeed-npi-dev-board-nand.dts b/src/arm/nxp/imx/imx6ull-seeed-npi-dev-board-nand.dts
new file mode 100644 (file)
index 0000000..87c9434
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 Linumiz
+ * Author: Parthiban <parthiban@linumiz.com>
+ */
+
+/dts-v1/;
+#include "imx6ull.dtsi"
+#include "imx6ull-seeed-npi.dtsi"
+#include "imx6ull-seeed-npi-dev-board.dtsi"
+
+/ {
+       model = "Seeed NPi iMX6ULL Dev Board with NAND";
+       compatible = "seeed,imx6ull-seeed-npi-nand", "seeed,imx6ull-seeed-npi", "fsl,imx6ull";
+};
+
+&gpmi {
+       status = "okay";
+};
diff --git a/src/arm/nxp/imx/imx6ull-seeed-npi-dev-board.dtsi b/src/arm/nxp/imx/imx6ull-seeed-npi-dev-board.dtsi
new file mode 100644 (file)
index 0000000..6bb12e0
--- /dev/null
@@ -0,0 +1,424 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 Linumiz
+ * Author: Parthiban <parthiban@linumiz.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       gpio_buttons: gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_button>;
+
+               button-0 {
+                       gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
+                       label = "SW2";
+                       linux,code = <KEY_A>;
+                       wakeup-source;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_leds>;
+
+               led-blue {
+                       gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
+                       label = "LED_B";
+                       linux,default-trigger = "heartbeat";
+                       default-state = "on";
+               };
+
+               led-green {
+                       gpios = <&gpio4 20 GPIO_ACTIVE_LOW>;
+                       label = "LED_G";
+                       linux,default-trigger = "heartbeat";
+                       default-state = "on";
+               };
+
+               led-red {
+                       gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+                       label = "LED_R";
+                       linux,default-trigger = "heartbeat";
+                       default-state = "on";
+               };
+
+               led-user {
+                       gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
+                       label = "User";
+                       linux,default-trigger = "heartbeat";
+                       default-state = "on";
+               };
+       };
+
+       reg_5v_sys: regulator-5v-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "5V_SYS";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       reg_5v: regulator-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               vin-supply = <&reg_5v_sys>;
+       };
+
+       reg_3v3_in: regulator-3v3-in {
+               compatible = "regulator-fixed";
+               regulator-name = "3V3_IN";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               vin-supply = <&reg_5v_sys>;
+       };
+
+       reg_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               vin-supply = <&reg_3v3_in>;
+       };
+
+       reg_sd1_vmmc: regulator-sd1-vmmc {
+               compatible = "regulator-fixed";
+               regulator-name = "3V3_SD";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_vmmc>;
+               enable-active-high;
+               regulator-always-on;
+               vin-supply = <&reg_3v3>;
+       };
+};
+
+&csi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_csi1>;
+       status = "disabled"; /* LED Blue & Green shared */
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy0>;
+       status = "okay";
+};
+
+&fec2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet2>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy1>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@2 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <2>;
+                       micrel,led-mode = <1>;
+                       clocks = <&clks IMX6UL_CLK_ENET_REF>;
+                       clock-names = "rmii-ref";
+               };
+
+               ethphy1: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+                       micrel,led-mode = <1>;
+                       clocks = <&clks IMX6UL_CLK_ENET2_REF>;
+                       clock-names = "rmii-ref";
+               };
+       };
+};
+
+&lcdif {
+       pinctrl-0 = <&pinctrl_lcdif>;
+       pinctrl-names = "default";
+       status = "disabled";
+};
+
+&reg_dcdc_3v3 {
+       vin-supply = <&reg_3v3_in>;
+};
+
+&sai2 {
+       assigned-clock-rates = <320000000>;
+       assigned-clocks = <&clks IMX6UL_CLK_PLL3_PFD2>;
+       pinctrl-0 = <&pinctrl_sai2>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&snvs_poweroff {
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&pinctrl_uart2>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-0 = <&pinctrl_uart3>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-0 = <&pinctrl_uart4>;
+       status = "okay";
+};
+
+&uart5 {
+       pinctrl-0 = <&pinctrl_uart5>;
+       status = "okay";
+};
+
+&usbotg1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb_otg1_id>;
+       dr_mode = "otg";
+       srp-disable;
+       hnp-disable;
+       adp-disable;
+       status = "okay";
+};
+
+&usbotg2 {
+       dr_mode = "host";
+       disable-over-current;
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_usdhc1_cd>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_usdhc1_cd>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_usdhc1_cd>;
+       cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+       no-1-8-v;
+       keep-power-in-suspend;
+       wakeup-source;
+       vmmc-supply = <&reg_sd1_vmmc>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_button: buttongrp {
+               fsl,pins = <
+                       MX6ULL_PAD_SNVS_TAMPER1__GPIO5_IO01     0x0b0b0
+               >;
+       };
+
+       pinctrl_csi1: csi1grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_PIXCLK__CSI_PIXCLK        0x1b088
+                       MX6UL_PAD_CSI_VSYNC__CSI_VSYNC          0x1b088
+                       MX6UL_PAD_CSI_HSYNC__CSI_HSYNC          0x1b088
+                       MX6UL_PAD_CSI_DATA00__CSI_DATA02        0x1b088
+                       MX6UL_PAD_CSI_DATA01__CSI_DATA03        0x1b088
+                       MX6UL_PAD_CSI_DATA02__CSI_DATA04        0x1b088
+                       MX6UL_PAD_CSI_DATA03__CSI_DATA05        0x1b088
+                       MX6UL_PAD_CSI_DATA04__CSI_DATA06        0x1b088
+                       MX6UL_PAD_CSI_DATA05__CSI_DATA07        0x1b088
+                       MX6UL_PAD_CSI_DATA06__CSI_DATA08        0x1b088
+                       MX6UL_PAD_CSI_DATA07__CSI_DATA09        0x1b088
+               >;
+       };
+
+       pinctrl_enet1: enet1grp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER      0x1b0b0
+                       MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4001b031
+               >;
+       };
+
+       pinctrl_enet2: enet2grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO07__ENET2_MDC         0x1b0b0
+                       MX6UL_PAD_GPIO1_IO06__ENET2_MDIO        0x1b0b0
+                       MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN      0x1b0b0
+                       MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER      0x1b0b0
+                       MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
+                       MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
+                       MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN      0x1b0b0
+                       MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
+                       MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
+                       MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2  0x4001b031
+               >;
+       };
+
+       pinctrl_gpio_leds: ledgrp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO04__GPIO1_IO04        0x0b0b0
+                       MX6UL_PAD_CSI_VSYNC__GPIO4_IO19         0x0b0b0
+                       MX6UL_PAD_CSI_HSYNC__GPIO4_IO20         0x0b0b0
+                       MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03      0x0b0b0
+               >;
+       };
+
+       pinctrl_lcdif: lcdif-grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_CLK__LCDIF_CLK            0x79
+                       MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE      0x79
+                       MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC        0x79
+                       MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC        0x79
+                       MX6UL_PAD_LCD_RESET__LCDIF_RESET        0x79
+                       MX6UL_PAD_LCD_DATA00__LCDIF_DATA00      0x79
+                       MX6UL_PAD_LCD_DATA01__LCDIF_DATA01      0x79
+                       MX6UL_PAD_LCD_DATA02__LCDIF_DATA02      0x79
+                       MX6UL_PAD_LCD_DATA03__LCDIF_DATA03      0x79
+                       MX6UL_PAD_LCD_DATA04__LCDIF_DATA04      0x79
+                       MX6UL_PAD_LCD_DATA05__LCDIF_DATA05      0x79
+                       MX6UL_PAD_LCD_DATA06__LCDIF_DATA06      0x79
+                       MX6UL_PAD_LCD_DATA07__LCDIF_DATA07      0x79
+                       MX6UL_PAD_LCD_DATA08__LCDIF_DATA08      0x79
+                       MX6UL_PAD_LCD_DATA09__LCDIF_DATA09      0x79
+                       MX6UL_PAD_LCD_DATA10__LCDIF_DATA10      0x79
+                       MX6UL_PAD_LCD_DATA11__LCDIF_DATA11      0x79
+                       MX6UL_PAD_LCD_DATA12__LCDIF_DATA12      0x79
+                       MX6UL_PAD_LCD_DATA13__LCDIF_DATA13      0x79
+                       MX6UL_PAD_LCD_DATA14__LCDIF_DATA14      0x79
+                       MX6UL_PAD_LCD_DATA15__LCDIF_DATA15      0x79
+                       MX6UL_PAD_LCD_DATA16__LCDIF_DATA16      0x79
+                       MX6UL_PAD_LCD_DATA17__LCDIF_DATA17      0x79
+                       MX6UL_PAD_LCD_DATA18__LCDIF_DATA18      0x79
+                       MX6UL_PAD_LCD_DATA19__LCDIF_DATA19      0x79
+                       MX6UL_PAD_LCD_DATA20__LCDIF_DATA20      0x79
+                       MX6UL_PAD_LCD_DATA21__LCDIF_DATA21      0x79
+                       MX6UL_PAD_LCD_DATA22__LCDIF_DATA22      0x79
+                       MX6UL_PAD_LCD_DATA23__LCDIF_DATA23      0x79
+                       MX6UL_PAD_GPIO1_IO08__GPIO1_IO08        0x79
+               >;
+       };
+
+       pinctrl_reg_vmmc: usdhc1regvmmc {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO09__GPIO1_IO09        0x17059
+               >;
+       };
+
+       pinctrl_sai2: sai2-grp {
+               fsl,pins = <
+                       MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA        0x130b0
+                       MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK        0x17088
+                       MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC        0x17088
+                       MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA     0x120b0
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pin = <
+                       MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pin = <
+                       MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX   0x1b0b1
+                       MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS    0x1b0b1
+                       MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS    0x1b0b1
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pin = <
+                       MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX   0x1b0b1
+                       MX6UL_PAD_UART3_CTS_B__UART3_DCE_CTS    0x1b0b1
+                       MX6UL_PAD_UART3_RTS_B__UART3_DCE_RTS    0x1b0b1
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pin = <
+                       MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_uart5: uart5grp {
+               fsl,pin = <
+                       MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_usb_otg1_id: usbotg1idgrp {
+               fsl,pin = <
+                       MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID    0x17059
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x17059
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x10059
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x17059
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x17059
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x17059
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x17059
+               >;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170b9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100b9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x170b9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x170b9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x170b9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x170b9
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170f9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100f9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x170f9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x170f9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x170f9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x170f9
+               >;
+       };
+
+       pinctrl_usdhc1_cd: usdhc1cd {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_RTS_B__GPIO1_IO19       0x17059
+               >;
+       };
+};
diff --git a/src/arm/nxp/imx/imx6ull-seeed-npi.dtsi b/src/arm/nxp/imx/imx6ull-seeed-npi.dtsi
new file mode 100644 (file)
index 0000000..f5ad6b5
--- /dev/null
@@ -0,0 +1,155 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 Linumiz
+ * Author: Parthiban <parthiban@linumiz.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "Seeed NPi-iMX6ULL Dev Board";
+       compatible = "seeed,imx6ull-seeed-npi", "fsl,imx6ull";
+
+       reg_dcdc_3v3: regulator-dcdc-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "DCDC_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       reg_dram_1v35: regulator-dram-1v35 {
+               compatible = "regulator-fixed";
+               regulator-name = "DRAM_1V35";
+               regulator-min-microvolt = <1350000>;
+               regulator-max-microvolt = <1350000>;
+               regulator-always-on;
+               vin-supply = <&reg_dcdc_3v3>;
+       };
+
+       reg_vdd_arm_soc_in: regulator-vdd-arm-soc-in {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_ARM_SOC_IN";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-always-on;
+               vin-supply = <&reg_dcdc_3v3>;
+       };
+
+       reg_dcdc_1v8: regulator-dcdc-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "DCDC_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               vin-supply = <&reg_dcdc_3v3>;
+       };
+
+       reg_sd1_vqmmc: regulator-sd1-vqmmc {
+               compatible = "regulator-fixed";
+               regulator-name = "NVCC_SD";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_vqmmc>;
+               regulator-always-on;
+               vin-supply = <&reg_dcdc_1v8>;
+       };
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand>;
+       status = "disabled";
+};
+
+&usdhc1 {
+       vqmmc-supply = <&reg_sd1_vqmmc>;
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       keep-power-in-suspend;
+       status = "disabled";
+};
+
+&iomuxc {
+       pinctrl_gpmi_nand: gpminandgrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_DQS__RAWNAND_DQS         0x0b0b1
+                       MX6UL_PAD_NAND_CLE__RAWNAND_CLE         0x0b0b1
+                       MX6UL_PAD_NAND_ALE__RAWNAND_ALE         0x0b0b1
+                       MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B       0x0b0b1
+                       MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0x0b000
+                       MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B     0x0b0b1
+                       MX6UL_PAD_NAND_CE1_B__RAWNAND_CE1_B     0x0b0b1
+                       MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B       0x0b0b1
+                       MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B       0x0b0b1
+                       MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00   0x0b0b1
+                       MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01   0x0b0b1
+                       MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02   0x0b0b1
+                       MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03   0x0b0b1
+                       MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04   0x0b0b1
+                       MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05   0x0b0b1
+                       MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06   0x0b0b1
+                       MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07   0x0b0b1
+               >;
+       };
+
+       pinctrl_reg_vqmmc: usdhc1regvqmmc {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO05__GPIO1_IO05        0x17059
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x10069
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x17059
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x17059
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x17059
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x17059
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x17059
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x17059
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x17059
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x17059
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x17059
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x100b9
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x170b9
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x170b9
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x170b9
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x170b9
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x170b9
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x170b9
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x170b9
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x170b9
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x170b9
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x100f9
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x170f9
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x170f9
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x170f9
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x170f9
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x170f9
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x170f9
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x170f9
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x170f9
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x170f9
+               >;
+       };
+};
index 67007ce383e3caf21438bb6fbdfbec2f3bb719b3..f9bbd589b66da8e2900d41920b014fad115688f6 100644 (file)
@@ -45,7 +45,7 @@
                interrupts = <19 IRQ_TYPE_EDGE_RISING>;
                spi-cpha;
                spi-cpol;
-               spi-max-frequency = <16000000>;
+               spi-max-frequency = <12000000>;
        };
 };
 
@@ -63,7 +63,7 @@
                interrupts = <9 IRQ_TYPE_EDGE_RISING>;
                spi-cpha;
                spi-cpol;
-               spi-max-frequency = <16000000>;
+               spi-max-frequency = <12000000>;
        };
 };
 
index cee223b5f8e1cf087b7508c8a769907a020147cb..ef06619d7c867c70ee0cdc732c687764d90de18d 100644 (file)
@@ -23,7 +23,7 @@
                interrupts = <19 IRQ_TYPE_EDGE_RISING>;
                spi-cpha;
                spi-cpol;
-               spi-max-frequency = <16000000>;
+               spi-max-frequency = <12000000>;
        };
 };
 
index 7fd53b7a4372329e23bbd94de0bdc23c99f5df1f..83db65bf630fc9b6fc9f4075773fc91599f3eb1a 100644 (file)
@@ -45,7 +45,7 @@
                interrupts = <19 IRQ_TYPE_EDGE_RISING>;
                spi-cpha;
                spi-cpol;
-               spi-max-frequency = <16000000>;
+               spi-max-frequency = <12000000>;
        };
 };
 
diff --git a/src/arm/nxp/imx/imx6ull-uti260b.dts b/src/arm/nxp/imx/imx6ull-uti260b.dts
new file mode 100644 (file)
index 0000000..e4576d5
--- /dev/null
@@ -0,0 +1,566 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// Copyright (C) 2022-2024 Sebastian Reichel <sre@kernel.org>
+
+/dts-v1/;
+#include "imx6ull.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/clock/imx6ul-clock.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "UNI-T UTi260B Thermal Camera";
+       compatible = "uni-t,uti260b", "fsl,imx6ull";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000>;
+       };
+
+       panel_backlight: backlight {
+               compatible = "pwm-backlight";
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+               enable-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_backlight_enable>;
+               power-supply = <&reg_vsd>;
+               pwms = <&pwm1 0 50000 0>;
+       };
+
+       battery: battery {
+               compatible = "simple-battery";
+               /* generic 26650 battery */
+               device-chemistry = "lithium-ion";
+               charge-full-design-microamp-hours = <5000000>;
+               voltage-max-design-microvolt = <4200000>;
+               voltage-min-design-microvolt = <3300000>;
+       };
+
+       tp5000: charger {
+               compatible = "gpio-charger";
+               charger-type = "usb-sdp";
+               gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_charger_stat1>;
+       };
+
+       fuel-gauge {
+               compatible = "adc-battery";
+               charged-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+               io-channel-names = "voltage";
+               io-channels = <&adc1 7>;
+               monitored-battery = <&battery>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_charger_stat2>;
+               power-supplies = <&tp5000>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_gpio_keys>;
+               autorepeat;
+
+               up-key {
+                       label = "Up";
+                       gpios = <&gpio2 11 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_UP>;
+               };
+
+               down-key {
+                       label = "Down";
+                       gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_DOWN>;
+               };
+
+               left-key {
+                       label = "Left";
+                       gpios = <&gpio2 13 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_LEFT>;
+               };
+
+               right-key {
+                       label = "Right";
+                       gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RIGHT>;
+               };
+
+               ok-key {
+                       label = "Ok";
+                       gpios = <&gpio2 9 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_ENTER>;
+               };
+
+               return-key {
+                       label = "Return";
+                       gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_ESC>;
+               };
+
+               play-key {
+                       label = "Media";
+                       gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_MEDIA>;
+               };
+
+               trigger-key {
+                       label = "Trigger";
+                       gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
+                       linux,code = <BTN_TRIGGER>;
+               };
+
+               power-key {
+                       label = "Power";
+                       gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+               };
+
+               light-key {
+                       label = "Light";
+                       gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_LIGHTS_TOGGLE>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_led_ctrl>;
+
+               led {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_FLASH;
+                       gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+       };
+
+       poweroff {
+               compatible = "gpio-poweroff";
+               gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_poweroff>;
+       };
+
+       reg_vref: regulator-vref-4v2 {
+               compatible = "regulator-fixed";
+               regulator-name = "VREF_4V2";
+               regulator-min-microvolt = <4200000>;
+               regulator-max-microvolt = <4200000>;
+       };
+
+       reg_vsd: regulator-vsd {
+               compatible = "regulator-fixed";
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+};
+
+&adc1 {
+       #io-channel-cells = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_adc>;
+       vref-supply = <&reg_vref>;
+       status = "okay";
+};
+
+&csi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_csi>;
+       status = "okay";
+
+       port {
+               parallel_from_gc0308: endpoint {
+                       remote-endpoint = <&gc0308_to_parallel>;
+               };
+       };
+};
+
+&ecspi3 {
+       cs-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_spi3>;
+       status = "okay";
+
+       panel@0 {
+               compatible = "inanbo,t28cp45tn89-v17";
+               reg = <0>;
+               backlight = <&panel_backlight>;
+               power-supply = <&reg_vsd>;
+               spi-cpha;
+               spi-cpol;
+               spi-max-frequency = <1000000>;
+               spi-rx-bus-width = <0>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&display_out>;
+                       };
+               };
+       };
+};
+
+&gpio1 {
+       ir-reset-hog {
+               gpio-hog;
+               gpios = <3 GPIO_ACTIVE_LOW>;
+               line-name = "ir-reset-gpio";
+               output-low;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_ir_reset>;
+       };
+};
+
+&gpio2 {
+       /* configuring this to output-high results in poweroff */
+       power-en-hog {
+               gpio-hog;
+               gpios = <6 GPIO_ACTIVE_HIGH>;
+               line-name = "power-en-gpio";
+               output-low;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_poweroff2>;
+       };
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_i2c1>;
+       status = "okay";
+
+       camera@21 {
+               compatible = "galaxycore,gc0308";
+               reg = <0x21>;
+               clocks = <&clks IMX6UL_CLK_CSI>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_gc0308>;
+               powerdown-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+               vdd28-supply = <&reg_vsd>;
+
+               port {
+                       gc0308_to_parallel: endpoint {
+                               remote-endpoint = <&parallel_from_gc0308>;
+                               bus-width = <8>;
+                               data-shift = <2>; /* lines 9:2 are used */
+                               hsync-active = <1>; /* active high */
+                               vsync-active = <1>; /* active high */
+                               data-active = <1>; /* active high */
+                               pclk-sample = <1>; /* sample on rising edge */
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_i2c2>;
+       status = "okay";
+
+       rtc@51 {
+               compatible = "nxp,pcf8563";
+               reg = <0x51>;
+       };
+};
+
+&lcdif {
+       assigned-clocks = <&clks IMX6UL_CLK_LCDIF_PRE_SEL>;
+       assigned-clock-parents = <&clks IMX6UL_CLK_PLL5_VIDEO_DIV>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_lcd_data>, <&mux_lcd_ctrl>;
+       status = "okay";
+
+       port {
+               display_out: endpoint {
+                       remote-endpoint = <&panel_in>;
+               };
+       };
+};
+
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_pwm>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_uart>;
+       status = "okay";
+};
+
+&usbotg1 {
+       /* USB-C connector */
+       disable-over-current;
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usbotg2 {
+       /* thermal sensor */
+       disable-over-current;
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usbphy1 {
+       fsl,tx-d-cal = <106>;
+};
+
+&usbphy2 {
+       fsl,tx-d-cal = <106>;
+};
+
+&usdhc1 {
+       /* MicroSD */
+       cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+       keep-power-in-suspend;
+       no-1-8-v;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&mux_sdhc1>, <&mux_sdhc1_cd>;
+       pinctrl-1 = <&mux_sdhc1_100mhz>, <&mux_sdhc1_cd>;
+       pinctrl-2 = <&mux_sdhc1_200mhz>, <&mux_sdhc1_cd>;
+       wakeup-source;
+       vmmc-supply = <&reg_vsd>;
+       status = "okay";
+};
+
+&usdhc2 {
+       /* eMMC */
+       keep-power-in-suspend;
+       no-1-8-v;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_sdhc2>;
+       wakeup-source;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_wdog>;
+};
+
+&iomuxc {
+       mux_adc: adcgrp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO07__GPIO1_IO07                0xb0
+               >;
+       };
+
+       mux_backlight_enable: blenablegrp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO09__GPIO1_IO09                0x3008
+               >;
+       };
+
+       mux_charger_stat1: charger1grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO01__GPIO1_IO01                0x3008
+               >;
+       };
+
+       mux_charger_stat2: charger2grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO02__GPIO1_IO02                0x3008
+               >;
+       };
+
+       mux_csi: csi1grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_PIXCLK__CSI_PIXCLK                0x1b088
+                       MX6UL_PAD_CSI_VSYNC__CSI_VSYNC                  0x1b088
+                       MX6UL_PAD_CSI_HSYNC__CSI_HSYNC                  0x1b088
+                       MX6UL_PAD_CSI_DATA00__CSI_DATA02                0x1b088
+                       MX6UL_PAD_CSI_DATA01__CSI_DATA03                0x1b088
+                       MX6UL_PAD_CSI_DATA02__CSI_DATA04                0x1b088
+                       MX6UL_PAD_CSI_DATA03__CSI_DATA05                0x1b088
+                       MX6UL_PAD_CSI_DATA04__CSI_DATA06                0x1b088
+                       MX6UL_PAD_CSI_DATA05__CSI_DATA07                0x1b088
+                       MX6UL_PAD_CSI_DATA06__CSI_DATA08                0x1b088
+                       MX6UL_PAD_CSI_DATA07__CSI_DATA09                0x1b088
+               >;
+       };
+
+       mux_gc0308: gc0308grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_MCLK__CSI_MCLK                    0x1e038
+                       MX6UL_PAD_GPIO1_IO05__GPIO1_IO05                0x1b088
+                       MX6UL_PAD_GPIO1_IO06__GPIO1_IO06                0x1b088
+               >;
+       };
+
+       mux_gpio_keys: gpiokeygrp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11            0x3008
+                       MX6UL_PAD_ENET2_TX_DATA1__GPIO2_IO12            0x3008
+                       MX6UL_PAD_ENET2_TX_EN__GPIO2_IO13               0x3008
+                       MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10               0x3008
+                       MX6UL_PAD_ENET2_RX_DATA1__GPIO2_IO09            0x3008
+                       MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15               0x3008
+                       MX6UL_PAD_ENET2_RX_DATA0__GPIO2_IO08            0x3008
+                       MX6UL_PAD_ENET2_TX_CLK__GPIO2_IO14              0x3008
+                       MX6UL_PAD_ENET1_TX_DATA0__GPIO2_IO03            0x3008
+                       MX6UL_PAD_ENET1_RX_DATA1__GPIO2_IO01            0x3008
+               >;
+       };
+
+       mux_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART4_TX_DATA__I2C1_SCL               0x4001b8b0
+                       MX6UL_PAD_UART4_RX_DATA__I2C1_SDA               0x4001b8b0
+               >;
+       };
+
+       mux_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART5_TX_DATA__I2C2_SCL               0x4001f8a8
+                       MX6UL_PAD_UART5_RX_DATA__I2C2_SDA               0x4001f8a8
+               >;
+       };
+
+       mux_ir_reset: irresetgrp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO03__GPIO1_IO03                0x3008
+               >;
+       };
+
+       mux_lcd_ctrl: lcdifctrlgrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_CLK__LCDIF_CLK                    0x79
+                       MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE              0x79
+                       MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC                0x79
+                       MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC                0x79
+               >;
+       };
+
+       mux_lcd_data: lcdifdatgrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA00__LCDIF_DATA00              0x79
+                       MX6UL_PAD_LCD_DATA01__LCDIF_DATA01              0x79
+                       MX6UL_PAD_LCD_DATA02__LCDIF_DATA02              0x79
+                       MX6UL_PAD_LCD_DATA03__LCDIF_DATA03              0x79
+                       MX6UL_PAD_LCD_DATA04__LCDIF_DATA04              0x79
+                       MX6UL_PAD_LCD_DATA05__LCDIF_DATA05              0x79
+                       MX6UL_PAD_LCD_DATA06__LCDIF_DATA06              0x79
+                       MX6UL_PAD_LCD_DATA07__LCDIF_DATA07              0x79
+                       MX6UL_PAD_LCD_DATA08__LCDIF_DATA08              0x79
+                       MX6UL_PAD_LCD_DATA09__LCDIF_DATA09              0x79
+                       MX6UL_PAD_LCD_DATA10__LCDIF_DATA10              0x79
+                       MX6UL_PAD_LCD_DATA11__LCDIF_DATA11              0x79
+                       MX6UL_PAD_LCD_DATA12__LCDIF_DATA12              0x79
+                       MX6UL_PAD_LCD_DATA13__LCDIF_DATA13              0x79
+                       MX6UL_PAD_LCD_DATA14__LCDIF_DATA14              0x79
+                       MX6UL_PAD_LCD_DATA15__LCDIF_DATA15              0x79
+                       MX6UL_PAD_LCD_DATA16__LCDIF_DATA16              0x79
+                       MX6UL_PAD_LCD_DATA17__LCDIF_DATA17              0x79
+               >;
+       };
+
+       mux_led_ctrl: ledctrlgrp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET1_RX_EN__GPIO2_IO02               0x3008
+               >;
+       };
+
+       mux_poweroff: poweroffgrp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET1_TX_DATA1__GPIO2_IO04            0x3008
+               >;
+       };
+
+       mux_poweroff2: poweroff2grp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET1_TX_CLK__GPIO2_IO06              0x3008
+               >;
+       };
+
+       mux_pwm: pwm1grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO08__PWM1_OUT                  0x110b0
+               >;
+       };
+
+       mux_sdhc1: sdhc1grp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD                   0x17059
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK                   0x10071
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0               0x17059
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1               0x17059
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2               0x17059
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3               0x17059
+               >;
+       };
+
+       mux_sdhc1_100mhz: sdhc1-100mhz-grp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD                   0x170b9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK                   0x170b9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0               0x170b9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1               0x170b9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2               0x170b9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3               0x170b9
+               >;
+       };
+
+       mux_sdhc1_200mhz: sdhc1-200mhz-grp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD                   0x170f9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK                   0x170f9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0               0x170f9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1               0x170f9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2               0x170f9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3               0x170f9
+               >;
+       };
+
+       mux_sdhc1_cd: sdhc1-cd-grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_RTS_B__GPIO1_IO19               0x17059
+               >;
+       };
+
+       mux_sdhc2: sdhc2grp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK                 0x10069
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD                 0x17059
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0             0x17059
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1             0x17059
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2             0x17059
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3             0x17059
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4             0x17059
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5             0x17059
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6             0x17059
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7             0x17059
+               >;
+       };
+
+       mux_spi3: ecspi3grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART2_CTS_B__ECSPI3_MOSI              0x100b1
+                       MX6UL_PAD_UART2_RX_DATA__ECSPI3_SCLK            0x100b1
+                       MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20             0x3008
+               >;
+       };
+
+       mux_uart: uartgrp {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX           0x1b0b1
+                       MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX           0x1b0b1
+               >;
+       };
+
+       mux_wdog: wdoggrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY             0x30b0
+               >;
+       };
+};
index 9c81c6baa2d39ae7cd73a34144598d513423c343..22dd72499ef27851f13fe02ece118f30cfbb40d4 100644 (file)
                                        clock-names = "snvs-rtc";
                                };
 
+                               snvs_poweroff: snvs-poweroff {
+                                       compatible = "syscon-poweroff";
+                                       regmap = <&snvs>;
+                                       offset = <0x38>;
+                                       value = <0x60>;
+                                       mask = <0x60>;
+                                       status = "disabled";
+                               };
+
                                snvs_pwrkey: snvs-powerkey {
                                        compatible = "fsl,sec-v4.0-pwrkey";
                                        regmap = <&snvs>;
diff --git a/src/arm/qcom/msm8226-motorola-falcon.dts b/src/arm/qcom/msm8226-motorola-falcon.dts
new file mode 100644 (file)
index 0000000..029e1b1
--- /dev/null
@@ -0,0 +1,359 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+/dts-v1/;
+
+#include "qcom-msm8226.dtsi"
+#include "pm8226.dtsi"
+
+/delete-node/ &smem_region;
+
+/ {
+       model = "Motorola Moto G (2013)";
+       compatible = "motorola,falcon", "qcom,msm8226";
+       chassis-type = "handset";
+
+       aliases {
+               mmc0 = &sdhc_1;
+       };
+
+       chosen {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               framebuffer@3200000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0x03200000 0x800000>;
+                       width = <720>;
+                       height = <1280>;
+                       stride = <(720 * 3)>;
+                       format = "r8g8b8";
+                       vsp-supply = <&reg_lcd_pos>;
+                       vsn-supply = <&reg_lcd_neg>;
+                       vddio-supply = <&vddio_disp_vreg>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               event-hall-sensor {
+                       label = "Hall Effect Sensor";
+                       gpios = <&tlmm 51 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       linux,can-disable;
+               };
+
+               key-volume-up {
+                       label = "Volume Up";
+                       gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
+       };
+
+       vddio_disp_vreg: regulator-vddio-disp {
+               compatible = "regulator-fixed";
+               regulator-name = "vddio_disp";
+               gpio = <&tlmm 34 GPIO_ACTIVE_HIGH>;
+               vin-supply = <&pm8226_l8>;
+               startup-delay-us = <300>;
+               enable-active-high;
+               regulator-boot-on;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               framebuffer@3200000 {
+                       reg = <0x03200000 0x800000>;
+                       no-map;
+               };
+
+               dhob@f500000 {
+                       reg = <0x0f500000 0x40000>;
+                       no-map;
+               };
+
+               shob@f540000 {
+                       reg = <0x0f540000 0x2000>;
+                       no-map;
+               };
+
+               smem_region: smem@fa00000 {
+                       reg = <0x0fa00000 0x100000>;
+                       no-map;
+               };
+
+               /* Actually <0x0fa00000 0x500000>, but first 100000 is smem */
+               reserved@fb00000 {
+                       reg = <0x0fb00000 0x400000>;
+                       no-map;
+               };
+       };
+};
+
+&blsp1_i2c3 {
+       status = "okay";
+
+       regulator@3e {
+               compatible = "ti,tps65132";
+               reg = <0x3e>;
+               pinctrl-0 = <&reg_lcd_default>;
+               pinctrl-names = "default";
+
+               reg_lcd_pos: outp {
+                       regulator-name = "outp";
+                       regulator-min-microvolt = <4000000>;
+                       regulator-max-microvolt = <6000000>;
+                       regulator-active-discharge = <1>;
+                       regulator-boot-on;
+                       enable-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
+               };
+
+               reg_lcd_neg: outn {
+                       regulator-name = "outn";
+                       regulator-min-microvolt = <4000000>;
+                       regulator-max-microvolt = <6000000>;
+                       regulator-active-discharge = <1>;
+                       regulator-boot-on;
+                       enable-gpios = <&tlmm 33 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp108";
+               reg = <0x48>;
+               interrupts-extended = <&tlmm 13 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&temp_alert_default>;
+               pinctrl-names = "default";
+               #thermal-sensor-cells = <0>;
+       };
+};
+
+&pm8226_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&pm8226_vib {
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-pm8226-regulators";
+
+               pm8226_s3: s3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               pm8226_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2200000>;
+               };
+
+               pm8226_s5: s5 {
+                       regulator-min-microvolt = <1150000>;
+                       regulator-max-microvolt = <1150000>;
+               };
+
+               pm8226_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8226_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l3: l3 {
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <1337500>;
+               };
+
+               pm8226_l4: l4 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l5: l5 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-allow-set-load;
+               };
+
+               pm8226_l7: l7 {
+                       regulator-min-microvolt = <1850000>;
+                       regulator-max-microvolt = <1850000>;
+               };
+
+               pm8226_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l9: l9 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8226_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l14: l14 {
+                       regulator-min-microvolt = <2750000>;
+                       regulator-max-microvolt = <2750000>;
+               };
+
+               pm8226_l15: l15 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+               };
+
+               pm8226_l16: l16 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3350000>;
+               };
+
+               pm8226_l17: l17 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_l18: l18 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_l19: l19 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8226_l20: l20 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+
+               pm8226_l21: l21 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-allow-set-load;
+               };
+
+               pm8226_l22: l22 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_l23: l23 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_l24: l24 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+
+               pm8226_l25: l25 {
+                       regulator-min-microvolt = <1775000>;
+                       regulator-max-microvolt = <2125000>;
+               };
+
+               pm8226_l26: l26 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8226_l27: l27 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8226_l28: l28 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3400000>;
+                       regulator-boot-on;
+               };
+
+               pm8226_lvs1: lvs1 {
+                       regulator-always-on;
+               };
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm8226_l17>;
+       vqmmc-supply = <&pm8226_l6>;
+
+       bus-width = <8>;
+       non-removable;
+
+       status = "okay";
+};
+
+&smbb {
+       qcom,fast-charge-safe-current = <2000000>;
+       qcom,fast-charge-current-limit = <1900000>;
+       qcom,fast-charge-safe-voltage = <4400000>;
+       qcom,minimum-input-voltage = <4300000>;
+
+       status = "okay";
+};
+
+&tlmm {
+       reg_lcd_default: reg-lcd-default-state {
+               pins = "gpio31", "gpio33";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-high;
+       };
+
+       reg_vddio_disp_default: reg-vddio-disp-default-state {
+               pins = "gpio34";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-high;
+       };
+
+       temp_alert_default: temp-alert-default-state {
+               pins = "gpio13";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-disable;
+       };
+};
+
+&usb {
+       extcon = <&smbb>;
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&smbb>;
+       v1p8-supply = <&pm8226_l10>;
+       v3p3-supply = <&pm8226_l20>;
+};
index 9a5ba978775aaa7c784cc676f799cf400333a26f..11e60b74c3c9d84c30e9eba5fbdb639a2595a646 100644 (file)
@@ -87,7 +87,7 @@
                };
 
                idle-states {
-                       CPU_SPC: spc {
+                       CPU_SPC: cpu-spc {
                                compatible = "qcom,idle-state-spc",
                                                "arm,idle-state";
                                entry-latency-us = <400>;
                                 <&gcc PCIE_PHY_RESET>;
                        reset-names = "axi", "ahb", "por", "pci", "phy";
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                hdmi: hdmi-tx@4a00000 {
index 8204e64d9a97fec9d45cce3edb4dfd2052c9bf28..ca53dff820ef4ba1edfda75a29961ea9d7beb262 100644 (file)
@@ -79,7 +79,7 @@
                };
 
                idle-states {
-                       CPU_SPC: spc {
+                       CPU_SPC: cpu-spc {
                                compatible = "qcom,idle-state-spc",
                                                "arm,idle-state";
                                entry-latency-us = <150>;
index 681cb3fc8085dfd6ab9fe89daa0de281c157f641..0fb65f2bbcdfe79acfb745a1050824005a488df3 100644 (file)
                                      "phy_ahb";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                qpic_bam: dma-controller@7984000 {
                        reg = <0x90000 0x64>;
                        status = "disabled";
 
-                       ethphy0: ethernet-phy@0 {
+                       ethernet-phy-package@0 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "qcom,qca8075-package";
                                reg = <0>;
-                       };
 
-                       ethphy1: ethernet-phy@1 {
-                               reg = <1>;
-                       };
+                               qcom,tx-drive-strength-milliwatt = <300>;
 
-                       ethphy2: ethernet-phy@2 {
-                               reg = <2>;
-                       };
+                               ethphy0: ethernet-phy@0 {
+                                       reg = <0>;
+                               };
 
-                       ethphy3: ethernet-phy@3 {
-                               reg = <3>;
-                       };
+                               ethphy1: ethernet-phy@1 {
+                                       reg = <1>;
+                               };
+
+                               ethphy2: ethernet-phy@2 {
+                                       reg = <2>;
+                               };
+
+                               ethphy3: ethernet-phy@3 {
+                                       reg = <3>;
+                               };
 
-                       ethphy4: ethernet-phy@4 {
-                               reg = <4>;
+                               ethphy4: ethernet-phy@4 {
+                                       reg = <4>;
+                               };
                        };
                };
 
index 2eb6758b6a3a6f7c80bddfb89b31644fa51eaf5b..f128510d844556c989201d412308e5aed86e1f8c 100644 (file)
 
                        status = "disabled";
                        perst-gpios = <&qcom_pinmux 3 GPIO_ACTIVE_LOW>;
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1: pcie@1b700000 {
 
                        status = "disabled";
                        perst-gpios = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>;
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie2: pcie@1b900000 {
 
                        status = "disabled";
                        perst-gpios = <&qcom_pinmux 63 GPIO_ACTIVE_LOW>;
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                qsgmii_csr: syscon@1bb00000 {
index 36328dbe4212bd6038527386ee9c82af5f656d01..1ba403b83cb1d4e92b218ab6b9a44ed4f9d4308a 100644 (file)
@@ -26,7 +26,7 @@
 };
 
 &CPU_SLEEP_0 {
-       compatible = "qcom,idle-state-spc";
+       compatible = "qcom,idle-state-spc", "arm,idle-state";
 };
 
 &cpu0_acc {
index 5efc38d712cce272c9b5517b2202721d70119905..5651bb31bd54247db23019a7fdd77fe10e7fcf0e 100644 (file)
@@ -14,6 +14,8 @@
        #size-cells = <1>;
        interrupt-parent = <&intc>;
 
+       chosen { };
+
        clocks {
                xo_board: xo_board {
                        compatible = "fixed-clock";
@@ -85,7 +87,7 @@
                };
 
                idle-states {
-                       CPU_SPC: spc {
+                       CPU_SPC: cpu-spc {
                                compatible = "qcom,idle-state-spc",
                                                "arm,idle-state";
                                entry-latency-us = <150>;
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x0>;
        };
diff --git a/src/arm/qcom/qcom-msm8974pro-samsung-klte-common.dtsi b/src/arm/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
new file mode 100644 (file)
index 0000000..b5443fd
--- /dev/null
@@ -0,0 +1,818 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro.dtsi"
+#include "pma8084.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       chassis-type = "handset";
+
+       aliases {
+               serial0 = &blsp1_uart1;
+               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+               mmc1 = &sdhc_3; /* SDC2 SD card slot */
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+
+               key-volume-down {
+                       label = "volume_down";
+                       gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <15>;
+               };
+
+               key-home {
+                       label = "home_key";
+                       gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_HOMEPAGE>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+
+               key-volume-up {
+                       label = "volume_up";
+                       gpios = <&pma8084_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
+       };
+
+       i2c-gpio-touchkey {
+               compatible = "i2c-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               sda-gpios = <&tlmm 95 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 96 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c_touchkey_pins>;
+
+               touchkey@20 {
+                       compatible = "cypress,tm2-touchkey";
+                       reg = <0x20>;
+
+                       interrupt-parent = <&pma8084_gpios>;
+                       interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&touchkey_pin>;
+
+                       vcc-supply = <&max77826_ldo15>;
+                       vdd-supply = <&pma8084_l19>;
+
+                       linux,keycodes = <KEY_APPSELECT KEY_BACK>;
+               };
+       };
+
+       i2c_led_gpio: i2c-gpio-led {
+               compatible = "i2c-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c_led_gpioex_pins>;
+
+               i2c-gpio,delay-us = <2>;
+
+               gpio_expander: gpio@20 {
+                       compatible = "nxp,pcal6416";
+                       reg = <0x20>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       vcc-supply = <&pma8084_s4>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpioex_pin>;
+
+                       reset-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
+               };
+
+               led-controller@30 {
+                       compatible = "panasonic,an30259a";
+                       reg = <0x30>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@1 {
+                               reg = <1>;
+                               function = LED_FUNCTION_STATUS;
+                               color = <LED_COLOR_ID_RED>;
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               function = LED_FUNCTION_STATUS;
+                               color = <LED_COLOR_ID_GREEN>;
+                       };
+
+                       led@3 {
+                               reg = <3>;
+                               function = LED_FUNCTION_STATUS;
+                               color = <LED_COLOR_ID_BLUE>;
+                       };
+               };
+       };
+
+       vreg_wlan: wlan-regulator {
+               compatible = "regulator-fixed";
+
+               regulator-name = "wl-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&gpio_expander 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       vreg_panel: panel-regulator {
+               compatible = "regulator-fixed";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&panel_en_pin>;
+
+               regulator-name = "panel-vddr-reg";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+
+               gpio = <&pma8084_gpios 14 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       vreg_vph_pwr: vreg-vph-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "vph-pwr";
+
+               regulator-min-microvolt = <3600000>;
+               regulator-max-microvolt = <3600000>;
+
+               regulator-always-on;
+       };
+};
+
+&blsp1_i2c2 {
+       status = "okay";
+
+       touchscreen@20 {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x20>;
+
+               interrupt-parent = <&pma8084_gpios>;
+               interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+
+               vdd-supply = <&max77826_ldo13>;
+               vio-supply = <&pma8084_lvs2>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&touch_pin>;
+
+               syna,startup-delay-ms = <100>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
+               };
+
+               rmi4-f12@12 {
+                       reg = <0x12>;
+                       syna,sensor-type = <1>;
+               };
+       };
+};
+
+&blsp1_i2c6 {
+       status = "okay";
+
+       pmic@60 {
+               reg = <0x60>;
+               compatible = "maxim,max77826";
+
+               regulators {
+                       max77826_ldo1: LDO1 {
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       max77826_ldo2: LDO2 {
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                       };
+
+                       max77826_ldo3: LDO3 {
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       max77826_ldo4: LDO4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       max77826_ldo5: LDO5 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       max77826_ldo6: LDO6 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       max77826_ldo7: LDO7 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       max77826_ldo8: LDO8 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       max77826_ldo9: LDO9 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       max77826_ldo10: LDO10 {
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2950000>;
+                       };
+
+                       max77826_ldo11: LDO11 {
+                               regulator-min-microvolt = <2700000>;
+                               regulator-max-microvolt = <2950000>;
+                       };
+
+                       max77826_ldo12: LDO12 {
+                               regulator-min-microvolt = <2500000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       max77826_ldo13: LDO13 {
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       max77826_ldo14: LDO14 {
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       max77826_ldo15: LDO15 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       max77826_buck: BUCK {
+                               regulator-min-microvolt = <1225000>;
+                               regulator-max-microvolt = <1225000>;
+                       };
+
+                       max77826_buckboost: BUCKBOOST {
+                               regulator-min-microvolt = <3400000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+               };
+       };
+};
+
+&blsp1_uart2 {
+       status = "okay";
+};
+
+&blsp2_i2c6 {
+       status = "okay";
+
+       fuelgauge@36 {
+               compatible = "maxim,max17048";
+               reg = <0x36>;
+
+               maxim,double-soc;
+               maxim,rcomp = /bits/ 8 <0x56>;
+
+               interrupt-parent = <&pma8084_gpios>;
+               interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&fuelgauge_pin>;
+       };
+};
+
+&blsp2_uart2 {
+       status = "okay";
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&blsp2_uart2_pins_active>;
+       pinctrl-1 = <&blsp2_uart2_pins_sleep>;
+
+       bluetooth {
+               compatible = "brcm,bcm43540-bt";
+               max-speed = <3000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_pins>;
+               device-wakeup-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpio_expander 9 GPIO_ACTIVE_HIGH>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <75 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wakeup";
+       };
+};
+
+&gpu {
+       status = "okay";
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi0 {
+       status = "okay";
+
+       vdda-supply = <&pma8084_l2>;
+       vdd-supply = <&pma8084_l22>;
+       vddio-supply = <&pma8084_l12>;
+
+       panel: panel@0 {
+               reg = <0>;
+               compatible = "samsung,s6e3fa2";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&panel_te_pin &panel_rst_pin>;
+
+               iovdd-supply = <&pma8084_lvs4>;
+               vddr-supply = <&vreg_panel>;
+
+               reset-gpios = <&pma8084_gpios 17 GPIO_ACTIVE_LOW>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&panel_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+       status = "okay";
+
+       vddio-supply = <&pma8084_l12>;
+};
+
+&pma8084_gpios {
+       gpio_keys_pin_a: gpio-keys-active-state {
+               pins = "gpio2", "gpio3", "gpio5";
+               function = "normal";
+
+               bias-pull-up;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+
+       touchkey_pin: touchkey-int-state {
+               pins = "gpio6";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+
+       touch_pin: touchscreen-int-state {
+               pins = "gpio8";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+
+       panel_en_pin: panel-en-state {
+               pins = "gpio14";
+               function = "normal";
+               bias-pull-up;
+               power-source = <PMA8084_GPIO_S4>;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+       };
+
+       wlan_sleep_clk_pin: wlan-sleep-clk-state {
+               pins = "gpio16";
+               function = "func2";
+
+               output-high;
+               power-source = <PMA8084_GPIO_S4>;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+       };
+
+       panel_rst_pin: panel-rst-state {
+               pins = "gpio17";
+               function = "normal";
+               bias-disable;
+               power-source = <PMA8084_GPIO_S4>;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+       };
+
+       fuelgauge_pin: fuelgauge-int-state {
+               pins = "gpio21";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+};
+
+&remoteproc_adsp {
+       status = "okay";
+       cx-supply = <&pma8084_s2>;
+};
+
+&remoteproc_mss {
+       status = "okay";
+       cx-supply = <&pma8084_s2>;
+       mss-supply = <&pma8084_s6>;
+       mx-supply = <&pma8084_s1>;
+       pll-supply = <&pma8084_l12>;
+};
+
+&rpm_requests {
+       regulators-0 {
+               compatible = "qcom,rpm-pma8084-regulators";
+
+               pma8084_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+                       regulator-always-on;
+               };
+
+               pma8084_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pma8084_s3: s3 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               pma8084_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pma8084_s5: s5 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+               };
+
+               pma8084_s6: s6 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pma8084_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pma8084_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pma8084_l3: l3 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pma8084_l4: l4 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pma8084_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pma8084_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pma8084_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pma8084_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pma8084_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pma8084_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pma8084_l11: l11 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               pma8084_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+               };
+
+               pma8084_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pma8084_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pma8084_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pma8084_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pma8084_l17: l17 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pma8084_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pma8084_l19: l19 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pma8084_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+               };
+
+               pma8084_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+               };
+
+               pma8084_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pma8084_l23: l23 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pma8084_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+
+               pma8084_l25: l25 {
+                       regulator-min-microvolt = <2100000>;
+                       regulator-max-microvolt = <2100000>;
+               };
+
+               pma8084_l26: l26 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pma8084_l27: l27 {
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pma8084_lvs1: lvs1 {};
+               pma8084_lvs2: lvs2 {};
+               pma8084_lvs3: lvs3 {};
+               pma8084_lvs4: lvs4 {};
+
+               pma8084_5vs1: 5vs1 {};
+       };
+};
+
+&sdhc_1 {
+       status = "okay";
+
+       vmmc-supply = <&pma8084_l20>;
+       vqmmc-supply = <&pma8084_s4>;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+};
+
+&sdhc_2 {
+       status = "okay";
+       max-frequency = <100000000>;
+       vmmc-supply = <&vreg_wlan>;
+       vqmmc-supply = <&pma8084_s4>;
+       non-removable;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+
+       wifi@1 {
+               reg = <1>;
+               compatible = "brcm,bcm4329-fmac";
+
+               /*
+                * Allow all klte* variants to load the same NVRAM file,
+                * as they have little difference in the WiFi part.
+                */
+               brcm,board-type = "samsung,klte";
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wake";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>;
+       };
+};
+
+&sdhc_3 {
+       status = "okay";
+       max-frequency = <100000000>;
+       vmmc-supply = <&pma8084_l21>;
+       vqmmc-supply = <&pma8084_l13>;
+
+       /*
+        * cd-gpio is intentionally disabled. If enabled, an SD card
+        * present during boot is not initialized correctly. Without
+        * cd-gpios the driver resorts to polling, so hotplug works.
+        */
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdc3_on /* &sdhc3_cd_pin */>;
+       /* cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>; */
+};
+
+&tlmm {
+       /* This seems suspicious, but somebody with this device should look into it. */
+       blsp2_uart2_pins_active: blsp2-uart2-pins-active-state {
+               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+               function = "blsp_uart8";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       blsp2_uart2_pins_sleep: blsp2-uart2-pins-sleep-state {
+               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       bt_pins: bt-pins-state {
+               hostwake-pins {
+                       pins = "gpio75";
+                       function = "gpio";
+                       drive-strength = <16>;
+               };
+
+               devwake-pins {
+                       pins = "gpio91";
+                       function = "gpio";
+                       drive-strength = <2>;
+               };
+       };
+
+       sdc1_on: sdhc1-on-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <4>;
+                       bias-disable;
+               };
+
+               cmd-data-pins {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <4>;
+                       bias-pull-up;
+               };
+       };
+
+       sdc3_on: sdc3-on-state {
+               pins = "gpio35", "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
+               function = "sdc3";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       sdhc3_cd_pin: sdc3-cd-on-state {
+               pins = "gpio62";
+               function = "gpio";
+
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       sdc2_on: sdhc2-on-state {
+               clk-pins {
+                       pins = "sdc2_clk";
+                       drive-strength = <6>;
+                       bias-disable;
+               };
+
+               cmd-data-pins {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+       };
+
+       i2c_touchkey_pins: i2c-touchkey-state {
+               pins = "gpio95", "gpio96";
+               function = "gpio";
+               bias-pull-up;
+       };
+
+       i2c_led_gpioex_pins: i2c-led-gpioex-state {
+               function = "gpio";
+               bias-pull-down;
+       };
+
+       gpioex_pin: gpioex-state {
+               pins = "gpio145";
+               function = "gpio";
+               bias-pull-up;
+               drive-strength = <2>;
+       };
+
+       wifi_pin: wifi-state {
+               pins = "gpio92";
+               function = "gpio";
+               bias-pull-down;
+       };
+
+       panel_te_pin: panel-state {
+               pins = "gpio12";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
+
+&usb {
+       status = "okay";
+
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+};
+
+&usb_hs1_phy {
+       status = "okay";
+
+       v1p8-supply = <&pma8084_l6>;
+       v3p3-supply = <&pma8084_l24>;
+
+       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+};
index b93539e2b87e91b2ec03c346f71078a2bd6b9044..954665f3a9dd94f02b5614ad2e370aaf7cef5311 100644 (file)
 // SPDX-License-Identifier: GPL-2.0
-#include "qcom-msm8974pro.dtsi"
-#include "pma8084.dtsi"
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
-#include <dt-bindings/leds/common.h>
+#include "qcom-msm8974pro-samsung-klte-common.dtsi"
 
 / {
        model = "Samsung Galaxy S5";
        compatible = "samsung,klte", "qcom,msm8974pro", "qcom,msm8974";
-       chassis-type = "handset";
-
-       aliases {
-               serial0 = &blsp1_uart1;
-               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
-               mmc1 = &sdhc_3; /* SDC2 SD card slot */
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       gpio-keys {
-               compatible = "gpio-keys";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_keys_pin_a>;
-
-               key-volume-down {
-                       label = "volume_down";
-                       gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEDOWN>;
-                       debounce-interval = <15>;
-               };
-
-               key-home {
-                       label = "home_key";
-                       gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_HOMEPAGE>;
-                       wakeup-source;
-                       debounce-interval = <15>;
-               };
-
-               key-volume-up {
-                       label = "volume_up";
-                       gpios = <&pma8084_gpios 5 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEUP>;
-                       debounce-interval = <15>;
-               };
-       };
-
-       i2c-gpio-touchkey {
-               compatible = "i2c-gpio";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               sda-gpios = <&tlmm 95 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-               scl-gpios = <&tlmm 96 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c_touchkey_pins>;
-
-               touchkey@20 {
-                       compatible = "cypress,tm2-touchkey";
-                       reg = <0x20>;
-
-                       interrupt-parent = <&pma8084_gpios>;
-                       interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&touchkey_pin>;
-
-                       vcc-supply = <&max77826_ldo15>;
-                       vdd-supply = <&pma8084_l19>;
-
-                       linux,keycodes = <KEY_APPSELECT KEY_BACK>;
-               };
-       };
-
-       i2c-gpio-led {
-               compatible = "i2c-gpio";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-               sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c_led_gpioex_pins>;
-
-               i2c-gpio,delay-us = <2>;
-
-               gpio_expander: gpio@20 {
-                       compatible = "nxp,pcal6416";
-                       reg = <0x20>;
-
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       vcc-supply = <&pma8084_s4>;
-
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&gpioex_pin>;
-
-                       reset-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
-               };
-
-               led-controller@30 {
-                       compatible = "panasonic,an30259a";
-                       reg = <0x30>;
-
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       led@1 {
-                               reg = <1>;
-                               function = LED_FUNCTION_STATUS;
-                               color = <LED_COLOR_ID_RED>;
-                       };
-
-                       led@2 {
-                               reg = <2>;
-                               function = LED_FUNCTION_STATUS;
-                               color = <LED_COLOR_ID_GREEN>;
-                       };
-
-                       led@3 {
-                               reg = <3>;
-                               function = LED_FUNCTION_STATUS;
-                               color = <LED_COLOR_ID_BLUE>;
-                       };
-               };
-       };
-
-       vreg_wlan: wlan-regulator {
-               compatible = "regulator-fixed";
-
-               regulator-name = "wl-reg";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-
-               gpio = <&gpio_expander 8 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-       };
-
-       vreg_panel: panel-regulator {
-               compatible = "regulator-fixed";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&panel_en_pin>;
-
-               regulator-name = "panel-vddr-reg";
-               regulator-min-microvolt = <1500000>;
-               regulator-max-microvolt = <1500000>;
-
-               gpio = <&pma8084_gpios 14 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-       };
-
-       vreg_vph_pwr: vreg-vph-pwr {
-               compatible = "regulator-fixed";
-               regulator-name = "vph-pwr";
-
-               regulator-min-microvolt = <3600000>;
-               regulator-max-microvolt = <3600000>;
-
-               regulator-always-on;
-       };
-};
-
-&blsp1_i2c2 {
-       status = "okay";
-
-       touchscreen@20 {
-               compatible = "syna,rmi4-i2c";
-               reg = <0x20>;
-
-               interrupt-parent = <&pma8084_gpios>;
-               interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
-
-               vdd-supply = <&max77826_ldo13>;
-               vio-supply = <&pma8084_lvs2>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&touch_pin>;
-
-               syna,startup-delay-ms = <100>;
-
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               rmi4-f01@1 {
-                       reg = <0x1>;
-                       syna,nosleep-mode = <1>;
-               };
-
-               rmi4-f12@12 {
-                       reg = <0x12>;
-                       syna,sensor-type = <1>;
-               };
-       };
-};
-
-&blsp1_i2c6 {
-       status = "okay";
-
-       pmic@60 {
-               reg = <0x60>;
-               compatible = "maxim,max77826";
-
-               regulators {
-                       max77826_ldo1: LDO1 {
-                               regulator-min-microvolt = <1200000>;
-                               regulator-max-microvolt = <1200000>;
-                       };
-
-                       max77826_ldo2: LDO2 {
-                               regulator-min-microvolt = <1000000>;
-                               regulator-max-microvolt = <1000000>;
-                       };
-
-                       max77826_ldo3: LDO3 {
-                               regulator-min-microvolt = <1200000>;
-                               regulator-max-microvolt = <1200000>;
-                       };
-
-                       max77826_ldo4: LDO4 {
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                       };
-
-                       max77826_ldo5: LDO5 {
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                       };
-
-                       max77826_ldo6: LDO6 {
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <3300000>;
-                       };
-
-                       max77826_ldo7: LDO7 {
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                       };
-
-                       max77826_ldo8: LDO8 {
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <3300000>;
-                       };
-
-                       max77826_ldo9: LDO9 {
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                       };
-
-                       max77826_ldo10: LDO10 {
-                               regulator-min-microvolt = <2800000>;
-                               regulator-max-microvolt = <2950000>;
-                       };
-
-                       max77826_ldo11: LDO11 {
-                               regulator-min-microvolt = <2700000>;
-                               regulator-max-microvolt = <2950000>;
-                       };
-
-                       max77826_ldo12: LDO12 {
-                               regulator-min-microvolt = <2500000>;
-                               regulator-max-microvolt = <3300000>;
-                       };
-
-                       max77826_ldo13: LDO13 {
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3300000>;
-                       };
-
-                       max77826_ldo14: LDO14 {
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3300000>;
-                       };
-
-                       max77826_ldo15: LDO15 {
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                       };
-
-                       max77826_buck: BUCK {
-                               regulator-min-microvolt = <1225000>;
-                               regulator-max-microvolt = <1225000>;
-                       };
-
-                       max77826_buckboost: BUCKBOOST {
-                               regulator-min-microvolt = <3400000>;
-                               regulator-max-microvolt = <3400000>;
-                       };
-               };
-       };
-};
-
-&blsp1_uart2 {
-       status = "okay";
-};
-
-&blsp2_i2c6 {
-       status = "okay";
-
-       fuelgauge@36 {
-               compatible = "maxim,max17048";
-               reg = <0x36>;
-
-               maxim,double-soc;
-               maxim,rcomp = /bits/ 8 <0x56>;
-
-               interrupt-parent = <&pma8084_gpios>;
-               interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&fuelgauge_pin>;
-       };
-};
-
-&blsp2_uart2 {
-       status = "okay";
-
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&blsp2_uart2_pins_active>;
-       pinctrl-1 = <&blsp2_uart2_pins_sleep>;
-
-       bluetooth {
-               compatible = "brcm,bcm43540-bt";
-               max-speed = <3000000>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&bt_pins>;
-               device-wakeup-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>;
-               shutdown-gpios = <&gpio_expander 9 GPIO_ACTIVE_HIGH>;
-               interrupt-parent = <&tlmm>;
-               interrupts = <75 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "host-wakeup";
-       };
-};
-
-&gpu {
-       status = "okay";
-};
-
-&mdss {
-       status = "okay";
-};
-
-&mdss_dsi0 {
-       status = "okay";
-
-       vdda-supply = <&pma8084_l2>;
-       vdd-supply = <&pma8084_l22>;
-       vddio-supply = <&pma8084_l12>;
-
-       panel: panel@0 {
-               reg = <0>;
-               compatible = "samsung,s6e3fa2";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&panel_te_pin &panel_rst_pin>;
-
-               iovdd-supply = <&pma8084_lvs4>;
-               vddr-supply = <&vreg_panel>;
-
-               reset-gpios = <&pma8084_gpios 17 GPIO_ACTIVE_LOW>;
-
-               port {
-                       panel_in: endpoint {
-                               remote-endpoint = <&mdss_dsi0_out>;
-                       };
-               };
-       };
-};
-
-&mdss_dsi0_out {
-       remote-endpoint = <&panel_in>;
-       data-lanes = <0 1 2 3>;
-};
-
-&mdss_dsi0_phy {
-       status = "okay";
-
-       vddio-supply = <&pma8084_l12>;
 };
 
-&pma8084_gpios {
-       gpio_keys_pin_a: gpio-keys-active-state {
-               pins = "gpio2", "gpio3", "gpio5";
-               function = "normal";
-
-               bias-pull-up;
-               power-source = <PMA8084_GPIO_S4>;
-       };
-
-       touchkey_pin: touchkey-int-state {
-               pins = "gpio6";
-               function = "normal";
-               bias-disable;
-               input-enable;
-               power-source = <PMA8084_GPIO_S4>;
-       };
-
-       touch_pin: touchscreen-int-state {
-               pins = "gpio8";
-               function = "normal";
-               bias-disable;
-               input-enable;
-               power-source = <PMA8084_GPIO_S4>;
-       };
-
-       panel_en_pin: panel-en-state {
-               pins = "gpio14";
-               function = "normal";
-               bias-pull-up;
-               power-source = <PMA8084_GPIO_S4>;
-               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
-       };
-
-       wlan_sleep_clk_pin: wlan-sleep-clk-state {
-               pins = "gpio16";
-               function = "func2";
-
-               output-high;
-               power-source = <PMA8084_GPIO_S4>;
-               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
-       };
-
-       panel_rst_pin: panel-rst-state {
-               pins = "gpio17";
-               function = "normal";
-               bias-disable;
-               power-source = <PMA8084_GPIO_S4>;
-               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
-       };
-
-       fuelgauge_pin: fuelgauge-int-state {
-               pins = "gpio21";
-               function = "normal";
-               bias-disable;
-               input-enable;
-               power-source = <PMA8084_GPIO_S4>;
-       };
+&i2c_led_gpio {
+       scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 };
 
-&remoteproc_adsp {
-       status = "okay";
-       cx-supply = <&pma8084_s2>;
-};
-
-&remoteproc_mss {
-       status = "okay";
-       cx-supply = <&pma8084_s2>;
-       mss-supply = <&pma8084_s6>;
-       mx-supply = <&pma8084_s1>;
-       pll-supply = <&pma8084_l12>;
-};
-
-&rpm_requests {
-       regulators-0 {
-               compatible = "qcom,rpm-pma8084-regulators";
-
-               pma8084_s1: s1 {
-                       regulator-min-microvolt = <675000>;
-                       regulator-max-microvolt = <1050000>;
-                       regulator-always-on;
-               };
-
-               pma8084_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
-               pma8084_s3: s3 {
-                       regulator-min-microvolt = <1300000>;
-                       regulator-max-microvolt = <1300000>;
-               };
-
-               pma8084_s4: s4 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-               };
-
-               pma8084_s5: s5 {
-                       regulator-min-microvolt = <2150000>;
-                       regulator-max-microvolt = <2150000>;
-               };
-
-               pma8084_s6: s6 {
-                       regulator-min-microvolt = <1050000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
-               pma8084_l1: l1 {
-                       regulator-min-microvolt = <1225000>;
-                       regulator-max-microvolt = <1225000>;
-               };
-
-               pma8084_l2: l2 {
-                       regulator-min-microvolt = <1200000>;
-                       regulator-max-microvolt = <1200000>;
-               };
-
-               pma8084_l3: l3 {
-                       regulator-min-microvolt = <1050000>;
-                       regulator-max-microvolt = <1200000>;
-               };
-
-               pma8084_l4: l4 {
-                       regulator-min-microvolt = <1200000>;
-                       regulator-max-microvolt = <1225000>;
-               };
-
-               pma8084_l5: l5 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-               };
-
-               pma8084_l6: l6 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-               };
-
-               pma8084_l7: l7 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-               };
-
-               pma8084_l8: l8 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-               };
-
-               pma8084_l9: l9 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <2950000>;
-               };
-
-               pma8084_l10: l10 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <2950000>;
-               };
-
-               pma8084_l11: l11 {
-                       regulator-min-microvolt = <1300000>;
-                       regulator-max-microvolt = <1300000>;
-               };
-
-               pma8084_l12: l12 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-                       regulator-always-on;
-               };
-
-               pma8084_l13: l13 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <2950000>;
-               };
-
-               pma8084_l14: l14 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-               };
-
-               pma8084_l15: l15 {
-                       regulator-min-microvolt = <2050000>;
-                       regulator-max-microvolt = <2050000>;
-               };
-
-               pma8084_l16: l16 {
-                       regulator-min-microvolt = <2700000>;
-                       regulator-max-microvolt = <2700000>;
-               };
-
-               pma8084_l17: l17 {
-                       regulator-min-microvolt = <2850000>;
-                       regulator-max-microvolt = <2850000>;
-               };
-
-               pma8084_l18: l18 {
-                       regulator-min-microvolt = <2850000>;
-                       regulator-max-microvolt = <2850000>;
-               };
-
-               pma8084_l19: l19 {
-                       regulator-min-microvolt = <3300000>;
-                       regulator-max-microvolt = <3300000>;
-               };
-
-               pma8084_l20: l20 {
-                       regulator-min-microvolt = <2950000>;
-                       regulator-max-microvolt = <2950000>;
-                       regulator-system-load = <200000>;
-                       regulator-allow-set-load;
-               };
-
-               pma8084_l21: l21 {
-                       regulator-min-microvolt = <2950000>;
-                       regulator-max-microvolt = <2950000>;
-                       regulator-system-load = <200000>;
-                       regulator-allow-set-load;
-               };
-
-               pma8084_l22: l22 {
-                       regulator-min-microvolt = <3000000>;
-                       regulator-max-microvolt = <3300000>;
-               };
-
-               pma8084_l23: l23 {
-                       regulator-min-microvolt = <3000000>;
-                       regulator-max-microvolt = <3000000>;
-               };
-
-               pma8084_l24: l24 {
-                       regulator-min-microvolt = <3075000>;
-                       regulator-max-microvolt = <3075000>;
-               };
-
-               pma8084_l25: l25 {
-                       regulator-min-microvolt = <2100000>;
-                       regulator-max-microvolt = <2100000>;
-               };
-
-               pma8084_l26: l26 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <2050000>;
-               };
-
-               pma8084_l27: l27 {
-                       regulator-min-microvolt = <1000000>;
-                       regulator-max-microvolt = <1225000>;
-               };
-
-               pma8084_lvs1: lvs1 {};
-               pma8084_lvs2: lvs2 {};
-               pma8084_lvs3: lvs3 {};
-               pma8084_lvs4: lvs4 {};
-
-               pma8084_5vs1: 5vs1 {};
-       };
-};
-
-&sdhc_1 {
-       status = "okay";
-
-       vmmc-supply = <&pma8084_l20>;
-       vqmmc-supply = <&pma8084_s4>;
-
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&sdc1_on>;
-       pinctrl-1 = <&sdc1_off>;
-};
-
-&sdhc_2 {
-       status = "okay";
-       max-frequency = <100000000>;
-       vmmc-supply = <&vreg_wlan>;
-       vqmmc-supply = <&pma8084_s4>;
-       non-removable;
-
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&sdc2_on>;
-       pinctrl-1 = <&sdc2_off>;
-
-       wifi@1 {
-               reg = <1>;
-               compatible = "brcm,bcm4329-fmac";
-
-               interrupt-parent = <&tlmm>;
-               interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "host-wake";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>;
-       };
-};
-
-&sdhc_3 {
-       status = "okay";
-       max-frequency = <100000000>;
-       vmmc-supply = <&pma8084_l21>;
-       vqmmc-supply = <&pma8084_l13>;
-
-       /*
-        * cd-gpio is intentionally disabled. If enabled, an SD card
-        * present during boot is not initialized correctly. Without
-        * cd-gpios the driver resorts to polling, so hotplug works.
-        */
-       pinctrl-names = "default";
-       pinctrl-0 = <&sdc3_on /* &sdhc3_cd_pin */>;
-       /* cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>; */
-};
-
-&tlmm {
-       /* This seems suspicious, but somebody with this device should look into it. */
-       blsp2_uart2_pins_active: blsp2-uart2-pins-active-state {
-               pins = "gpio45", "gpio46", "gpio47", "gpio48";
-               function = "blsp_uart8";
-               drive-strength = <8>;
-               bias-disable;
-       };
-
-       blsp2_uart2_pins_sleep: blsp2-uart2-pins-sleep-state {
-               pins = "gpio45", "gpio46", "gpio47", "gpio48";
-               function = "gpio";
-               drive-strength = <2>;
-               bias-pull-down;
-       };
-
-       bt_pins: bt-pins-state {
-               hostwake-pins {
-                       pins = "gpio75";
-                       function = "gpio";
-                       drive-strength = <16>;
-               };
-
-               devwake-pins {
-                       pins = "gpio91";
-                       function = "gpio";
-                       drive-strength = <2>;
-               };
-       };
-
-       sdc1_on: sdhc1-on-state {
-               clk-pins {
-                       pins = "sdc1_clk";
-                       drive-strength = <4>;
-                       bias-disable;
-               };
-
-               cmd-data-pins {
-                       pins = "sdc1_cmd", "sdc1_data";
-                       drive-strength = <4>;
-                       bias-pull-up;
-               };
-       };
-
-       sdc3_on: sdc3-on-state {
-               pins = "gpio35", "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
-               function = "sdc3";
-               drive-strength = <8>;
-               bias-disable;
-       };
-
-       sdhc3_cd_pin: sdc3-cd-on-state {
-               pins = "gpio62";
-               function = "gpio";
-
-               drive-strength = <2>;
-               bias-disable;
-       };
-
-       sdc2_on: sdhc2-on-state {
-               clk-pins {
-                       pins = "sdc2_clk";
-                       drive-strength = <6>;
-                       bias-disable;
-               };
-
-               cmd-data-pins {
-                       pins = "sdc2_cmd", "sdc2_data";
-                       drive-strength = <6>;
-                       bias-pull-up;
-               };
-       };
-
-       i2c_touchkey_pins: i2c-touchkey-state {
-               pins = "gpio95", "gpio96";
-               function = "gpio";
-               bias-pull-up;
-       };
-
-       i2c_led_gpioex_pins: i2c-led-gpioex-state {
-               pins = "gpio120", "gpio121";
-               function = "gpio";
-               bias-pull-down;
-       };
-
-       gpioex_pin: gpioex-state {
-               pins = "gpio145";
-               function = "gpio";
-               bias-pull-up;
-               drive-strength = <2>;
-       };
-
-       wifi_pin: wifi-state {
-               pins = "gpio92";
-               function = "gpio";
-               bias-pull-down;
-       };
-
-       panel_te_pin: panel-state {
-               pins = "gpio12";
-               function = "mdp_vsync";
-               drive-strength = <2>;
-               bias-disable;
-       };
-};
-
-&usb {
-       status = "okay";
-
-       phys = <&usb_hs1_phy>;
-       phy-select = <&tcsr 0xb000 0>;
-
-       hnp-disable;
-       srp-disable;
-       adp-disable;
-};
-
-&usb_hs1_phy {
-       status = "okay";
-
-       v1p8-supply = <&pma8084_l6>;
-       v3p3-supply = <&pma8084_l24>;
-
-       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+&i2c_led_gpioex_pins {
+       pins = "gpio120", "gpio121";
 };
diff --git a/src/arm/qcom/qcom-msm8974pro-samsung-kltechn.dts b/src/arm/qcom/qcom-msm8974pro-samsung-kltechn.dts
new file mode 100644 (file)
index 0000000..b902e31
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro-samsung-klte-common.dtsi"
+
+/ {
+       model = "Samsung Galaxy S5 China";
+       compatible = "samsung,kltechn", "samsung,klte", "qcom,msm8974pro", "qcom,msm8974";
+};
+
+&i2c_led_gpio {
+       scl-gpios = <&tlmm 61 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&tlmm 60 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+};
+
+&i2c_led_gpioex_pins {
+       pins = "gpio60", "gpio61";
+};
index ee94741a26ed6d591d8343666c6546e411670488..409d1798de34ecbdb5edad84dfc8d12737fb9521 100644 (file)
@@ -1,60 +1,11 @@
 // SPDX-License-Identifier: GPL-2.0
-#include "qcom-msm8974pro.dtsi"
-#include "pm8841.dtsi"
-#include "pm8941.dtsi"
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
-#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include "qcom-msm8974pro-sony-xperia-shinano-common.dtsi"
 
 / {
        model = "Sony Xperia Z2 Tablet";
        compatible = "sony,xperia-castor", "qcom,msm8974pro", "qcom,msm8974";
        chassis-type = "tablet";
 
-       aliases {
-               serial0 = &blsp1_uart2;
-               serial1 = &blsp2_uart1;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       gpio-keys {
-               compatible = "gpio-keys";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_keys_pin_a>;
-
-               key-volume-down {
-                       label = "volume_down";
-                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEDOWN>;
-               };
-
-               key-camera-snapshot {
-                       label = "camera_snapshot";
-                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_CAMERA>;
-               };
-
-               key-camera-focus {
-                       label = "camera_focus";
-                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_CAMERA_FOCUS>;
-               };
-
-               key-volume-up {
-                       label = "volume_up";
-                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEUP>;
-               };
-       };
-
        vreg_bl_vddio: lcd-backlight-vddio {
                compatible = "regulator-fixed";
                regulator-name = "vreg_bl_vddio";
                vin-supply = <&pm8941_s3>;
                startup-delay-us = <70000>;
 
-               pinctrl-names = "default";
                pinctrl-0 = <&lcd_backlight_en_pin_a>;
-       };
-
-       vreg_vsp: lcd-dcdc-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "vreg_vsp";
-               regulator-min-microvolt = <5600000>;
-               regulator-max-microvolt = <5600000>;
-
-               gpio = <&pm8941_gpios 20 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&lcd_dcdc_en_pin_a>;
-       };
-
-       vreg_boost: vreg-boost {
-               compatible = "regulator-fixed";
-
-               regulator-name = "vreg-boost";
-               regulator-min-microvolt = <3150000>;
-               regulator-max-microvolt = <3150000>;
-
-               regulator-always-on;
-               regulator-boot-on;
-
-               gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-
                pinctrl-names = "default";
-               pinctrl-0 = <&boost_bypass_n_pin>;
        };
-
-       vreg_vph_pwr: vreg-vph-pwr {
-               compatible = "regulator-fixed";
-               regulator-name = "vph-pwr";
-
-               regulator-min-microvolt = <3600000>;
-               regulator-max-microvolt = <3600000>;
-
-               regulator-always-on;
-       };
-
-       vreg_wlan: wlan-regulator {
-               compatible = "regulator-fixed";
-
-               regulator-name = "wl-reg";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-
-               gpio = <&pm8941_gpios 18 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&wlan_regulator_pin>;
-       };
-};
-
-&blsp1_uart2 {
-       status = "okay";
 };
 
-&blsp2_i2c2 {
-       status = "okay";
+&blsp2_i2c5 {
        clock-frequency = <355000>;
 
-       synaptics@2c {
-               compatible = "syna,rmi4-i2c";
-               reg = <0x2c>;
-
-               interrupt-parent = <&tlmm>;
-               interrupts = <86 IRQ_TYPE_EDGE_FALLING>;
-
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               vdd-supply = <&pm8941_l22>;
-               vio-supply = <&pm8941_lvs3>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&ts_int_pin>;
-
-               syna,startup-delay-ms = <100>;
-
-               rmi4-f01@1 {
-                       reg = <0x1>;
-                       syna,nosleep-mode = <1>;
-               };
-
-               rmi4-f11@11 {
-                       reg = <0x11>;
-                       syna,sensor-type = <1>;
-                       touchscreen-inverted-x;
-               };
-       };
-};
-
-&blsp2_i2c5 {
        status = "okay";
-       clock-frequency = <355000>;
 
        lp8566_wled: backlight@2c {
                compatible = "ti,lp8556";
                        rom-addr = /bits/ 8 <0xa0>;
                        rom-val = /bits/ 8 <0xff>;
                };
+
                rom-a1h {
                        rom-addr = /bits/ 8 <0xa1>;
                        rom-val = /bits/ 8 <0x3f>;
                };
+
                rom-a2h {
                        rom-addr = /bits/ 8 <0xa2>;
                        rom-val = /bits/ 8 <0x20>;
                };
+
                rom-a3h {
                        rom-addr = /bits/ 8 <0xa3>;
                        rom-val = /bits/ 8 <0x5e>;
                };
+
                rom-a4h {
                        rom-addr = /bits/ 8 <0xa4>;
                        rom-val = /bits/ 8 <0x02>;
                };
+
                rom-a5h {
                        rom-addr = /bits/ 8 <0xa5>;
                        rom-val = /bits/ 8 <0x04>;
                };
+
                rom-a6h {
                        rom-addr = /bits/ 8 <0xa6>;
                        rom-val = /bits/ 8 <0x80>;
                };
+
                rom-a7h {
                        rom-addr = /bits/ 8 <0xa7>;
                        rom-val = /bits/ 8 <0xf7>;
                };
+
                rom-a9h {
                        rom-addr = /bits/ 8 <0xa9>;
                        rom-val = /bits/ 8 <0x80>;
                };
+
                rom-aah {
                        rom-addr = /bits/ 8 <0xaa>;
                        rom-val = /bits/ 8 <0x0f>;
                };
+
                rom-aeh {
                        rom-addr = /bits/ 8 <0xae>;
                        rom-val = /bits/ 8 <0x0f>;
                compatible = "brcm,bcm43438-bt";
                max-speed = <3000000>;
 
-               pinctrl-names = "default";
                pinctrl-0 = <&bt_host_wake_pin>, <&bt_dev_wake_pin>, <&bt_reg_on_pin>;
+               pinctrl-names = "default";
 
                host-wakeup-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>;
                device-wakeup-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
        };
 };
 
-&pm8941_coincell {
-       status = "okay";
-
-       qcom,rset-ohms = <2100>;
-       qcom,vset-millivolts = <3000>;
-};
-
 &pm8941_gpios {
-       gpio_keys_pin_a: gpio-keys-active-state {
-               pins = "gpio2", "gpio5";
-               function = "normal";
-
-               bias-pull-up;
-               power-source = <PM8941_GPIO_S3>;
-       };
-
        bt_reg_on_pin: bt-reg-on-state {
                pins = "gpio16";
                function = "normal";
-
                output-low;
                power-source = <PM8941_GPIO_S3>;
        };
-
-       wlan_sleep_clk_pin: wl-sleep-clk-state {
-               pins = "gpio17";
-               function = "func2";
-
-               output-high;
-               power-source = <PM8941_GPIO_S3>;
-       };
-
-       wlan_regulator_pin: wl-reg-active-state {
-               pins = "gpio18";
-               function = "normal";
-
-               bias-disable;
-               power-source = <PM8941_GPIO_S3>;
-       };
-
-       lcd_dcdc_en_pin_a: lcd-dcdc-en-active-state {
-               pins = "gpio20";
-               function = "normal";
-
-               bias-disable;
-               power-source = <PM8941_GPIO_S3>;
-               input-disable;
-               output-low;
-       };
-
-};
-
-&pm8941_lpg {
-       status = "okay";
-
-       qcom,power-source = <1>;
-
-       multi-led {
-               color = <LED_COLOR_ID_RGB>;
-               function = LED_FUNCTION_STATUS;
-
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               led@5 {
-                       reg = <5>;
-                       color = <LED_COLOR_ID_BLUE>;
-               };
-
-               led@6 {
-                       reg = <6>;
-                       color = <LED_COLOR_ID_GREEN>;
-               };
-
-               led@7 {
-                       reg = <7>;
-                       color = <LED_COLOR_ID_RED>;
-               };
-       };
-};
-
-&remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
-       status = "okay";
-};
-
-&remoteproc_mss {
-       cx-supply = <&pm8841_s2>;
-       mss-supply = <&pm8841_s3>;
-       mx-supply = <&pm8841_s1>;
-       pll-supply = <&pm8941_l12>;
-       status = "okay";
 };
 
 &rpm_requests {
-       regulators-0 {
-               compatible = "qcom,rpm-pm8841-regulators";
-
-               pm8841_s1: s1 {
-                       regulator-min-microvolt = <675000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
-               pm8841_s3: s3 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-       };
-
        regulators-1 {
-               compatible = "qcom,rpm-pm8941-regulators";
-
-               vdd_l1_l3-supply = <&pm8941_s1>;
-               vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
-               vdd_l4_l11-supply = <&pm8941_s1>;
-               vdd_l5_l7-supply = <&pm8941_s2>;
-               vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
-               vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
-               vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
-               vdd_l21-supply = <&vreg_boost>;
-
-               pm8941_s1: s1 {
-                       regulator-min-microvolt = <1300000>;
-                       regulator-max-microvolt = <1300000>;
-                       regulator-always-on;
-                       regulator-boot-on;
-               };
-
-               pm8941_s2: s2 {
-                       regulator-min-microvolt = <2150000>;
-                       regulator-max-microvolt = <2150000>;
-                       regulator-boot-on;
-               };
-
-               pm8941_s3: s3 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-                       regulator-system-load = <154000>;
-                       regulator-always-on;
-                       regulator-boot-on;
-               };
-
-               pm8941_s4: s4 {
-                       regulator-min-microvolt = <5000000>;
-                       regulator-max-microvolt = <5000000>;
-               };
-
-               pm8941_l1: l1 {
-                       regulator-min-microvolt = <1225000>;
-                       regulator-max-microvolt = <1225000>;
-                       regulator-always-on;
-                       regulator-boot-on;
-               };
-
-               pm8941_l2: l2 {
-                       regulator-min-microvolt = <1200000>;
-                       regulator-max-microvolt = <1200000>;
-               };
-
-               pm8941_l3: l3 {
-                       regulator-min-microvolt = <1200000>;
-                       regulator-max-microvolt = <1200000>;
-               };
-
-               pm8941_l4: l4 {
-                       regulator-min-microvolt = <1225000>;
-                       regulator-max-microvolt = <1225000>;
-               };
-
-               pm8941_l5: l5 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-               };
-
-               pm8941_l6: l6 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-                       regulator-boot-on;
-               };
-
-               pm8941_l7: l7 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-                       regulator-boot-on;
-               };
-
-               pm8941_l8: l8 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-               };
-
-               pm8941_l9: l9 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <2950000>;
-               };
-
                pm8941_l11: l11 {
                        regulator-min-microvolt = <1300000>;
                        regulator-max-microvolt = <1350000>;
                };
 
-               pm8941_l12: l12 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-                       regulator-always-on;
-                       regulator-boot-on;
-               };
-
-               pm8941_l13: l13 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <2950000>;
-                       regulator-boot-on;
-               };
-
-               pm8941_l14: l14 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-               };
-
-               pm8941_l15: l15 {
-                       regulator-min-microvolt = <2050000>;
-                       regulator-max-microvolt = <2050000>;
-               };
-
-               pm8941_l16: l16 {
-                       regulator-min-microvolt = <2700000>;
-                       regulator-max-microvolt = <2700000>;
-               };
-
-               pm8941_l17: l17 {
-                       regulator-min-microvolt = <2700000>;
-                       regulator-max-microvolt = <2700000>;
-               };
-
-               pm8941_l18: l18 {
-                       regulator-min-microvolt = <2850000>;
-                       regulator-max-microvolt = <2850000>;
-               };
-
                pm8941_l19: l19 {
                        regulator-min-microvolt = <2850000>;
                        regulator-max-microvolt = <2850000>;
                };
-
-               pm8941_l20: l20 {
-                       regulator-min-microvolt = <2950000>;
-                       regulator-max-microvolt = <2950000>;
-                       regulator-system-load = <500000>;
-                       regulator-allow-set-load;
-                       regulator-boot-on;
-               };
-
-               pm8941_l21: l21 {
-                       regulator-min-microvolt = <2950000>;
-                       regulator-max-microvolt = <2950000>;
-                       regulator-boot-on;
-               };
-
-               pm8941_l22: l22 {
-                       regulator-min-microvolt = <3000000>;
-                       regulator-max-microvolt = <3000000>;
-               };
-
-               pm8941_l23: l23 {
-                       regulator-min-microvolt = <2800000>;
-                       regulator-max-microvolt = <2800000>;
-               };
-
-               pm8941_l24: l24 {
-                       regulator-min-microvolt = <3075000>;
-                       regulator-max-microvolt = <3075000>;
-                       regulator-boot-on;
-               };
-
-               pm8941_lvs3: lvs3 {};
-       };
-};
-
-&sdhc_1 {
-       status = "okay";
-
-       vmmc-supply = <&pm8941_l20>;
-       vqmmc-supply = <&pm8941_s3>;
-
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&sdc1_on>;
-       pinctrl-1 = <&sdc1_off>;
-};
-
-&sdhc_2 {
-       status = "okay";
-
-       vmmc-supply = <&pm8941_l21>;
-       vqmmc-supply = <&pm8941_l13>;
-
-       cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
-
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&sdc2_on>;
-       pinctrl-1 = <&sdc2_off>;
-};
-
-&sdhc_3 {
-       status = "okay";
-
-       max-frequency = <100000000>;
-       vmmc-supply = <&vreg_wlan>;
-       non-removable;
-
-       pinctrl-names = "default";
-       pinctrl-0 = <&sdc3_on>;
-
-       #address-cells = <1>;
-       #size-cells = <0>;
-
-       bcrmf@1 {
-               compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
-               reg = <1>;
-
-               brcm,drive-strength = <10>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&wlan_sleep_clk_pin>;
        };
 };
 
        status = "okay";
 };
 
-&tlmm {
-       lcd_backlight_en_pin_a: lcd-backlight-vddio-state {
-               pins = "gpio69";
-               function = "gpio";
-               drive-strength = <10>;
-               output-low;
-               bias-disable;
-       };
-
-       sdc1_on: sdc1-on-state {
-               clk-pins {
-                       pins = "sdc1_clk";
-                       drive-strength = <16>;
-                       bias-disable;
-               };
-
-               cmd-data-pins {
-                       pins = "sdc1_cmd", "sdc1_data";
-                       drive-strength = <10>;
-                       bias-pull-up;
-               };
-       };
-
-       sdc2_on: sdc2-on-state {
-               clk-pins {
-                       pins = "sdc2_clk";
-                       drive-strength = <6>;
-                       bias-disable;
-               };
-
-               cmd-data-pins {
-                       pins = "sdc2_cmd", "sdc2_data";
-                       drive-strength = <6>;
-                       bias-pull-up;
-               };
-
-               cd-pins {
-                       pins = "gpio62";
-                       function = "gpio";
-                       drive-strength = <2>;
-                       bias-disable;
-               };
-       };
-
-       sdc3_on: sdc3-on-state {
-               clk-pins {
-                       pins = "gpio40";
-                       function = "sdc3";
-                       drive-strength = <10>;
-                       bias-disable;
-               };
-
-               cmd-pins {
-                       pins = "gpio39";
-                       function = "sdc3";
-                       drive-strength = <10>;
-                       bias-pull-up;
-               };
-
-               data-pins {
-                       pins = "gpio35", "gpio36", "gpio37", "gpio38";
-                       function = "sdc3";
-                       drive-strength = <10>;
-                       bias-pull-up;
-               };
-       };
+&synaptics_touchscreen {
+       vio-supply = <&pm8941_lvs3>;
+};
 
-       ts_int_pin: ts-int-pin-state {
-               pins = "gpio86";
+&tlmm {
+       bt_dev_wake_pin: bt-dev-wake-state {
+               pins = "gpio96";
                function = "gpio";
                drive-strength = <2>;
                bias-disable;
                output-low;
        };
 
-       bt_dev_wake_pin: bt-dev-wake-state {
-               pins = "gpio96";
+       lcd_backlight_en_pin_a: lcd-backlight-vddio-state {
+               pins = "gpio69";
                function = "gpio";
-               drive-strength = <2>;
+               drive-strength = <10>;
+               output-low;
                bias-disable;
        };
 };
-
-&usb {
-       status = "okay";
-
-       phys = <&usb_hs1_phy>;
-       phy-select = <&tcsr 0xb000 0>;
-       extcon = <&smbb>, <&usb_id>;
-       vbus-supply = <&chg_otg>;
-
-       hnp-disable;
-       srp-disable;
-       adp-disable;
-};
-
-&usb_hs1_phy {
-       status = "okay";
-
-       v1p8-supply = <&pm8941_l6>;
-       v3p3-supply = <&pm8941_l24>;
-
-       extcon = <&smbb>;
-       qcom,init-seq = /bits/ 8 <0x1 0x64>;
-};
diff --git a/src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi b/src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi
new file mode 100644 (file)
index 0000000..e129bb1
--- /dev/null
@@ -0,0 +1,539 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro.dtsi"
+#include "pm8841.dtsi"
+#include "pm8941.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+
+/ {
+       aliases {
+               mmc0 = &sdhc_1;
+               mmc1 = &sdhc_2;
+               serial0 = &blsp1_uart2;
+               serial1 = &blsp2_uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_keys_pin_a>;
+               pinctrl-names = "default";
+
+               key-volume-down {
+                       label = "volume_down";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <15>;
+               };
+
+               key-volume-up {
+                       label = "volume_up";
+                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
+       };
+
+       vreg_vsp: lcd-dcdc-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_vsp";
+               regulator-min-microvolt = <5600000>;
+               regulator-max-microvolt = <5600000>;
+
+               gpio = <&pm8941_gpios 20 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&lcd_dcdc_en_pin_a>;
+               pinctrl-names = "default";
+       };
+
+       vreg_boost: vreg-boost {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vreg-boost";
+               regulator-min-microvolt = <3150000>;
+               regulator-max-microvolt = <3150000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+
+               gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&boost_bypass_n_pin>;
+       };
+
+       vreg_vph_pwr: vreg-vph-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "vph-pwr";
+
+               regulator-min-microvolt = <3600000>;
+               regulator-max-microvolt = <3600000>;
+
+               regulator-always-on;
+       };
+
+       vreg_wlan: wlan-regulator {
+               compatible = "regulator-fixed";
+
+               regulator-name = "wl-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&pm8941_gpios 18 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&wlan_regulator_pin>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp1_uart2 {
+       status = "okay";
+};
+
+&blsp2_i2c2 {
+       clock-frequency = <355000>;
+
+       status = "okay";
+
+       synaptics_touchscreen: synaptics@2c {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x2c>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <86 IRQ_TYPE_EDGE_FALLING>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vdd-supply = <&pm8941_l22>;
+               /* vio-supply is set in dts */
+
+               pinctrl-0 = <&ts_int_pin>;
+               pinctrl-names = "default";
+
+               syna,startup-delay-ms = <100>;
+
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
+               };
+
+               rmi4-f11@11 {
+                       reg = <0x11>;
+                       syna,sensor-type = <1>;
+                       touchscreen-inverted-x;
+               };
+       };
+};
+
+&pm8941_coincell {
+       qcom,rset-ohms = <2100>;
+       qcom,vset-millivolts = <3000>;
+
+       status = "okay";
+};
+
+&pm8941_gpios {
+       gpio_keys_pin_a: gpio-keys-active-state {
+               pins = "gpio2", "gpio5";
+               function = "normal";
+               bias-pull-up;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       wlan_sleep_clk_pin: wl-sleep-clk-state {
+               pins = "gpio17";
+               function = "func2";
+               output-high;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       wlan_regulator_pin: wl-reg-active-state {
+               pins = "gpio18";
+               function = "normal";
+               bias-disable;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       lcd_dcdc_en_pin_a: lcd-dcdc-en-active-state {
+               pins = "gpio20";
+               function = "normal";
+               bias-disable;
+               power-source = <PM8941_GPIO_S3>;
+               input-disable;
+               output-low;
+       };
+};
+
+&pm8941_lpg {
+       qcom,power-source = <1>;
+
+       status = "okay";
+
+       multi-led {
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@5 {
+                       reg = <5>;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       color = <LED_COLOR_ID_RED>;
+               };
+       };
+};
+
+&pm8941_vib {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       cx-supply = <&pm8841_s2>;
+       status = "okay";
+};
+
+&remoteproc_mss {
+       cx-supply = <&pm8841_s2>;
+       mss-supply = <&pm8841_s3>;
+       mx-supply = <&pm8841_s1>;
+       pll-supply = <&pm8941_l12>;
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators-0 {
+               compatible = "qcom,rpm-pm8841-regulators";
+
+               pm8841_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s3: s3 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s4: s4 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,rpm-pm8941-regulators";
+
+               vdd_l1_l3-supply = <&pm8941_s1>;
+               vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+               vdd_l4_l11-supply = <&pm8941_s1>;
+               vdd_l5_l7-supply = <&pm8941_s2>;
+               vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+               vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
+               vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
+               vdd_l21-supply = <&vreg_boost>;
+
+               pm8941_s1: s1 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_s2: s2 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_s3: s3 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-system-load = <154000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_s4: s4 {
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+               };
+
+               pm8941_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8941_l3: l3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8941_l4: l4 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8941_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8941_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8941_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pm8941_l17: l17 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pm8941_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8941_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <500000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+
+               pm8941_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8941_l23: l23 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+               };
+
+               pm8941_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_lvs3: lvs3 {};
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
+
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+       pinctrl-names = "default", "sleep";
+
+       status = "okay";
+};
+
+&sdhc_2 {
+       vmmc-supply = <&pm8941_l21>;
+       vqmmc-supply = <&pm8941_l13>;
+
+       cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+       pinctrl-names = "default", "sleep";
+
+       status = "okay";
+};
+
+&sdhc_3 {
+       max-frequency = <100000000>;
+       vmmc-supply = <&vreg_wlan>;
+       non-removable;
+
+       pinctrl-0 = <&sdc3_on>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       wifi@1 {
+               compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+
+               brcm,drive-strength = <10>;
+
+               pinctrl-0 = <&wlan_sleep_clk_pin>;
+               pinctrl-names = "default";
+       };
+};
+
+&tlmm {
+       sdc1_on: sdc1-on-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               cmd-data-pins {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+
+       sdc2_on: sdc2-on-state {
+               clk-pins {
+                       pins = "sdc2_clk";
+                       drive-strength = <6>;
+                       bias-disable;
+               };
+
+               cmd-data-pins {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+
+               cd-pins {
+                       pins = "gpio62";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+
+       sdc3_on: sdc3-on-state {
+               clk-pins {
+                       pins = "gpio40";
+                       function = "sdc3";
+                       drive-strength = <10>;
+                       bias-disable;
+               };
+
+               cmd-pins {
+                       pins = "gpio39";
+                       function = "sdc3";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+
+               data-pins {
+                       pins = "gpio35", "gpio36", "gpio37", "gpio38";
+                       function = "sdc3";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+
+       ts_int_pin: ts-int-pin-state {
+               pins = "gpio86";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
+
+&usb {
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+       extcon = <&smbb>, <&usb_id>;
+       vbus-supply = <&chg_otg>;
+
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+
+       status = "okay";
+};
+
+&usb_hs1_phy {
+       v1p8-supply = <&pm8941_l6>;
+       v3p3-supply = <&pm8941_l24>;
+
+       extcon = <&smbb>;
+       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+
+       status = "okay";
+};
diff --git a/src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-leo.dts b/src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-leo.dts
new file mode 100644 (file)
index 0000000..1ed6e1c
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro-sony-xperia-shinano-common.dtsi"
+
+/ {
+       model = "Sony Xperia Z3";
+       compatible = "sony,xperia-leo", "qcom,msm8974pro", "qcom,msm8974";
+       chassis-type = "handset";
+
+       gpio-keys {
+               key-camera-snapshot {
+                       label = "camera_snapshot";
+                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_CAMERA>;
+                       debounce-interval = <15>;
+               };
+
+               key-camera-focus {
+                       label = "camera_focus";
+                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_CAMERA_FOCUS>;
+                       debounce-interval = <15>;
+               };
+       };
+};
+
+&gpio_keys_pin_a {
+       pins = "gpio2", "gpio3", "gpio4", "gpio5";
+};
+
+&smbb {
+       usb-charge-current-limit = <1500000>;
+       qcom,fast-charge-safe-current = <3000000>;
+       qcom,fast-charge-current-limit = <2150000>;
+       qcom,fast-charge-safe-voltage = <4400000>;
+       qcom,fast-charge-high-threshold-voltage = <4350000>;
+       qcom,auto-recharge-threshold-voltage = <4280000>;
+       qcom,minimum-input-voltage = <4200000>;
+
+       status = "okay";
+};
+
+&synaptics_touchscreen {
+       vio-supply = <&pm8941_s3>;
+};
index edc9aaf828c8395c5ebf299003d4fc9c80d1e592..68fa5859d26343f8253475d5403f9b8966dead34 100644 (file)
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie_ep: pcie-ep@1c00000 {
index e6d8da6faffb55763e84b6b97e683d49838fdc2d..08ea4c551ed005544d5e3970dc91be6b47deefa3 100644 (file)
                                     <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF0>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF1>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF2>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF3>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF4>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF5>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF6>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF7>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
index ac654ff45d0e9a9c78ff2c94870b2b2b188075f5..9a2ae282a46ba4b160d2218cc6c52dfba6dc9e2f 100644 (file)
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
        };
 
+       tmu0: timer@e61e0000 {
+               compatible = "renesas,tmu-r8a73a4", "renesas,tmu";
+               reg = <0 0xe61e0000 0 0x30>;
+               interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tuni0", "tuni1", "tuni2";
+               clocks = <&mstp1_clks R8A73A4_CLK_TMU0>;
+               clock-names = "fck";
+               power-domains = <&pd_c5>;
+               status = "disabled";
+       };
+
+       tmu3: timer@fff80000 {
+               compatible = "renesas,tmu-r8a73a4", "renesas,tmu";
+               reg = <0 0xfff80000 0 0x30>;
+               interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tuni0", "tuni1", "tuni2";
+               clocks = <&mstp1_clks R8A73A4_CLK_TMU3>;
+               clock-names = "fck";
+               power-domains = <&pd_a3r>;
+               status = "disabled";
+       };
+
        dbsc1: memory-controller@e6790000 {
                compatible = "renesas,dbsc-r8a73a4";
                reg = <0 0xe6790000 0 0x10000>;
                };
 
                /* Gate clocks */
+               mstp1_clks: mstp1_clks@e6150134 {
+                       compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks";
+                       reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
+                       clocks = <&cp_clk>, <&mp_clk>;
+                       #clock-cells = <1>;
+                       clock-indices = <
+                               R8A73A4_CLK_TMU0 R8A73A4_CLK_TMU3
+                       >;
+                       clock-output-names =
+                               "tmu0", "tmu3";
+               };
                mstp2_clks: mstp2_clks@e6150138 {
                        compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
index 16d146db824a09e6e0a86ecf9096a5ed5d76639f..d55c344c1cd2b1511e37fa8a4ecc95707d84ed35 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7742", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7742", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7742", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7742", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                thermal: thermal@e61f0000 {
                        compatible = "renesas,thermal-r8a7742",
                                     "renesas,rcar-gen2-thermal";
index 2245d19a23bb0a8b0e5b76ed14b59f14a56fb61e..d917c0a971f51b9469f1dde84412d2cb25199aa7 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7743", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7743", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7743", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7743", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                thermal: thermal@e61f0000 {
                        compatible = "renesas,thermal-r8a7743",
                                     "renesas,rcar-gen2-thermal";
index aa13841f978149bf0ce09baf6a47eeedad8646db..754859c38a939a9064b207f6fa260eeae67d6388 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7744", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7744_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7744", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7744_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7744", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7744_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7744", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7744_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                thermal: thermal@e61f0000 {
                        compatible = "renesas,thermal-r8a7744",
                                     "renesas,rcar-gen2-thermal";
index 44688b8431c3f7b32daedac125ae8ca7222388c7..168298300490d31c33191d0d10abeeae27badc16 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7745", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7745", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7745", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7745", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                ipmmu_sy0: iommu@e6280000 {
                        compatible = "renesas,ipmmu-r8a7745",
                                     "renesas,ipmmu-vmsa";
index a5cf663a0118ee1de0114db7efdd36b231b36180..2375438d83c9d5b656c17da5a0ce85a4194f70a0 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a77470", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a77470", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a77470", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                icram0: sram@e63a0000 {
                        compatible = "mmio-sram";
                        reg = <0 0xe63a0000 0 0x12000>;
index 46fb81f5062ff6bc6a939ccde667bccdc101e59d..583b74a9f071c39ebbe04257b9794a16c2ed5329 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7790", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7790", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7790", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7790", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                thermal: thermal@e61f0000 {
                        compatible = "renesas,thermal-r8a7790",
                                     "renesas,rcar-gen2-thermal",
index b9d34147628e120125fe85f451c666cc55442bf1..de08ceb62230b6ddd3f0db92c660f9c66412f673 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7791", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7791", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7791", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7791", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                thermal: thermal@e61f0000 {
                        compatible = "renesas,thermal-r8a7791",
                                     "renesas,rcar-gen2-thermal",
index ecfab3ff59e843ffa07e94fd12279a4acf5de917..7defeb8e4cd1f499e42ac903ac75f1aa44d4341c 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7792", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7792", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7792", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7792", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                icram0: sram@e63a0000 {
                        compatible = "mmio-sram";
                        reg = <0 0xe63a0000 0 0x12000>;
index f51bf687f4bd55d3e40bbc70fa3601dad9ca45a3..d32a9d5d3faa71fc30cc837cb915a6e418b91be1 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7793", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7793", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7793", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7793", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                thermal: thermal@e61f0000 {
                        compatible = "renesas,thermal-r8a7793",
                                     "renesas,rcar-gen2-thermal",
index 371dd4715ddef83d9486564a87830e4684a752ea..f37f094cecc8c399204dfb0eccdacd61501a3493 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7794", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7794", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7794", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7794", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                ipmmu_sy0: iommu@e6280000 {
                        compatible = "renesas,ipmmu-r8a7794",
                                     "renesas,ipmmu-vmsa";
index fa63e1afc4ef4c9201a354f32722d093fd19fd65..45f60eeeaaa1d320fe36bfe997c2bb06cefb8c20 100644 (file)
                gmac2: ethernet@44002000 {
                        compatible = "renesas,r9a06g032-gmac", "renesas,rzn1-gmac", "snps,dwmac";
                        reg = <0x44002000 0x2000>;
-                       interrupt-parent = <&gic>;
                        interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
index 30139f21de64d0e3a11fc510e54e49e508c69fa9..15cbd94d7ec05492c26d93eb906ef149cde1e6b0 100644 (file)
                pinctrl-0 = <&hdmii2c_xfer>, <&hdmi_hpd>;
                power-domains = <&power RK3066_PD_VIO>;
                rockchip,grf = <&grf>;
+               #sound-dai-cells = <0>;
                status = "disabled";
 
                ports {
index 3f1015edab436a5b399f9b2367f6167efc0c494d..b6c3826a942446c35a0a442cc883f5af2f8dadbc 100644 (file)
                        samsung,spi-src-clk = <0>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi0_bus>;
+                       fifo-depth = <256>;
                        status = "disabled";
                };
 
                        samsung,spi-src-clk = <0>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi1_bus>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
index 7f981b5c0d64b5dd445b15e8245517150aed7b1e..ed47d0ce04e12c05fe1b1e9351a91a4aceb58fce 100644 (file)
                        clock-names = "spi", "spi_busclk0";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi0_bus>;
+                       fifo-depth = <256>;
                        status = "disabled";
                };
 
                        clock-names = "spi", "spi_busclk0";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi1_bus>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
                        clock-names = "spi", "spi_busclk0";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi2_bus>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
index b566f878ed84f9db891c11084d54f48ba096639d..18f4f494093ba84b39b09273517f41e75098842d 100644 (file)
@@ -88,7 +88,7 @@
 &keypad {
        samsung,keypad-num-rows = <2>;
        samsung,keypad-num-columns = <8>;
-       linux,keypad-no-autorepeat;
+       linux,input-no-autorepeat;
        wakeup-source;
        pinctrl-names = "default";
        pinctrl-0 = <&keypad_rows &keypad_cols>;
index e5254e32aa8fc326dfcabce33705a9b25e272052..9bc05961577dca2101418c6ad0ae8e05c76eac61 100644 (file)
                /* Default S-BOOT bootloader loads initramfs here */
                linux,initrd-start = <0x42000000>;
                linux,initrd-end = <0x42800000>;
+
+               /*
+                * Stock bootloader provides incorrect memory size in ATAG_MEM;
+                * override it here
+                */
+               linux,usable-memory-range = <0x40000000 0x3fc00000>;
        };
 
        firmware@204f000 {
index 23b151645d66867f9a9f63d3c935ab4e6b4bcae9..10ab7bc90f502fbac800eb98204a3bbce11e604a 100644 (file)
 &keypad {
        samsung,keypad-num-rows = <3>;
        samsung,keypad-num-columns = <2>;
-       linux,keypad-no-autorepeat;
+       linux,input-no-autorepeat;
        wakeup-source;
        pinctrl-0 = <&keypad_rows &keypad_cols>;
        pinctrl-names = "default";
index 715dfcba14174388f049c33bb72f6738081d15c8..c83fb250e664221a85738485d81a749b1a50aad6 100644 (file)
@@ -69,7 +69,7 @@
 &keypad {
        samsung,keypad-num-rows = <3>;
        samsung,keypad-num-columns = <8>;
-       linux,keypad-no-autorepeat;
+       linux,input-no-autorepeat;
        wakeup-source;
        pinctrl-0 = <&keypad_rows &keypad_cols>;
        pinctrl-names = "default";
                linux,code = <6>;
        };
 
-       key-A {
+       key-a {
                keypad,row = <2>;
                keypad,column = <6>;
                linux,code = <30>;
        };
 
-       key-B {
+       key-b {
                keypad,row = <2>;
                keypad,column = <7>;
                linux,code = <48>;
        };
 
-       key-C {
+       key-c {
                keypad,row = <0>;
                keypad,column = <5>;
                linux,code = <46>;
        };
 
-       key-D {
+       key-d {
                keypad,row = <2>;
                keypad,column = <5>;
                linux,code = <32>;
        };
 
-       key-E {
+       key-e {
                keypad,row = <0>;
                keypad,column = <7>;
                linux,code = <18>;
index 99c84bebf25a4b38cfdf7a65e540ee3ea8af055b..b9e7c493881804647534b1d7395f6eb62a07fb92 100644 (file)
                        clock-names = "spi", "spi_busclk0";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi0_bus>;
+                       fifo-depth = <256>;
                };
 
                spi_1: spi@12d30000 {
                        clock-names = "spi", "spi_busclk0";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi1_bus>;
+                       fifo-depth = <64>;
                };
 
                spi_2: spi@12d40000 {
                        clock-names = "spi", "spi_busclk0";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi2_bus>;
+                       fifo-depth = <64>;
                };
 
                mmc_0: mmc@12200000 {
index 25ed90374679a8ab6ca5e018bbde8ca689ac483f..196c6d04675add4f6ecc0acadac9ef12fa7db602 100644 (file)
                        pinctrl-0 = <&spi0_bus>;
                        clocks = <&clock CLK_SPI0>, <&clock CLK_SCLK_SPI0>;
                        clock-names = "spi", "spi_busclk0";
+                       fifo-depth = <256>;
                        status = "disabled";
                };
 
                        pinctrl-0 = <&spi1_bus>;
                        clocks = <&clock CLK_SPI1>, <&clock CLK_SCLK_SPI1>;
                        clock-names = "spi", "spi_busclk0";
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
                        pinctrl-0 = <&spi2_bus>;
                        clocks = <&clock CLK_SPI2>, <&clock CLK_SCLK_SPI2>;
                        clock-names = "spi", "spi_busclk0";
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
index 9bbbdce9103a66c763e74eb28adb8630ac18228a..bb019868b996eb11eb032f4e95a70bb961f6c48f 100644 (file)
        samsung,color-depth = <1>;
        samsung,link-rate = <0x0a>;
        samsung,lane-count = <2>;
-       samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
+       hpd-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
 
        ports {
                port {
index ed560c9a3aa1ef30f312c10d90394056dd047ebe..34e8a3d5efa51f911e0a1f3e18035f516303043d 100644 (file)
@@ -72,7 +72,7 @@
                #size-cells = <1>;
                ranges;
 
-               onenand: onenand@b0600000 {
+               onenand: nand-controller@b0600000 {
                        compatible = "samsung,s5pv210-onenand";
                        reg = <0xb0600000 0x2000>,
                                <0xb0000000 0x20000>,
@@ -82,7 +82,7 @@
                        clocks = <&clocks CLK_NANDXL>, <&clocks DOUT_FLASH>;
                        clock-names = "bus", "onenand";
                        #address-cells = <1>;
-                       #size-cells = <1>;
+                       #size-cells = <0>;
                        status = "disabled";
                };
 
                        pinctrl-0 = <&spi0_bus>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       fifo-depth = <256>;
                        status = "disabled";
                };
 
                        pinctrl-0 = <&spi1_bus>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
index 65c72b6fcc8311e66fd9bf03812bd7c98749b904..2537b3d47e6f0ce8e0830d8de08a88a71724a02b 100644 (file)
                        status = "disabled";
                };
 
-               can3: can@40003400 {
-                       compatible = "st,stm32f4-bxcan";
-                       reg = <0x40003400 0x200>;
-                       interrupts = <104>, <105>, <106>, <107>;
-                       interrupt-names = "tx", "rx0", "rx1", "sce";
-                       resets = <&rcc STM32F7_APB1_RESET(CAN3)>;
-                       clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
-                       st,gcan = <&gcan3>;
-                       status = "disabled";
-               };
-
-               gcan3: gcan@40003600 {
-                       compatible = "st,stm32f4-gcan", "syscon";
-                       reg = <0x40003600 0x200>;
-                       clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
-               };
-
                spi2: spi@40003800 {
                        #address-cells = <1>;
                        #size-cells = <0>;
index 4e7d9032149c620f1d1beb59ec32b76ba0822fad..e8cbb99e81a6616411c9a65a2ff166753db46c6d 100644 (file)
@@ -7,6 +7,23 @@
 
 / {
        soc {
+               can3: can@40003400 {
+                       compatible = "st,stm32f4-bxcan";
+                       reg = <0x40003400 0x200>;
+                       interrupts = <104>, <105>, <106>, <107>;
+                       interrupt-names = "tx", "rx0", "rx1", "sce";
+                       resets = <&rcc STM32F7_APB1_RESET(CAN3)>;
+                       clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
+                       st,gcan = <&gcan3>;
+                       status = "disabled";
+               };
+
+               gcan3: gcan@40003600 {
+                       compatible = "st,stm32f4-gcan", "syscon";
+                       reg = <0x40003600 0x200>;
+                       clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
+               };
+
                dsi: dsi@40016c00 {
                        compatible = "st,stm32-dsi";
                        reg = <0x40016c00 0x800>;
index 27e0c3826789de645c5cc201444aa5f577d32fa3..32c5d8a1e06acdf0074ab4c6ce0c2e62c80526f0 100644 (file)
                };
        };
 
+       ltdc_pins_a: ltdc-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('D',  9, AF13)>, /* LCD_CLK */
+                                <STM32_PINMUX('C',  6, AF14)>, /* LCD_HSYNC */
+                                <STM32_PINMUX('G',  4, AF11)>, /* LCD_VSYNC */
+                                <STM32_PINMUX('H',  9, AF11)>, /* LCD_DE */
+                                <STM32_PINMUX('G',  7, AF14)>, /* LCD_R2 */
+                                <STM32_PINMUX('B', 12, AF13)>, /* LCD_R3 */
+                                <STM32_PINMUX('D', 14, AF14)>, /* LCD_R4 */
+                                <STM32_PINMUX('E',  7, AF14)>, /* LCD_R5 */
+                                <STM32_PINMUX('E', 13, AF14)>, /* LCD_R6 */
+                                <STM32_PINMUX('E',  9, AF14)>, /* LCD_R7 */
+                                <STM32_PINMUX('H', 13, AF14)>, /* LCD_G2 */
+                                <STM32_PINMUX('F',  3, AF14)>, /* LCD_G3 */
+                                <STM32_PINMUX('D',  5, AF14)>, /* LCD_G4 */
+                                <STM32_PINMUX('G',  0, AF14)>, /* LCD_G5 */
+                                <STM32_PINMUX('C',  7, AF14)>, /* LCD_G6 */
+                                <STM32_PINMUX('A', 15, AF11)>, /* LCD_G7 */
+                                <STM32_PINMUX('D', 10, AF14)>, /* LCD_B2 */
+                                <STM32_PINMUX('F',  2, AF14)>, /* LCD_B3 */
+                                <STM32_PINMUX('H', 14, AF11)>, /* LCD_B4 */
+                                <STM32_PINMUX('E',  0, AF14)>, /* LCD_B5 */
+                                <STM32_PINMUX('B',  6, AF7)>,  /* LCD_B6 */
+                                <STM32_PINMUX('F',  1, AF13)>; /* LCD_B7 */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+       };
+
+       ltdc_sleep_pins_a: ltdc-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('D',  9, ANALOG)>, /* LCD_CLK */
+                                <STM32_PINMUX('C',  6, ANALOG)>, /* LCD_HSYNC */
+                                <STM32_PINMUX('G',  4, ANALOG)>, /* LCD_VSYNC */
+                                <STM32_PINMUX('H',  9, ANALOG)>, /* LCD_DE */
+                                <STM32_PINMUX('G',  7, ANALOG)>, /* LCD_R2 */
+                                <STM32_PINMUX('B', 12, ANALOG)>, /* LCD_R3 */
+                                <STM32_PINMUX('D', 14, ANALOG)>, /* LCD_R4 */
+                                <STM32_PINMUX('E',  7, ANALOG)>, /* LCD_R5 */
+                                <STM32_PINMUX('E', 13, ANALOG)>, /* LCD_R6 */
+                                <STM32_PINMUX('E',  9, ANALOG)>, /* LCD_R7 */
+                                <STM32_PINMUX('H', 13, ANALOG)>, /* LCD_G2 */
+                                <STM32_PINMUX('F',  3, ANALOG)>, /* LCD_G3 */
+                                <STM32_PINMUX('D',  5, ANALOG)>, /* LCD_G4 */
+                                <STM32_PINMUX('G',  0, ANALOG)>, /* LCD_G5 */
+                                <STM32_PINMUX('C',  7, ANALOG)>, /* LCD_G6 */
+                                <STM32_PINMUX('A', 15, ANALOG)>, /* LCD_G7 */
+                                <STM32_PINMUX('D', 10, ANALOG)>, /* LCD_B2 */
+                                <STM32_PINMUX('F',  2, ANALOG)>, /* LCD_B3 */
+                                <STM32_PINMUX('H', 14, ANALOG)>, /* LCD_B4 */
+                                <STM32_PINMUX('E',  0, ANALOG)>, /* LCD_B5 */
+                                <STM32_PINMUX('B',  6, ANALOG)>, /* LCD_B6 */
+                                <STM32_PINMUX('F',  1, ANALOG)>; /* LCD_B7 */
+               };
+       };
+
        mcp23017_pins_a: mcp23017-0 {
                pins {
                        pinmux = <STM32_PINMUX('G', 12, GPIO)>;
index 3900f32da797b4bdfb243d189331c030efead9a6..6704ceef284d31dfef66c1093eaf338ebcf99427 100644 (file)
                        dma-channels = <16>;
                };
 
-               adc_2: adc@48004000 {
-                       compatible = "st,stm32mp13-adc-core";
-                       reg = <0x48004000 0x400>;
-                       interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc ADC2>, <&rcc ADC2_K>;
-                       clock-names = "bus", "adc";
-                       interrupt-controller;
-                       #interrupt-cells = <1>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
-
-                       adc2: adc@0 {
-                               compatible = "st,stm32mp13-adc";
-                               #io-channel-cells = <1>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <0x0>;
-                               interrupt-parent = <&adc_2>;
-                               interrupts = <0>;
-                               dmas = <&dmamux1 10 0x400 0x80000001>;
-                               dma-names = "rx";
-                               status = "disabled";
-
-                               channel@13 {
-                                       reg = <13>;
-                                       label = "vrefint";
-                               };
-                               channel@14 {
-                                       reg = <14>;
-                                       label = "vddcore";
-                               };
-                               channel@16 {
-                                       reg = <16>;
-                                       label = "vddcpu";
-                               };
-                               channel@17 {
-                                       reg = <17>;
-                                       label = "vddq_ddr";
-                               };
-                       };
-               };
-
-               usbotg_hs: usb@49000000 {
-                       compatible = "st,stm32mp15-hsotg", "snps,dwc2";
-                       reg = <0x49000000 0x40000>;
-                       clocks = <&rcc USBO_K>;
-                       clock-names = "otg";
-                       resets = <&rcc USBO_R>;
-                       reset-names = "dwc2";
-                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       g-rx-fifo-size = <512>;
-                       g-np-tx-fifo-size = <32>;
-                       g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
-                       dr_mode = "otg";
-                       otg-rev = <0x200>;
-                       usb33d-supply = <&scmi_usb33>;
-                       status = "disabled";
-               };
-
-               usart1: serial@4c000000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x4c000000 0x400>;
-                       interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc USART1_K>;
-                       resets = <&rcc USART1_R>;
-                       wakeup-source;
-                       dmas = <&dmamux1 41 0x400 0x5>,
-                              <&dmamux1 42 0x400 0x1>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               usart2: serial@4c001000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x4c001000 0x400>;
-                       interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc USART2_K>;
-                       resets = <&rcc USART2_R>;
-                       wakeup-source;
-                       dmas = <&dmamux1 43 0x400 0x5>,
-                              <&dmamux1 44 0x400 0x1>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               i2s4: audio-controller@4c002000 {
-                       compatible = "st,stm32h7-i2s";
-                       reg = <0x4c002000 0x400>;
-                       #sound-dai-cells = <0>;
-                       interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&dmamux1 83 0x400 0x01>,
-                              <&dmamux1 84 0x400 0x01>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               spi4: spi@4c002000 {
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x4c002000 0x400>;
-                       interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI4_K>;
-                       resets = <&rcc SPI4_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       dmas = <&dmamux1 83 0x400 0x01>,
-                              <&dmamux1 84 0x400 0x01>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               spi5: spi@4c003000 {
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x4c003000 0x400>;
-                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI5_K>;
-                       resets = <&rcc SPI5_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       dmas = <&dmamux1 85 0x400 0x01>,
-                              <&dmamux1 86 0x400 0x01>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               i2c3: i2c@4c004000 {
-                       compatible = "st,stm32mp13-i2c";
-                       reg = <0x4c004000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C3_K>;
-                       resets = <&rcc I2C3_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       dmas = <&dmamux1 73 0x400 0x1>,
-                              <&dmamux1 74 0x400 0x1>;
-                       dma-names = "rx", "tx";
-                       st,syscfg-fmp = <&syscfg 0x4 0x4>;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
-
-               i2c4: i2c@4c005000 {
-                       compatible = "st,stm32mp13-i2c";
-                       reg = <0x4c005000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C4_K>;
-                       resets = <&rcc I2C4_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       dmas = <&dmamux1 75 0x400 0x1>,
-                              <&dmamux1 76 0x400 0x1>;
-                       dma-names = "rx", "tx";
-                       st,syscfg-fmp = <&syscfg 0x4 0x8>;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
-
-               i2c5: i2c@4c006000 {
-                       compatible = "st,stm32mp13-i2c";
-                       reg = <0x4c006000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C5_K>;
-                       resets = <&rcc I2C5_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       dmas = <&dmamux1 115 0x400 0x1>,
-                              <&dmamux1 116 0x400 0x1>;
-                       dma-names = "rx", "tx";
-                       st,syscfg-fmp = <&syscfg 0x4 0x10>;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
-
-               timers12: timer@4c007000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x4c007000 0x400>;
-                       interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM12_K>;
-                       clock-names = "int";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@11 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <11>;
-                               status = "disabled";
-                       };
-               };
-
-               timers13: timer@4c008000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x4c008000 0x400>;
-                       interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM13_K>;
-                       clock-names = "int";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@12 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <12>;
-                               status = "disabled";
-                       };
-               };
-
-               timers14: timer@4c009000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x4c009000 0x400>;
-                       interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM14_K>;
-                       clock-names = "int";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@13 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <13>;
-                               status = "disabled";
-                       };
-               };
-
-               timers15: timer@4c00a000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x4c00a000 0x400>;
-                       interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM15_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 105 0x400 0x1>,
-                              <&dmamux1 106 0x400 0x1>,
-                              <&dmamux1 107 0x400 0x1>,
-                              <&dmamux1 108 0x400 0x1>;
-                       dma-names = "ch1", "up", "trig", "com";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@14 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <14>;
-                               status = "disabled";
-                       };
-               };
-
-               timers16: timer@4c00b000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x4c00b000 0x400>;
-                       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM16_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 109 0x400 0x1>,
-                              <&dmamux1 110 0x400 0x1>;
-                       dma-names = "ch1", "up";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@15 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <15>;
-                               status = "disabled";
-                       };
-               };
-
-               timers17: timer@4c00c000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x4c00c000 0x400>;
-                       interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM17_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 111 0x400 0x1>,
-                              <&dmamux1 112 0x400 0x1>;
-                       dma-names = "ch1", "up";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@16 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <16>;
-                               status = "disabled";
-                       };
-               };
-
                rcc: rcc@50000000 {
                        compatible = "st,stm32mp13-rcc", "syscon";
                        reg = <0x50000000 0x1000>;
                                 <&scmi_clk CK_SCMI_LSI>;
                };
 
-               exti: interrupt-controller@5000d000 {
-                       compatible = "st,stm32mp13-exti", "syscon";
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-                       reg = <0x5000d000 0x400>;
-               };
-
-               syscfg: syscon@50020000 {
-                       compatible = "st,stm32mp157-syscfg", "syscon";
-                       reg = <0x50020000 0x400>;
-                       clocks = <&rcc SYSCFG>;
-               };
-
-               lptimer2: timer@50021000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x50021000 0x400>;
-                       interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM2_K>;
-                       clock-names = "mux";
-                       wakeup-source;
+               pwr_regulators: pwr@50001000 {
+                       compatible = "st,stm32mp1,pwr-reg";
+                       reg = <0x50001000 0x10>;
                        status = "disabled";
 
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       trigger@1 {
-                               compatible = "st,stm32-lptimer-trigger";
-                               reg = <1>;
-                               status = "disabled";
+                       reg11: reg11 {
+                               regulator-name = "reg11";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
                        };
 
-                       counter {
-                               compatible = "st,stm32-lptimer-counter";
-                               status = "disabled";
+                       reg18: reg18 {
+                               regulator-name = "reg18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
                        };
 
-                       timer {
-                               compatible = "st,stm32-lptimer-timer";
-                               status = "disabled";
+                       usb33: usb33 {
+                               regulator-name = "usb33";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
                        };
                };
 
-               lptimer3: timer@50022000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x50022000 0x400>;
-                       interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM3_K>;
-                       clock-names = "mux";
-                       wakeup-source;
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       trigger@2 {
-                               compatible = "st,stm32-lptimer-trigger";
-                               reg = <2>;
-                               status = "disabled";
-                       };
+               exti: interrupt-controller@5000d000 {
+                       compatible = "st,stm32mp1-exti", "syscon";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       reg = <0x5000d000 0x400>;
+                       interrupts-extended =
+                               <&intc GIC_SPI 6   IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_0 */
+                               <&intc GIC_SPI 7   IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 8   IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 9   IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 10  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 24  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 65  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 66  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 67  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 68  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 41  IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_10 */
+                               <&intc GIC_SPI 43  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 77  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 78  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 1   IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 3   IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,                                            /* EXTI_20 */
+                               <&intc GIC_SPI 32  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 34  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 73  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 93  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 38  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 39  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 40  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 72  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 53  IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_30 */
+                               <&intc GIC_SPI 54  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 83  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 84  IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,                                            /* EXTI_40 */
+                               <0>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 96  IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 92  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <&intc GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_50 */
+                               <0>,
+                               <&intc GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,                                            /* EXTI_60 */
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 63  IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <&intc GIC_SPI 98  IRQ_TYPE_LEVEL_HIGH>;        /* EXTI_70 */
+               };
 
-                       timer {
-                               compatible = "st,stm32-lptimer-timer";
-                               status = "disabled";
-                       };
+               syscfg: syscon@50020000 {
+                       compatible = "st,stm32mp157-syscfg", "syscon";
+                       reg = <0x50020000 0x400>;
+                       clocks = <&rcc SYSCFG>;
                };
 
                lptimer4: timer@50023000 {
                        };
                };
 
-               hash: hash@54003000 {
-                       compatible = "st,stm32mp13-hash";
-                       reg = <0x54003000 0x400>;
-                       interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc HASH1>;
-                       resets = <&rcc HASH1_R>;
-                       dmas = <&mdma 30 0x2 0x1000a02 0x0 0x0>;
-                       dma-names = "in";
-                       status = "disabled";
-               };
-
-               rng: rng@54004000 {
-                       compatible = "st,stm32mp13-rng";
-                       reg = <0x54004000 0x400>;
-                       clocks = <&rcc RNG1_K>;
-                       resets = <&rcc RNG1_R>;
-                       status = "disabled";
-               };
-
                mdma: dma-controller@58000000 {
                        compatible = "st,stm32h7-mdma";
                        reg = <0x58000000 0x1000>;
                        dma-requests = <48>;
                };
 
-               fmc: memory-controller@58002000 {
-                       compatible = "st,stm32mp1-fmc2-ebi";
-                       reg = <0x58002000 0x1000>;
-                       ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
-                                <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
-                                <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
-                                <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
-                                <4 0 0x80000000 0x10000000>; /* NAND */
-                       #address-cells = <2>;
-                       #size-cells = <1>;
-                       clocks = <&rcc FMC_K>;
-                       resets = <&rcc FMC_R>;
-                       status = "disabled";
-
-                       nand-controller@4,0 {
-                               compatible = "st,stm32mp1-fmc2-nfc";
-                               reg = <4 0x00000000 0x1000>,
-                                     <4 0x08010000 0x1000>,
-                                     <4 0x08020000 0x1000>,
-                                     <4 0x01000000 0x1000>,
-                                     <4 0x09010000 0x1000>,
-                                     <4 0x09020000 0x1000>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&mdma 24 0x2 0x12000a02 0x0 0x0>,
-                                      <&mdma 24 0x2 0x12000a08 0x0 0x0>,
-                                      <&mdma 25 0x2 0x12000a0a 0x0 0x0>;
-                               dma-names = "tx", "rx", "ecc";
-                               status = "disabled";
-                       };
-               };
-
-               qspi: spi@58003000 {
-                       compatible = "st,stm32f469-qspi";
-                       reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
-                       reg-names = "qspi", "qspi_mm";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&mdma 26 0x2 0x10100002 0x0 0x0>,
-                              <&mdma 26 0x2 0x10100008 0x0 0x0>;
-                       dma-names = "tx", "rx";
-                       clocks = <&rcc QSPI_K>;
-                       resets = <&rcc QSPI_R>;
-                       status = "disabled";
-               };
-
-               sdmmc1: mmc@58005000 {
-                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
-                       arm,primecell-periphid = <0x20253180>;
-                       reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
-                       interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SDMMC1_K>;
-                       clock-names = "apb_pclk";
-                       resets = <&rcc SDMMC1_R>;
-                       cap-sd-highspeed;
-                       cap-mmc-highspeed;
-                       max-frequency = <130000000>;
-                       status = "disabled";
-               };
-
-               sdmmc2: mmc@58007000 {
-                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
-                       arm,primecell-periphid = <0x20253180>;
-                       reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
-                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SDMMC2_K>;
-                       clock-names = "apb_pclk";
-                       resets = <&rcc SDMMC2_R>;
-                       cap-sd-highspeed;
-                       cap-mmc-highspeed;
-                       max-frequency = <130000000>;
-                       status = "disabled";
-               };
-
                crc1: crc@58009000 {
                        compatible = "st,stm32f7-crc";
                        reg = <0x58009000 0x400>;
                        status = "disabled";
                };
 
-               usbphyc: usbphyc@5a006000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       #clock-cells = <0>;
-                       compatible = "st,stm32mp1-usbphyc";
-                       reg = <0x5a006000 0x1000>;
-                       clocks = <&rcc USBPHY_K>;
-                       resets = <&rcc USBPHY_R>;
-                       vdda1v1-supply = <&scmi_reg11>;
-                       vdda1v8-supply = <&scmi_reg18>;
-                       status = "disabled";
-
-                       usbphyc_port0: usb-phy@0 {
-                               #phy-cells = <0>;
-                               reg = <0>;
-                       };
-
-                       usbphyc_port1: usb-phy@1 {
-                               #phy-cells = <1>;
-                               reg = <1>;
-                       };
-               };
-
                rtc: rtc@5c004000 {
                        compatible = "st,stm32mp1-rtc";
                        reg = <0x5c004000 0x400>;
                        };
                };
 
+               etzpc: bus@5c007000 {
+                       compatible = "st,stm32-etzpc", "simple-bus";
+                       reg = <0x5c007000 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       #access-controller-cells = <1>;
+                       ranges;
+
+                       adc_2: adc@48004000 {
+                               compatible = "st,stm32mp13-adc-core";
+                               reg = <0x48004000 0x400>;
+                               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc ADC2>, <&rcc ADC2_K>;
+                               clock-names = "bus", "adc";
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&etzpc 33>;
+                               status = "disabled";
+
+                               adc2: adc@0 {
+                                       compatible = "st,stm32mp13-adc";
+                                       #io-channel-cells = <1>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0x0>;
+                                       interrupt-parent = <&adc_2>;
+                                       interrupts = <0>;
+                                       dmas = <&dmamux1 10 0x400 0x80000001>;
+                                       dma-names = "rx";
+                                       status = "disabled";
+
+                                       channel@13 {
+                                               reg = <13>;
+                                               label = "vrefint";
+                                       };
+                                       channel@14 {
+                                               reg = <14>;
+                                               label = "vddcore";
+                                       };
+                                       channel@16 {
+                                               reg = <16>;
+                                               label = "vddcpu";
+                                       };
+                                       channel@17 {
+                                               reg = <17>;
+                                               label = "vddq_ddr";
+                                       };
+                               };
+                       };
+
+                       usbotg_hs: usb@49000000 {
+                               compatible = "st,stm32mp15-hsotg", "snps,dwc2";
+                               reg = <0x49000000 0x40000>;
+                               clocks = <&rcc USBO_K>;
+                               clock-names = "otg";
+                               resets = <&rcc USBO_R>;
+                               reset-names = "dwc2";
+                               interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                               g-rx-fifo-size = <512>;
+                               g-np-tx-fifo-size = <32>;
+                               g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
+                               dr_mode = "otg";
+                               otg-rev = <0x200>;
+                               usb33d-supply = <&scmi_usb33>;
+                               access-controllers = <&etzpc 34>;
+                               status = "disabled";
+                       };
+
+                       usart1: serial@4c000000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x4c000000 0x400>;
+                               interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc USART1_K>;
+                               resets = <&rcc USART1_R>;
+                               wakeup-source;
+                               dmas = <&dmamux1 41 0x400 0x5>,
+                               <&dmamux1 42 0x400 0x1>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 16>;
+                               status = "disabled";
+                       };
+
+                       usart2: serial@4c001000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x4c001000 0x400>;
+                               interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc USART2_K>;
+                               resets = <&rcc USART2_R>;
+                               wakeup-source;
+                               dmas = <&dmamux1 43 0x400 0x5>,
+                               <&dmamux1 44 0x400 0x1>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 17>;
+                               status = "disabled";
+                       };
+
+                       i2s4: audio-controller@4c002000 {
+                               compatible = "st,stm32h7-i2s";
+                               reg = <0x4c002000 0x400>;
+                               #sound-dai-cells = <0>;
+                               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dmamux1 83 0x400 0x01>,
+                               <&dmamux1 84 0x400 0x01>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 13>;
+                               status = "disabled";
+                       };
+
+                       spi4: spi@4c002000 {
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x4c002000 0x400>;
+                               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI4_K>;
+                               resets = <&rcc SPI4_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dmamux1 83 0x400 0x01>,
+                                      <&dmamux1 84 0x400 0x01>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 18>;
+                               status = "disabled";
+                       };
+
+                       spi5: spi@4c003000 {
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x4c003000 0x400>;
+                               interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI5_K>;
+                               resets = <&rcc SPI5_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dmamux1 85 0x400 0x01>,
+                                      <&dmamux1 86 0x400 0x01>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 19>;
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@4c004000 {
+                               compatible = "st,stm32mp13-i2c";
+                               reg = <0x4c004000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C3_K>;
+                               resets = <&rcc I2C3_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dmamux1 73 0x400 0x1>,
+                                      <&dmamux1 74 0x400 0x1>;
+                               dma-names = "rx", "tx";
+                               st,syscfg-fmp = <&syscfg 0x4 0x4>;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 20>;
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@4c005000 {
+                               compatible = "st,stm32mp13-i2c";
+                               reg = <0x4c005000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C4_K>;
+                               resets = <&rcc I2C4_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dmamux1 75 0x400 0x1>,
+                                      <&dmamux1 76 0x400 0x1>;
+                               dma-names = "rx", "tx";
+                               st,syscfg-fmp = <&syscfg 0x4 0x8>;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 21>;
+                               status = "disabled";
+                       };
+
+                       i2c5: i2c@4c006000 {
+                               compatible = "st,stm32mp13-i2c";
+                               reg = <0x4c006000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C5_K>;
+                               resets = <&rcc I2C5_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dmamux1 115 0x400 0x1>,
+                                      <&dmamux1 116 0x400 0x1>;
+                               dma-names = "rx", "tx";
+                               st,syscfg-fmp = <&syscfg 0x4 0x10>;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 22>;
+                               status = "disabled";
+                       };
+
+                       timers12: timer@4c007000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x4c007000 0x400>;
+                               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM12_K>;
+                               clock-names = "int";
+                               access-controllers = <&etzpc 23>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@11 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <11>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       timers13: timer@4c008000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x4c008000 0x400>;
+                               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM13_K>;
+                               clock-names = "int";
+                               access-controllers = <&etzpc 24>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@12 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <12>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       timers14: timer@4c009000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x4c009000 0x400>;
+                               interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM14_K>;
+                               clock-names = "int";
+                               access-controllers = <&etzpc 25>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@13 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <13>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       timers15: timer@4c00a000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x4c00a000 0x400>;
+                               interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM15_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 105 0x400 0x1>,
+                               <&dmamux1 106 0x400 0x1>,
+                               <&dmamux1 107 0x400 0x1>,
+                               <&dmamux1 108 0x400 0x1>;
+                               dma-names = "ch1", "up", "trig", "com";
+                               access-controllers = <&etzpc 26>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@14 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <14>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       timers16: timer@4c00b000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x4c00b000 0x400>;
+                               interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM16_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 109 0x400 0x1>,
+                               <&dmamux1 110 0x400 0x1>;
+                               dma-names = "ch1", "up";
+                               access-controllers = <&etzpc 27>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@15 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <15>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       timers17: timer@4c00c000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x4c00c000 0x400>;
+                               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM17_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 111 0x400 0x1>,
+                                      <&dmamux1 112 0x400 0x1>;
+                               dma-names = "ch1", "up";
+                               access-controllers = <&etzpc 28>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@16 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <16>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       lptimer2: timer@50021000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x50021000 0x400>;
+                               interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM2_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 1>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               trigger@1 {
+                                       compatible = "st,stm32-lptimer-trigger";
+                                       reg = <1>;
+                                       status = "disabled";
+                               };
+
+                               counter {
+                                       compatible = "st,stm32-lptimer-counter";
+                                       status = "disabled";
+                               };
+
+                               timer {
+                                       compatible = "st,stm32-lptimer-timer";
+                                       status = "disabled";
+                               };
+                       };
+
+                       lptimer3: timer@50022000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x50022000 0x400>;
+                               interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM3_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 2>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               trigger@2 {
+                                       compatible = "st,stm32-lptimer-trigger";
+                                       reg = <2>;
+                                       status = "disabled";
+                               };
+
+                               timer {
+                                       compatible = "st,stm32-lptimer-timer";
+                                       status = "disabled";
+                               };
+                       };
+
+                       hash: hash@54003000 {
+                               compatible = "st,stm32mp13-hash";
+                               reg = <0x54003000 0x400>;
+                               interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc HASH1>;
+                               resets = <&rcc HASH1_R>;
+                               dmas = <&mdma 30 0x2 0x1000a02 0x0 0x0>;
+                               dma-names = "in";
+                               access-controllers = <&etzpc 41>;
+                               status = "disabled";
+                       };
+
+                       rng: rng@54004000 {
+                               compatible = "st,stm32mp13-rng";
+                               reg = <0x54004000 0x400>;
+                               clocks = <&rcc RNG1_K>;
+                               resets = <&rcc RNG1_R>;
+                               access-controllers = <&etzpc 40>;
+                               status = "disabled";
+                       };
+
+                       fmc: memory-controller@58002000 {
+                               compatible = "st,stm32mp1-fmc2-ebi";
+                               reg = <0x58002000 0x1000>;
+                               ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
+                                        <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
+                                        <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
+                                        <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
+                                        <4 0 0x80000000 0x10000000>; /* NAND */
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               clocks = <&rcc FMC_K>;
+                               resets = <&rcc FMC_R>;
+                               access-controllers = <&etzpc 54>;
+                               status = "disabled";
+
+                               nand-controller@4,0 {
+                                       compatible = "st,stm32mp1-fmc2-nfc";
+                                       reg = <4 0x00000000 0x1000>,
+                                             <4 0x08010000 0x1000>,
+                                             <4 0x08020000 0x1000>,
+                                             <4 0x01000000 0x1000>,
+                                             <4 0x09010000 0x1000>,
+                                             <4 0x09020000 0x1000>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&mdma 24 0x2 0x12000a02 0x0 0x0>,
+                                              <&mdma 24 0x2 0x12000a08 0x0 0x0>,
+                                              <&mdma 25 0x2 0x12000a0a 0x0 0x0>;
+                                       dma-names = "tx", "rx", "ecc";
+                                       status = "disabled";
+                               };
+                       };
+
+                       qspi: spi@58003000 {
+                               compatible = "st,stm32f469-qspi";
+                               reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
+                               reg-names = "qspi", "qspi_mm";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&mdma 26 0x2 0x10100002 0x0 0x0>,
+                                      <&mdma 26 0x2 0x10100008 0x0 0x0>;
+                               dma-names = "tx", "rx";
+                               clocks = <&rcc QSPI_K>;
+                               resets = <&rcc QSPI_R>;
+                               access-controllers = <&etzpc 55>;
+                               status = "disabled";
+                       };
+
+                       sdmmc1: mmc@58005000 {
+                               compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x20253180>;
+                               reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
+                               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SDMMC1_K>;
+                               clock-names = "apb_pclk";
+                               resets = <&rcc SDMMC1_R>;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                               max-frequency = <130000000>;
+                               access-controllers = <&etzpc 50>;
+                               status = "disabled";
+                       };
+
+                       sdmmc2: mmc@58007000 {
+                               compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x20253180>;
+                               reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
+                               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SDMMC2_K>;
+                               clock-names = "apb_pclk";
+                               resets = <&rcc SDMMC2_R>;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                               max-frequency = <130000000>;
+                               access-controllers = <&etzpc 51>;
+                               status = "disabled";
+                       };
+
+                       usbphyc: usbphyc@5a006000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               #clock-cells = <0>;
+                               compatible = "st,stm32mp1-usbphyc";
+                               reg = <0x5a006000 0x1000>;
+                               clocks = <&rcc USBPHY_K>;
+                               resets = <&rcc USBPHY_R>;
+                               vdda1v1-supply = <&scmi_reg11>;
+                               vdda1v8-supply = <&scmi_reg18>;
+                               access-controllers = <&etzpc 5>;
+                               status = "disabled";
+
+                               usbphyc_port0: usb-phy@0 {
+                                       #phy-cells = <0>;
+                                       reg = <0>;
+                               };
+
+                               usbphyc_port1: usb-phy@1 {
+                                       #phy-cells = <1>;
+                                       reg = <1>;
+                               };
+                       };
+               };
+
                /*
                 * Break node order to solve dependency probe issue between
                 * pinctrl and exti.
index df451c3c2a26d77ec141e1cfb68d12b38886dd36..3e394c8e58b9239e83574bd4e254cb3c253dc3e4 100644 (file)
                        bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>;
                        status = "disabled";
                };
+       };
+};
 
-               adc_1: adc@48003000 {
-                       compatible = "st,stm32mp13-adc-core";
-                       reg = <0x48003000 0x400>;
-                       interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc ADC1>, <&rcc ADC1_K>;
-                       clock-names = "bus", "adc";
-                       interrupt-controller;
-                       #interrupt-cells = <1>;
+&etzpc {
+       adc_1: adc@48003000 {
+               compatible = "st,stm32mp13-adc-core";
+               reg = <0x48003000 0x400>;
+               interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&rcc ADC1>, <&rcc ADC1_K>;
+               clock-names = "bus", "adc";
+               interrupt-controller;
+               #interrupt-cells = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               access-controllers = <&etzpc 32>;
+               status = "disabled";
+
+               adc1: adc@0 {
+                       compatible = "st,stm32mp13-adc";
+                       #io-channel-cells = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       reg = <0x0>;
+                       interrupt-parent = <&adc_1>;
+                       interrupts = <0>;
+                       dmas = <&dmamux1 9 0x400 0x80000001>;
+                       dma-names = "rx";
                        status = "disabled";
 
-                       adc1: adc@0 {
-                               compatible = "st,stm32mp13-adc";
-                               #io-channel-cells = <1>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <0x0>;
-                               interrupt-parent = <&adc_1>;
-                               interrupts = <0>;
-                               dmas = <&dmamux1 9 0x400 0x80000001>;
-                               dma-names = "rx";
-                               status = "disabled";
-
-                               channel@18 {
-                                       reg = <18>;
-                                       label = "vrefint";
-                               };
+                       channel@18 {
+                               reg = <18>;
+                               label = "vrefint";
                        };
                };
        };
index 68d32f9f5314a686ac9fece344486d5a7d49aea5..834a4d545fe448c15feea3a3acd169da1da73e91 100644 (file)
                        port {
                        };
                };
+
+               ltdc: display-controller@5a001000 {
+                       compatible = "st,stm32-ltdc";
+                       reg = <0x5a001000 0x400>;
+                       interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rcc LTDC_PX>;
+                       clock-names = "lcd";
+                       resets = <&scmi_reset RST_SCMI_LTDC>;
+                       status = "disabled";
+               };
        };
 };
index 52171214a3087d29c275986971a38764a278a98a..567e53ad285fab1a1c508f28a22c1f385bd099da 100644 (file)
                        default-state = "off";
                };
        };
+
+       panel_backlight: panel-backlight {
+               compatible = "gpio-backlight";
+               gpios = <&gpioe 12 GPIO_ACTIVE_HIGH>;
+               default-on;
+               status = "okay";
+       };
+
+       panel_rgb: panel-rgb {
+               compatible = "rocktech,rk043fn48h";
+               enable-gpios = <&gpioi 7 GPIO_ACTIVE_HIGH>;
+               backlight = <&panel_backlight>;
+               power-supply = <&scmi_v3v3_sw>;
+               status = "okay";
+
+               width-mm = <105>;
+               height-mm = <67>;
+
+               panel-timing {
+                       clock-frequency = <10000000>;
+                       hactive = <480>;
+                       hback-porch = <43>;
+                       hfront-porch = <10>;
+                       hsync-len = <1>;
+                       hsync-active = <0>;
+                       vactive = <272>;
+                       vback-porch = <26>;
+                       vfront-porch = <4>;
+                       vsync-len = <10>;
+                       vsync-active = <0>;
+                       de-active = <1>;
+                       pixelclk-active = <1>;
+               };
+
+               port {
+                       panel_in_rgb: endpoint {
+                               remote-endpoint = <&ltdc_out_rgb>;
+                       };
+               };
+       };
 };
 
 &adc_1 {
        status = "okay";
 };
 
+&ltdc {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&ltdc_pins_a>;
+       pinctrl-1 = <&ltdc_sleep_pins_a>;
+       status = "okay";
+
+       port {
+               ltdc_out_rgb: endpoint {
+                       remote-endpoint = <&panel_in_rgb>;
+               };
+       };
+};
+
 &rtc {
        status = "okay";
 };
index 4d00e759288291ef02e57b48d5525023c0000822..a8bd5fe6536c8cf631964aeec7fe5fd6ce03fe98 100644 (file)
@@ -4,15 +4,14 @@
  * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
  */
 
-/ {
-       soc {
-               cryp: crypto@54002000 {
-                       compatible = "st,stm32mp1-cryp";
-                       reg = <0x54002000 0x400>;
-                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc CRYP1>;
-                       resets = <&rcc CRYP1_R>;
-                       status = "disabled";
-               };
+&etzpc {
+       cryp: crypto@54002000 {
+               compatible = "st,stm32mp1-cryp";
+               reg = <0x54002000 0x400>;
+               interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&rcc CRYP1>;
+               resets = <&rcc CRYP1_R>;
+               access-controllers = <&etzpc 42>;
+               status = "disabled";
        };
 };
index 4d00e759288291ef02e57b48d5525023c0000822..a8bd5fe6536c8cf631964aeec7fe5fd6ce03fe98 100644 (file)
@@ -4,15 +4,14 @@
  * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
  */
 
-/ {
-       soc {
-               cryp: crypto@54002000 {
-                       compatible = "st,stm32mp1-cryp";
-                       reg = <0x54002000 0x400>;
-                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc CRYP1>;
-                       resets = <&rcc CRYP1_R>;
-                       status = "disabled";
-               };
+&etzpc {
+       cryp: crypto@54002000 {
+               compatible = "st,stm32mp1-cryp";
+               reg = <0x54002000 0x400>;
+               interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&rcc CRYP1>;
+               resets = <&rcc CRYP1_R>;
+               access-controllers = <&etzpc 42>;
+               status = "disabled";
        };
 };
index fa4cbd312e5a1119543d47d4811afc3ff80a642d..90c5c72c87ab7e7c7ac74b297922f080cb5ab7c1 100644 (file)
                interrupt-parent = <&intc>;
                ranges;
 
-               timers2: timer@40000000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40000000 0x400>;
-                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM2_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 18 0x400 0x1>,
-                              <&dmamux1 19 0x400 0x1>,
-                              <&dmamux1 20 0x400 0x1>,
-                              <&dmamux1 21 0x400 0x1>,
-                              <&dmamux1 22 0x400 0x1>;
-                       dma-names = "ch1", "ch2", "ch3", "ch4", "up";
+               ipcc: mailbox@4c001000 {
+                       compatible = "st,stm32mp1-ipcc";
+                       #mbox-cells = <1>;
+                       reg = <0x4c001000 0x400>;
+                       st,proc-id = <0>;
+                       interrupts-extended =
+                               <&exti 61 1>,
+                               <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "rx", "tx";
+                       clocks = <&rcc IPCC>;
+                       wakeup-source;
                        status = "disabled";
+               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@1 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <1>;
-                               status = "disabled";
-                       };
-
-                       counter {
-                               compatible = "st,stm32-timer-counter";
-                               status = "disabled";
-                       };
+               rcc: rcc@50000000 {
+                       compatible = "st,stm32mp1-rcc", "syscon";
+                       reg = <0x50000000 0x1000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
                };
 
-               timers3: timer@40001000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40001000 0x400>;
-                       interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM3_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 23 0x400 0x1>,
-                              <&dmamux1 24 0x400 0x1>,
-                              <&dmamux1 25 0x400 0x1>,
-                              <&dmamux1 26 0x400 0x1>,
-                              <&dmamux1 27 0x400 0x1>,
-                              <&dmamux1 28 0x400 0x1>;
-                       dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
-                       status = "disabled";
+               pwr_regulators: pwr@50001000 {
+                       compatible = "st,stm32mp1,pwr-reg";
+                       reg = <0x50001000 0x10>;
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
+                       reg11: reg11 {
+                               regulator-name = "reg11";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
                        };
 
-                       timer@2 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <2>;
-                               status = "disabled";
+                       reg18: reg18 {
+                               regulator-name = "reg18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
                        };
 
-                       counter {
-                               compatible = "st,stm32-timer-counter";
-                               status = "disabled";
+                       usb33: usb33 {
+                               regulator-name = "usb33";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
                        };
                };
 
-               timers4: timer@40002000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40002000 0x400>;
-                       interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM4_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 29 0x400 0x1>,
-                              <&dmamux1 30 0x400 0x1>,
-                              <&dmamux1 31 0x400 0x1>,
-                              <&dmamux1 32 0x400 0x1>;
-                       dma-names = "ch1", "ch2", "ch3", "ch4";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
+               pwr_mcu: pwr_mcu@50001014 {
+                       compatible = "st,stm32mp151-pwr-mcu", "syscon";
+                       reg = <0x50001014 0x4>;
+               };
 
-                       timer@3 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <3>;
-                               status = "disabled";
-                       };
+               exti: interrupt-controller@5000d000 {
+                       compatible = "st,stm32mp1-exti", "syscon";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       reg = <0x5000d000 0x400>;
+                       interrupts-extended =
+                               <&intc GIC_SPI 6   IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_0 */
+                               <&intc GIC_SPI 7   IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 8   IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 9   IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 10  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 23  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 64  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 65  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 66  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 67  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 40  IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_10 */
+                               <&intc GIC_SPI 42  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 76  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 77  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 1   IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 3   IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,                                            /* EXTI_20 */
+                               <&intc GIC_SPI 31  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 33  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 72  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 95  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 37  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 38  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 39  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 71  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 52  IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_30 */
+                               <&intc GIC_SPI 53  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 82  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 83  IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,                                            /* EXTI_40 */
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 93  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <&intc GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_50 */
+                               <0>,
+                               <&intc GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,                                            /* EXTI_60 */
+                               <&intc GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <&intc GIC_SPI 62  IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_70 */
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
+               };
 
-                       counter {
-                               compatible = "st,stm32-timer-counter";
-                               status = "disabled";
-                       };
+               syscfg: syscon@50020000 {
+                       compatible = "st,stm32mp157-syscfg", "syscon";
+                       reg = <0x50020000 0x400>;
+                       clocks = <&rcc SYSCFG>;
                };
 
-               timers5: timer@40003000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40003000 0x400>;
-                       interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM5_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 55 0x400 0x1>,
-                              <&dmamux1 56 0x400 0x1>,
-                              <&dmamux1 57 0x400 0x1>,
-                              <&dmamux1 58 0x400 0x1>,
-                              <&dmamux1 59 0x400 0x1>,
-                              <&dmamux1 60 0x400 0x1>;
-                       dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
+               dts: thermal@50028000 {
+                       compatible = "st,stm32-thermal";
+                       reg = <0x50028000 0x100>;
+                       interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rcc TMPSENS>;
+                       clock-names = "pclk";
+                       #thermal-sensor-cells = <0>;
                        status = "disabled";
+               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@4 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <4>;
-                               status = "disabled";
-                       };
-
-                       counter {
-                               compatible = "st,stm32-timer-counter";
-                               status = "disabled";
-                       };
+               mdma1: dma-controller@58000000 {
+                       compatible = "st,stm32h7-mdma";
+                       reg = <0x58000000 0x1000>;
+                       interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rcc MDMA>;
+                       resets = <&rcc MDMA_R>;
+                       #dma-cells = <5>;
+                       dma-channels = <32>;
+                       dma-requests = <48>;
                };
 
-               timers6: timer@40004000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40004000 0x400>;
-                       interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM6_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 69 0x400 0x1>;
-                       dma-names = "up";
+               sdmmc1: mmc@58005000 {
+                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+                       arm,primecell-periphid = <0x00253180>;
+                       reg = <0x58005000 0x1000>;
+                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rcc SDMMC1_K>;
+                       clock-names = "apb_pclk";
+                       resets = <&rcc SDMMC1_R>;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       max-frequency = <120000000>;
                        status = "disabled";
-
-                       timer@5 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <5>;
-                               status = "disabled";
-                       };
                };
 
-               timers7: timer@40005000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40005000 0x400>;
-                       interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM7_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 70 0x400 0x1>;
-                       dma-names = "up";
+               sdmmc2: mmc@58007000 {
+                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+                       arm,primecell-periphid = <0x00253180>;
+                       reg = <0x58007000 0x1000>;
+                       interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rcc SDMMC2_K>;
+                       clock-names = "apb_pclk";
+                       resets = <&rcc SDMMC2_R>;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       max-frequency = <120000000>;
                        status = "disabled";
-
-                       timer@6 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <6>;
-                               status = "disabled";
-                       };
                };
 
-               timers12: timer@40006000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40006000 0x400>;
-                       interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM12_K>;
-                       clock-names = "int";
+               crc1: crc@58009000 {
+                       compatible = "st,stm32f7-crc";
+                       reg = <0x58009000 0x400>;
+                       clocks = <&rcc CRC1>;
                        status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@11 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <11>;
-                               status = "disabled";
-                       };
                };
 
-               timers13: timer@40007000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40007000 0x400>;
-                       interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM13_K>;
-                       clock-names = "int";
+               usbh_ohci: usb@5800c000 {
+                       compatible = "generic-ohci";
+                       reg = <0x5800c000 0x1000>;
+                       clocks = <&usbphyc>, <&rcc USBH>;
+                       resets = <&rcc USBH_R>;
+                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&usbphyc_port0>;
+                       phy-names = "usb";
                        status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@12 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <12>;
-                               status = "disabled";
-                       };
                };
 
-               timers14: timer@40008000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40008000 0x400>;
-                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM14_K>;
-                       clock-names = "int";
+               usbh_ehci: usb@5800d000 {
+                       compatible = "generic-ehci";
+                       reg = <0x5800d000 0x1000>;
+                       clocks = <&usbphyc>, <&rcc USBH>;
+                       resets = <&rcc USBH_R>;
+                       interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+                       companion = <&usbh_ohci>;
+                       phys = <&usbphyc_port0>;
+                       phy-names = "usb";
                        status = "disabled";
+               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
+               ltdc: display-controller@5a001000 {
+                       compatible = "st,stm32-ltdc";
+                       reg = <0x5a001000 0x400>;
+                       interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rcc LTDC_PX>;
+                       clock-names = "lcd";
+                       resets = <&rcc LTDC_R>;
+                       status = "disabled";
+               };
 
-                       timer@13 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <13>;
-                               status = "disabled";
-                       };
+               iwdg2: watchdog@5a002000 {
+                       compatible = "st,stm32mp1-iwdg";
+                       reg = <0x5a002000 0x400>;
+                       clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
+                       clock-names = "pclk", "lsi";
+                       status = "disabled";
                };
 
-               lptimer1: timer@40009000 {
+               usbphyc: usbphyc@5a006000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x40009000 0x400>;
-                       interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM1_K>;
-                       clock-names = "mux";
-                       wakeup-source;
+                       #clock-cells = <0>;
+                       compatible = "st,stm32mp1-usbphyc";
+                       reg = <0x5a006000 0x1000>;
+                       clocks = <&rcc USBPHY_K>;
+                       resets = <&rcc USBPHY_R>;
+                       vdda1v1-supply = <&reg11>;
+                       vdda1v8-supply = <&reg18>;
                        status = "disabled";
 
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       trigger@0 {
-                               compatible = "st,stm32-lptimer-trigger";
+                       usbphyc_port0: usb-phy@0 {
+                               #phy-cells = <0>;
                                reg = <0>;
-                               status = "disabled";
                        };
 
-                       counter {
-                               compatible = "st,stm32-lptimer-counter";
-                               status = "disabled";
+                       usbphyc_port1: usb-phy@1 {
+                               #phy-cells = <1>;
+                               reg = <1>;
                        };
                };
 
-               spi2: spi@4000b000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x4000b000 0x400>;
-                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI2_K>;
-                       resets = <&rcc SPI2_R>;
-                       dmas = <&dmamux1 39 0x400 0x05>,
-                              <&dmamux1 40 0x400 0x05>;
-                       dma-names = "rx", "tx";
+               rtc: rtc@5c004000 {
+                       compatible = "st,stm32mp1-rtc";
+                       reg = <0x5c004000 0x400>;
+                       clocks = <&rcc RTCAPB>, <&rcc RTC>;
+                       clock-names = "pclk", "rtc_ck";
+                       interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               i2s2: audio-controller@4000b000 {
-                       compatible = "st,stm32h7-i2s";
-                       #sound-dai-cells = <0>;
-                       reg = <0x4000b000 0x400>;
-                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&dmamux1 39 0x400 0x01>,
-                              <&dmamux1 40 0x400 0x01>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
+               bsec: efuse@5c005000 {
+                       compatible = "st,stm32mp15-bsec";
+                       reg = <0x5c005000 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       part_number_otp: part-number-otp@4 {
+                               reg = <0x4 0x1>;
+                       };
+                       vrefint: vrefin-cal@52 {
+                               reg = <0x52 0x2>;
+                       };
+                       ts_cal1: calib@5c {
+                               reg = <0x5c 0x2>;
+                       };
+                       ts_cal2: calib@5e {
+                               reg = <0x5e 0x2>;
+                       };
                };
 
-               spi3: spi@4000c000 {
+               etzpc: bus@5c007000 {
+                       compatible = "st,stm32-etzpc", "simple-bus";
+                       reg = <0x5c007000 0x400>;
                        #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x4000c000 0x400>;
-                       interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI3_K>;
-                       resets = <&rcc SPI3_R>;
-                       dmas = <&dmamux1 61 0x400 0x05>,
-                              <&dmamux1 62 0x400 0x05>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                       #size-cells = <1>;
+                       #access-controller-cells = <1>;
+                       ranges;
 
-               i2s3: audio-controller@4000c000 {
-                       compatible = "st,stm32h7-i2s";
-                       #sound-dai-cells = <0>;
-                       reg = <0x4000c000 0x400>;
-                       interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&dmamux1 61 0x400 0x01>,
-                              <&dmamux1 62 0x400 0x01>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                       timers2: timer@40000000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40000000 0x400>;
+                               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM2_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 18 0x400 0x1>,
+                                      <&dmamux1 19 0x400 0x1>,
+                                      <&dmamux1 20 0x400 0x1>,
+                                      <&dmamux1 21 0x400 0x1>,
+                                      <&dmamux1 22 0x400 0x1>;
+                               dma-names = "ch1", "ch2", "ch3", "ch4", "up";
+                               access-controllers = <&etzpc 16>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-               spdifrx: audio-controller@4000d000 {
-                       compatible = "st,stm32h7-spdifrx";
-                       #sound-dai-cells = <0>;
-                       reg = <0x4000d000 0x400>;
-                       clocks = <&rcc SPDIF_K>;
-                       clock-names = "kclk";
-                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&dmamux1 93 0x400 0x01>,
-                              <&dmamux1 94 0x400 0x01>;
-                       dma-names = "rx", "rx-ctrl";
-                       status = "disabled";
-               };
+                               timer@1 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <1>;
+                                       status = "disabled";
+                               };
 
-               usart2: serial@4000e000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x4000e000 0x400>;
-                       interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc USART2_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 43 0x400 0x15>,
-                              <&dmamux1 44 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                               counter {
+                                       compatible = "st,stm32-timer-counter";
+                                       status = "disabled";
+                               };
+                       };
 
-               usart3: serial@4000f000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x4000f000 0x400>;
-                       interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc USART3_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 45 0x400 0x15>,
-                              <&dmamux1 46 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                       timers3: timer@40001000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40001000 0x400>;
+                               interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM3_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 23 0x400 0x1>,
+                                      <&dmamux1 24 0x400 0x1>,
+                                      <&dmamux1 25 0x400 0x1>,
+                                      <&dmamux1 26 0x400 0x1>,
+                                      <&dmamux1 27 0x400 0x1>,
+                                      <&dmamux1 28 0x400 0x1>;
+                               dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
+                               access-controllers = <&etzpc 17>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-               uart4: serial@40010000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x40010000 0x400>;
-                       interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc UART4_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 63 0x400 0x15>,
-                              <&dmamux1 64 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                               timer@2 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <2>;
+                                       status = "disabled";
+                               };
 
-               uart5: serial@40011000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x40011000 0x400>;
-                       interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc UART5_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 65 0x400 0x15>,
-                              <&dmamux1 66 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                               counter {
+                                       compatible = "st,stm32-timer-counter";
+                                       status = "disabled";
+                               };
+                       };
 
-               i2c1: i2c@40012000 {
-                       compatible = "st,stm32mp15-i2c";
-                       reg = <0x40012000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C1_K>;
-                       resets = <&rcc I2C1_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       st,syscfg-fmp = <&syscfg 0x4 0x1>;
-                       wakeup-source;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
+                       timers4: timer@40002000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40002000 0x400>;
+                               interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM4_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 29 0x400 0x1>,
+                                      <&dmamux1 30 0x400 0x1>,
+                                      <&dmamux1 31 0x400 0x1>,
+                                      <&dmamux1 32 0x400 0x1>;
+                               dma-names = "ch1", "ch2", "ch3", "ch4";
+                               access-controllers = <&etzpc 18>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-               i2c2: i2c@40013000 {
-                       compatible = "st,stm32mp15-i2c";
-                       reg = <0x40013000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C2_K>;
-                       resets = <&rcc I2C2_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       st,syscfg-fmp = <&syscfg 0x4 0x2>;
-                       wakeup-source;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
+                               timer@3 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <3>;
+                                       status = "disabled";
+                               };
 
-               i2c3: i2c@40014000 {
-                       compatible = "st,stm32mp15-i2c";
-                       reg = <0x40014000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C3_K>;
-                       resets = <&rcc I2C3_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       st,syscfg-fmp = <&syscfg 0x4 0x4>;
-                       wakeup-source;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
+                               counter {
+                                       compatible = "st,stm32-timer-counter";
+                                       status = "disabled";
+                               };
+                       };
 
-               i2c5: i2c@40015000 {
-                       compatible = "st,stm32mp15-i2c";
-                       reg = <0x40015000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C5_K>;
-                       resets = <&rcc I2C5_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       st,syscfg-fmp = <&syscfg 0x4 0x10>;
-                       wakeup-source;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
+                       timers5: timer@40003000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40003000 0x400>;
+                               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM5_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 55 0x400 0x1>,
+                                      <&dmamux1 56 0x400 0x1>,
+                                      <&dmamux1 57 0x400 0x1>,
+                                      <&dmamux1 58 0x400 0x1>,
+                                      <&dmamux1 59 0x400 0x1>,
+                                      <&dmamux1 60 0x400 0x1>;
+                               dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
+                               access-controllers = <&etzpc 19>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-               cec: cec@40016000 {
-                       compatible = "st,stm32-cec";
-                       reg = <0x40016000 0x400>;
-                       interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc CEC_K>, <&rcc CEC>;
-                       clock-names = "cec", "hdmi-cec";
-                       status = "disabled";
-               };
+                               timer@4 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <4>;
+                                       status = "disabled";
+                               };
 
-               dac: dac@40017000 {
-                       compatible = "st,stm32h7-dac-core";
-                       reg = <0x40017000 0x400>;
-                       clocks = <&rcc DAC12>;
-                       clock-names = "pclk";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
+                               counter {
+                                       compatible = "st,stm32-timer-counter";
+                                       status = "disabled";
+                               };
+                       };
 
-                       dac1: dac@1 {
-                               compatible = "st,stm32-dac";
-                               #io-channel-cells = <1>;
-                               reg = <1>;
-                               status = "disabled";
+                       timers6: timer@40004000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40004000 0x400>;
+                               interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM6_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 69 0x400 0x1>;
+                               dma-names = "up";
+                               access-controllers = <&etzpc 20>;
+                               status = "disabled";
+
+                               timer@5 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <5>;
+                                       status = "disabled";
+                               };
                        };
 
-                       dac2: dac@2 {
-                               compatible = "st,stm32-dac";
-                               #io-channel-cells = <1>;
-                               reg = <2>;
-                               status = "disabled";
+                       timers7: timer@40005000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40005000 0x400>;
+                               interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM7_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 70 0x400 0x1>;
+                               dma-names = "up";
+                               access-controllers = <&etzpc 21>;
+                               status = "disabled";
+
+                               timer@6 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <6>;
+                                       status = "disabled";
+                               };
                        };
-               };
 
-               uart7: serial@40018000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x40018000 0x400>;
-                       interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc UART7_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 79 0x400 0x15>,
-                              <&dmamux1 80 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                       timers12: timer@40006000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40006000 0x400>;
+                               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM12_K>;
+                               clock-names = "int";
+                               access-controllers = <&etzpc 22>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-               uart8: serial@40019000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x40019000 0x400>;
-                       interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc UART8_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 81 0x400 0x15>,
-                              <&dmamux1 82 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                               timer@11 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <11>;
+                                       status = "disabled";
+                               };
+                       };
 
-               timers1: timer@44000000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x44000000 0x400>;
-                       interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "brk", "up", "trg-com", "cc";
-                       clocks = <&rcc TIM1_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 11 0x400 0x1>,
-                              <&dmamux1 12 0x400 0x1>,
-                              <&dmamux1 13 0x400 0x1>,
-                              <&dmamux1 14 0x400 0x1>,
-                              <&dmamux1 15 0x400 0x1>,
-                              <&dmamux1 16 0x400 0x1>,
-                              <&dmamux1 17 0x400 0x1>;
-                       dma-names = "ch1", "ch2", "ch3", "ch4",
-                                   "up", "trig", "com";
-                       status = "disabled";
+                       timers13: timer@40007000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40007000 0x400>;
+                               interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM13_K>;
+                               clock-names = "int";
+                               access-controllers = <&etzpc 23>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
+                               timer@12 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <12>;
+                                       status = "disabled";
+                               };
                        };
 
-                       timer@0 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <0>;
-                               status = "disabled";
-                       };
+                       timers14: timer@40008000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40008000 0x400>;
+                               interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM14_K>;
+                               clock-names = "int";
+                               access-controllers = <&etzpc 24>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-                       counter {
-                               compatible = "st,stm32-timer-counter";
-                               status = "disabled";
+                               timer@13 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <13>;
+                                       status = "disabled";
+                               };
                        };
-               };
 
-               timers8: timer@44001000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x44001000 0x400>;
-                       interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "brk", "up", "trg-com", "cc";
-                       clocks = <&rcc TIM8_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 47 0x400 0x1>,
-                              <&dmamux1 48 0x400 0x1>,
-                              <&dmamux1 49 0x400 0x1>,
-                              <&dmamux1 50 0x400 0x1>,
-                              <&dmamux1 51 0x400 0x1>,
-                              <&dmamux1 52 0x400 0x1>,
-                              <&dmamux1 53 0x400 0x1>;
-                       dma-names = "ch1", "ch2", "ch3", "ch4",
-                                   "up", "trig", "com";
-                       status = "disabled";
+                       lptimer1: timer@40009000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x40009000 0x400>;
+                               interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM1_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 25>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
+                               trigger@0 {
+                                       compatible = "st,stm32-lptimer-trigger";
+                                       reg = <0>;
+                                       status = "disabled";
+                               };
+
+                               counter {
+                                       compatible = "st,stm32-lptimer-counter";
+                                       status = "disabled";
+                               };
                        };
 
-                       timer@7 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <7>;
+                       i2s2: audio-controller@4000b000 {
+                               compatible = "st,stm32h7-i2s";
+                               #sound-dai-cells = <0>;
+                               reg = <0x4000b000 0x400>;
+                               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dmamux1 39 0x400 0x01>,
+                                      <&dmamux1 40 0x400 0x01>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 27>;
                                status = "disabled";
                        };
 
-                       counter {
-                               compatible = "st,stm32-timer-counter";
+                       spi2: spi@4000b000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x4000b000 0x400>;
+                               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI2_K>;
+                               resets = <&rcc SPI2_R>;
+                               dmas = <&dmamux1 39 0x400 0x05>,
+                                      <&dmamux1 40 0x400 0x05>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 27>;
                                status = "disabled";
                        };
-               };
-
-               usart6: serial@44003000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x44003000 0x400>;
-                       interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc USART6_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 71 0x400 0x15>,
-                              <&dmamux1 72 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               spi1: spi@44004000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x44004000 0x400>;
-                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI1_K>;
-                       resets = <&rcc SPI1_R>;
-                       dmas = <&dmamux1 37 0x400 0x05>,
-                              <&dmamux1 38 0x400 0x05>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               i2s1: audio-controller@44004000 {
-                       compatible = "st,stm32h7-i2s";
-                       #sound-dai-cells = <0>;
-                       reg = <0x44004000 0x400>;
-                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&dmamux1 37 0x400 0x01>,
-                              <&dmamux1 38 0x400 0x01>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               spi4: spi@44005000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x44005000 0x400>;
-                       interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI4_K>;
-                       resets = <&rcc SPI4_R>;
-                       dmas = <&dmamux1 83 0x400 0x05>,
-                              <&dmamux1 84 0x400 0x05>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               timers15: timer@44006000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x44006000 0x400>;
-                       interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM15_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 105 0x400 0x1>,
-                              <&dmamux1 106 0x400 0x1>,
-                              <&dmamux1 107 0x400 0x1>,
-                              <&dmamux1 108 0x400 0x1>;
-                       dma-names = "ch1", "up", "trig", "com";
-                       status = "disabled";
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
+                       i2s3: audio-controller@4000c000 {
+                               compatible = "st,stm32h7-i2s";
+                               #sound-dai-cells = <0>;
+                               reg = <0x4000c000 0x400>;
+                               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dmamux1 61 0x400 0x01>,
+                                      <&dmamux1 62 0x400 0x01>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 28>;
                                status = "disabled";
                        };
 
-                       timer@14 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <14>;
+                       spi3: spi@4000c000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x4000c000 0x400>;
+                               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI3_K>;
+                               resets = <&rcc SPI3_R>;
+                               dmas = <&dmamux1 61 0x400 0x05>,
+                                      <&dmamux1 62 0x400 0x05>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 28>;
                                status = "disabled";
                        };
-               };
-
-               timers16: timer@44007000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x44007000 0x400>;
-                       interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM16_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 109 0x400 0x1>,
-                              <&dmamux1 110 0x400 0x1>;
-                       dma-names = "ch1", "up";
-                       status = "disabled";
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
+                       spdifrx: audio-controller@4000d000 {
+                               compatible = "st,stm32h7-spdifrx";
+                               #sound-dai-cells = <0>;
+                               reg = <0x4000d000 0x400>;
+                               clocks = <&rcc SPDIF_K>;
+                               clock-names = "kclk";
+                               interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dmamux1 93 0x400 0x01>,
+                                      <&dmamux1 94 0x400 0x01>;
+                               dma-names = "rx", "rx-ctrl";
+                               access-controllers = <&etzpc 29>;
+                               status = "disabled";
+                       };
+
+                       usart2: serial@4000e000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x4000e000 0x400>;
+                               interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc USART2_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 43 0x400 0x15>,
+                                      <&dmamux1 44 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 30>;
+                               status = "disabled";
+                       };
+
+                       usart3: serial@4000f000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x4000f000 0x400>;
+                               interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc USART3_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 45 0x400 0x15>,
+                                      <&dmamux1 46 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 31>;
+                               status = "disabled";
+                       };
+
+                       uart4: serial@40010000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40010000 0x400>;
+                               interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc UART4_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 63 0x400 0x15>,
+                                      <&dmamux1 64 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 32>;
+                               status = "disabled";
+                       };
+
+                       uart5: serial@40011000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40011000 0x400>;
+                               interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc UART5_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 65 0x400 0x15>,
+                                      <&dmamux1 66 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 33>;
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@40012000 {
+                               compatible = "st,stm32mp15-i2c";
+                               reg = <0x40012000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C1_K>;
+                               resets = <&rcc I2C1_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               st,syscfg-fmp = <&syscfg 0x4 0x1>;
+                               wakeup-source;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 34>;
                                status = "disabled";
                        };
-                       timer@15 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <15>;
+
+                       i2c2: i2c@40013000 {
+                               compatible = "st,stm32mp15-i2c";
+                               reg = <0x40013000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C2_K>;
+                               resets = <&rcc I2C2_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               st,syscfg-fmp = <&syscfg 0x4 0x2>;
+                               wakeup-source;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 35>;
                                status = "disabled";
                        };
-               };
 
-               timers17: timer@44008000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x44008000 0x400>;
-                       interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM17_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 111 0x400 0x1>,
-                              <&dmamux1 112 0x400 0x1>;
-                       dma-names = "ch1", "up";
-                       status = "disabled";
+                       i2c3: i2c@40014000 {
+                               compatible = "st,stm32mp15-i2c";
+                               reg = <0x40014000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C3_K>;
+                               resets = <&rcc I2C3_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               st,syscfg-fmp = <&syscfg 0x4 0x4>;
+                               wakeup-source;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 36>;
+                               status = "disabled";
+                       };
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
+                       i2c5: i2c@40015000 {
+                               compatible = "st,stm32mp15-i2c";
+                               reg = <0x40015000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C5_K>;
+                               resets = <&rcc I2C5_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               st,syscfg-fmp = <&syscfg 0x4 0x10>;
+                               wakeup-source;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 37>;
                                status = "disabled";
                        };
 
-                       timer@16 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <16>;
+                       cec: cec@40016000 {
+                               compatible = "st,stm32-cec";
+                               reg = <0x40016000 0x400>;
+                               interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CEC_K>, <&rcc CEC>;
+                               clock-names = "cec", "hdmi-cec";
+                               access-controllers = <&etzpc 38>;
                                status = "disabled";
                        };
-               };
 
-               spi5: spi@44009000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x44009000 0x400>;
-                       interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI5_K>;
-                       resets = <&rcc SPI5_R>;
-                       dmas = <&dmamux1 85 0x400 0x05>,
-                              <&dmamux1 86 0x400 0x05>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                       dac: dac@40017000 {
+                               compatible = "st,stm32h7-dac-core";
+                               reg = <0x40017000 0x400>;
+                               clocks = <&rcc DAC12>;
+                               clock-names = "pclk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&etzpc 39>;
+                               status = "disabled";
 
-               sai1: sai@4400a000 {
-                       compatible = "st,stm32h7-sai";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0 0x4400a000 0x400>;
-                       reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
-                       interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&rcc SAI1_R>;
-                       status = "disabled";
+                               dac1: dac@1 {
+                                       compatible = "st,stm32-dac";
+                                       #io-channel-cells = <1>;
+                                       reg = <1>;
+                                       status = "disabled";
+                               };
 
-                       sai1a: audio-controller@4400a004 {
-                               #sound-dai-cells = <0>;
+                               dac2: dac@2 {
+                                       compatible = "st,stm32-dac";
+                                       #io-channel-cells = <1>;
+                                       reg = <2>;
+                                       status = "disabled";
+                               };
+                       };
 
-                               compatible = "st,stm32-sai-sub-a";
-                               reg = <0x4 0x20>;
-                               clocks = <&rcc SAI1_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 87 0x400 0x01>;
+                       uart7: serial@40018000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40018000 0x400>;
+                               interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc UART7_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 79 0x400 0x15>,
+                                      <&dmamux1 80 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 40>;
                                status = "disabled";
                        };
 
-                       sai1b: audio-controller@4400a024 {
-                               #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-b";
-                               reg = <0x24 0x20>;
-                               clocks = <&rcc SAI1_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 88 0x400 0x01>;
+                       uart8: serial@40019000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40019000 0x400>;
+                               interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc UART8_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 81 0x400 0x15>,
+                                      <&dmamux1 82 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 41>;
                                status = "disabled";
                        };
-               };
 
-               sai2: sai@4400b000 {
-                       compatible = "st,stm32h7-sai";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0 0x4400b000 0x400>;
-                       reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
-                       interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&rcc SAI2_R>;
-                       status = "disabled";
+                       timers1: timer@44000000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x44000000 0x400>;
+                               interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "brk", "up", "trg-com", "cc";
+                               clocks = <&rcc TIM1_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 11 0x400 0x1>,
+                                      <&dmamux1 12 0x400 0x1>,
+                                      <&dmamux1 13 0x400 0x1>,
+                                      <&dmamux1 14 0x400 0x1>,
+                                      <&dmamux1 15 0x400 0x1>,
+                                      <&dmamux1 16 0x400 0x1>,
+                                      <&dmamux1 17 0x400 0x1>;
+                               dma-names = "ch1", "ch2", "ch3", "ch4",
+                                           "up", "trig", "com";
+                               access-controllers = <&etzpc 48>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-                       sai2a: audio-controller@4400b004 {
-                               #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-a";
-                               reg = <0x4 0x20>;
-                               clocks = <&rcc SAI2_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 89 0x400 0x01>;
-                               status = "disabled";
-                       };
+                               timer@0 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <0>;
+                                       status = "disabled";
+                               };
 
-                       sai2b: audio-controller@4400b024 {
-                               #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-b";
-                               reg = <0x24 0x20>;
-                               clocks = <&rcc SAI2_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 90 0x400 0x01>;
-                               status = "disabled";
+                               counter {
+                                       compatible = "st,stm32-timer-counter";
+                                       status = "disabled";
+                               };
                        };
-               };
 
-               sai3: sai@4400c000 {
-                       compatible = "st,stm32h7-sai";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0 0x4400c000 0x400>;
-                       reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>;
-                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&rcc SAI3_R>;
-                       status = "disabled";
+                       timers8: timer@44001000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x44001000 0x400>;
+                               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "brk", "up", "trg-com", "cc";
+                               clocks = <&rcc TIM8_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 47 0x400 0x1>,
+                                      <&dmamux1 48 0x400 0x1>,
+                                      <&dmamux1 49 0x400 0x1>,
+                                      <&dmamux1 50 0x400 0x1>,
+                                      <&dmamux1 51 0x400 0x1>,
+                                      <&dmamux1 52 0x400 0x1>,
+                                      <&dmamux1 53 0x400 0x1>;
+                               dma-names = "ch1", "ch2", "ch3", "ch4",
+                                           "up", "trig", "com";
+                               access-controllers = <&etzpc 49>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-                       sai3a: audio-controller@4400c004 {
-                               #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-a";
-                               reg = <0x04 0x20>;
-                               clocks = <&rcc SAI3_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 113 0x400 0x01>;
+                               timer@7 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <7>;
+                                       status = "disabled";
+                               };
+
+                               counter {
+                                       compatible = "st,stm32-timer-counter";
+                                       status = "disabled";
+                               };
+                       };
+
+                       usart6: serial@44003000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x44003000 0x400>;
+                               interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc USART6_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 71 0x400 0x15>,
+                               <&dmamux1 72 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 51>;
                                status = "disabled";
                        };
 
-                       sai3b: audio-controller@4400c024 {
+                       i2s1: audio-controller@44004000 {
+                               compatible = "st,stm32h7-i2s";
                                #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-b";
-                               reg = <0x24 0x20>;
-                               clocks = <&rcc SAI3_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 114 0x400 0x01>;
+                               reg = <0x44004000 0x400>;
+                               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dmamux1 37 0x400 0x01>,
+                               <&dmamux1 38 0x400 0x01>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 52>;
                                status = "disabled";
                        };
-               };
-
-               dfsdm: dfsdm@4400d000 {
-                       compatible = "st,stm32mp1-dfsdm";
-                       reg = <0x4400d000 0x800>;
-                       clocks = <&rcc DFSDM_K>;
-                       clock-names = "dfsdm";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
 
-                       dfsdm0: filter@0 {
-                               compatible = "st,stm32-dfsdm-adc";
-                               #io-channel-cells = <1>;
-                               reg = <0>;
-                               interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&dmamux1 101 0x400 0x01>;
-                               dma-names = "rx";
+                       spi1: spi@44004000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x44004000 0x400>;
+                               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI1_K>;
+                               resets = <&rcc SPI1_R>;
+                               dmas = <&dmamux1 37 0x400 0x05>,
+                               <&dmamux1 38 0x400 0x05>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 52>;
                                status = "disabled";
                        };
 
-                       dfsdm1: filter@1 {
-                               compatible = "st,stm32-dfsdm-adc";
-                               #io-channel-cells = <1>;
-                               reg = <1>;
-                               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&dmamux1 102 0x400 0x01>;
-                               dma-names = "rx";
+                       spi4: spi@44005000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x44005000 0x400>;
+                               interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI4_K>;
+                               resets = <&rcc SPI4_R>;
+                               dmas = <&dmamux1 83 0x400 0x05>,
+                               <&dmamux1 84 0x400 0x05>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 53>;
                                status = "disabled";
                        };
 
-                       dfsdm2: filter@2 {
-                               compatible = "st,stm32-dfsdm-adc";
-                               #io-channel-cells = <1>;
-                               reg = <2>;
-                               interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&dmamux1 103 0x400 0x01>;
-                               dma-names = "rx";
-                               status = "disabled";
+                       timers15: timer@44006000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x44006000 0x400>;
+                               interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM15_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 105 0x400 0x1>,
+                                      <&dmamux1 106 0x400 0x1>,
+                                      <&dmamux1 107 0x400 0x1>,
+                                      <&dmamux1 108 0x400 0x1>;
+                               dma-names = "ch1", "up", "trig", "com";
+                               access-controllers = <&etzpc 54>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@14 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <14>;
+                                       status = "disabled";
+                               };
                        };
 
-                       dfsdm3: filter@3 {
-                               compatible = "st,stm32-dfsdm-adc";
-                               #io-channel-cells = <1>;
-                               reg = <3>;
-                               interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&dmamux1 104 0x400 0x01>;
-                               dma-names = "rx";
-                               status = "disabled";
+                       timers16: timer@44007000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x44007000 0x400>;
+                               interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM16_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 109 0x400 0x1>,
+                               <&dmamux1 110 0x400 0x1>;
+                               dma-names = "ch1", "up";
+                               access-controllers = <&etzpc 55>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+                               timer@15 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <15>;
+                                       status = "disabled";
+                               };
                        };
 
-                       dfsdm4: filter@4 {
-                               compatible = "st,stm32-dfsdm-adc";
-                               #io-channel-cells = <1>;
-                               reg = <4>;
-                               interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&dmamux1 91 0x400 0x01>;
-                               dma-names = "rx";
-                               status = "disabled";
+                       timers17: timer@44008000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x44008000 0x400>;
+                               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM17_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 111 0x400 0x1>,
+                               <&dmamux1 112 0x400 0x1>;
+                               dma-names = "ch1", "up";
+                               access-controllers = <&etzpc 56>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@16 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <16>;
+                                       status = "disabled";
+                               };
                        };
 
-                       dfsdm5: filter@5 {
-                               compatible = "st,stm32-dfsdm-adc";
-                               #io-channel-cells = <1>;
-                               reg = <5>;
-                               interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&dmamux1 92 0x400 0x01>;
-                               dma-names = "rx";
+                       spi5: spi@44009000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x44009000 0x400>;
+                               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI5_K>;
+                               resets = <&rcc SPI5_R>;
+                               dmas = <&dmamux1 85 0x400 0x05>,
+                               <&dmamux1 86 0x400 0x05>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 57>;
                                status = "disabled";
                        };
-               };
 
-               dma1: dma-controller@48000000 {
-                       compatible = "st,stm32-dma";
-                       reg = <0x48000000 0x400>;
-                       interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc DMA1>;
-                       resets = <&rcc DMA1_R>;
-                       #dma-cells = <4>;
-                       st,mem2mem;
-                       dma-requests = <8>;
-               };
+                       sai1: sai@4400a000 {
+                               compatible = "st,stm32h7-sai";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0 0x4400a000 0x400>;
+                               reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
+                               interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
+                               resets = <&rcc SAI1_R>;
+                               access-controllers = <&etzpc 58>;
+                               status = "disabled";
+
+                               sai1a: audio-controller@4400a004 {
+                                       #sound-dai-cells = <0>;
+
+                                       compatible = "st,stm32-sai-sub-a";
+                                       reg = <0x4 0x20>;
+                                       clocks = <&rcc SAI1_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 87 0x400 0x01>;
+                                       status = "disabled";
+                               };
 
-               dma2: dma-controller@48001000 {
-                       compatible = "st,stm32-dma";
-                       reg = <0x48001000 0x400>;
-                       interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc DMA2>;
-                       resets = <&rcc DMA2_R>;
-                       #dma-cells = <4>;
-                       st,mem2mem;
-                       dma-requests = <8>;
-               };
+                               sai1b: audio-controller@4400a024 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-b";
+                                       reg = <0x24 0x20>;
+                                       clocks = <&rcc SAI1_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 88 0x400 0x01>;
+                                       status = "disabled";
+                               };
+                       };
 
-               dmamux1: dma-router@48002000 {
-                       compatible = "st,stm32h7-dmamux";
-                       reg = <0x48002000 0x40>;
-                       #dma-cells = <3>;
-                       dma-requests = <128>;
-                       dma-masters = <&dma1 &dma2>;
-                       dma-channels = <16>;
-                       clocks = <&rcc DMAMUX>;
-                       resets = <&rcc DMAMUX_R>;
-               };
+                       sai2: sai@4400b000 {
+                               compatible = "st,stm32h7-sai";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0 0x4400b000 0x400>;
+                               reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
+                               interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+                               resets = <&rcc SAI2_R>;
+                               access-controllers = <&etzpc 59>;
+                               status = "disabled";
+
+                               sai2a: audio-controller@4400b004 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-a";
+                                       reg = <0x4 0x20>;
+                                       clocks = <&rcc SAI2_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 89 0x400 0x01>;
+                                       status = "disabled";
+                               };
 
-               adc: adc@48003000 {
-                       compatible = "st,stm32mp1-adc-core";
-                       reg = <0x48003000 0x400>;
-                       interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc ADC12>, <&rcc ADC12_K>;
-                       clock-names = "bus", "adc";
-                       interrupt-controller;
-                       st,syscfg = <&syscfg>;
-                       #interrupt-cells = <1>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
+                               sai2b: audio-controller@4400b024 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-b";
+                                       reg = <0x24 0x20>;
+                                       clocks = <&rcc SAI2_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 90 0x400 0x01>;
+                                       status = "disabled";
+                               };
+                       };
 
-                       adc1: adc@0 {
-                               compatible = "st,stm32mp1-adc";
-                               #io-channel-cells = <1>;
+                       sai3: sai@4400c000 {
+                               compatible = "st,stm32h7-sai";
                                #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <0x0>;
-                               interrupt-parent = <&adc>;
-                               interrupts = <0>;
-                               dmas = <&dmamux1 9 0x400 0x01>;
-                               dma-names = "rx";
-                               status = "disabled";
+                               #size-cells = <1>;
+                               ranges = <0 0x4400c000 0x400>;
+                               reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>;
+                               interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+                               resets = <&rcc SAI3_R>;
+                               access-controllers = <&etzpc 60>;
+                               status = "disabled";
+
+                               sai3a: audio-controller@4400c004 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-a";
+                                       reg = <0x04 0x20>;
+                                       clocks = <&rcc SAI3_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 113 0x400 0x01>;
+                                       status = "disabled";
+                               };
+
+                               sai3b: audio-controller@4400c024 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-b";
+                                       reg = <0x24 0x20>;
+                                       clocks = <&rcc SAI3_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 114 0x400 0x01>;
+                                       status = "disabled";
+                               };
                        };
 
-                       adc2: adc@100 {
-                               compatible = "st,stm32mp1-adc";
-                               #io-channel-cells = <1>;
+                       dfsdm: dfsdm@4400d000 {
+                               compatible = "st,stm32mp1-dfsdm";
+                               reg = <0x4400d000 0x800>;
+                               clocks = <&rcc DFSDM_K>;
+                               clock-names = "dfsdm";
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               reg = <0x100>;
-                               interrupt-parent = <&adc>;
-                               interrupts = <1>;
-                               dmas = <&dmamux1 10 0x400 0x01>;
-                               dma-names = "rx";
-                               nvmem-cells = <&vrefint>;
-                               nvmem-cell-names = "vrefint";
-                               status = "disabled";
-                               channel@13 {
-                                       reg = <13>;
-                                       label = "vrefint";
+                               access-controllers = <&etzpc 61>;
+                               status = "disabled";
+
+                               dfsdm0: filter@0 {
+                                       compatible = "st,stm32-dfsdm-adc";
+                                       #io-channel-cells = <1>;
+                                       reg = <0>;
+                                       interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&dmamux1 101 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
                                };
-                               channel@14 {
-                                       reg = <14>;
-                                       label = "vddcore";
+
+                               dfsdm1: filter@1 {
+                                       compatible = "st,stm32-dfsdm-adc";
+                                       #io-channel-cells = <1>;
+                                       reg = <1>;
+                                       interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&dmamux1 102 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
                                };
-                       };
-               };
 
-               sdmmc3: mmc@48004000 {
-                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
-                       arm,primecell-periphid = <0x00253180>;
-                       reg = <0x48004000 0x400>;
-                       interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SDMMC3_K>;
-                       clock-names = "apb_pclk";
-                       resets = <&rcc SDMMC3_R>;
-                       cap-sd-highspeed;
-                       cap-mmc-highspeed;
-                       max-frequency = <120000000>;
-                       status = "disabled";
-               };
-
-               usbotg_hs: usb-otg@49000000 {
-                       compatible = "st,stm32mp15-hsotg", "snps,dwc2";
-                       reg = <0x49000000 0x10000>;
-                       clocks = <&rcc USBO_K>, <&usbphyc>;
-                       clock-names = "otg", "utmi";
-                       resets = <&rcc USBO_R>;
-                       reset-names = "dwc2";
-                       interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
-                       g-rx-fifo-size = <512>;
-                       g-np-tx-fifo-size = <32>;
-                       g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
-                       dr_mode = "otg";
-                       otg-rev = <0x200>;
-                       usb33d-supply = <&usb33>;
-                       status = "disabled";
-               };
-
-               ipcc: mailbox@4c001000 {
-                       compatible = "st,stm32mp1-ipcc";
-                       #mbox-cells = <1>;
-                       reg = <0x4c001000 0x400>;
-                       st,proc-id = <0>;
-                       interrupts-extended =
-                               <&exti 61 1>,
-                               <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "rx", "tx";
-                       clocks = <&rcc IPCC>;
-                       wakeup-source;
-                       status = "disabled";
-               };
-
-               dcmi: dcmi@4c006000 {
-                       compatible = "st,stm32-dcmi";
-                       reg = <0x4c006000 0x400>;
-                       interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&rcc CAMITF_R>;
-                       clocks = <&rcc DCMI>;
-                       clock-names = "mclk";
-                       dmas = <&dmamux1 75 0x400 0x01>;
-                       dma-names = "tx";
-                       status = "disabled";
-               };
+                               dfsdm2: filter@2 {
+                                       compatible = "st,stm32-dfsdm-adc";
+                                       #io-channel-cells = <1>;
+                                       reg = <2>;
+                                       interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&dmamux1 103 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
+                               };
 
-               rcc: rcc@50000000 {
-                       compatible = "st,stm32mp1-rcc", "syscon";
-                       reg = <0x50000000 0x1000>;
-                       #clock-cells = <1>;
-                       #reset-cells = <1>;
-               };
+                               dfsdm3: filter@3 {
+                                       compatible = "st,stm32-dfsdm-adc";
+                                       #io-channel-cells = <1>;
+                                       reg = <3>;
+                                       interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&dmamux1 104 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
+                               };
 
-               pwr_regulators: pwr@50001000 {
-                       compatible = "st,stm32mp1,pwr-reg";
-                       reg = <0x50001000 0x10>;
+                               dfsdm4: filter@4 {
+                                       compatible = "st,stm32-dfsdm-adc";
+                                       #io-channel-cells = <1>;
+                                       reg = <4>;
+                                       interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&dmamux1 91 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
+                               };
 
-                       reg11: reg11 {
-                               regulator-name = "reg11";
-                               regulator-min-microvolt = <1100000>;
-                               regulator-max-microvolt = <1100000>;
+                               dfsdm5: filter@5 {
+                                       compatible = "st,stm32-dfsdm-adc";
+                                       #io-channel-cells = <1>;
+                                       reg = <5>;
+                                       interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&dmamux1 92 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
+                               };
                        };
 
-                       reg18: reg18 {
-                               regulator-name = "reg18";
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                       };
+                       dma1: dma-controller@48000000 {
+                               compatible = "st,stm32-dma";
+                               reg = <0x48000000 0x400>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc DMA1>;
+                               resets = <&rcc DMA1_R>;
+                               #dma-cells = <4>;
+                               st,mem2mem;
+                               dma-requests = <8>;
+                               access-controllers = <&etzpc 88>;
+                       };
+
+                       dma2: dma-controller@48001000 {
+                               compatible = "st,stm32-dma";
+                               reg = <0x48001000 0x400>;
+                               interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc DMA2>;
+                               resets = <&rcc DMA2_R>;
+                               #dma-cells = <4>;
+                               st,mem2mem;
+                               dma-requests = <8>;
+                               access-controllers = <&etzpc 89>;
+                       };
+
+                       dmamux1: dma-router@48002000 {
+                               compatible = "st,stm32h7-dmamux";
+                               reg = <0x48002000 0x40>;
+                               #dma-cells = <3>;
+                               dma-requests = <128>;
+                               dma-masters = <&dma1 &dma2>;
+                               dma-channels = <16>;
+                               clocks = <&rcc DMAMUX>;
+                               resets = <&rcc DMAMUX_R>;
+                               access-controllers = <&etzpc 90>;
+                       };
+
+                       adc: adc@48003000 {
+                               compatible = "st,stm32mp1-adc-core";
+                               reg = <0x48003000 0x400>;
+                               interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc ADC12>, <&rcc ADC12_K>;
+                               clock-names = "bus", "adc";
+                               interrupt-controller;
+                               st,syscfg = <&syscfg>;
+                               #interrupt-cells = <1>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&etzpc 72>;
+                               status = "disabled";
+
+                               adc1: adc@0 {
+                                       compatible = "st,stm32mp1-adc";
+                                       #io-channel-cells = <1>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0x0>;
+                                       interrupt-parent = <&adc>;
+                                       interrupts = <0>;
+                                       dmas = <&dmamux1 9 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
+                               };
 
-                       usb33: usb33 {
-                               regulator-name = "usb33";
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3300000>;
+                               adc2: adc@100 {
+                                       compatible = "st,stm32mp1-adc";
+                                       #io-channel-cells = <1>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0x100>;
+                                       interrupt-parent = <&adc>;
+                                       interrupts = <1>;
+                                       dmas = <&dmamux1 10 0x400 0x01>;
+                                       dma-names = "rx";
+                                       nvmem-cells = <&vrefint>;
+                                       nvmem-cell-names = "vrefint";
+                                       status = "disabled";
+                                       channel@13 {
+                                               reg = <13>;
+                                               label = "vrefint";
+                                       };
+                                       channel@14 {
+                                               reg = <14>;
+                                               label = "vddcore";
+                                       };
+                               };
                        };
-               };
 
-               pwr_mcu: pwr_mcu@50001014 {
-                       compatible = "st,stm32mp151-pwr-mcu", "syscon";
-                       reg = <0x50001014 0x4>;
-               };
+                       sdmmc3: mmc@48004000 {
+                               compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x00253180>;
+                               reg = <0x48004000 0x400>;
+                               interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SDMMC3_K>;
+                               clock-names = "apb_pclk";
+                               resets = <&rcc SDMMC3_R>;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                               max-frequency = <120000000>;
+                               access-controllers = <&etzpc 86>;
+                               status = "disabled";
+                       };
+
+                       usbotg_hs: usb-otg@49000000 {
+                               compatible = "st,stm32mp15-hsotg", "snps,dwc2";
+                               reg = <0x49000000 0x10000>;
+                               clocks = <&rcc USBO_K>, <&usbphyc>;
+                               clock-names = "otg", "utmi";
+                               resets = <&rcc USBO_R>;
+                               reset-names = "dwc2";
+                               interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+                               g-rx-fifo-size = <512>;
+                               g-np-tx-fifo-size = <32>;
+                               g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
+                               dr_mode = "otg";
+                               otg-rev = <0x200>;
+                               usb33d-supply = <&usb33>;
+                               access-controllers = <&etzpc 85>;
+                               status = "disabled";
+                       };
+
+                       dcmi: dcmi@4c006000 {
+                               compatible = "st,stm32-dcmi";
+                               reg = <0x4c006000 0x400>;
+                               interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+                               resets = <&rcc CAMITF_R>;
+                               clocks = <&rcc DCMI>;
+                               clock-names = "mclk";
+                               dmas = <&dmamux1 75 0x400 0x01>;
+                               dma-names = "tx";
+                               access-controllers = <&etzpc 70>;
+                               status = "disabled";
+                       };
+
+                       lptimer2: timer@50021000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x50021000 0x400>;
+                               interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM2_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 64>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-               exti: interrupt-controller@5000d000 {
-                       compatible = "st,stm32mp1-exti", "syscon";
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-                       reg = <0x5000d000 0x400>;
-               };
+                               trigger@1 {
+                                       compatible = "st,stm32-lptimer-trigger";
+                                       reg = <1>;
+                                       status = "disabled";
+                               };
 
-               syscfg: syscon@50020000 {
-                       compatible = "st,stm32mp157-syscfg", "syscon";
-                       reg = <0x50020000 0x400>;
-                       clocks = <&rcc SYSCFG>;
-               };
+                               counter {
+                                       compatible = "st,stm32-lptimer-counter";
+                                       status = "disabled";
+                               };
+                       };
 
-               lptimer2: timer@50021000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x50021000 0x400>;
-                       interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM2_K>;
-                       clock-names = "mux";
-                       wakeup-source;
-                       status = "disabled";
+                       lptimer3: timer@50022000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x50022000 0x400>;
+                               interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM3_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 65>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
-                               status = "disabled";
+                               trigger@2 {
+                                       compatible = "st,stm32-lptimer-trigger";
+                                       reg = <2>;
+                                       status = "disabled";
+                               };
                        };
 
-                       trigger@1 {
-                               compatible = "st,stm32-lptimer-trigger";
-                               reg = <1>;
+                       lptimer4: timer@50023000 {
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x50023000 0x400>;
+                               interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM4_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 66>;
                                status = "disabled";
-                       };
 
-                       counter {
-                               compatible = "st,stm32-lptimer-counter";
-                               status = "disabled";
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
                        };
-               };
-
-               lptimer3: timer@50022000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x50022000 0x400>;
-                       interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM3_K>;
-                       clock-names = "mux";
-                       wakeup-source;
-                       status = "disabled";
 
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
+                       lptimer5: timer@50024000 {
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x50024000 0x400>;
+                               interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM5_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 67>;
                                status = "disabled";
-                       };
 
-                       trigger@2 {
-                               compatible = "st,stm32-lptimer-trigger";
-                               reg = <2>;
-                               status = "disabled";
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
                        };
-               };
 
-               lptimer4: timer@50023000 {
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x50023000 0x400>;
-                       interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM4_K>;
-                       clock-names = "mux";
-                       wakeup-source;
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
+                       vrefbuf: vrefbuf@50025000 {
+                               compatible = "st,stm32-vrefbuf";
+                               reg = <0x50025000 0x8>;
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <2500000>;
+                               clocks = <&rcc VREF>;
+                               access-controllers = <&etzpc 69>;
                                status = "disabled";
                        };
-               };
 
-               lptimer5: timer@50024000 {
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x50024000 0x400>;
-                       interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM5_K>;
-                       clock-names = "mux";
-                       wakeup-source;
-                       status = "disabled";
+                       sai4: sai@50027000 {
+                               compatible = "st,stm32h7-sai";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0 0x50027000 0x400>;
+                               reg = <0x50027000 0x4>, <0x500273f0 0x10>;
+                               interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
+                               resets = <&rcc SAI4_R>;
+                               access-controllers = <&etzpc 68>;
+                               status = "disabled";
+
+                               sai4a: audio-controller@50027004 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-a";
+                                       reg = <0x04 0x20>;
+                                       clocks = <&rcc SAI4_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 99 0x400 0x01>;
+                                       status = "disabled";
+                               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
-                               status = "disabled";
+                               sai4b: audio-controller@50027024 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-b";
+                                       reg = <0x24 0x20>;
+                                       clocks = <&rcc SAI4_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 100 0x400 0x01>;
+                                       status = "disabled";
+                               };
                        };
-               };
 
-               vrefbuf: vrefbuf@50025000 {
-                       compatible = "st,stm32-vrefbuf";
-                       reg = <0x50025000 0x8>;
-                       regulator-min-microvolt = <1500000>;
-                       regulator-max-microvolt = <2500000>;
-                       clocks = <&rcc VREF>;
-                       status = "disabled";
-               };
-
-               sai4: sai@50027000 {
-                       compatible = "st,stm32h7-sai";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0 0x50027000 0x400>;
-                       reg = <0x50027000 0x4>, <0x500273f0 0x10>;
-                       interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&rcc SAI4_R>;
-                       status = "disabled";
+                       hash1: hash@54002000 {
+                               compatible = "st,stm32f756-hash";
+                               reg = <0x54002000 0x400>;
+                               interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc HASH1>;
+                               resets = <&rcc HASH1_R>;
+                               dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>;
+                               dma-names = "in";
+                               dma-maxburst = <2>;
+                               access-controllers = <&etzpc 8>;
+                               status = "disabled";
+                       };
+
+                       rng1: rng@54003000 {
+                               compatible = "st,stm32-rng";
+                               reg = <0x54003000 0x400>;
+                               clocks = <&rcc RNG1_K>;
+                               resets = <&rcc RNG1_R>;
+                               access-controllers = <&etzpc 7>;
+                               status = "disabled";
+                       };
+
+                       fmc: memory-controller@58002000 {
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               compatible = "st,stm32mp1-fmc2-ebi";
+                               reg = <0x58002000 0x1000>;
+                               clocks = <&rcc FMC_K>;
+                               resets = <&rcc FMC_R>;
+                               access-controllers = <&etzpc 91>;
+                               status = "disabled";
+
+                               ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
+                                        <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
+                                        <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
+                                        <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
+                                        <4 0 0x80000000 0x10000000>; /* NAND */
+
+                               nand-controller@4,0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       compatible = "st,stm32mp1-fmc2-nfc";
+                                       reg = <4 0x00000000 0x1000>,
+                                             <4 0x08010000 0x1000>,
+                                             <4 0x08020000 0x1000>,
+                                             <4 0x01000000 0x1000>,
+                                             <4 0x09010000 0x1000>,
+                                             <4 0x09020000 0x1000>;
+                                       interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>,
+                                              <&mdma1 20 0x2 0x12000a08 0x0 0x0>,
+                                              <&mdma1 21 0x2 0x12000a0a 0x0 0x0>;
+                                       dma-names = "tx", "rx", "ecc";
+                                       status = "disabled";
+                               };
+                       };
 
-                       sai4a: audio-controller@50027004 {
-                               #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-a";
-                               reg = <0x04 0x20>;
-                               clocks = <&rcc SAI4_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 99 0x400 0x01>;
-                               status = "disabled";
+                       qspi: spi@58003000 {
+                               compatible = "st,stm32f469-qspi";
+                               reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
+                               reg-names = "qspi", "qspi_mm";
+                               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&mdma1 22 0x2 0x10100002 0x0 0x0>,
+                                      <&mdma1 22 0x2 0x10100008 0x0 0x0>;
+                               dma-names = "tx", "rx";
+                               clocks = <&rcc QSPI_K>;
+                               resets = <&rcc QSPI_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&etzpc 92>;
+                               status = "disabled";
+                       };
+
+                       ethernet0: ethernet@5800a000 {
+                               compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
+                               reg = <0x5800a000 0x2000>;
+                               reg-names = "stmmaceth";
+                               interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "macirq";
+                               clock-names = "stmmaceth",
+                                             "mac-clk-tx",
+                                             "mac-clk-rx",
+                                             "eth-ck",
+                                             "ptp_ref",
+                                             "ethstp";
+                               clocks = <&rcc ETHMAC>,
+                                        <&rcc ETHTX>,
+                                        <&rcc ETHRX>,
+                                        <&rcc ETHCK_K>,
+                                        <&rcc ETHPTP_K>,
+                                        <&rcc ETHSTP>;
+                               st,syscon = <&syscfg 0x4>;
+                               snps,mixed-burst;
+                               snps,pbl = <2>;
+                               snps,en-tx-lpi-clockgating;
+                               snps,axi-config = <&stmmac_axi_config_0>;
+                               snps,tso;
+                               access-controllers = <&etzpc 94>;
+                               status = "disabled";
+
+                               stmmac_axi_config_0: stmmac-axi-config {
+                                       snps,wr_osr_lmt = <0x7>;
+                                       snps,rd_osr_lmt = <0x7>;
+                                       snps,blen = <0 0 0 0 16 8 4>;
+                               };
                        };
 
-                       sai4b: audio-controller@50027024 {
-                               #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-b";
-                               reg = <0x24 0x20>;
-                               clocks = <&rcc SAI4_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 100 0x400 0x01>;
+                       usart1: serial@5c000000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x5c000000 0x400>;
+                               interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc USART1_K>;
+                               wakeup-source;
+                               access-controllers = <&etzpc 3>;
                                status = "disabled";
                        };
-               };
-
-               dts: thermal@50028000 {
-                       compatible = "st,stm32-thermal";
-                       reg = <0x50028000 0x100>;
-                       interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc TMPSENS>;
-                       clock-names = "pclk";
-                       #thermal-sensor-cells = <0>;
-                       status = "disabled";
-               };
-
-               hash1: hash@54002000 {
-                       compatible = "st,stm32f756-hash";
-                       reg = <0x54002000 0x400>;
-                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc HASH1>;
-                       resets = <&rcc HASH1_R>;
-                       dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>;
-                       dma-names = "in";
-                       dma-maxburst = <2>;
-                       status = "disabled";
-               };
-
-               rng1: rng@54003000 {
-                       compatible = "st,stm32-rng";
-                       reg = <0x54003000 0x400>;
-                       clocks = <&rcc RNG1_K>;
-                       resets = <&rcc RNG1_R>;
-                       status = "disabled";
-               };
-
-               mdma1: dma-controller@58000000 {
-                       compatible = "st,stm32h7-mdma";
-                       reg = <0x58000000 0x1000>;
-                       interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc MDMA>;
-                       resets = <&rcc MDMA_R>;
-                       #dma-cells = <5>;
-                       dma-channels = <32>;
-                       dma-requests = <48>;
-               };
-
-               fmc: memory-controller@58002000 {
-                       #address-cells = <2>;
-                       #size-cells = <1>;
-                       compatible = "st,stm32mp1-fmc2-ebi";
-                       reg = <0x58002000 0x1000>;
-                       clocks = <&rcc FMC_K>;
-                       resets = <&rcc FMC_R>;
-                       status = "disabled";
-
-                       ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
-                                <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
-                                <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
-                                <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
-                                <4 0 0x80000000 0x10000000>; /* NAND */
 
-                       nand-controller@4,0 {
+                       spi6: spi@5c001000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               compatible = "st,stm32mp1-fmc2-nfc";
-                               reg = <4 0x00000000 0x1000>,
-                                     <4 0x08010000 0x1000>,
-                                     <4 0x08020000 0x1000>,
-                                     <4 0x01000000 0x1000>,
-                                     <4 0x09010000 0x1000>,
-                                     <4 0x09020000 0x1000>;
-                               interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>,
-                                      <&mdma1 20 0x2 0x12000a08 0x0 0x0>,
-                                      <&mdma1 21 0x2 0x12000a0a 0x0 0x0>;
-                               dma-names = "tx", "rx", "ecc";
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x5c001000 0x400>;
+                               interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI6_K>;
+                               resets = <&rcc SPI6_R>;
+                               dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
+                                      <&mdma1 35 0x0 0x40002 0x0 0x0>;
+                               access-controllers = <&etzpc 4>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@5c002000 {
+                               compatible = "st,stm32mp15-i2c";
+                               reg = <0x5c002000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C4_K>;
+                               resets = <&rcc I2C4_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               st,syscfg-fmp = <&syscfg 0x4 0x8>;
+                               wakeup-source;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 5>;
                                status = "disabled";
                        };
-               };
 
-               qspi: spi@58003000 {
-                       compatible = "st,stm32f469-qspi";
-                       reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
-                       reg-names = "qspi", "qspi_mm";
-                       interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&mdma1 22 0x2 0x10100002 0x0 0x0>,
-                              <&mdma1 22 0x2 0x10100008 0x0 0x0>;
-                       dma-names = "tx", "rx";
-                       clocks = <&rcc QSPI_K>;
-                       resets = <&rcc QSPI_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
-               };
-
-               sdmmc1: mmc@58005000 {
-                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
-                       arm,primecell-periphid = <0x00253180>;
-                       reg = <0x58005000 0x1000>;
-                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SDMMC1_K>;
-                       clock-names = "apb_pclk";
-                       resets = <&rcc SDMMC1_R>;
-                       cap-sd-highspeed;
-                       cap-mmc-highspeed;
-                       max-frequency = <120000000>;
-                       status = "disabled";
-               };
-
-               sdmmc2: mmc@58007000 {
-                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
-                       arm,primecell-periphid = <0x00253180>;
-                       reg = <0x58007000 0x1000>;
-                       interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SDMMC2_K>;
-                       clock-names = "apb_pclk";
-                       resets = <&rcc SDMMC2_R>;
-                       cap-sd-highspeed;
-                       cap-mmc-highspeed;
-                       max-frequency = <120000000>;
-                       status = "disabled";
-               };
-
-               crc1: crc@58009000 {
-                       compatible = "st,stm32f7-crc";
-                       reg = <0x58009000 0x400>;
-                       clocks = <&rcc CRC1>;
-                       status = "disabled";
-               };
-
-               ethernet0: ethernet@5800a000 {
-                       compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
-                       reg = <0x5800a000 0x2000>;
-                       reg-names = "stmmaceth";
-                       interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "macirq";
-                       clock-names = "stmmaceth",
-                                     "mac-clk-tx",
-                                     "mac-clk-rx",
-                                     "eth-ck",
-                                     "ptp_ref",
-                                     "ethstp";
-                       clocks = <&rcc ETHMAC>,
-                                <&rcc ETHTX>,
-                                <&rcc ETHRX>,
-                                <&rcc ETHCK_K>,
-                                <&rcc ETHPTP_K>,
-                                <&rcc ETHSTP>;
-                       st,syscon = <&syscfg 0x4>;
-                       snps,mixed-burst;
-                       snps,pbl = <2>;
-                       snps,en-tx-lpi-clockgating;
-                       snps,axi-config = <&stmmac_axi_config_0>;
-                       snps,tso;
-                       status = "disabled";
-
-                       stmmac_axi_config_0: stmmac-axi-config {
-                               snps,wr_osr_lmt = <0x7>;
-                               snps,rd_osr_lmt = <0x7>;
-                               snps,blen = <0 0 0 0 16 8 4>;
-                       };
-               };
-
-               usbh_ohci: usb@5800c000 {
-                       compatible = "generic-ohci";
-                       reg = <0x5800c000 0x1000>;
-                       clocks = <&usbphyc>, <&rcc USBH>;
-                       resets = <&rcc USBH_R>;
-                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&usbphyc_port0>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               usbh_ehci: usb@5800d000 {
-                       compatible = "generic-ehci";
-                       reg = <0x5800d000 0x1000>;
-                       clocks = <&usbphyc>, <&rcc USBH>;
-                       resets = <&rcc USBH_R>;
-                       interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
-                       companion = <&usbh_ohci>;
-                       phys = <&usbphyc_port0>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               ltdc: display-controller@5a001000 {
-                       compatible = "st,stm32-ltdc";
-                       reg = <0x5a001000 0x400>;
-                       interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LTDC_PX>;
-                       clock-names = "lcd";
-                       resets = <&rcc LTDC_R>;
-                       status = "disabled";
-               };
-
-               iwdg2: watchdog@5a002000 {
-                       compatible = "st,stm32mp1-iwdg";
-                       reg = <0x5a002000 0x400>;
-                       clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
-                       clock-names = "pclk", "lsi";
-                       status = "disabled";
-               };
-
-               usbphyc: usbphyc@5a006000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       #clock-cells = <0>;
-                       compatible = "st,stm32mp1-usbphyc";
-                       reg = <0x5a006000 0x1000>;
-                       clocks = <&rcc USBPHY_K>;
-                       resets = <&rcc USBPHY_R>;
-                       vdda1v1-supply = <&reg11>;
-                       vdda1v8-supply = <&reg18>;
-                       status = "disabled";
-
-                       usbphyc_port0: usb-phy@0 {
-                               #phy-cells = <0>;
-                               reg = <0>;
-                       };
-
-                       usbphyc_port1: usb-phy@1 {
-                               #phy-cells = <1>;
-                               reg = <1>;
-                       };
-               };
-
-               usart1: serial@5c000000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x5c000000 0x400>;
-                       interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc USART1_K>;
-                       wakeup-source;
-                       status = "disabled";
-               };
-
-               spi6: spi@5c001000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x5c001000 0x400>;
-                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI6_K>;
-                       resets = <&rcc SPI6_R>;
-                       dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
-                              <&mdma1 35 0x0 0x40002 0x0 0x0>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               i2c4: i2c@5c002000 {
-                       compatible = "st,stm32mp15-i2c";
-                       reg = <0x5c002000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C4_K>;
-                       resets = <&rcc I2C4_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       st,syscfg-fmp = <&syscfg 0x4 0x8>;
-                       wakeup-source;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
-
-               rtc: rtc@5c004000 {
-                       compatible = "st,stm32mp1-rtc";
-                       reg = <0x5c004000 0x400>;
-                       clocks = <&rcc RTCAPB>, <&rcc RTC>;
-                       clock-names = "pclk", "rtc_ck";
-                       interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "disabled";
-               };
-
-               bsec: efuse@5c005000 {
-                       compatible = "st,stm32mp15-bsec";
-                       reg = <0x5c005000 0x400>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       part_number_otp: part-number-otp@4 {
-                               reg = <0x4 0x1>;
-                       };
-                       vrefint: vrefin-cal@52 {
-                               reg = <0x52 0x2>;
-                       };
-                       ts_cal1: calib@5c {
-                               reg = <0x5c 0x2>;
-                       };
-                       ts_cal2: calib@5e {
-                               reg = <0x5e 0x2>;
+                       i2c6: i2c@5c009000 {
+                               compatible = "st,stm32mp15-i2c";
+                               reg = <0x5c009000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C6_K>;
+                               resets = <&rcc I2C6_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               st,syscfg-fmp = <&syscfg 0x4 0x20>;
+                               wakeup-source;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 12>;
+                               status = "disabled";
                        };
                };
 
-               i2c6: i2c@5c009000 {
-                       compatible = "st,stm32mp15-i2c";
-                       reg = <0x5c009000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C6_K>;
-                       resets = <&rcc I2C6_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       st,syscfg-fmp = <&syscfg 0x4 0x20>;
-                       wakeup-source;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
-
                tamp: tamp@5c00a000 {
                        compatible = "st,stm32-tamp", "syscon", "simple-mfd";
                        reg = <0x5c00a000 0x400>;
index 486084e0b80b5df0fc3c581641918c90c23dbe2a..4640dafb1598c2701b6db1903530636a78e60369 100644 (file)
                             <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
        };
+};
 
-       soc {
-               m_can1: can@4400e000 {
-                       compatible = "bosch,m_can";
-                       reg = <0x4400e000 0x400>, <0x44011000 0x1400>;
-                       reg-names = "m_can", "message_ram";
-                       interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "int0", "int1";
-                       clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
-                       clock-names = "hclk", "cclk";
-                       bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>;
-                       status = "disabled";
-               };
+&etzpc {
+       m_can1: can@4400e000 {
+               compatible = "bosch,m_can";
+               reg = <0x4400e000 0x400>, <0x44011000 0x1400>;
+               reg-names = "m_can", "message_ram";
+               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
+               clock-names = "hclk", "cclk";
+               bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>;
+               access-controllers = <&etzpc 62>;
+               status = "disabled";
+       };
 
-               m_can2: can@4400f000 {
-                       compatible = "bosch,m_can";
-                       reg = <0x4400f000 0x400>, <0x44011000 0x2800>;
-                       reg-names = "m_can", "message_ram";
-                       interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "int0", "int1";
-                       clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
-                       clock-names = "hclk", "cclk";
-                       bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>;
-                       status = "disabled";
-               };
+       m_can2: can@4400f000 {
+               compatible = "bosch,m_can";
+               reg = <0x4400f000 0x400>, <0x44011000 0x2800>;
+               reg-names = "m_can", "message_ram";
+               interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
+               clock-names = "hclk", "cclk";
+               bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>;
+               access-controllers = <&etzpc 62>;
+               status = "disabled";
        };
 };
index 66ed5f9921ba14d96c5dcc2cc6f4c53cce3f54c9..9cf5ed111b52e167c678ddd5f429cac1b7162ce2 100644 (file)
@@ -10,6 +10,7 @@
 #include "stm32mp15-pinctrl.dtsi"
 #include "stm32mp15xxaa-pinctrl.dtsi"
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
 #include <dt-bindings/mfd/st,stpmic1.h>
 
 / {
                };
        };
 
+       led {
+               compatible = "gpio-leds";
+               led-blue {
+                       gpios = <&gpiod 9 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       default-state = "off";
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+       };
+
        sd_switch: regulator-sd_switch {
                compatible = "regulator-gpio";
                regulator-name = "sd_switch";
index b06a55a2fa188dfb7f5212f887d6e80e01b20e9a..97465717f932fc223647af76e88a6182cf3c870f 100644 (file)
@@ -4,15 +4,14 @@
  * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics.
  */
 
-/ {
-       soc {
-               cryp1: cryp@54001000 {
-                       compatible = "st,stm32mp1-cryp";
-                       reg = <0x54001000 0x400>;
-                       interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc CRYP1>;
-                       resets = <&rcc CRYP1_R>;
-                       status = "disabled";
-               };
+&etzpc {
+       cryp1: cryp@54001000 {
+               compatible = "st,stm32mp1-cryp";
+               reg = <0x54001000 0x400>;
+               interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&rcc CRYP1>;
+               resets = <&rcc CRYP1_R>;
+               access-controllers = <&etzpc 9>;
+               status = "disabled";
        };
 };
index 790b29ab0fa2cdc0b73105a406de3eab23ade9c5..dafe485dfe197f2aa13c259cd54c3efeb209e0f3 100644 (file)
 
                pmmc: system-controller@2921c00 {
                        compatible = "ti,k2g-sci";
-                       /*
-                        * In case of rare platforms that does not use k2g as
-                        * system master, use /delete-property/
-                        */
-                       ti,system-reboot-controller;
                        mbox-names = "rx", "tx";
                        mboxes = <&msgmgr 5 2>,
                                <&msgmgr 0 0>;
index 989d5a6edeed9c7516b0848897a8764d1f6c9de9..0614ffdc1578f9a288683c59e4807e6adcab9466 100644 (file)
@@ -80,7 +80,7 @@
                 * because the can not be enabled simultaneously on a
                 * single SoC.
                 */
-               opp-50-300000000{
+               opp-50-300000000 {
                        /* OPP50 */
                        opp-hz = /bits/ 64 <300000000>;
                        opp-microvolt = <950000 931000 969000>;
@@ -88,7 +88,7 @@
                        opp-suspend;
                };
 
-               opp-100-275000000{
+               opp-100-275000000 {
                        /* OPP100-1 */
                        opp-hz = /bits/ 64 <275000000>;
                        opp-microvolt = <1100000 1078000 1122000>;
@@ -96,7 +96,7 @@
                        opp-suspend;
                };
 
-               opp-100-300000000{
+               opp-100-300000000 {
                        /* OPP100-2 */
                        opp-hz = /bits/ 64 <300000000>;
                        opp-microvolt = <1100000 1078000 1122000>;
                        opp-suspend;
                };
 
-               opp-100-500000000{
+               opp-100-500000000 {
                        /* OPP100-3 */
                        opp-hz = /bits/ 64 <500000000>;
                        opp-microvolt = <1100000 1078000 1122000>;
index 5fd1b380ece6280516c0e141f68a3a969b42d509..0a1df30f2818b2619d510773b95c773a97fe973e 100644 (file)
@@ -92,7 +92,7 @@
                        opp-supported-hw = <0xFF 0x08>;
                };
 
-               opp-800000000{
+               opp-800000000 {
                        /* OPP Turbo */
                        opp-hz = /bits/ 64 <800000000>;
                        opp-microvolt = <1260000 1234800 1285200>;
index 1045eb24aa0dbc2e81e8218371d669ce85a5235a..50a02c393ea27855f86c9d9a153877ea1c5dfc4f 100644 (file)
 };
 
 &scm_conf_clocks {
-       dpll_gmac_h14x2_ctrl_ck: dpll_gmac_h14x2_ctrl_ck@3fc {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&dpll_gmac_x2_ck>;
-               ti,max-div = <63>;
-               reg = <0x03fc>;
-               ti,bit-shift = <20>;
-               ti,latch-bit = <26>;
-               assigned-clocks = <&dpll_gmac_h14x2_ctrl_ck>;
-               assigned-clock-rates = <80000000>;
-       };
-
-       dpll_gmac_h14x2_ctrl_mux_ck: dpll_gmac_h14x2_ctrl_mux_ck@3fc {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clocks = <&dpll_gmac_ck>, <&dpll_gmac_h14x2_ctrl_ck>;
+       /* CTRL_CORE_SMA_SW_0 */
+       clock@3fc {
+               compatible = "ti,clksel";
                reg = <0x3fc>;
-               ti,bit-shift = <29>;
-               ti,latch-bit = <26>;
-               assigned-clocks = <&dpll_gmac_h14x2_ctrl_mux_ck>;
-               assigned-clock-parents = <&dpll_gmac_h14x2_ctrl_ck>;
-       };
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_gmac_h14x2_ctrl_ck: clock@20 {
+                       reg = <20>;
+                       clock-output-names = "dpll_gmac_h14x2_ctrl_ck";
+                       compatible = "ti,divider-clock";
+                       clocks = <&dpll_gmac_x2_ck>;
+                       ti,max-div = <63>;
+                       ti,latch-bit = <26>;
+                       assigned-clocks = <&dpll_gmac_h14x2_ctrl_ck>;
+                       assigned-clock-rates = <80000000>;
+                       #clock-cells = <0>;
+               };
 
-       mcan_clk: mcan_clk@3fc {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&dpll_gmac_h14x2_ctrl_mux_ck>;
-               ti,bit-shift = <27>;
-               reg = <0x3fc>;
+               mcan_clk: clock@27 {
+                       reg = <27>;
+                       clock-output-names = "mcan_clk";
+                       compatible = "ti,gate-clock";
+                       clocks = <&dpll_gmac_h14x2_ctrl_mux_ck>;
+                       #clock-cells = <0>;
+               };
+
+               dpll_gmac_h14x2_ctrl_mux_ck: clock@29 {
+                       reg = <29>;
+                       clock-output-names = "dpll_gmac_h14x2_ctrl_mux_ck";
+                       compatible = "ti,mux-clock";
+                       clocks = <&dpll_gmac_ck>, <&dpll_gmac_h14x2_ctrl_ck>;
+                       ti,latch-bit = <26>;
+                       assigned-clocks = <&dpll_gmac_h14x2_ctrl_mux_ck>;
+                       assigned-clock-parents = <&dpll_gmac_h14x2_ctrl_ck>;
+                       #clock-cells = <0>;
+               };
        };
 };
 
index 06466d36caa9f27b8782b47ab42c1bd8a11fda71..04f08b8c64d2783b7afb7d0980c6c3d380e23d3b 100644 (file)
                ti,invert-autoidle-bit;
        };
 
-       dpll_core_byp_mux: clock-dpll-core-byp-mux-23@12c {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clock-output-names = "dpll_core_byp_mux";
-               clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
-               ti,bit-shift = <23>;
-               reg = <0x012c>;
+       /* CM_CLKSEL_DPLL_CORE */
+       clock@12c {
+               compatible = "ti,clksel";
+               reg = <0x12c>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_core_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_core_byp_mux";
+                       clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_core_ck: clock@120 {
                clock-div = <1>;
        };
 
-       dpll_dsp_byp_mux: clock-dpll-dsp-byp-mux-23@240 {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clock-output-names = "dpll_dsp_byp_mux";
-               clocks = <&sys_clkin1>, <&dsp_dpll_hs_clk_div>;
-               ti,bit-shift = <23>;
-               reg = <0x0240>;
+       /* CM_CLKSEL_DPLL_DSP */
+       clock@240 {
+               compatible = "ti,clksel";
+               reg = <0x240>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_dsp_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_dsp_byp_mux";
+                       clocks = <&sys_clkin1>, <&dsp_dpll_hs_clk_div>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_dsp_ck: clock@234 {
                clock-div = <1>;
        };
 
-       dpll_iva_byp_mux: clock-dpll-iva-byp-mux-23@1ac {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clock-output-names = "dpll_iva_byp_mux";
-               clocks = <&sys_clkin1>, <&iva_dpll_hs_clk_div>;
-               ti,bit-shift = <23>;
-               reg = <0x01ac>;
+       /* CM_CLKSEL_DPLL_IVA */
+       clock@1ac {
+               compatible = "ti,clksel";
+               reg = <0x1ac>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_iva_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_iva_byp_mux";
+                       clocks = <&sys_clkin1>, <&iva_dpll_hs_clk_div>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_iva_ck: clock@1a0 {
                clock-div = <1>;
        };
 
-       dpll_gpu_byp_mux: clock-dpll-gpu-byp-mux-23@2e4 {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clock-output-names = "dpll_gpu_byp_mux";
-               clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
-               ti,bit-shift = <23>;
-               reg = <0x02e4>;
+       /* CM_CLKSEL_DPLL_GPU */
+       clock@2e4 {
+               compatible = "ti,clksel";
+               reg = <0x2e4>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_gpu_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_gpu_byp_mux";
+                       clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_gpu_ck: clock@2d8 {
                clock-div = <1>;
        };
 
-       dpll_ddr_byp_mux: clock-dpll-ddr-byp-mux-23@21c {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clock-output-names = "dpll_ddr_byp_mux";
-               clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
-               ti,bit-shift = <23>;
-               reg = <0x021c>;
+       /* CM_CLKSEL_DPLL_DDR */
+       clock@21c {
+               compatible = "ti,clksel";
+               reg = <0x21c>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_ddr_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_ddr_byp_mux";
+                       clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_ddr_ck: clock@210 {
                ti,invert-autoidle-bit;
        };
 
-       dpll_gmac_byp_mux: clock-dpll-gmac-byp-mux-23@2b4 {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clock-output-names = "dpll_gmac_byp_mux";
-               clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
-               ti,bit-shift = <23>;
-               reg = <0x02b4>;
+       /* CM_CLKSEL_DPLL_GMAC */
+       clock@2b4 {
+               compatible = "ti,clksel";
+               reg = <0x2b4>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_gmac_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_gmac_byp_mux";
+                       clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_gmac_ck: clock@2a8 {
                clock-div = <1>;
        };
 
-       dpll_eve_byp_mux: clock-dpll-eve-byp-mux-23@290 {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clock-output-names = "dpll_eve_byp_mux";
-               clocks = <&sys_clkin1>, <&eve_dpll_hs_clk_div>;
-               ti,bit-shift = <23>;
-               reg = <0x0290>;
+       /* CM_CLKSEL_DPLL_EVE */
+       clock@290 {
+               compatible = "ti,clksel";
+               reg = <0x290>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_eve_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_eve_byp_mux";
+                       clocks = <&sys_clkin1>, <&eve_dpll_hs_clk_div>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_eve_ck: clock@284 {
                clock-div = <1>;
        };
 
-       l3_iclk_div: clock-l3-iclk-div-4@100 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clock-output-names = "l3_iclk_div";
-               ti,max-div = <2>;
-               ti,bit-shift = <4>;
-               reg = <0x0100>;
-               clocks = <&dpll_core_h12x2_ck>;
-               ti,index-power-of-two;
+       /* CM_CLKSEL_CORE */
+       clock@100 {
+               compatible = "ti,clksel";
+               reg = <0x100>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               l3_iclk_div: clock@4 {
+                       reg = <4>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "l3_iclk_div";
+                       ti,max-div = <2>;
+                       clocks = <&dpll_core_h12x2_ck>;
+                       ti,index-power-of-two;
+                       #clock-cells = <0>;
+               };
        };
 
        l4_root_clk_div: clock-l4-root-clk-div {
                ti,index-starts-at-one;
        };
 
-       abe_dpll_sys_clk_mux: clock-abe-dpll-sys-clk-mux@118 {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clock-output-names = "abe_dpll_sys_clk_mux";
-               clocks = <&sys_clkin1>, <&sys_clkin2>;
-               reg = <0x0118>;
+       /* CM_CLKSEL_ABE_PLL_SYS */
+       clock@118 {
+               compatible = "ti,clksel";
+               reg = <0x118>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               abe_dpll_sys_clk_mux: clock@0 {
+                       reg = <0>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "abe_dpll_sys_clk_mux";
+                       clocks = <&sys_clkin1>, <&sys_clkin2>;
+                       #clock-cells = <0>;
+               };
        };
 
        abe_dpll_bypass_clk_mux: clock-abe-dpll-bypass-clk-mux@114 {
                ti,index-power-of-two;
        };
 
-       dsp_gclk_div: clock-dsp-gclk-div@18c {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clock-output-names = "dsp_gclk_div";
-               clocks = <&dpll_dsp_m2_ck>;
-               ti,max-div = <64>;
-               reg = <0x018c>;
-               ti,index-power-of-two;
+       /* CM_CLKSEL_DPLL_USB */
+       clock@18c {
+               compatible = "ti,clksel";
+               reg = <0x18c>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dsp_gclk_div: clock@0 {
+                       reg = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "dsp_gclk_div";
+                       clocks = <&dpll_dsp_m2_ck>;
+                       ti,max-div = <64>;
+                       ti,index-power-of-two;
+                       #clock-cells = <0>;
+               };
        };
 
        gpu_dclk: clock-gpu-dclk@1a0 {
                clock-div = <1>;
        };
 
-       dpll_per_byp_mux: clock-dpll-per-byp-mux-23@14c {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clock-output-names = "dpll_per_byp_mux";
-               clocks = <&sys_clkin1>, <&per_dpll_hs_clk_div>;
-               ti,bit-shift = <23>;
-               reg = <0x014c>;
+       /* CM_CLKSEL_DPLL_PER */
+       clock@14c {
+               compatible = "ti,clksel";
+               reg = <0x14c>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_per_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_per_byp_mux";
+                       clocks = <&sys_clkin1>, <&per_dpll_hs_clk_div>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_per_ck: clock@140 {
                clock-div = <1>;
        };
 
-       dpll_usb_byp_mux: clock-dpll-usb-byp-mux-23@18c {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clock-output-names = "dpll_usb_byp_mux";
-               clocks = <&sys_clkin1>, <&usb_dpll_hs_clk_div>;
-               ti,bit-shift = <23>;
-               reg = <0x018c>;
+       /* CM_CLKSEL_DPLL_USB */
+       clock@18c {
+               compatible = "ti,clksel";
+               reg = <0x18c>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_usb_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_usb_byp_mux";
+                       clocks = <&sys_clkin1>, <&usb_dpll_hs_clk_div>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_usb_ck: clock@180 {
index d334853412517378b460577067da2241cde0d319..07c5b963af78ab2347d2e8bb59b3c80937a8e396 100644 (file)
                ti,current-limit = <100>;
                ti,weak-battery-voltage = <3400>;
                ti,battery-regulation-voltage = <4200>;
-               ti,charge-current = <650>;
+               ti,charge-current = <950>;
                ti,termination-current = <100>;
                ti,resistor-sense = <68>;
 
index 63e375cd9eb40eb4c39885031d6986e7b1311e60..bd54b516512978f1301ea7f54c10f0d853a68296 100644 (file)
@@ -24,7 +24,7 @@
                reg = <0x0 0x0 0x0 0x80000000>;
        };
 
-       memory@1,e0000000 {
+       memory@1e0000000 {
                device_type = "memory";
                reg = <0x1 0xe0000000 0x0 0x0>;
        };
index e6d5bc0f7a612b872e88ada600458a18e7defd61..d1f415acd7b557b17f97dfe1298b4be090fb6780 100644 (file)
@@ -53,7 +53,7 @@
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
index 0af6dcdf7515a9f3d5008df8664bc40c2df979bd..dec9960a7440f5d1b5772bc8f9228e1472e6c18d 100644 (file)
@@ -41,7 +41,7 @@
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
index bfb806cf6d7ac95cdc39942c1e20a70334c714fd..fd3794678c331b8b980ec2d67f73bdf931e18298 100644 (file)
@@ -52,7 +52,7 @@
                status = "okay";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
        };
index 4f8529d5ac007079af2bf882a245acecba4b9d6c..c8303a66438de40989da4bc294b5c8441726a357 100644 (file)
@@ -68,7 +68,7 @@
                status = "okay";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
index 50ed2e9f10ed0850d8242d4c71fb459ad9ff4edf..6c65d5bc16ba942740f5d3e8988c75b7195f6f55 100644 (file)
@@ -79,7 +79,7 @@
                enable-active-high;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
        };
index 87847116ab6d9b4d31b1f36d5584d9cf02645597..6eab61a12cd8f8ff41bc365b8e9817b29e696954 100644 (file)
        leds {
                compatible = "gpio-leds";
 
-               led-0 {
+               led0: led-0 {
                        function = LED_FUNCTION_INDICATOR;
                        color = <LED_COLOR_ID_BLUE>;
                        gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */
+                       retain-state-suspended;
                };
 
-               led-1 {
+               led1: led-1 {
                        function = LED_FUNCTION_INDICATOR;
                        color = <LED_COLOR_ID_GREEN>;
                        gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */
+                       retain-state-suspended;
                };
 
-               led-2 {
+               led2: led-2 {
                        function = LED_FUNCTION_INDICATOR;
                        color = <LED_COLOR_ID_RED>;
                        gpios = <&pio 3 19 GPIO_ACTIVE_HIGH>; /* PD19 */
+                       retain-state-suspended;
                };
        };
 
+       multi-led {
+               compatible = "leds-group-multicolor";
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_INDICATOR;
+               leds = <&led0>, <&led1>, <&led2>;
+       };
+
        reg_ps: ps-regulator {
                compatible = "regulator-fixed";
                regulator-name = "ps";
index 0a5607f73049e19ba9d3334b0907abbc7dd781f1..c6007df99938bac3ebac7e5dd89b3d4365942366 100644 (file)
@@ -98,7 +98,7 @@
                enable-active-high;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
                post-power-on-delay-ms = <200>;
index 1128030e4c25b5e23e68bed23603d1240460fc9c..b407e1dd08a737884efa0f3a83faf9b7e454d2fb 100644 (file)
@@ -74,7 +74,7 @@
                status = "okay";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
        };
index 57ac18738c995ba7cdb686b0adc1eb9549690110..ce4aa44c33534284cd458ec20424707b4c86018d 100644 (file)
        gpu_opp_table: opp-table-gpu {
                compatible = "operating-points-v2";
 
-               opp-120000000 {
-                       opp-hz = /bits/ 64 <120000000>;
-               };
-
-               opp-312000000 {
-                       opp-hz = /bits/ 64 <312000000>;
-               };
-
                opp-432000000 {
                        opp-hz = /bits/ 64 <432000000>;
                };
        };
 
-       osc24M: osc24M_clk {
+       osc24M: osc24M-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <24000000>;
                clock-output-names = "osc24M";
        };
 
-       osc32k: osc32k_clk {
+       osc32k: osc32k-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                        };
 
                        trips {
-                               cpu_alert0: cpu_alert0 {
+                               cpu_alert0: cpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <75000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               cpu_alert1: cpu_alert1 {
+                               cpu_alert1: cpu-alert1 {
                                        /* milliCelsius */
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
 
-                               cpu_crit: cpu_crit {
+                               cpu_crit: cpu-crit {
                                        /* milliCelsius */
                                        temperature = <110000>;
                                        hysteresis = <2000>;
diff --git a/src/arm64/allwinner/sun50i-h313-tanix-tx1.dts b/src/arm64/allwinner/sun50i-h313-tanix-tx1.dts
new file mode 100644 (file)
index 0000000..bb2cde5
--- /dev/null
@@ -0,0 +1,183 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2024 Arm Ltd.
+ */
+
+/dts-v1/;
+
+#include "sun50i-h616.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "Tanix TX1";
+       compatible = "oranth,tanix-tx1", "allwinner,sun50i-h616";
+
+       aliases {
+               serial0 = &uart0;
+               ethernet0 = &sdio_wifi;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               key {
+                       label = "hidden";
+                       linux,code = <BTN_0>;
+                       gpios = <&pio 7 9 GPIO_ACTIVE_LOW>; /* PH9 */
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       function = LED_FUNCTION_POWER;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
+                       default-state = "on";
+               };
+       };
+
+       wifi_pwrseq: pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
+               clock-names = "ext_clock";
+               pinctrl-0 = <&x32clk_fanout_pin>;
+               pinctrl-names = "default";
+               reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
+       };
+
+       reg_vcc5v: vcc5v {
+               /* board wide 5V supply directly from the DC input */
+               compatible = "regulator-fixed";
+               regulator-name = "vcc-5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&ir {
+       status = "okay";
+};
+
+&mmc1 {
+       vmmc-supply = <&reg_dldo1>;
+       vqmmc-supply = <&reg_aldo1>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+
+       sdio_wifi: wifi@1 {
+               reg = <1>;
+       };
+};
+
+&mmc2 {
+       vmmc-supply = <&reg_dldo1>;
+       vqmmc-supply = <&reg_aldo1>;
+       bus-width = <8>;
+       non-removable;
+       max-frequency = <100000000>;
+       cap-mmc-hw-reset;
+       mmc-ddr-1_8v;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&pio {
+       vcc-pc-supply = <&reg_aldo1>;
+       vcc-pf-supply = <&reg_dldo1>;
+       vcc-pg-supply = <&reg_aldo1>;
+       vcc-ph-supply = <&reg_dldo1>;
+       vcc-pi-supply = <&reg_dldo1>;
+};
+
+&r_i2c {
+       status = "okay";
+
+       axp313: pmic@36 {
+               compatible = "x-powers,axp313a";
+               reg = <0x36>;
+               #interrupt-cells = <1>;
+               interrupt-controller;
+
+               vin1-supply = <&reg_vcc5v>;
+               vin2-supply = <&reg_vcc5v>;
+               vin3-supply = <&reg_vcc5v>;
+
+               regulators {
+                       /* Supplies VCC-PLL, so needs to be always on. */
+                       reg_aldo1: aldo1 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc1v8";
+                       };
+
+                       /* Supplies VCC-IO, so needs to be always on. */
+                       reg_dldo1: dldo1 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc3v3";
+                       };
+
+                       reg_dcdc1: dcdc1 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <810000>;
+                               regulator-max-microvolt = <990000>;
+                               regulator-name = "vdd-gpu-sys";
+                       };
+
+                       reg_dcdc2: dcdc2 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <810000>;
+                               regulator-max-microvolt = <1120000>;
+                               regulator-name = "vdd-cpu";
+                       };
+
+                       reg_dcdc3: dcdc3 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-name = "vdd-dram";
+                       };
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_ph_pins>;
+       status = "okay";
+};
+
+&usbotg {
+       dr_mode = "host";       /* USB A type receptable */
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};
index 4c3921ac236cca2cacee1b6bfbddc3ee3827351f..b69032c4455754cbe9fae604761d3b640d1a78eb 100644 (file)
@@ -68,7 +68,7 @@
                states = <1100000 0>, <1300000 1>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                post-power-on-delay-ms = <200>;
index a3e040da38a0735d23c3fab1ffe01d48bba2f637..3a7ee44708a2051da23f883f26175157ba3067ad 100644 (file)
                states = <1100000 0x0>, <1300000 0x1>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                post-power-on-delay-ms = <200>;
        non-removable;
        status = "okay";
 
-       rtl8189etv: sdio_wifi@1 {
+       rtl8189etv: wifi@1 {
                reg = <1>;
        };
 };
index d7f8bad6bb9809eb9941b0ac6f1a6d56f4db5a9c..b699bb900e13bb6e2d293d227cefd893645ccb41 100644 (file)
@@ -85,7 +85,7 @@
                status = "okay";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 2 14 GPIO_ACTIVE_LOW>; /* PC14 */
        };
index 7ec5ac850a0dc576a9680aac773ad9792387a9c6..ae85131aac9c730d2738cec1cdb930c5e3c55101 100644 (file)
@@ -97,7 +97,7 @@
         * Explicitly define the sdio device, so that we can add an ethernet
         * alias for it (which e.g. makes u-boot set a mac-address).
         */
-       rtl8189ftv: sdio_wifi@1 {
+       rtl8189ftv: wifi@1 {
                reg = <1>;
        };
 };
index 22530ace12d5a0c9f505f1a7c66d79e794b2c432..734481e998b8dd4b7efe319605dd8c9b64a86ed7 100644 (file)
@@ -52,7 +52,7 @@
                regulator-max-microvolt = <3300000>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
                post-power-on-delay-ms = <200>;
index 381d58cea092d9f8dadfe6f37ba2caa52d700c1c..3be1e8c2fdb9cf1aa2a3d5403a99892a778b737b 100644 (file)
@@ -34,7 +34,7 @@
                };
        };
 
-       ext_osc32k: ext_osc32k_clk {
+       ext_osc32k: ext-osc32k-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <32768>;
index 6fc65e8db2206810ae34b14f48916aed4b2f00b7..6c3bfe3d09d9a3582b4bbb996cfa5ba05bf54cc0 100644 (file)
@@ -33,7 +33,7 @@
                };
        };
 
-       ext_osc32k: ext_osc32k_clk {
+       ext_osc32k: ext-osc32k-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <32768>;
index fb31dcb1cb6d772e9646898f0e9c96f985e34ea9..a3f65a45bd26635d29dafe785ec28641a1501a79 100644 (file)
@@ -11,7 +11,7 @@
                serial1 = &uart1; /* BT-UART */
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
index 92745128fcfebdf6d1f85cb6605ac560e2aaa7ca..13b07141c3344b6949c618425fd571f05da85623 100644 (file)
@@ -32,7 +32,7 @@
                };
        };
 
-       ext_osc32k: ext_osc32k_clk {
+       ext_osc32k: ext-osc32k-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <32768>;
index b710f1a0f53acb64df63bc3a442d429da455fda6..66fe03910d5e6b482e1a1a0fca3fa62050eaee83 100644 (file)
@@ -5,13 +5,13 @@
 
 #include "sun50i-h6-pine-h64.dts"
 
+/delete-node/ &reg_gmac_3v3;
+
 / {
        model = "Pine H64 model B";
        compatible = "pine64,pine-h64-model-b", "allwinner,sun50i-h6";
 
-       /delete-node/ reg_gmac_3v3;
-
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */
                post-power-on-delay-ms = <200>;
index 1ffd68f43f875845f245e60d17e8c02f932ed88d..3910393be1f96c9f869b61fe3d16cecd8eeff0a9 100644 (file)
@@ -22,7 +22,7 @@
                stdout-path = "serial0:115200n8";
        };
 
-       ext_osc32k: ext_osc32k_clk {
+       ext_osc32k: ext-osc32k-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <32768>;
index d11e5041bae9a470242e0226ecde743dd1b72fa7..8a8591c4e7dd6cf6aaca502ddb8c72fba110f513 100644 (file)
@@ -68,7 +68,7 @@
                status = "disabled";
        };
 
-       osc24M: osc24M_clk {
+       osc24M: osc24M-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <24000000>;
index af421ba24ce0c6daae4c015ab219e3c80fbc6fa0..d12b01c5f41b69029de04bc006be35c1ded3aeaa 100644 (file)
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include "sun50i-h616.dtsi"
+#include "sun50i-h616-cpu-opp.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
        };
 };
 
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
+
 &mmc0 {
        vmmc-supply = <&reg_dldo1>;
        /* Card detection pin is not connected */
diff --git a/src/arm64/allwinner/sun50i-h616-cpu-opp.dtsi b/src/arm64/allwinner/sun50i-h616-cpu-opp.dtsi
new file mode 100644 (file)
index 0000000..aca22a7
--- /dev/null
@@ -0,0 +1,115 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+// Copyright (C) 2023 Martin Botka <martin@somainline.org>
+
+/ {
+       cpu_opp_table: opp-table-cpu {
+               compatible = "allwinner,sun50i-h616-operating-points";
+               nvmem-cells = <&cpu_speed_grade>;
+               opp-shared;
+
+               opp-480000000 {
+                       opp-hz = /bits/ 64 <480000000>;
+                       opp-microvolt = <900000>;
+                       clock-latency-ns = <244144>; /* 8 32k periods */
+                       opp-supported-hw = <0x1f>;
+               };
+
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <900000>;
+                       clock-latency-ns = <244144>; /* 8 32k periods */
+                       opp-supported-hw = <0x12>;
+               };
+
+               opp-720000000 {
+                       opp-hz = /bits/ 64 <720000000>;
+                       opp-microvolt = <900000>;
+                       clock-latency-ns = <244144>; /* 8 32k periods */
+                       opp-supported-hw = <0x0d>;
+               };
+
+               opp-792000000 {
+                       opp-hz = /bits/ 64 <792000000>;
+                       opp-microvolt-speed1 = <900000>;
+                       opp-microvolt-speed4 = <940000>;
+                       clock-latency-ns = <244144>; /* 8 32k periods */
+                       opp-supported-hw = <0x12>;
+               };
+
+               opp-936000000 {
+                       opp-hz = /bits/ 64 <936000000>;
+                       opp-microvolt = <900000>;
+                       clock-latency-ns = <244144>; /* 8 32k periods */
+                       opp-supported-hw = <0x0d>;
+               };
+
+               opp-1008000000 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt-speed0 = <950000>;
+                       opp-microvolt-speed1 = <940000>;
+                       opp-microvolt-speed2 = <950000>;
+                       opp-microvolt-speed3 = <950000>;
+                       opp-microvolt-speed4 = <1020000>;
+                       clock-latency-ns = <244144>; /* 8 32k periods */
+                       opp-supported-hw = <0x1f>;
+               };
+
+               opp-1104000000 {
+                       opp-hz = /bits/ 64 <1104000000>;
+                       opp-microvolt-speed0 = <1000000>;
+                       opp-microvolt-speed2 = <1000000>;
+                       opp-microvolt-speed3 = <1000000>;
+                       clock-latency-ns = <244144>; /* 8 32k periods */
+                       opp-supported-hw = <0x0d>;
+               };
+
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt-speed0 = <1050000>;
+                       opp-microvolt-speed1 = <1020000>;
+                       opp-microvolt-speed2 = <1050000>;
+                       opp-microvolt-speed3 = <1050000>;
+                       opp-microvolt-speed4 = <1100000>;
+                       clock-latency-ns = <244144>; /* 8 32k periods */
+                       opp-supported-hw = <0x1f>;
+               };
+
+               opp-1320000000 {
+                       opp-hz = /bits/ 64 <1320000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <244144>; /* 8 32k periods */
+                       opp-supported-hw = <0x1d>;
+               };
+
+               opp-1416000000 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <244144>; /* 8 32k periods */
+                       opp-supported-hw = <0x0d>;
+               };
+
+               opp-1512000000 {
+                       opp-hz = /bits/ 64 <1512000000>;
+                       opp-microvolt-speed1 = <1100000>;
+                       opp-microvolt-speed3 = <1100000>;
+                       clock-latency-ns = <244144>; /* 8 32k periods */
+                       opp-supported-hw = <0x0a>;
+               };
+       };
+};
+
+&cpu0 {
+       operating-points-v2 = <&cpu_opp_table>;
+};
+
+&cpu1 {
+       operating-points-v2 = <&cpu_opp_table>;
+};
+
+&cpu2 {
+       operating-points-v2 = <&cpu_opp_table>;
+};
+
+&cpu3 {
+       operating-points-v2 = <&cpu_opp_table>;
+};
index b5d713926a341a291d1eb4e649b7984cd8ebc9e4..a360d8567f95589832f4a402a88c1aae11ade033 100644 (file)
@@ -6,12 +6,17 @@
 /dts-v1/;
 
 #include "sun50i-h616-orangepi-zero.dtsi"
+#include "sun50i-h616-cpu-opp.dtsi"
 
 / {
        model = "OrangePi Zero2";
        compatible = "xunlong,orangepi-zero2", "allwinner,sun50i-h616";
 };
 
+&cpu0 {
+       cpu-supply = <&reg_dcdca>;
+};
+
 &emac0 {
        allwinner,rx-delay-ps = <3100>;
        allwinner,tx-delay-ps = <700>;
index 959b6fd18483b48eefc23b6eb634604d2a7a52e5..26d25b5b59e0f89360799404d9998ca612887aa7 100644 (file)
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include "sun50i-h616.dtsi"
+#include "sun50i-h616-cpu-opp.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
        };
 };
 
+&cpu0 {
+       cpu-supply = <&reg_dcdca>;
+};
+
 &ehci0 {
        status = "okay";
 };
index b2e85e52d1a12217e94cfd3b64b00b131075e76c..921d5f61d8d6a74970a0cabeb7c7de35bd7b4351 100644 (file)
@@ -26,6 +26,7 @@
                        reg = <0>;
                        enable-method = "psci";
                        clocks = <&ccu CLK_CPUX>;
+                       #cooling-cells = <2>;
                };
 
                cpu1: cpu@1 {
@@ -34,6 +35,7 @@
                        reg = <1>;
                        enable-method = "psci";
                        clocks = <&ccu CLK_CPUX>;
+                       #cooling-cells = <2>;
                };
 
                cpu2: cpu@2 {
@@ -42,6 +44,7 @@
                        reg = <2>;
                        enable-method = "psci";
                        clocks = <&ccu CLK_CPUX>;
+                       #cooling-cells = <2>;
                };
 
                cpu3: cpu@3 {
@@ -50,6 +53,7 @@
                        reg = <3>;
                        enable-method = "psci";
                        clocks = <&ccu CLK_CPUX>;
+                       #cooling-cells = <2>;
                };
        };
 
                        ths_calibration: thermal-sensor-calibration@14 {
                                reg = <0x14 0x8>;
                        };
+
+                       cpu_speed_grade: cpu-speed-grade@0 {
+                               reg = <0x0 2>;
+                       };
                };
 
                watchdog: watchdog@30090a0 {
                        };
 
                        i2c0_pins: i2c0-pins {
-                               pins = "PI6", "PI7";
+                               pins = "PI5", "PI6";
                                function = "i2c0";
                        };
 
                        #reset-cells = <1>;
                };
 
+               nmi_intc: interrupt-controller@7010320 {
+                       compatible = "allwinner,sun50i-h616-nmi",
+                                    "allwinner,sun9i-a80-nmi";
+                       reg = <0x07010320 0xc>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                r_pio: pinctrl@7022000 {
                        compatible = "allwinner,sun50i-h616-r-pinctrl";
                        reg = <0x07022000 0x400>;
index 8c1263a3939e768e6204674d04fbf1e199ba1c80..e92d150aaf1c154dd6f5d8e973a9f18762a71e38 100644 (file)
@@ -4,6 +4,11 @@
  */
 
 #include "sun50i-h616.dtsi"
+#include "sun50i-h616-cpu-opp.dtsi"
+
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
 
 &mmc2 {
        pinctrl-names = "default";
index 21ca1977055d95cccc085779ba08e582f3c90697..6a4f0da9723303968c64710e5a700d6d681e9ea3 100644 (file)
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include "sun50i-h616.dtsi"
+#include "sun50i-h616-cpu-opp.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
        };
 };
 
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
+
 &ehci1 {
        status = "okay";
 };
index b3b1b8692125f9f75df58a4a464fb5a4f185d79c..e1cd7572a14cebf22fd53689f99035f9e0cbcd91 100644 (file)
@@ -6,12 +6,17 @@
 /dts-v1/;
 
 #include "sun50i-h616-orangepi-zero.dtsi"
+#include "sun50i-h616-cpu-opp.dtsi"
 
 / {
        model = "OrangePi Zero3";
        compatible = "xunlong,orangepi-zero3", "allwinner,sun50i-h618";
 };
 
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
+
 &emac0 {
        allwinner,tx-delay-ps = <700>;
        phy-mode = "rgmii-rxid";
index ac0a2b7ea6f31089fba1bae1d76fbffba859320f..d6631bfe629fa3b602fe1ec4ce08cc48f383e65c 100644 (file)
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include "sun50i-h616.dtsi"
+#include "sun50i-h616-cpu-opp.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
@@ -41,7 +42,7 @@
                regulator-always-on;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
        };
 };
 
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
+
 &ehci0 {
        status = "okay";
 };
index b6e3c169797f0514fa261bcbadbbe346b5f09a6b..ce90327e1b2e8b15c9ca2a625f0fc6d9d4afdfef 100644 (file)
@@ -42,7 +42,7 @@
                regulator-always-on;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
                post-power-on-delay-ms = <200>;
                compatible = "x-powers,axp803";
                reg = <0x3a3>;
                interrupt-parent = <&r_intc>;
-               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_LOW>;
+               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
                x-powers,drive-vbus-en;
 
                vin1-supply = <&reg_vcc5v>;
diff --git a/src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts b/src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
new file mode 100644 (file)
index 0000000..ee30584
--- /dev/null
@@ -0,0 +1,327 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Copyright (C) 2024 Ryan Walklin <ryan@testtoast.com>.
+ */
+
+/dts-v1/;
+
+#include "sun50i-h616.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "Anbernic RG35XX 2024";
+       chassis-type = "handset";
+       compatible = "anbernic,rg35xx-2024", "allwinner,sun50i-h700";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio_keys_gamepad: gpio-keys-gamepad {
+               compatible = "gpio-keys";
+
+               button-a {
+                       label = "Action-Pad A";
+                       gpios = <&pio 0 0 GPIO_ACTIVE_LOW>; /* PA0 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_EAST>;
+               };
+
+               button-b {
+                       label = "Action-Pad B";
+                       gpios = <&pio 0 1 GPIO_ACTIVE_LOW>; /* PA1 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_SOUTH>;
+               };
+
+               button-down {
+                       label = "D-Pad Down";
+                       gpios = <&pio 4 0 GPIO_ACTIVE_LOW>; /* PE0 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_DPAD_DOWN>;
+               };
+
+               button-l1 {
+                       label = "Key L1";
+                       gpios = <&pio 0 10 GPIO_ACTIVE_LOW>; /* PA10 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_TL>;
+               };
+
+               button-l2 {
+                       label = "Key L2";
+                       gpios = <&pio 0 11 GPIO_ACTIVE_LOW>; /* PA11 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_TL2>;
+               };
+
+               button-left {
+                       label = "D-Pad left";
+                       gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_DPAD_LEFT>;
+               };
+
+               button-menu {
+                       label = "Key Menu";
+                       gpios = <&pio 4 3 GPIO_ACTIVE_LOW>; /* PE3 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_MODE>;
+               };
+
+               button-r1 {
+                       label = "Key R1";
+                       gpios = <&pio 0 12 GPIO_ACTIVE_LOW>; /* PA12 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_TR>;
+               };
+
+               button-r2 {
+                       label = "Key R2";
+                       gpios = <&pio 0 7 GPIO_ACTIVE_LOW>; /* PA7 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_TR2>;
+               };
+
+               button-right {
+                       label = "D-Pad Right";
+                       gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_DPAD_RIGHT>;
+               };
+
+               button-select {
+                       label = "Key Select";
+                       gpios = <&pio 0 5 GPIO_ACTIVE_LOW>; /* PA5 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_SELECT>;
+               };
+               button-start {
+                       label = "Key Start";
+                       gpios = <&pio 0 4 GPIO_ACTIVE_LOW>; /* PA4 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_START>;
+               };
+
+               button-up {
+                       label = "D-Pad Up";
+                       gpios = <&pio 0 6 GPIO_ACTIVE_LOW>; /* PA6 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_DPAD_UP>;
+               };
+
+               button-x {
+                       label = "Action-Pad X";
+                       gpios = <&pio 0 3 GPIO_ACTIVE_LOW>; /* PA3 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_NORTH>;
+               };
+
+               button-y {
+                       label = "Action Pad Y";
+                       gpios = <&pio 0 2 GPIO_ACTIVE_LOW>; /* PA2 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_WEST>;
+               };
+       };
+
+       gpio-keys-volume {
+               compatible = "gpio-keys";
+               autorepeat;
+
+               button-vol-up {
+                       label = "Key Volume Up";
+                       gpios = <&pio 4 1 GPIO_ACTIVE_LOW>; /* PE1 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               button-vol-down {
+                       label = "Key Volume Down";
+                       gpios = <&pio 4 2 GPIO_ACTIVE_LOW>; /* PE2 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       function = LED_FUNCTION_POWER;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&pio 8 12 GPIO_ACTIVE_HIGH>; /* PI12 */
+                       default-state = "on";
+               };
+       };
+
+       reg_vcc5v: regulator-vcc5v { /* USB-C power input */
+               compatible = "regulator-fixed";
+               regulator-name = "vcc-5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&reg_dcdc1>;
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&mmc0 {
+       vmmc-supply = <&reg_cldo3>;
+       disable-wp;
+       cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;  /* PF6 */
+       bus-width = <4>;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&pio {
+       vcc-pa-supply = <&reg_cldo3>;
+       vcc-pc-supply = <&reg_cldo3>;
+       vcc-pe-supply = <&reg_cldo3>;
+       vcc-pf-supply = <&reg_cldo3>;
+       vcc-pg-supply = <&reg_aldo4>;
+       vcc-ph-supply = <&reg_cldo3>;
+       vcc-pi-supply = <&reg_cldo3>;
+};
+
+&r_rsb {
+       status = "okay";
+
+       axp717: pmic@3a3 {
+               compatible = "x-powers,axp717";
+               reg = <0x3a3>;
+               interrupt-controller;
+               #interrupt-cells = <1>;
+               interrupt-parent = <&nmi_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+
+               vin1-supply = <&reg_vcc5v>;
+               vin2-supply = <&reg_vcc5v>;
+               vin3-supply = <&reg_vcc5v>;
+               vin4-supply = <&reg_vcc5v>;
+
+               regulators {
+                       reg_dcdc1: dcdc1 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-name = "vdd-cpu";
+                       };
+
+                       reg_dcdc2: dcdc2 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <940000>;
+                               regulator-max-microvolt = <940000>;
+                               regulator-name = "vdd-gpu-sys";
+                       };
+
+                       reg_dcdc3: dcdc3 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-name = "vdd-dram";
+                       };
+
+                       reg_aldo1: aldo1 {
+                               /* 1.8v - unused */
+                       };
+
+                       reg_aldo2: aldo2 {
+                               /* 1.8v - unused */
+                       };
+
+                       reg_aldo3: aldo3 {
+                               /* 1.8v - unused */
+                       };
+
+                       reg_aldo4: aldo4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc-pg";
+                       };
+
+                       reg_bldo1: bldo1 {
+                               /* 1.8v - unused */
+                       };
+
+                       reg_bldo2: bldo2 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc-pll";
+                       };
+
+                       reg_bldo3: bldo3 {
+                               /* 2.8v - unused */
+                       };
+
+                       reg_bldo4: bldo4 {
+                               /* 1.2v - unused */
+                       };
+
+                       reg_cldo1: cldo1 {
+                               /* 3.3v - audio codec - not yet implemented */
+                       };
+
+                       reg_cldo2: cldo2 {
+                               /* 3.3v - unused */
+                       };
+
+                       reg_cldo3: cldo3 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc-io";
+                       };
+
+                       reg_cldo4: cldo4 {
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc-wifi";
+                       };
+
+                       reg_boost: boost {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5200000>;
+                               regulator-name = "boost";
+                       };
+
+                       reg_cpusldo: cpusldo {
+                               /* unused */
+                       };
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_ph_pins>;
+       status = "okay";
+};
+
+/* the AXP717 has USB type-C role switch functionality, not yet described by the binding */
+&usbotg {
+       dr_mode = "peripheral";   /* USB type-C receptable */
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};
diff --git a/src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-h.dts b/src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-h.dts
new file mode 100644 (file)
index 0000000..6303625
--- /dev/null
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Copyright (C) 2024 Ryan Walklin <ryan@testtoast.com>.
+ * Copyright (C) 2024 Chris Morgan <macroalpha82@gmail.com>.
+ */
+
+#include "sun50i-h700-anbernic-rg35xx-plus.dts"
+
+/ {
+       model = "Anbernic RG35XX H";
+       compatible = "anbernic,rg35xx-h", "allwinner,sun50i-h700";
+};
+
+&gpio_keys_gamepad {
+       button-thumbl {
+               label = "GPIO Thumb Left";
+               gpios = <&pio 4 8 GPIO_ACTIVE_LOW>; /* PE8 */
+               linux,input-type = <EV_KEY>;
+               linux,code = <BTN_THUMBL>;
+       };
+
+       button-thumbr {
+               label = "GPIO Thumb Right";
+               gpios = <&pio 4 9 GPIO_ACTIVE_LOW>; /* PE9 */
+               linux,input-type = <EV_KEY>;
+               linux,code = <BTN_THUMBR>;
+       };
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&ohci1 {
+       status = "okay";
+};
diff --git a/src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-plus.dts b/src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-plus.dts
new file mode 100644 (file)
index 0000000..60a8e49
--- /dev/null
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Copyright (C) 2024 Ryan Walklin <ryan@testtoast.com>.
+ */
+
+#include "sun50i-h700-anbernic-rg35xx-2024.dts"
+
+/ {
+       model = "Anbernic RG35XX Plus";
+       compatible = "anbernic,rg35xx-plus", "allwinner,sun50i-h700";
+
+       wifi_pwrseq: pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
+               clock-names = "ext_clock";
+               pinctrl-0 = <&x32clk_fanout_pin>;
+               pinctrl-names = "default";
+               post-power-on-delay-ms = <200>;
+               reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
+       };
+};
+
+/* SDIO WiFi RTL8821CS */
+&mmc1 {
+       vmmc-supply = <&reg_cldo4>;
+       vqmmc-supply = <&reg_aldo4>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+
+       sdio_wifi: wifi@1 {
+               reg = <1>;
+               interrupt-parent = <&pio>;
+               interrupts = <6 15 IRQ_TYPE_LEVEL_LOW>; /* PG15 */
+               interrupt-names = "host-wake";
+       };
+};
+
+/* Bluetooth RTL8821CS */
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "realtek,rtl8821cs-bt", "realtek,rtl8723bs-bt";
+               device-wake-gpios = <&pio 6 17 GPIO_ACTIVE_HIGH>; /* PG17 */
+               enable-gpios = <&pio 6 19 GPIO_ACTIVE_HIGH>; /* PG19 */
+               host-wake-gpios = <&pio 6 16 GPIO_ACTIVE_HIGH>; /* PG16 */
+       };
+};
index 072fe20cfca087635697d2b62171bcc854bf88b6..cbbc53c4792180d7b8ee75e7d25d79fc1caca5aa 100644 (file)
@@ -79,7 +79,7 @@
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <0 170 4>,
                             <0 171 4>,
                             <0 172 4>,
index dbf2dce8d1d68a5225311bf330704e9f6d1ead40..da9de4986660f2d7c3d325a7850812cf0ae04d21 100644 (file)
@@ -39,6 +39,7 @@
 / {
        model = "Annapurna Labs Alpine v2";
        compatible = "al,alpine-v2";
+       interrupt-parent = <&gic>;
        #address-cells = <2>;
        #size-cells = <2>;
 
                clock-frequency = <1000000>;
        };
 
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pmu {
+               compatible = "arm,cortex-a57-pmu";
+               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                interrupt-parent = <&gic>;
                ranges;
 
-               timer {
-                       compatible = "arm,armv8-timer";
-                       interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
-                                    <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
-                                    <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
-                                    <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
-               };
-
-               pmu {
-                       compatible = "arm,armv8-pmuv3";
-                       interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
-               };
-
                gic: interrupt-controller@f0200000 {
                        compatible = "arm,gic-v3";
                        reg = <0x0 0xf0200000 0x0 0x10000>,     /* GIC Dist */
                        al,msi-num-spis = <160>;
                };
 
-               io-fabric {
+               io-fabric@fc000000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
index 3ea178acdddfe2072352283f47318f0f75808c4f..8b6156b5af659f864ef9506dfb8d14cb5d6caf9c 100644 (file)
                        next-level-cache = <&cluster3_l2>;
                };
 
-               cluster0_l2: cache@0 {
+               cluster0_l2: cache-0 {
                        compatible = "cache";
                        cache-size = <0x200000>;
                        cache-line-size = <64>;
                        cache-unified;
                };
 
-               cluster1_l2: cache@100 {
+               cluster1_l2: cache-100 {
                        compatible = "cache";
                        cache-size = <0x200000>;
                        cache-line-size = <64>;
                        cache-unified;
                };
 
-               cluster2_l2: cache@200 {
+               cluster2_l2: cache-200 {
                        compatible = "cache";
                        cache-size = <0x200000>;
                        cache-line-size = <64>;
                        cache-unified;
                };
 
-               cluster3_l2: cache@300 {
+               cluster3_l2: cache-300 {
                        compatible = "cache";
                        cache-size = <0x200000>;
                        cache-line-size = <64>;
                #size-cells = <2>;
                ranges;
 
-               gic: interrupt-controller@f0000000 {
+               gic: interrupt-controller@f0800000 {
                        compatible = "arm,gic-v3";
                        #interrupt-cells = <3>;
                        interrupt-controller;
                        interrupt-parent = <&gic>;
                };
 
-               io-fabric {
+               io-fabric@fc000000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
index 568bcc39ce9f15eeb9f381c387b88878f0e91402..6c1b7b8fe35473d6a34883a48fdbe32db64d0d8b 100644 (file)
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 /*
  * Copyright 2020-2023 Advanced Micro Devices, Inc.
  */
index 46b6c6783f58a387110537bd5e304ab586eccec0..d12e9a7b5587a6ed1b9f87b0b272b28d2bbade3f 100644 (file)
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 /*
  * Copyright 2020-2022 Advanced Micro Devices, Inc.
  */
index c3f4da2f7449c44dcdba050f7afefb174f77baa6..20b0fa0807a155569382d4cd0d61b06b81f70043 100644 (file)
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 /*
  * Device Tree file for AMD Pensando Elba Board.
  *
index cf761a05a81fa5aaf79a1831fcfa8f7e0ac69360..6ea2d777c8c94e89bd42577e216ff2b6bd97a14f 100644 (file)
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 /*
  * Copyright 2020-2023 Advanced Micro Devices, Inc.
  */
index 674890cf2a341121fef67be77a5eeeb19b9fc23d..758bce0a0b2a5d7565d07d73d213a443cd8ba24e 100644 (file)
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 /*
  * Copyright 2020-2022 Advanced Micro Devices, Inc.
  */
diff --git a/src/arm64/amlogic/amlogic-a4-a113l2-ba400.dts b/src/arm64/amlogic/amlogic-a4-a113l2-ba400.dts
new file mode 100644 (file)
index 0000000..ad3127e
--- /dev/null
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Amlogic, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "amlogic-a4.dtsi"
+
+/ {
+       model = "Amlogic A113L2 ba400 Development Board";
+       compatible = "amlogic,ba400", "amlogic,a4";
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       aliases {
+               serial0 = &uart_b;
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x40000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* 10 MiB reserved for ARM Trusted Firmware */
+               secmon_reserved: secmon@5000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x05000000 0x0 0xa00000>;
+                       no-map;
+               };
+       };
+};
+
+&uart_b {
+       status = "okay";
+};
diff --git a/src/arm64/amlogic/amlogic-a4-common.dtsi b/src/arm64/amlogic/amlogic-a4-common.dtsi
new file mode 100644 (file)
index 0000000..b6106ad
--- /dev/null
@@ -0,0 +1,66 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Amlogic, Inc. All rights reserved.
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/gpio/gpio.h>
+/ {
+       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)>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       xtal: xtal-clk {
+               compatible = "fixed-clock";
+               clock-frequency = <24000000>;
+               clock-output-names = "xtal";
+               #clock-cells = <0>;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               gic: interrupt-controller@fff01000 {
+                       compatible = "arm,gic-400";
+                       reg = <0x0 0xfff01000 0 0x1000>,
+                             <0x0 0xfff02000 0 0x2000>,
+                             <0x0 0xfff04000 0 0x2000>,
+                             <0x0 0xfff06000 0 0x2000>;
+                       #interrupt-cells = <3>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
+               };
+
+               apb: bus@fe000000 {
+                       compatible = "simple-bus";
+                       reg = <0x0 0xfe000000 0x0 0x480000>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>;
+
+                       uart_b: serial@7a000 {
+                               compatible = "amlogic,a4-uart",
+                                            "amlogic,meson-s4-uart";
+                               reg = <0x0 0x7a000 0x0 0x18>;
+                               interrupts = <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&xtal>, <&xtal>, <&xtal>;
+                               clock-names = "xtal", "pclk", "baud";
+                               status = "disabled";
+                       };
+               };
+       };
+};
diff --git a/src/arm64/amlogic/amlogic-a4.dtsi b/src/arm64/amlogic/amlogic-a4.dtsi
new file mode 100644 (file)
index 0000000..73ca1d7
--- /dev/null
@@ -0,0 +1,40 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Amlogic, Inc. All rights reserved.
+ */
+
+#include "amlogic-a4-common.dtsi"
+/ {
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x0 0x0>;
+                       enable-method = "psci";
+               };
+
+               cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x0 0x1>;
+                       enable-method = "psci";
+               };
+
+               cpu2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x0 0x2>;
+                       enable-method = "psci";
+               };
+
+               cpu3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x0 0x3>;
+                       enable-method = "psci";
+               };
+       };
+};
diff --git a/src/arm64/amlogic/amlogic-a5-a113x2-av400.dts b/src/arm64/amlogic/amlogic-a5-a113x2-av400.dts
new file mode 100644 (file)
index 0000000..11d8b88
--- /dev/null
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Amlogic, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "amlogic-a5.dtsi"
+
+/ {
+       model = "Amlogic A113X2 av400 Development Board";
+       compatible = "amlogic,av400", "amlogic,a5";
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       aliases {
+               serial0 = &uart_b;
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x40000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* 10 MiB reserved for ARM Trusted Firmware */
+               secmon_reserved: secmon@5000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x05000000 0x0 0xa00000>;
+                       no-map;
+               };
+       };
+};
+
+&uart_b {
+       status = "okay";
+};
diff --git a/src/arm64/amlogic/amlogic-a5.dtsi b/src/arm64/amlogic/amlogic-a5.dtsi
new file mode 100644 (file)
index 0000000..43f68a7
--- /dev/null
@@ -0,0 +1,40 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Amlogic, Inc. All rights reserved.
+ */
+
+#include "amlogic-a4-common.dtsi"
+/ {
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0 0x0>;
+                       enable-method = "psci";
+               };
+
+               cpu1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0 0x100>;
+                       enable-method = "psci";
+               };
+
+               cpu2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0 0x200>;
+                       enable-method = "psci";
+               };
+
+               cpu3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0 0x300>;
+                       enable-method = "psci";
+               };
+       };
+};
diff --git a/src/arm64/amlogic/amlogic-t7-reset.h b/src/arm64/amlogic/amlogic-t7-reset.h
new file mode 100644 (file)
index 0000000..ec90a11
--- /dev/null
@@ -0,0 +1,197 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (c) 2024 Amlogic, Inc. All rights reserved.
+ */
+
+#ifndef __DTS_AMLOGIC_T7_RESET_H
+#define __DTS_AMLOGIC_T7_RESET_H
+
+/* RESET0 */
+/*                                     0-3     */
+#define RESET_USB                      4
+#define RESET_U2DRD                    5
+#define RESET_U3DRD                    6
+#define RESET_U3DRD_PIPE0              7
+#define RESET_U2PHY20                  8
+#define RESET_U2PHY21                  9
+#define RESET_GDC                      10
+#define RESET_HDMI20_AES               11
+#define RESET_HDMIRX                   12
+#define RESET_HDMIRX_APB               13
+#define RESET_DEWARP                   14
+/*                                     15      */
+#define RESET_HDMITX_CAPB3             16
+#define RESET_BRG_VCBUG_DEC            17
+#define RESET_VCBUS                    18
+#define RESET_VID_PLL_DIV              19
+#define RESET_VDI6                     20
+#define RESET_GE2D                     21
+#define RESET_HDMITXPHY                        22
+#define RESET_VID_LOCK                 23
+#define RESET_VENC0                    24
+#define RESET_VDAC                     25
+#define RESET_VENC2                    26
+#define RESET_VENC1                    27
+#define RESET_RDMA                     28
+#define RESET_HDMITX                   29
+#define RESET_VIU                      30
+#define RESET_VENC                     31
+
+/* RESET1 */
+#define RESET_AUDIO                    32
+#define RESET_MALI_CAPB3               33
+#define RESET_MALI                     34
+#define RESET_DDR_APB                  35
+#define RESET_DDR                      36
+#define RESET_DOS_CAPB3                        37
+#define RESET_DOS                      38
+#define RESET_COMBO_DPHY_CHAN2         39
+#define RESET_DEBUG_B                  40
+#define RESET_DEBUG_A                  41
+#define RESET_DSP_B                    42
+#define RESET_DSP_A                    43
+#define RESET_PCIE_A                   44
+#define RESET_PCIE_PHY                 45
+#define RESET_PCIE_APB                 46
+#define RESET_ANAKIN                   47
+#define RESET_ETH                      48
+#define RESET_EDP0_CTRL                        49
+#define RESET_EDP1_CTRL                        50
+#define RESET_COMBO_DPHY_CHAN0         51
+#define RESET_COMBO_DPHY_CHAN1         52
+#define RESET_DSI_LVDS_EDP_TOP         53
+#define RESET_PCIE1_PHY                        54
+#define RESET_PCIE1_APB                        55
+#define RESET_DDR_1                    56
+/*                                     57      */
+#define RESET_EDP1_PIPELINE            58
+#define RESET_EDP0_PIPELINE            59
+#define RESET_MIPI_DSI1_PHY            60
+#define RESET_MIPI_DSI0_PHY            61
+#define RESET_MIPI_DSI_A_HOST          62
+#define RESET_MIPI_DSI_B_HOST          63
+
+/* RESET2 */
+#define RESET_DEVICE_MMC_ARB           64
+#define RESET_IR_CTRL                  65
+#define RESET_TS_A73                   66
+#define RESET_TS_A53                   67
+#define RESET_SPICC_2                  68
+#define RESET_SPICC_3                  69
+#define RESET_SPICC_4                  70
+#define RESET_SPICC_5                  71
+#define RESET_SMART_CARD               72
+#define RESET_SPICC_0                  73
+#define RESET_SPICC_1                  74
+#define RESET_RSA                      75
+/*                                     76-79   */
+#define RESET_MSR_CLK                  80
+#define RESET_SPIFC                    81
+#define RESET_SAR_ADC                  82
+#define RESET_BT                       83
+/*                                     84-87   */
+#define RESET_ACODEC                   88
+#define RESET_CEC                      89
+#define RESET_AFIFO                    90
+#define RESET_WATCHDOG                 91
+/*                                     92-95   */
+
+/* RESET3 */
+#define RESET_BRG_NIC1_GPV             96
+#define RESET_BRG_NIC2_GPV             97
+#define RESET_BRG_NIC3_GPV             98
+#define RESET_BRG_NIC4_GPV             99
+#define RESET_BRG_NIC5_GPV             100
+/*                                     101-121 */
+#define RESET_MIPI_ISP                 122
+#define RESET_BRG_ADB_MALI_1           123
+#define RESET_BRG_ADB_MALI_0           124
+#define RESET_BRG_ADB_A73              125
+#define RESET_BRG_ADB_A53              126
+#define RESET_BRG_CCI                  127
+
+/* RESET4 */
+#define RESET_PWM_AO_AB                        128
+#define RESET_PWM_AO_CD                        129
+#define RESET_PWM_AO_EF                        130
+#define RESET_PWM_AO_GH                        131
+#define RESET_PWM_AB                   132
+#define RESET_PWM_CD                   133
+#define RESET_PWM_EF                   134
+/*                                     135-137 */
+#define RESET_UART_A                   138
+#define RESET_UART_B                   139
+#define RESET_UART_C                   140
+#define RESET_UART_D                   141
+#define RESET_UART_E                   142
+#define RESET_UART_F                   143
+#define RESET_I2C_S_A                  144
+#define RESET_I2C_M_A                  145
+#define RESET_I2C_M_B                  146
+#define RESET_I2C_M_C                  147
+#define RESET_I2C_M_D                  148
+#define RESET_I2C_M_E                  149
+#define RESET_I2C_M_F                  150
+#define RESET_I2C_M_AO_A               151
+#define RESET_SD_EMMC_A                        152
+#define RESET_SD_EMMC_B                        153
+#define RESET_SD_EMMC_C                        154
+#define RESET_I2C_M_AO_B               155
+#define RESET_TS_GPU                   156
+#define RESET_TS_NNA                   157
+#define RESET_TS_VPN                   158
+#define RESET_TS_HEVC                  159
+
+/* RESET5 */
+#define RESET_BRG_NOC_DDR_1            160
+#define RESET_BRG_NOC_DDR_0            161
+#define RESET_BRG_NOC_MAIN             162
+#define RESET_BRG_NOC_ALL              163
+/*                                     164-167 */
+#define RESET_BRG_NIC2_SYS             168
+#define RESET_BRG_NIC2_MAIN            169
+#define RESET_BRG_NIC2_HDMI            170
+#define RESET_BRG_NIC2_ALL             171
+#define RESET_BRG_NIC3_WAVE            172
+#define RESET_BRG_NIC3_VDEC            173
+#define RESET_BRG_NIC3_HEVCF           174
+#define RESET_BRG_NIC3_HEVCB           175
+#define RESET_BRG_NIC3_HCODEC          176
+#define RESET_BRG_NIC3_GE2D            177
+#define RESET_BRG_NIC3_GDC             178
+#define RESET_BRG_NIC3_AMLOGIC         179
+#define RESET_BRG_NIC3_MAIN            180
+#define RESET_BRG_NIC3_ALL             181
+#define RESET_BRG_NIC5_VPU             182
+/*                                     183-185 */
+#define RESET_BRG_NIC4_DSPB            186
+#define RESET_BRG_NIC4_DSPA            187
+#define RESET_BRG_NIC4_VAPB            188
+#define RESET_BRG_NIC4_CLK81           189
+#define RESET_BRG_NIC4_MAIN            190
+#define RESET_BRG_NIC4_ALL             191
+
+/* RESET6 */
+#define RESET_BRG_VDEC_PIPEL           192
+#define RESET_BRG_HEVCF_DMC_PIPEL      193
+#define RESET_BRG_NIC2TONIC4_PIPEL     194
+#define RESET_BRG_HDMIRXTONIC2_PIPEL   195
+#define RESET_BRG_SECTONIC4_PIPEL      196
+#define RESET_BRG_VPUTONOC_PIPEL       197
+#define RESET_BRG_NIC4TONOC_PIPEL      198
+#define RESET_BRG_NIC3TONOC_PIPEL      199
+#define RESET_BRG_NIC2TONOC_PIPEL      200
+#define RESET_BRG_NNATONOC_PIPEL       201
+#define RESET_BRG_FRISP3_PIPEL         202
+#define RESET_BRG_FRISP2_PIPEL         203
+#define RESET_BRG_FRISP1_PIPEL         204
+#define RESET_BRG_FRISP0_PIPEL         205
+/*                                     206-217 */
+#define RESET_BRG_AMPIPE_NAND          218
+#define RESET_BRG_AMPIPE_ETH           219
+/*                                     220     */
+#define RESET_BRG_AM2AXI0              221
+#define RESET_BRG_AM2AXI1              222
+#define RESET_BRG_AM2AXI2              223
+
+#endif /* ___DTS_AMLOGIC_T7_RESET_H */
index 5248bdf824ea6004f5e2844aed47a745afa27e65..c23efc6c7ac0276af6303387338030516101063a 100644 (file)
@@ -5,6 +5,7 @@
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/power/amlogic,t7-pwrc.h>
+#include "amlogic-t7-reset.h"
 
 / {
        interrupt-parent = <&gic>;
                        #size-cells = <2>;
                        ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>;
 
+                       reset: reset-controller@2000 {
+                               compatible = "amlogic,t7-reset";
+                               reg = <0x0 0x2000 0x0 0x98>;
+                               #reset-cells = <1>;
+                       };
+
                        watchdog@2100 {
                                compatible = "amlogic,t7-wdt";
                                reg = <0x0 0x2100 0x0 0x10>;
index 9d5eab6595d022647ceb77a2f48c854f213cc2ed..b058ed78faf00682791ce38ca60c1b0d6ff8db66 100644 (file)
                                                                       <250000000>,
                                                                       <0>; /* Do Nothing */
                                        };
+
+                                       mipi_analog_dphy: phy {
+                                               compatible = "amlogic,g12a-mipi-dphy-analog";
+                                               #phy-cells = <0>;
+                                               status = "disabled";
+                                       };
                                };
                        };
 
+                       mipi_dphy: phy@44000 {
+                               compatible = "amlogic,axg-mipi-dphy";
+                               reg = <0x0 0x44000 0x0 0x2000>;
+                               clocks = <&clkc CLKID_MIPI_DSI_PHY>;
+                               clock-names = "pclk";
+                               resets = <&reset RESET_MIPI_DSI_PHY>;
+                               reset-names = "phy";
+                               phys = <&mipi_analog_dphy>;
+                               phy-names = "analog";
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+
                        usb3_pcie_phy: phy@46000 {
                                compatible = "amlogic,g12a-usb3-pcie-phy";
                                reg = <0x0 0x46000 0x0 0x2000>;
                                        remote-endpoint = <&hdmi_tx_in>;
                                };
                        };
+
+                       /* DPI output port */
+                       dpi_port: port@2 {
+                               reg = <2>;
+
+                               dpi_out: endpoint {
+                                       remote-endpoint = <&mipi_dsi_in>;
+                               };
+                       };
                };
 
                gic: interrupt-controller@ffc01000 {
                                amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
                        };
 
+                       mipi_dsi: dsi@7000 {
+                               compatible = "amlogic,meson-g12a-dw-mipi-dsi";
+                               reg = <0x0 0x7000 0x0 0x1000>;
+                               resets = <&reset RESET_MIPI_DSI_HOST>;
+                               reset-names = "top";
+                               clocks = <&clkc CLKID_MIPI_DSI_HOST>,
+                                        <&clkc CLKID_MIPI_DSI_PXCLK>,
+                                        <&clkc CLKID_CTS_ENCL>;
+                               clock-names = "pclk", "bit", "px";
+                               phys = <&mipi_dphy>;
+                               phy-names = "dphy";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+
+                               assigned-clocks = <&clkc CLKID_MIPI_DSI_PXCLK_SEL>,
+                                        <&clkc CLKID_CTS_ENCL_SEL>,
+                                        <&clkc CLKID_VCLK2_SEL>;
+                               assigned-clock-parents = <&clkc CLKID_GP0_PLL>,
+                                        <&clkc CLKID_VCLK2_DIV1>,
+                                        <&clkc CLKID_GP0_PLL>;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       /* VPU VENC Input */
+                                       mipi_dsi_venc_port: port@0 {
+                                               reg = <0>;
+
+                                               mipi_dsi_in: endpoint {
+                                                       remote-endpoint = <&dpi_out>;
+                                               };
+                                       };
+
+                                       /* DSI Output */
+                                       mipi_dsi_panel_port: port@1 {
+                                               reg = <1>;
+                                       };
+                               };
+                       };
+
                        watchdog: watchdog@f0d0 {
                                compatible = "amlogic,meson-gxbb-wdt";
                                reg = <0x0 0xf0d0 0x0 0x10>;
diff --git a/src/arm64/amlogic/meson-g12b-bananapi-cm4-mnt-reform2.dts b/src/arm64/amlogic/meson-g12b-bananapi-cm4-mnt-reform2.dts
new file mode 100644 (file)
index 0000000..003efed
--- /dev/null
@@ -0,0 +1,384 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2023 Neil Armstrong <neil.armstrong@linaro.org>
+ * Copyright 2023 MNT Research GmbH
+ */
+
+/dts-v1/;
+
+#include "meson-g12b-bananapi-cm4.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
+
+/ {
+       model = "MNT Reform 2 with BPI-CM4 Module";
+       compatible = "mntre,reform2-cm4", "bananapi,bpi-cm4", "amlogic,a311d", "amlogic,g12b";
+       chassis-type = "laptop";
+
+       aliases {
+               ethernet0 = &ethmac;
+               i2c0 = &i2c1;
+               i2c1 = &i2c3;
+       };
+
+       hdmi_connector: hdmi-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_tmds_out>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-blue {
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led-green {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       sound {
+               compatible = "amlogic,axg-sound-card";
+               model = "MNT-REFORM2-BPI-CM4";
+               audio-widgets = "Headphone", "Headphone Jack",
+                               "Speaker", "External Speaker",
+                               "Microphone", "Mic Jack";
+               audio-aux-devs = <&tdmout_a>, <&tdmout_b>, <&tdmin_b>;
+               audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 0",
+                               "TDMOUT_A IN 1", "FRDDR_B OUT 0",
+                               "TDMOUT_A IN 2", "FRDDR_C OUT 0",
+                               "TDM_A Playback", "TDMOUT_A OUT",
+                               "TDMOUT_B IN 0", "FRDDR_A OUT 1",
+                               "TDMOUT_B IN 1", "FRDDR_B OUT 1",
+                               "TDMOUT_B IN 2", "FRDDR_C OUT 1",
+                               "TDM_B Playback", "TDMOUT_B OUT",
+                               "TDMIN_B IN 1", "TDM_B Capture",
+                               "TDMIN_B IN 4", "TDM_B Loopback",
+                               "TODDR_A IN 1", "TDMIN_B OUT",
+                               "TODDR_B IN 1", "TDMIN_B OUT",
+                               "TODDR_C IN 1", "TDMIN_B OUT",
+                               "Headphone Jack", "HP_L",
+                               "Headphone Jack", "HP_R",
+                               "External Speaker", "SPK_LP",
+                               "External Speaker", "SPK_LN",
+                               "External Speaker", "SPK_RP",
+                               "External Speaker", "SPK_RN",
+                               "LINPUT1", "Mic Jack",
+                               "Mic Jack", "MICB";
+
+               assigned-clocks = <&clkc CLKID_MPLL2>,
+                                       <&clkc CLKID_MPLL0>,
+                                       <&clkc CLKID_MPLL1>;
+               assigned-clock-parents = <0>, <0>, <0>;
+               assigned-clock-rates = <294912000>,
+                                      <270950400>,
+                                      <393216000>;
+
+               dai-link-0 {
+                       sound-dai = <&frddr_a>;
+               };
+
+               dai-link-1 {
+                       sound-dai = <&frddr_b>;
+               };
+
+               dai-link-2 {
+                       sound-dai = <&frddr_c>;
+               };
+
+               dai-link-3 {
+                       sound-dai = <&toddr_a>;
+               };
+
+               dai-link-4 {
+                       sound-dai = <&toddr_b>;
+               };
+
+               dai-link-5 {
+                       sound-dai = <&toddr_c>;
+               };
+
+               /* 8ch hdmi interface */
+               dai-link-6 {
+                       sound-dai = <&tdmif_a>;
+                       dai-format = "i2s";
+                       dai-tdm-slot-tx-mask-0 = <1 1>;
+                       dai-tdm-slot-tx-mask-1 = <1 1>;
+                       dai-tdm-slot-tx-mask-2 = <1 1>;
+                       dai-tdm-slot-tx-mask-3 = <1 1>;
+                       mclk-fs = <256>;
+
+                       codec {
+                               sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
+                       };
+               };
+
+               /* Analog Audio */
+               dai-link-7 {
+                       sound-dai = <&tdmif_b>;
+                       dai-format = "i2s";
+                       dai-tdm-slot-tx-mask-0 = <1 1>;
+                       mclk-fs = <256>;
+
+                       codec {
+                               sound-dai = <&wm8960>;
+                       };
+               };
+
+               /* hdmi glue */
+               dai-link-8 {
+                       sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
+
+                       codec {
+                               sound-dai = <&hdmi_tx>;
+                       };
+               };
+       };
+
+       reg_main_1v8: regulator-main-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&reg_main_3v3>;
+       };
+
+       reg_main_1v2: regulator-main-1v2 {
+               compatible = "regulator-fixed";
+               regulator-name = "1V2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               vin-supply = <&reg_main_5v>;
+       };
+
+       reg_main_3v3: regulator-main-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_main_5v: regulator-main-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       reg_main_usb: regulator-main-usb {
+               compatible = "regulator-fixed";
+               regulator-name = "USB_PWR";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&reg_main_5v>;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm_AO_ab 0 10000 0>;
+               power-supply = <&reg_main_usb>;
+               enable-gpios = <&gpio 58 GPIO_ACTIVE_HIGH>;
+               brightness-levels = <0 32 64 128 160 200 255>;
+               default-brightness-level = <6>;
+       };
+
+       panel {
+               compatible = "innolux,n125hce-gn1";
+               power-supply = <&reg_main_3v3>;
+               backlight = <&backlight>;
+               no-hpd;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&edp_bridge_out>;
+                       };
+               };
+       };
+
+       clock_12288: clock_12288 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <12288000>;
+       };
+};
+
+&mipi_analog_dphy {
+       status = "okay";
+};
+
+&mipi_dphy {
+       status = "okay";
+};
+
+&mipi_dsi {
+       status = "okay";
+
+       assigned-clocks = <&clkc CLKID_GP0_PLL>,
+                         <&clkc CLKID_MIPI_DSI_PXCLK_SEL>,
+                         <&clkc CLKID_MIPI_DSI_PXCLK>,
+                         <&clkc CLKID_CTS_ENCL_SEL>,
+                         <&clkc CLKID_VCLK2_SEL>;
+       assigned-clock-parents = <0>,
+                                <&clkc CLKID_GP0_PLL>,
+                                <0>,
+                                <&clkc CLKID_VCLK2_DIV1>,
+                                <&clkc CLKID_GP0_PLL>;
+       assigned-clock-rates = <936000000>,
+                              <0>,
+                              <936000000>,
+                              <0>,
+                              <0>;
+};
+
+&mipi_dsi_panel_port {
+       mipi_dsi_out: endpoint {
+               remote-endpoint = <&edp_bridge_in>;
+       };
+};
+
+&cecb_AO {
+       status = "okay";
+};
+
+&ethmac {
+       status = "okay";
+};
+
+&hdmi_tx {
+       status = "okay";
+};
+
+&hdmi_tx_tmds_port {
+       hdmi_tx_tmds_out: endpoint {
+               remote-endpoint = <&hdmi_connector_in>;
+       };
+};
+
+&pwm_AO_ab {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm_ao_a_pins>;
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+
+       edp_bridge: bridge@2c {
+               compatible = "ti,sn65dsi86";
+               reg = <0x2c>;
+               enable-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_HIGH>; // PIN_24 / GPIO8
+               vccio-supply = <&reg_main_1v8>;
+               vpll-supply = <&reg_main_1v8>;
+               vcca-supply = <&reg_main_1v2>;
+               vcc-supply = <&reg_main_1v2>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               edp_bridge_in: endpoint {
+                                       remote-endpoint = <&mipi_dsi_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               edp_bridge_out: endpoint {
+                                       remote-endpoint = <&panel_in>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       wm8960: codec@1a {
+               compatible = "wlf,wm8960";
+               reg = <0x1a>;
+               clocks = <&clock_12288>;
+               clock-names = "mclk";
+               #sound-dai-cells = <0>;
+               wlf,shared-lrclk;
+       };
+
+       rtc@68 {
+               compatible = "nxp,pcf8523";
+               reg = <0x68>;
+       };
+};
+
+&pcie {
+       status = "okay";
+};
+
+&sd_emmc_b {
+       status = "okay";
+};
+
+&tdmif_a {
+       status = "okay";
+};
+
+&tdmout_a {
+       status = "okay";
+};
+
+&tdmif_b {
+       pinctrl-0 = <&tdm_b_dout0_pins>, <&tdm_b_fs_pins>, <&tdm_b_sclk_pins>, <&tdm_b_din1_pins>;
+       pinctrl-names = "default";
+
+       assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD1>,
+                         <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD1>;
+       assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_B_SCLK>,
+                                <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
+       assigned-clock-rates = <0>, <0>;
+};
+
+&tdmin_b {
+       status = "okay";
+};
+
+&toddr_a {
+       status = "okay";
+};
+
+&toddr_b {
+       status = "okay";
+};
+
+&toddr_c {
+       status = "okay";
+};
+
+&tohdmitx {
+       status = "okay";
+};
+
+&usb {
+       dr_mode = "host";
+
+       status = "okay";
+};
diff --git a/src/arm64/amlogic/meson-khadas-vim3-ts050.dtso b/src/arm64/amlogic/meson-khadas-vim3-ts050.dtso
new file mode 100644 (file)
index 0000000..a41b4e6
--- /dev/null
@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 BayLibre, SAS
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/clock/g12a-clkc.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/amlogic,meson-g12a-gpio-intc.h>
+
+/dts-v1/;
+/plugin/;
+
+/*
+ * Enable Khadas TS050 DSI Panel + Touch Controller
+ * on Khadas VIM3 (A311D) and VIM3L (S905D3)
+ */
+
+&{/} {
+       panel_backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm_AO_cd 0 25000 0>;
+               brightness-levels = <0 255>;
+               num-interpolated-steps = <255>;
+               default-brightness-level = <200>;
+       };
+};
+
+&i2c3 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       touch-controller@38 {
+               compatible = "edt,edt-ft5206";
+               reg = <0x38>;
+               interrupt-parent = <&gpio_intc>;
+               interrupts = <IRQID_GPIOA_5 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&gpio_expander 6 GPIO_ACTIVE_LOW>;
+               touchscreen-size-x = <1080>;
+               touchscreen-size-y = <1920>;
+               status = "okay";
+       };
+};
+
+&mipi_dsi {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       assigned-clocks = <&clkc CLKID_GP0_PLL>,
+                         <&clkc CLKID_MIPI_DSI_PXCLK_SEL>,
+                         <&clkc CLKID_MIPI_DSI_PXCLK>,
+                         <&clkc CLKID_CTS_ENCL_SEL>,
+                         <&clkc CLKID_VCLK2_SEL>;
+       assigned-clock-parents = <0>,
+                                <&clkc CLKID_GP0_PLL>,
+                                <0>,
+                                <&clkc CLKID_VCLK2_DIV1>,
+                                <&clkc CLKID_GP0_PLL>;
+       assigned-clock-rates = <960000000>,
+                              <0>,
+                              <960000000>,
+                              <0>,
+                              <0>;
+
+       panel@0 {
+               compatible = "khadas,ts050";
+               reset-gpios = <&gpio_expander 0 GPIO_ACTIVE_LOW>;
+               enable-gpios = <&gpio_expander 1 GPIO_ACTIVE_HIGH>;
+               power-supply = <&vcc_3v3>;
+               backlight = <&panel_backlight>;
+               reg = <0>;
+
+               port {
+                       mipi_in_panel: endpoint {
+                               remote-endpoint = <&mipi_out_panel>;
+                       };
+               };
+       };
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@1 {
+                       mipi_out_panel: endpoint {
+                               remote-endpoint = <&mipi_in_panel>;
+                       };
+               };
+       };
+};
+
+&mipi_analog_dphy {
+       status = "okay";
+};
+
+&mipi_dphy {
+       status = "okay";
+};
+
+&pwm_AO_cd {
+       pinctrl-0 = <&pwm_ao_c_6_pins>, <&pwm_ao_d_e_pins>;
+};
index ce90b35686a212181efdda3e14cc612ee17c9536..10896f9df682d8c59afa9db032ab49e01d568392 100644 (file)
                #clock-cells = <0>;
        };
 
-       pwrc: power-controller {
-               compatible = "amlogic,meson-s4-pwrc";
-               #power-domain-cells = <1>;
-               status = "okay";
+       firmware {
+               sm: secure-monitor {
+                       compatible = "amlogic,meson-gxbb-sm";
+
+                       pwrc: power-controller {
+                               compatible = "amlogic,meson-s4-pwrc";
+                               #power-domain-cells = <1>;
+                       };
+               };
        };
 
        soc {
index 2e8069002ec1d5dc4da7e453bad76b34b7a019f1..6e05cf1a3df653772c166d21e8b13f9268088c31 100644 (file)
@@ -15,7 +15,7 @@
 
        chosen { };
 
-       memory {
+       memory@100000000 {
                device_type = "memory";
                reg = < 0x1 0x00000000 0x0 0x80000000 >;
        };
index 033e10e12b18557b87835ec6e2b4233dc435a8e1..e7644cddf06ff93884b8be592cfcf4446acf05f7 100644 (file)
@@ -15,7 +15,7 @@
 
        chosen { };
 
-       memory {
+       memory@100000000 {
                device_type = "memory";
                reg = < 0x1 0x00000000 0x0 0x80000000 >; /* Updated by bootloader */
        };
index 65ebac3082e208e4781d3d21cba3d80892d1c7e3..ea5721ea02f0e6d69f11998ef2e22e482c40a015 100644 (file)
                };
        };
 
+       refclk: refclk {
+               compatible = "fixed-clock";
+               #clock-cells = <1>;
+               clock-frequency = <100000000>;
+               clock-output-names = "refclk";
+       };
+
        pmu {
                compatible = "arm,armv8-pmuv3";
                interrupts = <1 12 0xff04>;
                        #size-cells = <2>;
                        ranges;
 
-                       refclk: refclk {
-                               compatible = "fixed-clock";
-                               #clock-cells = <1>;
-                               clock-frequency = <100000000>;
-                               clock-output-names = "refclk";
-                       };
-
                        pmdpll: pmdpll@170000f0 {
                                compatible = "apm,xgene-pcppll-v2-clock";
                                #clock-cells = <1>;
index 988928c60f1515f5dd4551348358574cfb025572..532401bc9c6607c562068f541d9ca295f1691b3c 100644 (file)
                interrupts = <1 9 0xf04>;       /* GIC Maintenence IRQ */
        };
 
+       refclk: refclk {
+               compatible = "fixed-clock";
+               #clock-cells = <1>;
+               clock-frequency = <100000000>;
+               clock-output-names = "refclk";
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <1 0 0xff08>,      /* Secure Phys IRQ */
        };
 
        pmu {
-               compatible = "apm,potenza-pmu", "arm,armv8-pmuv3";
+               compatible = "apm,potenza-pmu";
                interrupts = <1 12 0xff04>;
        };
 
                        #address-cells = <2>;
                        #size-cells = <2>;
                        ranges;
-                       refclk: refclk {
-                               compatible = "fixed-clock";
-                               #clock-cells = <1>;
-                               clock-frequency = <100000000>;
-                               clock-output-names = "refclk";
-                       };
 
                        pcppll: pcppll@17000100 {
                                compatible = "apm,xgene-pcppll-clock";
index b897f5542c0a1c9b2adb72797327adf83bea90b9..98ed2b329ed61204672fe011a1b242c4d8ac5690 100644 (file)
                        };
                };
 
-               big_cluster_thermal_zone: big-cluster-thermal {
+               big_cluster_thermal_zone: big-cl-thermal {
                        polling-delay = <1000>;
                        polling-delay-passive = <100>;
                        thermal-sensors = <&scpi_sensors0 21>;
                        status = "disabled";
                };
 
-               little_cluster_thermal_zone: little-cluster-thermal {
+               little_cluster_thermal_zone: little-cl-thermal {
                        polling-delay = <1000>;
                        polling-delay-passive = <100>;
                        thermal-sensors = <&scpi_sensors0 22>;
index 31929e2377d8a41392ae159a2d0402d2d94bcd4a..f38c5b6ef65777366e2f3b086e3ba016ea450064 100644 (file)
                        thermal-sensors = <&scmi_sensors0 3>;
                };
 
-               big-cluster-thermal {
+               big-cl-thermal {
                        thermal-sensors = <&scmi_sensors0 21>;
                };
 
-               little-cluster-thermal {
+               little-cl-thermal {
                        thermal-sensors = <&scmi_sensors0 22>;
                };
 
index 8db4243a494728fed2833d60edfb94e282c66ed0..9115c99d0dc02c8d47eb0f3ac2e0cdfcfa3bfc78 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
        };
index e01cf4f540770cc24b92c0aa6051ced0e473206d..8b924812322cde7af413263ea0aede5612c075df 100644 (file)
                        reg-names = "nand", "nand-int-base";
                        interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "nand_ctlrdy";
+                       brcm,wp-not-connected;
                        status = "disabled";
 
                        nandcs: nand@0 {
index 030ffa5364fbc1245abf693185d4520d59e72f65..e5b37643296bf40d035d46bf5198cce8a3176b58 100644 (file)
@@ -34,7 +34,6 @@
 };
 
 &nand_controller {
-       brcm,wp-not-connected;
        status = "okay";
 };
 
index dec5a110f1e80d5859e3d7c0cb306e84fed31fd5..f43cfe66b6af65fa5d0f6c5bb09c1409ca91711e 100644 (file)
@@ -50,7 +50,7 @@
                bootargs = "earlycon=uart8250,mmio32,0x66130000";
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
        };
index 1d314f17bbdda9c9f1a49372a3a7f8088037e80b..c50df1d027974ffa73c0b3cda84c6611e0595b83 100644 (file)
@@ -47,7 +47,7 @@
                bootargs = "earlycon=uart8250,mmio32,0x66130000";
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x00000000 0x80000000 0x00000001 0x00000000>;
        };
index 896d1f33b5b6173e3b4b701d4e08f4ad277856e0..cfd9fd23a1c2a69968a4412ca201b19885403def 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a57-pmu";
                interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
index d8516ec0dae7450e2c5e81f0bddf8ffdeba2bb5e..857fa427e195f0a0930685db348a4e5066ae20ec 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a72-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
        };
 
index 8ad31dee11a3c10e20e8d32ad6530d2f56dda9c0..cc860a80af516c903a4a65c8faf01c21c5c0a5cc 100644 (file)
        };
 
        pmu {
-               compatible = "cavium,thunder-pmu", "arm,armv8-pmuv3";
+               compatible = "cavium,thunder-pmu";
                interrupts = <1 7 4>;
        };
 
+       refclk50mhz: refclk50mhz {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <50000000>;
+               clock-output-names = "refclk50mhz";
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <2>;
                ranges;
 
-               refclk50mhz: refclk50mhz {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-                       clock-frequency = <50000000>;
-                       clock-output-names = "refclk50mhz";
-               };
-
-               gic0: interrupt-controller@8010,00000000 {
+               gic0: interrupt-controller@801000000000 {
                        compatible = "arm,gic-v3";
                        #interrupt-cells = <3>;
                        #address-cells = <2>;
                        };
                };
 
-               uaa0: serial@87e0,24000000 {
+               uaa0: serial@87e024000000 {
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0x87e0 0x24000000 0x0 0x1000>;
                        interrupts = <1 21 4>;
                        clock-names = "apb_pclk";
                };
 
-               uaa1: serial@87e0,25000000 {
+               uaa1: serial@87e025000000 {
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0x87e0 0x25000000 0x0 0x1000>;
                        interrupts = <1 22 4>;
index d005e1e79c3d284c9fc902bbe37f616907f5e29c..89fc4107a0c47ddb74dfc4ee9aec2664aaf02a36 100644 (file)
@@ -14,7 +14,7 @@
        model = "Cavium ThunderX2 CN99XX";
        compatible = "cavium,thunderx2-cn9900", "brcm,vulcan-soc";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x00000000 0x80000000 0x0 0x80000000>,  /* 2G @ 2G  */
                      <0x00000008 0x80000000 0x0 0x80000000>;  /* 2G @ 34G */
index 3419bd252696c41e63735a40107822f4517b1296..6dfe78a7d4ab3e38fd8235e5af0f828a4eb47678 100644 (file)
@@ -83,7 +83,7 @@
        };
 
        pmu {
-               compatible = "brcm,vulcan-pmu", "arm,armv8-pmuv3";
+               compatible = "brcm,vulcan-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; /* PMU overflow */
        };
 
 
                /* ECAM at 0x3000_0000 - 0x4000_0000 */
                reg = <0x0 0x30000000  0x0 0x10000000>;
-               reg-names = "PCI ECAM";
 
                /*
                 * PCI ranges:
index 7fbbec04bff037a6f36757397f6bea4504cc385f..0b9053b9b2b500f06e0ea9bc472cc4d15a335d01 100644 (file)
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi0_bus>;
                        num-cs = <1>;
+                       fifo-depth = <256>;
                        status = "disabled";
                };
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi1_bus>;
                        num-cs = <1>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi2_bus>;
                        num-cs = <1>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi3_bus>;
                        num-cs = <1>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi4_bus>;
                        num-cs = <1>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
index 2ba67c3d068116041aa74b758743bf11101fa335..0706c8534cebf242df06af57c531b06a51307cb2 100644 (file)
@@ -93,6 +93,8 @@
                        compatible = "arm,cortex-a55";
                        reg = <0x0>;
                        enable-method = "psci";
+                       clocks = <&cmu_cpucl0 CLK_CLUSTER0_SCLK>;
+                       clock-names = "cluster0_clk";
                };
                cpu1: cpu@1 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a55";
                        reg = <0x100>;
                        enable-method = "psci";
+                       clocks = <&cmu_cpucl1 CLK_CLUSTER1_SCLK>;
+                       clock-names = "cluster1_clk";
                };
                cpu5: cpu@101 {
                        device_type = "cpu";
                                      "dout_peri_uart", "dout_peri_ip";
                };
 
+               cmu_cpucl1: clock-controller@10800000 {
+                       compatible = "samsung,exynos850-cmu-cpucl1";
+                       reg = <0x10800000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&oscclk>, <&cmu_top CLK_DOUT_CPUCL1_SWITCH>,
+                                <&cmu_top CLK_DOUT_CPUCL1_DBG>;
+                       clock-names = "oscclk", "dout_cpucl1_switch",
+                                     "dout_cpucl1_dbg";
+               };
+
+               cmu_cpucl0: clock-controller@10900000 {
+                       compatible = "samsung,exynos850-cmu-cpucl0";
+                       reg = <0x10900000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&oscclk>, <&cmu_top CLK_DOUT_CPUCL0_SWITCH>,
+                                <&cmu_top CLK_DOUT_CPUCL0_DBG>;
+                       clock-names = "oscclk", "dout_cpucl0_switch",
+                                     "dout_cpucl0_dbg";
+               };
+
                cmu_g3d: clock-controller@11400000 {
                        compatible = "samsung,exynos850-cmu-g3d";
                        reg = <0x11400000 0x8000>;
index c871a2f49fda86ffb309f94f5b65701d3d58eb48..0248329da49a6393d2ec4a2e58b1498143419cbc 100644 (file)
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <256>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <256>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <256>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
index 6ccade2c8cb489a347a582a77803657bb886ffb6..5e8ffe065081b7260f2b2d89de2006d9183083c2 100644 (file)
@@ -29,8 +29,8 @@
 
        gpio-keys {
                compatible = "gpio-keys";
-               pinctrl-names = "default";
                pinctrl-0 = <&key_voldown>, <&key_volup>, <&key_power>;
+               pinctrl-names = "default";
 
                button-vol-down {
                        label = "KEY_VOLUMEDOWN";
                        wakeup-source;
                };
        };
+
+       /* TODO: Remove this once PMIC is implemented  */
+       reg_placeholder: regulator-0 {
+               compatible = "regulator-fixed";
+               regulator-name = "placeholder_reg";
+       };
+
+       /* TODO: Remove this once S2MPG11 slave PMIC is implemented  */
+       ufs_0_fixed_vcc_reg: regulator-1 {
+               compatible = "regulator-fixed";
+               regulator-name = "ufs-vcc";
+               gpio = <&gpp0 1 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               enable-active-high;
+       };
 };
 
 &ext_24_5m {
 };
 
 &serial_0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&uart0_bus>;
+       status = "okay";
+};
+
+&ufs_0 {
+       status = "okay";
+       vcc-supply = <&ufs_0_fixed_vcc_reg>;
+};
+
+&ufs_0_phy {
+       status = "okay";
+};
+
+&usbdrd31 {
+       status = "okay";
+       vdd10-supply = <&reg_placeholder>;
+       vdd33-supply = <&reg_placeholder>;
+};
+
+&usbdrd31_dwc3 {
+       dr_mode = "otg";
+       usb-role-switch;
+       role-switch-default-mode = "peripheral";
+       maximum-speed = "super-speed-plus";
+       status = "okay";
+};
+
+&usbdrd31_phy {
        status = "okay";
 };
 
index 55e6bcb3689e93f23dc71c31f158ff9d8c203bd5..a66e996666b8785cf76c2d05ae6763eb068dd9f8 100644 (file)
                pinctrl_peric0: pinctrl@10840000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x10840000 0x00001000>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_GPIO_PERIC0_PCLK>;
+                       clock-names = "pclk";
                        interrupts = <GIC_SPI 625 IRQ_TYPE_LEVEL_HIGH 0>;
                };
 
+               usi1: usi@109000c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109000c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_0>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_0>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1000>;
+                       status = "disabled";
+
+                       hsi2c_1: i2c@10900000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10900000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_0>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_0>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 635 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c1_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_1: serial@10900000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10900000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_0>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_0>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 635 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart1_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_1: spi@10900000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10900000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_0>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_0>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 635 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi1_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi2: usi@109100c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109100c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_1>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_1>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1004>;
+                       status = "disabled";
+
+                       hsi2c_2: i2c@10910000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10910000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_1>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_1>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 636 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c2_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_2: serial@10910000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10910000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_1>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_1>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 636 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart2_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_2: spi@10910000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10910000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_1>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_1>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 636 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi2_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi3: usi@109200c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109200c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_2>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_2>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1008>;
+                       status = "disabled";
+
+                       hsi2c_3: i2c@10920000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10920000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_2>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_2>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 637 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c3_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_3: serial@10920000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10920000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_2>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_2>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 637 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart3_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_3: spi@10920000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10920000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_2>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_2>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 637 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi3_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi4: usi@109300c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109300c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_3>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_3>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x100c>;
+                       status = "disabled";
+
+                       hsi2c_4: i2c@10930000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10930000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_3>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_3>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 638 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c4_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_4: serial@10930000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10930000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_3>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_3>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 638 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart4_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_4: spi@10930000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10930000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_3>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_3>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 638 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi4_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi5: usi@109400c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109400c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_4>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_4>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1010>;
+                       status = "disabled";
+
+                       hsi2c_5: i2c@10940000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10940000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_4>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_4>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 639 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c5_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_5: serial@10940000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10940000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_4>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_4>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 639 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart5_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_5: spi@10940000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10940000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_4>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_4>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 639 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi5_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi6: usi@109500c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109500c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_5>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_5>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1014>;
+                       status = "disabled";
+
+                       hsi2c_6: i2c@10950000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10950000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_5>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_5>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 640 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c6_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_6: serial@10950000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10950000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_5>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_5>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 640 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart6_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_6: spi@10950000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10950000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_5>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_5>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 640 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi6_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi7: usi@109600c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109600c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_6>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_6>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1018>;
+                       status = "disabled";
+
+                       hsi2c_7: i2c@10960000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10960000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_6>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_6>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c7_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_7: serial@10960000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10960000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_6>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_6>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart7_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_7: spi@10960000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10960000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_6>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_6>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi7_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
                usi8: usi@109700c0 {
-                       compatible = "google,gs101-usi",
-                                    "samsung,exynos850-usi";
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
                        reg = <0x109700c0 0x20>;
                        ranges;
                        #address-cells = <1>;
                                interrupts = <GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&hsi2c8_bus>;
                                clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_7>,
                                         <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_7>;
                                clock-names = "hsi2c", "hsi2c_pclk";
+                               pinctrl-0 = <&hsi2c8_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_8: serial@10970000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10970000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_7>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_7>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart8_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_8: spi@10970000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10970000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_7>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_7>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi8_bus>;
+                               pinctrl-names = "default";
                                status = "disabled";
                        };
                };
 
                usi_uart: usi@10a000c0 {
-                       compatible = "google,gs101-usi",
-                                    "samsung,exynos850-usi";
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
                        reg = <0x10a000c0 0x20>;
                        ranges;
                        #address-cells = <1>;
                        serial_0: serial@10a00000 {
                                compatible = "google,gs101-uart";
                                reg = <0x10a00000 0xc0>;
-                               interrupts = <GIC_SPI 634
-                                             IRQ_TYPE_LEVEL_HIGH 0>;
+                               interrupts = <GIC_SPI 634 IRQ_TYPE_LEVEL_HIGH 0>;
                                clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_0>,
                                         <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_0>;
                                clock-names = "uart", "clk_uart_baud0";
+                               pinctrl-0 = <&uart0_bus>;
+                               pinctrl-names = "default";
                                samsung,uart-fifosize = <256>;
                                status = "disabled";
                        };
                };
 
+               usi14: usi@10a200c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x10a200c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_2>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_2>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1028>;
+                       status = "disabled";
+
+                       hsi2c_14: i2c@10a20000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10a20000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_2>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_2>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 643 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c14_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_14: serial@10a20000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10a20000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_2>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_2>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 643 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart14_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_14: spi@10a20000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10a20000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_2>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_2>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 643 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi14_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
                cmu_peric1: clock-controller@10c00000 {
                        compatible = "google,gs101-cmu-peric1";
                        reg = <0x10c00000 0x4000>;
                pinctrl_peric1: pinctrl@10c40000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x10c40000 0x00001000>;
+                       clocks = <&cmu_peric1 CLK_GOUT_PERIC1_GPIO_PERIC1_PCLK>;
+                       clock-names = "pclk";
                        interrupts = <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH 0>;
                };
 
+               usi0: usi@10d100c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x10d100c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_1>,
+                                <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_1>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric1 0x1000>;
+                       status = "disabled";
+
+                       hsi2c_0: i2c@10d10000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10d10000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_1>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_1>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 651 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c0_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_usi0: serial@10d10000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10d10000 0xc0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_1>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_1>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 651 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart0_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_0: spi@10d10000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10d10000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_1>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_1>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 651 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi0_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi9: usi@10d200c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x10d200c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_2>,
+                                <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_2>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric1 0x1004>;
+                       status = "disabled";
+
+                       hsi2c_9: i2c@10d20000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10d20000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_2>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_2>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 652 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c9_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_9: serial@10d20000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10d20000 0xc0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_2>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_2>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 652 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart9_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_9: spi@10d20000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10d20000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_2>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_2>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 652 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi9_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi10: usi@10d300c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x10d300c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_3>,
+                                <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_3>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric1 0x1008>;
+                       status = "disabled";
+
+                       hsi2c_10: i2c@10d30000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10d30000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_3>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_3>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 653 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c10_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_10: serial@10d30000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10d30000 0xc0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_3>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_3>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 653 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart10_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_10: spi@10d30000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10d30000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_3>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_3>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 653 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi10_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi11: usi@10d400c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x10d400c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_4>,
+                                <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_4>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric1 0x100c>;
+                       status = "disabled";
+
+                       hsi2c_11: i2c@10d40000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10d40000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_4>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_4>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 654 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c11_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_11: serial@10d40000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10d40000 0xc0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_4>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_4>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 654 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart11_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_11: spi@10d40000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10d40000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_4>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_4>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 654 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi11_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
                usi12: usi@10d500c0 {
-                       compatible = "google,gs101-usi",
-                                    "samsung,exynos850-usi";
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
                        reg = <0x10d500c0 0x20>;
                        ranges;
                        #address-cells = <1>;
                                interrupts = <GIC_SPI 655 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               pinctrl-0 = <&hsi2c12_bus>;
-                               pinctrl-names = "default";
                                clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_5>,
                                         <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_5>;
                                clock-names = "hsi2c", "hsi2c_pclk";
+                               pinctrl-0 = <&hsi2c12_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_12: serial@10d50000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10d50000 0xc0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_5>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_5>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 655 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart12_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_12: spi@10d50000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10d50000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_5>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_5>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 655 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi12_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi13: usi@10d600c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x10d600c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_6>,
+                                <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_6>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric1 0x1014>;
+                       status = "disabled";
+
+                       hsi2c_13: i2c@10d60000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10d60000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_6>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_6>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 656 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c13_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_13: serial@10d60000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10d60000 0xc0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_6>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_6>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 656 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart13_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_13: spi@10d60000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10d60000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_6>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_6>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 656 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi13_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               cmu_hsi0: clock-controller@11000000 {
+                       compatible = "google,gs101-cmu-hsi0";
+                       reg = <0x11000000 0x4000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&ext_24_5m>,
+                                <&cmu_top CLK_DOUT_CMU_HSI0_BUS>,
+                                <&cmu_top CLK_DOUT_CMU_HSI0_DPGTC>,
+                                <&cmu_top CLK_DOUT_CMU_HSI0_USB31DRD>,
+                                <&cmu_top CLK_DOUT_CMU_HSI0_USBDPDBG>;
+                       clock-names = "oscclk", "bus", "dpgtc", "usb31drd",
+                                     "usbdpdbg";
+               };
+
+               usbdrd31_phy: phy@11100000 {
+                       compatible = "google,gs101-usb31drd-phy";
+                       reg = <0x11100000 0x0100>,
+                             <0x110f0000 0x0800>,
+                             <0x110e0000 0x2800>;
+                       reg-names = "phy", "pcs", "pma";
+                       clocks = <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_ACLK_PHYCTRL>,
+                                <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_I_USB20_PHY_REFCLK_26>,
+                                <&cmu_hsi0 CLK_GOUT_HSI0_UASC_HSI0_CTRL_ACLK>,
+                                <&cmu_hsi0 CLK_GOUT_HSI0_UASC_HSI0_CTRL_PCLK>,
+                                <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_I_USBDPPHY_SCL_APB_PCLK>;
+                       clock-names = "phy", "ref", "ctrl_aclk", "ctrl_pclk", "scl_pclk";
+                       samsung,pmu-syscon = <&pmu_system_controller>;
+                       #phy-cells = <1>;
+                       status = "disabled";
+               };
+
+               usbdrd31: usb@11110000 {
+                       compatible = "google,gs101-dwusb3";
+                       clocks = <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_BUS_CLK_EARLY>,
+                               <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_I_USB31DRD_SUSPEND_CLK_26>,
+                               <&cmu_hsi0 CLK_GOUT_HSI0_UASC_HSI0_LINK_ACLK>,
+                               <&cmu_hsi0 CLK_GOUT_HSI0_UASC_HSI0_LINK_PCLK>;
+                       clock-names = "bus_early", "susp_clk", "link_aclk", "link_pclk";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x11110000 0x10000>;
+                       status = "disabled";
+
+                       usbdrd31_dwc3: usb@0 {
+                               compatible = "snps,dwc3";
+                               clocks = <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_I_USB31DRD_REF_CLK_40>;
+                               clock-names = "ref";
+                               reg = <0x0 0x10000>;
+                               interrupts = <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH 0>;
+                               phys = <&usbdrd31_phy 0>, <&usbdrd31_phy 1>;
+                               phy-names = "usb2-phy", "usb3-phy";
                                status = "disabled";
                        };
                };
                pinctrl_hsi1: pinctrl@11840000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x11840000 0x00001000>;
+                       /* TODO: update once support for this CMU exists */
+                       clocks = <0>;
+                       clock-names = "pclk";
                        interrupts = <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH 0>;
                };
 
+               cmu_hsi2: clock-controller@14400000 {
+                       compatible = "google,gs101-cmu-hsi2";
+                       reg = <0x14400000 0x4000>;
+                       #clock-cells = <1>;
+                       clocks = <&ext_24_5m>,
+                                <&cmu_top CLK_DOUT_CMU_HSI2_BUS>,
+                                <&cmu_top CLK_DOUT_CMU_HSI2_PCIE>,
+                                <&cmu_top CLK_DOUT_CMU_HSI2_UFS_EMBD>,
+                                <&cmu_top CLK_DOUT_CMU_HSI2_MMC_CARD>;
+                       clock-names = "oscclk", "bus", "pcie", "ufs", "mmc";
+               };
+
+               sysreg_hsi2: syscon@14420000 {
+                       compatible = "google,gs101-hsi2-sysreg", "syscon";
+                       reg = <0x14420000 0x10000>;
+                       clocks = <&cmu_hsi2 CLK_GOUT_HSI2_SYSREG_HSI2_PCLK>;
+               };
+
                pinctrl_hsi2: pinctrl@14440000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x14440000 0x00001000>;
+                       clocks = <&cmu_hsi2 CLK_GOUT_HSI2_GPIO_HSI2_PCLK>;
+                       clock-names = "pclk";
                        interrupts = <GIC_SPI 503 IRQ_TYPE_LEVEL_HIGH 0>;
                };
 
+               ufs_0: ufs@14700000 {
+                       compatible = "google,gs101-ufs";
+                       reg = <0x14700000 0x200>,
+                             <0x14701100 0x200>,
+                             <0x14780000 0xa000>,
+                             <0x14600000 0x100>;
+                       reg-names = "hci", "vs_hci", "unipro", "ufsp";
+                       interrupts = <GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&cmu_hsi2 CLK_GOUT_HSI2_UFS_EMBD_I_ACLK>,
+                                <&cmu_hsi2 CLK_GOUT_HSI2_UFS_EMBD_I_CLK_UNIPRO>,
+                                <&cmu_hsi2 CLK_GOUT_HSI2_UFS_EMBD_I_FMP_CLK>,
+                                <&cmu_hsi2 CLK_GOUT_HSI2_QE_UFS_EMBD_HSI2_ACLK>,
+                                <&cmu_hsi2 CLK_GOUT_HSI2_QE_UFS_EMBD_HSI2_PCLK>,
+                                <&cmu_hsi2 CLK_GOUT_HSI2_SYSREG_HSI2_PCLK>;
+                       clock-names = "core_clk", "sclk_unipro_main", "fmp",
+                                     "aclk", "pclk", "sysreg";
+                       freq-table-hz = <0 0>, <0 0>, <0 0>, <0 0>, <0 0>, <0 0>;
+                       pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>;
+                       pinctrl-names = "default";
+                       phys = <&ufs_0_phy>;
+                       phy-names = "ufs-phy";
+                       samsung,sysreg = <&sysreg_hsi2 0x710>;
+                       status = "disabled";
+               };
+
+               ufs_0_phy: phy@14704000 {
+                       compatible = "google,gs101-ufs-phy";
+                       reg = <0x14704000 0x3000>;
+                       reg-names = "phy-pma";
+                       samsung,pmu-syscon = <&pmu_system_controller>;
+                       #phy-cells = <0>;
+                       clocks = <&ext_24_5m>;
+                       clock-names = "ref_clk";
+                       status = "disabled";
+               };
+
                cmu_apm: clock-controller@17400000 {
                        compatible = "google,gs101-cmu-apm";
                        reg = <0x17400000 0x8000>;
                pinctrl_gpio_alive: pinctrl@174d0000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x174d0000 0x00001000>;
+                       clocks = <&cmu_apm CLK_GOUT_APM_APBIF_GPIO_ALIVE_PCLK>;
+                       clock-names = "pclk";
 
                        wakeup-interrupt-controller {
                                compatible = "google,gs101-wakeup-eint",
                pinctrl_far_alive: pinctrl@174e0000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x174e0000 0x00001000>;
+                       clocks = <&cmu_apm CLK_GOUT_APM_APBIF_GPIO_FAR_ALIVE_PCLK>;
+                       clock-names = "pclk";
 
                        wakeup-interrupt-controller {
                                compatible = "google,gs101-wakeup-eint",
                pinctrl_gsactrl: pinctrl@17940000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x17940000 0x00001000>;
+                       /* TODO: update once support for this CMU exists */
+                       clocks = <0>;
+                       clock-names = "pclk";
                };
 
                pinctrl_gsacore: pinctrl@17a80000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x17a80000 0x00001000>;
+                       /* TODO: update once support for this CMU exists */
+                       clocks = <0>;
+                       clock-names = "pclk";
                };
 
                cmu_top: clock-controller@1e080000 {
index fe9093b3c02e2cdee19e8637b859d57122da1b65..a0f7bbd691a0047f5810aff4a34958cdc5dc75cf 100644 (file)
@@ -81,7 +81,7 @@
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
        };
 
index ed4e69e87e30b14f87c0652f874feb6286cadd77..195bdbafdf7c9e0cf7dbcccfd75a6ec17ac56a2f 100644 (file)
@@ -10,7 +10,7 @@
 /dts-v1/;
 
 #include <dt-bindings/clock/fsl,qoriq-clockgen.h>
-#include "fsl-ls1028a-kontron-sl28.dts"
+#include "fsl-ls1028a-kontron-sl28-var3.dts"
 
 / {
        model = "Kontron SMARC-sAL28 (Single PHY) on SMARC Eval 2.0 carrier";
diff --git a/src/arm64/freescale/fsl-ls1028a-kontron-sl28-var3.dts b/src/arm64/freescale/fsl-ls1028a-kontron-sl28-var3.dts
new file mode 100644 (file)
index 0000000..08851ca
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Device Tree file for the Kontron SMARC-sAL28 board.
+ *
+ * This is for the network variant 3 which has one ethernet ports.
+ *
+ * Copyright (C) 2024 Michael Walle <michael@walle.cc>
+ *
+ */
+
+/dts-v1/;
+
+#include "fsl-ls1028a-kontron-sl28.dts"
+
+/ {
+       model = "Kontron SMARC-sAL28 (Single PHY)";
+       compatible = "kontron,sl28-var3", "kontron,sl28", "fsl,ls1028a";
+};
index ae534c23b970a2f58558bee9e1ec0940579adf02..70b8731029c4e2cfe5736578cec2cf855125a8e9 100644 (file)
                                  0xc2000000 0x1 0xf8230000  0x1 0xf8230000  0x0 0x020000
                                  /* BAR4 (PF5) - non-prefetchable memory */
                                  0x82000000 0x1 0xfc000000  0x1 0xfc000000  0x0 0x400000>;
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 7>;
+                       interrupt-map = <0000 0 0 1 &gic 0 0 GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0000 0 0 2 &gic 0 0 GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
 
                        enetc_port0: ethernet@0,0 {
-                               compatible = "fsl,enetc";
+                               compatible = "pci1957,e100", "fsl,enetc";
                                reg = <0x000000 0 0 0 0>;
                                status = "disabled";
                        };
 
                        enetc_port1: ethernet@0,1 {
-                               compatible = "fsl,enetc";
+                               compatible = "pci1957,e100", "fsl,enetc";
                                reg = <0x000100 0 0 0 0>;
                                status = "disabled";
                        };
 
                        enetc_port2: ethernet@0,2 {
-                               compatible = "fsl,enetc";
+                               compatible = "pci1957,e100", "fsl,enetc";
                                reg = <0x000200 0 0 0 0>;
                                phy-mode = "internal";
                                status = "disabled";
                        };
 
                        enetc_mdio_pf3: mdio@0,3 {
-                               compatible = "fsl,enetc-mdio";
+                               compatible = "pci1957,ee01", "fsl,enetc-mdio";
                                reg = <0x000300 0 0 0 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                        };
 
                        ethernet@0,4 {
-                               compatible = "fsl,enetc-ptp";
+                               compatible = "pci1957,ee02", "fsl,enetc-ptp";
                                reg = <0x000400 0 0 0 0>;
                                clocks = <&clockgen QORIQ_CLK_HWACCEL 3>;
                                little-endian;
                        mscc_felix: ethernet-switch@0,5 {
                                reg = <0x000500 0 0 0 0>;
                                /* IEP INT_B */
-                               interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <2>;
                                status = "disabled";
 
                                mscc_felix_ports: ports {
                        };
 
                        enetc_port3: ethernet@0,6 {
-                               compatible = "fsl,enetc";
+                               compatible = "pci1957,e100", "fsl,enetc";
                                reg = <0x000600 0 0 0 0>;
                                phy-mode = "internal";
                                status = "disabled";
                        rcec@1f,0 {
                                reg = <0x00f800 0 0 0 0>;
                                /* IEP INT_A */
-                               interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <1>;
                        };
                };
 
index d333b773bc455e5f2a5e370398fd458155965e23..8ee6d8c0ef6194fb8ba4e1155818e0dc43338722 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <0 106 0x4>,
                             <0 107 0x4>,
                             <0 95 0x4>,
index 1aa38ed09aa4fa89c29f651d175e75c78593e079..8352197cea6f426fda2e8537f40965c567171306 100644 (file)
 #include <dt-bindings/clock/fsl,qoriq-clockgen.h>
 #include "fsl-ls208xa.dtsi"
 
+/ {
+       pmu {
+               compatible = "arm,cortex-a57-pmu";
+               interrupts = <1 7 0x8>; /* PMU PPI, Level low type */
+       };
+};
+
 &cpu {
        cpu0: cpu@0 {
                device_type = "cpu";
index 8581ea55d2540f087e5944beafde9a16f1637db4..245bbd615c81c14d8f83baaece9740191671da63 100644 (file)
 #include <dt-bindings/clock/fsl,qoriq-clockgen.h>
 #include "fsl-ls208xa.dtsi"
 
+/ {
+       pmu {
+               compatible = "arm,cortex-a72-pmu";
+               interrupts = <1 7 0x8>; /* PMU PPI, Level low type */
+       };
+};
+
 &cpu {
        cpu0: cpu@0 {
                device_type = "cpu";
index 0b72928359068057e4faddaab4628a9e6b5f8efd..ccba0a135b247e8c2f96e12c319c61c3d4efbd08 100644 (file)
                             <1 10 4>; /* Hypervisor PPI, active-low */
        };
 
-       pmu {
-               compatible = "arm,armv8-pmuv3";
-               interrupts = <1 7 0x8>; /* PMU PPI, Level low type */
-       };
-
        psci {
                compatible = "arm,psci-0.2";
                method = "smc";
index e665c629e1a1f6f6bf6d38e4711f3ad47c1da0dd..96055593204ab8b5f21b039dd69fb50cb6f7d91f 100644 (file)
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
-                       scl-gpios = <&gpio2 15 GPIO_ACTIVE_HIGH>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c0_scl>;
+                       pinctrl-1 = <&i2c0_scl_gpio>;
+                       scl-gpios = <&gpio0 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c1_scl>;
+                       pinctrl-1 = <&i2c1_scl_gpio>;
+                       scl-gpios = <&gpio0 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c2_scl>;
+                       pinctrl-1 = <&i2c2_scl_gpio>;
+                       scl-gpios = <&gpio0 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c3_scl>;
+                       pinctrl-1 = <&i2c3_scl_gpio>;
+                       scl-gpios = <&gpio0 27 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
-                       scl-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c4_scl>;
+                       pinctrl-1 = <&i2c4_scl_gpio>;
+                       scl-gpios = <&gpio0 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c5_scl>;
+                       pinctrl-1 = <&i2c5_scl_gpio>;
+                       scl-gpios = <&gpio0 23 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c6_scl>;
+                       pinctrl-1 = <&i2c6_scl_gpio>;
+                       scl-gpios = <&gpio1 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c7_scl>;
+                       pinctrl-1 = <&i2c7_scl_gpio>;
+                       scl-gpios = <&gpio1 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        };
                };
 
+               pinmux_i2crv: pinmux@70010012c {
+                       compatible = "pinctrl-single";
+                       reg = <0x00000007 0x0010012c 0x0 0xc>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       pinctrl-single,bit-per-mux;
+                       pinctrl-single,register-width = <32>;
+                       pinctrl-single,function-mask = <0x7>;
+
+                       i2c1_scl: i2c1-scl-pins {
+                               pinctrl-single,bits = <0x0 0 0x7>;
+                       };
+
+                       i2c1_scl_gpio: i2c1-scl-gpio-pins {
+                               pinctrl-single,bits = <0x0 0x1 0x7>;
+                       };
+
+                       i2c2_scl: i2c2-scl-pins {
+                               pinctrl-single,bits = <0x0 0 (0x7 << 3)>;
+                       };
+
+                       i2c2_scl_gpio: i2c2-scl-gpio-pins {
+                               pinctrl-single,bits = <0x0 (0x1 << 3) (0x7 << 3)>;
+                       };
+
+                       i2c3_scl: i2c3-scl-pins {
+                               pinctrl-single,bits = <0x0 0 (0x7 << 6)>;
+                       };
+
+                       i2c3_scl_gpio: i2c3-scl-gpio-pins {
+                               pinctrl-single,bits = <0x0 (0x1 << 6) (0x7 << 6)>;
+                       };
+
+                       i2c4_scl: i2c4-scl-pins {
+                               pinctrl-single,bits = <0x0 0 (0x7 << 9)>;
+                       };
+
+                       i2c4_scl_gpio: i2c4-scl-gpio-pins {
+                               pinctrl-single,bits = <0x0 (0x1 << 9) (0x7 << 9)>;
+                       };
+
+                       i2c5_scl: i2c5-scl-pins {
+                               pinctrl-single,bits = <0x0 0 (0x7 << 12)>;
+                       };
+
+                       i2c5_scl_gpio: i2c5-scl-gpio-pins {
+                               pinctrl-single,bits = <0x0 (0x1 << 12) (0x7 << 12)>;
+                       };
+
+                       i2c6_scl: i2c6-scl-pins {
+                               pinctrl-single,bits = <0x4 0x2 0x7>;
+                       };
+
+                       i2c6_scl_gpio: i2c6-scl-gpio-pins {
+                               pinctrl-single,bits = <0x4 0x1 0x7>;
+                       };
+
+                       i2c7_scl: i2c7-scl-pins {
+                               pinctrl-single,bits = <0x4 0x2 0x7>;
+                       };
+
+                       i2c7_scl_gpio: i2c7-scl-gpio-pins {
+                               pinctrl-single,bits = <0x4 0x1 0x7>;
+                       };
+
+                       i2c0_scl: i2c0-scl-pins {
+                               pinctrl-single,bits = <0x8 0 (0x7 << 10)>;
+                       };
+
+                       i2c0_scl_gpio: i2c0-scl-gpio-pins {
+                               pinctrl-single,bits = <0x8 (0x1 << 10) (0x7 << 10)>;
+                       };
+               };
+
                fsl_mc: fsl-mc@80c000000 {
                        compatible = "fsl,qoriq-mc";
                        reg = <0x00000008 0x0c000000 0 0x40>,
index 9f88583aa25ea7c07ae9f6ca7f11fe5a7904acc2..eafef8718a0fe6d1043530040d1fab29733ca897 100644 (file)
@@ -25,6 +25,7 @@
                i2c7 = &mpcie1_i2c;
                i2c8 = &mpcie0_i2c;
                i2c9 = &pcieclk_i2c;
+               i2c10 = &i2c5;
                mmc0 = &esdhc0;
                mmc1 = &esdhc1;
                serial0 = &uart0;
index 0580ea30cfbc8d78a0e85adf63bf31130f61ab27..e914291e63a1ae46c01bc6c3c701a8d7ed11a7ff 100644 (file)
                reg = <0x54>;
        };
 };
+
+&i2c5 {
+       status = "okay";
+
+       rtc@6f {
+               compatible = "microchip,mcp7940x";
+               reg = <0x6f>;
+       };
+};
index 07afeb78ed56483e8784f26add43f73c6b58c811..897cbb7b6742205b296ee4d5e0986474ed9bfe82 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <dt-bindings/clock/imx8-clock.h>
 #include <dt-bindings/clock/imx8-lpcg.h>
+#include <dt-bindings/dma/fsl-edma.h>
 #include <dt-bindings/firmware/imx/rsrc.h>
 
 audio_ipg_clk: clock-audio-ipg {
@@ -119,13 +120,96 @@ audio_subsys: bus@59000000 {
        #size-cells = <1>;
        ranges = <0x59000000 0x0 0x59000000 0x1000000>;
 
+       asrc0: asrc@59000000 {
+               compatible = "fsl,imx8qm-asrc";
+               reg = <0x59000000 0x10000>;
+               interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&asrc0_lpcg IMX_LPCG_CLK_0>,
+                        <&asrc0_lpcg IMX_LPCG_CLK_0>,
+                        <&aud_pll_div0_lpcg IMX_LPCG_CLK_4>,
+                        <&aud_pll_div1_lpcg IMX_LPCG_CLK_4>,
+                        <&acm IMX_ADMA_ACM_AUD_CLK0_SEL>,
+                        <&acm IMX_ADMA_ACM_AUD_CLK1_SEL>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>;
+               clock-names = "mem", "ipg",
+                             "asrck_0", "asrck_1", "asrck_2", "asrck_3",
+                             "asrck_4", "asrck_5", "asrck_6", "asrck_7",
+                             "asrck_8", "asrck_9", "asrck_a", "asrck_b",
+                             "asrck_c", "asrck_d", "asrck_e", "asrck_f",
+                             "spba";
+               dmas = <&edma0 0 0 0>,
+                      <&edma0 1 0 0>,
+                      <&edma0 2 0 0>,
+                      <&edma0 3 0 FSL_EDMA_RX>,
+                      <&edma0 4 0 FSL_EDMA_RX>,
+                      <&edma0 5 0 FSL_EDMA_RX>;
+               /* tx* is output channel of asrc, it is rx channel for eDMA */
+               dma-names = "rxa", "rxb", "rxc", "txa", "txb", "txc";
+               fsl,asrc-rate = <8000>;
+               fsl,asrc-width = <16>;
+               fsl,asrc-clk-map = <0>;
+               power-domains = <&pd IMX_SC_R_ASRC_0>;
+               status = "disabled";
+       };
+
+       esai0: esai@59010000 {
+               compatible = "fsl,imx8qm-esai";
+               reg = <0x59010000 0x10000>;
+               interrupts = <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&esai0_lpcg IMX_LPCG_CLK_4>,
+                        <&esai0_lpcg IMX_LPCG_CLK_0>,
+                        <&esai0_lpcg IMX_LPCG_CLK_4>,
+                        <&clk_dummy>;
+               clock-names = "core", "extal", "fsys", "spba";
+               dmas = <&edma0 6 0 FSL_EDMA_RX>, <&edma0 7 0 0>;
+               dma-names = "rx", "tx";
+               power-domains = <&pd IMX_SC_R_ESAI_0>;
+               status = "disabled";
+       };
+
+       spdif0: spdif@59020000 {
+               compatible = "fsl,imx8qm-spdif";
+               reg = <0x59020000 0x10000>;
+               interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>, /* rx */
+                            <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>; /* tx */
+               clocks = <&spdif0_lpcg IMX_LPCG_CLK_4>, /* core */
+                        <&clk_dummy>,                  /* rxtx0 */
+                        <&spdif0_lpcg IMX_LPCG_CLK_0>, /* rxtx1 */
+                        <&clk_dummy>,                  /* rxtx2 */
+                        <&clk_dummy>,                  /* rxtx3 */
+                        <&clk_dummy>,                  /* rxtx4 */
+                        <&audio_ipg_clk>,              /* rxtx5 */
+                        <&clk_dummy>,                  /* rxtx6 */
+                        <&clk_dummy>,                  /* rxtx7 */
+                        <&clk_dummy>;                  /* spba */
+               clock-names = "core", "rxtx0", "rxtx1", "rxtx2", "rxtx3", "rxtx4",
+                             "rxtx5", "rxtx6", "rxtx7", "spba";
+               dmas = <&edma0 8 0 (FSL_EDMA_MULTI_FIFO | FSL_EDMA_RX)>,
+                      <&edma0 9 0 FSL_EDMA_MULTI_FIFO>;
+               dma-names = "rx", "tx";
+               power-domains = <&pd IMX_SC_R_SPDIF_0>;
+               status = "disabled";
+       };
+
        sai0: sai@59040000 {
                compatible = "fsl,imx8qm-sai";
                reg = <0x59040000 0x10000>;
                interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&sai0_lpcg 1>,
+               clocks = <&sai0_lpcg IMX_LPCG_CLK_4>,
                         <&clk_dummy>,
-                        <&sai0_lpcg 0>,
+                        <&sai0_lpcg IMX_LPCG_CLK_0>,
                         <&clk_dummy>,
                         <&clk_dummy>;
                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
@@ -139,9 +223,9 @@ audio_subsys: bus@59000000 {
                compatible = "fsl,imx8qm-sai";
                reg = <0x59050000 0x10000>;
                interrupts = <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&sai1_lpcg 1>,
+               clocks = <&sai1_lpcg IMX_LPCG_CLK_4>,
                         <&clk_dummy>,
-                        <&sai1_lpcg 0>,
+                        <&sai1_lpcg IMX_LPCG_CLK_0>,
                         <&clk_dummy>,
                         <&clk_dummy>;
                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
@@ -155,9 +239,9 @@ audio_subsys: bus@59000000 {
                compatible = "fsl,imx8qm-sai";
                reg = <0x59060000 0x10000>;
                interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&sai2_lpcg 1>,
+               clocks = <&sai2_lpcg IMX_LPCG_CLK_4>,
                         <&clk_dummy>,
-                        <&sai2_lpcg 0>,
+                        <&sai2_lpcg IMX_LPCG_CLK_0>,
                         <&clk_dummy>,
                         <&clk_dummy>;
                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
@@ -171,9 +255,9 @@ audio_subsys: bus@59000000 {
                compatible = "fsl,imx8qm-sai";
                reg = <0x59070000 0x10000>;
                interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&sai3_lpcg 1>,
+               clocks = <&sai3_lpcg IMX_LPCG_CLK_4>,
                         <&clk_dummy>,
-                        <&sai3_lpcg 0>,
+                        <&sai3_lpcg IMX_LPCG_CLK_0>,
                         <&clk_dummy>,
                         <&clk_dummy>;
                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
@@ -239,6 +323,40 @@ audio_subsys: bus@59000000 {
                                <&pd IMX_SC_R_DMA_0_CH23>;
        };
 
+       asrc0_lpcg: clock-controller@59400000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59400000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_4>;
+               clock-output-names = "asrc0_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_ASRC_0>;
+       };
+
+       esai0_lpcg: clock-controller@59410000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59410000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_ESAI0_MCLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "esai0_lpcg_extal_clk",
+                                    "esai0_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_ESAI_0>;
+       };
+
+       spdif0_lpcg: clock-controller@59420000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59420000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_SPDIF0_TX_CLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "spdif0_lpcg_tx_clk",
+                                    "spdif0_lpcg_gclkw";
+               power-domains = <&pd IMX_SC_R_SPDIF_0>;
+       };
+
        sai0_lpcg: clock-controller@59440000 {
                compatible = "fsl,imx8qxp-lpcg";
                reg = <0x59440000 0x10000>;
@@ -333,6 +451,101 @@ audio_subsys: bus@59000000 {
                status = "disabled";
        };
 
+       asrc1: asrc@59800000 {
+               compatible = "fsl,imx8qm-asrc";
+               reg = <0x59800000 0x10000>;
+               interrupts = <GIC_SPI 380 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&asrc1_lpcg IMX_LPCG_CLK_4>,
+                        <&asrc1_lpcg IMX_LPCG_CLK_4>,
+                        <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>,
+                        <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>,
+                        <&acm IMX_ADMA_ACM_AUD_CLK0_SEL>,
+                        <&acm IMX_ADMA_ACM_AUD_CLK1_SEL>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>;
+               clock-names = "mem", "ipg",
+                             "asrck_0", "asrck_1", "asrck_2", "asrck_3",
+                             "asrck_4", "asrck_5", "asrck_6", "asrck_7",
+                             "asrck_8", "asrck_9", "asrck_a", "asrck_b",
+                             "asrck_c", "asrck_d", "asrck_e", "asrck_f",
+                             "spba";
+               dmas = <&edma1 0 0 0>,
+                      <&edma1 1 0 0>,
+                      <&edma1 2 0 0>,
+                      <&edma1 3 0 FSL_EDMA_RX>,
+                      <&edma1 4 0 FSL_EDMA_RX>,
+                      <&edma1 5 0 FSL_EDMA_RX>;
+               /* tx* is output channel of asrc, it is rx channel for eDMA */
+               dma-names = "rxa", "rxb", "rxc", "txa", "txb", "txc";
+               fsl,asrc-rate = <8000>;
+               fsl,asrc-width = <16>;
+               fsl,asrc-clk-map = <1>;
+               power-domains = <&pd IMX_SC_R_ASRC_1>;
+               status = "disabled";
+       };
+
+       sai4: sai@59820000 {
+               compatible = "fsl,imx8qm-sai";
+               reg = <0x59820000 0x10000>;
+               interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&sai4_lpcg IMX_LPCG_CLK_4>,
+                        <&clk_dummy>,
+                        <&sai4_lpcg IMX_LPCG_CLK_0>,
+                        <&clk_dummy>,
+                        <&clk_dummy>;
+               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+               dmas = <&edma1 8 0 FSL_EDMA_RX>, <&edma1 9 0 0>;
+               dma-names = "rx", "tx";
+               power-domains = <&pd IMX_SC_R_SAI_4>;
+               status = "disabled";
+       };
+
+       sai5: sai@59830000 {
+               compatible = "fsl,imx8qm-sai";
+               reg = <0x59830000 0x10000>;
+               interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&sai5_lpcg IMX_LPCG_CLK_4>,
+                        <&clk_dummy>,
+                        <&sai5_lpcg IMX_LPCG_CLK_0>,
+                        <&clk_dummy>,
+                        <&clk_dummy>;
+               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+               dmas = <&edma1 10 0 0>;
+               dma-names = "tx";
+               power-domains = <&pd IMX_SC_R_SAI_5>;
+               status = "disabled";
+       };
+
+       amix: amix@59840000 {
+               compatible = "fsl,imx8qm-audmix";
+               reg = <0x59840000 0x10000>;
+               clocks = <&amix_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "ipg";
+               power-domains = <&pd IMX_SC_R_AMIX>;
+               dais = <&sai4>, <&sai5>;
+               status = "disabled";
+       };
+
+       mqs: mqs@59850000 {
+               compatible = "fsl,imx8qm-mqs";
+               reg = <0x59850000 0x10000>;
+               clocks = <&mqs0_lpcg IMX_LPCG_CLK_4>, <&mqs0_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "mclk", "core";
+               power-domains = <&pd IMX_SC_R_MQS_0>;
+               status = "disabled";
+       };
+
        edma1: dma-controller@599f0000 {
                compatible = "fsl,imx8qm-edma";
                reg = <0x599f0000 0xc0000>;
@@ -481,4 +694,60 @@ audio_subsys: bus@59000000 {
                              "sai3_rx_bclk",
                              "sai4_rx_bclk";
        };
+
+       asrc1_lpcg: clock-controller@59c00000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c00000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_4>;
+               clock-output-names = "asrc1_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_ASRC_1>;
+       };
+
+       sai4_lpcg: clock-controller@59c20000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c20000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_SAI4_MCLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "sai4_lpcg_mclk",
+                                    "sai4_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_SAI_4>;
+       };
+
+       sai5_lpcg: clock-controller@59c30000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c30000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_SAI5_MCLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "sai5_lpcg_mclk",
+                                    "sai5_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_SAI_5>;
+       };
+
+       amix_lpcg: clock-controller@59c40000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c40000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "amix_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_AMIX>;
+       };
+
+       mqs0_lpcg: clock-controller@59c50000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c50000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_MQS_TX_CLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "mqs0_lpcg_mclk",
+                                    "mqs0_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_MQS_0>;
+       };
 };
diff --git a/src/arm64/freescale/imx8-ss-cm40.dtsi b/src/arm64/freescale/imx8-ss-cm40.dtsi
new file mode 100644 (file)
index 0000000..92752c0
--- /dev/null
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2024 NXP
+ *     Dong Aisheng <aisheng.dong@nxp.com>
+ */
+
+#include <dt-bindings/firmware/imx/rsrc.h>
+
+cm40_ipg_clk: clock-cm40-ipg {
+       compatible = "fixed-clock";
+       #clock-cells = <0>;
+       clock-frequency = <132000000>;
+       clock-output-names = "cm40_ipg_clk";
+};
+
+cm40_subsys: bus@34000000 {
+       compatible = "simple-bus";
+       #address-cells = <1>;
+       #size-cells = <1>;
+       ranges = <0x34000000 0x0 0x34000000 0x4000000>;
+       interrupt-parent = <&cm40_intmux>;
+
+       cm40_lpuart: serial@37220000 {
+               compatible = "fsl,imx8qxp-lpuart";
+               reg = <0x37220000 0x1000>;
+               interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cm40_uart_lpcg IMX_LPCG_CLK_1>, <&cm40_uart_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "ipg", "baud";
+               assigned-clocks = <&clk IMX_SC_R_M4_0_UART IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               power-domains = <&pd IMX_SC_R_M4_0_UART>;
+               status = "disabled";
+       };
+
+       cm40_i2c: i2c@37230000 {
+               compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c";
+               reg = <0x37230000 0x1000>;
+               interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cm40_i2c_lpcg IMX_LPCG_CLK_0>,
+                        <&cm40_i2c_lpcg IMX_LPCG_CLK_4>;
+               clock-names = "per", "ipg";
+               assigned-clocks = <&clk IMX_SC_R_M4_0_I2C IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               power-domains = <&pd IMX_SC_R_M4_0_I2C>;
+               status = "disabled";
+       };
+
+       cm40_intmux: intmux@37400000 {
+               compatible = "fsl,imx-intmux";
+               reg = <0x37400000 0x1000>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               clocks = <&cm40_ipg_clk>;
+               clock-names = "ipg";
+               power-domains = <&pd IMX_SC_R_M4_0_INTMUX>;
+               status = "disabled";
+       };
+
+       cm40_uart_lpcg: clock-controller@37620000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x37620000 0x1000>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_M4_0_UART IMX_SC_PM_CLK_PER>,
+                        <&cm40_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>;
+               clock-output-names = "cm40_lpcg_uart_clk",
+                                    "cm40_lpcg_uart_ipg_clk";
+               power-domains = <&pd IMX_SC_R_M4_0_UART>;
+       };
+
+       cm40_i2c_lpcg: clock-controller@37630000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x37630000 0x1000>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_M4_0_I2C IMX_SC_PM_CLK_PER>,
+                        <&cm40_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "cm40_lpcg_i2c_clk",
+                                    "cm40_lpcg_i2c_ipg_clk";
+               power-domains = <&pd IMX_SC_R_M4_0_I2C>;
+       };
+};
index e7783cc2d8303360fdd493cf58ed94c10abb87db..77d2928997b4be51a08ab2f0919dd707c21a5274 100644 (file)
@@ -21,7 +21,6 @@ img_subsys: bus@58000000 {
                interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&img_jpeg_dec_lpcg IMX_LPCG_CLK_0>,
                         <&img_jpeg_dec_lpcg IMX_LPCG_CLK_4>;
-               clock-names = "per", "ipg";
                assigned-clocks = <&img_jpeg_dec_lpcg IMX_LPCG_CLK_0>,
                                  <&img_jpeg_dec_lpcg IMX_LPCG_CLK_4>;
                assigned-clock-rates = <200000000>, <200000000>;
@@ -35,7 +34,6 @@ img_subsys: bus@58000000 {
                interrupts = <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&img_jpeg_enc_lpcg IMX_LPCG_CLK_0>,
                         <&img_jpeg_enc_lpcg IMX_LPCG_CLK_4>;
-               clock-names = "per", "ipg";
                assigned-clocks = <&img_jpeg_enc_lpcg IMX_LPCG_CLK_0>,
                                  <&img_jpeg_enc_lpcg IMX_LPCG_CLK_4>;
                assigned-clock-rates = <200000000>, <200000000>;
diff --git a/src/arm64/freescale/imx8dx-colibri-aster.dts b/src/arm64/freescale/imx8dx-colibri-aster.dts
new file mode 100644 (file)
index 0000000..c974f5d
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2021 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8dx-colibri.dtsi"
+#include "imx8x-colibri-aster.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX8DX on Aster Board";
+       compatible = "toradex,colibri-imx8x-aster",
+                    "toradex,colibri-imx8x",
+                    "fsl,imx8dx";
+};
diff --git a/src/arm64/freescale/imx8dx-colibri-eval-v3.dts b/src/arm64/freescale/imx8dx-colibri-eval-v3.dts
new file mode 100644 (file)
index 0000000..f2bf154
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2021 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8dx-colibri.dtsi"
+#include "imx8x-colibri-eval-v3.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX8DX on Colibri Evaluation Board V3";
+       compatible = "toradex,colibri-imx8x-eval-v3",
+                    "toradex,colibri-imx8x",
+                    "fsl,imx8dx";
+};
diff --git a/src/arm64/freescale/imx8dx-colibri-iris-v2.dts b/src/arm64/freescale/imx8dx-colibri-iris-v2.dts
new file mode 100644 (file)
index 0000000..fd425c7
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2021 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8dx-colibri.dtsi"
+#include "imx8x-colibri-iris-v2.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX8DX on Colibri Iris V2 Board";
+       compatible = "toradex,colibri-imx8x-iris-v2",
+                    "toradex,colibri-imx8x",
+                    "fsl,imx8dx";
+};
diff --git a/src/arm64/freescale/imx8dx-colibri-iris.dts b/src/arm64/freescale/imx8dx-colibri-iris.dts
new file mode 100644 (file)
index 0000000..e5e2346
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2021 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8dx-colibri.dtsi"
+#include "imx8x-colibri-iris.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX8DX on Colibri Iris Board";
+       compatible = "toradex,colibri-imx8x-iris",
+                    "toradex,colibri-imx8x",
+                    "fsl,imx8dx";
+};
diff --git a/src/arm64/freescale/imx8dx-colibri.dtsi b/src/arm64/freescale/imx8dx-colibri.dtsi
new file mode 100644 (file)
index 0000000..66b0fcc
--- /dev/null
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2021 Toradex
+ */
+
+#include "imx8dx.dtsi"
+#include "imx8x-colibri.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX8DX Module";
+};
diff --git a/src/arm64/freescale/imx8dx.dtsi b/src/arm64/freescale/imx8dx.dtsi
new file mode 100644 (file)
index 0000000..ce76efc
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2020 NXP
+ */
+
+/dts-v1/;
+
+#include "imx8dxp.dtsi"
+
+&gpu_3d0 {
+       assigned-clock-rates = <372000000>, <372000000>;
+};
index 2123d431e061374fa7ee154c279b101b5c404433..2412ab145c0661300ecf57a725e1881d5556061d 100644 (file)
@@ -16,6 +16,8 @@
                mmc0 = &usdhc1;
                mmc1 = &usdhc2;
                serial0 = &lpuart0;
+               serial1 = &lpuart1;
+               serial6 = &cm40_lpuart;
        };
 
        chosen {
                };
        };
 
+       m2_uart1_sel: regulator-m2uart1sel {
+               compatible = "regulator-fixed";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "m2_uart1_sel";
+               gpio = <&pca6416_1 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
        mux3_en: regulator-0 {
                compatible = "regulator-fixed";
                regulator-min-microvolt = <3300000>;
        status = "okay";
 };
 
+&lpuart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpuart1>;
+       status = "okay";
+};
+
 &flexcan2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_flexcan2>;
        status = "okay";
 };
 
+&cm40_intmux {
+       status = "disabled";
+};
+
+&cm40_lpuart {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_cm40_lpuart>;
+       status = "disabled";
+};
+
 &lsio_gpio4 {
        status = "okay";
 };
                >;
        };
 
+       pinctrl_lpuart1: lpuart1grp {
+               fsl,pins = <
+                       IMX8DXL_UART1_TX_ADMA_UART1_TX          0x06000020
+                       IMX8DXL_UART1_RX_ADMA_UART1_RX          0x06000020
+                       IMX8DXL_UART1_RTS_B_ADMA_UART1_RTS_B    0x06000020
+                       IMX8DXL_UART1_CTS_B_ADMA_UART1_CTS_B    0x06000020
+               >;
+       };
+
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
                        IMX8DXL_EMMC0_CLK_CONN_EMMC0_CLK        0x06000041
index a0674c5c55766dd3971ceea33d2514a72d13c169..7e54cf2028580832652d3a11fc37400dc4530232 100644 (file)
@@ -5,6 +5,7 @@
 
 #include <dt-bindings/clock/imx8-clock.h>
 #include <dt-bindings/dma/fsl-edma.h>
+#include <dt-bindings/clock/imx8-lpcg.h>
 #include <dt-bindings/firmware/imx/rsrc.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a35-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
        };
 
        };
 
        /* sorted in register address */
+       #include "imx8-ss-cm40.dtsi"
        #include "imx8-ss-adma.dtsi"
        #include "imx8-ss-conn.dtsi"
        #include "imx8-ss-ddr.dtsi"
 #include "imx8dxl-ss-conn.dtsi"
 #include "imx8dxl-ss-lsio.dtsi"
 #include "imx8dxl-ss-ddr.dtsi"
+
+&cm40_intmux {
+       interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+};
index bd5b365867fda26d130462cccdf9fda8ee2b6293..90d1901df2b1d1f80c400bb3e7d974fc61b42ed2 100644 (file)
                enable-active-high;
        };
 
+       reg_1v5: regulator-1v5 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V5";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+       };
+
+       reg_1v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
        reg_vddext_3v3: regulator-vddext-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "VDDEXT_3V3";
        };
 
        ptn5110: tcpc@50 {
-               compatible = "nxp,ptn5110";
+               compatible = "nxp,ptn5110", "tcpci";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec1>;
                reg = <0x50>;
                assigned-clock-rates = <24000000>;
                powerdown-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+               DOVDD-supply = <&buck5_reg>;
+               AVDD-supply = <&reg_1v8>;
+               DVDD-supply = <&reg_1v5>;
 
                port {
                        ov5640_to_mipi_csi2: endpoint {
index d643381417f1cac7e77406c47ab781028b974c8d..affbc67c2ef6ecf74652124b3ebc8e2c54c301b8 100644 (file)
                interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_ptn5150>;
-               status = "okay";
        };
 };
 
index 41c966147b9454d49502c351978b1992af2affbf..429be2bab8a2d5188dc9769ff7ad000e8769c53e 100644 (file)
@@ -57,7 +57,7 @@
        status = "okay";
 
        tpm@1 {
-               compatible = "tcg,tpm_tis-spi";
+               compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
                reg = <0x1>;
                spi-max-frequency = <36000000>;
        };
index 5e2cbaf27e0fc8dd44351e9426fb9df56ee52354..35ae0faa815bc5d436c2665882e7127bf5ff3bb1 100644 (file)
        };
 
        tpm@1 {
-               compatible = "tcg,tpm_tis-spi";
+               compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
                reg = <0x1>;
                spi-max-frequency = <36000000>;
        };
index 1cff0b829357ed56faf7ee77c5ab58dca09fe5eb..ce20de25980545921768ffbd246fd146bbd26767 100644 (file)
@@ -10,7 +10,7 @@
                simple-audio-card,format = "i2s";
                simple-audio-card,frame-master = <&dailink_master>;
                simple-audio-card,mclk-fs = <256>;
-               simple-audio-card,name = "imx8mm-wm8904";
+               simple-audio-card,name = "verdin-wm8904";
                simple-audio-card,routing =
                        "Headphone Jack", "HPOUTL",
                        "Headphone Jack", "HPOUTR",
                        sound-dai = <&sai2>;
                };
        };
+
+       reg_usb_hub: regulator-usb-hub {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               regulator-name = "HUB_PWR_EN";
+       };
+
+       reg_pcie: regulator-pcie {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               regulator-name = "PCIE_1_PWR_EN";
+               startup-delay-us = <100000>;
+       };
 };
 
 /* Verdin SPI_1 */
        status = "okay";
 };
 
+&gpio5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+};
+
 /* Current measurement into module VCC */
 &hwmon {
        status = "okay";
 
 /* Verdin PCIE_1 */
 &pcie0 {
+       vpcie-supply = <&reg_pcie>;
        status = "okay";
 };
 
        status = "okay";
 };
 
+/* We support turning off sleep moci on Dahlia */
+&reg_force_sleep_moci {
+       status = "disabled";
+};
+
 /* Verdin I2S_1 */
 &sai2 {
        status = "okay";
 
 /* Verdin USB_2 */
 &usbotg2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
        disable-over-current;
        status = "okay";
+
+       usb-hub@1 {
+               compatible = "usb424,2744";
+               reg = <1>;
+               vdd-supply = <&reg_usb_hub>;
+       };
 };
 
 /* Verdin SD_1 */
index 3c4b8ca125e3211b172b2656301e02ebbee5b0f1..1d8d146d9eebad32de81c0f7860be52a4b6d7ef2 100644 (file)
@@ -10,7 +10,7 @@
                simple-audio-card,format = "i2s";
                simple-audio-card,frame-master = <&dailink_master>;
                simple-audio-card,mclk-fs = <256>;
-               simple-audio-card,name = "imx8mm-nau8822";
+               simple-audio-card,name = "verdin-nau8822";
                simple-audio-card,routing =
                        "Headphones", "LHP",
                        "Headphones", "RHP",
        status = "okay";
 };
 
+&gpio5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+};
+
 &gpio_expander_21 {
        status = "okay";
 };
index 1e28c78e381fc9c6da4c983d3e432c157ea7208d..763f069e8405442f2af7491ff810b8b2375248f2 100644 (file)
        pinctrl-0 = <&pinctrl_gpios_ext_yavia>;
 };
 
+&gpio5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+};
+
 &hwmon_temp {
        status = "okay";
 };
index 6f0811587142d2725db959d100e7229c6ca82f02..98544741ce1768ec73492da272c183ec6c18a658 100644 (file)
@@ -6,6 +6,7 @@
 #include <dt-bindings/phy/phy-imx8-pcie.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "imx8mm.dtsi"
+#include "imx8mm-overdrive.dtsi"
 
 / {
        chosen {
                startup-delay-us = <200000>;
        };
 
+       /*
+        * By default we enable CTRL_SLEEP_MOCI#, this is required to have
+        * peripherals on the carrier board powered.
+        * If more granularity or power saving is required this can be disabled
+        * in the carrier board device tree files.
+        */
+       reg_force_sleep_moci: regulator-force-sleep-moci {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "CTRL_SLEEP_MOCI#";
+       };
+
        reg_usb_otg1_vbus: regulator-usb-otg1 {
                compatible = "regulator-fixed";
                enable-active-high;
                          "SODIMM_212",
                          "SODIMM_151",
                          "SODIMM_153";
-
-       ctrl-sleep-moci-hog {
-               gpio-hog;
-               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
-               gpios = <1 GPIO_ACTIVE_HIGH>;
-               line-name = "CTRL_SLEEP_MOCI#";
-               output-high;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
-       };
 };
 
 /* On-module I2C */
        /* Verdin GPIO_9_DSI (pulled-up as active-low) */
        pinctrl_gpio_9_dsi: gpio9dsigrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_NAND_RE_B_GPIO3_IO15              0x146>; /* SODIMM 17 */
+                       <MX8MM_IOMUXC_NAND_RE_B_GPIO3_IO15              0x1c6>; /* SODIMM 17 */
        };
 
        /* Verdin GPIO_10_DSI (pulled-up as active-low) */
index 8a1b42b94dce69d6d69a153b5298568bf7fbaf02..9535dedcef59b008d03fb14da75fa01c52be2d79 100644 (file)
                                                        remote-endpoint = <&lcdif_to_dsim>;
                                                };
                                        };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mipi_dsi_out: endpoint {
+                                               };
+                                       };
                                };
                        };
 
                                reg = <0x32e40000 0x200>;
                                interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>;
-                               clock-names = "usb1_ctrl_root_clk";
                                assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>;
                                assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
                                phys = <&usbphynop1>;
                                reg = <0x32e50000 0x200>;
                                interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>;
-                               clock-names = "usb1_ctrl_root_clk";
                                assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>;
                                assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
                                phys = <&usbphynop2>;
index 000e2c0596df30cb46c1adeb4e5f66339308cf64..d25032e3ceabaa2919b7ce587d59b059c881170b 100644 (file)
                };
        };
 };
+
+&i2c2 {
+       hdmi@3d {
+               avdd-supply = <&buck5>;
+               dvdd-supply = <&buck5>;
+               pvdd-supply = <&buck5>;
+               a2vdd-supply = <&buck5>;
+               v1p2-supply = <&buck5>;
+       };
+};
+
+&i2c3 {
+       camera@3c {
+               DOVDD-supply = <&buck5>;
+       };
+};
index cc2ff59ac53b864b95f9067d11ca4421c7d5ff1d..6d85a0b052c9f5668bc8e7b486e5d0e369af3763 100644 (file)
                };
        };
 };
+
+&i2c2 {
+       hdmi@3d {
+               avdd-supply = <&buck5_reg>;
+               dvdd-supply = <&buck5_reg>;
+               pvdd-supply = <&buck5_reg>;
+               a2vdd-supply = <&buck5_reg>;
+               v1p2-supply = <&buck5_reg>;
+       };
+};
+
+&i2c3 {
+       camera@3c {
+               DOVDD-supply = <&buck5_reg>;
+       };
+};
index 0b71f50d936ecadb7564dde741bb2f19fba67f7f..41330210a05fcfa5fa326c1a3fbde9bf3953ce7c 100644 (file)
                };
        };
 };
+
+&i2c2 {
+       hdmi@3d {
+               avdd-supply = <&buck5>;
+               dvdd-supply = <&buck5>;
+               pvdd-supply = <&buck5>;
+               a2vdd-supply = <&buck5>;
+               v1p2-supply = <&buck5>;
+       };
+};
+
+&i2c3 {
+       camera@3c {
+               DOVDD-supply = <&buck5>;
+       };
+};
index 269e70f66a1331da780422dd6d3eb1402560d3c8..9e0259ddf4bca36966010bbcee0d7b06400e1c59 100644 (file)
@@ -30,7 +30,7 @@
 
                port {
                        hdmi_connector_in: endpoint {
-                               remote-endpoint = <&adv7533_out>;
+                               remote-endpoint = <&adv7535_out>;
                        };
                };
        };
                enable-active-high;
        };
 
+       reg_1v5: regulator-1v5 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V5";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+       };
+
+       reg_1v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       reg_vddext_3v3: regulator-vddext-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDEXT_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
        ir-receiver {
                compatible = "gpio-ir-receiver";
                gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
 
        hdmi@3d {
                compatible = "adi,adv7535";
-               reg = <0x3d>, <0x3c>, <0x3e>, <0x3f>;
-               reg-names = "main", "cec", "edid", "packet";
+               reg = <0x3d>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
                adi,dsi-lanes = <4>;
-
-               adi,input-depth = <8>;
-               adi,input-colorspace = "rgb";
-               adi,input-clock = "1x";
-               adi,input-style = <1>;
-               adi,input-justification = "evenly";
+               v3p3-supply = <&reg_vddext_3v3>;
 
                ports {
                        #address-cells = <1>;
                        port@0 {
                                reg = <0>;
 
-                               adv7533_in: endpoint {
+                               adv7535_in: endpoint {
                                        remote-endpoint = <&dsi_out>;
                                };
                        };
                        port@1 {
                                reg = <1>;
 
-                               adv7533_out: endpoint {
+                               adv7535_out: endpoint {
                                        remote-endpoint = <&hdmi_connector_in>;
                                };
                        };
        };
 
        ptn5110: tcpc@50 {
-               compatible = "nxp,ptn5110";
+               compatible = "nxp,ptn5110", "tcpci";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec1>;
                reg = <0x50>;
                assigned-clock-rates = <24000000>;
                powerdown-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+               AVDD-supply = <&reg_1v8>;
+               DVDD-supply = <&reg_1v5>;
 
                port {
                        ov5640_to_mipi_csi2: endpoint {
                        reg = <1>;
 
                        dsi_out: endpoint {
-                               remote-endpoint = <&adv7533_in>;
+                               remote-endpoint = <&adv7535_in>;
                                data-lanes = <1 2 3 4>;
                        };
                };
index a6b94d1957c92ac6bcc18667b477ca05eda8b1bc..3434b189fa583afc35899e1e508628c3c9822e63 100644 (file)
                interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_ptn5150>;
-               status = "okay";
 
                port {
                        typec1_dr_sw: endpoint {
index 932c8b05c75fc06ea394bcdc0f8fbe049dade17d..a5f9cfb46e5dd76c7d8d7bde5915b746ce36ad02 100644 (file)
                                                        remote-endpoint = <&lcdif_to_dsim>;
                                                };
                                        };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mipi_dsi_out: endpoint {
+                                               };
+                                       };
                                };
                        };
 
                                reg = <0x32e40000 0x200>;
                                interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MN_CLK_USB1_CTRL_ROOT>;
-                               clock-names = "usb1_ctrl_root_clk";
                                assigned-clocks = <&clk IMX8MN_CLK_USB_BUS>;
                                assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_500M>;
                                phys = <&usbphynop1>;
index a08057410bdef5b3a2572cb5c5e2fe6ea35b5522..e5d3901f29136f4051e55610045f1908a94eef57 100644 (file)
 &i2c3 {
        /* Connected to USB Hub */
        usb-typec@52 {
-               compatible = "nxp,ptn5110";
+               compatible = "nxp,ptn5110", "tcpci";
                reg = <0x52>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec>;
index 2c19766ebf093fde85912660e1a4145812e4ab82..9b8f97a84e6197a93c5011a47f94e5e914d04479 100644 (file)
 };
 
 &i2c2 {
-       clock-frequency = <100000>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c2>;
-       status = "okay";
 };
 
 &i2c3 {
index b11d694b98e1bc6818b40ca48f8d5bee2fd090c5..d241db3743a9c70ec38cf7b09625d0417dafb228 100644 (file)
        pinctrl-0 = <&pinctrl_eqos>;
        nvmem-cells = <&ethmac1>;
        nvmem-cell-names = "mac-address";
-       phy-supply = <&reg_baseboard_vdd3v3>;
        phy-handle = <&ethphy0>;
        phy-mode = "rgmii-id";
        status = "okay";
index b749e28e5ede5cf85f309f2f7903ebee44b41f98..ac7ec7533a3c8c7b28ec1e75616b55735ba9b306 100644 (file)
                                VDDIO-supply = <&reg_vdd_3p3v_awo>;
                        };
 
+                       csi2exp: gpio@24 {
+                               compatible = "nxp,pca9570";
+                               reg = <0x24>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               gpio-line-names =
+                                       "CSI2_#RESET", "CSI2_#PWDN",
+                                       "CSI_#PWDN", "CSI_#RESET";
+                       };
+
                        typec@3d {
                                compatible = "nxp,ptn5150";
                                reg = <0x3d>;
index 43f1d45ccc96f01686534d228de9b69630db3ebb..f5115f9e8c473be2dcb7067f96bbfb946a7fd3e1 100644 (file)
                                  <&clk IMX8MP_CLK_CLKOUT2>,
                                  <&clk IMX8MP_AUDIO_PLL2_OUT>;
                assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL2_OUT>;
-               assigned-clock-rates = <13000000>, <13000000>, <156000000>;
+               assigned-clock-rates = <13000000>, <13000000>, <208000000>;
                reset-gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>;
                status = "disabled";
 
index 9beba8d6a0dfe4b1ec51015e0f1c12ebca2d8f1c..8be5b2a57f27f4c67c14e813f94c9b49d4303b5a 100644 (file)
 
        };
 
+       sound-hdmi {
+               compatible = "fsl,imx-audio-hdmi";
+               model = "audio-hdmi";
+               audio-cpu = <&aud2htx>;
+               hdmi-out;
+       };
+
+       sound-micfil {
+               compatible = "fsl,imx-audio-card";
+               model = "micfil-audio";
+
+               pri-dai-link {
+                       link-name = "micfil hifi";
+                       format = "i2s";
+
+                       cpu {
+                               sound-dai = <&micfil>;
+                       };
+               };
+       };
+
        reserved-memory {
                #address-cells = <2>;
                #size-cells = <2>;
        cpu-supply = <&reg_arm>;
 };
 
+&aud2htx {
+       status = "okay";
+};
+
 &eqos {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_eqos>;
        status = "okay";
 };
 
+&micfil {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pdm>;
+       assigned-clocks = <&clk IMX8MP_CLK_PDM>;
+       assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <196608000>;
+       status = "okay";
+};
+
 &mipi_dsi {
        samsung,esc-clock-frequency = <10000000>;
        status = "okay";
                >;
        };
 
+       pinctrl_pdm: pdmgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI5_RXC__AUDIOMIX_PDM_CLK         0xd6
+                       MX8MP_IOMUXC_SAI5_RXD0__AUDIOMIX_PDM_BIT_STREAM00       0xd6
+                       MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_PDM_BIT_STREAM01       0xd6
+                       MX8MP_IOMUXC_SAI5_RXD2__AUDIOMIX_PDM_BIT_STREAM02       0xd6
+                       MX8MP_IOMUXC_SAI5_RXD3__AUDIOMIX_PDM_BIT_STREAM03       0xd6
+               >;
+       };
+
        pinctrl_pmic: pmicgrp {
                fsl,pins = <
                        MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03     0x000001c0
index 61c2a63efc6dbfa4bc2f81d7264392fe8178279d..0fd5c3abcdb7c4c4e7fbeb60ffafcb0c08681e94 100644 (file)
 };
 
 &i2c1 {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c1>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        clock-frequency = <400000>;
        status = "okay";
 
 };
 
 &i2c6 {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c6>;
+       pinctrl-1 = <&pinctrl_i2c6_gpio>;
+       scl-gpios = <&gpio3 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio3 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        clock-frequency = <400000>;
        status = "okay";
 
 
        pinctrl_i2c1: i2c1grp {
                fsl,pins =
-                       <MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL                0x400001c3>,
-                       <MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA                0x400001c3>;
+                       <MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL                0x400001e0>,
+                       <MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA                0x400001e0>;
+       };
+
+       pinctrl_i2c1_gpio: i2c1gpiogrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_I2C1_SCL__GPIO5_IO14              0x1e0>,
+                       <MX8MP_IOMUXC_I2C1_SDA__GPIO5_IO15              0x1e0>;
        };
 
        pinctrl_i2c2: i2c2grp {
                fsl,pins =
-                       <MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL                0x400001c3>,
-                       <MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA                0x400001c3>;
+                       <MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL                0x400001e0>,
+                       <MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA                0x400001e0>;
        };
 
        pinctrl_i2c3: i2c3grp {
                fsl,pins =
-                       <MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL                0x400001c3>,
-                       <MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA                0x400001c3>;
+                       <MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL                0x400001e0>,
+                       <MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA                0x400001e0>;
        };
 
        pinctrl_i2c4: i2c4grp {
                fsl,pins =
-                       <MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL                0x400001c3>,
-                       <MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA                0x400001c3>;
+                       <MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL                0x400001e0>,
+                       <MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA                0x400001e0>;
        };
 
        pinctrl_i2c5: i2c5grp {
                fsl,pins =
-                       <MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL                0x400001c3>,
-                       <MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA                0x400001c3>;
+                       <MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL                0x400001e0>,
+                       <MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA                0x400001e0>;
        };
 
        pinctrl_i2c6: i2c6grp {
                fsl,pins =
-                       <MX8MP_IOMUXC_SAI5_RXFS__I2C6_SCL               0x400001c3>,
-                       <MX8MP_IOMUXC_SAI5_RXC__I2C6_SDA                0x400001c3>;
+                       <MX8MP_IOMUXC_SAI5_RXFS__I2C6_SCL               0x400001e0>,
+                       <MX8MP_IOMUXC_SAI5_RXC__I2C6_SDA                0x400001e0>;
+       };
+
+       pinctrl_i2c6_gpio: i2c6gpiogrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19             0x1e0>,
+                       <MX8MP_IOMUXC_SAI5_RXC__GPIO3_IO20              0x1e0>;
        };
 
        pinctrl_lcd0_backlight: lcd0-backlightgrp {
diff --git a/src/arm64/freescale/imx8mp-navqp.dts b/src/arm64/freescale/imx8mp-navqp.dts
new file mode 100644 (file)
index 0000000..5fd1614
--- /dev/null
@@ -0,0 +1,424 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2021 Emcraft Systems
+ * Copyright 2024 Gilles Talis <gilles.talis@gmail.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include "imx8mp.dtsi"
+
+/ {
+       model = "Emcraft Systems i.MX8MPlus NavQ+ Kit";
+       compatible = "emcraft,imx8mp-navqp", "fsl,imx8mp";
+
+       chosen {
+               stdout-path = &uart2;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_led>;
+
+               led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <100>;
+               off-on-delay-us = <12000>;
+       };
+};
+
+&A53_0 {
+       cpu-supply = <&buck2>;
+};
+
+&A53_1 {
+       cpu-supply = <&buck2>;
+};
+
+&A53_2 {
+       cpu-supply = <&buck2>;
+};
+
+&A53_3 {
+       cpu-supply = <&buck2>;
+};
+
+&eqos {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_eqos>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy0>;
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+                       reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <1000>;
+                       reset-deassert-us = <10000>;
+                       qca,disable-smarteee;
+                       qca,disable-hibernation-mode;
+               };
+       };
+};
+
+&i2c1 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       pmic@25 {
+               compatible = "nxp,pca9450c";
+               reg = <0x25>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+
+               regulators {
+                       BUCK1 {
+                               regulator-name = "BUCK1";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <2187500>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck2: BUCK2 {
+                               regulator-name = "BUCK2";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <2187500>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                               nxp,dvs-run-voltage = <950000>;
+                               nxp,dvs-standby-voltage = <850000>;
+                       };
+
+                       BUCK4 {
+                               regulator-name = "BUCK4";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       BUCK5 {
+                               regulator-name = "BUCK5";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       BUCK6 {
+                               regulator-name = "BUCK6";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO1 {
+                               regulator-name = "LDO1";
+                               regulator-min-microvolt = <1600000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO2 {
+                               regulator-name = "LDO2";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1150000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO3 {
+                               regulator-name = "LDO3";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO4 {
+                               regulator-name = "LDO4";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO5 {
+                               regulator-name = "LDO5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+};
+
+&i2c3 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+};
+
+&i2c4 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       status = "okay";
+
+       rtc@53 {
+               compatible = "nxp,pcf2131";
+               reg = <0x53>;
+       };
+};
+
+&uart2 {
+       /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+/* SD Card */
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+/* eMMC */
+&usdhc3 {
+       assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
+       assigned-clock-rates = <400000000>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_eqos: eqosgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC                             0x3
+                       MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO                           0x3
+                       MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0                       0x91
+                       MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1                       0x91
+                       MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2                       0x91
+                       MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3                       0x91
+                       MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK       0x91
+                       MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL                 0x91
+                       MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0                       0x1f
+                       MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1                       0x1f
+                       MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2                       0x1f
+                       MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3                       0x1f
+                       MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL                 0x1f
+                       MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK       0x1f
+                       MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22                               0x110
+               >;
+       };
+
+       pinctrl_gpio_led: gpioledgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16                           0x19
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL                                 0x400001c3
+                       MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA                                 0x400001c3
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL                                 0x400001c3
+                       MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA                                 0x400001c3
+               >;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL                                 0x400001c3
+                       MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA                                 0x400001c3
+               >;
+       };
+
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL                                 0x400001c3
+                       MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA                                 0x400001c3
+               >;
+       };
+
+       pinctrl_pmic: pmicgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03                             0x41
+               >;
+       };
+
+       pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19                            0x41
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX                            0x49
+                       MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX                            0x49
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK                                0x190
+                       MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD                                0x1d0
+                       MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0                            0x1d0
+                       MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1                            0x1d0
+                       MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2                            0x1d0
+                       MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3                            0x1d0
+                       MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT                         0xc1
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK                                0x194
+                       MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD                                0x1d4
+                       MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0                            0x1d4
+                       MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1                            0x1d4
+                       MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2                            0x1d4
+                       MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3                            0x1d4
+                       MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT                         0xc1
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK                                0x196
+                       MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD                                0x1d6
+                       MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0                            0x1d6
+                       MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1                            0x1d6
+                       MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2                            0x1d6
+                       MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3                            0x1d6
+                       MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT                         0xc1
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12                               0x1c4
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK                              0x190
+                       MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD                              0x1d0
+                       MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0                          0x1d0
+                       MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1                          0x1d0
+                       MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2                          0x1d0
+                       MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3                          0x1d0
+                       MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4                            0x1d0
+                       MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5                           0x1d0
+                       MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6                           0x1d0
+                       MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7                             0x1d0
+                       MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE                          0x190
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK                              0x194
+                       MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD                              0x1d4
+                       MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0                          0x1d4
+                       MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1                          0x1d4
+                       MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2                          0x1d4
+                       MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3                          0x1d4
+                       MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4                            0x1d4
+                       MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5                           0x1d4
+                       MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6                           0x1d4
+                       MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7                             0x1d4
+                       MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE                          0x194
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK                              0x196
+                       MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD                              0x1d6
+                       MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0                          0x1d6
+                       MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1                          0x1d6
+                       MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2                          0x1d6
+                       MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3                          0x1d6
+                       MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4                            0x1d6
+                       MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5                           0x1d6
+                       MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6                           0x1d6
+                       MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7                             0x1d6
+                       MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE                          0x196
+               >;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B                           0xc6
+               >;
+       };
+};
index 86d3da36e4f3eecf64c0168c825baee86dfdab3f..c51ed7d991d186ca2a89c4dcaf7db7c63b435f57 100644 (file)
                };
        };
 
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "X44";
+               type = "a";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        display: display {
                /*
                 * Display is not fixed, so compatible has to be added from
                          "", "", "", "";
 };
 
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi>;
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 &i2c2 {
        clock-frequency = <384000>;
        pinctrl-names = "default", "gpio";
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 &pcf85063 {
        /* RTC_EVENT# is connected on MBa8MPxL */
        pinctrl-names = "default";
index e7bf032265e010eecb031e8c9dabe958077a31f1..2f740d74707bdfd612a977217b298f50562abacf 100644 (file)
@@ -68,7 +68,7 @@
        status = "okay";
 
        tpm@1 {
-               compatible = "tcg,tpm_tis-spi";
+               compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
                reg = <0x1>;
                spi-max-frequency = <36000000>;
        };
index f24b14744799e16bb1145738bfb18fd8343c00ee..5ab3ffe9931d4a3ca52d6ff45b3867f6c497814b 100644 (file)
@@ -8,6 +8,10 @@
 #include <dt-bindings/phy/phy-imx8-pcie.h>
 
 / {
+       aliases {
+               ethernet1 = &eth1;
+       };
+
        connector {
                compatible = "gpio-usb-b-connector", "usb-b-connector";
                pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pcie0>;
        reset-gpio = <&gpio4 29 GPIO_ACTIVE_LOW>;
        status = "okay";
+
+       pcie@0,0 {
+               reg = <0x0000 0 0 0 0>;
+               device_type = "pci";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               ranges;
+
+               pcie@0,0 {
+                       reg = <0x0000 0 0 0 0>;
+                       device_type = "pci";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       pcie@3,0 {
+                               reg = <0x1800 0 0 0 0>;
+                               device_type = "pci";
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+
+                               eth1: ethernet@0,0 {
+                                       reg = <0x0000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                                       local-mac-address = [00 00 00 00 00 00];
+                               };
+                       };
+               };
+       };
 };
 
 /* GPS */
index f5491a608b2f3793ca410871fda7e5005db661e1..e2b5e7ac3e465f86218aa57fba7c2326cecf3fd0 100644 (file)
@@ -8,6 +8,10 @@
 #include <dt-bindings/phy/phy-imx8-pcie.h>
 
 / {
+       aliases {
+               ethernet1 = &eth1;
+       };
+
        connector {
                compatible = "gpio-usb-b-connector", "usb-b-connector";
                pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pcie0>;
        reset-gpio = <&gpio4 29 GPIO_ACTIVE_LOW>;
        status = "okay";
+
+       pcie@0,0 {
+               reg = <0x0000 0 0 0 0>;
+               device_type = "pci";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               ranges;
+
+               pcie@0,0 {
+                       reg = <0x0000 0 0 0 0>;
+                       device_type = "pci";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       pcie@4,0 {
+                               reg = <0x2000 0 0 0 0>;
+                               device_type = "pci";
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+
+                               eth1: ethernet@0,0 {
+                                       reg = <0x0000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                                       local-mac-address = [00 00 00 00 00 00];
+                               };
+                       };
+               };
+       };
 };
 
 /* GPS */
 
        bluetooth {
                compatible = "brcm,bcm4330-bt";
-               shutdown-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
        };
 };
 
index 270a9114da97f80cd942cbbc5b85c87759dfe9b5..edf22ff549a476e441c8764356d4c4267a2a39c1 100644 (file)
        status = "okay";
 
        ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
                port@0 {
+                       reg = <0>;
+
                        mipi_csi_0_in: endpoint {
                                remote-endpoint = <&imx219_to_mipi_csi2>;
                                data-lanes = <1 2>;
                        };
                };
+
+               port@1 {
+                       reg = <1>;
+
+                       mipi_csi_0_out: endpoint {
+                               remote-endpoint = <&isi_in_0>;
+                       };
+               };
        };
 };
 
index cae586cd45bdd59aa479e70bb290fc50b0392a3c..a77e9a44d9fa25200564aa9be1b073b576954876 100644 (file)
                                label = "vdd_dram";
                        };
 
+                       channel@9e {
+                               gw,mode = <2>;
+                               reg = <0x9e>;
+                               label = "vdd_1p0";
+                       };
+
                        channel@a2 {
                                gw,mode = <2>;
                                reg = <0xa2>;
index 7e9e4b13b5c50dd6ebb6c508b187ec33160ae057..6e6b9c2c46406fc3691193e6874eb85fd8d28065 100644 (file)
@@ -10,7 +10,7 @@
                simple-audio-card,format = "i2s";
                simple-audio-card,frame-master = <&codec_dai>;
                simple-audio-card,mclk-fs = <256>;
-               simple-audio-card,name = "imx8mp-wm8904";
+               simple-audio-card,name = "verdin-wm8904";
                simple-audio-card,routing =
                        "Headphone Jack", "HPOUTL",
                        "Headphone Jack", "HPOUTR",
                        sound-dai = <&sai1>;
                };
        };
+
+       reg_usb_hub: regulator-usb-hub {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               regulator-name = "HUB_PWR_EN";
+       };
+
+       reg_pcie: regulator-pcie {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               regulator-name = "PCIE_1_PWR_EN";
+               startup-delay-us = <100000>;
+       };
 };
 
 &backlight {
        status = "okay";
 };
 
+&gpio4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+};
+
 /* Current measurement into module VCC */
 &hwmon {
        status = "okay";
        };
 };
 
+/* Verdin I2C_3_HDMI */
+&i2c5 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
+       vpcie-supply = <&reg_pcie>;
        status = "okay";
 };
 
        vin-supply = <&reg_3p3v>;
 };
 
+/* We support turning off sleep moci on Dahlia */
+&reg_force_sleep_moci {
+       status = "disabled";
+};
+
 /* Verdin I2S_1 */
 &sai1 {
        assigned-clocks = <&clk IMX8MP_CLK_SAI1>;
        status = "okay";
 };
 
+&usb_dwc3_1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       usb_hub_3_0: usb-hub@1 {
+               compatible = "usb424,5744";
+               reg = <1>;
+               peer-hub = <&usb_hub_2_0>;
+               vdd-supply = <&reg_usb_hub>;
+       };
+
+       usb_hub_2_0: usb-hub@2 {
+               compatible = "usb424,2744";
+               reg = <2>;
+               peer-hub = <&usb_hub_3_0>;
+               vdd-supply = <&reg_usb_hub>;
+       };
+};
+
 /* Verdin SD_1 */
 &usdhc2 {
        status = "okay";
index a509b2b7fa857058069592b86d62022bb85d653a..42ed44a1171101964e952441df49e4f70a314da3 100644 (file)
@@ -22,7 +22,7 @@
                simple-audio-card,format = "i2s";
                simple-audio-card,frame-master = <&codec_dai>;
                simple-audio-card,mclk-fs = <256>;
-               simple-audio-card,name = "imx8mp-nau8822";
+               simple-audio-card,name = "verdin-nau8822";
                simple-audio-card,routing =
                        "Headphones", "LHP",
                        "Headphones", "RHP",
        status = "okay";
 };
 
+&gpio4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+};
+
 &gpio_expander_21 {
        status = "okay";
        vcc-supply = <&reg_1p8v>;
        };
 };
 
+/* Verdin I2C_3_HDMI */
+&i2c5 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        status = "okay";
index 8482393f3cac5e994f889106aafb9d4d91ddf271..1d15f7449c58004624ec9429c997a62a20c2e3ec 100644 (file)
        status = "okay";
 };
 
+/* Verdin I2C_3_HDMI */
+&i2c5 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        status = "okay";
index db1722f0d80ef96e8609dae887d1f5f20b145c87..a7b261ff3e4cd8f03a7e6c2c4d41da4284c081d6 100644 (file)
        status = "okay";
 };
 
+&gpio4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+};
+
 &hwmon_temp {
        status = "okay";
 };
        status = "okay";
 };
 
+/* Verdin I2C_3_HDMI */
+&i2c5 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        status = "okay";
index faa17cbbe2fdae53945194e2861a4dbfec8d1838..aef4bef4bccddb68af23f626065d2940253564ae 100644 (file)
                vin-supply = <&reg_vdd_3v3>;
        };
 
+       /*
+        * By default we enable CTRL_SLEEP_MOCI#, this is required to have
+        * peripherals on the carrier board powered.
+        * If more granularity or power saving is required this can be disabled
+        * in the carrier board device tree files.
+        */
+       reg_force_sleep_moci: regulator-force-sleep-moci {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "CTRL_SLEEP_MOCI#";
+       };
+
        reg_usb1_vbus: regulator-usb1-vbus {
                compatible = "regulator-fixed";
                enable-active-high;
                          "SODIMM_256",
                          "SODIMM_48",
                          "SODIMM_44";
-
-       ctrl-sleep-moci-hog {
-               gpio-hog;
-               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
-               gpios = <29 GPIO_ACTIVE_HIGH>;
-               line-name = "CTRL_SLEEP_MOCI#";
-               output-high;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
-       };
 };
 
 /* On-module I2C */
        };
 };
 
-/* TODO: Verdin I2C_3_HDMI */
-
 /* Verdin I2C_4_CSI */
 &i2c3 {
        clock-frequency = <400000>;
        };
 };
 
+/* Verdin I2C_3_HDMI */
+&i2c5 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c5>;
+       pinctrl-1 = <&pinctrl_i2c5_gpio>;
+       scl-gpios = <&gpio3 26 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio3 27 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        pinctrl-names = "default";
        pinctrl_hdmi_hog: hdmihoggrp {
                fsl,pins =
                        <MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC        0x40000019>,    /* SODIMM 63 */
-                       <MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL    0x400001c3>,    /* SODIMM 59 */
-                       <MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA    0x400001c3>,    /* SODIMM 57 */
                        <MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD        0x40000019>;    /* SODIMM 61 */
        };
 
                        <MX8MP_IOMUXC_I2C4_SDA__GPIO5_IO21              0x400001c6>;    /* SODIMM 12 */
        };
 
+       /* Verdin I2C_3_HDMI */
+       pinctrl_i2c5: i2c5grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_HDMI_DDC_SCL__I2C5_SCL            0x400001c6>,    /* SODIMM 59 */
+                       <MX8MP_IOMUXC_HDMI_DDC_SDA__I2C5_SDA            0x400001c6>;    /* SODIMM 57 */
+       };
+
+       pinctrl_i2c5_gpio: i2c5gpiogrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_HDMI_DDC_SCL__GPIO3_IO26          0x400001c6>,    /* SODIMM 59 */
+                       <MX8MP_IOMUXC_HDMI_DDC_SDA__GPIO3_IO27          0x400001c6>;    /* SODIMM 57 */
+       };
+
        /* Verdin I2S_2_BCLK (TOUCH_RESET#) */
        pinctrl_i2s_2_bclk_touch_reset: i2s2bclktouchresetgrp {
                fsl,pins =
index 8141926e4ef1424639a3196337c7e006f5f6995e..b92abb5a5c536f41bb1017690135e098bec98415 100644 (file)
                                                         <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
                                        };
 
+                                       pgc_hdmimix: power-domain@14 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_HDMIMIX>;
+                                               clocks = <&clk IMX8MP_CLK_HDMI_ROOT>,
+                                                        <&clk IMX8MP_CLK_HDMI_APB>;
+                                               assigned-clocks = <&clk IMX8MP_CLK_HDMI_AXI>,
+                                                                 <&clk IMX8MP_CLK_HDMI_APB>;
+                                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>,
+                                                                        <&clk IMX8MP_SYS_PLL1_133M>;
+                                               assigned-clock-rates = <500000000>, <133000000>;
+                                       };
+
+                                       pgc_hdmi_phy: power-domain@15 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_HDMI_PHY>;
+                                       };
+
                                        pgc_mipi_phy2: power-domain@16 {
                                                #power-domain-cells = <0>;
                                                reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY2>;
                                        status = "disabled";
                                };
 
+                               aud2htx: aud2htx@30cb0000 {
+                                       compatible = "fsl,imx8mp-aud2htx";
+                                       reg = <0x30cb0000 0x10000>;
+                                       interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
+                                       clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_AUD2HTX_IPG>;
+                                       clock-names = "bus";
+                                       dmas = <&sdma2 26 2 0>;
+                                       dma-names = "tx";
+                                       status = "disabled";
+                               };
                        };
 
                        sdma3: dma-controller@30e00000 {
                                compatible = "fsl,imx8mp-mipi-csi2", "fsl,imx8mm-mipi-csi2";
                                reg = <0x32e40000 0x10000>;
                                interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
-                               clock-frequency = <500000000>;
+                               clock-frequency = <266000000>;
                                clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
                                         <&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>,
                                         <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>,
                                                  <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF>;
                                assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>,
                                                         <&clk IMX8MP_CLK_24M>;
-                               assigned-clock-rates = <500000000>;
+                               assigned-clock-rates = <266000000>;
                                power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_MIPI_CSI2_1>;
                                status = "disabled";
 
                                                        remote-endpoint = <&lcdif1_to_dsim>;
                                                };
                                        };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mipi_dsi_out: endpoint {
+                                               };
+                                       };
                                };
                        };
 
                                #power-domain-cells = <1>;
                                #clock-cells = <0>;
                        };
+
+                       hdmi_blk_ctrl: blk-ctrl@32fc0000 {
+                               compatible = "fsl,imx8mp-hdmi-blk-ctrl", "syscon";
+                               reg = <0x32fc0000 0x1000>;
+                               clocks = <&clk IMX8MP_CLK_HDMI_APB>,
+                                        <&clk IMX8MP_CLK_HDMI_ROOT>,
+                                        <&clk IMX8MP_CLK_HDMI_REF_266M>,
+                                        <&clk IMX8MP_CLK_HDMI_24M>,
+                                        <&clk IMX8MP_CLK_HDMI_FDCC_TST>;
+                               clock-names = "apb", "axi", "ref_266m", "ref_24m", "fdcc";
+                               power-domains = <&pgc_hdmimix>, <&pgc_hdmimix>,
+                                               <&pgc_hdmimix>, <&pgc_hdmimix>,
+                                               <&pgc_hdmimix>, <&pgc_hdmimix>,
+                                               <&pgc_hdmimix>, <&pgc_hdmi_phy>,
+                                               <&pgc_hdmimix>, <&pgc_hdmimix>;
+                               power-domain-names = "bus", "irqsteer", "lcdif",
+                                                    "pai", "pvi", "trng",
+                                                    "hdmi-tx", "hdmi-tx-phy",
+                                                    "hdcp", "hrv";
+                               #power-domain-cells = <1>;
+                       };
+
+                       irqsteer_hdmi: interrupt-controller@32fc2000 {
+                               compatible = "fsl,imx-irqsteer";
+                               reg = <0x32fc2000 0x1000>;
+                               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+                               fsl,channel = <1>;
+                               fsl,num-irqs = <64>;
+                               clocks = <&clk IMX8MP_CLK_HDMI_APB>;
+                               clock-names = "ipg";
+                               power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_IRQSTEER>;
+                       };
+
+                       hdmi_pvi: display-bridge@32fc4000 {
+                               compatible = "fsl,imx8mp-hdmi-pvi";
+                               reg = <0x32fc4000 0x1000>;
+                               interrupt-parent = <&irqsteer_hdmi>;
+                               interrupts = <12>;
+                               power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_PVI>;
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               pvi_from_lcdif3: endpoint {
+                                                       remote-endpoint = <&lcdif3_to_pvi>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               pvi_to_hdmi_tx: endpoint {
+                                                       remote-endpoint = <&hdmi_tx_from_pvi>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       lcdif3: display-controller@32fc6000 {
+                               compatible = "fsl,imx8mp-lcdif";
+                               reg = <0x32fc6000 0x1000>;
+                               interrupt-parent = <&irqsteer_hdmi>;
+                               interrupts = <8>;
+                               clocks = <&hdmi_tx_phy>,
+                                        <&clk IMX8MP_CLK_HDMI_APB>,
+                                        <&clk IMX8MP_CLK_HDMI_ROOT>;
+                               clock-names = "pix", "axi", "disp_axi";
+                               power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_LCDIF>;
+                               status = "disabled";
+
+                               port {
+                                       lcdif3_to_pvi: endpoint {
+                                               remote-endpoint = <&pvi_from_lcdif3>;
+                                       };
+                               };
+                       };
+
+                       hdmi_tx: hdmi@32fd8000 {
+                               compatible = "fsl,imx8mp-hdmi-tx";
+                               reg = <0x32fd8000 0x7eff>;
+                               interrupt-parent = <&irqsteer_hdmi>;
+                               interrupts = <0>;
+                               clocks = <&clk IMX8MP_CLK_HDMI_APB>,
+                                        <&clk IMX8MP_CLK_HDMI_REF_266M>,
+                                        <&clk IMX8MP_CLK_32K>,
+                                        <&hdmi_tx_phy>;
+                               clock-names = "iahb", "isfr", "cec", "pix";
+                               assigned-clocks = <&clk IMX8MP_CLK_HDMI_REF_266M>;
+                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>;
+                               power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_HDMI_TX>;
+                               reg-io-width = <1>;
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               hdmi_tx_from_pvi: endpoint {
+                                                       remote-endpoint = <&pvi_to_hdmi_tx>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               /* Point endpoint to the HDMI connector */
+                                       };
+                               };
+                       };
+
+                       hdmi_tx_phy: phy@32fdff00 {
+                               compatible = "fsl,imx8mp-hdmi-phy";
+                               reg = <0x32fdff00 0x100>;
+                               clocks = <&clk IMX8MP_CLK_HDMI_APB>,
+                                        <&clk IMX8MP_CLK_HDMI_24M>;
+                               clock-names = "apb", "ref";
+                               assigned-clocks = <&clk IMX8MP_CLK_HDMI_24M>;
+                               assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
+                               power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_HDMI_TX_PHY>;
+                               #clock-cells = <0>;
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
                };
 
                pcie: pcie@33800000 {
index 366693f31992ef00ef5cdbbc0af9ec8d3eef4a47..e92b5d5a66b59eb2ed404e883cec9ec915a39bfd 100644 (file)
@@ -42,7 +42,7 @@
        status = "okay";
 
        typec_ptn5100: usb-typec@50 {
-               compatible = "nxp,ptn5110";
+               compatible = "nxp,ptn5110", "tcpci";
                reg = <0x50>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec>;
index 8055a2c23035498f6a855a654e9379d60f95b3bd..b268ba7a0e12a3f8dd6090412dc337529bd51a81 100644 (file)
        };
 
        typec_ptn5100: usb-typec@52 {
-               compatible = "nxp,ptn5110";
+               compatible = "nxp,ptn5110", "tcpci";
                reg = <0x52>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec>;
index c6dc3ba0d43b23f88af1656a28f1b3f1ccab0b98..e03186bbc415248a1e23c5fe83638c04bfcb9932 100644 (file)
                                                        remote-endpoint = <&lcdif_mipi_dsi>;
                                                };
                                        };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mipi_dsi_out: endpoint {
+                                               };
+                                       };
                                };
                        };
 
index 77ac0efdfaadaec7b5edc1c83bbe8393e67ef6dc..6e05361c1ffb23768909f383f583190283390abc 100644 (file)
                regulator-name = "SD1_SPWR";
                regulator-min-microvolt = <3000000>;
                regulator-max-microvolt = <3000000>;
-               gpio = <&lsio_gpio4 19 GPIO_ACTIVE_HIGH>;
+               gpio = <&lsio_gpio4 7 GPIO_ACTIVE_HIGH>;
                enable-active-high;
        };
+
+       reg_vref_1v8: regulator-adc-vref {
+               compatible = "regulator-fixed";
+               regulator-name = "vref_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+};
+
+&adc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc0>;
+       vref-supply = <&reg_vref_1v8>;
+       status = "okay";
 };
 
 &i2c1 {
        status = "okay";
 };
 
+&lpspi2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpspi2 &pinctrl_lpspi2_cs>;
+       cs-gpios = <&lsio_gpio3 10 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       spidev0: spi@0 {
+               reg = <0>;
+               compatible = "rohm,dh2228fv";
+               spi-max-frequency = <30000000>;
+       };
+};
+
+&flexspi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexspi0>;
+       status = "okay";
+
+       flash0: flash@0 {
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "jedec,spi-nor";
+               spi-max-frequency = <133000000>;
+               spi-tx-bus-width = <8>;
+               spi-rx-bus-width = <8>;
+       };
+};
+
 &fec1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_fec1>;
                >;
        };
 
+       pinctrl_adc0: adc0grp {
+               fsl,pins = <
+                       IMX8QM_ADC_IN0_DMA_ADC0_IN0                             0xc0000060
+               >;
+       };
+
        pinctrl_fec1: fec1grp {
                fsl,pins = <
                        IMX8QM_ENET0_MDC_CONN_ENET0_MDC                         0x06000020
                >;
        };
 
+       pinctrl_lpspi2: lpspi2grp {
+               fsl,pins = <
+                       IMX8QM_SPI2_SCK_DMA_SPI2_SCK            0x06000040
+                       IMX8QM_SPI2_SDO_DMA_SPI2_SDO            0x06000040
+                       IMX8QM_SPI2_SDI_DMA_SPI2_SDI            0x06000040
+               >;
+       };
+
+       pinctrl_lpspi2_cs: lpspi2csgrp {
+               fsl,pins = <
+                       IMX8QM_SPI2_CS0_LSIO_GPIO3_IO10         0x21
+               >;
+       };
+
+       pinctrl_flexspi0: flexspi0grp {
+               fsl,pins = <
+                       IMX8QM_QSPI0A_DATA0_LSIO_QSPI0A_DATA0     0x06000021
+                       IMX8QM_QSPI0A_DATA1_LSIO_QSPI0A_DATA1     0x06000021
+                       IMX8QM_QSPI0A_DATA2_LSIO_QSPI0A_DATA2     0x06000021
+                       IMX8QM_QSPI0A_DATA3_LSIO_QSPI0A_DATA3     0x06000021
+                       IMX8QM_QSPI0A_DQS_LSIO_QSPI0A_DQS         0x06000021
+                       IMX8QM_QSPI0A_SS0_B_LSIO_QSPI0A_SS0_B     0x06000021
+                       IMX8QM_QSPI0A_SS1_B_LSIO_QSPI0A_SS1_B     0x06000021
+                       IMX8QM_QSPI0A_SCLK_LSIO_QSPI0A_SCLK       0x06000021
+                       IMX8QM_QSPI0B_SCLK_LSIO_QSPI0B_SCLK       0x06000021
+                       IMX8QM_QSPI0B_DATA0_LSIO_QSPI0B_DATA0     0x06000021
+                       IMX8QM_QSPI0B_DATA1_LSIO_QSPI0B_DATA1     0x06000021
+                       IMX8QM_QSPI0B_DATA2_LSIO_QSPI0B_DATA2     0x06000021
+                       IMX8QM_QSPI0B_DATA3_LSIO_QSPI0B_DATA3     0x06000021
+                       IMX8QM_QSPI0B_DQS_LSIO_QSPI0B_DQS         0x06000021
+                       IMX8QM_QSPI0B_SS0_B_LSIO_QSPI0B_SS0_B     0x06000021
+                       IMX8QM_QSPI0B_SS1_B_LSIO_QSPI0B_SS1_B     0x06000021
+               >;
+       };
+
        pinctrl_lpuart0: lpuart0grp {
                fsl,pins = <
                        IMX8QM_UART0_RX_DMA_UART0_RX                            0x06000020
index 8360bb851ac03f4a2f55e727ba7b2ec39a9e9828..cee13e58762cb532cb715fc426bae75332893b69 100644 (file)
                        };
                };
        };
+
+       sound-wm8960 {
+               compatible = "fsl,imx-audio-wm8960";
+               model = "wm8960-audio";
+               audio-cpu = <&sai1>;
+               audio-codec = <&wm8960>;
+               hp-det-gpio = <&lsio_gpio1 0 GPIO_ACTIVE_HIGH>;
+               audio-routing = "Headphone Jack", "HP_L",
+                               "Headphone Jack", "HP_R",
+                               "Ext Spk", "SPK_LP",
+                               "Ext Spk", "SPK_LN",
+                               "Ext Spk", "SPK_RP",
+                               "Ext Spk", "SPK_RN",
+                               "LINPUT1", "Mic Jack",
+                               "Mic Jack", "MICB";
+       };
 };
 
 &dsp {
        };
 
        ptn5110: tcpc@50 {
-               compatible = "nxp,ptn5110";
+               compatible = "nxp,ptn5110", "tcpci";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec>;
                reg = <0x50>;
 
 };
 
+&cm40_i2c {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_cm40_i2c>;
+       pinctrl-1 = <&pinctrl_cm40_i2c_gpio>;
+       scl-gpios = <&lsio_gpio1 10 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&lsio_gpio1 9 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       wm8960: audio-codec@1a {
+               compatible = "wlf,wm8960";
+               reg = <0x1a>;
+               clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "mclk";
+               assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                                 <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+               assigned-clock-rates = <786432000>,
+                                      <49152000>,
+                                      <12288000>,
+                                      <12288000>;
+               wlf,shared-lrclk;
+               wlf,hp-cfg = <2 2 3>;
+               wlf,gpio-cfg = <1 3>;
+       };
+
+       pca6416: gpio@20 {
+               compatible = "ti,tca6416";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+};
+
+&cm40_intmux {
+       status = "okay";
+};
+
 &lpuart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lpuart0>;
        status = "okay";
 };
 
+&sai0 {
+       #sound-dai-cells = <0>;
+       assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai0_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai0>;
+       status = "okay";
+};
+
+&sai1 {
+       assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai1_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       status = "okay";
+};
+
+&sai4 {
+       assigned-clocks = <&acm IMX_ADMA_ACM_SAI4_MCLK_SEL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai4_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-parents = <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <0>, <786432000>, <98304000>, <12288000>, <98304000>;
+       fsl,sai-asynchronous;
+       status = "okay";
+};
+
+&sai5 {
+       assigned-clocks = <&acm IMX_ADMA_ACM_SAI5_MCLK_SEL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai5_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-parents = <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <0>, <786432000>, <98304000>, <12288000>, <98304000>;
+       fsl,sai-asynchronous;
+       status = "okay";
+};
+
 &thermal_zones {
        pmic-thermal {
                polling-delay-passive = <250>;
 };
 
 &iomuxc {
+
+       pinctrl_cm40_i2c: cm40i2cgrp {
+               fsl,pins = <
+                       IMX8QXP_ADC_IN1_M40_I2C0_SDA                            0x0600004c
+                       IMX8QXP_ADC_IN0_M40_I2C0_SCL                            0x0600004c
+               >;
+       };
+
+       pinctrl_cm40_i2c_gpio: cm40i2cgpio-grp {
+               fsl,pins = <
+                       IMX8QXP_ADC_IN1_LSIO_GPIO1_IO09                         0xc600004c
+                       IMX8QXP_ADC_IN0_LSIO_GPIO1_IO10                         0xc600004c
+               >;
+       };
+
        pinctrl_fec1: fec1grp {
                fsl,pins = <
                        IMX8QXP_ENET0_MDC_CONN_ENET0_MDC                        0x06000020
                >;
        };
 
+       pinctrl_sai0: sai0grp {
+               fsl,pins = <
+                       IMX8QXP_SAI0_TXD_ADMA_SAI0_TXD          0x06000060
+                       IMX8QXP_SAI0_RXD_ADMA_SAI0_RXD          0x06000040
+                       IMX8QXP_SAI0_TXC_ADMA_SAI0_TXC          0x06000040
+                       IMX8QXP_SAI0_TXFS_ADMA_SAI0_TXFS        0x06000040
+               >;
+       };
+
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       IMX8QXP_SAI1_RXD_ADMA_SAI1_RXD     0x06000040
+                       IMX8QXP_SAI1_RXC_ADMA_SAI1_TXC     0x06000040
+                       IMX8QXP_SAI1_RXFS_ADMA_SAI1_TXFS   0x06000040
+                       IMX8QXP_SPI0_CS1_ADMA_SAI1_TXD     0x06000060
+                       IMX8QXP_SPI2_CS0_LSIO_GPIO1_IO00   0x06000040
+               >;
+       };
+
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
                        IMX8QXP_EMMC0_CLK_CONN_EMMC0_CLK                        0x06000041
index 10e16d84c0c3b7caa9a3c43d0483a3459cca4a44..0313f295de2e9310fe6f1d5fc4ccaed108da2f3a 100644 (file)
        /* sorted in register address */
        #include "imx8-ss-img.dtsi"
        #include "imx8-ss-vpu.dtsi"
+       #include "imx8-ss-cm40.dtsi"
        #include "imx8-ss-gpu0.dtsi"
        #include "imx8-ss-adma.dtsi"
        #include "imx8-ss-conn.dtsi"
index 24bb253b938de54d658cba31918a468e8a5ee155..e937e5f8fa8b280ba58e1280b05051809ac3e99b 100644 (file)
        pinctrl-1 = <&pinctrl_lpi2c7>;
        status = "okay";
 
+       ptn5150_1: typec@1d {
+               compatible = "nxp,ptn5150";
+               reg = <0x1d>;
+               int-gpios = <&gpiof 3 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec1>;
+               status = "disabled";
+       };
+
        pcal6408: gpio@21 {
                compatible = "nxp,pcal9554b";
                reg = <0x21>;
                gpio-controller;
                #gpio-cells = <2>;
        };
+
+       ptn5150_2: typec@3d {
+               compatible = "nxp,ptn5150";
+               reg = <0x3d>;
+               int-gpios = <&gpiof 5 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec2>;
+               status = "disabled";
+       };
+};
+
+&usbotg1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb1>;
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       over-current-active-low;
+       status = "okay";
+};
+
+&usbphy1 {
+       fsl,tx-d-cal = <110>;
+       status = "okay";
+};
+
+&usbmisc1 {
+       status = "okay";
+};
+
+&usbotg2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb2>;
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       over-current-active-low;
+       status = "okay";
+};
+
+&usbphy2 {
+       fsl,tx-d-cal = <110>;
+       status = "okay";
+};
+
+&usbmisc2 {
+       status = "okay";
 };
 
 &usdhc0 {
                >;
        };
 
+       pinctrl_typec1: typec1grp {
+               fsl,pins = <
+                       MX8ULP_PAD_PTF3__PTF3           0x3
+               >;
+       };
+
+       pinctrl_typec2: typec2grp {
+               fsl,pins = <
+                       MX8ULP_PAD_PTF5__PTF5           0x3
+               >;
+       };
+
+       pinctrl_usb1: usb1grp {
+               fsl,pins = <
+                       MX8ULP_PAD_PTF2__USB0_ID        0x10003
+                       MX8ULP_PAD_PTF4__USB0_OC        0x10003
+               >;
+       };
+
+       pinctrl_usb2: usb2grp {
+               fsl,pins = <
+                       MX8ULP_PAD_PTD23__USB1_ID       0x10003
+                       MX8ULP_PAD_PTF6__USB1_OC        0x10003
+               >;
+       };
+
        pinctrl_usdhc0: usdhc0grp {
                fsl,pins = <
                        MX8ULP_PAD_PTD1__SDHC0_CMD      0x3
index c4a0082f30d3164456e1a1bc8856cb6a378709e0..e32d5afcf4a96218ad5fabeb20447a5b09beec1d 100644 (file)
                                #reset-cells = <1>;
                        };
 
+                       crypto: crypto@292e0000 {
+                               compatible = "fsl,sec-v4.0";
+                               reg = <0x292e0000 0x10000>;
+                               ranges = <0 0x292e0000 0x10000>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               sec_jr0: jr@1000 {
+                                       compatible = "fsl,sec-v4.0-job-ring";
+                                       reg = <0x1000 0x1000>;
+                                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+
+                               sec_jr1: jr@2000 {
+                                       compatible = "fsl,sec-v4.0-job-ring";
+                                       reg = <0x2000 0x1000>;
+                                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+
+                               sec_jr2: jr@3000 {
+                                       compatible = "fsl,sec-v4.0-job-ring";
+                                       reg = <0x3000 0x1000>;
+                                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+
+                               sec_jr3: jr@4000 {
+                                       compatible = "fsl,sec-v4.0-job-ring";
+                                       reg = <0x4000 0x1000>;
+                                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+                       };
+
                        tpm5: tpm@29340000 {
                                compatible = "fsl,imx8ulp-tpm", "fsl,imx7ulp-tpm";
                                reg = <0x29340000 0x1000>;
                                status = "disabled";
                        };
 
+                       usbotg1: usb@29900000 {
+                               compatible = "fsl,imx8ulp-usb", "fsl,imx7ulp-usb", "fsl,imx6ul-usb";
+                               reg = <0x29900000 0x200>;
+                               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc4 IMX8ULP_CLK_USB0>;
+                               power-domains = <&scmi_devpd IMX8ULP_PD_USB0>;
+                               phys = <&usbphy1>;
+                               fsl,usbmisc = <&usbmisc1 0>;
+                               ahb-burst-config = <0x0>;
+                               tx-burst-size-dword = <0x8>;
+                               rx-burst-size-dword = <0x8>;
+                               status = "disabled";
+                       };
+
+                       usbmisc1: usbmisc@29900200 {
+                               compatible = "fsl,imx8ulp-usbmisc", "fsl,imx7d-usbmisc",
+                                            "fsl,imx6q-usbmisc";
+                               reg = <0x29900200 0x200>;
+                               #index-cells = <1>;
+                               status = "disabled";
+                       };
+
+                       usbphy1: usb-phy@29910000 {
+                               compatible = "fsl,imx8ulp-usbphy", "fsl,imx7ulp-usbphy";
+                               reg = <0x29910000 0x10000>;
+                               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc4 IMX8ULP_CLK_USB0_PHY>;
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       usbotg2: usb@29920000 {
+                               compatible = "fsl,imx8ulp-usb", "fsl,imx7ulp-usb", "fsl,imx6ul-usb";
+                               reg = <0x29920000 0x200>;
+                               interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc4 IMX8ULP_CLK_USB1>;
+                               power-domains = <&scmi_devpd IMX8ULP_PD_USDHC2_USB1>;
+                               phys = <&usbphy2>;
+                               fsl,usbmisc = <&usbmisc2 0>;
+                               ahb-burst-config = <0x0>;
+                               tx-burst-size-dword = <0x8>;
+                               rx-burst-size-dword = <0x8>;
+                               status = "disabled";
+                       };
+
+                       usbmisc2: usbmisc@29920200 {
+                               compatible = "fsl,imx8ulp-usbmisc", "fsl,imx7d-usbmisc",
+                                            "fsl,imx6q-usbmisc";
+                               reg = <0x29920200 0x200>;
+                               #index-cells = <1>;
+                               status = "disabled";
+                       };
+
+                       usbphy2: usb-phy@29930000 {
+                               compatible = "fsl,imx8ulp-usbphy", "fsl,imx7ulp-usbphy";
+                               reg = <0x29930000 0x10000>;
+                               interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc4 IMX8ULP_CLK_USB1_PHY>;
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+
                        fec: ethernet@29950000 {
                                compatible = "fsl,imx8ulp-fec", "fsl,imx6ul-fec", "fsl,imx6q-fec";
                                reg = <0x29950000 0x10000>;
index 9921ea13ab4892eda6c9e046126af76debd5bb82..bd98eff4d685f1e7709654bafe736f290e5cfd59 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/usb/pd.h>
 #include "imx93.dtsi"
 
 / {
@@ -38,7 +39,7 @@
                        no-map;
                };
 
-               vdev1vring0: vdev1vring0@a4000000 {
+               vdev1vring0: vdev1vring0@a4010000 {
                        reg = <0 0xa4010000 0 0x8000>;
                        no-map;
                };
@@ -48,8 +49,8 @@
                        no-map;
                };
 
-               rsc_table: rsc-table@2021f000 {
-                       reg = <0 0x2021f000 0 0x1000>;
+               rsc_table: rsc-table@2021e000 {
+                       reg = <0 0x2021e000 0 0x1000>;
                        no-map;
                };
 
        status = "okay";
 };
 
-&eqos {
+&lpi2c3 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <400000>;
        pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c3>;
+       status = "okay";
+
+       ptn5110: tcpc@50 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x50>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+
+               typec1_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       data-role = "dual";
+                       try-power-role = "sink";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                    PDO_VAR(5000, 20000, 3000)>;
+                       op-sink-microwatt = <15000000>;
+                       self-powered;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec1_dr_sw: endpoint {
+                                               remote-endpoint = <&usb1_drd_sw>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       ptn5110_2: tcpc@51 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x51>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+
+               typec2_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       data-role = "dual";
+                       try-power-role = "sink";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                    PDO_VAR(5000, 20000, 3000)>;
+                       op-sink-microwatt = <15000000>;
+                       self-powered;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec2_dr_sw: endpoint {
+                                               remote-endpoint = <&usb2_drd_sw>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&eqos {
+       pinctrl-names = "default", "sleep";
        pinctrl-0 = <&pinctrl_eqos>;
+       pinctrl-1 = <&pinctrl_eqos_sleep>;
        phy-mode = "rgmii-id";
        phy-handle = <&ethphy1>;
        status = "okay";
                ethphy1: ethernet-phy@1 {
                        reg = <1>;
                        eee-broken-1000t;
+                       reset-gpios = <&pcal6524 15 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <80000>;
                };
        };
 };
 
 &fec {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "sleep";
        pinctrl-0 = <&pinctrl_fec>;
+       pinctrl-1 = <&pinctrl_fec_sleep>;
        phy-mode = "rgmii-id";
        phy-handle = <&ethphy2>;
        fsl,magic-packet;
                ethphy2: ethernet-phy@2 {
                        reg = <2>;
                        eee-broken-1000t;
+                       reset-gpios = <&pcal6524 16 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <80000>;
                };
        };
 };
        status = "okay";
 };
 
+&usbotg1 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       port {
+               usb1_drd_sw: endpoint {
+                       remote-endpoint = <&typec1_dr_sw>;
+               };
+       };
+};
+
+&usbotg2 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       port {
+               usb2_drd_sw: endpoint {
+                       remote-endpoint = <&typec2_dr_sw>;
+               };
+       };
+};
+
 &usdhc1 {
        pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc1>;
-       pinctrl-1 = <&pinctrl_usdhc1>;
-       pinctrl-2 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
        bus-width = <8>;
        non-removable;
        status = "okay";
 };
 
 &usdhc2 {
-       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
        pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
-       pinctrl-1 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
-       pinctrl-2 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_gpio_sleep>;
        cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
        vmmc-supply = <&reg_usdhc2_vmmc>;
        bus-width = <4>;
        status = "okay";
-       no-sdio;
        no-mmc;
 };
 
        status = "okay";
 };
 
+&lpi2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <400000>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_lpi2c2>;
+       pinctrl-1 = <&pinctrl_lpi2c2>;
+       status = "okay";
+
+       pcal6524: gpio@22 {
+               compatible = "nxp,pcal6524";
+               reg = <0x22>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pcal6524>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pmic@25 {
+               compatible = "nxp,pca9451a";
+               reg = <0x25>;
+               interrupt-parent = <&pcal6524>;
+               interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+
+               regulators {
+                       buck1: BUCK1 {
+                               regulator-name = "BUCK1";
+                               regulator-min-microvolt = <610000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck2: BUCK2 {
+                               regulator-name = "BUCK2";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <670000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck4: BUCK4{
+                               regulator-name = "BUCK4";
+                               regulator-min-microvolt = <1620000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck5: BUCK5{
+                               regulator-name = "BUCK5";
+                               regulator-min-microvolt = <1620000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck6: BUCK6 {
+                               regulator-name = "BUCK6";
+                               regulator-min-microvolt = <1060000>;
+                               regulator-max-microvolt = <1140000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo1: LDO1 {
+                               regulator-name = "LDO1";
+                               regulator-min-microvolt = <1620000>;
+                               regulator-max-microvolt = <1980000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo4: LDO4 {
+                               regulator-name = "LDO4";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <840000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo5: LDO5 {
+                               regulator-name = "LDO5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&lpi2c3 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c3>;
+       status = "okay";
+
+       pcf2131: rtc@53 {
+               compatible = "nxp,pcf2131";
+               reg = <0x53>;
+               interrupt-parent = <&pcal6524>;
+               interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+       };
+};
+
 &iomuxc {
        pinctrl_eqos: eqosgrp {
                fsl,pins = <
                >;
        };
 
+       pinctrl_eqos_sleep: eqossleepgrp {
+               fsl,pins = <
+                       MX93_PAD_ENET1_MDC__GPIO4_IO00                          0x31e
+                       MX93_PAD_ENET1_MDIO__GPIO4_IO01                         0x31e
+                       MX93_PAD_ENET1_RD0__GPIO4_IO10                          0x31e
+                       MX93_PAD_ENET1_RD1__GPIO4_IO11                          0x31e
+                       MX93_PAD_ENET1_RD2__GPIO4_IO12                          0x31e
+                       MX93_PAD_ENET1_RD3__GPIO4_IO13                          0x31e
+                       MX93_PAD_ENET1_RXC__GPIO4_IO09                          0x31e
+                       MX93_PAD_ENET1_RX_CTL__GPIO4_IO08                       0x31e
+                       MX93_PAD_ENET1_TD0__GPIO4_IO05                          0x31e
+                       MX93_PAD_ENET1_TD1__GPIO4_IO04                          0x31e
+                       MX93_PAD_ENET1_TD2__GPIO4_IO03                          0x31e
+                       MX93_PAD_ENET1_TD3__GPIO4_IO02                          0x31e
+                       MX93_PAD_ENET1_TXC__GPIO4_IO07                          0x31e
+                       MX93_PAD_ENET1_TX_CTL__GPIO4_IO06                       0x31e
+               >;
+       };
+
        pinctrl_fec: fecgrp {
                fsl,pins = <
                        MX93_PAD_ENET2_MDC__ENET1_MDC                   0x57e
                >;
        };
 
+       pinctrl_lpi2c3: lpi2c3grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO28__LPI2C3_SDA                  0x40000b9e
+                       MX93_PAD_GPIO_IO29__LPI2C3_SCL                  0x40000b9e
+               >;
+       };
+
+       pinctrl_fec_sleep: fecsleepgrp {
+               fsl,pins = <
+                       MX93_PAD_ENET2_MDC__GPIO4_IO14                  0x51e
+                       MX93_PAD_ENET2_MDIO__GPIO4_IO15                 0x51e
+                       MX93_PAD_ENET2_RD0__GPIO4_IO24                  0x51e
+                       MX93_PAD_ENET2_RD1__GPIO4_IO25                  0x51e
+                       MX93_PAD_ENET2_RD2__GPIO4_IO26                  0x51e
+                       MX93_PAD_ENET2_RD3__GPIO4_IO27                  0x51e
+                       MX93_PAD_ENET2_RXC__GPIO4_IO23                  0x51e
+                       MX93_PAD_ENET2_RX_CTL__GPIO4_IO22               0x51e
+                       MX93_PAD_ENET2_TD0__GPIO4_IO19                  0x51e
+                       MX93_PAD_ENET2_TD1__GPIO4_IO18                  0x51e
+                       MX93_PAD_ENET2_TD2__GPIO4_IO17                  0x51e
+                       MX93_PAD_ENET2_TD3__GPIO4_IO16                  0x51e
+                       MX93_PAD_ENET2_TXC__GPIO4_IO21                  0x51e
+                       MX93_PAD_ENET2_TX_CTL__GPIO4_IO20               0x51e
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        MX93_PAD_UART1_RXD__LPUART1_RX                  0x31e
                >;
        };
 
+       pinctrl_lpi2c2: lpi2c2grp {
+               fsl,pins = <
+                       MX93_PAD_I2C2_SCL__LPI2C2_SCL                   0x40000b9e
+                       MX93_PAD_I2C2_SDA__LPI2C2_SDA                   0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c3: lpi2c3grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO28__LPI2C3_SDA                  0x40000b9e
+                       MX93_PAD_GPIO_IO29__LPI2C3_SCL                  0x40000b9e
+               >;
+       };
+
+       pinctrl_pcal6524: pcal6524grp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO2__GPIO3_IO27                  0x31e
+               >;
+       };
+
        /* need to config the SION for data and cmd pad, refer to ERR052021 */
        pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x1582
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x40001382
+                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x40001382
+                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x40001382
+                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x40001382
+                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x40001382
+                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x40001382
+                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x40001382
+                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x40001382
+                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x40001382
+                       MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x1582
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x158e
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x4000138e
+                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x4000138e
+                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x4000138e
+                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x4000138e
+                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x4000138e
+                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x4000138e
+                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x4000138e
+                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x4000138e
+                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x4000138e
+                       MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x158e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
                fsl,pins = <
                        MX93_PAD_SD1_CLK__USDHC1_CLK            0x15fe
                        MX93_PAD_SD1_CMD__USDHC1_CMD            0x400013fe
                >;
        };
 
+       pinctrl_usdhc2_gpio_sleep: usdhc2gpiosleepgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CD_B__GPIO3_IO00           0x51e
+               >;
+       };
+
        /* need to config the SION for data and cmd pad, refer to ERR052021 */
        pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x1582
+                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x40001382
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x40001382
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x40001382
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x40001382
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x40001382
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x51e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x158e
+                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x4000138e
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x4000138e
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x4000138e
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x4000138e
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x4000138e
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x51e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
                fsl,pins = <
                        MX93_PAD_SD2_CLK__USDHC2_CLK            0x15fe
                        MX93_PAD_SD2_CMD__USDHC2_CMD            0x400013fe
                        MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x51e
                >;
        };
+
+       pinctrl_usdhc2_sleep: usdhc2sleepgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__GPIO3_IO01            0x51e
+                       MX93_PAD_SD2_CMD__GPIO3_IO02            0x51e
+                       MX93_PAD_SD2_DATA0__GPIO3_IO03          0x51e
+                       MX93_PAD_SD2_DATA1__GPIO3_IO04          0x51e
+                       MX93_PAD_SD2_DATA2__GPIO3_IO05          0x51e
+                       MX93_PAD_SD2_DATA3__GPIO3_IO06          0x51e
+                       MX93_PAD_SD2_VSELECT__GPIO3_IO19        0x51e
+               >;
+       };
+
 };
index 601c94e1fac8ea222e1f59a48a1b1b6318eecfa4..4a3f42355cb8fcfcb75e60c5170495b858c25d24 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include <dt-bindings/clock/imx93-clock.h>
+#include <dt-bindings/dma/fsl-edma.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
                status = "disabled";
        };
 
+       usbphynop1: usbphynop1 {
+               compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
+               clocks = <&clk IMX93_CLK_USB_PHY_BURUNIN>;
+               clock-names = "main_clk";
+       };
+
+       usbphynop2: usbphynop2 {
+               compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
+               clocks = <&clk IMX93_CLK_USB_PHY_BURUNIN>;
+               clock-names = "main_clk";
+       };
+
        soc@0 {
                compatible = "simple-bus";
                #address-cells = <1>;
                                clocks = <&clk IMX93_CLK_LPI2C1_GATE>,
                                         <&clk IMX93_CLK_BUS_AON>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma1 7 0 0>, <&edma1 8 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPI2C2_GATE>,
                                         <&clk IMX93_CLK_BUS_AON>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma1 9 0 0>, <&edma1 10 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI1_GATE>,
                                         <&clk IMX93_CLK_BUS_AON>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma1 11 0 0>, <&edma1 12 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI2_GATE>,
                                         <&clk IMX93_CLK_BUS_AON>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma1 13 0 0>, <&edma1 14 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART1_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma1 17 0 1>, <&edma1 16 0 0>;
+                               dmas = <&edma1 17 0 FSL_EDMA_RX>, <&edma1 16 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART2_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma1 19 0 1>, <&edma1 18 0 0>;
+                               dmas = <&edma1 19 0 FSL_EDMA_RX>, <&edma1 18 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                         <&clk IMX93_CLK_SAI1_GATE>, <&clk IMX93_CLK_DUMMY>,
                                         <&clk IMX93_CLK_DUMMY>;
                                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
-                               dmas = <&edma1 22 0 1>, <&edma1 21 0 0>;
+                               dmas = <&edma1 22 0 FSL_EDMA_RX>, <&edma1 21 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                reg = <0x44530000 0x10000>;
                                interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
+                                            <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_ADC1_GATE>;
                                clock-names = "ipg";
                                #io-channel-cells = <1>;
                                clocks = <&clk IMX93_CLK_LPI2C3_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 8 0 0>, <&edma2 9 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPI2C4_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 10 0 0>, <&edma2 11 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI3_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 12 0 0>, <&edma2 13 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI4_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 14 0 0>, <&edma2 15 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART3_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma2 18 0 1>, <&edma2 17 0 0>;
+                               dmas = <&edma2 18 0 FSL_EDMA_RX>, <&edma2 17 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART4_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma2 20 0 1>, <&edma2 19 0 0>;
+                               dmas = <&edma2 20 0 FSL_EDMA_RX>, <&edma2 19 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART5_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma2 22 0 1>, <&edma2 21 0 0>;
+                               dmas = <&edma2 22 0 FSL_EDMA_RX>, <&edma2 21 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART6_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma2 24 0 1>, <&edma2 23 0 0>;
+                               dmas = <&edma2 24 0 FSL_EDMA_RX>, <&edma2 23 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                         <&clk IMX93_CLK_SAI2_GATE>, <&clk IMX93_CLK_DUMMY>,
                                         <&clk IMX93_CLK_DUMMY>;
                                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
-                               dmas = <&edma2 59 0 1>, <&edma2 58 0 0>;
+                               dmas = <&edma2 59 0 FSL_EDMA_RX>, <&edma2 58 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                         <&clk IMX93_CLK_SAI3_GATE>, <&clk IMX93_CLK_DUMMY>,
                                         <&clk IMX93_CLK_DUMMY>;
                                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
-                               dmas = <&edma2 61 0 1>, <&edma2 60 0 0>;
+                               dmas = <&edma2 61 0 FSL_EDMA_RX>, <&edma2 60 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                         <&clk IMX93_CLK_DUMMY>,
                                         <&clk IMX93_CLK_AUD_XCVR_GATE>;
                                clock-names = "ipg", "phy", "spba", "pll_ipg";
-                               dmas = <&edma2 65 0 1>, <&edma2 66 0 0>;
+                               dmas = <&edma2 65 0 FSL_EDMA_RX>, <&edma2 66 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART7_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma2 88 0 1>, <&edma2 87 0 0>;
+                               dmas = <&edma2 88 0 FSL_EDMA_RX>, <&edma2 87 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART8_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma2 90 0 1>, <&edma2 89 0 0>;
+                               dmas = <&edma2 90 0 FSL_EDMA_RX>, <&edma2 89 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                clocks = <&clk IMX93_CLK_LPI2C5_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 71 0 0>, <&edma2 72 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPI2C6_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 73 0 0>, <&edma2 74 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPI2C7_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 75 0 0>, <&edma2 76 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPI2C8_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 77 0 0>, <&edma2 78 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI5_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 79 0 0>, <&edma2 80 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI6_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 81 0 0>, <&edma2 82 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI7_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 83 0 0>, <&edma2 84 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI8_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 85 0 0>, <&edma2 86 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                         <&clk IMX93_CLK_WAKEUP_AXI>,
                                         <&clk IMX93_CLK_USDHC1_GATE>;
                                clock-names = "ipg", "ahb", "per";
+                               assigned-clocks = <&clk IMX93_CLK_USDHC1>;
+                               assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1>;
+                               assigned-clock-rates = <400000000>;
                                bus-width = <8>;
                                fsl,tuning-start-tap = <1>;
                                fsl,tuning-step = <2>;
                                         <&clk IMX93_CLK_WAKEUP_AXI>,
                                         <&clk IMX93_CLK_USDHC2_GATE>;
                                clock-names = "ipg", "ahb", "per";
+                               assigned-clocks = <&clk IMX93_CLK_USDHC2>;
+                               assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1>;
+                               assigned-clock-rates = <400000000>;
                                bus-width = <4>;
                                fsl,tuning-start-tap = <1>;
                                fsl,tuning-step = <2>;
                                fsl,num-tx-queues = <3>;
                                fsl,num-rx-queues = <3>;
                                fsl,stop-mode = <&wakeupmix_gpr 0x0c 1>;
+                               nvmem-cells = <&eth_mac1>;
+                               nvmem-cell-names = "mac-address";
                                status = "disabled";
                        };
 
                                assigned-clock-rates = <100000000>, <250000000>;
                                intf_mode = <&wakeupmix_gpr 0x28>;
                                snps,clk-csr = <0>;
+                               nvmem-cells = <&eth_mac2>;
+                               nvmem-cell-names = "mac-address";
                                status = "disabled";
                        };
 
                                         <&clk IMX93_CLK_WAKEUP_AXI>,
                                         <&clk IMX93_CLK_USDHC3_GATE>;
                                clock-names = "ipg", "ahb", "per";
+                               assigned-clocks = <&clk IMX93_CLK_USDHC3>;
+                               assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1>;
+                               assigned-clock-rates = <400000000>;
                                bus-width = <4>;
                                fsl,tuning-start-tap = <1>;
                                fsl,tuning-step = <2>;
                        reg = <0x47510000 0x10000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
+
+                       eth_mac1: mac-address@4ec {
+                               reg = <0x4ec 0x6>;
+                       };
+
+                       eth_mac2: mac-address@4f2 {
+                               reg = <0x4f2 0x6>;
+                       };
+
                };
 
                s4muap: mailbox@47520000 {
                        status = "disabled";
                };
 
+               usbotg1: usb@4c100000 {
+                       compatible = "fsl,imx93-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
+                       reg = <0x4c100000 0x200>;
+                       interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk IMX93_CLK_USB_CONTROLLER_GATE>,
+                                <&clk IMX93_CLK_HSIO_32K_GATE>;
+                       clock-names = "usb_ctrl_root", "usb_wakeup";
+                       assigned-clocks = <&clk IMX93_CLK_HSIO>;
+                       assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
+                       assigned-clock-rates = <133000000>;
+                       phys = <&usbphynop1>;
+                       fsl,usbmisc = <&usbmisc1 0>;
+                       status = "disabled";
+               };
+
+               usbmisc1: usbmisc@4c100200 {
+                       compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc",
+                                    "fsl,imx6q-usbmisc";
+                       reg = <0x4c100200 0x200>;
+                       #index-cells = <1>;
+               };
+
+               usbotg2: usb@4c200000 {
+                       compatible = "fsl,imx93-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
+                       reg = <0x4c200000 0x200>;
+                       interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk IMX93_CLK_USB_CONTROLLER_GATE>,
+                                <&clk IMX93_CLK_HSIO_32K_GATE>;
+                       clock-names = "usb_ctrl_root", "usb_wakeup";
+                       assigned-clocks = <&clk IMX93_CLK_HSIO>;
+                       assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
+                       assigned-clock-rates = <133000000>;
+                       phys = <&usbphynop2>;
+                       fsl,usbmisc = <&usbmisc2 0>;
+                       status = "disabled";
+               };
+
+               usbmisc2: usbmisc@4c200200 {
+                       compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc",
+                                    "fsl,imx6q-usbmisc";
+                       reg = <0x4c200200 0x200>;
+                       #index-cells = <1>;
+               };
+
                ddr-pmu@4e300dc0 {
                        compatible = "fsl,imx93-ddr-pmu";
                        reg = <0x4e300dc0 0x200>;
index 427467df42bfa66ba5ed7eedd11be752d3820b18..815241526a0d3da100c465622c1cf90c02e5398f 100644 (file)
 &mipi_dsi {
        samsung,burst-clock-frequency = <891000000>;
        samsung,esc-clock-frequency = <20000000>;
+};
 
-       ports {
-               port@1 {
-                       reg = <1>;
-
-                       mipi_dsi_out: endpoint {
-                               data-lanes = <1 2 3 4>;
-                               remote-endpoint = <&lvds_bridge_in>;
-                       };
-               };
-       };
+&mipi_dsi_out {
+       data-lanes = <1 2 3 4>;
+       remote-endpoint = <&lvds_bridge_in>;
 };
 
 &pwm3 {
index 5ac1cc9ff50ed140a8e0c13456c05bd8310fef0e..fc19ae2e8d3bc4b2e40bc34bcbe402782f4e77ca 100644 (file)
@@ -3,7 +3,7 @@
  * NXP S32G2 SoC family
  *
  * Copyright (c) 2021 SUSE LLC
- * Copyright (c) 2017-2021 NXP
+ * Copyright 2017-2021, 2024 NXP
  */
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
        #address-cells = <2>;
        #size-cells = <2>;
 
+       reserved-memory  {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               scmi_buf: shm@d0000000 {
+                       compatible = "arm,scmi-shmem";
+                       reg = <0x0 0xd0000000 0x0 0x80>;
+                       no-map;
+               };
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
        };
 
        firmware {
+               scmi {
+                       compatible = "arm,scmi-smc";
+                       arm,smc-id = <0xc20000fe>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       shmem = <&scmi_buf>;
+
+                       clks: protocol@14 {
+                               reg = <0x14>;
+                               #clock-cells = <1>;
+                       };
+               };
+
                psci {
                        compatible = "arm,psci-1.0";
                        method = "smc";
                        status = "disabled";
                };
 
+               usdhc0: mmc@402f0000 {
+                       compatible = "nxp,s32g2-usdhc";
+                       reg = <0x402f0000 0x1000>;
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clks 32>, <&clks 31>, <&clks 33>;
+                       clock-names = "ipg", "ahb", "per";
+                       bus-width = <8>;
+                       status = "disabled";
+               };
+
                gic: interrupt-controller@50800000 {
                        compatible = "arm,gic-v3";
                        reg = <0x50800000 0x10000>,
index 9118d8d2ee019babf2cf45c5c80710f7bba0037a..00070c949e2ab2b97ae310ecf660776a0a824cf9 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
  * Copyright (c) 2021 SUSE LLC
- * Copyright (c) 2019-2021 NXP
+ * Copyright 2019-2021, 2024 NXP
  */
 
 /dts-v1/;
@@ -32,3 +32,7 @@
 &uart0 {
        status = "okay";
 };
+
+&usdhc0 {
+       status = "okay";
+};
index e05ee854cdf5e39854a41ffd8677cdda9b58c7be..b3fc12899cae52971da507f4a71e5fe33116210a 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
  * Copyright (c) 2021 SUSE LLC
- * Copyright (c) 2019-2021 NXP
+ * Copyright 2019-2021, 2024 NXP
  */
 
 /dts-v1/;
@@ -38,3 +38,7 @@
 &uart1 {
        status = "okay";
 };
+
+&usdhc0 {
+       status = "okay";
+};
diff --git a/src/arm64/freescale/s32g3.dtsi b/src/arm64/freescale/s32g3.dtsi
new file mode 100644 (file)
index 0000000..c1b0899
--- /dev/null
@@ -0,0 +1,233 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright 2021-2023 NXP
+ *
+ * Authors: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
+ *          Ciprian Costea <ciprianmarian.costea@nxp.com>
+ *          Andra-Teodora Ilie <andra.ilie@nxp.com>
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       compatible = "nxp,s32g3";
+       interrupt-parent = <&gic>;
+       #address-cells = <0x02>;
+       #size-cells = <0x02>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&cpu0>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu1>;
+                               };
+
+                               core2 {
+                                       cpu = <&cpu2>;
+                               };
+
+                               core3 {
+                                       cpu = <&cpu3>;
+                               };
+                       };
+
+                       cluster1 {
+                               core0 {
+                                       cpu = <&cpu4>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu5>;
+                               };
+
+                               core2 {
+                                       cpu = <&cpu6>;
+                               };
+
+                               core3 {
+                                       cpu = <&cpu7>;
+                               };
+                       };
+               };
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x0>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x1>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x2>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x3>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu4: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x100>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu5: cpu@101 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x101>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu6: cpu@102 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x102>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu7: cpu@103 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x103>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+       };
+
+       firmware {
+               scmi: scmi {
+                       compatible = "arm,scmi-smc";
+                       shmem = <&scmi_shmem>;
+                       arm,smc-id = <0xc20000fe>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       dfs: protocol@13 {
+                               reg = <0x13>;
+                               #clock-cells = <1>;
+                       };
+
+                       clks: protocol@14 {
+                               reg = <0x14>;
+                               #clock-cells = <1>;
+                       };
+               };
+
+               psci: psci {
+                       compatible = "arm,psci-1.0";
+                       method = "smc";
+               };
+       };
+
+
+       pmu {
+               compatible = "arm,cortex-a53-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
+       reserved-memory  {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               scmi_shmem: shm@d0000000 {
+                       compatible = "arm,scmi-shmem";
+                       reg = <0x0 0xd0000000 0x0 0x80>;
+                       no-map;
+               };
+       };
+
+       soc@0 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0 0 0x80000000>;
+
+               uart0: serial@401c8000 {
+                       compatible = "nxp,s32g3-linflexuart",
+                                    "fsl,s32v234-linflexuart";
+                       reg = <0x401c8000 0x3000>;
+                       interrupts = <GIC_SPI 82 IRQ_TYPE_EDGE_RISING>;
+                       status = "disabled";
+               };
+
+               uart1: serial@401cc000 {
+                       compatible = "nxp,s32g3-linflexuart",
+                                    "fsl,s32v234-linflexuart";
+                       reg = <0x401cc000 0x3000>;
+                       interrupts = <GIC_SPI 83 IRQ_TYPE_EDGE_RISING>;
+                       status = "disabled";
+               };
+
+               uart2: serial@402bc000 {
+                       compatible = "nxp,s32g3-linflexuart",
+                                    "fsl,s32v234-linflexuart";
+                       reg = <0x402bc000 0x3000>;
+                       interrupts = <GIC_SPI 84 IRQ_TYPE_EDGE_RISING>;
+                       status = "disabled";
+               };
+
+               usdhc0: mmc@402f0000 {
+                       compatible = "nxp,s32g3-usdhc",
+                                    "nxp,s32g2-usdhc";
+                       reg = <0x402f0000 0x1000>;
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clks 32>,
+                                <&clks 31>,
+                                <&clks 33>;
+                       clock-names = "ipg", "ahb", "per";
+                       status = "disabled";
+               };
+
+               gic: interrupt-controller@50800000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       reg = <0x50800000 0x10000>,
+                             <0x50900000 0x200000>,
+                             <0x50400000 0x2000>,
+                             <0x50410000 0x2000>,
+                             <0x50420000 0x2000>;
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* sec-phys */
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* phys */
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* virt */
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>, /* hyp-phys */
+                            <GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>; /* hyp-virt */
+               arm,no-tick-in-suspend;
+       };
+};
diff --git a/src/arm64/freescale/s32g399a-rdb3.dts b/src/arm64/freescale/s32g399a-rdb3.dts
new file mode 100644 (file)
index 0000000..9d67481
--- /dev/null
@@ -0,0 +1,45 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright 2021-2023 NXP
+ *
+ * NXP S32G3 Reference Design Board 3 (S32G-VNP-RDB3)
+ */
+
+/dts-v1/;
+
+#include "s32g3.dtsi"
+
+/ {
+       model = "NXP S32G3 Reference Design Board 3 (S32G-VNP-RDB3)";
+       compatible = "nxp,s32g399a-rdb3", "nxp,s32g3";
+
+       aliases {
+               mmc0 = &usdhc0;
+               serial0 = &uart0;
+               serial1 = &uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       /* 4GiB RAM */
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0 0x80000000>,
+                     <0x8 0x80000000 0 0x80000000>;
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&usdhc0 {
+       bus-width = <8>;
+       status = "okay";
+};
index ed1b5a7a606786f05214e6eadde077069b5cb903..f6bc001c3832632bf2262286daedd84238ba59af 100644 (file)
                        device_type = "cpu";
                        reg = <0x0 0x0>;
                        enable-method = "psci";
+                       d-cache-size = <0x8000>; /* 32 KiB */
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       i-cache-size = <0x8000>; /* 32 KiB */
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       next-level-cache = <&L2>;
                };
 
                cpu@1 {
                        device_type = "cpu";
                        reg = <0x0 0x1>;
                        enable-method = "psci";
+                       d-cache-size = <0x8000>; /* 32 KiB */
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       i-cache-size = <0x8000>; /* 32 KiB */
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       next-level-cache = <&L2>;
                };
 
                cpu@2 {
                        device_type = "cpu";
                        reg = <0x0 0x2>;
                        enable-method = "psci";
+                       d-cache-size = <0x8000>; /* 32 KiB */
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       i-cache-size = <0x8000>; /* 32 KiB */
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       next-level-cache = <&L2>;
                };
 
                cpu@3 {
                        device_type = "cpu";
                        reg = <0x0 0x3>;
                        enable-method = "psci";
+                       d-cache-size = <0x8000>; /* 32 KiB */
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       i-cache-size = <0x8000>; /* 32 KiB */
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       next-level-cache = <&L2>;
                };
        };
 
+       L2: l2-cache {
+               compatible = "cache";
+               cache-unified;
+               cache-size = <0x80000>; /* 512 KiB */
+               cache-line-size = <64>;
+               cache-sets = <512>;
+               cache-level = <2>;
+       };
+
        gic: interrupt-controller@f1001000 {
                compatible = "arm,gic-400";
                reg = <0x0 0xf1001000 0x0 0x1000>,  /* GICD */
-                     <0x0 0xf1002000 0x0 0x100>;   /* GICC */
+                     <0x0 0xf1002000 0x0 0x2000>,  /* GICC */
+                     <0x0 0xf1004000 0x0 0x2000>,  /* GICH */
+                     <0x0 0xf1006000 0x0 0x2000>;  /* GICV */
+               interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
+                             IRQ_TYPE_LEVEL_HIGH)>;
                #address-cells = <0>;
                #interrupt-cells = <3>;
                interrupt-controller;
index f0672ec65b26e1b7abec4d96d1faf1edbeef7ec6..2d304efe081de408329507d779d91e5f2f962931 100644 (file)
@@ -82,7 +82,7 @@
                };
        };
 
-       reg_sys_5v: regulator@0 {
+       reg_sys_5v: regulator-0 {
                compatible = "regulator-fixed";
                regulator-name = "SYS_5V";
                regulator-min-microvolt = <5000000>;
@@ -91,7 +91,7 @@
                regulator-always-on;
        };
 
-       reg_vdd_3v3: regulator@1 {
+       reg_vdd_3v3: regulator-1 {
                compatible = "regulator-fixed";
                regulator-name = "VDD_3V3";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&reg_sys_5v>;
        };
 
-       reg_5v_hub: regulator@2 {
+       reg_5v_hub: regulator-2 {
                compatible = "regulator-fixed";
                regulator-name = "5V_HUB";
                regulator-min-microvolt = <5000000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        port@0 {
+                               reg = <0>;
                                adv7533_in: endpoint {
                                        remote-endpoint = <&dsi_out0>;
                                };
index be808bb2544e6f24eab9e7a4ed40169fd83c7e47..a589954c29e2d9fb21903732b9d8b0768627e6ce 100644 (file)
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               tsensor: tsensor@0,f7030700 {
+               tsensor: tsensor@f7030700 {
                        compatible = "hisilicon,tsensor";
                        reg = <0x0 0xf7030700 0x0 0x1000>;
                        interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
index c4eaebbb448f5c6bf55e2d8a3e33b208a45eebe4..b7792d4431894d07e7770b49ed276c6fec9f875e 100644 (file)
@@ -54,7 +54,7 @@
        ranges = <0 0 0x0 0x90000000 0x08000000>,
                 <1 0 0x0 0x98000000 0x08000000>;
 
-       nor-flash@0,0 {
+       nor-flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "numonyx,js28f00a", "cfi-flash";
@@ -75,7 +75,7 @@
                };
        };
 
-       cpld@1,0 {
+       cpld@100000000 {
                compatible = "hisilicon,hip05-cpld";
                reg = <1 0x0 0x100>;
        };
index 65ddc0698f8285d203a8620b769d4704811fd6e0..d0912ca5f237f1bcd695d1ee7402bb089e6f51d0 100644 (file)
                };
        };
 
+       refclk200mhz: refclk200mhz {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <200000000>;
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                #size-cells = <2>;
                ranges;
 
-               refclk200mhz: refclk200mhz {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-                       clock-frequency = <200000000>;
-               };
-
                uart0: serial@80300000 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0x0 0x80300000 0x0 0x10000>;
index f46c33d107507836ad85fe3a7dede7b52dc199dd..3d7285e6700e72479090ecfd6259ab15eb37e2f2 100644 (file)
                };
        };
 
+       eth2: ethernet-0 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <0>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       eth3: ethernet-1 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <1>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       eth0: ethernet-4 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <4>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       eth1: ethernet-5 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <5>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       refclk: refclk {
+               compatible = "fixed-clock";
+               clock-frequency = <50000000>;
+               #clock-cells = <0>;
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                        };
                };
 
-               refclk: refclk {
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-                       #clock-cells = <0>;
-               };
-
                usb_ohci: usb@a7030000 {
                        compatible = "generic-ohci";
                        reg = <0x0 0xa7030000 0x0 0x10000>;
                        };
                };
 
-               dsaf0: dsa@c7000000 {
+               dsaf0: dsa@c5000000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        compatible = "hisilicon,hns-dsaf-v2";
                        };
                };
 
-               eth0: ethernet-4 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <4>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
-               eth1: ethernet-5 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <5>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
-               eth2: ethernet-0 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <0>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
-               eth3: ethernet-1 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <1>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
                sas0: sas@c3000000 {
                        compatible = "hisilicon,hip06-sas-v2";
                        reg = <0 0xc3000000 0 0x10000>;
                        status = "disabled";
                };
 
-               pcie0: pcie@a0090000 {
+               pcie0: pcie@b0000000 {
                        compatible = "hisilicon,hip06-pcie-ecam";
                        reg = <0 0xb0000000 0 0x2000000>,
                              <0 0xa0090000 0 0x10000>;
index 81d907ef43ed2d3ee5975d5fc79e68bc019f631b..00a6bfa7478cb459eb7441134fb54c039f234dd8 100644 (file)
                };
        };
 
+       eth0: ethernet-0 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <4>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       eth1: ethernet-1 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <5>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       eth2: ethernet-2 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <0>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       eth3: ethernet-3 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <1>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                        };
                };
 
-               dsaf0: dsa@c7000000 {
+               dsaf0: dsa@c5000000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        compatible = "hisilicon,hns-dsaf-v2";
                        };
                };
 
-               eth0: ethernet@4 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <4>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
-               eth1: ethernet@5 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <5>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
-               eth2: ethernet@0 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <0>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
-               eth3: ethernet@1 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <1>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
                infiniband@c4000000 {
                        compatible = "hisilicon,hns-roce-v1";
                        reg = <0x0 0xc4000000 0x0 0x100000>;
                        status = "disabled";
                };
 
-               p0_pcie2_a: pcie@a00a0000 {
+               p0_pcie2_a: pcie@af800000 {
                        compatible = "hisilicon,hip07-pcie-ecam";
                        reg = <0 0xaf800000 0 0x800000>,
                              <0 0xa00a0000 0 0x10000>;
                                         0x0 0 0 4 &mbigen_pcie2_a 671 4>;
                        status = "disabled";
                };
-               p0_sec_a: crypto@d2000000 {
+               p0_sec_a: crypto@d0000000 {
                        compatible = "hisilicon,hip07-sec";
                        reg = <0x0 0xd0000000 0x0 0x10000>,
                              <0x0 0xd2000000 0x0 0x10000>,
                                     <605 1>, <606 4>,
                                     <607 1>, <608 4>;
                };
-               p0_sec_b: crypto@8,d2000000 {
+               p0_sec_b: crypto@8d0000000 {
                        compatible = "hisilicon,hip07-sec";
                        reg = <0x8 0xd0000000 0x0 0x10000>,
                              <0x8 0xd2000000 0x0 0x10000>,
                                     <605 1>, <606 4>,
                                     <607 1>, <608 4>;
                };
-               p1_sec_a: crypto@400,d2000000 {
+               p1_sec_a: crypto@400d0000000 {
                        compatible = "hisilicon,hip07-sec";
                        reg = <0x400 0xd0000000 0x0 0x10000>,
                              <0x400 0xd2000000 0x0 0x10000>,
                                     <605 1>, <606 4>,
                                     <607 1>, <608 4>;
                };
-               p1_sec_b: crypto@408,d2000000 {
+               p1_sec_b: crypto@408d0000000 {
                        compatible = "hisilicon,hip07-sec";
                        reg = <0x408 0xd0000000 0x0 0x10000>,
                              <0x408 0xd2000000 0x0 0x10000>,
index 781761d2942b1b0804a8978458eea5f6e2391b1e..ae00e9e54e82cbb99ad79c126a76ac51534443c1 100644 (file)
@@ -70,7 +70,7 @@
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_PPI 0x7 IRQ_TYPE_LEVEL_HIGH>;
        };
 
index 76aafa172eb013ff22e601f1fcc9f1b07d960110..2a5eeb21da474fd01d4a22da06b2c0e78dac5221 100644 (file)
@@ -80,7 +80,7 @@
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>,
index 260a2c5b19e50812122f0efef90023b10cf472d8..cdd10f1380986686d9a023b40648a6883a27f13d 100644 (file)
@@ -22,7 +22,7 @@
                serial2 = &uart2;
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x00000000 0x20000000>;
        };
index e89ae853788a2ee23efc362bd2d618be19b4781e..6ace977ff4cff0e5629ab7d100780e0a7ef6f2e6 100644 (file)
@@ -22,7 +22,7 @@
                serial2 = &uart2;
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x00000000 0x20000000>;
        };
index 5591939e057b8bd1d628223f20e986fe2f3df237..75377c292bcb6a57ea12215a9f4439c600942161 100644 (file)
@@ -68,7 +68,7 @@
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a55-pmu";
                interrupts = <GIC_PPI 12 IRQ_TYPE_LEVEL_HIGH>;
        };
 
index d6d37a1f6f3800fefe071a092aa2dd598894245d..91c2f8b4edfae369428c37aead072f3122cae9a1 100644 (file)
@@ -25,8 +25,6 @@
        /* Actual device is MV88E6361 */
        switch: switch@0 {
                compatible = "marvell,mv88e6190";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <0>;
                status = "disabled";
 
index 870bb380a40a67482586268eeac2e29a03f05abd..b3cc2b7b5d192351ef8500c67c1d8c3514d842a2 100644 (file)
 };
 
 &mdio {
+       /* Switch is @3, not @1 */
+       /delete-node/ ethernet-switch@1;
        extphy: ethernet-phy@1 {
                reg = <1>;
 
                reset-gpios = <&gpionb 2 GPIO_ACTIVE_LOW>;
        };
-};
 
-&switch0 {
-       reg = <3>;
+       switch0: ethernet-switch@3 {
+               compatible = "marvell,mv88e6085";
+               reg = <3>;
 
-       reset-gpios = <&gpiosb 23 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&gpiosb 23 GPIO_ACTIVE_LOW>;
+               dsa,member = <0 0>;
 
-       ethernet-ports {
-               switch0port1: ethernet-port@1 {
-                       reg = <1>;
-                       label = "lan0";
-                       phy-handle = <&switch0phy0>;
-               };
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       switch0port0: ethernet-port@0 {
+                               reg = <0>;
+                               label = "cpu";
+                               ethernet = <&eth0>;
+                               phy-mode = "rgmii-id";
+                               fixed-link {
+                                       speed = <1000>;
+                                       full-duplex;
+                               };
+                       };
 
-               switch0port2: ethernet-port@2 {
-                       reg = <2>;
-                       label = "lan1";
-                       phy-handle = <&switch0phy1>;
-               };
+                       switch0port1: ethernet-port@1 {
+                               reg = <1>;
+                               label = "lan0";
+                               phy-handle = <&switch0phy0>;
+                       };
 
-               switch0port3: ethernet-port@3 {
-                       reg = <3>;
-                       label = "lan2";
-                       phy-handle = <&switch0phy2>;
-               };
+                       switch0port2: ethernet-port@2 {
+                               reg = <2>;
+                               label = "lan1";
+                               phy-handle = <&switch0phy1>;
+                       };
 
-               switch0port4: ethernet-port@4 {
-                       reg = <4>;
-                       label = "lan3";
-                       phy-handle = <&switch0phy3>;
-               };
+                       switch0port3: ethernet-port@3 {
+                               reg = <3>;
+                               label = "lan2";
+                               phy-handle = <&switch0phy2>;
+                       };
 
-               switch0port5: ethernet-port@5 {
-                       reg = <5>;
-                       label = "wan";
-                       phy-handle = <&extphy>;
-                       phy-mode = "sgmii";
+                       switch0port4: ethernet-port@4 {
+                               reg = <4>;
+                               label = "lan3";
+                               phy-handle = <&switch0phy3>;
+                       };
+
+                       switch0port5: ethernet-port@5 {
+                               reg = <5>;
+                               label = "wan";
+                               phy-handle = <&extphy>;
+                               phy-mode = "sgmii";
+                       };
                };
-       };
 
-       mdio {
-               switch0phy3: ethernet-phy@14 {
-                       reg = <0x14>;
+               mdio {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       switch0phy0: ethernet-phy@11 {
+                               reg = <0x11>;
+                       };
+                       switch0phy1: ethernet-phy@12 {
+                               reg = <0x12>;
+                       };
+                       switch0phy2: ethernet-phy@13 {
+                               reg = <0x13>;
+                       };
+                       switch0phy3: ethernet-phy@14 {
+                               reg = <0x14>;
+                       };
                };
        };
 };
index f1a9f223435919f05bcfaea45f73321aec313be9..54453b0a91f9697f563f5a59f229f3491b608327 100644 (file)
        assigned-clock-rates = <20000000>;
 
        flash@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
                compatible = "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <20000000>;
index 1cc3fa1c354de81ca9f6eaa4257b9b561a0deb2a..9603223dd761f1a5c84ee8aeaf29d5461094fa58 100644 (file)
@@ -68,7 +68,7 @@
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
        };
 
index 7ec7c789d87eff436c4f7362e417c71e2033a5b1..fdf88cd0eb029107927c35a59b4b23862d460466 100644 (file)
@@ -61,7 +61,7 @@
                        compatible = "simple-bus";
                        ranges = <0x0 0x0 0xf0000000 0x1000000>;
 
-                       smmu: iommu@5000000 {
+                       smmu: iommu@100000 {
                                compatible = "marvell,ap806-smmu-500", "arm,mmu-500";
                                reg = <0x100000 0x100000>;
                                dma-coherent;
index 6fcc34f7b46474545404641c6a775f7dbeca3b82..5e7d6de3cdded6b23315a2fdd351813b98a2bb08 100644 (file)
@@ -26,7 +26,7 @@
                reg = <0x0 0x0 0x0 0x80000000>;
        };
 
-       ap0_reg_mmc_vccq: ap0_mmc_vccq@0 {
+       ap0_reg_mmc_vccq: regulator-1 {
                compatible = "regulator-gpio";
                regulator-name = "ap0_mmc_vccq";
                regulator-min-microvolt = <1800000>;
@@ -36,7 +36,7 @@
                          3300000 0x0>;
        };
 
-       cp0_reg_usb3_vbus1: cp0_usb3_vbus@1 {
+       cp0_reg_usb3_vbus1: regulator-2 {
                compatible = "regulator-fixed";
                regulator-name = "cp0-xhci1-vbus";
                regulator-min-microvolt = <5000000>;
                gpio = <&expander0 8 GPIO_ACTIVE_HIGH>;
        };
 
-       cp0_usb3_0_phy0: cp0_usb3_phy0 {
+       cp0_usb3_0_phy0: usb-phy-1 {
                compatible = "usb-nop-xceiv";
        };
 
-       cp0_usb3_0_phy1: cp0_usb3_phy1 {
+       cp0_usb3_0_phy1: usb-phy-2 {
                compatible = "usb-nop-xceiv";
                vcc-supply = <&cp0_reg_usb3_vbus1>;
        };
 
-       cp0_reg_sd_vccq: cp0_sd_vccq@0 {
+       cp0_reg_sd_vccq: regulator-3 {
                compatible = "regulator-gpio";
                regulator-name = "cp0_sd_vccq";
                regulator-min-microvolt = <1800000>;
@@ -64,7 +64,7 @@
                          3300000 0x0>;
        };
 
-       cp0_reg_sd_vcc: cp0_sd_vcc@0 {
+       cp0_reg_sd_vcc: regulator-4 {
                compatible = "regulator-fixed";
                regulator-name = "cp0_sd_vcc";
                regulator-min-microvolt = <3300000>;
@@ -82,7 +82,6 @@
                tx-disable-gpios = <&expander0 2 GPIO_ACTIVE_HIGH>;
                tx-fault-gpios = <&cp0_gpio1 24 GPIO_ACTIVE_HIGH>;
                maximum-power-milliwatt = <3000>;
-               status = "okay";
        };
 };
 
index 6eb6a175de38d550633f75d05093f1486d4ac20f..be56a233626534bd64e6f75a5a0821044c38caed 100644 (file)
@@ -30,7 +30,7 @@
                reg = <0x0 0x0 0x0 0x80000000>;
        };
 
-       ap0_reg_sd_vccq: ap0_sd_vccq@0 {
+       ap0_reg_sd_vccq: regulator-1 {
                compatible = "regulator-gpio";
                regulator-name = "ap0_sd_vccq";
                regulator-min-microvolt = <1800000>;
@@ -39,7 +39,7 @@
                states = <1800000 0x1 3300000 0x0>;
        };
 
-       cp0_reg_usb3_vbus0: cp0_usb3_vbus@0 {
+       cp0_reg_usb3_vbus0: regulator-2 {
                compatible = "regulator-fixed";
                regulator-name = "cp0-xhci0-vbus";
                regulator-min-microvolt = <5000000>;
                gpio = <&expander0 0 GPIO_ACTIVE_HIGH>;
        };
 
-       cp0_usb3_0_phy0: cp0_usb3_phy@0 {
+       cp0_usb3_0_phy0: usb-phy-1 {
                compatible = "usb-nop-xceiv";
                vcc-supply = <&cp0_reg_usb3_vbus0>;
        };
 
-       cp0_reg_usb3_vbus1: cp0_usb3_vbus@1 {
+       cp0_reg_usb3_vbus1: regulator-3 {
                compatible = "regulator-fixed";
                regulator-name = "cp0-xhci1-vbus";
                regulator-min-microvolt = <5000000>;
                gpio = <&expander0 1 GPIO_ACTIVE_HIGH>;
        };
 
-       cp0_usb3_0_phy1: cp0_usb3_phy@1 {
+       cp0_usb3_0_phy1: usb-phy-2 {
                compatible = "usb-nop-xceiv";
                vcc-supply = <&cp0_reg_usb3_vbus1>;
        };
 
-       cp0_reg_sd_vccq: cp0_sd_vccq@0 {
+       cp0_reg_sd_vccq: regulator-4 {
                compatible = "regulator-gpio";
                regulator-name = "cp0_sd_vccq";
                regulator-min-microvolt = <1800000>;
@@ -77,7 +77,7 @@
                          3300000 0x0>;
        };
 
-       cp0_reg_sd_vcc: cp0_sd_vcc@0 {
+       cp0_reg_sd_vcc: regulator-5 {
                compatible = "regulator-fixed";
                regulator-name = "cp0_sd_vcc";
                regulator-min-microvolt = <3300000>;
@@ -87,7 +87,7 @@
                regulator-always-on;
        };
 
-       cp0_sfp_eth0: sfp-eth@0 {
+       cp0_sfp_eth0: sfp-eth-1 {
                compatible = "sff,sfp";
                i2c-bus = <&cp0_sfpp0_i2c>;
                los-gpios = <&cp0_module_expander1 11 GPIO_ACTIVE_HIGH>;
        reg = <0x700680 0x50>;
 
        flash@0 {
-               #address-cells = <0x1>;
-               #size-cells = <0x1>;
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                /* On-board MUX does not allow higher frequencies */
index ff8422fae31b543542a379e96b54fd1238ea181e..ad7360c830486bf30854e5885e0d95c1b4260169 100644 (file)
@@ -18,7 +18,7 @@
                ethernet4 = &cp1_eth1;
        };
 
-       cp1_reg_usb3_vbus0: cp1_usb3_vbus@0 {
+       cp1_reg_usb3_vbus0: regulator-6 {
                compatible = "regulator-fixed";
                pinctrl-names = "default";
                pinctrl-0 = <&cp1_xhci0_vbus_pins>;
                gpio = <&cp1_gpio1 3 GPIO_ACTIVE_HIGH>;
        };
 
-       cp1_usb3_0_phy0: cp1_usb3_phy0 {
+       cp1_usb3_0_phy0: usb-phy-3 {
                compatible = "usb-nop-xceiv";
                vcc-supply = <&cp1_reg_usb3_vbus0>;
        };
 
-       cp1_sfp_eth1: sfp-eth1 {
+       cp1_sfp_eth1: sfp-eth-2 {
                compatible = "sff,sfp";
                i2c-bus = <&cp1_i2c0>;
                los-gpios = <&cp1_gpio1 11 GPIO_ACTIVE_HIGH>;
        reg = <0x700680 0x50>;
 
        flash@0 {
-               #address-cells = <0x1>;
-               #size-cells = <0x1>;
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                /* On-board MUX does not allow higher frequencies */
index 512a4fa2861e792129997da9dddcd1c3cce9834f..e753cfdac697330512f6c46c2b656dd57768b2c5 100644 (file)
@@ -17,7 +17,7 @@
                ethernet5 = &cp2_eth0;
        };
 
-       cp2_reg_usb3_vbus0: cp2_usb3_vbus@0 {
+       cp2_reg_usb3_vbus0: regulator-7 {
                compatible = "regulator-fixed";
                regulator-name = "cp2-xhci0-vbus";
                regulator-min-microvolt = <5000000>;
                gpio = <&cp2_gpio1 2 GPIO_ACTIVE_HIGH>;
        };
 
-       cp2_usb3_0_phy0: cp2_usb3_phy0 {
+       cp2_usb3_0_phy0: usb-phy-4 {
                compatible = "usb-nop-xceiv";
                vcc-supply = <&cp2_reg_usb3_vbus0>;
        };
 
-       cp2_reg_usb3_vbus1: cp2_usb3_vbus@1 {
+       cp2_reg_usb3_vbus1: regulator-8 {
                compatible = "regulator-fixed";
                regulator-name = "cp2-xhci1-vbus";
                regulator-min-microvolt = <5000000>;
                gpio = <&cp2_gpio1 3 GPIO_ACTIVE_HIGH>;
        };
 
-       cp2_usb3_0_phy1: cp2_usb3_phy1 {
+       cp2_usb3_0_phy1: usb-phy-5 {
                compatible = "usb-nop-xceiv";
                vcc-supply = <&cp2_reg_usb3_vbus1>;
        };
 
-       cp2_reg_sd_vccq: cp2_sd_vccq@0 {
+       cp2_reg_sd_vccq: regulator-9 {
                compatible = "regulator-gpio";
                regulator-name = "cp2_sd_vcc";
                regulator-min-microvolt = <1800000>;
@@ -54,7 +54,7 @@
                states = <1800000 0x1 3300000 0x0>;
        };
 
-       cp2_sfp_eth0: sfp-eth0 {
+       cp2_sfp_eth0: sfp-eth-3 {
                compatible = "sff,sfp";
                i2c-bus = <&cp2_sfpp0_i2c>;
                los-gpios = <&cp2_module_expander1 11 GPIO_ACTIVE_HIGH>;
index 9cbd6dd8f671aa1c7056314481f776cb00c2b3fe..d0b03dc4d3f43aca71683a3d9b33a409b8ce237f 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a35-pmu";
                interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_LOW>,
                             <GIC_SPI 5 IRQ_TYPE_LEVEL_LOW>,
                             <GIC_SPI 6 IRQ_TYPE_LEVEL_LOW>,
index 24075cd9142050025e222150dea4ef83e778a255..c3029e0abacc05a0aa8b30d4b65b45f2bfb277cd 100644 (file)
                        pinctrl-names = "default";
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       reg = <0x6 0x110102d4 0x24>;
+                       reg = <0x6 0x110102f8 0x24>;
                };
 
                mdio3: mdio@61101031c {
                        reg = <0x6 0x1101031c 0x24>;
                };
 
-               serdes: serdes@10808000 {
+               serdes: serdes@610808000 {
                        compatible = "microchip,sparx5-serdes";
                        #phy-cells = <1>;
                        clocks = <&sys_clk>;
index f3e226de5e5e913025146efcdef60a4c5c2093ef..2c5574734c9e3261029c7d1782dd890b7f7cc308 100644 (file)
 
        leds {
                compatible = "gpio-leds";
-               led@0 {
+               led-0 {
                        label = "twr0:green";
                        gpios = <&sgpio_out0 8 0 GPIO_ACTIVE_LOW>;
                };
-               led@1 {
+               led-1 {
                        label = "twr0:yellow";
                        gpios = <&sgpio_out0 8 1 GPIO_ACTIVE_LOW>;
                };
-               led@2 {
+               led-2 {
                        label = "twr1:green";
                        gpios = <&sgpio_out0 9 0 GPIO_ACTIVE_LOW>;
                };
-               led@3 {
+               led-3 {
                        label = "twr1:yellow";
                        gpios = <&sgpio_out0 9 1 GPIO_ACTIVE_LOW>;
                };
-               led@4 {
+               led-4 {
                        label = "twr2:green";
                        gpios = <&sgpio_out0 10 0 GPIO_ACTIVE_LOW>;
                };
-               led@5 {
+               led-5 {
                        label = "twr2:yellow";
                        gpios = <&sgpio_out0 10 1 GPIO_ACTIVE_LOW>;
                };
-               led@6 {
+               led-6 {
                        label = "twr3:green";
                        gpios = <&sgpio_out0 11 0 GPIO_ACTIVE_LOW>;
                };
-               led@7 {
+               led-7 {
                        label = "twr3:yellow";
                        gpios = <&sgpio_out0 11 1 GPIO_ACTIVE_LOW>;
                };
-               led@8 {
+               led-8 {
                        label = "eth12:green";
                        gpios = <&sgpio_out0 12 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@9 {
+               led-9 {
                        label = "eth12:yellow";
                        gpios = <&sgpio_out0 12 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@10 {
+               led-10 {
                        label = "eth13:green";
                        gpios = <&sgpio_out0 13 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@11 {
+               led-11 {
                        label = "eth13:yellow";
                        gpios = <&sgpio_out0 13 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@12 {
+               led-12 {
                        label = "eth14:green";
                        gpios = <&sgpio_out0 14 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@13 {
+               led-13 {
                        label = "eth14:yellow";
                        gpios = <&sgpio_out0 14 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@14 {
+               led-14 {
                        label = "eth15:green";
                        gpios = <&sgpio_out0 15 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@15 {
+               led-15 {
                        label = "eth15:yellow";
                        gpios = <&sgpio_out0 15 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@16 {
+               led-16 {
                        label = "eth48:green";
                        gpios = <&sgpio_out1 16 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@17 {
+               led-17 {
                        label = "eth48:yellow";
                        gpios = <&sgpio_out1 16 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@18 {
+               led-18 {
                        label = "eth49:green";
                        gpios = <&sgpio_out1 17 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@19 {
+               led-19 {
                        label = "eth49:yellow";
                        gpios = <&sgpio_out1 17 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@20 {
+               led-20 {
                        label = "eth50:green";
                        gpios = <&sgpio_out1 18 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@21 {
+               led-21 {
                        label = "eth50:yellow";
                        gpios = <&sgpio_out1 18 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@22 {
+               led-22 {
                        label = "eth51:green";
                        gpios = <&sgpio_out1 19 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@23 {
+               led-23 {
                        label = "eth51:yellow";
                        gpios = <&sgpio_out1 19 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@24 {
+               led-24 {
                        label = "eth52:green";
                        gpios = <&sgpio_out1 20 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@25 {
+               led-25 {
                        label = "eth52:yellow";
                        gpios = <&sgpio_out1 20 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@26 {
+               led-26 {
                        label = "eth53:green";
                        gpios = <&sgpio_out1 21 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@27 {
+               led-27 {
                        label = "eth53:yellow";
                        gpios = <&sgpio_out1 21 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@28 {
+               led-28 {
                        label = "eth54:green";
                        gpios = <&sgpio_out1 22 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@29 {
+               led-29 {
                        label = "eth54:yellow";
                        gpios = <&sgpio_out1 22 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@30 {
+               led-30 {
                        label = "eth55:green";
                        gpios = <&sgpio_out1 23 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@31 {
+               led-31 {
                        label = "eth55:yellow";
                        gpios = <&sgpio_out1 23 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@32 {
+               led-32 {
                        label = "eth56:green";
                        gpios = <&sgpio_out1 24 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@33 {
+               led-33 {
                        label = "eth56:yellow";
                        gpios = <&sgpio_out1 24 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@34 {
+               led-34 {
                        label = "eth57:green";
                        gpios = <&sgpio_out1 25 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@35 {
+               led-35 {
                        label = "eth57:yellow";
                        gpios = <&sgpio_out1 25 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@36 {
+               led-36 {
                        label = "eth58:green";
                        gpios = <&sgpio_out1 26 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@37 {
+               led-37 {
                        label = "eth58:yellow";
                        gpios = <&sgpio_out1 26 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@38 {
+               led-38 {
                        label = "eth59:green";
                        gpios = <&sgpio_out1 27 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@39 {
+               led-39 {
                        label = "eth59:yellow";
                        gpios = <&sgpio_out1 27 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@40 {
+               led-40 {
                        label = "eth60:green";
                        gpios = <&sgpio_out1 28 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@41 {
+               led-41 {
                        label = "eth60:yellow";
                        gpios = <&sgpio_out1 28 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@42 {
+               led-42 {
                        label = "eth61:green";
                        gpios = <&sgpio_out1 29 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@43 {
+               led-43 {
                        label = "eth61:yellow";
                        gpios = <&sgpio_out1 29 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@44 {
+               led-44 {
                        label = "eth62:green";
                        gpios = <&sgpio_out1 30 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@45 {
+               led-45 {
                        label = "eth62:yellow";
                        gpios = <&sgpio_out1 30 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@46 {
+               led-46 {
                        label = "eth63:green";
                        gpios = <&sgpio_out1 31 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@47 {
+               led-47 {
                        label = "eth63:yellow";
                        gpios = <&sgpio_out1 31 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
        };
 };
 
-&spi0 {
-       status = "okay";
-       flash@0 {
-               compatible = "jedec,spi-nor";
-               spi-max-frequency = <8000000>;
-               reg = <0>;
-       };
-};
-
 &spi0 {
        status = "okay";
        spi@0 {
 };
 
 &axi {
-       i2c0_imux: i2c0-imux@0 {
+       i2c0_imux: i2c-mux-0 {
                compatible = "i2c-mux-pinctrl";
                #address-cells = <1>;
                #size-cells = <0>;
                i2c-parent = <&i2c0>;
        };
-       i2c0_emux: i2c0-emux@0 {
+       i2c0_emux: i2c-mux-1 {
                compatible = "i2c-mux-gpio";
                #address-cells = <1>;
                #size-cells = <0>;
        pinctrl-10 = <&i2cmux_10>;
        pinctrl-11 = <&i2cmux_11>;
        pinctrl-12 = <&i2cmux_pins_i>;
-       i2c_sfp1: i2c_sfp1 {
+       i2c_sfp1: i2c@0 {
                reg = <0x0>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp2: i2c_sfp2 {
+       i2c_sfp2: i2c@1 {
                reg = <0x1>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp3: i2c_sfp3 {
+       i2c_sfp3: i2c@2 {
                reg = <0x2>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp4: i2c_sfp4 {
+       i2c_sfp4: i2c@3 {
                reg = <0x3>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp5: i2c_sfp5 {
+       i2c_sfp5: i2c@4 {
                reg = <0x4>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp6: i2c_sfp6 {
+       i2c_sfp6: i2c@5 {
                reg = <0x5>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp7: i2c_sfp7 {
+       i2c_sfp7: i2c@6 {
                reg = <0x6>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp8: i2c_sfp8 {
+       i2c_sfp8: i2c@7 {
                reg = <0x7>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp9: i2c_sfp9 {
+       i2c_sfp9: i2c@8 {
                reg = <0x8>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp10: i2c_sfp10 {
+       i2c_sfp10: i2c@9 {
                reg = <0x9>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp11: i2c_sfp11 {
+       i2c_sfp11: i2c@a {
                reg = <0xa>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp12: i2c_sfp12 {
+       i2c_sfp12: i2c@b {
                reg = <0xb>;
                #address-cells = <1>;
                #size-cells = <0>;
                     &gpio 61 GPIO_ACTIVE_HIGH
                     &gpio 54 GPIO_ACTIVE_HIGH>;
        idle-state = <0x8>;
-       i2c_sfp13: i2c_sfp13 {
+       i2c_sfp13: i2c@0 {
                reg = <0x0>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp14: i2c_sfp14 {
+       i2c_sfp14: i2c@1 {
                reg = <0x1>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp15: i2c_sfp15 {
+       i2c_sfp15: i2c@2 {
                reg = <0x2>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp16: i2c_sfp16 {
+       i2c_sfp16: i2c@3 {
                reg = <0x3>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp17: i2c_sfp17 {
+       i2c_sfp17: i2c@4 {
                reg = <0x4>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp18: i2c_sfp18 {
+       i2c_sfp18: i2c@5 {
                reg = <0x5>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp19: i2c_sfp19 {
+       i2c_sfp19: i2c@6 {
                reg = <0x6>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp20: i2c_sfp20 {
+       i2c_sfp20: i2c@7 {
                reg = <0x7>;
                #address-cells = <1>;
                #size-cells = <0>;
index 82ce007d99592cac131cee3cfb2f5014ff56d3b4..af2f1831f07f890a5e7f8d3593453ad3f78bb098 100644 (file)
 
        leds {
                compatible = "gpio-leds";
-               led@0 {
+               led-0 {
                        label = "eth60:yellow";
                        gpios = <&sgpio_out1 28 0 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@1 {
+               led-1 {
                        label = "eth60:green";
                        gpios = <&sgpio_out1 28 1 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@2 {
+               led-2 {
                        label = "eth61:yellow";
                        gpios = <&sgpio_out1 29 0 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@3 {
+               led-3 {
                        label = "eth61:green";
                        gpios = <&sgpio_out1 29 1 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@4 {
+               led-4 {
                        label = "eth62:yellow";
                        gpios = <&sgpio_out1 30 0 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@5 {
+               led-5 {
                        label = "eth62:green";
                        gpios = <&sgpio_out1 30 1 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@6 {
+               led-6 {
                        label = "eth63:yellow";
                        gpios = <&sgpio_out1 31 0 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@7 {
+               led-7 {
                        label = "eth63:green";
                        gpios = <&sgpio_out1 31 1 GPIO_ACTIVE_LOW>;
                        default-state = "off";
        };
 };
 
-&spi0 {
-       status = "okay";
-       flash@0 {
-               compatible = "jedec,spi-nor";
-               spi-max-frequency = <8000000>;
-               reg = <0>;
-       };
-};
-
 &spi0 {
        status = "okay";
        spi@0 {
 };
 
 &axi {
-       i2c0_imux: i2c0-imux@0 {
+       i2c0_imux: i2c-mux {
                compatible = "i2c-mux-pinctrl";
                #address-cells = <1>;
                #size-cells = <0>;
        pinctrl-2 = <&i2cmux_s31>;
        pinctrl-3 = <&i2cmux_s32>;
        pinctrl-4 = <&i2cmux_pins_i>;
-       i2c_sfp1: i2c_sfp1 {
+       i2c_sfp1: i2c@0 {
                reg = <0x0>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp2: i2c_sfp2 {
+       i2c_sfp2: i2c@1 {
                reg = <0x1>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp3: i2c_sfp3 {
+       i2c_sfp3: i2c@2 {
                reg = <0x2>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp4: i2c_sfp4 {
+       i2c_sfp4: i2c@3 {
                reg = <0x3>;
                #address-cells = <1>;
                #size-cells = <0>;
index a5ab2bc0f8359a8688dca60b0be36216b1d4d352..eeceb5b292a8ff1959b7e4c88f772d3202f82a7b 100644 (file)
@@ -16,7 +16,7 @@
                stdout-path = &serial0;
        };
 
-       memory {
+       memory@0 {
                reg = <0x0 0x0 0x0 0x40000000>;
        };
 };
index 14d58859bb55c99c756d2d4c6f4fc49b0ea84096..683ac124523b3bc55659e6fb9453ed6500e0742e 100644 (file)
@@ -9,8 +9,8 @@
        compatible = "nvidia,norrin", "nvidia,tegra132", "nvidia,tegra124";
 
        aliases {
-               rtc0 = "/i2c@7000d000/as3722@40";
-               rtc1 = "/rtc@7000e000";
+               rtc0 = &as3722;
+               rtc1 = &tegra_rtc;
                serial0 = &uarta;
        };
 
index 7e24a212c7e449c58bfeba82ea3ab284792e6163..5bcccfef3f7f8c62c017165b39bf8569352779be 100644 (file)
                status = "disabled";
        };
 
-       rtc@7000e000 {
+       tegra_rtc: rtc@7000e000 {
                compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc";
                reg = <0x0 0x7000e000 0x0 0x100>;
                interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
index 9ebb7369256e02aa28ff75c8f608f7409b07a437..2e5b6b2c1f56ba56eb6c64acbddb7d9e2f033998 100644 (file)
@@ -25,7 +25,7 @@
                stdout-path = "serial0:115200n8";
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x0 0x80000000 0x0 0xc0000000>;
        };
index 47f8268e46bf1b8c84cfb657c6cd253f24c4fca0..882b1d1f4ada8d9e275e5a6bee633a21cc6cdb2d 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a57-pmu";
                interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
index 78cbfdd98dd12c8bfe3216bf30a6d8d77ce378d2..f2e2d8d6845bf1b95cf059fcba24725e49c5d5d9 100644 (file)
                                 */
                                status = "disabled";
                        };
+
+                       crypto@15820000 {
+                               compatible = "nvidia,tegra234-se-aes";
+                               reg = <0x00 0x15820000 0x00 0x10000>;
+                               clocks = <&bpmp TEGRA234_CLK_SE>;
+                               iommus = <&smmu_niso1 TEGRA234_SID_SES_SE1>;
+                               dma-coherent;
+                       };
+
+                       crypto@15840000 {
+                               compatible = "nvidia,tegra234-se-hash";
+                               reg = <0x00 0x15840000 0x00 0x10000>;
+                               clocks = <&bpmp TEGRA234_CLK_SE>;
+                               iommus = <&smmu_niso1 TEGRA234_SID_SES_SE2>;
+                               dma-coherent;
+                       };
                };
 
                pcie@140a0000 {
index 9ffad7d1f2b6cb9e700f7d3db7b29ac10b755b5b..aba08424aa38439952f959f79a9ded2201de1f7c 100644 (file)
@@ -91,7 +91,7 @@
 
                compatible = "gpio-leds";
 
-               led@1 {
+               led-1 {
                        label = "apq8016-sbc:green:user1";
                        function = LED_FUNCTION_HEARTBEAT;
                        color = <LED_COLOR_ID_GREEN>;
                        default-state = "off";
                };
 
-               led@2 {
+               led-2 {
                        label = "apq8016-sbc:green:user2";
                        function = LED_FUNCTION_DISK_ACTIVITY;
                        color = <LED_COLOR_ID_GREEN>;
                        default-state = "off";
                };
 
-               led@3 {
+               led-3 {
                        label = "apq8016-sbc:green:user3";
                        function = LED_FUNCTION_DISK_ACTIVITY;
                        color = <LED_COLOR_ID_GREEN>;
                        default-state = "off";
                };
 
-               led@4 {
+               led-4 {
                        label = "apq8016-sbc:green:user4";
                        color = <LED_COLOR_ID_GREEN>;
                        gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@5 {
+               led-5 {
                        label = "apq8016-sbc:yellow:wlan";
                        function = LED_FUNCTION_WLAN;
                        color = <LED_COLOR_ID_YELLOW>;
                        default-state = "off";
                };
 
-               led@6 {
+               led-6 {
                        label = "apq8016-sbc:blue:bt";
                        function = LED_FUNCTION_BLUETOOTH;
                        color = <LED_COLOR_ID_BLUE>;
index 4e29adea570a063fdd18c31da210d00176ace875..17ab6c4759580c28f09e6bb695e614a669f70df6 100644 (file)
                                      "axi_s_sticky";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
        };
 
index 1b8379ba87f9c778cae214fda62a1cfe5aa01004..34e2f80514a3daf2be4e51c00cbff338d105fef7 100644 (file)
@@ -16,7 +16,7 @@
                stdout-path = "serial0";
        };
 
-       memory {
+       memory@40000000 {
                device_type = "memory";
                reg = <0x0 0x40000000 0x0 0x20000000>;
        };
index e5b89753aa5c12ca1d9e9165c88f5044a2af2924..5d42de829e75f18c0f35479e8390c690de62b266 100644 (file)
                                bias-disable;
                        };
 
+                       serial_5_pins: serial5-state {
+                               pins = "gpio9", "gpio16";
+                               function = "blsp5_uart";
+                               drive-strength = <8>;
+                               bias-disable;
+                       };
+
                        i2c_0_pins: i2c-0-state {
                                pins = "gpio42", "gpio43";
                                function = "blsp1_i2c";
                                       "gpio5", "gpio6", "gpio7",
                                       "gpio8", "gpio10", "gpio11",
                                       "gpio12", "gpio13", "gpio14",
-                                      "gpio15", "gpio16", "gpio17";
+                                      "gpio15", "gpio17";
                                function = "qpic";
                                drive-strength = <8>;
                                bias-disable;
                        status = "disabled";
                };
 
+               blsp1_uart6: serial@78b4000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x078b4000 0x200>;
+                       interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART6_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-0 = <&serial_5_pins>;
+                       pinctrl-names = "default";
+                       status = "disabled";
+               };
+
                blsp1_spi1: spi@78b5000 {
                        compatible = "qcom,spi-qup-v2.2.1";
                        #address-cells = <1>;
                                      "ahb",
                                      "axi_m_sticky";
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0: pcie@20000000 {
                                      "axi_m_sticky",
                                      "axi_s_sticky";
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
        };
 
index 3a3e794c022f91a463086ca6290257977a70528f..7f0c2c1b8a94b2c4d79e5e0b2b7188f4e2b2d281 100644 (file)
@@ -12,7 +12,7 @@
 
 / {
        model = "Longcheer L8150";
-       compatible = "longcheer,l8150", "qcom,msm8916-v1-qrd/9-v1", "qcom,msm8916";
+       compatible = "longcheer,l8150", "qcom,msm8916";
        chassis-type = "handset";
 
        aliases {
index ac527a3a08267a8bf653739b5eab4a13d9517576..c11a845e91bb5029e89905ec7dee3b07646dd4cb 100644 (file)
@@ -9,7 +9,7 @@
 
 / {
        model = "Qualcomm Technologies, Inc. MSM 8916 MTP";
-       compatible = "qcom,msm8916-mtp", "qcom,msm8916-mtp/1", "qcom,msm8916";
+       compatible = "qcom,msm8916-mtp", "qcom,msm8916";
        chassis-type = "handset";
 
        aliases {
index 2937495940ea02abf7d7d537160df8be171f9dd2..4bbbee80b5e4bbb2e5ddcc75b35131ee98a8db3c 100644 (file)
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&muic_int_default>;
+
+                       usb_con: connector {
+                               compatible = "usb-b-connector";
+                               label = "micro-USB";
+                               type = "micro";
+                       };
                };
        };
 
index 3c49dac92d2d4ad88074ec547264acb0398bcd29..c50f81a688973a3987a070e454ca19d0b99312aa 100644 (file)
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&muic_int_default>;
+
+                       usb_con: connector {
+                               compatible = "usb-b-connector";
+                               label = "micro-USB";
+                               type = "micro";
+                       };
                };
        };
 
index c2800ad2dd5b2dc063b5eceb7b4a1d852a75e1a9..5e933fb8b363f99688069dedd7b1f8ba8207949c 100644 (file)
                };
        };
 
+       clk_pwm_backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&clk_pwm 0 100000>;
+
+               enable-gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>;
+
+               brightness-levels = <0 255>;
+               num-interpolated-steps = <255>;
+               default-brightness-level = <128>;
+
+               pinctrl-0 = <&backlight_en_default>;
+               pinctrl-names = "default";
+       };
+
+       clk_pwm: pwm {
+               compatible = "clk-pwm";
+               #pwm-cells = <2>;
+
+               clocks = <&gcc GCC_GP2_CLK>;
+
+               pinctrl-0 = <&backlight_pwm_default>;
+               pinctrl-names = "default";
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
                pinctrl-0 = <&motor_en_default>;
                pinctrl-names = "default";
        };
+
+       reg_vdd_tsp_a: regulator-vdd-tsp-a {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_tsp_a";
+               regulator-min-microvolt = <3000000>;
+               regulator-max-microvolt = <3000000>;
+
+               gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&tsp_en_default>;
+               pinctrl-names = "default";
+       };
 };
 
 &blsp_i2c1 {
        };
 };
 
+&blsp_i2c5 {
+       status = "okay";
+
+       touchscreen: touchscreen@20 {
+               compatible = "zinitix,bt541";
+               reg = <0x20>;
+
+               interrupts-extended = <&tlmm 13 IRQ_TYPE_EDGE_FALLING>;
+
+               touchscreen-size-x = <540>;
+               touchscreen-size-y = <960>;
+
+               vcca-supply = <&reg_vdd_tsp_a>;
+               vdd-supply = <&pm8916_l6>;
+
+               pinctrl-0 = <&tsp_int_default>;
+               pinctrl-names = "default";
+       };
+};
+
 &blsp_uart2 {
        status = "okay";
 };
 };
 
 &tlmm {
+       backlight_en_default: backlight-en-default-state {
+               pins = "gpio98";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       backlight_pwm_default: backlight-pwm-default-state {
+               pins = "gpio50";
+               function = "gcc_gp2_clk_a";
+       };
+
        fg_alert_default: fg-alert-default-state {
                pins = "gpio121";
                function = "gpio";
                drive-strength = <2>;
                bias-disable;
        };
+
+       tsp_en_default: tsp-en-default-state {
+               pins = "gpio73";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       tsp_int_default: tsp-int-default-state {
+               pins = "gpio13";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
 };
index 42843771ae2ae5bea1240fcc252fe441997e93d7..b438fa81886c5a31117a27bb6d35aae6db1e1aaf 100644 (file)
@@ -5,6 +5,9 @@
 /* SM5504 MUIC instead of SM5502 */
 /delete-node/ &muic;
 
+/* Touchscreen varies depending on model variant */
+/delete-node/ &touchscreen;
+
 &blsp_i2c1 {
        muic: extcon@14 {
                compatible = "siliconmitus,sm5504-muic";
                pinctrl-names = "default";
        };
 };
+
+/* On rossa backlight is controlled with MIPI DCS commands */
+&clk_pwm {
+       status = "disabled";
+};
+
+&clk_pwm_backlight {
+       status = "disabled";
+};
index aa6c39482a2f13d2c4e3da075937a2124096e33f..0c599e71a464b59448a1281590143da1dbe423aa 100644 (file)
 
                pinctrl-0 = <&muic_int_default>;
                pinctrl-names = "default";
+
+               usb_con: connector {
+                       compatible = "usb-b-connector";
+                       label = "micro-USB";
+                       type = "micro";
+               };
        };
 };
 
index f1011bb641c619c2331fcca2b920151241ead05b..5d818fe057ddb419f89f26363fbc61132ce3dc6d 100644 (file)
                                snps,hird-threshold = /bits/ 8 <0x00>;
 
                                maximum-speed = "high-speed";
+
+                               usb-role-switch;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_dwc3_hs: endpoint {
+                                               };
+                                       };
+                               };
                        };
                };
 
index 1601e46549e77990dafbd63894b9c078ffec60af..8d2cb6f410956e84fe58eba0bc384289651c4f2a 100644 (file)
                                                "cfg",
                                                "bus_master",
                                                "bus_slave";
+
+                               pcie@0 {
+                                       device_type = "pci";
+                                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                                       bus-range = <0x01 0xff>;
+
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                               };
                        };
 
                        pcie1: pcie@608000 {
                                                "cfg",
                                                "bus_master",
                                                "bus_slave";
+
+                               pcie@0 {
+                                       device_type = "pci";
+                                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                                       bus-range = <0x01 0xff>;
+
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                               };
                        };
 
                        pcie2: pcie@610000 {
                                                "cfg",
                                                "bus_master",
                                                "bus_slave";
+
+                               pcie@0 {
+                                       device_type = "pci";
+                                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                                       bus-range = <0x01 0xff>;
+
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                               };
                        };
                };
 
index 876c6921ddf0713542fe69d41b1fce9449e3d786..d8cc0d729e99c5ead32f38c12bf65a930d369c08 100644 (file)
        gpio-keys {
                compatible = "gpio-keys";
                label = "Side buttons";
+               pinctrl-0 = <&focus_n &snapshot_n &vol_down_n &vol_up_n>;
                pinctrl-names = "default";
-               pinctrl-0 = <&vol_down_n &focus_n &snapshot_n>;
-               button-vol-down {
-                       label = "Volume Down";
-                       gpios = <&pm8998_gpios 5 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <EV_KEY>;
-                       linux,code = <KEY_VOLUMEDOWN>;
-                       wakeup-source;
+               button-camera-focus {
+                       label = "Camera Focus";
+                       gpios = <&pm8998_gpios 8 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_CAMERA_FOCUS>;
                        debounce-interval = <15>;
                };
 
                button-camera-snapshot {
                        label = "Camera Snapshot";
                        gpios = <&pm8998_gpios 7 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <EV_KEY>;
                        linux,code = <KEY_CAMERA>;
                        debounce-interval = <15>;
                };
 
-               button-camera-focus {
-                       label = "Camera Focus";
-                       gpios = <&pm8998_gpios 8 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <EV_KEY>;
-                       linux,code = <KEY_CAMERA_FOCUS>;
+               button-vol-down {
+                       label = "Volume Down";
+                       gpios = <&pm8998_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+
+               button-vol-up {
+                       label = "Volume Up";
+                       gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       wakeup-source;
                        debounce-interval = <15>;
                };
        };
                qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
        };
 
+       vol_up_n: vol-up-n-state {
+               pins = "gpio6";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               bias-pull-up;
+               input-enable;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
+       };
+
        focus_n: focus-n-state {
                pins = "gpio7";
                function = PMIC_GPIO_FUNC_NORMAL;
        };
 };
 
-&pm8998_resin {
-       linux,code = <KEY_VOLUMEUP>;
+&pmi8998_lpg {
+       qcom,power-source = <1>;
+
        status = "okay";
+
+       multi-led {
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@3 {
+                       reg = <3>;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       color = <LED_COLOR_ID_RED>;
+               };
+       };
 };
 
 &qusb2phy {
index 4dfe2d09ac2859d1da4341954fc42450696f92ef..d795b2bbe13308610a080a783def4d9955cc8d63 100644 (file)
                        power-domains = <&gcc PCIE_0_GDSC>;
                        iommu-map = <0x100 &anoc1_smmu 0x1480 1>;
                        perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie_phy: phy@1c06000 {
index 11158c2bd5241661da0efb8019952d0b91db05ba..6de6ed562d97ce4174c54b2da8dfef7f96a00db1 100644 (file)
                };
 
                pm6150_vbus: usb-vbus-regulator@1100 {
-                       compatible = "qcom,pm6150-vbus-reg,
-                                     qcom,pm8150b-vbus-reg";
+                       compatible = "qcom,pm6150-vbus-reg",
+                                    "qcom,pm8150b-vbus-reg";
                        reg = <0x1100>;
                        status = "disabled";
                };
 
                pm6150_typec: typec@1500 {
-                       compatible = "qcom,pm6150-typec,
-                                     qcom,pm8150b-typec";
+                       compatible = "qcom,pm6150-typec",
+                                    "qcom,pm8150b-typec";
                        reg = <0x1500>, <0x1700>;
                        interrupts = <0x0 0x15 0x00 IRQ_TYPE_EDGE_RISING>,
                                     <0x0 0x15 0x01 IRQ_TYPE_EDGE_BOTH>,
index d13a1ab7c20b34dcd9cc9613d3f488d95bad78f1..0fce45276e5c23eca77de90c49e7a07e2a7ec620 100644 (file)
                        status = "disabled";
                };
 
+               pm6150l_lpg: pwm {
+                       compatible = "qcom,pm6150l-lpg", "qcom,pm8150l-lpg";
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #pwm-cells = <2>;
+
+                       status = "disabled";
+               };
+
                pm6150l_wled: leds@d800 {
                        compatible = "qcom,pm6150l-wled";
                        reg = <0xd800>, <0xd900>;
index 89beac833d43552197b88ac5b9d57c239a6bbb39..106110a9f5518d1f31b891166f85c33e18f466cf 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_PPI 6 IRQ_TYPE_LEVEL_HIGH>;
        };
 
                        clock-output-names = "usb3_phy_pipe_clk_src";
 
                        #phy-cells = <0>;
+                       orientation-switch;
 
                        qcom,tcsr-reg = <&tcsr_regs 0xb244>;
 
                        status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_qmpphy_out: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_dwc3_ss>;
+                                       };
+                               };
+                       };
                };
 
                system_noc: interconnect@1880000 {
                                snps,usb3_lpm_capable;
                                maximum-speed = "super-speed";
                                dr_mode = "otg";
+                               usb-role-switch;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_qmpphy_usb_ss_in>;
+                                               };
+                                       };
+                               };
                        };
                };
 
                        compatible = "qcom,qcm2290-cpufreq-hw", "qcom,cpufreq-hw";
                        reg = <0x0 0x0f521000 0x0 0x1000>;
                        reg-names = "freq-domain0";
-                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&lmh_cluster 0>;
                        interrupt-names = "dcvsh-irq-0";
                        clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&gcc GPLL0>;
                        clock-names = "xo", "alternate";
                        #freq-domain-cells = <1>;
                        #clock-cells = <1>;
                };
+
+               lmh_cluster: lmh@f550800 {
+                       compatible = "qcom,qcm2290-lmh", "qcom,sm8150-lmh";
+                       reg = <0x0 0x0f550800 0x0 0x400>;
+                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+                       cpus = <&CPU0>;
+                       qcom,lmh-temp-arm-millicelsius = <65000>;
+                       qcom,lmh-temp-low-millicelsius = <94500>;
+                       qcom,lmh-temp-high-millicelsius = <95000>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+               };
        };
 
        thermal-zones {
index 4ff9fc24e50e120f51e840191881d22c59aed874..f3432701945f7f35713e05945a6b116ea85ceef6 100644 (file)
@@ -77,6 +77,8 @@
                #address-cells = <1>;
                #size-cells = <0>;
 
+               orientation-gpios = <&tlmm 140 GPIO_ACTIVE_HIGH>;
+
                connector@0 {
                        compatible = "usb-c-connector";
                        reg = <0>;
index e4bfad50a669b18edb60cf0bd9011f61fbf20919..47ca2d000341418d4b5757570dc3ed67ccf1e239 100644 (file)
@@ -9,7 +9,9 @@
 #define PM7250B_SID 8
 #define PM7250B_SID1 9
 
+#include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include "sc7280.dtsi"
 #include "pm7250b.dtsi"
                serial0 = &uart5;
        };
 
+       pm8350c_pwm_backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pm8350c_pwm 3 65535>;
+               enable-gpios = <&pm8350c_gpios 7 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&pmic_lcd_bl_en>;
+               pinctrl-names = "default";
+       };
+
        chosen {
                stdout-path = "serial0:115200n8";
        };
 
+       lcd_disp_bias: regulator-lcd-disp-bias {
+               compatible = "regulator-fixed";
+               regulator-name = "lcd_disp_bias";
+               regulator-min-microvolt = <5500000>;
+               regulator-max-microvolt = <5500000>;
+               gpio = <&pm7250b_gpios 2 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-0 = <&lcd_disp_bias_en>;
+               pinctrl-names = "default";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&key_vol_up_default>;
+               pinctrl-names = "default";
+
+               key-volume-up {
+                       label = "Volume_up";
+                       gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+               };
+       };
+
        reserved-memory {
                xbl_mem: xbl@80700000 {
                        reg = <0x0 0x80700000 0x0 0x100000>;
                vdd-l14-l16-supply = <&vreg_s8b_1p272>;
 
                vreg_s1b_1p872: smps1 {
+                       regulator-name = "vreg_s1b_1p872";
                        regulator-min-microvolt = <1840000>;
                        regulator-max-microvolt = <2040000>;
                };
 
                vreg_s2b_0p876: smps2 {
+                       regulator-name = "vreg_s2b_0p876";
                        regulator-min-microvolt = <570070>;
                        regulator-max-microvolt = <1050000>;
                };
 
                vreg_s7b_0p972: smps7 {
+                       regulator-name = "vreg_s7b_0p972";
                        regulator-min-microvolt = <535000>;
                        regulator-max-microvolt = <1120000>;
                };
 
                vreg_s8b_1p272: smps8 {
+                       regulator-name = "vreg_s8b_1p272";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1500000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
                };
 
                vreg_l1b_0p912: ldo1 {
+                       regulator-name = "vreg_l1b_0p912";
                        regulator-min-microvolt = <825000>;
                        regulator-max-microvolt = <925000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l2b_3p072: ldo2 {
+                       regulator-name = "vreg_l2b_3p072";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l3b_0p504: ldo3 {
+                       regulator-name = "vreg_l3b_0p504";
                        regulator-min-microvolt = <312000>;
                        regulator-max-microvolt = <910000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l4b_0p752: ldo4 {
+                       regulator-name = "vreg_l4b_0p752";
                        regulator-min-microvolt = <752000>;
                        regulator-max-microvolt = <820000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                reg_l5b_0p752: ldo5 {
+                       regulator-name = "reg_l5b_0p752";
                        regulator-min-microvolt = <552000>;
                        regulator-max-microvolt = <832000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l6b_1p2: ldo6 {
+                       regulator-name = "vreg_l6b_1p2";
                        regulator-min-microvolt = <1140000>;
                        regulator-max-microvolt = <1260000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7b_2p952: ldo7 {
+                       regulator-name = "vreg_l7b_2p952";
                        regulator-min-microvolt = <2400000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l8b_0p904: ldo8 {
+                       regulator-name = "vreg_l8b_0p904";
                        regulator-min-microvolt = <870000>;
                        regulator-max-microvolt = <970000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l9b_1p2: ldo9 {
+                       regulator-name = "vreg_l9b_1p2";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1304000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l11b_1p504: ldo11 {
+                       regulator-name = "vreg_l11b_1p504";
                        regulator-min-microvolt = <1504000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l12b_0p751: ldo12 {
+                       regulator-name = "vreg_l12b_0p751";
                        regulator-min-microvolt = <751000>;
                        regulator-max-microvolt = <824000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l13b_0p53: ldo13 {
+                       regulator-name = "vreg_l13b_0p53";
                        regulator-min-microvolt = <530000>;
                        regulator-max-microvolt = <824000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l14b_1p08: ldo14 {
+                       regulator-name = "vreg_l14b_1p08";
                        regulator-min-microvolt = <1080000>;
                        regulator-max-microvolt = <1304000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l15b_0p765: ldo15 {
+                       regulator-name = "vreg_l15b_0p765";
                        regulator-min-microvolt = <765000>;
                        regulator-max-microvolt = <1020000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l16b_1p1: ldo16 {
+                       regulator-name = "vreg_l16b_1p1";
                        regulator-min-microvolt = <1100000>;
                        regulator-max-microvolt = <1300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l17b_1p7: ldo17 {
+                       regulator-name = "vreg_l17b_1p7";
                        regulator-min-microvolt = <1700000>;
                        regulator-max-microvolt = <1900000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l18b_1p8: ldo18 {
+                       regulator-name = "vreg_l18b_1p8";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l19b_1p8: ldo19 {
+                       regulator-name = "vreg_l19b_1p8";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                vdd-bob-supply = <&vph_pwr>;
 
                vreg_s1c_2p19: smps1 {
+                       regulator-name = "vreg_s1c_2p19";
                        regulator-min-microvolt = <2190000>;
                        regulator-max-microvolt = <2210000>;
                };
 
                vreg_s2c_0p752: smps2 {
+                       regulator-name = "vreg_s2c_0p752";
                        regulator-min-microvolt = <750000>;
                        regulator-max-microvolt = <800000>;
                };
 
                vreg_s5c_0p752: smps5 {
+                       regulator-name = "vreg_s5c_0p752";
                        regulator-min-microvolt = <465000>;
                        regulator-max-microvolt = <1050000>;
                };
 
                vreg_s7c_0p752: smps7 {
+                       regulator-name = "vreg_s7c_0p752";
                        regulator-min-microvolt = <465000>;
                        regulator-max-microvolt = <800000>;
                };
 
                vreg_s9c_1p084: smps9 {
+                       regulator-name = "vreg_s9c_1p084";
                        regulator-min-microvolt = <1010000>;
                        regulator-max-microvolt = <1170000>;
                };
 
                vreg_l1c_1p8: ldo1 {
+                       regulator-name = "vreg_l1c_1p8";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l2c_1p62: ldo2 {
+                       regulator-name = "vreg_l2c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l3c_2p8: ldo3 {
+                       regulator-name = "vreg_l3c_2p8";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <3540000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l4c_1p62: ldo4 {
+                       regulator-name = "vreg_l4c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l5c_1p62: ldo5 {
+                       regulator-name = "vreg_l5c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l6c_2p96: ldo6 {
+                       regulator-name = "vreg_l6c_2p96";
                        regulator-min-microvolt = <1650000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7c_3p0: ldo7 {
+                       regulator-name = "vreg_l7c_3p0";
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l8c_1p62: ldo8 {
+                       regulator-name = "vreg_l8c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l9c_2p96: ldo9 {
+                       regulator-name = "vreg_l9c_2p96";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <35440000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l10c_0p88: ldo10 {
+                       regulator-name = "vreg_l10c_0p88";
                        regulator-min-microvolt = <720000>;
                        regulator-max-microvolt = <1050000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l11c_2p8: ldo11 {
+                       regulator-name = "vreg_l11c_2p8";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l12c_1p65: ldo12 {
+                       regulator-name = "vreg_l12c_1p65";
                        regulator-min-microvolt = <1650000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l13c_2p7: ldo13 {
+                       regulator-name = "vreg_l13c_2p7";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_bob_3p296: bob {
+                       regulator-name = "vreg_bob_3p296";
                        regulator-min-microvolt = <3008000>;
                        regulator-max-microvolt = <3960000>;
                };
        };
 };
 
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi {
+       vdda-supply = <&vreg_l6b_1p2>;
+       status = "okay";
+
+       panel@0 {
+               compatible = "novatek,nt36672e";
+               reg = <0>;
+
+               reset-gpios = <&tlmm 44 GPIO_ACTIVE_HIGH>;
+
+               vddi-supply = <&vreg_l8c_1p62>;
+               avdd-supply = <&lcd_disp_bias>;
+               avee-supply = <&lcd_disp_bias>;
+
+               backlight = <&pm8350c_pwm_backlight>;
+
+               port {
+                       panel0_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&panel0_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi_phy {
+       vdds-supply = <&vreg_l10c_0p88>;
+       status = "okay";
+};
+
+&pm7250b_gpios {
+       lcd_disp_bias_en: lcd-disp-bias-en-state {
+               pins = "gpio2";
+               function = "func1";
+               bias-disable;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+               input-disable;
+               output-enable;
+               power-source = <0>;
+       };
+};
+
+&pm8350c_gpios {
+       pmic_lcd_bl_en: pmic-lcd-bl-en-state {
+               pins = "gpio7";
+               function = "normal";
+               bias-disable;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+               output-low;
+               power-source = <0>;
+       };
+
+       pmic_lcd_bl_pwm: pmic-lcd-bl-pwm-state {
+               pins = "gpio8";
+               function = "func1";
+               bias-disable;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+               output-low;
+               power-source = <0>;
+       };
+};
+
+&pm7325_gpios {
+       key_vol_up_default: key-vol-up-state {
+               pins = "gpio6";
+               function = "normal";
+               input-enable;
+               bias-pull-up;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+       };
+};
+
 &pm8350c_pwm {
+       pinctrl-0 = <&pmic_lcd_bl_pwm>;
+       pinctrl-names = "default";
        status = "okay";
 
        multi-led {
        };
 };
 
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
 
+&remoteproc_adsp {
+       firmware-name = "qcom/qcm6490/adsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/qcm6490/cdsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/qcm6490/modem.mbn";
+       status = "okay";
+};
+
+&remoteproc_wpss {
+       firmware-name = "qcom/qcm6490/wpss.mbn";
+       status = "okay";
+};
+
 &sdhc_1 {
        non-removable;
        no-sd;
index 10655401528e4e043e1fbfd4a29cdbb9139ae5fb..a22b4501ce1ef5674f0b5cd1a462f12464a38155 100644 (file)
@@ -62,7 +62,7 @@
                vddrf-supply = <&vreg_l1_1p3>;
                vddch0-supply = <&vdd_ch0_3p3>;
 
-               local-bd-address = [ 02 00 00 00 5a ad ];
+               local-bd-address = [ 00 00 00 00 00 00 ];
 
                max-speed = <3200000>;
        };
index a05d0234f7fc0af276824fa5aba82d2abddb5f9c..ac451f378056a759c4efedc3acf94f09632817ab 100644 (file)
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
        };
 
index 97824c769ba34203b569e79dbe20143284e74e48..a085ff5b5fb21d9cc68c8dd970f30d489a40894b 100644 (file)
@@ -17,7 +17,6 @@
 #include "pmk8350.dtsi"
 
 /delete-node/ &ipa_fw_mem;
-/delete-node/ &remoteproc_mpss;
 /delete-node/ &rmtfs_mem;
 /delete-node/ &adsp_mem;
 /delete-node/ &cdsp_mem;
                stdout-path = "serial0:115200n8";
        };
 
+       dp-connector {
+               compatible = "dp-connector";
+               label = "DP";
+               type = "mini";
+
+               hpd-gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       dp_connector_in: endpoint {
+                               remote-endpoint = <&mdss_edp_out>;
+                       };
+               };
+       };
+
        reserved-memory {
                xbl_mem: xbl@80700000 {
                        reg = <0x0 0x80700000 0x0 0x100000>;
                };
        };
 
+       pmic-glink {
+               compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               connector@0 {
+                       compatible = "usb-c-connector";
+                       reg = <0>;
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       pmic_glink_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss_in: endpoint {
+                                               remote-endpoint = <&redriver_usb_con_ss>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_sbu_in: endpoint {
+                                               remote-endpoint = <&redriver_usb_con_sbu>;
+                                       };
+                               };
+                       };
+               };
+       };
+
        vph_pwr: vph-pwr-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vph_pwr";
                vdd-l14-l16-supply = <&vreg_s8b_1p272>;
 
                vreg_s1b_1p872: smps1 {
+                       regulator-name = "vreg_s1b_1p872";
                        regulator-min-microvolt = <1840000>;
                        regulator-max-microvolt = <2040000>;
                };
 
                vreg_s2b_0p876: smps2 {
+                       regulator-name = "vreg_s2b_0p876";
                        regulator-min-microvolt = <570070>;
                        regulator-max-microvolt = <1050000>;
                };
 
                vreg_s7b_0p972: smps7 {
+                       regulator-name = "vreg_s7b_0p972";
                        regulator-min-microvolt = <535000>;
                        regulator-max-microvolt = <1120000>;
                };
 
                vreg_s8b_1p272: smps8 {
+                       regulator-name = "vreg_s8b_1p272";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1500000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
                };
 
                vreg_l1b_0p912: ldo1 {
+                       regulator-name = "vreg_l1b_0p912";
                        regulator-min-microvolt = <825000>;
                        regulator-max-microvolt = <925000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l2b_3p072: ldo2 {
+                       regulator-name = "vreg_l2b_3p072";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l3b_0p504: ldo3 {
+                       regulator-name = "vreg_l3b_0p504";
                        regulator-min-microvolt = <312000>;
                        regulator-max-microvolt = <910000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l4b_0p752: ldo4 {
+                       regulator-name = "vreg_l4b_0p752";
                        regulator-min-microvolt = <752000>;
                        regulator-max-microvolt = <820000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                reg_l5b_0p752: ldo5 {
+                       regulator-name = "reg_l5b_0p752";
                        regulator-min-microvolt = <552000>;
                        regulator-max-microvolt = <832000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l6b_1p2: ldo6 {
+                       regulator-name = "vreg_l6b_1p2";
                        regulator-min-microvolt = <1140000>;
                        regulator-max-microvolt = <1260000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7b_2p952: ldo7 {
-                       regulator-min-microvolt = <2400000>;
-                       regulator-max-microvolt = <3544000>;
+                       regulator-name = "vreg_l7b_2p952";
+                       regulator-min-microvolt = <2952000>;
+                       regulator-max-microvolt = <2952000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l8b_0p904: ldo8 {
+                       regulator-name = "vreg_l8b_0p904";
                        regulator-min-microvolt = <870000>;
                        regulator-max-microvolt = <970000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l9b_1p2: ldo9 {
+                       regulator-name = "vreg_l9b_1p2";
                        regulator-min-microvolt = <1200000>;
-                       regulator-max-microvolt = <1304000>;
+                       regulator-max-microvolt = <1200000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l11b_1p504: ldo11 {
+                       regulator-name = "vreg_l11b_1p504";
                        regulator-min-microvolt = <1504000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l12b_0p751: ldo12 {
+                       regulator-name = "vreg_l12b_0p751";
                        regulator-min-microvolt = <751000>;
                        regulator-max-microvolt = <824000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l13b_0p53: ldo13 {
+                       regulator-name = "vreg_l13b_0p53";
                        regulator-min-microvolt = <530000>;
                        regulator-max-microvolt = <824000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l14b_1p08: ldo14 {
+                       regulator-name = "vreg_l14b_1p08";
                        regulator-min-microvolt = <1080000>;
                        regulator-max-microvolt = <1304000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l15b_0p765: ldo15 {
+                       regulator-name = "vreg_l15b_0p765";
                        regulator-min-microvolt = <765000>;
                        regulator-max-microvolt = <1020000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l16b_1p1: ldo16 {
+                       regulator-name = "vreg_l16b_1p1";
                        regulator-min-microvolt = <1100000>;
                        regulator-max-microvolt = <1300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l17b_1p7: ldo17 {
+                       regulator-name = "vreg_l17b_1p7";
                        regulator-min-microvolt = <1700000>;
                        regulator-max-microvolt = <1900000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l18b_1p8: ldo18 {
+                       regulator-name = "vreg_l18b_1p8";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l19b_1p8: ldo19 {
+                       regulator-name = "vreg_l19b_1p8";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                vdd-bob-supply = <&vph_pwr>;
 
                vreg_s1c_2p19: smps1 {
+                       regulator-name = "vreg_s1c_2p19";
                        regulator-min-microvolt = <2190000>;
                        regulator-max-microvolt = <2210000>;
                };
 
                vreg_s2c_0p752: smps2 {
+                       regulator-name = "vreg_s2c_0p752";
                        regulator-min-microvolt = <750000>;
                        regulator-max-microvolt = <800000>;
                };
 
                vreg_s5c_0p752: smps5 {
+                       regulator-name = "vreg_s5c_0p752";
                        regulator-min-microvolt = <465000>;
                        regulator-max-microvolt = <1050000>;
                };
 
                vreg_s7c_0p752: smps7 {
+                       regulator-name = "vreg_s7c_0p752";
                        regulator-min-microvolt = <465000>;
                        regulator-max-microvolt = <800000>;
                };
 
                vreg_s9c_1p084: smps9 {
+                       regulator-name = "vreg_s9c_1p084";
                        regulator-min-microvolt = <1010000>;
                        regulator-max-microvolt = <1170000>;
                };
 
                vreg_l1c_1p8: ldo1 {
+                       regulator-name = "vreg_l1c_1p8";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l2c_1p62: ldo2 {
+                       regulator-name = "vreg_l2c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l3c_2p8: ldo3 {
+                       regulator-name = "vreg_l3c_2p8";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <3540000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l4c_1p62: ldo4 {
+                       regulator-name = "vreg_l4c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l5c_1p62: ldo5 {
+                       regulator-name = "vreg_l5c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l6c_2p96: ldo6 {
+                       regulator-name = "vreg_l6c_2p96";
                        regulator-min-microvolt = <1650000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7c_3p0: ldo7 {
+                       regulator-name = "vreg_l7c_3p0";
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l8c_1p62: ldo8 {
+                       regulator-name = "vreg_l8c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l9c_2p96: ldo9 {
+                       regulator-name = "vreg_l9c_2p96";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <35440000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l10c_0p88: ldo10 {
+                       regulator-name = "vreg_l10c_0p88";
                        regulator-min-microvolt = <720000>;
                        regulator-max-microvolt = <1050000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l11c_2p8: ldo11 {
+                       regulator-name = "vreg_l11c_2p8";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l12c_1p65: ldo12 {
+                       regulator-name = "vreg_l12c_1p65";
                        regulator-min-microvolt = <1650000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l13c_2p7: ldo13 {
+                       regulator-name = "vreg_l13c_2p7";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_bob_3p296: bob {
+                       regulator-name = "vreg_bob_3p296";
                        regulator-min-microvolt = <3008000>;
                        regulator-max-microvolt = <3960000>;
                };
                           <GCC_WPSS_RSCP_CLK>;
 };
 
+&i2c1 {
+       status = "okay";
+
+       typec-mux@1c {
+               compatible = "onnn,nb7vpq904m";
+               reg = <0x1c>;
+
+               vcc-supply = <&vreg_l18b_1p8>;
+
+               retimer-switch;
+               orientation-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               redriver_usb_con_ss: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss_in>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               redriver_phy_con_ss: endpoint {
+                                       remote-endpoint = <&usb_dp_qmpphy_out>;
+                                       data-lanes = <0 1 2 3>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               redriver_usb_con_sbu: endpoint {
+                                       remote-endpoint = <&pmic_glink_sbu_in>;
+                               };
+                       };
+               };
+       };
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dp {
+       status = "okay";
+};
+
+&mdss_dp_out {
+       data-lanes = <0 1>;
+       remote-endpoint = <&usb_dp_qmpphy_dp_in>;
+};
+
+&mdss_edp {
+       status = "okay";
+};
+
+&mdss_edp_out {
+       data-lanes = <0 1 2 3>;
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+       remote-endpoint = <&dp_connector_in>;
+};
+
+&mdss_edp_phy {
+       status = "okay";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
 
+&remoteproc_adsp {
+       firmware-name = "qcom/qcs6490/adsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/qcs6490/cdsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/qcs6490/modem.mdt";
+       status = "okay";
+};
+
+&remoteproc_wpss {
+       firmware-name = "qcom/qcs6490/wpss.mbn";
+       status = "okay";
+};
+
 &tlmm {
        gpio-reserved-ranges = <32 2>, /* ADSP */
                               <48 4>; /* NFC */
 };
 
 &usb_1_dwc3 {
-       dr_mode = "peripheral";
+       dr_mode = "otg";
+       usb-role-switch;
+};
+
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_dwc3_ss {
+       remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
 };
 
 &usb_1_hsphy {
        vdda-phy-supply = <&vreg_l6b_1p2>;
        vdda-pll-supply = <&vreg_l1b_0p912>;
 
+       orientation-switch;
+
+       status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+       remote-endpoint = <&redriver_phy_con_ss>;
+};
+
+&usb_dp_qmpphy_usb_ss_in {
+       remote-endpoint = <&usb_1_dwc3_ss>;
+};
+
+&usb_dp_qmpphy_dp_in {
+       remote-endpoint = <&mdss_dp_out>;
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+       vcc-supply = <&vreg_l7b_2p952>;
+       vcc-max-microamp = <800000>;
+       vccq-supply = <&vreg_l9b_1p2>;
+       vccq-max-microamp = <900000>;
+       vccq2-supply = <&vreg_l9b_1p2>;
+       vccq2-max-microamp = <900000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l10c_0p88>;
+       vdda-pll-supply = <&vreg_l6b_1p2>;
+
        status = "okay";
 };
 
 &wifi {
        memory-region = <&wlan_fw_mem>;
 };
+
+/* PINCTRL - ADDITIONS TO NODES IN PARENT DEVICE TREE FILES */
+
+&edp_hot_plug_det {
+       function = "gpio";
+       bias-disable;
+};
index 832f472c4b7a5ef05a6a5f8e6c537f64b4d1a14c..f90f03fa6a24fc0a8159c9b36635c32b7ef69495 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a55-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
        };
 
 
                system-cache-controller@19200000 {
                        compatible = "qcom,qdu1000-llcc";
-                       reg = <0 0x19200000 0 0xd80000>,
+                       reg = <0 0x19200000 0 0x80000>,
+                             <0 0x19300000 0 0x80000>,
+                             <0 0x19600000 0 0x80000>,
+                             <0 0x19700000 0 0x80000>,
+                             <0 0x19a00000 0 0x80000>,
+                             <0 0x19b00000 0 0x80000>,
+                             <0 0x19e00000 0 0x80000>,
+                             <0 0x19f00000 0 0x80000>,
                              <0 0x1a200000 0 0x80000>;
                        reg-names = "llcc0_base",
+                                   "llcc1_base",
+                                   "llcc2_base",
+                                   "llcc3_base",
+                                   "llcc4_base",
+                                   "llcc5_base",
+                                   "llcc6_base",
+                                   "llcc7_base",
                                    "llcc_broadcast_base";
                        interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
                };
index 6e9dd0312adc5d369136fedbbd6166f7a6f7390c..bb5191422660b82ef243fb111fb9d2515247a80e 100644 (file)
        status = "okay";
 };
 
+&pm4125_typec {
+       status = "okay";
+
+       connector {
+               compatible = "usb-c-connector";
+
+               power-role = "dual";
+               data-role = "dual";
+               self-powered;
+
+               typec-power-opmode = "default";
+               pd-disable;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               pm4125_hs_in: endpoint {
+                                       remote-endpoint = <&usb_dwc3_hs>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               pm4125_ss_in: endpoint {
+                                       remote-endpoint = <&usb_qmpphy_out>;
+                               };
+                       };
+               };
+       };
+};
+
+&pm4125_vbus {
+       regulator-min-microamp = <500000>;
+       regulator-max-microamp = <500000>;
+       status = "okay";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
        status = "okay";
 };
 
-&usb_qmpphy {
-       vdda-phy-supply = <&pm4125_l12>;
-       vdda-pll-supply = <&pm4125_l13>;
-       status = "okay";
-};
-
-&usb_dwc3 {
-       dr_mode = "host";
+&usb_dwc3_hs {
+       remote-endpoint = <&pm4125_hs_in>;
 };
 
 &usb_hsphy {
        status = "okay";
 };
 
+&usb_qmpphy {
+       vdda-phy-supply = <&pm4125_l12>;
+       vdda-pll-supply = <&pm4125_l13>;
+       status = "okay";
+};
+
+&usb_qmpphy_out {
+       remote-endpoint = <&pm4125_ss_in>;
+};
+
 &wifi {
        vdd-0.8-cx-mx-supply = <&pm4125_l7>;
        vdd-1.8-xo-supply = <&pm4125_l13>;
        vdd-1.3-rfa-supply = <&pm4125_l10>;
        vdd-3.3-ch0-supply = <&pm4125_l22>;
        qcom,ath10k-calibration-variant = "Thundercomm_RB1";
+       firmware-name = "qcm2290";
        status = "okay";
 };
 
index 696d6d43c56b326f5eff21b57cc28daad94c70c1..2c39bb1b97db5121f0e0e9c3d660df5390b561ac 100644 (file)
        vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
        vdd-3.3-ch0-supply = <&vreg_l23a_3p3>;
        qcom,ath10k-calibration-variant = "Thundercomm_RB2";
+       firmware-name = "qrb4210";
 
        status = "okay";
 };
index b2cf2c988336c0f7f99a0f710a59fb7fc956d6a3..9e9c7f81096bbafe771780698da19a7e2f908416 100644 (file)
 
                vreg_l13c_2p96: ldo13 {
                        regulator-name = "vreg_l13c_2p96";
-                       regulator-min-microvolt = <2504000>;
+                       regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2960000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
index 231cea1f0fa8f46d890146ed8d7f469bbf40d210..1b3dc0ece54dee1bb3c13271db1a241269d2ebae 100644 (file)
                interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
        };
 
        pcie0: pcie@1c00000 {
                phy-names = "pciephy";
 
                status = "disabled";
+
+               pcie@0 {
+                       device_type = "pci";
+                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                       bus-range = <0x01 0xff>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges;
+               };
        };
 
        pcie0_phy: phy@1c04000 {
                phy-names = "pciephy";
 
                status = "disabled";
+
+               pcie@0 {
+                       device_type = "pci";
+                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                       bus-range = <0x01 0xff>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges;
+               };
        };
 
        pcie1_phy: phy@1c14000 {
index 5afcb8212f490031cb6b1be367af463db69298d8..3f0d3e33894a0730bd0b14738ac95847bd92ee65 100644 (file)
        clock-frequency = <400000>;
        status = "okay";
 
-       /* embedded-controller@76 */
+       embedded-controller@76 {
+               compatible = "acer,aspire1-ec";
+               reg = <0x76>;
+
+               interrupts-extended = <&tlmm 30 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&ec_int_default>;
+               pinctrl-names = "default";
+
+               connector {
+                       compatible = "usb-c-connector";
+
+                       port {
+                               ec_dp_in: endpoint {
+                                       remote-endpoint = <&mdss_dp_out>;
+                               };
+                       };
+               };
+       };
 };
 
 &i2c4 {
        status = "okay";
 };
 
+&mdss_dp {
+       data-lanes = <0 1>;
+
+       vdda-1p2-supply = <&vreg_l3c_1p2>;
+       vdda-0p9-supply = <&vreg_l4a_0p8>;
+
+       status = "okay";
+};
+
+&mdss_dp_out {
+       remote-endpoint = <&ec_dp_in>;
+};
+
 &mdss_dsi0 {
        vdda-supply = <&vreg_l3c_1p2>;
        status = "okay";
                bias-disable;
        };
 
+       ec_int_default: ec-int-default-state {
+               pins = "gpio30";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        edp_bridge_irq_default: edp-bridge-irq-default-state {
                pins = "gpio11";
                function = "gpio";
index 5260c63db0078ba6689b1cf3e016134810aa995a..8513be29712013fdbaa9cb125350af992b8773a4 100644 (file)
@@ -1167,6 +1167,7 @@ ap_spi_fp: &spi10 {
 };
 
 &pm6150l_gpios {
+       status = "disabled"; /* No GPIOs are consumed or configured */
        gpio-line-names = "AP_SUSPEND",
                          "",
                          "",
index 2b481e20ae38f74000f8bbf7dd2a26f103465f0b..4774a859bd7eace07b9cde6ea09ce7aac79931a8 100644 (file)
                        compatible = "qcom,sc7180-qmp-ufs-phy",
                                     "qcom,sm7150-qmp-ufs-phy";
                        reg = <0 0x01d87000 0 0x1000>;
-                       clocks = <&gcc GCC_UFS_MEM_CLKREF_CLK>,
-                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
-                       clock-names = "ref", "ref_aux";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
+                                <&gcc GCC_UFS_MEM_CLKREF_CLK>;
+                       clock-names = "ref",
+                                     "ref_aux",
+                                     "qref";
                        power-domains = <&gcc UFS_PHY_GDSC>;
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
                        compatible = "qcom,sc7180-dcc", "qcom,dcc";
                        reg = <0x0 0x010a2000 0x0 0x1000>,
                              <0x0 0x010ae000 0x0 0x2000>;
+                       status = "disabled";
                };
 
                stm@6002000 {
index 41f51d32611107ef84d30034d703c89b32f7dec2..fc9ec367e3a5a7357236e0569aece65714fe9559 100644 (file)
                                    <0x100 &apps_smmu 0x1c81 0x1>;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
                                <0 0>,
                                <0 0>,
                                <0 0>;
+                       qcom,ice = <&ice>;
+
                        status = "disabled";
                };
 
                        status = "disabled";
                };
 
+               ice: crypto@1d88000 {
+                       compatible = "qcom,sc7280-inline-crypto-engine",
+                                    "qcom,inline-crypto-engine";
+                       reg = <0 0x01d88000 0 0x8000>;
+                       clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+               };
+
                cryptobam: dma-controller@1dc4000 {
                        compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
                        reg = <0x0 0x01dc4000 0x0 0x28000>;
                                                opp-hz = /bits/ 64 <506666667>;
                                                required-opps = <&rpmhpd_opp_nom>;
                                        };
+
+                                       opp-608000000 {
+                                               opp-hz = /bits/ 64 <608000000>;
+                                               required-opps = <&rpmhpd_opp_turbo>;
+                                       };
                                };
                        };
 
index 0c22f3efec20c8fd2430151c783834d2f89b5823..6af99116c7158d77e5d68ca2e9025d536afbe143 100644 (file)
@@ -51,6 +51,8 @@
 
                #address-cells = <1>;
                #size-cells = <0>;
+               orientation-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>,
+                                   <&tlmm 58 GPIO_ACTIVE_HIGH>;
 
                connector@0 {
                        compatible = "usb-c-connector";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
                };
 
                vreg_l10e_2p9: ldo10 {
                        regulator-min-microvolt = <2904000>;
                        regulator-max-microvolt = <2904000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
                };
 
                vreg_l16e_3p0: ldo16 {
 
        zap-shader {
                memory-region = <&gpu_mem>;
-               firmware-name = "qcom/sc8180x/qcdxkmsuc8180.mbn";
+               firmware-name = "qcom/sc8180x/LENOVO/82AK/qcdxkmsuc8180.mbn";
        };
 };
 
 &i2c1 {
        clock-frequency = <100000>;
 
-       pinctrl-0 = <&i2c1_active>, <&i2c1_hid_active>;
+       pinctrl-0 = <&i2c1_active>;
        pinctrl-names = "default";
 
        status = "okay";
 
-       hid@10 {
+       touchscreen@10 {
                compatible = "hid-over-i2c";
                reg = <0x10>;
                hid-descr-addr = <0x1>;
 
                interrupts-extended = <&tlmm 122 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&ts_int_default>;
+               pinctrl-names = "default";
        };
 };
 
 &i2c7 {
-       clock-frequency = <100000>;
+       clock-frequency = <1000000>;
 
-       pinctrl-0 = <&i2c7_active>, <&i2c7_hid_active>;
+       pinctrl-0 = <&i2c7_active>;
        pinctrl-names = "default";
 
        status = "okay";
 
-       hid@5 {
+       keyboard@5 {
                compatible = "hid-over-i2c";
                reg = <0x5>;
                hid-descr-addr = <0x20>;
 
                interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&kb_int_default>;
+               pinctrl-names = "default";
        };
 
-       hid@2c {
+       touchpad@2c {
                compatible = "hid-over-i2c";
                reg = <0x2c>;
                hid-descr-addr = <0x20>;
 
                interrupts-extended = <&tlmm 24 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&tp_int_default>;
+               pinctrl-names = "default";
        };
 };
 
                drive-strength = <2>;
        };
 
-       i2c1_hid_active: i2c1-hid-active-state {
-               pins = "gpio122";
-               function = "gpio";
-
-               bias-pull-up;
-               drive-strength = <2>;
-       };
-
        i2c7_active: i2c7-active-state {
                pins = "gpio98", "gpio99";
                function = "qup7";
                drive-strength = <2>;
        };
 
-       i2c7_hid_active: i2c7-hid-active-state {
-               pins = "gpio37", "gpio24";
+       kb_int_default: kb-int-default-state {
+               pins = "gpio37";
                function = "gpio";
 
                bias-pull-up;
                };
        };
 
+       tp_int_default: tp-int-default-state {
+               pins = "gpio24";
+               function = "gpio";
+
+               bias-pull-up;
+               drive-strength = <2>;
+       };
+
+       ts_int_default: ts-int-default-state {
+               pins = "gpio122";
+               function = "gpio";
+
+               bias-pull-up;
+               drive-strength = <2>;
+       };
+
        usbprim_sbu_default: usbprim-sbu-state {
                oe-n-pins {
                        pins = "gpio152";
index 053f7861c3ceced82c3dfb0cf539f94c9c2f64a5..581a70c34fd29e029b48860ad5b4b35d84942a26 100644 (file)
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie3_phy: phy@1c0c000 {
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c16000 {
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie2_phy: phy@1c1c000 {
 
                gpu: gpu@2c00000 {
                        compatible = "qcom,adreno-680.1", "qcom,adreno";
-                       #stream-id-cells = <16>;
 
                        reg = <0 0x02c00000 0 0x40000>;
                        reg-names = "kgsl_3d0_reg_memory";
 
                system-cache-controller@9200000 {
                        compatible = "qcom,sc8180x-llcc";
-                       reg = <0 0x09200000 0 0x50000>, <0 0x09280000 0 0x50000>,
-                             <0 0x09300000 0 0x50000>, <0 0x09380000 0 0x50000>,
-                             <0 0x09600000 0 0x50000>;
+                       reg = <0 0x09200000 0 0x58000>, <0 0x09280000 0 0x58000>,
+                             <0 0x09300000 0 0x58000>, <0 0x09380000 0 0x58000>,
+                             <0 0x09400000 0 0x58000>, <0 0x09480000 0 0x58000>,
+                             <0 0x09500000 0 0x58000>, <0 0x09580000 0 0x58000>,
+                             <0 0x09600000 0 0x58000>;
                        reg-names = "llcc0_base", "llcc1_base", "llcc2_base",
-                                   "llcc3_base", "llcc_broadcast_base";
+                                   "llcc3_base", "llcc4_base", "llcc5_base",
+                                   "llcc6_base", "llcc7_base",  "llcc_broadcast_base";
                        interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                                power-domains = <&rpmhpd SC8180X_MMCX>;
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <0>;
 
                                ports {
                                        #address-cells = <1>;
                                reg-names = "dsi_ctrl";
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <4>;
 
                                clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
                                         <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
                                reg-names = "dsi_ctrl";
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <5>;
 
                                clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>,
                                         <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>,
                                reg = <0 0xae90000 0 0x200>,
                                      <0 0xae90200 0 0x200>,
                                      <0 0xae90400 0 0x600>,
-                                     <0 0xae90a00 0 0x400>;
+                                     <0 0xae90a00 0 0x400>,
+                                     <0 0xae91000 0 0x400>;
                                interrupt-parent = <&mdss>;
                                interrupts = <12>;
                                clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
                                reg = <0 0xae98000 0 0x200>,
                                      <0 0xae98200 0 0x200>,
                                      <0 0xae98400 0 0x600>,
-                                     <0 0xae98a00 0 0x400>;
+                                     <0 0xae98a00 0 0x400>,
+                                     <0 0xae99000 0 0x400>;
                                interrupt-parent = <&mdss>;
                                interrupts = <13>;
                                clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
index 41215567b3aed7d4211a8a4c5ab94042d205b422..372b35fb844f5de8790f8c6f6375470e63dfaa87 100644 (file)
                reset-n-pins {
                        pins = "gpio99";
                        function = "gpio";
-                       output-high;
-                       drive-strength = <16>;
+                       bias-disable;
                };
        };
 
index 15ae94c1602d59ba2b3aa5fd954fabca95b667f4..4bf99b6b6e5fb3c125361647779461dd87f67a43 100644 (file)
 
                #address-cells = <1>;
                #size-cells = <0>;
+               orientation-gpios = <&tlmm 166 GPIO_ACTIVE_HIGH>,
+                                   <&tlmm 49 GPIO_ACTIVE_HIGH>;
 
                connector@0 {
                        compatible = "usb-c-connector";
                        regulator-always-on;
                };
 
+               vreg_l1b: ldo1 {
+                       regulator-name = "vreg_l1b";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
                vreg_l3b: ldo3 {
                        regulator-name = "vreg_l3b";
                        regulator-min-microvolt = <1200000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
+               vreg_l8c: ldo8 {
+                       regulator-name = "vreg_l8c";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
                vreg_l12c: ldo12 {
                        regulator-name = "vreg_l12c";
                        regulator-min-microvolt = <1800000>;
                vdd-l6-l9-l10-supply = <&vreg_s12b>;
                vdd-l8-supply = <&vreg_s12b>;
 
+               vreg_l2d: ldo2 {
+                       regulator-name = "vreg_l2d";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
                vreg_l3d: ldo3 {
                        regulator-name = "vreg_l3d";
                        regulator-min-microvolt = <1200000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
+               vreg_l8d: ldo8 {
+                       regulator-name = "vreg_l8d";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
                vreg_l9d: ldo9 {
                        regulator-name = "vreg_l9d";
                        regulator-min-microvolt = <912000>;
                        regulator-max-microvolt = <912000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
+
+               vreg_l10d: ldo10 {
+                       regulator-name = "vreg_l10d";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
        };
 };
 
 
        status = "okay";
 
-       /* FIXME: verify */
        touchscreen@10 {
-               compatible = "hid-over-i2c";
+               compatible = "elan,ekth5015m", "elan,ekth6915";
                reg = <0x10>;
 
-               hid-descr-addr = <0x1>;
                interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>;
-               vdd-supply = <&vreg_misc_3p3>;
-               vddl-supply = <&vreg_s10b>;
+               reset-gpios = <&tlmm 99 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+               no-reset-on-power-off;
+
+               vcc33-supply = <&vreg_misc_3p3>;
+               vccio-supply = <&vreg_misc_3p3>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&ts0_default>;
        pinctrl-0 = <&pcie4_default>;
 
        status = "okay";
+};
 
-       pcie@0 {
-               device_type = "pci";
-               reg = <0x0 0x0 0x0 0x0 0x0>;
-               #address-cells = <3>;
-               #size-cells = <2>;
-               ranges;
-
-               bus-range = <0x01 0xff>;
-
-               wifi@0 {
-                       compatible = "pci17cb,1103";
-                       reg = <0x10000 0x0 0x0 0x0 0x0>;
+&pcie4_port0 {
+       wifi@0 {
+               compatible = "pci17cb,1103";
+               reg = <0x10000 0x0 0x0 0x0 0x0>;
 
-                       qcom,ath11k-calibration-variant = "LE_X13S";
-               };
+               qcom,ath11k-calibration-variant = "LE_X13S";
        };
 };
 
        remote-endpoint = <&pmic_glink_con1_hs>;
 };
 
+&usb_2 {
+       status = "okay";
+};
+
+&usb_2_hsphy0 {
+       vdda-pll-supply = <&vreg_l1b>;
+       vdda18-supply = <&vreg_l1c>;
+       vdda33-supply = <&vreg_l7d>;
+
+       status = "okay";
+};
+
+&usb_2_hsphy1 {
+       vdda-pll-supply = <&vreg_l8d>;
+       vdda18-supply = <&vreg_l1c>;
+       vdda33-supply = <&vreg_l7d>;
+
+       status = "okay";
+};
+
+&usb_2_hsphy2 {
+       vdda-pll-supply = <&vreg_l10d>;
+       vdda18-supply = <&vreg_l8c>;
+       vdda33-supply = <&vreg_l2d>;
+
+       status = "okay";
+};
+
+&usb_2_hsphy3 {
+       vdda-pll-supply = <&vreg_l10d>;
+       vdda18-supply = <&vreg_l8c>;
+       vdda33-supply = <&vreg_l2d>;
+
+       status = "okay";
+};
+
+&usb_2_qmpphy0 {
+       vdda-phy-supply = <&vreg_l1b>;
+       vdda-pll-supply = <&vreg_l4d>;
+
+       status = "okay";
+};
+
+&usb_2_qmpphy1 {
+       vdda-phy-supply = <&vreg_l8d>;
+       vdda-pll-supply = <&vreg_l4d>;
+
+       status = "okay";
+};
+
 &vamacro {
        pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
        pinctrl-names = "default";
                reset-n-pins {
                        pins = "gpio99";
                        function = "gpio";
-                       output-high;
-                       drive-strength = <16>;
+                       drive-strength = <2>;
+                       bias-disable;
                };
        };
 
index d0f82e12289e1b53f1d01592a2131932a48866c5..59f0a850671a31db49557bda0288f9ac04543480 100644 (file)
@@ -50,7 +50,8 @@
                        reg = <0x0 0x0>;
                        clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
-                       capacity-dmips-mhz = <602>;
+                       capacity-dmips-mhz = <981>;
+                       dynamic-power-coefficient = <549>;
                        next-level-cache = <&L2_0>;
                        power-domains = <&CPU_PD0>;
                        power-domain-names = "psci";
@@ -77,7 +78,8 @@
                        reg = <0x0 0x100>;
                        clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
-                       capacity-dmips-mhz = <602>;
+                       capacity-dmips-mhz = <981>;
+                       dynamic-power-coefficient = <549>;
                        next-level-cache = <&L2_100>;
                        power-domains = <&CPU_PD1>;
                        power-domain-names = "psci";
                        reg = <0x0 0x200>;
                        clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
-                       capacity-dmips-mhz = <602>;
+                       capacity-dmips-mhz = <981>;
+                       dynamic-power-coefficient = <549>;
                        next-level-cache = <&L2_200>;
                        power-domains = <&CPU_PD2>;
                        power-domain-names = "psci";
                        reg = <0x0 0x300>;
                        clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
-                       capacity-dmips-mhz = <602>;
+                       capacity-dmips-mhz = <981>;
+                       dynamic-power-coefficient = <549>;
                        next-level-cache = <&L2_300>;
                        power-domains = <&CPU_PD3>;
                        power-domain-names = "psci";
                        clocks = <&cpufreq_hw 1>;
                        enable-method = "psci";
                        capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <590>;
                        next-level-cache = <&L2_400>;
                        power-domains = <&CPU_PD4>;
                        power-domain-names = "psci";
                        clocks = <&cpufreq_hw 1>;
                        enable-method = "psci";
                        capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <590>;
                        next-level-cache = <&L2_500>;
                        power-domains = <&CPU_PD5>;
                        power-domain-names = "psci";
                        clocks = <&cpufreq_hw 1>;
                        enable-method = "psci";
                        capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <590>;
                        next-level-cache = <&L2_600>;
                        power-domains = <&CPU_PD6>;
                        power-domain-names = "psci";
                        clocks = <&cpufreq_hw 1>;
                        enable-method = "psci";
                        capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <590>;
                        next-level-cache = <&L2_700>;
                        power-domains = <&CPU_PD7>;
                        power-domain-names = "psci";
                scm: scm {
                        compatible = "qcom,scm-sc8280xp", "qcom,scm";
                        interconnects = <&aggre2_noc MASTER_CRYPTO 0 &mc_virt SLAVE_EBI1 0>;
+                       qcom,dload-mode = <&tcsr 0x13000>;
                };
        };
 
                        #mbox-cells = <2>;
                };
 
+               qfprom: efuse@784000 {
+                       compatible = "qcom,sc8280xp-qfprom", "qcom,qfprom";
+                       reg = <0 0x00784000 0 0x3000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       gpu_speed_bin: gpu-speed-bin@18b {
+                               reg = <0x18b 0x1>;
+                               bits = <5 3>;
+                       };
+               };
+
                qup2: geniqup@8c0000 {
                        compatible = "qcom,geni-se-qup";
                        reg = <0 0x008c0000 0 0x2000>;
                        linux,pci-domain = <6>;
                        num-lanes = <1>;
 
+                       msi-map = <0x0 &its 0xe0000 0x10000>;
+
                        interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie4_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie4_phy: phy@1c06000 {
                        linux,pci-domain = <5>;
                        num-lanes = <2>;
 
+                       msi-map = <0x0 &its 0xd0000 0x10000>;
+
                        interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie3b_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie3b_phy: phy@1c0e000 {
                        linux,pci-domain = <4>;
                        num-lanes = <4>;
 
+                       msi-map = <0x0 &its 0xc0000 0x10000>;
+
                        interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie3a_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie3a_phy: phy@1c14000 {
                        linux,pci-domain = <3>;
                        num-lanes = <2>;
 
+                       msi-map = <0x0 &its 0xb0000 0x10000>;
+
                        interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>,
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie2b_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie2b_phy: phy@1c1e000 {
                        linux,pci-domain = <2>;
                        num-lanes = <4>;
 
+                       msi-map = <0x0 &its 0xa0000 0x10000>;
+
                        interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 523 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 524 IRQ_TYPE_LEVEL_HIGH>,
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie2a_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie2a_phy: phy@1c24000 {
                        interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               usb_2: usb@a4f8800 {
+                       compatible = "qcom,sc8280xp-dwc3-mp", "qcom,dwc3";
+                       reg = <0 0x0a4f8800 0 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       clocks = <&gcc GCC_CFG_NOC_USB3_MP_AXI_CLK>,
+                                <&gcc GCC_USB30_MP_MASTER_CLK>,
+                                <&gcc GCC_AGGRE_USB3_MP_AXI_CLK>,
+                                <&gcc GCC_USB30_MP_SLEEP_CLK>,
+                                <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>,
+                                <&gcc GCC_AGGRE_USB_NOC_AXI_CLK>,
+                                <&gcc GCC_AGGRE_USB_NOC_NORTH_AXI_CLK>,
+                                <&gcc GCC_AGGRE_USB_NOC_SOUTH_AXI_CLK>,
+                                <&gcc GCC_SYS_NOC_USB_AXI_CLK>;
+                       clock-names = "cfg_noc", "core", "iface", "sleep", "mock_utmi",
+                                     "noc_aggr", "noc_aggr_north", "noc_aggr_south", "noc_sys";
+
+                       assigned-clocks = <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_MP_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 857 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 856 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 860 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 859 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 127 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 126 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 129 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 128 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 131 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 130 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 133 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 132 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 16 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
+
+                       interrupt-names = "pwr_event_1", "pwr_event_2",
+                                         "pwr_event_3", "pwr_event_4",
+                                         "hs_phy_1",    "hs_phy_2",
+                                         "hs_phy_3",    "hs_phy_4",
+                                         "dp_hs_phy_1", "dm_hs_phy_1",
+                                         "dp_hs_phy_2", "dm_hs_phy_2",
+                                         "dp_hs_phy_3", "dm_hs_phy_3",
+                                         "dp_hs_phy_4", "dm_hs_phy_4",
+                                         "ss_phy_1",    "ss_phy_2";
+
+                       power-domains = <&gcc USB30_MP_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       resets = <&gcc GCC_USB30_MP_BCR>;
+
+                       interconnects = <&aggre1_noc MASTER_USB3_MP 0 &mc_virt SLAVE_EBI1 0>,
+                                       <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_USB3_MP 0>;
+                       interconnect-names = "usb-ddr", "apps-usb";
+
+                       wakeup-source;
+
+                       status = "disabled";
+
+                       usb_2_dwc3: usb@a400000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a400000 0 0xcd00>;
+                               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                               iommus = <&apps_smmu 0x800 0x0>;
+                               phys = <&usb_2_hsphy0>, <&usb_2_qmpphy0>,
+                                      <&usb_2_hsphy1>, <&usb_2_qmpphy1>,
+                                      <&usb_2_hsphy2>,
+                                      <&usb_2_hsphy3>;
+                               phy-names = "usb2-0", "usb3-0",
+                                           "usb2-1", "usb3-1",
+                                           "usb2-2",
+                                           "usb2-3";
+                               dr_mode = "host";
+                       };
+               };
+
                usb_0: usb@a6f8800 {
                        compatible = "qcom,sc8280xp-dwc3", "qcom,dwc3";
                        reg = <0 0x0a6f8800 0 0x400>;
                        assigned-clock-rates = <19200000>, <200000000>;
 
                        interrupts-extended = <&intc GIC_SPI 804 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 805 IRQ_TYPE_LEVEL_HIGH>,
                                              <&pdc 14 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 138 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "pwr_event",
+                                         "hs_phy_irq",
                                          "dp_hs_phy_irq",
                                          "dm_hs_phy_irq",
                                          "ss_phy_irq";
                        assigned-clock-rates = <19200000>, <200000000>;
 
                        interrupts-extended = <&intc GIC_SPI 811 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 790 IRQ_TYPE_LEVEL_HIGH>,
                                              <&pdc 12 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 13 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 136 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "pwr_event",
+                                         "hs_phy_irq",
                                          "dp_hs_phy_irq",
                                          "dm_hs_phy_irq",
                                          "ss_phy_irq";
                        #thermal-sensor-cells = <1>;
                };
 
+               restart@c264000 {
+                       compatible = "qcom,pshold";
+                       reg = <0 0x0c264000 0 0x4>;
+                       /* TZ seems to block access */
+                       status = "reserved";
+               };
+
                tsens1: thermal-sensor@c265000 {
                        compatible = "qcom,sc8280xp-tsens", "qcom,tsens-v2";
                        reg = <0 0x0c265000 0 0x1ff>, /* TM */
                        #size-cells = <2>;
                        ranges;
 
-                       msi-controller@17a40000 {
+                       its: msi-controller@17a40000 {
                                compatible = "arm,gic-v3-its";
                                reg = <0 0x17a40000 0 0x20000>;
                                msi-controller;
                              <0 0x18592000 0 0x1000>;
                        reg-names = "freq-domain0", "freq-domain1";
 
+                       interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dcvsh-irq-0",
+                                         "dcvsh-irq-1";
+
                        clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_GPLL0>;
                        clock-names = "xo", "alternate";
 
index 819a5f8825e783daef1a64d4e460cb3bd7e5aa1a..a4b722e0fc1e1216dcb55908040d6238406e80b3 100644 (file)
@@ -90,6 +90,8 @@
 
        gpio-keys {
                compatible = "gpio-keys";
+               pinctrl-0 = <&gpio_keys_default>;
+               pinctrl-names = "default";
 
                key-camera-focus {
                        label = "Camera Focus";
                bias-disable;
        };
 
+       gpio_keys_default: gpio-keys-default-state {
+               pins = "gpio64", "gpio113";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
        imx300_vana_default: imx300-vana-default-state {
                pins = "gpio50";
                function = "gpio";
index 057579ae30138d343477e8cc4db5ccca46d3b128..e2708c74e95afd2f199306a9e868f2bbd6f26de3 100644 (file)
        };
 };
 
+&pmi632_typec {
+       status = "okay";
+
+       connector {
+               compatible = "usb-c-connector";
+
+               power-role = "dual";
+               data-role = "dual";
+               self-powered;
+
+               typec-power-opmode = "default";
+               pd-disable;
+
+               port {
+                       pmi632_hs_in: endpoint {
+                               remote-endpoint = <&usb_dwc3_hs>;
+                       };
+               };
+       };
+};
+
+&pmi632_vbus {
+       regulator-min-microamp = <500000>;
+       regulator-max-microamp = <1000000>;
+       status = "okay";
+};
+
 &sdhc_1 {
        status = "okay";
        vmmc-supply = <&pm8953_l8>;
        status = "okay";
 };
 
-&usb3_dwc3 {
-       dr_mode = "peripheral";
+&usb_dwc3_hs {
+       remote-endpoint = <&pmi632_hs_in>;
 };
 
 &wcnss {
index 32a7bd59e1ece195f486e40f72755daf4cdc32ec..176b0119fe6d45d7d3fa584f1825f4e4e681c2e7 100644 (file)
        };
 };
 
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi0 {
+       vdda-supply = <&vreg_l1a_1p225>;
+       status = "okay";
+
+       panel@0 {
+               compatible = "samsung,s6e3fa7-ams559nk06";
+               reg = <0>;
+
+               reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&panel_default>;
+
+               power-supply = <&vreg_l6b_3p3>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&panel_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+       vdds-supply = <&vreg_l1b_0p925>;
+       status = "okay";
+};
+
+&mdss_mdp {
+       status = "okay";
+};
+
 &pm660l_gpios {
        vol_up_pin: vol-up-state {
                pins = "gpio7";
 &tlmm {
        gpio-reserved-ranges = <0 4>, <81 4>;
 
+       panel_default: panel-default-state {
+               te-pins {
+                       pins = "gpio10";
+                       function = "mdp_vsync";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+
+               reset-pins {
+                       pins = "gpio75";
+                       function = "gpio";
+                       drive-strength = <8>;
+                       bias-disable;
+               };
+
+               mode-pins {
+                       pins = "gpio76";
+                       function = "gpio";
+                       drive-strength = <8>;
+                       bias-disable;
+               };
+       };
+
        touchscreen_default: ts-default-state {
                ts-reset-pins {
                        pins = "gpio99";
index 1f517328199b908655a5eed5c350641edd06ae1a..9a6d3d0c0ee43af337728546626ec70ce47b9ec6 100644 (file)
 
                gpio = <&tlmm 90 GPIO_ACTIVE_HIGH>;
                enable-active-high;
+               /*
+                * FIXME: this regulator is responsible for VBUS on the left USB
+                * port. Keep it always on until we can correctly model this
+                * relationship.
+                */
+               regulator-always-on;
 
                pinctrl-names = "default";
                pinctrl-0 = <&pcie0_pwren_state>;
index 2f20be99ee7e13dd18802c31d8302f4f5fbc3cff..10de2bd46ffcc659198ad3e70badd82a3a89ad3d 100644 (file)
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0a000 {
index 7dbdf8ca6de685bc7c0605619022eff149cc8c7c..da1704061d58c7440ba13460fdef58aa3b2f4afb 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a55-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
        };
 
                hwlocks = <&tcsr_mutex 3>;
        };
 
-       soc: soc {
+       soc: soc@0 {
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <2>;
index aca0a87092e453951a889008a1f7640606af75bd..9ed062150aaf20dd0a32d049035301f767fb59d0 100644 (file)
 
                        power-domains = <&rpmpd SM6115_VDDCX>;
                        operating-points-v2 = <&sdhc1_opp_table>;
+                       iommus = <&apps_smmu 0x00c0 0x0>;
                        interconnects = <&system_noc MASTER_SDCC_1 RPM_ALWAYS_TAG
                                         &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>,
                                        <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
index 0be053555602c0d3e1bd52888c05e841bb4de9ae..84ff20a96c838b52d8e5d54f97e3792de3f8fd99 100644 (file)
                        status = "disabled";
                };
 
+               cryptobam: dma-controller@1dc4000 {
+                       compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
+                       reg = <0 0x01dc4000 0 0x24000>;
+                       interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+                       qcom,controlled-remotely;
+                       num-channels = <16>;
+                       qcom,num-ees = <4>;
+                       iommus = <&apps_smmu 0x426 0x11>,
+                                <&apps_smmu 0x432 0x0>,
+                                <&apps_smmu 0x436 0x11>,
+                                <&apps_smmu 0x438 0x1>,
+                                <&apps_smmu 0x43f 0x0>;
+               };
+
+               crypto: crypto@1dfa000 {
+                       compatible = "qcom,sm6350-qce", "qcom,sm8150-qce", "qcom,qce";
+                       reg = <0 0x01dfa000 0 0x6000>;
+                       dmas = <&cryptobam 4>, <&cryptobam 5>;
+                       dma-names = "rx", "tx";
+                       iommus = <&apps_smmu 0x426 0x11>,
+                                <&apps_smmu 0x432 0x0>,
+                                <&apps_smmu 0x436 0x11>,
+                                <&apps_smmu 0x438 0x1>,
+                                <&apps_smmu 0x43f 0x0>;
+                       interconnects = <&aggre2_noc MASTER_CRYPTO_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                        &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "memory";
+               };
+
                ipa: ipa@1e40000 {
                        compatible = "qcom,sm6350-ipa";
 
                                                        remote-endpoint = <&mdss_dsi0_in>;
                                                };
                                        };
+
+                                       port@2 {
+                                               reg = <2>;
+
+                                               dpu_intf0_out: endpoint {
+                                                       remote-endpoint = <&mdss_dp_in>;
+                                               };
+                                       };
                                };
 
                                mdp_opp_table: opp-table {
                                };
                        };
 
+                       mdss_dp: displayport-controller@ae90000 {
+                               compatible = "qcom,sm6350-dp", "qcom,sm8350-dp";
+                               reg = <0 0xae90000 0 0x200>,
+                                     <0 0xae90200 0 0x200>,
+                                     <0 0xae90400 0 0x600>,
+                                     <0 0xae91000 0 0x400>,
+                                     <0 0xae91400 0 0x400>;
+                               interrupt-parent = <&mdss>;
+                               interrupts = <12>;
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_AUX_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_LINK_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK>;
+                               clock-names = "core_iface",
+                                             "core_aux",
+                                             "ctrl_link",
+                                             "ctrl_link_iface",
+                                             "stream_pixel";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>;
+                               assigned-clock-parents = <&usb_1_qmpphy QMP_USB43DP_DP_LINK_CLK>,
+                                                        <&usb_1_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
+
+                               phys = <&usb_1_qmpphy QMP_USB43DP_DP_PHY>;
+                               phy-names = "dp";
+
+                               #sound-dai-cells = <0>;
+
+                               operating-points-v2 = <&dp_opp_table>;
+                               power-domains = <&rpmhpd SM6350_CX>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               mdss_dp_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf0_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mdss_dp_out: endpoint {
+                                               };
+                                       };
+                               };
+
+                               dp_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-160000000 {
+                                               opp-hz = /bits/ 64 <160000000>;
+                                               required-opps = <&rpmhpd_opp_low_svs>;
+                                       };
+
+                                       opp-270000000 {
+                                               opp-hz = /bits/ 64 <270000000>;
+                                               required-opps = <&rpmhpd_opp_svs>;
+                                       };
+
+                                       opp-540000000 {
+                                               opp-hz = /bits/ 64 <540000000>;
+                                               required-opps = <&rpmhpd_opp_svs_l1>;
+                                       };
+
+                                       opp-810000000 {
+                                               opp-hz = /bits/ 64 <810000000>;
+                                               required-opps = <&rpmhpd_opp_nom>;
+                                       };
+                               };
+                       };
+
                        mdss_dsi0: dsi@ae94000 {
                                compatible = "qcom,sm6350-dsi-ctrl", "qcom,mdss-dsi-ctrl";
                                reg = <0 0x0ae94000 0 0x400>;
index de670b407ef1425f7de2d2aa822a574a3a7496e3..6cb6f503fdac95c7b0ff902c7662830b9d27efd8 100644 (file)
        firmware-name = "qcom/sm8150/cdsp.mbn";
 };
 
+&remoteproc_mpss {
+       firmware-name = "qcom/sm8150/modem.mbn";
+       status = "okay";
+};
+
 &remoteproc_slpi {
        status = "okay";
 
 &usb_2_dwc3 {
        dr_mode = "host";
 };
+
+&wifi {
+       status = "okay";
+
+       vdd-0.8-cx-mx-supply = <&vreg_l1a_0p75>;
+       vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
+       vdd-1.3-rfa-supply = <&vreg_l2c_1p3>;
+       vdd-3.3-ch0-supply = <&vreg_l11c_3p3>;
+
+       qcom,ath10k-calibration-variant = "Qualcomm_sm8150hdk";
+};
index a35c0852b5a14cd8e2833986916bc24d096eefb0..ff22e434666023492f7528cc716f707ffcd91517 100644 (file)
                        pinctrl-0 = <&pcie0_default_state>;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        pinctrl-0 = <&pcie1_default_state>;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
index 6f54f50a70b0f8e0b0c81da5963e319858b6ddcd..41f117474872898aaeaab698ace0749f06f8743c 100644 (file)
        connector {
                compatible = "usb-c-connector";
 
-               power-role = "source";
+               op-sink-microwatt = <10000000>;
+               power-role = "dual";
                data-role = "dual";
                self-powered;
 
                                         PDO_FIXED_USB_COMM |
                                         PDO_FIXED_DATA_SWAP)>;
 
+               sink-pdos = <PDO_FIXED(5000, 3000,
+                                      PDO_FIXED_DUAL_ROLE |
+                                      PDO_FIXED_USB_COMM |
+                                      PDO_FIXED_DATA_SWAP)
+                                      PDO_VAR(5000, 12000, 5000)>;
+
                ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 };
 
 &pm8150b_vbus {
+       regulator-min-microamp = <500000>;
+       regulator-max-microamp = <3000000>;
        status = "okay";
 };
 
index 7f2333c9d17d6d74ee3fe33a017e2fa03bcb3683..8ccade628f1f471bb41495b55b4708aae76d75b2 100644 (file)
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie2_phy: phy@1c16000 {
index b43d264ed42b1c78e40fb7930501f49ae2af1a14..4c25ab2f5670ef51f212280bb7a503aae9803a78 100644 (file)
@@ -42,6 +42,7 @@
                compatible = "qcom,sm8350-pmic-glink", "qcom,pmic-glink";
                #address-cells = <1>;
                #size-cells = <0>;
+               orientation-gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
 
                connector@0 {
                        compatible = "usb-c-connector";
index a5e7dbbd8c6c5ee1d9c46233f8ef034957b7984f..f7c4700f00c36c19ed287eaa2c6ee1188ca57121 100644 (file)
@@ -12,6 +12,7 @@
 #include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/firmware/qcom,scm.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interconnect/qcom,icc.h>
 #include <dt-bindings/interconnect/qcom,sm8350.h>
 #include <dt-bindings/mailbox/qcom-ipcc.h>
 #include <dt-bindings/phy/phy-qcom-qmp.h>
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
                                <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
                                <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
                                <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
+                       interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "ufs-ddr", "cpu-ufs";
                        freq-table-hz =
                                <75000000 300000000>,
                                <0 0>,
index 0786cff07b8920f36576c9007f261d32c04fa08a..3be46b56c723d4e743a27bda3ac834efdd75f01f 100644 (file)
@@ -95,6 +95,7 @@
                compatible = "qcom,sm8450-pmic-glink", "qcom,pmic-glink";
                #address-cells = <1>;
                #size-cells = <0>;
+               orientation-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>;
 
                connector@0 {
                        compatible = "usb-c-connector";
index c7d05945aa5192632253b421a3c3e06b25f8998c..7b62ead68e773209d11bc481880f6d78d018ae56 100644 (file)
        vdda-pll-supply = <&vreg_l5b_0p88>;
        vdda18-supply = <&vreg_l1c_1p8>;
        vdda33-supply = <&vreg_l2b_3p07>;
+       qcom,squelch-detector-bp = <(-2090)>;
+       qcom,hs-disconnect-bp = <1743>;
+       qcom,pre-emphasis-amplitude-bp = <40000>;
+       qcom,pre-emphasis-duration-bp = <20000>;
+       qcom,hs-amplitude-bp = <2000>;
+       qcom,hs-output-impedance-micro-ohms = <2600000>;
+       qcom,hs-crossover-voltage-microvolt = <(-31000)>;
+       qcom,hs-rise-fall-time-bp = <(-4100)>;
 };
 
 &usb_1_qmpphy {
index 024d2653cc3075126a59da6f099c5a14b18bc8d6..616461fcbab99f264f05be9cd7cdee789809d15e 100644 (file)
                        pinctrl-0 = <&pcie0_default_state>;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        pinctrl-0 = <&pcie1_default_state>;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "sdsp";
+                                       qcom,non-secure-domain;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "adsp";
+                                       qcom,non-secure-domain;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "cdsp";
+                                       qcom,non-secure-domain;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
diff --git a/src/arm64/qcom/sm8550-sony-xperia-yodo-pdx234.dts b/src/arm64/qcom/sm8550-sony-xperia-yodo-pdx234.dts
new file mode 100644 (file)
index 0000000..85e0d3d
--- /dev/null
@@ -0,0 +1,779 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/firmware/qcom,scm.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/sound/cs35l45.h>
+#include "sm8550.dtsi"
+#include "pm8010.dtsi"
+#include "pm8550.dtsi"
+#include "pm8550b.dtsi"
+#define PMK8550VE_SID 5
+#include "pm8550ve.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmk8550.dtsi"
+/* TODO: Only one SID of PMR735D seems accessible? */
+
+/delete-node/ &hwfence_shbuf;
+/delete-node/ &mpss_mem;
+/delete-node/ &rmtfs_mem;
+/ {
+       model = "Sony Xperia 1 V";
+       compatible = "sony,pdx234", "qcom,sm8550";
+       chassis-type = "handset";
+
+       aliases {
+               i2c0 = &i2c0;
+               i2c4 = &i2c4;
+               i2c10 = &i2c10;
+               i2c11 = &i2c11;
+               i2c16 = &i2c_hub_2;
+               serial0 = &uart7;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               label = "gpio-keys";
+
+               pinctrl-0 = <&focus_n &snapshot_n &vol_down_n>;
+               pinctrl-names = "default";
+
+               key-camera-focus {
+                       label = "Camera Focus";
+                       linux,code = <KEY_CAMERA_FOCUS>;
+                       gpios = <&pm8550b_gpios 8 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+
+               key-camera-snapshot {
+                       label = "Camera Snapshot";
+                       gpios = <&pm8550b_gpios 7 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_CAMERA>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+
+               key-volume-down {
+                       label = "Volume Down";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+       };
+
+       pmic-glink {
+               compatible = "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
+               orientation-gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               connector@0 {
+                       compatible = "usb-c-connector";
+                       reg = <0>;
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       pmic_glink_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss_in: endpoint {
+                                               remote-endpoint = <&usb_dp_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       reserved-memory {
+               mpss_mem: mpss-region@89800000 {
+                       reg = <0x0 0x89800000 0x0 0x10800000>;
+                       no-map;
+               };
+
+               splash@b8000000 {
+                       reg = <0x0 0xb8000000 0x0 0x2b00000>;
+                       no-map;
+               };
+
+               hwfence_shbuf: hwfence-shbuf-region@e6440000 {
+                       reg = <0x0 0xe6440000 0x0 0x2dd000>;
+                       no-map;
+               };
+
+               rmtfs_mem: memory@f8b00000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0x0 0xf8b00000 0x0 0x280000>;
+                       no-map;
+
+                       qcom,client-id = <1>;
+                       qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
+               };
+
+               ramoops@ffd00000 {
+                       compatible = "ramoops";
+                       reg = <0x0 0xffd00000 0x0 0xc0000>;
+                       console-size = <0x40000>;
+                       record-size = <0x1000>;
+                       pmsg-size = <0x40000>;
+                       ecc-size = <16>;
+               };
+
+               rdtag-store-region@ffdc0000 {
+                       reg = <0x0 0xffdc0000 0x0 0x40000>;
+                       no-map;
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm8550-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               pm8550_bob1: bob1 {
+                       regulator-name = "pm8550_bob1";
+                       regulator-min-microvolt = <3416000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* TODO: bob2 @ 2.704-3.008V doesn't fall into the vreg driver constraints */
+
+               pm8550_l1: ldo1 {
+                       regulator-name = "pm8550_l1";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l2: ldo2 {
+                       regulator-name = "pm8550_l2";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* L4 exists in cmd-db, but the board seems to crash on access */
+
+               pm8550_l5: ldo5 {
+                       regulator-name = "pm8550_l5";
+                       regulator-min-microvolt = <3104000>;
+                       regulator-max-microvolt = <3104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l6: ldo6 {
+                       regulator-name = "pm8550_l6";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l7: ldo7 {
+                       regulator-name = "pm8550_l7";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l8: ldo8 {
+                       regulator-name = "pm8550_l8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l9: ldo9 {
+                       regulator-name = "pm8550_l9";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l10: ldo10 {
+                       regulator-name = "pm8550_l10";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l11: ldo11 {
+                       regulator-name = "pm8550_l11";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l12: ldo12 {
+                       regulator-name = "pm8550_l12";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l13: ldo13 {
+                       regulator-name = "pm8550_l13";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l14: ldo14 {
+                       regulator-name = "pm8550_l14";
+                       regulator-min-microvolt = <3304000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l15: ldo15 {
+                       regulator-name = "pm8550_l15";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l16: ldo16 {
+                       regulator-name = "pm8550_l16";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l17: ldo17 {
+                       regulator-name = "pm8550_l17";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <2504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               pm8550vs_0_l1: ldo1 {
+                       regulator-name = "pm8550vs_0_l1";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_0_l3: ldo3 {
+                       regulator-name = "pm8550vs_0_l3";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "d";
+
+               pm8550vs_1_l1: ldo1 {
+                       regulator-name = "pm8550vs_1_l1";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* L3 exists in cmd-db, but the board seems to crash on access */
+       };
+
+       regulators-3 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               pm8550vs_2_s4: smps4 {
+                       regulator-name = "pm8550vs_2_s4";
+                       regulator-min-microvolt = <904000>;
+                       regulator-max-microvolt = <984000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_2_s5: smps5 {
+                       regulator-name = "pm8550vs_2_s5";
+                       regulator-min-microvolt = <1010000>;
+                       regulator-max-microvolt = <1120000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_2_l1: ldo1 {
+                       regulator-name = "pm8550vs_2_l1";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_2_l2: ldo2 {
+                       regulator-name = "pm8550vs_2_l2";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <968000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_2_l3: ldo3 {
+                       regulator-name = "pm8550vs_2_l3";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-4 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "f";
+
+               pm8550ve_s4: smps4 {
+                       regulator-name = "pm8550ve_s4";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <700000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550ve_l1: ldo1 {
+                       regulator-name = "pm8550ve_l1";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550ve_l2: ldo2 {
+                       regulator-name = "pm8550ve_l2";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550ve_l3: ldo3 {
+                       regulator-name = "pm8550ve_l3";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-5 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "g";
+
+               pm8550vs_3_s1: smps1 {
+                       regulator-name = "pm8550vs_3_s1";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_s2: smps2 {
+                       regulator-name = "pm8550vs_3_s2";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1036000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_s3: smps3 {
+                       regulator-name = "pm8550vs_3_s3";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <1004000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_s4: smps4 {
+                       regulator-name = "pm8550vs_3_s4";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1352000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_s5: smps5 {
+                       regulator-name = "pm8550vs_3_s5";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1004000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_s6: smps6 {
+                       regulator-name = "pm8550vs_3_s6";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_l1: ldo1 {
+                       regulator-name = "pm8550vs_3_l1";
+                       regulator-min-microvolt = <1144000>;
+                       regulator-max-microvolt = <1256000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_l2: ldo2 {
+                       regulator-name = "pm8550vs_3_l2";
+                       regulator-min-microvolt = <1104000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_l3: ldo3 {
+                       regulator-name = "pm8550vs_3_l3";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       /* TODO: Unknown PMIC @ k, l, PM8010 @ m, n */
+};
+
+&gpi_dma1 {
+       status = "okay";
+};
+
+&gpi_dma2 {
+       status = "okay";
+};
+
+&i2c_hub_2 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       pmic@75 {
+               compatible = "dlg,slg51000";
+               reg = <0x75>;
+               dlg,cs-gpios = <&pm8550vs_g_gpios 4 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&cam_pwr_a_cs>;
+               pinctrl-names = "default";
+
+               regulators {
+                       slg51000_a_ldo1: ldo1 {
+                               regulator-name = "slg51000_a_ldo1";
+                               regulator-min-microvolt = <2400000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       slg51000_a_ldo2: ldo2 {
+                               regulator-name = "slg51000_a_ldo2";
+                               regulator-min-microvolt = <2400000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       slg51000_a_ldo3: ldo3 {
+                               regulator-name = "slg51000_a_ldo3";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3750000>;
+                       };
+
+                       slg51000_a_ldo4: ldo4 {
+                               regulator-name = "slg51000_a_ldo4";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3750000>;
+                       };
+
+                       slg51000_a_ldo5: ldo5 {
+                               regulator-name = "slg51000_a_ldo5";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       slg51000_a_ldo6: ldo6 {
+                               regulator-name = "slg51000_a_ldo6";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       slg51000_a_ldo7: ldo7 {
+                               regulator-name = "slg51000_a_ldo7";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3750000>;
+                       };
+               };
+       };
+};
+
+&i2c_master_hub_0 {
+       status = "okay";
+};
+
+&i2c0 {
+       clock-frequency = <1000000>;
+       status = "okay";
+
+       /* NXP NFC @ 28 */
+};
+
+&i2c4 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       /* LX Semi SW82907 touchscreen @ 28 */
+};
+
+&i2c10 {
+       clock-frequency = <1000000>;
+       status = "okay";
+
+       /* Cirrus Logic CS40L25A boosted haptics driver @ 40 */
+};
+
+&i2c11 {
+       clock-frequency = <1000000>;
+       status = "okay";
+
+       cs35l41_l: speaker-amp@30 {
+               compatible = "cirrus,cs35l45";
+               reg = <0x30>;
+               interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&tlmm 183 GPIO_ACTIVE_HIGH>;
+               cirrus,asp-sdout-hiz-ctrl = <(CS35L45_ASP_TX_HIZ_UNUSED | CS35L45_ASP_TX_HIZ_DISABLED)>;
+               #sound-dai-cells = <1>;
+
+               cirrus,gpio-ctrl2 {
+                       gpio-ctrl = <0x2>;
+               };
+       };
+
+       cs35l41_r: speaker-amp@31 {
+               compatible = "cirrus,cs35l45";
+               reg = <0x31>;
+               interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&tlmm 183 GPIO_ACTIVE_HIGH>;
+               cirrus,asp-sdout-hiz-ctrl = <(CS35L45_ASP_TX_HIZ_UNUSED | CS35L45_ASP_TX_HIZ_DISABLED)>;
+               #sound-dai-cells = <1>;
+
+               cirrus,gpio-ctrl2 {
+                       gpio-ctrl = <0x2>;
+               };
+       };
+};
+
+&pcie0 {
+       wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+       perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&pcie0_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie0_phy {
+       vdda-phy-supply = <&pm8550vs_2_l1>;
+       vdda-pll-supply = <&pm8550vs_2_l3>;
+
+       status = "okay";
+};
+
+&pm8550_flash {
+       status = "okay";
+
+       led-0 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_WHITE>;
+               led-sources = <1>, <4>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <1000000>;
+               flash-max-timeout-us = <1280000>;
+               function-enumerator = <0>;
+       };
+
+       led-1 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_YELLOW>;
+               led-sources = <2>, <3>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <1000000>;
+               flash-max-timeout-us = <1280000>;
+               function-enumerator = <1>;
+       };
+};
+
+&pm8550_gpios {
+       vol_down_n: volume-down-n-state {
+               pins = "gpio6";
+               function = "normal";
+               power-source = <1>;
+               bias-pull-up;
+               input-enable;
+       };
+
+       sdc2_card_det_n: sd-card-det-n-state {
+               pins = "gpio12";
+               function = "normal";
+               power-source = <1>;
+               bias-pull-down;
+               output-disable;
+               input-enable;
+       };
+};
+
+&pm8550b_gpios {
+       snapshot_n: snapshot-n-state {
+               pins = "gpio7";
+               function = "normal";
+               power-source = <1>;
+               bias-pull-up;
+               input-enable;
+       };
+
+       focus_n: focus-n-state {
+               pins = "gpio8";
+               function = "normal";
+               power-source = <1>;
+               bias-pull-up;
+               input-enable;
+       };
+};
+
+&pm8550vs_g_gpios {
+       cam_pwr_a_cs: cam-pwr-a-cs-state {
+               pins = "gpio4";
+               function = "normal";
+               power-source = <0x01>;
+               drive-push-pull;
+               output-low;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+       };
+};
+
+&pm8550b_eusb2_repeater {
+       qcom,tune-usb2-disc-thres = /bits/ 8 <0x6>;
+       qcom,tune-usb2-amplitude = /bits/ 8 <0xf>;
+       qcom,tune-usb2-preem = /bits/ 8 <0x7>;
+       vdd18-supply = <&pm8550_l15>;
+       vdd3-supply = <&pm8550_l5>;
+};
+
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       linux,code = <KEY_VOLUMEUP>;
+       status = "okay";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/sm8550/Sony/yodo/adsp.mbn",
+                       "qcom/sm8550/Sony/yodo/adsp_dtb.mbn";
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/sm8550/Sony/yodo/cdsp.mbn",
+                       "qcom/sm8550/Sony/yodo/cdsp_dtb.mbn";
+       status = "okay";
+};
+
+&sdhc_2 {
+       cd-gpios = <&pm8550_gpios 12 GPIO_ACTIVE_HIGH>;
+       pinctrl-0 = <&sdc2_default &sdc2_card_det_n>;
+       pinctrl-1 = <&sdc2_sleep &sdc2_card_det_n>;
+       pinctrl-names = "default", "sleep";
+       vmmc-supply = <&pm8550_l9>;
+       vqmmc-supply = <&pm8550_l8>;
+       no-sdio;
+       no-mmc;
+       status = "okay";
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&tlmm {
+       gpio-reserved-ranges = <32 8>;
+};
+
+&uart7 {
+       status = "okay";
+};
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "otg";
+       usb-role-switch;
+};
+
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_dwc3_ss {
+       remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
+};
+
+&usb_1_hsphy {
+       vdd-supply = <&pm8550vs_2_l1>;
+       vdda12-supply = <&pm8550vs_2_l3>;
+       phys = <&pm8550b_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_dp_qmpphy {
+       vdda-phy-supply = <&pm8550vs_2_l3>;
+       vdda-pll-supply = <&pm8550ve_l3>;
+       orientation-switch;
+
+       status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss_in>;
+};
+
+&usb_dp_qmpphy_usb_ss_in {
+       remote-endpoint = <&usb_1_dwc3_ss>;
+};
+
+&xo_board {
+       clock-frequency = <76800000>;
+};
index 3348bc06db488a77e4dd17dff687ffbcfa1cfced..bc5aeb05ffc3dbb0887a95b693a501896523790f 100644 (file)
                        dma-channels = <12>;
                        dma-channel-mask = <0x3e>;
                        iommus = <&apps_smmu 0x436 0>;
+                       dma-coherent;
                        status = "disabled";
                };
 
                        clocks = <&gcc GCC_QUPV3_WRAP_2_M_AHB_CLK>,
                                 <&gcc GCC_QUPV3_WRAP_2_S_AHB_CLK>;
                        iommus = <&apps_smmu 0x423 0>;
+                       dma-coherent;
                        #address-cells = <2>;
                        #size-cells = <2>;
                        status = "disabled";
                        dma-channels = <12>;
                        dma-channel-mask = <0x1e>;
                        iommus = <&apps_smmu 0xb6 0>;
+                       dma-coherent;
                        status = "disabled";
                };
 
                        iommus = <&apps_smmu 0xa3 0>;
                        interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>;
                        interconnect-names = "qup-core";
+                       dma-coherent;
                        #address-cells = <2>;
                        #size-cells = <2>;
                        status = "disabled";
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
                                reg = <0x0 0x0a600000 0x0 0xcd00>;
                                interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
                                iommus = <&apps_smmu 0x40 0x0>;
-                               snps,dis_u2_susphy_quirk;
-                               snps,dis_enblslpm_quirk;
-                               snps,usb3_lpm_capable;
                                phys = <&usb_1_hsphy>,
                                       <&usb_dp_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
+                               snps,hird-threshold = /bits/ 8 <0x0>;
+                               snps,usb2-gadget-lpm-disable;
+                               snps,dis_u2_susphy_quirk;
+                               snps,dis_enblslpm_quirk;
+                               snps,dis-u1-entry-quirk;
+                               snps,dis-u2-entry-quirk;
+                               snps,is-utmi-l1-suspend;
+                               snps,usb3_lpm_capable;
+                               snps,usb2-lpm-disable;
+                               snps,has-lpm-erratum;
+                               tx-fifo-resize;
+                               dma-coherent;
 
                                ports {
                                        #address-cells = <1>;
                                     <GIC_SPI 694 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 695 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 696 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-coherent;
                };
 
                intc: interrupt-controller@17100000 {
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "adsp";
+                                       qcom,non-secure-domain;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "cdsp";
+                                       qcom,non-secure-domain;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
index 4450273f96671b53896c48c26b19fc06c648beb6..d04ceaa73c2b1920260208cba48b3fc086cbaf10 100644 (file)
        status = "okay";
 };
 
-&mdss_mdp {
-       status = "okay";
-};
-
 &pcie_1_phy_aux_clk {
        clock-frequency = <1000>;
 };
index b07cac2e5bc802ba667d054eb923b8b0e1bc0d46..4e94f7fe4d2d0430ece931c236b14ac3714f2fe7 100644 (file)
        status = "okay";
 };
 
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/sm8650/gen70900_zap.mbn";
+       };
+};
+
 &lpass_tlmm {
        spkr_1_sd_n_active: spkr-1-sd-n-active-state {
                pins = "gpio21";
        remote-endpoint = <&usb_dp_qmpphy_dp_in>;
 };
 
-&mdss_mdp {
-       status = "okay";
-};
-
 &pcie_1_phy_aux_clk {
        clock-frequency = <1000>;
 };
index eb117866e59ff861bf8a41827a44429e172d6010..62a6e77730bc5d95582fac7354f2e46c205a7d58 100644 (file)
                        no-map;
                };
 
-               /* Merged aop_config, tme_crash_dump, tme_log and uefi_log regions */
+               /* Merged aop_config, tme_crash_dump, tme_log, uefi_log, and chipinfo regions */
                aop_tme_uefi_merged_mem: aop-tme-uefi-merged@81c80000 {
-                       reg = <0 0x81c80000 0 0x74000>;
+                       reg = <0 0x81c80000 0 0x75000>;
                        no-map;
                };
 
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                                 <0x02000000 0 0x40300000 0 0x40300000 0 0x1fd00000>;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
                        #reset-cells = <1>;
                };
 
+               gpu: gpu@3d00000 {
+                       compatible = "qcom,adreno-43051401", "qcom,adreno";
+                       reg = <0x0 0x03d00000 0x0 0x40000>,
+                             <0x0 0x03d9e000 0x0 0x2000>,
+                             <0x0 0x03d61000 0x0 0x800>;
+                       reg-names = "kgsl_3d0_reg_memory",
+                                   "cx_mem",
+                                   "cx_dbgc";
+
+                       interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
+
+                       iommus = <&adreno_smmu 0 0x0>,
+                                <&adreno_smmu 1 0x0>;
+
+                       operating-points-v2 = <&gpu_opp_table>;
+
+                       qcom,gmu = <&gmu>;
+
+                       status = "disabled";
+
+                       zap-shader {
+                               memory-region = <&gpu_micro_code_mem>;
+                       };
+
+                       /* Speedbin needs more work on A740+, keep only lower freqs */
+                       gpu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-231000000 {
+                                       opp-hz = /bits/ 64 <231000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D2>;
+                               };
+
+                               opp-310000000 {
+                                       opp-hz = /bits/ 64 <310000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D1>;
+                               };
+
+                               opp-366000000 {
+                                       opp-hz = /bits/ 64 <366000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D0>;
+                               };
+
+                               opp-422000000 {
+                                       opp-hz = /bits/ 64 <422000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                               };
+
+                               opp-500000000 {
+                                       opp-hz = /bits/ 64 <500000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_L1>;
+                               };
+
+                               opp-578000000 {
+                                       opp-hz = /bits/ 64 <578000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                               };
+
+                               opp-629000000 {
+                                       opp-hz = /bits/ 64 <629000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L0>;
+                               };
+
+                               opp-680000000 {
+                                       opp-hz = /bits/ 64 <680000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                               };
+
+                               opp-720000000 {
+                                       opp-hz = /bits/ 64 <720000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
+                               };
+
+                               opp-770000000 {
+                                       opp-hz = /bits/ 64 <770000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                               };
+
+                               opp-834000000 {
+                                       opp-hz = /bits/ 64 <834000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+                               };
+                       };
+               };
+
+               gmu: gmu@3d6a000 {
+                       compatible = "qcom,adreno-gmu-750.1", "qcom,adreno-gmu";
+                       reg = <0x0 0x03d6a000 0x0 0x35000>,
+                             <0x0 0x03d50000 0x0 0x10000>,
+                             <0x0 0x0b280000 0x0 0x10000>;
+                       reg-names = "gmu", "rscc", "gmu_pdc";
+
+                       interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hfi", "gmu";
+
+                       clocks = <&gpucc GPU_CC_AHB_CLK>,
+                                <&gpucc GPU_CC_CX_GMU_CLK>,
+                                <&gpucc GPU_CC_CXO_CLK>,
+                                <&gcc GCC_DDRSS_GPU_AXI_CLK>,
+                                <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+                                <&gpucc GPU_CC_HUB_CX_INT_CLK>,
+                                <&gpucc GPU_CC_DEMET_CLK>;
+                       clock-names = "ahb",
+                                     "gmu",
+                                     "cxo",
+                                     "axi",
+                                     "memnoc",
+                                     "hub",
+                                     "demet";
+
+                       power-domains = <&gpucc GPU_CX_GDSC>,
+                                       <&gpucc GPU_GX_GDSC>;
+                       power-domain-names = "cx",
+                                            "gx";
+
+                       iommus = <&adreno_smmu 5 0x0>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       operating-points-v2 = <&gmu_opp_table>;
+
+                       gmu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-260000000 {
+                                       opp-hz = /bits/ 64 <260000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                               };
+
+                               opp-625000000 {
+                                       opp-hz = /bits/ 64 <625000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                               };
+                       };
+               };
+
                gpucc: clock-controller@3d90000 {
                        compatible = "qcom,sm8650-gpucc";
                        reg = <0 0x03d90000 0 0xa000>;
                        #power-domain-cells = <1>;
                };
 
+               adreno_smmu: iommu@3da0000 {
+                       compatible = "qcom,sm8650-smmu-500", "qcom,adreno-smmu",
+                                    "qcom,smmu-500", "arm,mmu-500";
+                       reg = <0x0 0x03da0000 0x0 0x40000>;
+                       #iommu-cells = <2>;
+                       #global-interrupts = <1>;
+                       interrupts = <GIC_SPI 673 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 677 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 678 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 679 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 680 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 686 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 687 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 476 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 574 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 575 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 576 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 577 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 659 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 661 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 664 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 665 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 666 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 668 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 669 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 699 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>,
+                                <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+                                <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>,
+                                <&gpucc GPU_CC_AHB_CLK>;
+                       clock-names = "hlos",
+                                     "bus",
+                                     "iface",
+                                     "ahb";
+                       power-domains = <&gpucc GPU_CX_GDSC>;
+                       dma-coherent;
+               };
+
                ipa: ipa@3f40000 {
                        compatible = "qcom,sm8650-ipa", "qcom,sm8550-ipa";
 
                        compatible = "qcom,sm8650-dwc3", "qcom,dwc3";
                        reg = <0 0x0a6f8800 0 0x400>;
 
-                       interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 14 IRQ_TYPE_EDGE_RISING>,
                                              <&pdc 15 IRQ_TYPE_EDGE_RISING>,
-                                             <&pdc 14 IRQ_TYPE_EDGE_RISING>;
-                       interrupt-names = "hs_phy_irq",
-                                         "ss_phy_irq",
+                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pwr_event",
+                                         "hs_phy_irq",
+                                         "dp_hs_phy_irq",
                                          "dm_hs_phy_irq",
-                                         "dp_hs_phy_irq";
+                                         "ss_phy_irq";
 
                        clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
                                 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
 
                                        label = "adsp";
 
+                                       qcom,non-secure-domain;
+
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
 
                                        label = "cdsp";
 
+                                       qcom,non-secure-domain;
+
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
                                                         <&apps_smmu 0x19c8 0x0>;
                                                dma-coherent;
                                        };
+
+                                       /* note: secure cb9 in downstream */
+
+                                       compute-cb@10 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <12>;
+
+                                               iommus = <&apps_smmu 0x196c 0x0>,
+                                                        <&apps_smmu 0x0c0c 0x20>,
+                                                        <&apps_smmu 0x19cc 0x0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@11 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <13>;
+
+                                               iommus = <&apps_smmu 0x196d 0x0>,
+                                                        <&apps_smmu 0x0c0d 0x20>,
+                                                        <&apps_smmu 0x19cd 0x0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@12 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <14>;
+
+                                               iommus = <&apps_smmu 0x196e 0x0>,
+                                                        <&apps_smmu 0x0c0e 0x20>,
+                                                        <&apps_smmu 0x19ce 0x0>;
+                                               dma-coherent;
+                                       };
                                };
                        };
                };
index 6a0a54532e5feb494606f5da814cf1090256c725..be6b1e7d07ce347e8bee73a420548d7604f9388c 100644 (file)
@@ -9,6 +9,7 @@
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
 #include "x1e80100.dtsi"
+#include "x1e80100-pmics.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. X1E80100 CRD";
                stdout-path = "serial0:115200n8";
        };
 
+       reserved-memory {
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       size = <0x0 0x8000000>;
+                       reusable;
+                       linux,cma-default;
+               };
+       };
+
        sound {
                compatible = "qcom,x1e80100-sndcard";
                model = "X1E80100-CRD";
                        };
 
                        codec {
-                               sound-dai = <&wcd938x 1>, <&swr2 0>, <&lpass_txmacro 0>;
+                               sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>;
                        };
 
                        platform {
        compatible = "qcom,x1e80100-dp";
        /delete-property/ #sound-dai-cells;
 
-       data-lanes = <0 1 2 3>;
-
        status = "okay";
 
        aux-bus {
                port@1 {
                        reg = <1>;
                        mdss_dp3_out: endpoint {
+                               data-lanes = <0 1 2 3>;
+                               link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
                                remote-endpoint = <&edp_panel_in>;
                        };
                };
        status = "okay";
 };
 
+&smb2360_0_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&smb2360_1_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l14b_3p0>;
+};
+
+&smb2360_2_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l8b_3p0>;
+};
+
 &swr0 {
        status = "okay";
 
+       pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
+       pinctrl-names = "default";
+
        /* WSA8845, Left Woofer */
        left_woofer: speaker@0,0 {
                compatible = "sdw20217020400";
                reg = <0 0>;
-               pinctrl-0 = <&spkr_01_sd_n_active>;
-               pinctrl-names = "default";
-               powerdown-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
                #sound-dai-cells = <0>;
                sound-name-prefix = "WooferLeft";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
        left_tweeter: speaker@0,1 {
                compatible = "sdw20217020400";
                reg = <0 1>;
-               /* pinctrl in left_woofer node because of sharing the GPIO*/
-               powerdown-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
                #sound-dai-cells = <0>;
                sound-name-prefix = "TwitterLeft";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
        wcd_tx: codec@0,3 {
                compatible = "sdw20217010d00";
                reg = <0 3>;
-               qcom,tx-port-mapping = <1 1 2 3>;
+               qcom,tx-port-mapping = <2 2 3 4>;
        };
 };
 
 &swr3 {
        status = "okay";
 
+       pinctrl-0 = <&wsa2_swr_active>, <&spkr_23_sd_n_active>;
+       pinctrl-names = "default";
+
        /* WSA8845, Right Woofer */
        right_woofer: speaker@0,0 {
                compatible = "sdw20217020400";
                reg = <0 0>;
-               pinctrl-0 = <&spkr_23_sd_n_active>;
-               pinctrl-names = "default";
-               powerdown-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
                #sound-dai-cells = <0>;
                sound-name-prefix = "WooferRight";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
        right_tweeter: speaker@0,1 {
                compatible = "sdw20217020400";
                reg = <0 1>;
-               /* pinctrl in right_woofer node because of sharing the GPIO*/
-               powerdown-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
                #sound-dai-cells = <0>;
                sound-name-prefix = "TwitterRight";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
        vdd-supply = <&vreg_l2e_0p8>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&smb2360_0_eusb2_repeater>;
+
        status = "okay";
 };
 
        vdd-supply = <&vreg_l2e_0p8>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&smb2360_1_eusb2_repeater>;
+
        status = "okay";
 };
 
        vdd-supply = <&vreg_l2e_0p8>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&smb2360_2_eusb2_repeater>;
+
        status = "okay";
 };
 
diff --git a/src/arm64/qcom/x1e80100-pmics.dtsi b/src/arm64/qcom/x1e80100-pmics.dtsi
new file mode 100644 (file)
index 0000000..04301f7
--- /dev/null
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024, Linaro Limited
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/spmi/spmi.h>
+
+/ {
+};
+
+&spmi_bus1 {
+       smb2360_0: pmic@7 {
+               compatible = "qcom,smb2360", "qcom,spmi-pmic";
+               reg = <0x7 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               smb2360_0_eusb2_repeater: phy@fd00 {
+                       compatible = "qcom,smb2360-eusb2-repeater";
+                       reg = <0xfd00>;
+                       #phy-cells = <0>;
+               };
+       };
+
+       smb2360_1: pmic@a {
+               compatible = "qcom,smb2360", "qcom,spmi-pmic";
+               reg = <0xa SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               smb2360_1_eusb2_repeater: phy@fd00 {
+                       compatible = "qcom,smb2360-eusb2-repeater";
+                       reg = <0xfd00>;
+                       #phy-cells = <0>;
+               };
+       };
+
+       smb2360_2: pmic@b {
+               compatible = "qcom,smb2360", "qcom,spmi-pmic";
+               reg = <0xb SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               smb2360_2_eusb2_repeater: phy@fd00 {
+                       compatible = "qcom,smb2360-eusb2-repeater";
+                       reg = <0xfd00>;
+                       #phy-cells = <0>;
+               };
+       };
+};
index e76d29053d79bfa99274e0370872619f3c86e335..8f67c393b871b243147beaf6984fdf979f9915fa 100644 (file)
@@ -9,6 +9,7 @@
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
 #include "x1e80100.dtsi"
+#include "x1e80100-pmics.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. X1E80100 QCP";
                stdout-path = "serial0:115200n8";
        };
 
+       reserved-memory {
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       size = <0x0 0x8000000>;
+                       reusable;
+                       linux,cma-default;
+               };
+       };
+
        vph_pwr: vph-pwr-regulator {
                compatible = "regulator-fixed";
 
        compatible = "qcom,x1e80100-dp";
        /delete-property/ #sound-dai-cells;
 
-       data-lanes = <0 1 2 3>;
-
        status = "okay";
 
        aux-bus {
                port@1 {
                        reg = <1>;
                        mdss_dp3_out: endpoint {
+                               data-lanes = <0 1 2 3>;
+                               link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
                                remote-endpoint = <&edp_panel_in>;
                        };
                };
        status = "okay";
 };
 
+&smb2360_0_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&smb2360_1_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l14b_3p0>;
+};
+
+&smb2360_2_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l8b_3p0>;
+};
+
 &tlmm {
        gpio-reserved-ranges = <33 3>, /* Unused */
                               <44 4>, /* SPI (TPM) */
        vdd-supply = <&vreg_l2e_0p8>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&smb2360_0_eusb2_repeater>;
+
        status = "okay";
 };
 
        vdd-supply = <&vreg_l2e_0p8>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&smb2360_1_eusb2_repeater>;
+
        status = "okay";
 };
 
        vdd-supply = <&vreg_l2e_0p8>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&smb2360_2_eusb2_repeater>;
+
        status = "okay";
 };
 
index 6b40082bac68ce92d87076f6ba7e0fd980dfb23c..05e4d491ec18c4bb0cbdbade6d62deab7f857e90 100644 (file)
                        device_type = "pci";
                        compatible = "qcom,pcie-x1e80100";
                        reg = <0 0x01bf8000 0 0x3000>,
-                             <0 0x70000000 0 0xf1d>,
-                             <0 0x70000f20 0 0xa8>,
+                             <0 0x70000000 0 0xf20>,
+                             <0 0x70000f40 0 0xa8>,
                              <0 0x70001000 0 0x1000>,
-                             <0 0x70100000 0 0x100000>;
+                             <0 0x70100000 0 0x100000>,
+                             <0 0x01bfb000 0 0x1000>;
                        reg-names = "parf",
                                    "dbi",
                                    "elbi",
                                    "atu",
-                                   "config";
+                                   "config",
+                                   "mhi";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        ranges = <0x01000000 0 0x00000000 0 0x70200000 0 0x100000>,
                        qcom,ports-hstart =             /bits/ 8 <0xff 0x03 0x00 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
                        qcom,ports-hstop =              /bits/ 8 <0xff 0x06 0x0f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
                        qcom,ports-word-length =        /bits/ 8 <0x01 0x07 0x04 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
-                       qcom,ports-block-pack-mode =    /bits/ 8 <0xff 0x00 0x01 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-block-pack-mode =    /bits/ 8 <0xff 0xff 0x01 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
                        qcom,ports-block-group-count =  /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
                        qcom,ports-lane-control =       /bits/ 8 <0x01 0x00 0x00 0x00 0x00 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
 
 
                                                mdss_dp3_in: endpoint {
                                                        remote-endpoint = <&mdss_intf5_out>;
-
-                                                       link-frequencies = /bits/ 64 <8100000000>;
                                                };
                                        };
 
                        #clock-cells = <0>;
                };
 
+               spmi: arbiter@c400000 {
+                       compatible = "qcom,x1e80100-spmi-pmic-arb";
+                       reg = <0 0x0c400000 0 0x3000>,
+                             <0 0x0c500000 0 0x400000>,
+                             <0 0x0c440000 0 0x80000>;
+                       reg-names = "core", "chnls", "obsrvr";
+
+                       qcom,ee = <0>;
+                       qcom,channel = <0>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       spmi_bus0: spmi@c42d000 {
+                               reg = <0 0x0c42d000 0 0x4000>,
+                                     <0 0x0c4c0000 0 0x10000>;
+                               reg-names = "cnfg", "intr";
+
+                               interrupt-names = "periph_irq";
+                               interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-controller;
+                               #interrupt-cells = <4>;
+
+                               #address-cells = <2>;
+                               #size-cells = <0>;
+                       };
+
+                       spmi_bus1: spmi@c432000 {
+                               reg = <0 0x0c432000 0 0x4000>,
+                                     <0 0x0c4d0000 0 0x10000>;
+                               reg-names = "cnfg", "intr";
+
+                               interrupt-names = "periph_irq";
+                               interrupts-extended = <&pdc 3 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-controller;
+                               #interrupt-cells = <4>;
+
+                               #address-cells = <2>;
+                               #size-cells = <0>;
+                       };
+               };
 
                tlmm: pinctrl@f100000 {
                        compatible = "qcom,x1e80100-tlmm";
index 39aefe66a7941ec6a35186a34fc98bddec036cf6..ba50e292bdbbf01ee7d9c5afa4b91761d2738d01 100644 (file)
@@ -48,7 +48,7 @@
                clock-output-names = "osc27M";
        };
 
-       soc {
+       soc@0 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
index a3c10ceeb586e1891b17d95d65a160c09074e487..e8af39193e754fdbcb07aa92bcdfeedb94321769 100644 (file)
@@ -47,7 +47,7 @@
                clock-output-names = "osc27M";
        };
 
-       soc {
+       soc@0 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
index 34802cc62983868bfdb68dbe1e0a9f4cda700935..3a7f6e35b7f74d0049afbc2077c8c881ab367929 100644 (file)
        };
 
        arm_pmu: pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a55-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
                interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>,
                        <&cpu3>, <&cpu4>, <&cpu5>;
                #clock-cells = <0>;
        };
 
-       soc {
+       soc@0 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
diff --git a/src/arm64/renesas/r8a77970-eagle-function-expansion.dtso b/src/arm64/renesas/r8a77970-eagle-function-expansion.dtso
new file mode 100644 (file)
index 0000000..3aa243c
--- /dev/null
@@ -0,0 +1,214 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for the Eagle V3M Function expansion board.
+ *
+ * Copyright (C) 2024 Niklas Söderlund <niklas.soderlund@ragnatech.se>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       /* CN4 */
+       /* Eagle: SW18 set to OFF */
+       cvbs-in-cn4 {
+               compatible = "composite-video-connector";
+               label = "CVBS IN CN4";
+
+               port {
+                       cvbs_con: endpoint {
+                               remote-endpoint = <&adv7482_ain7>;
+                       };
+               };
+       };
+
+       /* CN2 */
+       /* Eagle: SW35 set 5, 6 and 8 to OFF */
+       hdmi-in-cn2 {
+               compatible = "hdmi-connector";
+               label = "HDMI IN CN2";
+               type = "a";
+
+               port {
+                       hdmi_in_con2: endpoint {
+                               remote-endpoint = <&adv7612_in>;
+                       };
+               };
+       };
+
+       /* CN3 */
+       /* Eagle: SW18 set to OFF */
+       hdmi-in-cn3 {
+               compatible = "hdmi-connector";
+               label = "HDMI IN CN3";
+               type = "a";
+
+               port {
+                       hdmi_in_con: endpoint {
+                               remote-endpoint = <&adv7482_hdmi>;
+                       };
+               };
+       };
+};
+
+/* Disconnect MAX9286 GMSL I2C. */
+&i2c3 {
+       status = "disabled";
+};
+
+/* Connect expansion board I2C. */
+&i2c0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       gpio@27 {
+               compatible = "onnn,pca9654";
+               reg = <0x27>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               vin0_adv7612_en {
+                       gpio-hog;
+                       gpios = <3 GPIO_ACTIVE_LOW>;
+                       output-high;
+                       line-name = "VIN0_ADV7612_ENn";
+               };
+       };
+
+       hdmi-decoder@4c {
+               compatible = "adi,adv7612";
+               reg = <0x4c>, <0x50>, <0x52>, <0x54>, <0x56>, <0x58>;
+               reg-names = "main", "afe", "rep", "edid", "hdmi", "cp";
+               interrupt-parent = <&gpio3>;
+               interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
+               default-input = <0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               adv7612_in: endpoint {
+                                       remote-endpoint = <&hdmi_in_con2>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               adv7612_out: endpoint {
+                                       remote-endpoint = <&vin0_in>;
+                               };
+                       };
+               };
+       };
+
+       video-receiver@70 {
+               compatible = "adi,adv7482";
+               reg = <0x70 0x71 0x72 0x73 0x74 0x75
+                      0x60 0x61 0x62 0x63 0x64 0x65>;
+               reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
+                           "infoframe", "cbus", "cec", "sdp", "txa", "txb" ;
+               interrupt-parent = <&gpio3>;
+               interrupts = <03 IRQ_TYPE_LEVEL_LOW>, <04 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "intrq1", "intrq2";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@7 {
+                               reg = <7>;
+
+                               adv7482_ain7: endpoint {
+                                       remote-endpoint = <&cvbs_con>;
+                               };
+                       };
+
+                       port@8 {
+                               reg = <8>;
+
+                               adv7482_hdmi: endpoint {
+                                       remote-endpoint = <&hdmi_in_con>;
+                               };
+                       };
+
+                       port@a {
+                               reg = <10>;
+
+                               adv7482_txa: endpoint {
+                                       clock-lanes = <0>;
+                                       data-lanes = <1 2 3 4>;
+                                       remote-endpoint = <&csi40_in>;
+                               };
+                       };
+               };
+       };
+
+};
+
+&csi40 {
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       csi40_in: endpoint {
+                               clock-lanes = <0>;
+                               data-lanes = <1 2 3 4>;
+                               remote-endpoint = <&adv7482_txa>;
+                       };
+               };
+       };
+};
+
+&pfc {
+       vin0_pins_parallel: vin0 {
+               groups = "vin0_data12", "vin0_sync", "vin0_clk", "vin0_clkenb";
+               function = "vin0";
+       };
+};
+
+&vin0 {
+       status = "okay";
+
+       pinctrl-0 = <&vin0_pins_parallel>;
+       pinctrl-names = "default";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       vin0_in: endpoint {
+                               pclk-sample = <0>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               remote-endpoint = <&adv7612_out>;
+                       };
+               };
+       };
+};
+
+&vin1 {
+       status = "okay";
+};
+
+&vin2 {
+       status = "okay";
+};
+
+&vin3 {
+       status = "okay";
+};
index abfda5c6ca16922ed74c3286c8a94244407d5113..bc65a7b4d999740c3be78976d840a01880a77b85 100644 (file)
@@ -14,9 +14,9 @@
        compatible = "renesas,s4sk", "renesas,r8a779f4", "renesas,r8a779f0";
 
        aliases {
-               serial0 = &hscif0;
-               serial1 = &hscif1;
-               eth0    = &rswitch;
+               serial0 = &hscif0;
+               serial1 = &hscif1;
+               ethernet0 = &rswitch;
        };
 
        chosen {
index bc8616a56c039b20b0635e7d844e89735099cded..cfbe8c8680cd894734b8fc6357550740ae9fed5e 100644 (file)
 
        aliases {
                serial0 = &hscif0;
+               serial1 = &hscif2;
                ethernet0 = &avb0;
        };
 
        chosen {
-               bootargs = "ignore_loglevel";
+               bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
                stdout-path = "serial0:921600n8";
        };
 
        status = "okay";
 };
 
+&hscif2 {
+       pinctrl-0 = <&hscif2_pins>;
+       pinctrl-names = "default";
+
+       uart-has-rtscts;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-0 = <&i2c0_pins>;
        pinctrl-names = "default";
 };
 
 &pfc {
-       pinctrl-0 = <&scif_clk_pins>;
+       pinctrl-0 = <&scif_clk_pins>, <&scif_clk2_pins>;
        pinctrl-names = "default";
 
        avb0_pins: avb0 {
                function = "hscif0";
        };
 
+       hscif2_pins: hscif2 {
+               groups = "hscif2_data", "hscif2_ctrl";
+               function = "hscif2";
+       };
+
        i2c0_pins: i2c0 {
                groups = "i2c0";
                function = "i2c0";
                groups = "scif_clk";
                function = "scif_clk";
        };
+
+       scif_clk2_pins: scif-clk2 {
+               groups = "scif_clk2";
+               function = "scif_clk2";
+       };
 };
 
 &rpc {
 &scif_clk {
        clock-frequency = <24000000>;
 };
+
+&scif_clk2 {
+       clock-frequency = <24000000>;
+};
index 11885729181bc9030484ad354ccf5f90302075ae..6d791024cabe1b94f01ad0514214a17ec613c075 100644 (file)
                method = "smc";
        };
 
-       /* External SCIF clock - to be overridden by boards that provide it */
+       /* External SCIF clocks - to be overridden by boards that provide them */
        scif_clk: scif-clk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <0>;
        };
 
+       scif_clk2: scif-clk2 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+       };
+
        soc: soc {
                compatible = "simple-bus";
                interrupt-parent = <&gic>;
                        resets = <&cpg 917>;
                };
 
+               cmt0: timer@e60f0000 {
+                       compatible = "renesas,r8a779h0-cmt0",
+                                    "renesas,rcar-gen4-cmt0";
+                       reg = <0 0xe60f0000 0 0x1004>;
+                       interrupts = <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 910>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 910>;
+                       status = "disabled";
+               };
+
+               cmt1: timer@e6130000 {
+                       compatible = "renesas,r8a779h0-cmt1",
+                                    "renesas,rcar-gen4-cmt1";
+                       reg = <0 0xe6130000 0 0x1004>;
+                       interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 911>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 911>;
+                       status = "disabled";
+               };
+
+               cmt2: timer@e6140000 {
+                       compatible = "renesas,r8a779h0-cmt1",
+                                    "renesas,rcar-gen4-cmt1";
+                       reg = <0 0xe6140000 0 0x1004>;
+                       interrupts = <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 912>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 912>;
+                       status = "disabled";
+               };
+
+               cmt3: timer@e6148000 {
+                       compatible = "renesas,r8a779h0-cmt1",
+                                    "renesas,rcar-gen4-cmt1";
+                       reg = <0 0xe6148000 0 0x1004>;
+                       interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 913>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 913>;
+                       status = "disabled";
+               };
+
                cpg: clock-controller@e6150000 {
                        compatible = "renesas,r8a779h0-cpg-mssr";
                        reg = <0 0xe6150000 0 0x4000>;
                        #power-domain-cells = <1>;
                };
 
+               tsc: thermal@e6198000 {
+                       compatible = "renesas,r8a779h0-thermal";
+                       reg = <0 0xe6198000 0 0x200>,
+                             <0 0xe61a0000 0 0x200>;
+                       clocks = <&cpg CPG_MOD 919>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 919>;
+                       #thermal-sensor-cells = <1>;
+               };
+
+               intc_ex: interrupt-controller@e61c0000 {
+                       compatible = "renesas,intc-ex-r8a779h0", "renesas,irqc";
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       reg = <0 0xe61c0000 0 0x200>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 611>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 611>;
+               };
+
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a779h0", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 291 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 713>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 713>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@e6fc0000 {
+                       compatible = "renesas,tmu-r8a779h0", "renesas,tmu";
+                       reg = <0 0xe6fc0000 0 0x30>;
+                       interrupts = <GIC_SPI 292 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 294 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 295 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 714>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 714>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@e6fd0000 {
+                       compatible = "renesas,tmu-r8a779h0", "renesas,tmu";
+                       reg = <0 0xe6fd0000 0 0x30>;
+                       interrupts = <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 715>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 715>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@e6fe0000 {
+                       compatible = "renesas,tmu-r8a779h0", "renesas,tmu";
+                       reg = <0 0xe6fe0000 0 0x30>;
+                       interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 716>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 716>;
+                       status = "disabled";
+               };
+
+               tmu4: timer@ffc00000 {
+                       compatible = "renesas,tmu-r8a779h0", "renesas,tmu";
+                       reg = <0 0xffc00000 0 0x30>;
+                       interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 717>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 717>;
+                       status = "disabled";
+               };
+
                i2c0: i2c@e6500000 {
                        compatible = "renesas,i2c-r8a779h0",
                                     "renesas,rcar-gen4-i2c";
                        status = "disabled";
                };
 
+               hscif1: serial@e6550000 {
+                       compatible = "renesas,hscif-r8a779h0",
+                                    "renesas,rcar-gen4-hscif", "renesas,hscif";
+                       reg = <0 0xe6550000 0 0x60>;
+                       interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 515>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 515>;
+                       dmas = <&dmac1 0x33>, <&dmac1 0x32>,
+                              <&dmac2 0x33>, <&dmac2 0x32>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
+               hscif2: serial@e6560000 {
+                       compatible = "renesas,hscif-r8a779h0",
+                                    "renesas,rcar-gen4-hscif", "renesas,hscif";
+                       reg = <0 0xe6560000 0 0x60>;
+                       interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 516>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk2>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 516>;
+                       dmas = <&dmac1 0x35>, <&dmac1 0x34>,
+                              <&dmac2 0x35>, <&dmac2 0x34>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
+               hscif3: serial@e66a0000 {
+                       compatible = "renesas,hscif-r8a779h0",
+                                    "renesas,rcar-gen4-hscif", "renesas,hscif";
+                       reg = <0 0xe66a0000 0 0x60>;
+                       interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 517>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 517>;
+                       dmas = <&dmac1 0x37>, <&dmac1 0x36>,
+                              <&dmac2 0x37>, <&dmac2 0x36>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
                avb0: ethernet@e6800000 {
                        compatible = "renesas,etheravb-r8a779h0",
                                     "renesas,etheravb-rcar-gen4";
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_hc 0>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        status = "disabled";
                };
 
+               scif0: serial@e6e60000 {
+                       compatible = "renesas,scif-r8a779h0",
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
+                       reg = <0 0xe6e60000 0 64>;
+                       interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 702>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 702>;
+                       dmas = <&dmac1 0x51>, <&dmac1 0x50>,
+                              <&dmac2 0x51>, <&dmac2 0x50>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
+               scif1: serial@e6e68000 {
+                       compatible = "renesas,scif-r8a779h0",
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
+                       reg = <0 0xe6e68000 0 64>;
+                       interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 703>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 703>;
+                       dmas = <&dmac1 0x53>, <&dmac1 0x52>,
+                              <&dmac2 0x53>, <&dmac2 0x52>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
+               scif3: serial@e6c50000 {
+                       compatible = "renesas,scif-r8a779h0",
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
+                       reg = <0 0xe6c50000 0 64>;
+                       interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 704>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 704>;
+                       dmas = <&dmac1 0x57>, <&dmac1 0x56>,
+                              <&dmac2 0x57>, <&dmac2 0x56>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
+               scif4: serial@e6c40000 {
+                       compatible = "renesas,scif-r8a779h0",
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
+                       reg = <0 0xe6c40000 0 64>;
+                       interrupts = <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 705>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk2>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 705>;
+                       dmas = <&dmac1 0x59>, <&dmac1 0x58>,
+                              <&dmac2 0x59>, <&dmac2 0x58>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
+               msiof0: spi@e6e90000 {
+                       compatible = "renesas,msiof-r8a779h0",
+                                    "renesas,rcar-gen4-msiof";
+                       reg = <0 0xe6e90000 0 0x0064>;
+                       interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 618>;
+                       dmas = <&dmac1 0x41>, <&dmac1 0x40>,
+                              <&dmac2 0x41>, <&dmac2 0x40>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 618>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof1: spi@e6ea0000 {
+                       compatible = "renesas,msiof-r8a779h0",
+                                    "renesas,rcar-gen4-msiof";
+                       reg = <0 0xe6ea0000 0 0x0064>;
+                       interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 619>;
+                       dmas = <&dmac1 0x43>, <&dmac1 0x42>,
+                              <&dmac2 0x43>, <&dmac2 0x42>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 619>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof2: spi@e6c00000 {
+                       compatible = "renesas,msiof-r8a779h0",
+                                    "renesas,rcar-gen4-msiof";
+                       reg = <0 0xe6c00000 0 0x0064>;
+                       interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 620>;
+                       dmas = <&dmac1 0x45>, <&dmac1 0x44>,
+                              <&dmac2 0x45>, <&dmac2 0x44>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 620>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof3: spi@e6c10000 {
+                       compatible = "renesas,msiof-r8a779h0",
+                                    "renesas,rcar-gen4-msiof";
+                       reg = <0 0xe6c10000 0 0x0064>;
+                       interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 621>;
+                       dmas = <&dmac1 0x47>, <&dmac1 0x46>,
+                              <&dmac2 0x47>, <&dmac2 0x46>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 621>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof4: spi@e6c20000 {
+                       compatible = "renesas,msiof-r8a779h0",
+                                    "renesas,rcar-gen4-msiof";
+                       reg = <0 0xe6c20000 0 0x0064>;
+                       interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 622>;
+                       dmas = <&dmac1 0x49>, <&dmac1 0x48>,
+                              <&dmac2 0x49>, <&dmac2 0x48>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 622>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof5: spi@e6c28000 {
+                       compatible = "renesas,msiof-r8a779h0",
+                                    "renesas,rcar-gen4-msiof";
+                       reg = <0 0xe6c28000 0 0x0064>;
+                       interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 623>;
+                       dmas = <&dmac1 0x4b>, <&dmac1 0x4a>,
+                              <&dmac2 0x4b>, <&dmac2 0x4a>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 623>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                dmac1: dma-controller@e7350000 {
                        compatible = "renesas,dmac-r8a779h0",
                                     "renesas,rcar-gen4-dmac";
                        resets = <&cpg 709>;
                        #dma-cells = <1>;
                        dma-channels = <16>;
+                       iommus = <&ipmmu_ds0 0>, <&ipmmu_ds0 1>,
+                                <&ipmmu_ds0 2>, <&ipmmu_ds0 3>,
+                                <&ipmmu_ds0 4>, <&ipmmu_ds0 5>,
+                                <&ipmmu_ds0 6>, <&ipmmu_ds0 7>,
+                                <&ipmmu_ds0 8>, <&ipmmu_ds0 9>,
+                                <&ipmmu_ds0 10>, <&ipmmu_ds0 11>,
+                                <&ipmmu_ds0 12>, <&ipmmu_ds0 13>,
+                                <&ipmmu_ds0 14>, <&ipmmu_ds0 15>;
                };
 
                dmac2: dma-controller@e7351000 {
                        resets = <&cpg 710>;
                        #dma-cells = <1>;
                        dma-channels = <8>;
+                       iommus = <&ipmmu_ds0 16>, <&ipmmu_ds0 17>,
+                                <&ipmmu_ds0 18>, <&ipmmu_ds0 19>,
+                                <&ipmmu_ds0 20>, <&ipmmu_ds0 21>,
+                                <&ipmmu_ds0 22>, <&ipmmu_ds0 23>;
                };
 
                mmc0: mmc@ee140000 {
                        power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
                        resets = <&cpg 706>;
                        max-frequency = <200000000>;
+                       iommus = <&ipmmu_ds0 32>;
                        status = "disabled";
                };
 
                        status = "disabled";
                };
 
+               ipmmu_rt0: iommu@ee480000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xee480000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_rt1: iommu@ee4c0000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xee4c0000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_ds0: iommu@eed00000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeed00000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_hc: iommu@eed40000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeed40000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_ir: iommu@eed80000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeed80000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_vc: iommu@eedc0000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeedc0000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_3dg: iommu@eee00000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeee00000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_vi0: iommu@eee80000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeee80000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_vi1: iommu@eeec0000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeeec0000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_vip0: iommu@eef00000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeef00000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_mm: iommu@eefc0000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeefc0000 0 0x20000>;
+                       interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       #iommu-cells = <1>;
+               };
+
                gic: interrupt-controller@f1000000 {
                        compatible = "arm,gic-v3";
                        #interrupt-cells = <3>;
                };
        };
 
+       thermal-zones {
+               sensor_thermal_cr52: sensor1-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsc 0>;
+
+                       trips {
+                               sensor1_crit: sensor1-crit {
+                                       temperature = <120000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               sensor_thermal_ca76: sensor2-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsc 1>;
+
+                       trips {
+                               sensor2_crit: sensor2-crit {
+                                       temperature = <120000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts-extended = <&gic GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
index 8721f4c9fa0fb486e1bbd70bd2645542b0c853de..6212ee550f33050d424cdb4692515d6683a4b9e7 100644 (file)
                        gpio-ranges = <&pinctrl 0 0 152>;
                        #interrupt-cells = <2>;
                        interrupt-controller;
+                       interrupt-parent = <&irqc>;
                        clocks = <&cpg CPG_MOD R9A07G043_GPIO_HCLK>;
                        power-domains = <&cpg>;
                        resets = <&cpg R9A07G043_GPIO_RSTN>,
 
                hsusb: usb@11c60000 {
                        compatible = "renesas,usbhs-r9a07g043",
-                                    "renesas,rza2-usbhs";
+                                    "renesas,rzg2l-usbhs";
                        reg = <0 0x11c60000 0 0x10000>;
                        interrupts = <SOC_PERIPHERAL_IRQ(100) IRQ_TYPE_EDGE_RISING>,
                                     <SOC_PERIPHERAL_IRQ(101) IRQ_TYPE_LEVEL_HIGH>,
index 964b0a475eeeb6080f385750f795117db4fa31e3..165bfcfef3bcc69c931a4e85f4e9c4d222661b31 100644 (file)
        };
 };
 
-&pinctrl {
-       interrupt-parent = <&irqc>;
-};
-
 &soc {
        interrupt-parent = <&gic>;
 
index 9f00b75d2bd0a984f0fa37c5c5c9ce1428313a40..88634ae4328720f71725bbfc030cf6e07e93382a 100644 (file)
 
                hsusb: usb@11c60000 {
                        compatible = "renesas,usbhs-r9a07g044",
-                                    "renesas,rza2-usbhs";
+                                    "renesas,rzg2l-usbhs";
                        reg = <0 0x11c60000 0 0x10000>;
                        interrupts = <GIC_SPI 100 IRQ_TYPE_EDGE_RISING>,
                                     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
index 53d8905f367afd5b8ef95bd08da6122cef240317..e89bfe4085f5d88aa33cdd356c3020918224c03f 100644 (file)
 
                hsusb: usb@11c60000 {
                        compatible = "renesas,usbhs-r9a07g054",
-                                    "renesas,rza2-usbhs";
+                                    "renesas,rzg2l-usbhs";
                        reg = <0 0x11c60000 0 0x10000>;
                        interrupts = <GIC_SPI 100 IRQ_TYPE_EDGE_RISING>,
                                     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
index de590996e10af2162cc2b71117814ac9dcd42dba..433860987f738cc9f5080d6d1b77175bde96db55 100644 (file)
@@ -5,6 +5,7 @@
  * Copyright (C) 2022 Renesas Electronics Corp.
  */
 
+#include <dt-bindings/gpio/gpio.h>
 #include "rzg2ul-smarc-pinfunction.dtsi"
 #include "rz-smarc-common.dtsi"
 
 &i2c0 {
        clock-frequency = <400000>;
 
+       da9062: pmic@58 {
+               compatible = "dlg,da9062";
+               reg = <0x58>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio {
+                       compatible = "dlg,da9062-gpio";
+               };
+
+               onkey {
+                       compatible = "dlg,da9062-onkey";
+               };
+
+               pmic-good-hog {
+                       gpio-hog;
+                       gpios = <4 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "PMIC_PGOOD";
+               };
+
+               rtc {
+                       compatible = "dlg,da9062-rtc";
+               };
+
+               sd0-pwr-sel-hog {
+                       gpio-hog;
+                       gpios = <1 GPIO_ACTIVE_HIGH>;
+                       input;
+                       line-name = "SD0_PWR_SEL";
+               };
+
+               sd1-pwr-sel-hog {
+                       gpio-hog;
+                       gpios = <2 GPIO_ACTIVE_HIGH>;
+                       input;
+                       line-name = "SD1_PWR_SEL";
+               };
+
+               sw-et0-en-hog {
+                       gpio-hog;
+                       gpios = <3 GPIO_ACTIVE_HIGH>;
+                       input;
+                       line-name = "SW_ET0_EN#";
+               };
+
+               thermal {
+                       compatible = "dlg,da9062-thermal";
+                       status = "disabled";
+               };
+
+               watchdog {
+                       compatible = "dlg,da9062-watchdog";
+                       status = "disabled";
+               };
+       };
+
        versa3: clock-generator@68 {
                compatible = "renesas,5p35023";
                reg = <0x68>;
index acac4666ae59e38c1303806a9d188fb9dcd9b9a9..8a3d302f1535783ab221f29731cdb0a9dfd74b03 100644 (file)
@@ -25,7 +25,7 @@
  *     SW_OFF - SD2 is connected to SoC
  *     SW_ON  - SCIF1, SSI0, IRQ0, IRQ1 connected to SoC
  */
-#define SW_CONFIG2     SW_ON
+#define SW_CONFIG2     SW_OFF
 #define SW_CONFIG3     SW_ON
 
 / {
@@ -36,8 +36,8 @@
 #if SW_CONFIG3 == SW_OFF
                mmc2 = &sdhi2;
 #else
-               eth0 = &eth0;
-               eth1 = &eth1;
+               ethernet0 = &eth0;
+               ethernet1 = &eth1;
 #endif
        };
 
index b47fe02c33fbdc33d6d9b2ac116381a007043e72..079101cddd65fa102cb1e40c4bbfa2433ce0dbbf 100644 (file)
@@ -5,6 +5,8 @@
  */
 
 /dts-v1/;
+
+#include <dt-bindings/leds/common.h>
 #include "rk3308.dtsi"
 
 / {
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
-               pinctrl-0 = <&green_led_gio>, <&heartbeat_led_gpio>;
+               pinctrl-0 = <&green_led>, <&heartbeat_led>;
 
                green-led {
+                       color = <LED_COLOR_ID_GREEN>;
                        default-state = "on";
+                       function = LED_FUNCTION_POWER;
                        gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
                        label = "rockpis:green:power";
                        linux,default-trigger = "default-on";
                };
 
                blue-led {
+                       color = <LED_COLOR_ID_BLUE>;
                        default-state = "on";
+                       function = LED_FUNCTION_HEARTBEAT;
                        gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
                        label = "rockpis:blue:user";
                        linux,default-trigger = "heartbeat";
 };
 
 &emmc {
-       bus-width = <4>;
        cap-mmc-highspeed;
-       mmc-hs200-1_8v;
+       cap-sd-highspeed;
+       no-sdio;
        non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>;
        vmmc-supply = <&vcc_io>;
        status = "okay";
 };
        pinctrl-0 = <&rtc_32k>;
 
        leds {
-               green_led_gio: green-led-gpio {
+               green_led: green-led {
                        rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
                };
 
-               heartbeat_led_gpio: heartbeat-led-gpio {
+               heartbeat_led: heartbeat-led {
                        rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
index cfc0a87b5195930d0527ba49a8b2995042538184..c00da150a22fabc362b7bd6f688dc04716bbf747 100644 (file)
                #dma-cells = <1>;
        };
 
+       /*
+        * - can be clock producer or consumer
+        * - up to 8 capture channels and 2 playback channels
+        * - connected internally to audio codec
+        */
+       i2s_8ch_2: i2s@ff320000 {
+               compatible = "rockchip,rk3308-i2s-tdm";
+               reg = <0x0 0xff320000 0x0 0x1000>;
+               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               clocks = <&cru SCLK_I2S2_8CH_TX>,
+                        <&cru SCLK_I2S2_8CH_RX>,
+                        <&cru HCLK_I2S2_8CH>;
+               dmas = <&dmac1 5>, <&dmac1 4>;
+               dma-names = "rx", "tx";
+               resets = <&cru SRST_I2S2_8CH_TX_M>, <&cru SRST_I2S2_8CH_RX_M>;
+               reset-names = "tx-m", "rx-m";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+       };
+
+       /*
+        * - can be clock consumer only
+        * - up to 4 capture channels, no playback
+        * - connected internally to audio codec
+        */
+       i2s_8ch_3: i2s@ff330000 {
+               compatible = "rockchip,rk3308-i2s-tdm";
+               reg = <0x0 0xff330000 0x0 0x1000>;
+               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               clocks = <&cru SCLK_I2S3_8CH_TX>,
+                        <&cru SCLK_I2S3_8CH_RX>,
+                        <&cru HCLK_I2S3_8CH>;
+               dmas = <&dmac1 7>;
+               dma-names = "rx";
+               resets = <&cru SRST_I2S3_8CH_TX_M>, <&cru SRST_I2S3_8CH_RX_M>;
+               reset-names = "tx-m", "rx-m";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+       };
+
        i2s_2ch_0: i2s@ff350000 {
                compatible = "rockchip,rk3308-i2s", "rockchip,rk3066-i2s";
                reg = <0x0 0xff350000 0x0 0x1000>;
                assigned-clock-rates = <32768>;
        };
 
+       codec: codec@ff560000 {
+               compatible = "rockchip,rk3308-codec";
+               reg = <0x0 0xff560000 0x0 0x10000>;
+               rockchip,grf = <&grf>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               clocks = <&cru SCLK_I2S2_8CH_TX_OUT>,
+                        <&cru SCLK_I2S2_8CH_RX_OUT>,
+                        <&cru PCLK_ACODEC>;
+               reset-names = "codec";
+               resets = <&cru SRST_ACODEC_P>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
        gic: interrupt-controller@ff580000 {
                compatible = "arm,gic-400";
                reg = <0x0 0xff581000 0x0 0x1000>,
diff --git a/src/arm64/rockchip/rk3326-gameforce-chi.dts b/src/arm64/rockchip/rk3326-gameforce-chi.dts
new file mode 100644 (file)
index 0000000..579261b
--- /dev/null
@@ -0,0 +1,809 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Chris Morgan <macromorgan@hotmail.com>
+ */
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3326.dtsi"
+
+/ {
+       model = "GameForce Chi";
+       compatible = "gameforce,chi", "rockchip,rk3326";
+       chassis-type = "handset";
+
+       aliases {
+               mmc0 = &sdmmc;
+               mmc1 = &sdio;
+       };
+
+       chosen {
+               stdout-path = "serial2:115200n8";
+       };
+
+       adc_joystick: adc-joystick {
+               compatible = "adc-joystick";
+               io-channels = <&saradc 0>,
+                             <&saradc 1>;
+               poll-interval = <100>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               axis@0 {
+                       reg = <0>;
+                       abs-flat = <10>;
+                       abs-fuzz = <10>;
+                       abs-range = <850 175>;
+                       linux,code = <ABS_Y>;
+               };
+
+               axis@1 {
+                       reg = <1>;
+                       abs-flat = <10>;
+                       abs-fuzz = <10>;
+                       abs-range = <800 190>;
+                       linux,code = <ABS_X>;
+               };
+       };
+
+       adc_keys: adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 2>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <60>;
+
+               button-1 {
+                       label = "HAPPY1";
+                       linux,code = <BTN_TRIGGER_HAPPY1>;
+                       press-threshold-microvolt = <15000>;
+               };
+
+               button-2 {
+                       label = "HAPPY2";
+                       linux,code = <BTN_TRIGGER_HAPPY2>;
+                       press-threshold-microvolt = <300000>;
+               };
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               power-supply = <&vcc_bl>;
+               pwms = <&pwm1 0 25000 0>;
+       };
+
+       battery: battery {
+               compatible = "simple-battery";
+               charge-full-design-microamp-hours = <3000000>;
+               charge-term-current-microamp = <300000>;
+               constant-charge-current-max-microamp = <1500000>;
+               constant-charge-voltage-max-microvolt = <4200000>;
+               factory-internal-resistance-micro-ohms = <180000>;
+               ocv-capacity-celsius = <20>;
+               ocv-capacity-table-0 =  <4106000 100>, <4071000 95>, <4018000 90>, <3975000 85>,
+                                       <3946000 80>, <3908000 75>, <3877000 70>, <3853000 65>,
+                                       <3834000 60>, <3816000 55>, <3802000 50>, <3788000 45>,
+                                       <3774000 40>, <3760000 35>, <3748000 30>, <3735000 25>,
+                                       <3718000 20>, <3697000 15>, <3685000 10>, <3625000 5>,
+                                       <3400000 0>;
+               voltage-max-design-microvolt = <4250000>;
+               voltage-min-design-microvolt = <3400000>;
+       };
+
+       gpio_leds: gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins>;
+
+               red_led: led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>;
+               };
+
+               green_led: led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
+               };
+
+               blue_led: led-2 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
+               };
+
+               white_led: led-3 {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
+               };
+
+               chg_led: led-4 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_CHARGING;
+                       gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_HIGH>;
+               };
+
+       };
+
+       gpio_keys: gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&btn_pins_ctrl>;
+               pinctrl-names = "default";
+
+               button-a {
+                       gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_LOW>;
+                       label = "EAST";
+                       linux,code = <BTN_EAST>;
+               };
+
+               button-b {
+                       gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
+                       label = "SOUTH";
+                       linux,code = <BTN_SOUTH>;
+               };
+
+               button-down {
+                       gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-DOWN";
+                       linux,code = <BTN_DPAD_DOWN>;
+               };
+
+               button-home {
+                       gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>;
+                       label = "HOME";
+                       linux,code = <BTN_MODE>;
+               };
+
+               button-l1 {
+                       gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_LOW>;
+                       label = "TL";
+                       linux,code = <BTN_TL>;
+               };
+
+               button-l2 {
+                       gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_LOW>;
+                       label = "TL2";
+                       linux,code = <BTN_TL2>;
+               };
+
+               button-left {
+                       gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-LEFT";
+                       linux,code = <BTN_DPAD_LEFT>;
+               };
+
+               button-r1 {
+                       gpios = <&gpio2 RK_PA7 GPIO_ACTIVE_LOW>;
+                       label = "TR";
+                       linux,code = <BTN_TR>;
+               };
+
+               button-r2 {
+                       gpios = <&gpio2 RK_PA5 GPIO_ACTIVE_LOW>;
+                       label = "TR2";
+                       linux,code = <BTN_TR2>;
+               };
+
+               button-right {
+                       gpios = <&gpio1 RK_PB7 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-RIGHT";
+                       linux,code = <BTN_DPAD_RIGHT>;
+               };
+
+               button-select {
+                       gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_LOW>;
+                       label = "SELECT";
+                       linux,code = <BTN_SELECT>;
+               };
+
+               button-start {
+                       gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
+                       label = "START";
+                       linux,code = <BTN_START>;
+               };
+
+               button-up {
+                       gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-UP";
+                       linux,code = <BTN_DPAD_UP>;
+               };
+
+               button-x {
+                       gpios = <&gpio2 RK_PB3 GPIO_ACTIVE_LOW>;
+                       label = "NORTH";
+                       linux,code = <BTN_NORTH>;
+               };
+
+               button-y {
+                       gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_LOW>;
+                       label = "WEST";
+                       linux,code = <BTN_WEST>;
+               };
+       };
+
+       multi-led {
+               compatible = "leds-group-multicolor";
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_KBD_BACKLIGHT;
+               leds = <&red_led>, <&green_led>, <&blue_led>;
+       };
+
+       spk_amp: audio-amplifier {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&spk_amp_enable_h>;
+               pinctrl-names = "default";
+               sound-name-prefix = "Speaker Amp";
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               pinctrl-0 = <&hp_det>;
+               pinctrl-names = "default";
+               simple-audio-card,name = "rk817_ext";
+               simple-audio-card,aux-devs = <&spk_amp>;
+               simple-audio-card,format = "i2s";
+               simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,widgets =
+                       "Microphone", "Mic Jack",
+                       "Headphone", "Headphones",
+                       "Speaker", "Internal Speakers";
+               simple-audio-card,routing =
+                       "MICL", "Mic Jack",
+                       "Headphones", "HPOL",
+                       "Headphones", "HPOR",
+                       "Internal Speakers", "Speaker Amp OUTL",
+                       "Internal Speakers", "Speaker Amp OUTR",
+                       "Speaker Amp INL", "HPOL",
+                       "Speaker Amp INR", "HPOR";
+               simple-audio-card,pin-switches = "Internal Speakers";
+
+               simple-audio-card,codec {
+                       sound-dai = <&rk817>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1_2ch>;
+               };
+       };
+
+       vibrator_left: pwm-vibrator-l {
+               compatible = "pwm-vibrator";
+               pwm-names = "enable";
+               pwms = <&pwm4 0 25000 0>;
+       };
+
+       vibrator_right: pwm-vibrator-r {
+               compatible = "pwm-vibrator";
+               pwm-names = "enable";
+               pwms = <&pwm5 0 25000 0>;
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk817 1>;
+               clock-names = "ext_clock";
+               pinctrl-0 = <&wifi_enable_h>;
+               pinctrl-names = "default";
+               post-power-on-delay-ms = <200>;
+               reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
+       };
+
+       vccsys: vccsys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v8_sys";
+               regulator-always-on;
+               regulator-min-microvolt = <3800000>;
+               regulator-max-microvolt = <3800000>;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&display_subsystem {
+       status = "okay";
+};
+
+&dsi {
+       status = "okay";
+
+       internal_display: panel@0 {
+               reg = <0>;
+               compatible = "gameforce,chi-panel";
+               backlight = <&backlight>;
+               iovcc-supply = <&vcc_lcd>;
+               vcc-supply = <&vcc_lcd>;
+               reset-gpios = <&gpio3 RK_PA0 GPIO_ACTIVE_LOW>;
+
+               port {
+                       mipi_in_panel: endpoint {
+                               remote-endpoint = <&mipi_out_panel>;
+                       };
+               };
+       };
+
+       ports {
+               mipi_out: port@1 {
+                       reg = <1>;
+
+                       mipi_out_panel: endpoint {
+                               remote-endpoint = <&mipi_in_panel>;
+                       };
+               };
+       };
+};
+
+&dsi_dphy {
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_logic>;
+       status = "okay";
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+       i2c-scl-falling-time-ns = <16>;
+       i2c-scl-rising-time-ns = <280>;
+       status = "okay";
+
+       rk817: pmic@20 {
+               compatible = "rockchip,rk817";
+               reg = <0x20>;
+               #clock-cells = <1>;
+               clock-names = "mclk";
+               clock-output-names = "rk808-clkout1", "xin32k";
+               clocks = <&cru SCLK_I2S1_OUT>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PC1 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>;
+               pinctrl-names = "default";
+               #sound-dai-cells = <0>;
+               system-power-controller;
+               wakeup-source;
+
+               vcc1-supply = <&vccsys>;
+               vcc2-supply = <&vccsys>;
+               vcc3-supply = <&vccsys>;
+               vcc4-supply = <&vccsys>;
+               vcc5-supply = <&vccsys>;
+               vcc6-supply = <&vccsys>;
+               vcc7-supply = <&vcc_3v0>;
+               vcc8-supply = <&vccsys>;
+               vcc9-supply = <&dcdc_boost>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1150000>;
+                               regulator-min-microvolt = <950000>;
+                               regulator-name = "vdd_logic";
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <950000>;
+                               };
+                       };
+
+                       vdd_arm: DCDC_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-min-microvolt = <950000>;
+                               regulator-name = "vdd_arm";
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <950000>;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vcc_ddr";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_3v0: DCDC_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-min-microvolt = <3000000>;
+                               regulator-name = "vcc_3v0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <3000000>;
+                               };
+                       };
+
+                       vcc_1v8: LDO_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_1v0: LDO_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-min-microvolt = <1000000>;
+                               regulator-name = "vdd_1v0";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+
+                       vcc_3v0_pmu: LDO_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-min-microvolt = <3000000>;
+                               regulator-name = "vcc_3v0_pmu";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3000000>;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "vccio_sd";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_sd: LDO_REG6 {
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vcc_sd";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_bl: LDO_REG7 {
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vcc_bl";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_lcd: LDO_REG8 {
+                               regulator-max-microvolt = <2800000>;
+                               regulator-min-microvolt = <2800000>;
+                               regulator-name = "vcc_lcd";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <2800000>;
+                               };
+                       };
+
+                       vcc_wifi: LDO_REG9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vcc_wifi";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       dcdc_boost: BOOST {
+                               regulator-max-microvolt = <5000000>;
+                               regulator-min-microvolt = <5000000>;
+                               regulator-name = "dcdc_boost";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       otg_switch: OTG_SWITCH {
+                               regulator-name = "otg_switch";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+
+               rk817_charger: charger {
+                       monitored-battery = <&battery>;
+                       rockchip,resistor-sense-micro-ohms = <10000>;
+                       rockchip,sleep-enter-current-microamp = <300000>;
+                       rockchip,sleep-filter-current-microamp = <100000>;
+               };
+       };
+};
+
+&i2s1_2ch {
+       status = "okay";
+};
+
+&io_domains {
+       vccio1-supply = <&vcc_3v0_pmu>;
+       vccio2-supply = <&vccio_sd>;
+       vccio3-supply = <&vcc_3v0>;
+       vccio4-supply = <&vcc_3v0>;
+       vccio5-supply = <&vcc_3v0>;
+       vccio6-supply = <&vcc_3v0>;
+       status = "okay";
+};
+
+&pinctrl {
+       bluetooth-pins {
+               bt_reset: bt-reset {
+                       rockchip,pins =
+                               <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               bt_wake_dev: bt-wake-dev {
+                       rockchip,pins =
+                               <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_host: bt-wake-host {
+                       rockchip,pins =
+                               <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       headphone {
+               hp_det: hp-det {
+                       rockchip,pins =
+                               <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       gpio-btns {
+               btn_pins_ctrl: btn-pins-ctrl {
+                       rockchip,pins =
+                               <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       gpio-leds {
+               led_pins: led-pins {
+                       rockchip,pins =
+                               <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int: pmic-int {
+                       rockchip,pins =
+                               <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               soc_slppin_gpio: soc_slppin_gpio {
+                       rockchip,pins =
+                               <0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>;
+               };
+
+               soc_slppin_rst: soc_slppin_rst {
+                       rockchip,pins =
+                               <0 RK_PA4 2 &pcfg_pull_none>;
+               };
+
+               soc_slppin_slp: soc_slppin_slp {
+                       rockchip,pins =
+                               <0 RK_PA4 1 &pcfg_pull_none>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins =
+                               <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       speaker {
+               spk_amp_enable_h: spk-amp-enable-h {
+                       rockchip,pins =
+                               <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc_1v8>;
+       pmuio2-supply = <&vcc_3v0_pmu>;
+       status = "okay";
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&pwm5 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdio {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       disable-wp;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       no-mmc;
+       no-sd;
+       non-removable;
+       sd-uhs-sdr104;
+       status = "okay";
+};
+
+&sdmmc {
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       no-sdio;
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_sd>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&sfc {
+       #address-cells = <1>;
+       pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus2>;
+       pinctrl-names = "default";
+       #size-cells = <0>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <108000000>;
+               spi-rx-bus-width = <2>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&u2phy {
+       status = "okay";
+
+       u2phy_otg: otg-port {
+               status = "okay";
+       };
+};
+
+&usb20_otg {
+       status = "okay";
+};
+
+/*
+ * The right ADC joystick exists connected to an unknown ADC
+ * controller which can be communicated with via uart0. This ADC device
+ * is an 8-pin SOIC with no markings located right next to the left ADC
+ * joystick ribbon cable. The pinout for this ADC controller appears to
+ * be pin 1 - VCC (2.8v), pin 2 - 1.8v (clk maybe?), pin 3 - GPIO 10,
+ * pin 4 - unknown, pin 5 - unknown, pin 6 - analog in, pin 7 - analog in,
+ * pin 8 - ground. There is currently a userspace UART driver for this
+ * device but it only works with the BSP joystick driver.
+ */
+&uart0 {
+       status = "okay";
+};
+
+/*
+ * Bluetooth was not working on BSP and is not currently working on
+ * mainline due to missing firmware. Bluetooth requires removal of DMA
+ * or else it will not probe.
+ */
+&uart1 {
+       /delete-property/ dma-names;
+       /delete-property/ dmas;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth: bluetooth {
+               compatible = "realtek,rtl8723ds-bt";
+               device-wake-gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
+               host-wake-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&bt_reset>, <&bt_wake_dev>, <&bt_wake_host>;
+               pinctrl-names = "default";
+       };
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m1_xfer>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&vopb {
+       status = "okay";
+};
+
+&vopb_mmu {
+       status = "okay";
+};
index f09d60bbe6c4f331ef0d79c9127371537f07050a..a608a219543e59b764df3fe5d25295e3af67d0ec 100644 (file)
        rk805: pmic@18 {
                compatible = "rockchip,rk805";
                reg = <0x18>;
-               interrupt-parent = <&gpio2>;
-               interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
                #clock-cells = <1>;
                clock-output-names = "xin32k", "rk805-clkout2";
                gpio-controller;
index b6f045069ee2f059b453c503d488112de6d709a8..07dcc949b8997e8bfd601e5e21230a5e22e05835 100644 (file)
                        cpu-idle-states = <&CPU_SLEEP>;
                        dynamic-power-coefficient = <120>;
                        enable-method = "psci";
-                       next-level-cache = <&l2>;
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu1: cpu@1 {
                        cpu-idle-states = <&CPU_SLEEP>;
                        dynamic-power-coefficient = <120>;
                        enable-method = "psci";
-                       next-level-cache = <&l2>;
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu2: cpu@2 {
                        cpu-idle-states = <&CPU_SLEEP>;
                        dynamic-power-coefficient = <120>;
                        enable-method = "psci";
-                       next-level-cache = <&l2>;
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu3: cpu@3 {
                        cpu-idle-states = <&CPU_SLEEP>;
                        dynamic-power-coefficient = <120>;
                        enable-method = "psci";
-                       next-level-cache = <&l2>;
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                idle-states {
                        };
                };
 
-               l2: l2-cache0 {
+               l2_cache: l2-cache {
                        compatible = "cache";
                        cache-level = <2>;
                        cache-unified;
+                       cache-size = <0x40000>;
+                       cache-line-size = <64>;
+                       cache-sets = <256>;
                };
        };
 
index b48b98c13705c385ccceb1c66066eb24be854636..e5c0dbf794ae7e112dca6bc8d9cd09baca14d910 100644 (file)
@@ -17,7 +17,7 @@
                stdout-path = "serial2:115200n8";
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x40000000>;
        };
index dcee2e28916f710faa519de1adda98c070fc222d..23ae2d9de38226f922694409c66a1a26ec87a234 100644 (file)
@@ -21,7 +21,7 @@
                stdout-path = "serial2:115200n8";
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x80000000>;
        };
index b16b7ca02379a82f5daceb56ea516bc69744e539..7f14206d53c396b4c90ea3d7bc6d673113c61fb5 100644 (file)
@@ -21,7 +21,7 @@
                stdout-path = "serial2:115200n8";
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x40000000>;
        };
index 62af0cb94839bba5f6e0c6e368f65fa0f35d10de..73618df7a889882f5a70f2454d723408118f94f3 100644 (file)
        };
 
        arm-pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
                dma-names = "tx";
                pinctrl-names = "default";
                pinctrl-0 = <&spdif_tx>;
+               #sound-dai-cells = <0>;
                status = "disabled";
        };
 
                clocks = <&cru SCLK_I2S_2CH>, <&cru HCLK_I2S_2CH>;
                dmas = <&dmac_bus 6>, <&dmac_bus 7>;
                dma-names = "tx", "rx";
+               #sound-dai-cells = <0>;
                status = "disabled";
        };
 
                dma-names = "tx", "rx";
                pinctrl-names = "default";
                pinctrl-0 = <&i2s_8ch_bus>;
+               #sound-dai-cells = <0>;
                status = "disabled";
        };
 
index 789fd0dcc88baadb05367b16d80b6c7019941160..3cd63d1e8f15bb210b986c5f08c7ecd9a74a6572 100644 (file)
@@ -450,7 +450,7 @@ ap_i2c_audio: &i2c8 {
                        dlg,btn-cfg = <50>;
                        dlg,mic-det-thr = <500>;
                        dlg,jack-ins-deb = <20>;
-                       dlg,jack-det-rate = "32ms_64ms";
+                       dlg,jack-det-rate = "32_64";
                        dlg,jack-rem-deb = <1>;
 
                        dlg,a-d-btn-thr = <0xa>;
index 61f3fec5a8b1d60a6707504d2cf971a392bf19e9..e5709c7ee06aae00de16032d5d2fb01ffd7ffc47 100644 (file)
@@ -16,7 +16,7 @@
 #include "rk3399-opp.dtsi"
 
 / {
-       model = "Pine64 PinePhonePro";
+       model = "Pine64 PinePhone Pro";
        compatible = "pine64,pinephone-pro", "rockchip,rk3399";
        chassis-type = "handset";
 
index 7baf9d1b22fd5fd9e88cfd37ade59377d3ce2829..972aea843afd698e21681ea1da9f30d603d7c68a 100644 (file)
 };
 
 &emmc_phy {
+       rockchip,enable-strobe-pulldown;
        status = "okay";
 };
 
 &sdhci {
        max-frequency = <150000000>;
        bus-width = <8>;
-       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
        non-removable;
        status = "okay";
 };
index 281a12180703433462fa9f4fb7e0ed1f2dfaeeef..b9d6284bb804f7fcb0d6408397a9cf632978199b 100644 (file)
 };
 
 &emmc_phy {
+       rockchip,enable-strobe-pulldown;
        status = "okay";
 };
 
 &sdhci {
        max-frequency = <150000000>;
        bus-width = <8>;
-       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
        non-removable;
        status = "okay";
 };
index 8aa93c646becfa501a5ae0022147012ba25e258b..a73cf30801ec7f33fc5ef42cd5288c99400f95df 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-anbernic-rg353x.dtsi"
 
 / {
-       model = "RG353P";
+       model = "Anbernic RG353P";
        compatible = "anbernic,rg353p", "rockchip,rk3566";
 
        aliases {
index b211973e36c2176b1003fe12c74e376af90b70a8..ca5284e4807d80b2327045e7dc8e900869f3c175 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-anbernic-rg353x.dtsi"
 
 / {
-       model = "RG353PS";
+       model = "Anbernic RG353PS";
        compatible = "anbernic,rg353ps", "rockchip,rk3566";
 
        aliases {
index f49ce29ba5977d6c59ec58067d0de49f26227fe3..e9954a33e8cd31f20890ac39e0d03428e87a86af 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-anbernic-rg353x.dtsi"
 
 / {
-       model = "RG353V";
+       model = "Anbernic RG353V";
        compatible = "anbernic,rg353v", "rockchip,rk3566";
 
        aliases {
index a7dc462fe21f0d99d9d895619175c7618dba1a23..90da43855d1cbc54dcbbba5a5766c2c70f671590 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-anbernic-rg353x.dtsi"
 
 / {
-       model = "RG353VS";
+       model = "Anbernic RG353VS";
        compatible = "anbernic,rg353vs", "rockchip,rk3566";
 
        aliases {
index 94e6dd61a2dbb4f1bca3efb7106c1d500ac3cb06..74cf313e06355570129b58ff4bf97864c3e9c6e1 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-anbernic-rgxx3.dtsi"
 
 / {
-       model = "RG503";
+       model = "Anbernic RG503";
        compatible = "anbernic,rg503", "rockchip,rk3566";
 
        aliases {
index 18b8c2e7befa75712c0e2b1af9b35113ffec4d84..233eade30f211017e4db301cf67f0c66e8bef38f 100644 (file)
@@ -10,6 +10,8 @@
 #include "rk3566.dtsi"
 
 / {
+       chassis-type = "handset";
+
        chosen: chosen {
                stdout-path = "serial2:1500000n8";
        };
        cap-sdio-irq;
        keep-power-in-suspend;
        mmc-pwrseq = <&sdio_pwrseq>;
+       no-mmc;
+       no-sd;
        non-removable;
        pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>;
        pinctrl-names = "default";
+       sd-uhs-sdr50;
        vmmc-supply = <&vcc_wifi>;
        vqmmc-supply = <&vcca1v8_pmu>;
        status = "okay";
index 1f567a14ac84e00b321a37459fba78b3fc2a8863..952b1b285f3b490db4fe4972ecffe4375f7ec360 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-powkiddy-rk2023.dtsi"
 
 / {
-       model = "RGB30";
+       model = "Powkiddy RGB30";
        compatible = "powkiddy,rgb30", "rockchip,rk3566";
 };
 
index bc9933d9e2626cce2f511c051ab8295ad0c65372..72890f747ee393281be0b8d3a4611c4259073a4a 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-powkiddy-rk2023.dtsi"
 
 / {
-       model = "RK2023";
+       model = "Powkiddy RK2023";
        compatible = "powkiddy,rk2023", "rockchip,rk3566";
 };
 
index 3ab751a01cb209023cfacff7d870236e3c828007..bd332714a023985d96fd320dfe60a1f0d8ccf435 100644 (file)
@@ -10,6 +10,8 @@
 #include "rk3566.dtsi"
 
 / {
+       chassis-type = "handset";
+
        aliases {
                mmc1 = &sdmmc0;
                mmc2 = &sdmmc1;
index 4786b19fd01786add59224103919197d636034e0..5a648db41f355e873dfdbc5be660622292a017fe 100644 (file)
@@ -11,6 +11,7 @@
 
 / {
        model = "Powkiddy x55";
+       chassis-type = "handset";
        compatible = "powkiddy,x55", "rockchip,rk3566";
 
        aliases {
index 59843a7a199c24a2ceabcd9a15c9a990525cb31c..0b191d8462ad85757a48794c884f36b569ff202f 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566.dtsi"
 
 / {
-       model = "Pine64 RK3566 Quartz64-A Board";
+       model = "Pine64 Quartz64 Model A";
        compatible = "pine64,quartz64-a", "rockchip,rk3566";
 
        aliases {
index 2d92713be2a09f97ca603cbb64bdc49fd4fc00db..b908ce006c26e1fbc11f1249854b8ea45a0f55bb 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566.dtsi"
 
 / {
-       model = "Pine64 RK3566 Quartz64-B Board";
+       model = "Pine64 Quartz64 Model B";
        compatible = "pine64,quartz64-b", "rockchip,rk3566";
 
        aliases {
                                regulator-name = "vdd_gpu";
                                regulator-always-on;
                                regulator-boot-on;
-                               regulator-min-microvolt = <900000>;
+                               regulator-min-microvolt = <500000>;
                                regulator-max-microvolt = <1350000>;
                                regulator-ramp-delay = <6001>;
 
diff --git a/src/arm64/rockchip/rk3566-rock-3c.dts b/src/arm64/rockchip/rk3566-rock-3c.dts
new file mode 100644 (file)
index 0000000..b242409
--- /dev/null
@@ -0,0 +1,726 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3566.dtsi"
+
+/ {
+       model = "Radxa ROCK 3C";
+       compatible = "radxa,rock-3c", "rockchip,rk3566";
+
+       aliases {
+               ethernet0 = &gmac1;
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc0;
+               mmc2 = &sdmmc1;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       gmac1_clkin: external-gmac1-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <125000000>;
+               clock-output-names = "gmac1_clkin";
+               #clock-cells = <0>;
+       };
+
+       hdmi-con {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_BLUE>;
+                       linux,default-trigger = "heartbeat";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&user_led2>;
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk809 1>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_reg_on_h>;
+               post-power-on-delay-ms = <100>;
+               power-off-delay-us = <5000000>;
+               reset-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
+       };
+
+       vcc5v_dcin: vcc5v-dcin-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       vcc3v3_pcie: vcc3v3-pcie-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie_pwr_en>;
+               regulator-name = "vcc3v3_pcie";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       vcc3v3_sys: vcc3v3-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_sys: vcc5v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v_dcin>;
+       };
+
+       vcc5v0_usb30_host: vcc5v0-usb30-host-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb30_host_en>;
+               regulator-name = "vcc5v0_usb30_host";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb_otg_en>;
+               regulator-name = "vcc5v0_usb_otg";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc_cam: vcc-cam-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc_cam_en>;
+               regulator-name = "vcc_cam";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc3v3_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vcc_mipi: vcc-mipi-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc_mipi_en>;
+               regulator-name = "vcc_mipi";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc3v3_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&combphy1 {
+       status = "okay";
+};
+
+&combphy2 {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&gmac1 {
+       assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
+       assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&gmac1_clkin>;
+       clock_in_out = "input";
+       phy-handle = <&rgmii_phy1>;
+       phy-mode = "rgmii-id";
+       phy-supply = <&vcc_3v3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1m1_miim
+                    &gmac1m1_tx_bus2
+                    &gmac1m1_rx_bus2
+                    &gmac1m1_rgmii_clk
+                    &gmac1m1_rgmii_bus
+                    &gmac1m1_clkinout>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&hdmi {
+       avdd-0v9-supply = <&vdda0v9_image>;
+       avdd-1v8-supply = <&vcca1v8_image>;
+       status = "okay";
+};
+
+&hdmi_in {
+       hdmi_in_vp0: endpoint {
+               remote-endpoint = <&vp0_out_hdmi>;
+       };
+};
+
+&hdmi_out {
+       hdmi_out_con: endpoint {
+               remote-endpoint = <&hdmi_con_in>;
+       };
+};
+
+&hdmi_sound {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       vdd_cpu: regulator@1c {
+               compatible = "tcs,tcs4525";
+               reg = <0x1c>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <800000>;
+               regulator-max-microvolt = <1150000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       rk809: pmic@20 {
+               compatible = "rockchip,rk809";
+               reg = <0x20>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+               clock-output-names = "rk808-clkout1", "rk808-clkout2";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>;
+               system-power-controller;
+               vcc1-supply = <&vcc3v3_sys>;
+               vcc2-supply = <&vcc3v3_sys>;
+               vcc3-supply = <&vcc3v3_sys>;
+               vcc4-supply = <&vcc3v3_sys>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc3v3_sys>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+               wakeup-source;
+               #clock-cells = <1>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-name = "vdd_logic";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vdd_npu: DCDC_REG4 {
+                               regulator-name = "vdd_npu";
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8: DCDC_REG5 {
+                               regulator-name = "vcc_1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_image: LDO_REG1 {
+                               regulator-name = "vdda0v9_image";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda_0v9: LDO_REG2 {
+                               regulator-name = "vdda_0v9";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-name = "vdda0v9_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vccio_acodec: LDO_REG4 {
+                               regulator-name = "vccio_acodec";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-name = "vccio_sd";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               regulator-name = "vcc3v3_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca_1v8: LDO_REG7 {
+                               regulator-name = "vcca_1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcca1v8_pmu: LDO_REG8 {
+                               regulator-name = "vcca1v8_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcca1v8_image: LDO_REG9 {
+                               regulator-name = "vcca1v8_image";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3: SWITCH_REG1 {
+                               regulator-name = "vcc_3v3";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_sd: SWITCH_REG2 {
+                               regulator-name = "vcc3v3_sd";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+
+       eeprom: eeprom@50 {
+               compatible = "belling,bl24c16a", "atmel,24c16";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+};
+
+&i2s0_8ch {
+       status = "okay";
+};
+
+&i2s1_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 &i2s1m0_sdo0>;
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@1 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x1>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pcie2x1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie_reset_h>;
+       reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie>;
+       status = "okay";
+};
+
+&pinctrl {
+       bluetooth {
+               bt_reg_on_h: bt-reg-on-h {
+                       rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_host_h: bt-wake-host-h {
+                       rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_host_wake_h: bt-host-wake-h {
+                       rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       cam {
+               vcc_cam_en: vcc_cam_en {
+                       rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       display {
+               vcc_mipi_en: vcc_mipi_en {
+                       rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               user_led2: user-led2 {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie {
+               pcie_pwr_en: pcie-pwr-en {
+                       rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie_reset_h: pcie-reset-h {
+                       rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb {
+               vcc5v0_usb30_host_en: vcc5v0-usb30-host-en {
+                       rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc5v0_usb_otg_en: vcc5v0-usb-otg-en {
+                       rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       wifi {
+               wifi_host_wake_h: wifi-host-wake-h {
+                       rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               wifi_reg_on_h: wifi-reg-on-h {
+                       rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcca1v8_pmu>;
+       vccio1-supply = <&vccio_acodec>;
+       vccio2-supply = <&vcc_1v8>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcca1v8_pmu>;
+       vccio5-supply = <&vcc_3v3>;
+       vccio6-supply = <&vcc_3v3>;
+       vccio7-supply = <&vcc_3v3>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcca_1v8>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       mmc-hs200-1_8v;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       sd-uhs-sdr50;
+       vmmc-supply = <&vcc3v3_sys>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&sdmmc1 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_clk &sdmmc1_cmd>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sys>;
+       vqmmc-supply = <&vcca1v8_pmu>;
+       status = "okay";
+};
+
+&sfc {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0x0>;
+               spi-max-frequency = <120000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1m0_ctsn &uart1m0_rtsn &uart1m0_xfer>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&vcc5v0_usb30_host>;
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       phy-supply = <&vcc5v0_usb_otg>;
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb2phy1_host {
+       phy-supply = <&vcc5v0_usb30_host>;
+       status = "okay";
+};
+
+&usb2phy1_otg {
+       phy-supply = <&vcc5v0_usb30_host>;
+       status = "okay";
+};
+
+&vop {
+       assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
+       assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
+&vp0 {
+       vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+               reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+               remote-endpoint = <&hdmi_in_vp0>;
+       };
+};
index fdbf1c78324229b81715279e4182e39bb3cde176..fdbb4a6a19d85bcf13c4330648638180514970e9 100644 (file)
@@ -10,7 +10,7 @@
 #include "rk3566-soquartz.dtsi"
 
 / {
-       model = "PINE64 RK3566 SOQuartz on Blade carrier board";
+       model = "Pine64 SOQuartz on Blade carrier board";
        compatible = "pine64,soquartz-blade", "pine64,soquartz", "rockchip,rk3566";
 
        aliases {
index 6ed3fa4aee34f22a0b09f189000800331a49b2aa..2b6f0df477b67fe3b67718e4963b77dc4aee4432 100644 (file)
@@ -5,7 +5,7 @@
 #include "rk3566-soquartz.dtsi"
 
 / {
-       model = "Pine64 RK3566 SoQuartz with CM4-IO Carrier Board";
+       model = "Pine64 SOQuartz on CM4-IO carrier board";
        compatible = "pine64,soquartz-cm4io", "pine64,soquartz", "rockchip,rk3566";
 
        aliases {
index f2095dfa4eaf6efe2d4c46d2dd78f68fa266ff7f..9a6a63277c3dca7f95fd951a666b3bf3d9a7528e 100644 (file)
@@ -5,7 +5,7 @@
 #include "rk3566-soquartz.dtsi"
 
 / {
-       model = "PINE64 RK3566 SOQuartz on Model A carrier board";
+       model = "Pine64 SOQuartz on Model A carrier board";
        compatible = "pine64,soquartz-model-a", "pine64,soquartz", "rockchip,rk3566";
 
        aliases {
index bfb7b952f4c5e849ed243c53ff3abef5cfb3c4d8..dd4e9c1893c6125d553be151963ca021c4b80b55 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566.dtsi"
 
 / {
-       model = "Pine64 RK3566 SoQuartz SOM";
+       model = "Pine64 SOQuartz system on module";
        compatible = "pine64,soquartz", "rockchip,rk3566";
 
        aliases {
diff --git a/src/arm64/rockchip/rk3568-mecsbc.dts b/src/arm64/rockchip/rk3568-mecsbc.dts
new file mode 100644 (file)
index 0000000..c2dfffc
--- /dev/null
@@ -0,0 +1,404 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/pwm/pwm.h>
+#include "rk3568.dtsi"
+
+/ {
+       model = "Protonic MECSBC";
+       compatible = "prt,mecsbc", "rockchip,rk3568";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc0;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       tas2562-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,name = "Speaker";
+               simple-audio-card,mclk-fs = <256>;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1_8ch>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&tas2562>;
+               };
+       };
+
+       vdd_gpu: regulator-vdd-gpu {
+               compatible = "pwm-regulator";
+               pwms = <&pwm1 0 5000 PWM_POLARITY_INVERTED>;
+               regulator-name = "vdd_gpu";
+               regulator-min-microvolt = <915000>;
+               regulator-max-microvolt = <1000000>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-settling-time-up-us = <250>;
+               pwm-dutycycle-range = <0 100>; /* dutycycle inverted 0% => 0.915V */
+       };
+
+       p3v3: regulator-p3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "p3v3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       p1v8: regulator-p1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "p1v8";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       vcc_sd: regulator-sd {
+               compatible = "regulator-gpio";
+               enable-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+               regulator-name = "sdcard-gpio-supply";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               states = <1800000 0x1>, <3300000 0x0>;
+       };
+
+       vdd_npu: regulator-vdd-npu {
+               compatible = "pwm-regulator";
+               pwms = <&pwm2 0 5000 PWM_POLARITY_INVERTED>;
+               regulator-name = "vdd_npu";
+               regulator-min-microvolt = <915000>;
+               regulator-max-microvolt = <1000000>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-settling-time-up-us = <250>;
+               pwm-dutycycle-range = <0 100>; /* dutycycle inverted 0% => 0.915V */
+       };
+};
+
+&combphy0 {
+       status = "okay";
+};
+
+&combphy1 {
+       status = "okay";
+};
+
+&combphy2 {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&gmac1 {
+       assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
+       assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
+       phy-handle = <&rgmii_phy1>;
+       phy-mode = "rgmii-id";
+       clock_in_out = "output";
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1m1_miim
+                    &gmac1m1_tx_bus2
+                    &gmac1m1_rx_bus2
+                    &gmac1m1_rgmii_clk
+                    &gmac1m1_clkinout
+                    &gmac1m1_rgmii_bus>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&gpu_opp_table {
+       compatible = "operating-points-v2";
+
+       opp-200000000 {
+               opp-hz = /bits/ 64 <200000000>;
+               opp-microvolt = <915000>;
+       };
+
+       opp-300000000 {
+               opp-hz = /bits/ 64 <300000000>;
+               opp-microvolt = <915000>;
+       };
+
+       opp-400000000 {
+               opp-hz = /bits/ 64 <400000000>;
+               opp-microvolt = <915000>;
+       };
+
+       opp-600000000 {
+               opp-hz = /bits/ 64 <600000000>;
+               opp-microvolt = <920000>;
+       };
+
+       opp-700000000 {
+               opp-hz = /bits/ 64 <700000000>;
+               opp-microvolt = <950000>;
+       };
+
+       opp-800000000 {
+               opp-hz = /bits/ 64 <800000000>;
+               opp-microvolt = <1000000>;
+       };
+};
+
+&i2c0 {
+       status = "okay";
+
+       vdd_cpu: regulator@60 {
+               compatible = "fcs,fan53555";
+               reg = <0x60>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <800000>;
+               regulator-max-microvolt = <1150000>;
+               regulator-ramp-delay = <2300>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2m0_xfer>;
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3m0_xfer>;
+       status = "okay";
+
+       tas2562: amplifier@4c {
+               compatible = "ti,tas2562";
+               reg = <0x4c>;
+               #sound-dai-cells = <0>;
+               shutdown-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
+               interrupt-parent = <&gpio1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_tas2562>;
+               interrupts = <RK_PD1 IRQ_TYPE_LEVEL_LOW>;
+               ti,imon-slot-no = <0>;
+       };
+};
+
+&i2c5 {
+       status = "okay";
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp1075";
+               reg = <0x48>;
+       };
+
+       rtc@51 {
+               compatible = "nxp,pcf85363";
+               reg = <0x51>;
+               #clock-cells = <0>;
+               clock-output-names = "rtcic_32kout";
+       };
+};
+
+&i2s1_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 &i2s1m0_sdo0>;
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@2 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&eth_phy1_rst>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pcie2x1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie20m1_pins>;
+       reset-gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&pcie30phy {
+       status = "okay";
+};
+
+&pcie3x2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie30x2m1_pins>;
+       reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&p3v3>;
+       status = "okay";
+};
+
+&pinctrl {
+       ethernet {
+               eth_phy1_rst: eth-phy1-rst {
+                       rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       tas2562 {
+               pinctrl_tas2562: tas2562 {
+                       rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&p3v3>;
+       pmuio2-supply = <&p3v3>;
+       vccio1-supply = <&p1v8>;
+       vccio2-supply = <&p1v8>;
+       vccio3-supply = <&vcc_sd>;
+       vccio4-supply = <&p1v8>;
+       vccio5-supply = <&p3v3>;
+       vccio6-supply = <&p1v8>;
+       vccio7-supply = <&p3v3>;
+       status = "okay";
+};
+
+&pwm1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm1m0_pins>;
+};
+
+&pwm2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm2m0_pins>;
+};
+
+&saradc {
+       vref-supply = <&p1v8>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
+       vmmc-supply = <&p3v3>;
+       vqmmc-supply = <&p1v8>;
+       mmc-hs200-1_8v;
+       non-removable;
+       no-sd;
+       no-sdio;
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       vmmc-supply = <&p3v3>;
+       vqmmc-supply = <&vcc_sd>;
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "host";
+       extcon = <&usb2phy0>;
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb2phy1_host {
+       status = "okay";
+};
+
+&usb2phy1_otg {
+       status = "okay";
+};
index a5e974ea659e2eb274d5ee65ebbecc61300db164..ebdedea15ad1605a05f278d52ad2f6cf8101c14a 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3568.dtsi"
 
 / {
-       model = "Radxa ROCK3 Model A";
+       model = "Radxa ROCK 3A";
        compatible = "radxa,rock3a", "rockchip,rk3568";
 
        aliases {
        status = "okay";
 };
 
+&sfc {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0x0>;
+               spi-max-frequency = <104000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
 &tsadc {
        rockchip,hw-tshut-mode = <1>;
        rockchip,hw-tshut-polarity = <0>;
diff --git a/src/arm64/rockchip/rk3568-wolfvision-pf5-io-expander.dtso b/src/arm64/rockchip/rk3568-wolfvision-pf5-io-expander.dtso
new file mode 100644 (file)
index 0000000..ebcaeaf
--- /dev/null
@@ -0,0 +1,137 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Device tree overlay for the WolfVision PF5 IO Expander board.
+ *
+ * Copyright (C) 2024 WolfVision GmbH.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/rk3568-cru.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+
+&{/} {
+       gmac0_clkin: external-gmac0-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <50000000>;
+               clock-output-names = "gmac0_clkin";
+               #clock-cells = <0>;
+       };
+
+       usb_host_vbus: usb-host-vbus-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_host_vbus_en>;
+               regulator-name = "usb_host_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v_in>;
+       };
+
+       vcc1v8_eth: vcc1v8-eth-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc1v8_eth_en>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "1v8_eth";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       vcc3v3_eth: vcc3v3-eth-regulator {
+               compatible = "regulator-fixed";
+               enable-active-low;
+               gpio = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc3v3_eth_enn>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "3v3_eth";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+};
+
+&gmac0 {
+       assigned-clocks = <&cru SCLK_GMAC0_RX_TX>,
+                         <&cru SCLK_GMAC0>;
+       assigned-clock-parents = <&cru SCLK_GMAC0_RMII_SPEED>,
+                                <&gmac0_clkin>;
+       clock_in_out = "input";
+       phy-handle = <&dp83826>;
+       phy-mode = "rmii";
+       phy-supply = <&vcc3v3_eth>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac0_miim
+                    &gmac0_clkinout
+                    &gmac0_rx_er
+                    &gmac0_rx_bus2
+                    &gmac0_tx_bus2>;
+       status = "okay";
+};
+
+&mdio0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       dp83826: ethernet-phy@0 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x0>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PD3 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&eth_wake_intn &eth_phy_rstn>;
+               reset-assert-us = <1000>;
+               reset-deassert-us = <2000>;
+               reset-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_LOW>;
+               wakeup-source;
+       };
+};
+
+&pinctrl {
+       ethernet {
+               eth_wake_intn: eth-wake-intn-pinctrl {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               eth_phy_rstn: eth-phy-rstn-pinctrl {
+                       rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc1v8_eth_en: vcc1v8-eth-en-pinctrl {
+                       rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc3v3_eth_enn: vcc3v3-eth-enn-pinctrl {
+                       rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               usb_host_vbus_en: usb-host-vbus-en-pinctrl {
+                       rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&usb_host1_xhci {
+       maximum-speed = "high-speed";
+       phys = <&usb2phy0_host>;
+       phy-names = "usb2-phy";
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&usb_host_vbus>;
+       status = "okay";
+};
diff --git a/src/arm64/rockchip/rk3568-wolfvision-pf5.dts b/src/arm64/rockchip/rk3568-wolfvision-pf5.dts
new file mode 100644 (file)
index 0000000..170b14f
--- /dev/null
@@ -0,0 +1,528 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Device tree for the WolfVision PF5 mainboard.
+ *
+ * Copyright (C) 2024 WolfVision GmbH.
+ */
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/regulator/ti,tps62864.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3568.dtsi"
+
+/ {
+       model = "WolfVision PF5";
+       compatible = "wolfvision,rk3568-pf5", "rockchip,rk3568";
+
+       aliases {
+               ethernet0 = &gmac0;
+               mmc0 = &sdhci;
+               rtc0 = &pcf85623;
+               rtc1 = &rk809;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial2:115200n8";
+       };
+
+       hdmi_tx: hdmi-tx-connector {
+               compatible = "hdmi-connector";
+               hdmi-pwr-supply = <&hdmi_tx_5v>;
+               type = "a";
+
+               port {
+                       hdmi_tx_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
+       hdmi_tx_5v: hdmi-tx-5v-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hdmi_tx_5v_en>;
+               regulator-name = "hdmi_tx_5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v_in>;
+       };
+
+       pdm_codec: pdm-codec {
+               compatible = "dmic-codec";
+               num-channels = <1>;
+               #sound-dai-cells = <0>;
+       };
+
+       pdm_sound: pdm-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "microphone";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&pdm>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&pdm_codec>;
+               };
+       };
+
+       vcc12v_cam: vcc12v-cam-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc12v_cam_en>;
+               regulator-name = "12v_cam";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               vin-supply = <&vcc12v_in>;
+       };
+
+       vcc12v_in: vcc12v-in-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "12v_in";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       vcc3v8_cam: vcc3v8-cam-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc3v8_cam_en>;
+               regulator-name = "3v8_cam";
+               regulator-min-microvolt = <3800000>;
+               regulator-max-microvolt = <3800000>;
+               vin-supply = <&vcc5v_in>;
+       };
+
+       vcc3v3_sys: vcc3v3-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "3v3_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v_in>;
+       };
+
+       vcc5v_in: vcc5v-in-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "5v_in";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc12v_in>;
+       };
+};
+
+&combphy0 {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&vcc0v9_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vcc0v9_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vcc0v9_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vcc0v9_cpu>;
+};
+
+&gpu {
+       mali-supply = <&vcc0v9_gpu>;
+       status = "okay";
+};
+
+&hdmi {
+       avdd-0v9-supply = <&vcc0v9a_image>;
+       avdd-1v8-supply = <&vcc1v8a_image>;
+       status = "okay";
+};
+
+&hdmi_in {
+       hdmi_in_vp0: endpoint {
+               remote-endpoint = <&vp0_out_hdmi>;
+       };
+};
+
+&hdmi_out {
+       hdmi_tx_out: endpoint {
+               remote-endpoint = <&hdmi_tx_in>;
+       };
+};
+
+&i2c0 {
+       status = "okay";
+
+       rk809: pmic@20 {
+               compatible = "rockchip,rk809";
+               reg = <0x20>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>;
+               rockchip,system-power-controller;
+               vcc1-supply = <&vcc5v_in>;
+               vcc2-supply = <&vcc5v_in>;
+               vcc3-supply = <&vcc5v_in>;
+               vcc4-supply = <&vcc5v_in>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc5v_in>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+               wakeup-source;
+
+               regulators {
+                       vcc0v9_logic: DCDC_REG1 {
+                               regulator-name = "0v9_logic";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc0v9_gpu: DCDC_REG2 {
+                               regulator-name = "0v9_gpu";
+                               regulator-always-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v1_ddr4: DCDC_REG3 {
+                               regulator-name = "1v1_ddr4";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc0v9_npu: DCDC_REG4 {
+                               regulator-name = "0v9_npu";
+                               regulator-always-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v8: DCDC_REG5 {
+                               regulator-name = "1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc0v9a_image: LDO_REG1 {
+                               regulator-name = "0v9a_image";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc0v9a: LDO_REG2 {
+                               regulator-name = "0v9a";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc0v9a_pmu: LDO_REG3 {
+                               regulator-name = "0v9a_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vcc3v3_acodec: LDO_REG4 {
+                               regulator-name = "3v3_acodec";
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_sd: LDO_REG5 {
+                               regulator-name = "3v3_sd";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               regulator-name = "3v3_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc1v8a: LDO_REG7 {
+                               regulator-name = "1v8a";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v8a_pmu: LDO_REG8 {
+                               regulator-name = "1v8a_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc1v8a_image: LDO_REG9 {
+                               regulator-name = "1v8a_image";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_sw: SWITCH_REG1 {
+                               regulator-name = "3v3_sw";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+
+       regulator@42 {
+               compatible = "ti,tps62869";
+               reg = <0x42>;
+
+               regulators {
+                       vcc0v9_cpu: SW {
+                               regulator-name = "0v9_cpu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <TPS62864_MODE_FPWM>;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1150000>;
+                               vin-supply = <&vcc5v_in>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+
+       pcf85623: rtc@51 {
+               compatible = "nxp,pcf85263";
+               reg = <0x51>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&clk32k_in>;
+               quartz-load-femtofarads = <12500>;
+       };
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3m0_xfer>;
+};
+
+&i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4m1_xfer>;
+};
+
+&pdm {
+       pinctrl-0 = <&pdmm0_clk
+                    &pdmm0_sdi0>;
+       status = "okay";
+};
+
+&pinctrl {
+       cam {
+               vcc12v_cam_en: vcc12v-cam-en-pinctrl {
+                       rockchip,pins = <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc3v8_cam_en: vcc3v8-cam-en-pinctrl {
+                       rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       hdmitx {
+               hdmi_tx_5v_en: hdmi-tx-5v-en-pinctrl {
+                       rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l-pinctrl {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcc3v3_pmu>;
+       vccio1-supply = <&vcc3v3_acodec>;
+       vccio2-supply = <&vcc1v8>;
+       vccio3-supply = <&vcc3v3_sd>;
+       vccio4-supply = <&vcc1v8>;
+       vccio5-supply = <&vcc1v8>;
+       vccio6-supply = <&vcc3v3_sw>;
+       vccio7-supply = <&vcc3v3_sw>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc1v8a>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
+       vmmc-supply = <&vcc3v3_sw>;
+       vqmmc-supply = <&vcc1v8>;
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "peripheral";
+       /* The following quirks are required since the bInterval is 1 and we
+        * handle steady ISOC streaming. See Usecase 3 in commit 729dcffd1ed3
+        * ("usb: dwc3: gadget: Add support for disabling U1 and U2 entries").
+        */
+       snps,dis-u1-entry-quirk;
+       snps,dis-u2-entry-quirk;
+       /*
+        * Without this quirk the available fifosize seems to be miscalculated
+        * in cases where many endpoints are used. In one particular situation
+        * 8 IN EPs and 3 OUT EPs where selected and lead to stalled transfers
+        * without the resize quirk.
+        */
+       tx-fifo-resize;
+
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       status = "okay";
+};
+
+&vop {
+       assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP2>;
+       assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
+&vp0 {
+       vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+               reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+               remote-endpoint = <&hdmi_in_vp0>;
+       };
+};
index 92f96ec01385d9cbf8be0300ce7b77b8d8f13341..d8543b5557ee7202af6554cf55eccc9a7eeba25f 100644 (file)
                        #cooling-cells = <2>;
                        enable-method = "psci";
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l3_cache>;
                };
 
                cpu1: cpu@100 {
                        #cooling-cells = <2>;
                        enable-method = "psci";
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l3_cache>;
                };
 
                cpu2: cpu@200 {
                        #cooling-cells = <2>;
                        enable-method = "psci";
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l3_cache>;
                };
 
                cpu3: cpu@300 {
                        #cooling-cells = <2>;
                        enable-method = "psci";
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l3_cache>;
                };
        };
 
+       /*
+        * There are no private per-core L2 caches, but only the
+        * L3 cache that appears to the CPU cores as L2 caches
+        */
+       l3_cache: l3-cache {
+               compatible = "cache";
+               cache-level = <2>;
+               cache-unified;
+               cache-size = <0x80000>;
+               cache-line-size = <64>;
+               cache-sets = <512>;
+       };
+
        cpu0_opp_table: opp-table-0 {
                compatible = "operating-points-v2";
                opp-shared;
diff --git a/src/arm64/rockchip/rk3588-armsom-sige7.dts b/src/arm64/rockchip/rk3588-armsom-sige7.dts
new file mode 100644 (file)
index 0000000..98c622b
--- /dev/null
@@ -0,0 +1,721 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include "rk3588.dtsi"
+
+/ {
+       model = "ArmSoM Sige7";
+       compatible = "armsom,sige7", "rockchip,rk3588";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       analog-sound {
+               compatible = "audio-graph-card";
+               dais = <&i2s0_8ch_p0>;
+               label = "rk3588-es8316";
+               hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_detect>;
+               routing = "MIC2", "Mic Jack",
+                         "Headphones", "HPOL",
+                         "Headphones", "HPOR";
+               widgets = "Microphone", "Mic Jack",
+                         "Headphone", "Headphones";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_rgb_g>;
+
+               led_green: led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led_red: led-1 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "none";
+               };
+       };
+
+       fan: pwm-fan {
+               compatible = "pwm-fan";
+               cooling-levels = <0 95 145 195 255>;
+               fan-supply = <&vcc5v0_sys>;
+               pwms = <&pwm1 0 50000 0>;
+               #cooling-cells = <2>;
+       };
+
+       vcc3v3_pcie2x1l2: vcc3v3-pcie2x1l2-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_pcie2x1l2";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <5000>;
+               vin-supply = <&vcc_3v3_s3>;
+       };
+
+       vcc3v3_pcie30: vcc3v3-pcie30-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
+               regulator-name = "vcc3v3_pcie30";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <5000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_host: vcc5v0-host-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_host";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host_en>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_sys: vcc5v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_1v1_nldo_s3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+};
+
+&combphy0_ps {
+       status = "okay";
+};
+
+&combphy1_ps {
+       status = "okay";
+};
+
+&combphy2_psu {
+       status = "okay";
+};
+
+&cpu_b0 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b1 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b2 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_b3 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_l0 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l1 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l2 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l3 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0m2_xfer>;
+       status = "okay";
+
+       vdd_cpu_big0_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big0_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_cpu_big1_s0: regulator@43 {
+               compatible = "rockchip,rk8603", "rockchip,rk8602";
+               reg = <0x43>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big1_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c6 {
+       status = "okay";
+
+       hym8563: rtc@51 {
+               compatible = "haoyu,hym8563";
+               reg = <0x51>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <0>;
+               clock-output-names = "hym8563";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hym8563_int>;
+               wakeup-source;
+       };
+};
+
+&i2c7 {
+       status = "okay";
+
+       es8316: audio-codec@11 {
+               compatible = "everest,es8316";
+               reg = <0x11>;
+               assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
+               assigned-clock-rates = <12288000>;
+               clocks = <&cru I2S0_8CH_MCLKOUT>;
+               clock-names = "mclk";
+               #sound-dai-cells = <0>;
+
+               port {
+                       es8316_p0_0: endpoint {
+                               remote-endpoint = <&i2s0_8ch_p0_0>;
+                       };
+               };
+       };
+};
+
+&i2s0_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s0_lrck
+                    &i2s0_mclk
+                    &i2s0_sclk
+                    &i2s0_sdi0
+                    &i2s0_sdo0>;
+       status = "okay";
+
+       i2s0_8ch_p0: port {
+               i2s0_8ch_p0_0: endpoint {
+                       dai-format = "i2s";
+                       mclk-fs = <256>;
+                       remote-endpoint = <&es8316_p0_0>;
+               };
+       };
+};
+
+/* phy1 - right ethernet port */
+&pcie2x1l0 {
+       reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+/* phy2 - WiFi */
+&pcie2x1l1 {
+       reset-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+/* phy0 - left ethernet port */
+&pcie2x1l2 {
+       reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&pcie30phy {
+       status = "okay";
+};
+
+&pcie3x4 {
+       reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie30>;
+       status = "okay";
+};
+
+&pinctrl {
+       hym8563 {
+               hym8563_int: hym8563-int {
+                       rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               led_rgb_g: led-rgb-g {
+                       rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               led_rgb_r: led-rgb-r {
+                       rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       sound {
+               hp_detect: hp-detect {
+                       rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               vcc5v0_host_en: vcc5v0-host-en {
+                       rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&avcc_1v8_s0>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       no-sdio;
+       no-sd;
+       non-removable;
+       mmc-hs200-1_8v;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       disable-wp;
+       max-frequency = <200000000>;
+       no-sdio;
+       no-mmc;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_3v3_s3>;
+       vqmmc-supply = <&vccio_sd_s0>;
+       status = "okay";
+};
+
+&spi2 {
+       assigned-clocks = <&cru CLK_SPI2>;
+       assigned-clock-rates = <200000000>;
+       num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
+       status = "okay";
+
+       pmic@0 {
+               compatible = "rockchip,rk806";
+               spi-max-frequency = <1000000>;
+               reg = <0x0>;
+
+               interrupt-parent = <&gpio0>;
+               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
+                           <&rk806_dvs2_null>, <&rk806_dvs3_null>;
+
+               system-power-controller;
+
+               vcc1-supply = <&vcc5v0_sys>;
+               vcc2-supply = <&vcc5v0_sys>;
+               vcc3-supply = <&vcc5v0_sys>;
+               vcc4-supply = <&vcc5v0_sys>;
+               vcc5-supply = <&vcc5v0_sys>;
+               vcc6-supply = <&vcc5v0_sys>;
+               vcc7-supply = <&vcc5v0_sys>;
+               vcc8-supply = <&vcc5v0_sys>;
+               vcc9-supply = <&vcc5v0_sys>;
+               vcc10-supply = <&vcc5v0_sys>;
+               vcc11-supply = <&vcc_2v0_pldo_s3>;
+               vcc12-supply = <&vcc5v0_sys>;
+               vcc13-supply = <&vcc_1v1_nldo_s3>;
+               vcc14-supply = <&vcc_1v1_nldo_s3>;
+               vcca-supply = <&vcc5v0_sys>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl1";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs2_null: dvs2-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs3_null: dvs3-null-pins {
+                       pins = "gpio_pwrctrl3";
+                       function = "pin_fun0";
+               };
+
+               regulators {
+                       vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_gpu_s0";
+                               regulator-enable-ramp-delay = <400>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_cpu_lit_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_log_s0: dcdc-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_log_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_vdenc_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdd2_ddr_s3: dcdc-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vdd2_ddr_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_2v0_pldo_s3: dcdc-reg7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_2v0_pldo_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2000000>;
+                               };
+                       };
+
+                       vcc_3v3_s3: dcdc-reg8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vddq_ddr_s0: dcdc-reg9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vddq_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3: dcdc-reg10 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avcc_1v8_s0: pldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "avcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s0: pldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avdd_1v2_s0: pldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-name = "avdd_1v2_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3_s0: pldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vcc_3v3_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vccio_sd_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       pldo6_s3: pldo-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "pldo6_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_ddr_pll_s0: nldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_ddr_pll_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       avdd_0v75_s0: nldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "avdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v85_s0: nldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_0v85_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v75_s0: nldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy3_host {
+       phy-supply = <&vcc5v0_host>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
+
+&usbdp_phy1 {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
index 94ecb9b4f98f88c6ec0f93ff839f6a594eb75c19..fde8b228f2c7c92096ceab84125fa1d3b1d205fd 100644 (file)
        status = "okay";
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-0 = <&i2c0m2_xfer>;
        status = "okay";
                vcca-supply = <&vcc5v0_sys>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
index c0d4a15323e292b3f458702876a1d28291ebe88a..709d348cf06b81781f68fdcbb776ca8b3742941a 100644 (file)
                pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
                            <&rk806_dvs2_null>, <&rk806_dvs3_null>;
 
+               system-power-controller;
+
                vcc1-supply = <&vcc5v0_sys>;
                vcc2-supply = <&vcc5v0_sys>;
                vcc3-supply = <&vcc5v0_sys>;
                #gpio-cells = <2>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
index 963e880ccc1219461ebe98ce38a9abd075c7d8a7..7b131789835812cc1f54a79fbca6218c63ca184a 100644 (file)
        status = "okay";
 };
 
+&combphy2_psu {
+       status = "okay";
+};
+
 &i2c6 {
        status = "okay";
 
 &usb_host1_ohci {
        status = "okay";
 };
+
+&usb_host2_xhci {
+       status = "okay";
+};
index de30c2632b8e5fc8cc6d89272269353676b1e1a3..7be2190244bafb2fabdd7b2ab37aee1d16351d72 100644 (file)
@@ -9,6 +9,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/usb/pd.h>
 #include "rk3588.dtsi"
 
 / {
                vin-supply = <&avcc_1v8_s0>;
        };
 
+       vbus5v0_typec: vbus5v0-typec-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PD0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&typec5v_pwren>;
+               regulator-name = "vbus5v0_typec";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_usb>;
+       };
+
        vcc12v_dcin: vcc12v-dcin-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vcc12v_dcin";
        status = "okay";
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       sram-supply = <&vdd_gpu_mem_s0>;
+       status = "okay";
+};
+
 &i2c2 {
        status = "okay";
 
+       usbc0: usb-typec@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usbc0_int>;
+               vbus-supply = <&vbus5v0_typec>;
+               status = "okay";
+
+               usb_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       data-role = "dual";
+                       op-sink-microwatt = <1000000>;
+                       power-role = "dual";
+                       sink-pdos =
+                               <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
+                       source-pdos =
+                               <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       try-power-role = "source";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usbc0_orien_sw: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_orientation_switch>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usbc0_role_sw: endpoint {
+                                               remote-endpoint = <&dwc3_0_role_switch>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       dp_altmode_mux: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
+                                       };
+                               };
+                       };
+               };
+       };
+
        hym8563: rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                        rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
+
+       usb-typec {
+               typec5v_pwren: typec5v-pwren {
+                       rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usbc0_int: usbc0-int {
+                       rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
 };
 
 &pwm2 {
 
                regulators {
                        vdd_gpu_s0: dcdc-reg1 {
+                               /* regulator coupling requires always-on */
+                               regulator-always-on;
                                regulator-boot-on;
                                regulator-min-microvolt = <550000>;
                                regulator-max-microvolt = <950000>;
                                regulator-ramp-delay = <12500>;
                                regulator-name = "vdd_gpu_s0";
                                regulator-enable-ramp-delay = <400>;
+                               regulator-coupled-with = <&vdd_gpu_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-state-mem {
                                        regulator-off-in-suspend;
                                };
                        };
 
                        vdd_gpu_mem_s0: dcdc-reg5 {
+                               /* regulator coupling requires always-on */
+                               regulator-always-on;
                                regulator-boot-on;
                                regulator-min-microvolt = <675000>;
                                regulator-max-microvolt = <950000>;
                                regulator-ramp-delay = <12500>;
                                regulator-enable-ramp-delay = <400>;
                                regulator-name = "vdd_gpu_mem_s0";
+                               regulator-coupled-with = <&vdd_gpu_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-state-mem {
                                        regulator-off-in-suspend;
                                };
        status = "okay";
 };
 
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
 &usb_host1_ohci {
        status = "okay";
 };
+
+&usbdp_phy0 {
+       mode-switch;
+       orientation-switch;
+       sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
+       sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               usbdp_phy0_orientation_switch: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_orien_sw>;
+               };
+
+               usbdp_phy0_dp_altmode_mux: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&dp_altmode_mux>;
+               };
+       };
+};
+
+&usbdp_phy1 {
+       /*
+        * USBDP PHY1 is wired to a female USB3 Type-A connector. Additionally
+        * the differential pairs 2+3 and the aux channel are wired to a RTD2166,
+        * which converts the DP signal into VGA. This is exposed on the
+        * board via a female VGA connector.
+        */
+       rockchip,dp-lane-mux = <2 3>;
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "otg";
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dwc3_0_role_switch: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_role_sw>;
+               };
+       };
+};
+
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
diff --git a/src/arm64/rockchip/rk3588-fet3588-c.dtsi b/src/arm64/rockchip/rk3588-fet3588-c.dtsi
new file mode 100644 (file)
index 0000000..47e64d5
--- /dev/null
@@ -0,0 +1,558 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include "rk3588.dtsi"
+
+/ {
+       compatible = "forlinx,fet3588-c", "rockchip,rk3588";
+
+       aliases {
+               mmc0 = &sdhci;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_rgb_b>;
+
+               io-led {
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       pcie20_avdd0v85: pcie20-avdd0v85-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "pcie20_avdd0v85";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <850000>;
+               regulator-max-microvolt = <850000>;
+               vin-supply = <&vdd_0v85_s0>;
+       };
+
+       pcie20_avdd1v8: pcie20-avdd1v8-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "pcie20_avdd1v8";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&avcc_1v8_s0>;
+       };
+
+       pcie30_avdd0v75: pcie30-avdd0v75-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "pcie30_avdd0v75";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <750000>;
+               regulator-max-microvolt = <750000>;
+               vin-supply = <&avdd_0v75_s0>;
+       };
+
+       pcie30_avdd1v8: pcie30-avdd1v8-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "pcie30_avdd1v8";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&avcc_1v8_s0>;
+       };
+
+       vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_1v1_nldo_s3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc4v0_sys: vcc4v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc4v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <4000000>;
+               regulator-max-microvolt = <4000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+};
+
+&combphy0_ps {
+       status = "okay";
+};
+
+&combphy1_ps {
+       status = "okay";
+};
+
+&combphy2_psu {
+       status = "okay";
+};
+
+&cpu_b0 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+       mem-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b1 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+       mem-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b2 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+       mem-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_b3 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+       mem-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_l0 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+       mem-supply = <&vdd_cpu_lit_mem_s0>;
+};
+
+&cpu_l1 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+       mem-supply = <&vdd_cpu_lit_mem_s0>;
+};
+
+&cpu_l2 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+       mem-supply = <&vdd_cpu_lit_mem_s0>;
+};
+
+&cpu_l3 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+       mem-supply = <&vdd_cpu_lit_mem_s0>;
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0m2_xfer>;
+       status = "okay";
+
+       vdd_cpu_big0_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big0_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_cpu_big1_s0: regulator@43 {
+               compatible = "rockchip,rk8603", "rockchip,rk8602";
+               reg = <0x43>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big1_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1m2_xfer>;
+
+       vdd_npu_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_npu_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <950000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&pinctrl {
+       leds {
+               led_rgb_b: led-rgb-b {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&sdhci {
+       bus-width = <8>;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       no-sdio;
+       no-sd;
+       non-removable;
+       status = "okay";
+};
+
+&spi2 {
+       status = "okay";
+       assigned-clocks = <&cru CLK_SPI2>;
+       assigned-clock-rates = <200000000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
+       num-cs = <1>;
+
+       pmic@0 {
+               compatible = "rockchip,rk806";
+               spi-max-frequency = <1000000>;
+               reg = <0x0>;
+
+               interrupt-parent = <&gpio0>;
+               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
+                           <&rk806_dvs2_null>, <&rk806_dvs3_null>;
+
+               system-power-controller;
+
+               vcc1-supply = <&vcc5v0_sys>;
+               vcc2-supply = <&vcc5v0_sys>;
+               vcc3-supply = <&vcc5v0_sys>;
+               vcc4-supply = <&vcc5v0_sys>;
+               vcc5-supply = <&vcc5v0_sys>;
+               vcc6-supply = <&vcc5v0_sys>;
+               vcc7-supply = <&vcc5v0_sys>;
+               vcc8-supply = <&vcc5v0_sys>;
+               vcc9-supply = <&vcc5v0_sys>;
+               vcc10-supply = <&vcc5v0_sys>;
+               vcc11-supply = <&vcc_2v0_pldo_s3>;
+               vcc12-supply = <&vcc5v0_sys>;
+               vcc13-supply = <&vcc_1v1_nldo_s3>;
+               vcc14-supply = <&vcc_1v1_nldo_s3>;
+               vcca-supply = <&vcc5v0_sys>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl1";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs2_null: dvs2-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs3_null: dvs3-null-pins {
+                       pins = "gpio_pwrctrl3";
+                       function = "pin_fun0";
+               };
+
+               regulators {
+                       vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_gpu_s0";
+                               regulator-enable-ramp-delay = <400>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_cpu_lit_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_log_s0: dcdc-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_log_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_vdenc_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdd2_ddr_s3: dcdc-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vdd2_ddr_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_2v0_pldo_s3: dcdc-reg7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_2v0_pldo_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2000000>;
+                               };
+                       };
+
+                       vcc_3v3_s3: dcdc-reg8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vddq_ddr_s0: dcdc-reg9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vddq_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3: dcdc-reg10 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avcc_1v8_s0: pldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "avcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s0: pldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avdd_1v2_s0: pldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-name = "avdd_1v2_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3_s0: pldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vcc_3v3_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vccio_sd_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       pldo6_s3: pldo-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "pldo6_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_ddr_pll_s0: nldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_ddr_pll_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       avdd_0v75_s0: nldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "avdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v85_s0: nldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_0v85_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v75_s0: nldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
index 39d65002add1e11e81bb0d660fd7f5ff90e4cdf7..31d2f8994f8513e4094840223ff01718f9fce731 100644 (file)
                };
        };
 
+       /*
+        * 100MHz reference clock for PCIe peripherals from PI6C557-05BLE
+        * clock generator.
+        * The clock output is gated via the OE pin on the clock generator.
+        * This is modeled as a fixed-clock plus a gpio-gate-clock.
+        */
+       pcie_refclk_gen: pcie-refclk-gen-clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+       };
+
+       pcie_refclk: pcie-refclk-clock {
+               compatible = "gpio-gate-clock";
+               clocks = <&pcie_refclk_gen>;
+               #clock-cells = <0>;
+               enable-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_LOW>; /* PCIE30X4_CLKREQN_M0 */
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie30x4_clkreqn_m0>;
+       };
+
        pps {
                compatible = "pps-gpio";
                gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
        };
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-0 = <&i2c0m2_xfer>;
        status = "okay";
        status = "okay";
 };
 
+&pcie30phy {
+       status = "okay";
+};
+
+&pcie3x4 {
+       /*
+        * The board has a gpio-controlled "pcie_refclk" generator,
+        * so add it to the list of clocks.
+        */
+       clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>,
+                <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>,
+                <&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>,
+                <&pcie_refclk>;
+       clock-names = "aclk_mst", "aclk_slv",
+                     "aclk_dbi", "pclk",
+                     "aux", "pipe",
+                     "ref";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie30x4_waken_m0 &pcie30x4_perstn_m0>;
+       reset-gpios = <&gpio0 RK_PD0 GPIO_ACTIVE_HIGH>; /* PCIE30X4_PERSTN_M0 */
+       vpcie3v3-supply = <&vcc3v3_mdot2>;
+       status = "okay";
+};
+
 &pinctrl {
        emmc {
                emmc_reset: emmc-reset {
                        rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
+
+       pcie30x4 {
+               pcie30x4_clkreqn_m0: pcie30x4-clkreqn-m0 {
+                       rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie30x4_perstn_m0: pcie30x4-perstn-m0 {
+                       rockchip,pins = <0 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie30x4_waken_m0: pcie30x4-waken-m0 {
+                       rockchip,pins = <0 RK_PC7 12 &pcfg_pull_none>;
+               };
+       };
 };
 
 &saradc {
                vcca-supply = <&vcc5v0_sys>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
diff --git a/src/arm64/rockchip/rk3588-ok3588-c.dts b/src/arm64/rockchip/rk3588-ok3588-c.dts
new file mode 100644 (file)
index 0000000..009566d
--- /dev/null
@@ -0,0 +1,409 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+#include "rk3588-fet3588-c.dtsi"
+
+/ {
+       model = "Forlinx OK3588-C Board";
+       compatible = "forlinx,ok3588-c", "forlinx,fet3588-c", "rockchip,rk3588";
+
+       aliases {
+               ethernet0 = &gmac0;
+               ethernet1 = &gmac1;
+               mmc1 = &sdmmc;
+       };
+
+       adc-keys-0 {
+               compatible = "adc-keys";
+               io-channels = <&saradc 0>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-maskrom {
+                       label = "Maskrom";
+                       linux,code = <KEY_SETUP>;
+                       press-threshold-microvolt = <400>;
+               };
+       };
+
+       adc-keys-1 {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-volume-up {
+                       label = "V+/Recovery";
+                       linux,code = <KEY_VOLUMEUP>;
+                       press-threshold-microvolt = <17000>;
+               };
+
+               button-volume-down {
+                       label = "V-";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       press-threshold-microvolt = <417000>;
+               };
+
+               button-menu {
+                       label = "Menu";
+                       linux,code = <KEY_MENU>;
+                       press-threshold-microvolt = <890000>;
+               };
+
+               button-escape {
+                       label = "ESC";
+                       linux,code = <KEY_ESC>;
+                       press-threshold-microvolt = <1235000>;
+               };
+       };
+
+       fan: pwm-fan {
+               compatible = "pwm-fan";
+               cooling-levels = <0 95 145 195 255>;
+               fan-supply = <&vcc12v_dcin>;
+               pwms = <&pwm2 0 50000 0>;
+               #cooling-cells = <2>;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_detect>;
+               simple-audio-card,name = "RK3588 OK3588-C Audio";
+               simple-audio-card,bitclock-master = <&masterdai>;
+               simple-audio-card,format = "i2s";
+               simple-audio-card,frame-master = <&masterdai>;
+               simple-audio-card,hp-det-gpio = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,pin-switches = "Headphones", "Speaker";
+               simple-audio-card,widgets =
+                       "Headphones", "Headphones",
+                       "Speaker", "Speaker",
+                       "Microphone", "Internal Microphone",
+                       "Microphone", "Headset Microphone";
+               simple-audio-card,routing =
+                       "Headphones", "LHP",
+                       "Headphones", "RHP",
+                       "Speaker", "LSPK",
+                       "Speaker", "RSPK",
+                       "LMICP", "Headset Microphone",
+                       "RMICP", "Internal Microphone";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s0_8ch>;
+               };
+
+               masterdai: simple-audio-card,codec {
+                       sound-dai = <&nau8822>;
+               };
+       };
+
+       vcc12v_dcin: vcc12v-dcin-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc12v_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       vcc1v8_sys: vcc1v8-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc1v8_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       vcc3v3_pcie2x1l0: vcc3v3-pcie2x1l0-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_pcie2x1l0";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <50000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_pcie2x1l2: vcc3v3-pcie2x1l2-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_pcie2x1l2";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <5000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_pcie30: vcc3v3_pcie30-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_pcie30";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_sys: vcc3v3-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_sys: vcc5v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+};
+
+&gmac0 {
+       clock_in_out = "output";
+       phy-handle = <&rgmii_phy0>;
+       phy-mode = "rgmii-rxid";
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac0_miim
+                    &gmac0_tx_bus2
+                    &gmac0_rx_bus2
+                    &gmac0_rgmii_clk
+                    &gmac0_rgmii_bus>;
+       tx_delay = <0x44>;
+       rx_delay = <0x00>;
+       status = "okay";
+};
+
+&gmac1 {
+       clock_in_out = "output";
+       phy-handle = <&rgmii_phy1>;
+       phy-mode = "rgmii-rxid";
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1_miim
+                    &gmac1_tx_bus2
+                    &gmac1_rx_bus2
+                    &gmac1_rgmii_clk
+                    &gmac1_rgmii_bus>;
+       tx_delay = <0x44>;
+       rx_delay = <0x00>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+
+       tca6424a: gpio@23 {
+               compatible = "ti,tca6424";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-parent = <&gpio1>;
+               interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&tca6424a_int>;
+               vcc-supply = <&vcc3v3_sys>;
+       };
+};
+
+&i2c5 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c5m2_xfer>;
+
+       pcf8563: rtc@51 {
+               compatible = "nxp,pcf8563";
+               reg = <0x51>;
+       };
+};
+
+&i2c7 {
+       status = "okay";
+
+       nau8822: audio-codec@1a {
+               compatible = "nuvoton,nau8822";
+               reg = <0x1a>;
+               clocks = <&cru I2S0_8CH_MCLKOUT>;
+               clock-names = "mclk";
+               assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
+               assigned-clock-rates = <12288000>;
+               #sound-dai-cells = <0>;
+       };
+};
+
+&i2s0_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s0_lrck
+                    &i2s0_mclk
+                    &i2s0_sclk
+                    &i2s0_sdi0
+                    &i2s0_sdo0>;
+       status = "okay";
+};
+
+&mdio0 {
+       rgmii_phy0: ethernet-phy@1 {
+               /* RTL8211F */
+               compatible = "ethernet-phy-id001c.c916",
+                            "ethernet-phy-ieee802.3-c22";
+               reg = <0x1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&rtl8211f_0_rst>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@2 {
+               /* RTL8211F */
+               compatible = "ethernet-phy-id001c.c916",
+                            "ethernet-phy-ieee802.3-c22";
+               reg = <0x2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&rtl8211f_1_rst>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pcie2x1l0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_0_rst>;
+       reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie2x1l0>;
+       status = "okay";
+};
+
+&pcie2x1l2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_2_rst>;
+       reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie2x1l2>;
+       status = "okay";
+};
+
+&pcie30phy {
+       status = "okay";
+};
+
+&pcie3x4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie3_rst>;
+       reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie30>;
+       status = "okay";
+};
+
+&pinctrl {
+       pcie2 {
+               pcie2_0_rst: pcie2-0-rst {
+                       rockchip,pins = <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie2_2_rst: pcie2-2-rst {
+                       rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie3 {
+               pcie3_rst: pcie3-rst {
+                       rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       rtl8211f {
+               rtl8211f_0_rst: rtl8211f-0-rst {
+                       rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               rtl8211f_1_rst: rtl8211f-1-rst {
+                       rockchip,pins = <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       sound {
+               hp_detect: hp-detect {
+                       rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       tca6424a {
+               tca6424a_int: tca6424a-int {
+                       rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&avcc_1v8_s0>;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       max-frequency = <150000000>;
+       no-sdio;
+       no-mmc;
+       sd-uhs-sdr104;
+       vqmmc-supply = <&vccio_sd_s0>;
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy3_host {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
index 1a604429fb266e687ab9fb20e7f157c78ac461c9..e74871491ef56b76e22877dc541772aec65bd30a 100644 (file)
 &sdmmc {
        bus-width = <4>;
        cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
        disable-wp;
        max-frequency = <150000000>;
        no-sdio;
index 22bbfbe729c11b6e0d30cd88a5fa144ba52a22e6..e80caa36f8e44ee05b4d0c0f01fafc313f987d13 100644 (file)
@@ -13,7 +13,7 @@
 #include "rk3588.dtsi"
 
 / {
-       model = "PINE64 QuartzPro64";
+       model = "Pine64 QuartzPro64";
        compatible = "pine64,quartzpro64", "rockchip,rk3588";
 
        aliases {
        status = "okay";
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       sram-supply = <&vdd_gpu_mem_s0>;
+       status = "okay";
+};
+
 &i2c2 {
        status = "okay";
 
 &sdmmc {
        bus-width = <4>;
        cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
        disable-wp;
        max-frequency = <150000000>;
        no-sdio;
                regulators {
                        vdd_gpu_s0: dcdc-reg1 {
                                regulator-name = "vdd_gpu_s0";
+                               /* regulator coupling requires always-on */
+                               regulator-always-on;
                                regulator-boot-on;
                                regulator-enable-ramp-delay = <400>;
                                regulator-min-microvolt = <550000>;
                                regulator-max-microvolt = <950000>;
                                regulator-ramp-delay = <12500>;
+                               regulator-coupled-with = <&vdd_gpu_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;
 
                                regulator-state-mem {
                                        regulator-off-in-suspend;
 
                        vdd_gpu_mem_s0: dcdc-reg5 {
                                regulator-name = "vdd_gpu_mem_s0";
+                               /* regulator coupling requires always-on */
+                               regulator-always-on;
                                regulator-boot-on;
                                regulator-enable-ramp-delay = <400>;
                                regulator-min-microvolt = <675000>;
                                regulator-max-microvolt = <950000>;
                                regulator-ramp-delay = <12500>;
+                               regulator-coupled-with = <&vdd_gpu_s0>;
+                               regulator-coupled-max-spread = <10000>;
 
                                regulator-state-mem {
                                        regulator-off-in-suspend;
index 1fe8b2a0ed75eeb3360fa82ceeb031be8e06e6b7..2e7512676b7e13bbcb3a4ba25d885590c8086728 100644 (file)
@@ -7,7 +7,7 @@
 #include "rk3588.dtsi"
 
 / {
-       model = "Radxa ROCK 5 Model B";
+       model = "Radxa ROCK 5B";
        compatible = "radxa,rock-5b", "rockchip,rk3588";
 
        aliases {
        cpu-supply = <&vdd_cpu_lit_s0>;
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0m2_xfer>;
        bus-width = <4>;
        cap-mmc-highspeed;
        cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
        disable-wp;
        sd-uhs-sdr104;
        vmmc-supply = <&vcc_3v3_s3>;
        status = "okay";
 };
 
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
        status = "okay";
 };
 
+&usbdp_phy1 {
+       status = "okay";
+};
+
 &usb_host0_ehci {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
 &usb_host2_xhci {
        status = "okay";
 };
index d672198c6b64032996a2578156996c72c11939fb..e4b7a0a4444bf9362b2a0c557641753b2b604379 100644 (file)
                vin-supply = <&dc_12v>;
        };
 
+       vcc5v0_otg: vcc5v0-otg-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&otg_vbus_drv>;
+               regulator-name = "vcc5v0_otg";
+               regulator-always-on;
+       };
+
        vcc5v0_usb: vcc5v0-usb-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vcc5v0_usb";
        status = "okay";
 };
 
+&extcon_usb3 {
+       status = "okay";
+};
+
 &gmac0 {
        status = "okay";
 };
                                <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
                };
        };
+
+       usb2 {
+               otg_vbus_drv: otg-vbus-drv {
+                       rockchip,pins =
+                         <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
 };
 
 &sdmmc {
        status = "okay";
 };
 
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       phy-supply = <&vcc5v0_otg>;
+       status = "okay";
+};
+
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
 };
 
 &uart2 {
-       pinctrl-0 = <&uart2m2_xfer>;
        status = "okay";
 };
 
 &uart5 {
        rts-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
+};
+
+&usbdp_phy0 {
        status = "okay";
 };
 
-/* host0 on Q7_USB_P2, lower usb3 port */
+&usbdp_phy1 {
+       status = "okay";
+};
+
+/* host0 on Q7_USB_P2, upper usb3 port */
 &usb_host0_ehci {
        status = "okay";
 };
 
-/* host0 on Q7_USB_P2, lower usb3 port */
+/* host0 on Q7_USB_P2, upper usb3 port */
 &usb_host0_ohci {
        status = "okay";
 };
 
+/* host0_xhci on Q7_USB_P1, usb3-otg port */
+&usb_host0_xhci {
+       dr_mode = "otg";
+       extcon = <&extcon_usb3>;
+       status = "okay";
+};
+
 /* host1 on Q7_USB_P3, usb2 port */
 &usb_host1_ehci {
        status = "okay";
        status = "okay";
 };
 
-/* host2 on Q7_USB_P2, lower usb3 port */
+/* host1_xhci on Q7_USB_P0, lower usb3 port */
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
+/* host2 on Q7_USB_P2, upper usb3 port */
 &usb_host2_xhci {
        status = "okay";
 };
index 1eb2543a5fde6bab7d9b525ed57c07217f54afc8..615094bb8ba380a5907aab1e318ca7e6365bcda3 100644 (file)
                reset-gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;
        };
 
+       extcon_usb3: extcon-usb3 {
+               compatible = "linux,extcon-usb-gpio";
+               id-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb3_id>;
+               status = "disabled";
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
@@ -46,7 +54,7 @@
        pcie_refclk_gen: pcie-refclk-gen-clock {
                compatible = "fixed-clock";
                #clock-cells = <0>;
-               clock-frequency = <1000000000>;
+               clock-frequency = <100000000>;
        };
 
        pcie_refclk: pcie-refclk-clock {
        snps,reset-delays-us = <0 10000 100000>;
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
 &i2c1 {
        pinctrl-0 = <&i2c1m0_xfer>;
 };
                        rockchip,pins = <1 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
+
+       usb3 {
+               usb3_id: usb3-id {
+                       rockchip,pins =
+                         <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pwm0 {
+       pinctrl-0 = <&pwm0m1_pins>;
+       pinctrl-names = "default";
 };
 
 &saradc {
                vcca-supply = <&vcc5v0_sys>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
        status = "okay";
 };
 
+/* Routed to UART0 on the Q7 connector */
+&uart2 {
+       pinctrl-0 = <&uart2m2_xfer>;
+};
+
 /* Mule-ATtiny UPDI */
 &uart4 {
        pinctrl-0 = <&uart4m2_xfer>;
index dc08da518a76d13cc4841c44a8844a348785f023..6b9206ce4a03bf99831081fb81a936c4d5d56eeb 100644 (file)
                #gpio-cells = <2>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
index 5519c1430cb7a92df91765243ac29fc7e1a2407b..5984016b5f96de290d9840f81b5f55061e3448d0 100644 (file)
@@ -7,6 +7,26 @@
 #include "rk3588-pinctrl.dtsi"
 
 / {
+       usb_host1_xhci: usb@fc400000 {
+               compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
+               reg = <0x0 0xfc400000 0x0 0x400000>;
+               interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru REF_CLK_USB3OTG1>, <&cru SUSPEND_CLK_USB3OTG1>,
+                        <&cru ACLK_USB3OTG1>;
+               clock-names = "ref_clk", "suspend_clk", "bus_clk";
+               dr_mode = "otg";
+               phys = <&u2phy1_otg>, <&usbdp_phy1 PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+               phy_type = "utmi_wide";
+               power-domains = <&power RK3588_PD_USB>;
+               resets = <&cru SRST_A_USB3OTG1>;
+               snps,dis_enblslpm_quirk;
+               snps,dis-u2-freeclk-exists-quirk;
+               snps,dis-del-phy-power-chg-quirk;
+               snps,dis-tx-ipgap-linecheck-quirk;
+               status = "disabled";
+       };
+
        pcie30_phy_grf: syscon@fd5b8000 {
                compatible = "rockchip,rk3588-pcie3-phy-grf", "syscon";
                reg = <0x0 0xfd5b8000 0x0 0x10000>;
                reg = <0x0 0xfd5c0000 0x0 0x100>;
        };
 
+       usbdpphy1_grf: syscon@fd5cc000 {
+               compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
+               reg = <0x0 0xfd5cc000 0x0 0x4000>;
+       };
+
+       usb2phy1_grf: syscon@fd5d4000 {
+               compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
+               reg = <0x0 0xfd5d4000 0x0 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               u2phy1: usb2phy@4000 {
+                       compatible = "rockchip,rk3588-usb2phy";
+                       reg = <0x4000 0x10>;
+                       #clock-cells = <0>;
+                       clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
+                       clock-names = "phyclk";
+                       clock-output-names = "usb480m_phy1";
+                       interrupts = <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH 0>;
+                       resets = <&cru SRST_OTGPHY_U3_1>, <&cru SRST_P_USB2PHY_U3_1_GRF0>;
+                       reset-names = "phy", "apb";
+                       status = "disabled";
+
+                       u2phy1_otg: otg-port {
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+       };
+
        i2s8_8ch: i2s@fddc8000 {
                compatible = "rockchip,rk3588-i2s-tdm";
                reg = <0x0 0xfddc8000 0x0 0x1000>;
                };
        };
 
+       usbdp_phy1: phy@fed90000 {
+               compatible = "rockchip,rk3588-usbdp-phy";
+               reg = <0x0 0xfed90000 0x0 0x10000>;
+               #phy-cells = <1>;
+               clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
+                        <&cru CLK_USBDP_PHY1_IMMORTAL>,
+                        <&cru PCLK_USBDPPHY1>,
+                        <&u2phy1>;
+               clock-names = "refclk", "immortal", "pclk", "utmi";
+               resets = <&cru SRST_USBDP_COMBO_PHY1_INIT>,
+                        <&cru SRST_USBDP_COMBO_PHY1_CMN>,
+                        <&cru SRST_USBDP_COMBO_PHY1_LANE>,
+                        <&cru SRST_USBDP_COMBO_PHY1_PCS>,
+                        <&cru SRST_P_USBDPPHY1>;
+               reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
+               rockchip,u2phy-grf = <&usb2phy1_grf>;
+               rockchip,usb-grf = <&usb_grf>;
+               rockchip,usbdpphy-grf = <&usbdpphy1_grf>;
+               rockchip,vo-grf = <&vo0_grf>;
+               status = "disabled";
+       };
+
        combphy1_ps: phy@fee10000 {
                compatible = "rockchip,rk3588-naneng-combphy";
                reg = <0x0 0xfee10000 0x0 0x100>;
index e037bf9db75af0402dccd26b82b50922823fe9f7..074c316a9a694f0f749015d809b29d7cb924362b 100644 (file)
        cpu-supply = <&vdd_cpu_big1_s0>;
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-0 = <&i2c0m2_xfer>;
        status = "okay";
        pinctrl-0 = <&i2c7m0_xfer>;
        status = "okay";
 
-       es8316: audio-codec@11 {
+       es8316: audio-codec@10 {
                compatible = "everest,es8316";
-               reg = <0x11>;
+               reg = <0x10>;
                assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
                assigned-clock-rates = <12288000>;
                clocks = <&cru I2S0_8CH_MCLKOUT>;
                vcca-supply = <&vcc5v0_sys>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
index ce8119cbb82485ac39c3b15dfae234f1666ec3c9..d8c50fdcca3b57e50d70325e1d7a7efad2e314bd 100644 (file)
                pinctrl-names = "default";
                vbus-supply = <&vbus5v0_typec>;
 
-               connector {
+               usb_con: connector {
                        compatible = "usb-c-connector";
                        data-role = "dual";
                        label = "USB-C";
                        source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
                        sink-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
                        op-sink-microwatt = <1000000>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       usbc0_orien_sw: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_orientation_switch>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       usbc0_role_sw: endpoint {
+                                               remote-endpoint = <&dwc3_0_role_switch>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       dp_altmode_mux: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
+                                       };
+                               };
+                       };
                };
        };
 
                vcca-supply = <&vcc5v0_sys>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
        status = "okay";
 };
 
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_host0_xhci {
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               dwc3_0_role_switch: endpoint {
+                       remote-endpoint = <&usbc0_role_sw>;
+               };
+       };
+};
+
 &usb_host1_ehci {
        status = "okay";
 };
 &usb_host2_xhci {
        status = "okay";
 };
+
+&usbdp_phy0 {
+       orientation-switch;
+       mode-switch;
+       sbu1-dc-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
+       sbu2-dc-gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_HIGH>;
+       rockchip,dp-lane-mux = <2 3>;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               usbdp_phy0_orientation_switch: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_orien_sw>;
+               };
+
+               usbdp_phy0_dp_altmode_mux: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&dp_altmode_mux>;
+               };
+       };
+};
index f53e993c785edbf25a31e0d30bf945ebe78d6934..dbddfc3bb4641725568784447d5eacf7d8612136 100644 (file)
@@ -3,7 +3,9 @@
 /dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/leds/common.h>
 #include "rk3588s.dtsi"
 
 / {
 
        aliases {
                mmc0 = &sdhci;
+               mmc1 = &sdmmc;
        };
 
        chosen {
                stdout-path = "serial2:1500000n8";
        };
+
+       adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-function {
+                       label = "Function";
+                       linux,code = <KEY_FN>;
+                       press-threshold-microvolt = <17000>;
+               };
+       };
+
+       ir-receiver {
+               compatible = "gpio-ir-receiver";
+               gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ir_receiver_pin>;
+       };
+
+       leds {
+               compatible = "pwm-leds";
+
+               red_led: led-0 {
+                       label = "red_led";
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "off";
+                       function = LED_FUNCTION_INDICATOR;
+                       linux,default-trigger = "none";
+                       max-brightness = <255>;
+                       pwms = <&pwm11 0 25000 0>;
+               };
+
+               green_led: led-1 {
+                       label = "green_led";
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "on";
+                       function = LED_FUNCTION_POWER;
+                       linux,default-trigger = "default-on";
+                       max-brightness = <255>;
+                       pwms = <&pwm14 0 25000 0>;
+               };
+
+               blue_led: led-2 {
+                       label = "blue_led";
+                       color = <LED_COLOR_ID_BLUE>;
+                       default-state = "off";
+                       function = LED_FUNCTION_INDICATOR;
+                       linux,default-trigger = "none";
+                       max-brightness = <255>;
+                       pwms = <&pwm15 0 25000 0>;
+               };
+       };
+
+       vcc3v3_pcie_wl: vcc3v3-pcie-wl-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie2_2_vcc3v3_en>;
+               regulator-name = "vcc3v3_pcie_wl";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <5000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_host: vcc5v0-host-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_host";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host_en>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_sys: vcc5v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_1v1_nldo_s3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vdd_3v3_sd: vdd-3v3-sd-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3_sd";
+               gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               enable-active-high;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_3v3_s3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vdd_sd_en>;
+       };
+};
+
+&cpu_b0 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b1 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b2 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_b3 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_l0 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l1 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l2 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l3 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&combphy0_ps {
+       status = "okay";
+};
+
+&combphy2_psu {
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0m2_xfer>;
+       status = "okay";
+
+       vdd_cpu_big0_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big0_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_cpu_big1_s0: regulator@43 {
+               compatible = "rockchip,rk8603", "rockchip,rk8602";
+               reg = <0x43>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big1_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       hym8563: rtc@51 {
+               compatible = "haoyu,hym8563";
+               reg = <0x51>;
+               #clock-cells = <0>;
+               clock-output-names = "hym8563";
+               wakeup-source;
+       };
+};
+
+&pinctrl {
+       vdd_sd {
+               vdd_sd_en: vdd-sd-en {
+                       rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       pcie2 {
+               pcie2_2_rst: pcie2-2-rst {
+                       rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie2_2_vcc3v3_en: pcie2-2-vcc-en {
+                       rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               vcc5v0_host_en: vcc5v0-host-en {
+                       rockchip,pins = <1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       ir-receiver {
+               ir_receiver_pin: ir-receiver-pin {
+                       rockchip,pins = <1  RK_PA7  RK_FUNC_GPIO  &pcfg_pull_none>;
+               };
+       };
+
+       wireless-bluetooth {
+               bt_reset_pin: bt-reset-pin {
+                       rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_pin: bt-wake-pin {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               bt_wake_host_irq: bt-wake-host-irq {
+                       rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+};
+
+&pcie2x1l2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_2_rst>;
+       reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie_wl>;
+       status = "okay";
+};
+
+&pwm11 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm11m1_pins>;
+       status = "okay";
+};
+
+&pwm14 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm14m1_pins>;
+       status = "okay";
+};
+
+&pwm15 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm15m1_pins>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&avcc_1v8_s0>;
+       status = "okay";
 };
 
 &sdhci {
        status = "okay";
 };
 
+&sdmmc {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       disable-wp;
+       no-mmc;
+       no-sdio;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vdd_3v3_sd>;
+       vqmmc-supply = <&vccio_sd_s0>;
+       status = "okay";
+};
+
+&sfc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&fspim2_pins>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0x0>;
+               spi-max-frequency = <100000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
+&spi2 {
+       assigned-clocks = <&cru CLK_SPI2>;
+       assigned-clock-rates = <200000000>;
+       num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
+       status = "okay";
+
+       pmic@0 {
+               compatible = "rockchip,rk806";
+               reg = <0x0>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
+                           <&rk806_dvs2_null>, <&rk806_dvs3_null>;
+               spi-max-frequency = <1000000>;
+               system-power-controller;
+
+               vcc1-supply = <&vcc5v0_sys>;
+               vcc2-supply = <&vcc5v0_sys>;
+               vcc3-supply = <&vcc5v0_sys>;
+               vcc4-supply = <&vcc5v0_sys>;
+               vcc5-supply = <&vcc5v0_sys>;
+               vcc6-supply = <&vcc5v0_sys>;
+               vcc7-supply = <&vcc5v0_sys>;
+               vcc8-supply = <&vcc5v0_sys>;
+               vcc9-supply = <&vcc5v0_sys>;
+               vcc10-supply = <&vcc5v0_sys>;
+               vcc11-supply = <&vcc_2v0_pldo_s3>;
+               vcc12-supply = <&vcc5v0_sys>;
+               vcc13-supply = <&vcc_1v1_nldo_s3>;
+               vcc14-supply = <&vcc_1v1_nldo_s3>;
+               vcca-supply = <&vcc5v0_sys>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl1";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs2_null: dvs2-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs3_null: dvs3-null-pins {
+                       pins = "gpio_pwrctrl3";
+                       function = "pin_fun0";
+               };
+
+               regulators {
+                       vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
+                               regulator-boot-on;
+                               regulator-enable-ramp-delay = <400>;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-name = "vdd_gpu_s0";
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-name = "vdd_cpu_lit_s0";
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_log_s0: dcdc-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_log_s0";
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-name = "vdd_vdenc_s0";
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-name = "vdd_ddr_s0";
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdd2_ddr_s3: dcdc-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vdd2_ddr_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_2v0_pldo_s3: dcdc-reg7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-name = "vdd_2v0_pldo_s3";
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2000000>;
+                               };
+                       };
+
+                       vcc_3v3_s3: dcdc-reg8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vddq_ddr_s0: dcdc-reg9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vddq_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3: dcdc-reg10 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avcc_1v8_s0: pldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "avcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s0: pldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avdd_1v2_s0: pldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-name = "avdd_1v2_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3_s0: pldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vcc_3v3_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vccio_sd_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       pldo6_s3: pldo-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "pldo6_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_ddr_pll_s0: nldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_ddr_pll_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       avdd_0v75_s0: nldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "avdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v85_s0: nldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_0v85_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v75_s0: nldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
 &uart2 {
        pinctrl-0 = <&uart2m0_xfer>;
        status = "okay";
 };
+
+&uart9 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart9m2_xfer &uart9m2_ctsn>;
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       phy-supply = <&vcc5v0_host>;
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy3_host {
+       phy-supply = <&vcc5v0_host>;
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host2_xhci {
+       status = "okay";
+};
index 25de4362af386747983e810d650d74c2afaa67fd..feea6b20a6bf54ffa60f819a91138eaf9288d1f0 100644 (file)
@@ -6,6 +6,7 @@
 #include <dt-bindings/leds/common.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/usb/pd.h>
 #include "rk3588s.dtsi"
 
 / {
        status = "okay";
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0m2_xfer>;
        pinctrl-0 = <&i2c6m3_xfer>;
        status = "okay";
 
+       usbc0: usb-typec@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usbc0_int>;
+               vbus-supply = <&vbus_typec>;
+               status = "okay";
+
+               usb_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       data-role = "dual";
+                       op-sink-microwatt = <1000000>;
+                       power-role = "dual";
+                       sink-pdos =
+                               <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
+                       source-pdos =
+                               <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       try-power-role = "source";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       usbc0_hs: endpoint {
+                                               remote-endpoint = <&usb_host0_xhci_drd_sw>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       usbc0_ss: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_typec_ss>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       usbc0_sbu: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_typec_sbu>;
+                                       };
+                               };
+                       };
+               };
+       };
+
        hym8563: rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                #gpio-cells = <2>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
        status = "okay";
 };
 
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
        status = "okay";
 };
 
+&usbdp_phy0 {
+       mode-switch;
+       orientation-switch;
+       sbu1-dc-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
+       sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               usbdp_phy0_typec_ss: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_ss>;
+               };
+
+               usbdp_phy0_typec_sbu: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&usbc0_sbu>;
+               };
+       };
+};
+
 &usb_host0_ehci {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_host0_xhci {
+       dr_mode = "otg";
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               usb_host0_xhci_drd_sw: endpoint {
+                       remote-endpoint = <&usbc0_hs>;
+               };
+       };
+};
+
 &usb_host1_ehci {
        status = "okay";
 };
index 00afb90d4eb10bab9db61591c9f5cb167c37ec93..3b9a349362db479a87b60ad13499e817c718ae17 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3588s.dtsi"
 
 / {
-       model = "Radxa ROCK 5 Model A";
+       model = "Radxa ROCK 5A";
        compatible = "radxa,rock-5a", "rockchip,rk3588s";
 
        aliases {
        bus-width = <4>;
        cap-mmc-highspeed;
        cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
        disable-wp;
        max-frequency = <150000000>;
        no-sdio;
                pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
                            <&rk806_dvs2_null>, <&rk806_dvs3_null>;
                spi-max-frequency = <1000000>;
+               system-power-controller;
 
                vcc1-supply = <&vcc5v0_sys>;
                vcc2-supply = <&vcc5v0_sys>;
                #gpio-cells = <2>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
        };
 };
 
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
        status = "okay";
 };
 
+&usbdp_phy0 {
+       status = "okay";
+       rockchip,dp-lane-mux = <2 3>;
+};
+
 &usb_host0_ehci {
        status = "okay";
        pinctrl-names = "default";
        status = "okay";
 };
 
+&usb_host0_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
 &usb_host1_ehci {
        status = "okay";
 };
index 87b83c87bd55155623342fe002ad67cbe104b83c..6ac5ac8b48abbd0fe9b0778501a3b60abc507a71 100644 (file)
                };
        };
 
+       display_subsystem: display-subsystem {
+               compatible = "rockchip,display-subsystem";
+               ports = <&vop_out>;
+       };
+
        firmware {
                optee: optee {
                        compatible = "linaro,optee-tz";
                #clock-cells = <0>;
        };
 
-       display_subsystem: display-subsystem {
-               compatible = "rockchip,display-subsystem";
-               ports = <&vop_out>;
-       };
-
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
                };
        };
 
+       gpu: gpu@fb000000 {
+               compatible = "rockchip,rk3588-mali", "arm,mali-valhall-csf";
+               reg = <0x0 0xfb000000 0x0 0x200000>;
+               #cooling-cells = <2>;
+               assigned-clocks = <&scmi_clk SCMI_CLK_GPU>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&cru CLK_GPU>, <&cru CLK_GPU_COREGROUP>,
+                        <&cru CLK_GPU_STACKS>;
+               clock-names = "core", "coregroup", "stacks";
+               dynamic-power-coefficient = <2982>;
+               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "job", "mmu", "gpu";
+               operating-points-v2 = <&gpu_opp_table>;
+               power-domains = <&power RK3588_PD_GPU>;
+               status = "disabled";
+
+               gpu_opp_table: opp-table {
+                       compatible = "operating-points-v2";
+
+                       opp-300000000 {
+                               opp-hz = /bits/ 64 <300000000>;
+                               opp-microvolt = <675000 675000 850000>;
+                       };
+                       opp-400000000 {
+                               opp-hz = /bits/ 64 <400000000>;
+                               opp-microvolt = <675000 675000 850000>;
+                       };
+                       opp-500000000 {
+                               opp-hz = /bits/ 64 <500000000>;
+                               opp-microvolt = <675000 675000 850000>;
+                       };
+                       opp-600000000 {
+                               opp-hz = /bits/ 64 <600000000>;
+                               opp-microvolt = <675000 675000 850000>;
+                       };
+                       opp-700000000 {
+                               opp-hz = /bits/ 64 <700000000>;
+                               opp-microvolt = <700000 700000 850000>;
+                       };
+                       opp-800000000 {
+                               opp-hz = /bits/ 64 <800000000>;
+                               opp-microvolt = <750000 750000 850000>;
+                       };
+                       opp-900000000 {
+                               opp-hz = /bits/ 64 <900000000>;
+                               opp-microvolt = <800000 800000 850000>;
+                       };
+                       opp-1000000000 {
+                               opp-hz = /bits/ 64 <1000000000>;
+                               opp-microvolt = <850000 850000 850000>;
+                       };
+               };
+       };
+
+       usb_host0_xhci: usb@fc000000 {
+               compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
+               reg = <0x0 0xfc000000 0x0 0x400000>;
+               interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru REF_CLK_USB3OTG0>, <&cru SUSPEND_CLK_USB3OTG0>,
+                        <&cru ACLK_USB3OTG0>;
+               clock-names = "ref_clk", "suspend_clk", "bus_clk";
+               dr_mode = "otg";
+               phys = <&u2phy0_otg>, <&usbdp_phy0 PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+               phy_type = "utmi_wide";
+               power-domains = <&power RK3588_PD_USB>;
+               resets = <&cru SRST_A_USB3OTG0>;
+               snps,dis_enblslpm_quirk;
+               snps,dis-u1-entry-quirk;
+               snps,dis-u2-entry-quirk;
+               snps,dis-u2-freeclk-exists-quirk;
+               snps,dis-del-phy-power-chg-quirk;
+               snps,dis-tx-ipgap-linecheck-quirk;
+               status = "disabled";
+       };
+
        usb_host0_ehci: usb@fc800000 {
                compatible = "rockchip,rk3588-ehci", "generic-ehci";
                reg = <0x0 0xfc800000 0x0 0x40000>;
                status = "disabled";
        };
 
+       mmu600_pcie: iommu@fc900000 {
+               compatible = "arm,smmu-v3";
+               reg = <0x0 0xfc900000 0x0 0x200000>;
+               interrupts = <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
+               #iommu-cells = <1>;
+               status = "disabled";
+       };
+
+       mmu600_php: iommu@fcb00000 {
+               compatible = "arm,smmu-v3";
+               reg = <0x0 0xfcb00000 0x0 0x200000>;
+               interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
+               #iommu-cells = <1>;
+               status = "disabled";
+       };
+
        pmu1grf: syscon@fd58a000 {
                compatible = "rockchip,rk3588-pmugrf", "syscon", "simple-mfd";
                reg = <0x0 0xfd58a000 0x0 0x10000>;
                reg = <0x0 0xfd5a4000 0x0 0x2000>;
        };
 
+       vo0_grf: syscon@fd5a6000 {
+               compatible = "rockchip,rk3588-vo-grf", "syscon";
+               reg = <0x0 0xfd5a6000 0x0 0x2000>;
+               clocks = <&cru PCLK_VO0GRF>;
+       };
+
        vo1_grf: syscon@fd5a8000 {
                compatible = "rockchip,rk3588-vo-grf", "syscon";
                reg = <0x0 0xfd5a8000 0x0 0x100>;
                clocks = <&cru PCLK_VO1GRF>;
        };
 
+       usb_grf: syscon@fd5ac000 {
+               compatible = "rockchip,rk3588-usb-grf", "syscon";
+               reg = <0x0 0xfd5ac000 0x0 0x4000>;
+       };
+
        php_grf: syscon@fd5b0000 {
                compatible = "rockchip,rk3588-php-grf", "syscon";
                reg = <0x0 0xfd5b0000 0x0 0x1000>;
                reg = <0x0 0xfd5c4000 0x0 0x100>;
        };
 
+       usbdpphy0_grf: syscon@fd5c8000 {
+               compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
+               reg = <0x0 0xfd5c8000 0x0 0x4000>;
+       };
+
+       usb2phy0_grf: syscon@fd5d0000 {
+               compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
+               reg = <0x0 0xfd5d0000 0x0 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               u2phy0: usb2phy@0 {
+                       compatible = "rockchip,rk3588-usb2phy";
+                       reg = <0x0 0x10>;
+                       #clock-cells = <0>;
+                       clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
+                       clock-names = "phyclk";
+                       clock-output-names = "usb480m_phy0";
+                       interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH 0>;
+                       resets = <&cru SRST_OTGPHY_U3_0>, <&cru SRST_P_USB2PHY_U3_0_GRF0>;
+                       reset-names = "phy", "apb";
+                       status = "disabled";
+
+                       u2phy0_otg: otg-port {
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+       };
+
        usb2phy2_grf: syscon@fd5d8000 {
                compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
                reg = <0x0 0xfd5d8000 0x0 0x4000>;
                #address-cells = <1>;
                #size-cells = <1>;
 
-               u2phy2: usb2-phy@8000 {
+               u2phy2: usb2phy@8000 {
                        compatible = "rockchip,rk3588-usb2phy";
                        reg = <0x8000 0x10>;
-                       interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH 0>;
-                       resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>;
-                       reset-names = "phy", "apb";
+                       #clock-cells = <0>;
                        clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
                        clock-names = "phyclk";
                        clock-output-names = "usb480m_phy2";
-                       #clock-cells = <0>;
+                       interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH 0>;
+                       resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>;
+                       reset-names = "phy", "apb";
                        status = "disabled";
 
                        u2phy2_host: host-port {
                #address-cells = <1>;
                #size-cells = <1>;
 
-               u2phy3: usb2-phy@c000 {
+               u2phy3: usb2phy@c000 {
                        compatible = "rockchip,rk3588-usb2phy";
                        reg = <0xc000 0x10>;
-                       interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH 0>;
-                       resets = <&cru SRST_OTGPHY_U2_1>, <&cru SRST_P_USB2PHY_U2_1_GRF0>;
-                       reset-names = "phy", "apb";
+                       #clock-cells = <0>;
                        clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
                        clock-names = "phyclk";
                        clock-output-names = "usb480m_phy3";
-                       #clock-cells = <0>;
+                       interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH 0>;
+                       resets = <&cru SRST_OTGPHY_U2_1>, <&cru SRST_P_USB2PHY_U2_1_GRF0>;
+                       reset-names = "phy", "apb";
                        status = "disabled";
 
                        u2phy3_host: host-port {
                status = "disabled";
        };
 
-       vop: vop@fdd90000 {
-               compatible = "rockchip,rk3588-vop";
-               reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
-               reg-names = "vop", "gamma-lut";
-               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_VOP>,
-                        <&cru HCLK_VOP>,
-                        <&cru DCLK_VOP0>,
-                        <&cru DCLK_VOP1>,
-                        <&cru DCLK_VOP2>,
-                        <&cru DCLK_VOP3>,
-                        <&cru PCLK_VOP_ROOT>;
-               clock-names = "aclk",
-                             "hclk",
-                             "dclk_vp0",
-                             "dclk_vp1",
-                             "dclk_vp2",
-                             "dclk_vp3",
-                             "pclk_vop";
-               iommus = <&vop_mmu>;
-               power-domains = <&power RK3588_PD_VOP>;
-               rockchip,grf = <&sys_grf>;
-               rockchip,vop-grf = <&vop_grf>;
-               rockchip,vo1-grf = <&vo1_grf>;
-               rockchip,pmu = <&pmu>;
-               status = "disabled";
-
-               vop_out: ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       vp0: port@0 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <0>;
-                       };
-
-                       vp1: port@1 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <1>;
-                       };
-
-                       vp2: port@2 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <2>;
-                       };
-
-                       vp3: port@3 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <3>;
-                       };
-               };
-       };
-
-       vop_mmu: iommu@fdd97e00 {
-               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
-               reg = <0x0 0xfdd97e00 0x0 0x100>, <0x0 0xfdd97f00 0x0 0x100>;
-               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
-               clock-names = "aclk", "iface";
-               #iommu-cells = <0>;
-               power-domains = <&power RK3588_PD_VOP>;
-               status = "disabled";
-       };
-
        uart0: serial@fd890000 {
                compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
                reg = <0x0 0xfd890000 0x0 0x100>;
                };
        };
 
+       av1d: video-codec@fdc70000 {
+               compatible = "rockchip,rk3588-av1-vpu";
+               reg = <0x0 0xfdc70000 0x0 0x800>;
+               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vdpu";
+               assigned-clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
+               assigned-clock-rates = <400000000>, <400000000>;
+               clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
+               clock-names = "aclk", "hclk";
+               power-domains = <&power RK3588_PD_AV1>;
+               resets = <&cru SRST_A_AV1>, <&cru SRST_P_AV1>, <&cru SRST_A_AV1_BIU>, <&cru SRST_P_AV1_BIU>;
+       };
+
+       vop: vop@fdd90000 {
+               compatible = "rockchip,rk3588-vop";
+               reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
+               reg-names = "vop", "gamma-lut";
+               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_VOP>,
+                        <&cru HCLK_VOP>,
+                        <&cru DCLK_VOP0>,
+                        <&cru DCLK_VOP1>,
+                        <&cru DCLK_VOP2>,
+                        <&cru DCLK_VOP3>,
+                        <&cru PCLK_VOP_ROOT>;
+               clock-names = "aclk",
+                             "hclk",
+                             "dclk_vp0",
+                             "dclk_vp1",
+                             "dclk_vp2",
+                             "dclk_vp3",
+                             "pclk_vop";
+               iommus = <&vop_mmu>;
+               power-domains = <&power RK3588_PD_VOP>;
+               rockchip,grf = <&sys_grf>;
+               rockchip,vop-grf = <&vop_grf>;
+               rockchip,vo1-grf = <&vo1_grf>;
+               rockchip,pmu = <&pmu>;
+               status = "disabled";
+
+               vop_out: ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       vp0: port@0 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0>;
+                       };
+
+                       vp1: port@1 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <1>;
+                       };
+
+                       vp2: port@2 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <2>;
+                       };
+
+                       vp3: port@3 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <3>;
+                       };
+               };
+       };
+
+       vop_mmu: iommu@fdd97e00 {
+               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+               reg = <0x0 0xfdd97e00 0x0 0x100>, <0x0 0xfdd97f00 0x0 0x100>;
+               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
+               power-domains = <&power RK3588_PD_VOP>;
+               status = "disabled";
+       };
+
        i2s4_8ch: i2s@fddc0000 {
                compatible = "rockchip,rk3588-i2s-tdm";
                reg = <0x0 0xfddc0000 0x0 0x1000>;
                reg = <0x0 0xfdf82200 0x0 0x20>;
        };
 
+       dfi: dfi@fe060000 {
+               reg = <0x00 0xfe060000 0x00 0x10000>;
+               compatible = "rockchip,rk3588-dfi";
+               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
+               rockchip,pmu = <&pmu1grf>;
+       };
+
        pcie2x1l1: pcie@fe180000 {
                compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
                bus-range = <0x30 0x3f>;
                };
        };
 
-       dfi: dfi@fe060000 {
-               reg = <0x00 0xfe060000 0x00 0x10000>;
-               compatible = "rockchip,rk3588-dfi";
-               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
-               rockchip,pmu = <&pmu1grf>;
-       };
-
        gmac1: ethernet@fe1c0000 {
                compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
                reg = <0x0 0xfe1c0000 0x0 0x10000>;
                status = "disabled";
        };
 
+       usbdp_phy0: phy@fed80000 {
+               compatible = "rockchip,rk3588-usbdp-phy";
+               reg = <0x0 0xfed80000 0x0 0x10000>;
+               #phy-cells = <1>;
+               clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
+                        <&cru CLK_USBDP_PHY0_IMMORTAL>,
+                        <&cru PCLK_USBDPPHY0>,
+                        <&u2phy0>;
+               clock-names = "refclk", "immortal", "pclk", "utmi";
+               resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>,
+                        <&cru SRST_USBDP_COMBO_PHY0_CMN>,
+                        <&cru SRST_USBDP_COMBO_PHY0_LANE>,
+                        <&cru SRST_USBDP_COMBO_PHY0_PCS>,
+                        <&cru SRST_P_USBDPPHY0>;
+               reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
+               rockchip,u2phy-grf = <&usb2phy0_grf>;
+               rockchip,usb-grf = <&usb_grf>;
+               rockchip,usbdpphy-grf = <&usbdpphy0_grf>;
+               rockchip,vo-grf = <&vo0_grf>;
+               status = "disabled";
+       };
+
        combphy0_ps: phy@fee00000 {
                compatible = "rockchip,rk3588-naneng-combphy";
                reg = <0x0 0xfee00000 0x0 0x100>;
                        #interrupt-cells = <2>;
                };
        };
-
-       av1d: video-codec@fdc70000 {
-               compatible = "rockchip,rk3588-av1-vpu";
-               reg = <0x0 0xfdc70000 0x0 0x800>;
-               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "vdpu";
-               assigned-clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
-               assigned-clock-rates = <400000000>, <400000000>;
-               clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
-               clock-names = "aclk", "hclk";
-               power-domains = <&power RK3588_PD_AV1>;
-               resets = <&cru SRST_A_AV1>, <&cru SRST_P_AV1>, <&cru SRST_A_AV1_BIU>, <&cru SRST_P_AV1_BIU>;
-       };
 };
 
 #include "rk3588s-pinctrl.dtsi"
index da44a15a8adf3e886b17575a9543e6caa6a7f2a5..a251c4343548f47772e06a2a6f59851b7ac938f4 100644 (file)
 &i2c0 {
        status = "okay";
 
-       tas5707a@1d {
+       audio-codec@1d {
                compatible = "ti,tas5711";
                reg = <0x1d>;
                reset-gpios = <&gpio UNIPHIER_GPIO_PORT(23, 4) GPIO_ACTIVE_LOW>;
                PVDD_C-supply = <&amp_vcc_reg>;
                PVDD_D-supply = <&amp_vcc_reg>;
 
-               port@0 {
+               port {
                        tas_speaker: endpoint {
                                dai-format = "i2s";
                                remote-endpoint = <&i2s_hpcmout1>;
index a01579cb3b79cb678f18050007cd145e61539408..79f6db2455c1726f3f0befe8f18063d804d20d94 100644 (file)
 &i2c0 {
        status = "okay";
 
-       tas5707@1b {
+       audio-codec@1b {
                compatible = "ti,tas5711";
                reg = <0x1b>;
                reset-gpios = <&gpio UNIPHIER_GPIO_PORT(0, 0) GPIO_ACTIVE_LOW>;
                PVDD_C-supply = <&amp_vcc_reg>;
                PVDD_D-supply = <&amp_vcc_reg>;
 
-               port@0 {
+               port {
                        tas_speaker: endpoint {
                                dai-format = "i2s";
                                remote-endpoint = <&i2s_hpcmout1>;
index e27eb3ed1d47991be7573d320eb6b5cae2f6a608..31952d361a8a9d0845a0675aa7eff455b0fb30fa 100644 (file)
                };
        };
 
-       idle-states{
+       idle-states {
                entry-method = "psci";
 
                CORE_PD: core_pd {
                };
        };
 
-       gic: interrupt-controller@12001000 {
-               compatible = "arm,gic-400";
-               reg = <0 0x12001000 0 0x1000>,
-                     <0 0x12002000 0 0x2000>,
-                     <0 0x12004000 0 0x2000>,
-                     <0 0x12006000 0 0x2000>;
-               #interrupt-cells = <3>;
-               interrupt-controller;
-               interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8)
-                                       | IRQ_TYPE_LEVEL_HIGH)>;
-       };
-
        psci {
                compatible = "arm,psci-0.2";
                method = "smc";
        };
 
        pmu {
-               compatible = "arm,cortex-a53-pmu", "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
        };
 
        soc {
+               gic: interrupt-controller@12001000 {
+                       compatible = "arm,gic-400";
+                       reg = <0 0x12001000 0 0x1000>,
+                             <0 0x12002000 0 0x2000>,
+                             <0 0x12004000 0 0x2000>,
+                             <0 0x12006000 0 0x2000>;
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8)
+                                               | IRQ_TYPE_LEVEL_HIGH)>;
+               };
+
                pmu_gate: pmu-gate {
                        compatible = "sprd,sc9860-pmu-gate";
                        sprd,syscon = <&pmu_regs>; /* 0x402b0000 */
                        #clock-cells = <1>;
                };
 
-               aon_prediv: aon-prediv {
+               aon_prediv: aon-prediv@402d0000 {
                        compatible = "sprd,sc9860-aon-prediv";
                        reg = <0 0x402d0000 0 0x400>;
                        clocks = <&ext_26m>, <&pll 0>,
                                };
                        };
                };
-
-               gpio-keys {
-                       compatible = "gpio-keys";
-
-                       key-volumedown {
-                               label = "Volume Down Key";
-                               linux,code = <KEY_VOLUMEDOWN>;
-                               gpios = <&eic_debounce 2 GPIO_ACTIVE_LOW>;
-                               debounce-interval = <2>;
-                               wakeup-source;
-                       };
-
-                       key-volumeup {
-                               label = "Volume Up Key";
-                               linux,code = <KEY_VOLUMEUP>;
-                               gpios = <&pmic_eic 10 GPIO_ACTIVE_HIGH>;
-                               debounce-interval = <2>;
-                               wakeup-source;
-                       };
-
-                       key-power {
-                               label = "Power Key";
-                               linux,code = <KEY_POWER>;
-                               gpios = <&pmic_eic 1 GPIO_ACTIVE_HIGH>;
-                               debounce-interval = <2>;
-                               wakeup-source;
-                       };
-               };
        };
 };
index 22d81ace740a0f4ed8159b059282e20dacbf70c1..53e5b77d70b5239f5dda5a055edb680ad66834f3 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a55-pmu";
                interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
index 206a4afdab1cd2a503963108bffaa5589ed8d40d..9b4ee0bdd69f2de8d2a7f126f12490fcddf45075 100644 (file)
@@ -24,7 +24,7 @@
                        #size-cells = <1>;
                        ranges = <0 0 0x20e00000 0x4000>;
 
-                       apahb_gate: apahb-gate {
+                       apahb_gate: apahb-gate@0 {
                                compatible = "sprd,sc9863a-apahb-gate";
                                reg = <0x0 0x1020>;
                                #clock-cells = <1>;
@@ -39,7 +39,7 @@
                        #size-cells = <1>;
                        ranges = <0 0 0x402b0000 0x4000>;
 
-                       pmu_gate: pmu-gate {
+                       pmu_gate: pmu-gate@0 {
                                compatible = "sprd,sc9863a-pmu-gate";
                                reg = <0 0x1200>;
                                clocks = <&ext_26m>;
@@ -56,7 +56,7 @@
                        #size-cells = <1>;
                        ranges = <0 0 0x402e0000 0x4000>;
 
-                       aonapb_gate: aonapb-gate {
+                       aonapb_gate: aonapb-gate@0 {
                                compatible = "sprd,sc9863a-aonapb-gate";
                                reg = <0 0x1100>;
                                #clock-cells = <1>;
@@ -71,7 +71,7 @@
                        #size-cells = <1>;
                        ranges = <0 0 0x40353000 0x3000>;
 
-                       pll: pll {
+                       pll: pll@0 {
                                compatible = "sprd,sc9863a-pll";
                                reg = <0 0x100>;
                                clocks = <&ext_26m>;
@@ -88,7 +88,7 @@
                        #size-cells = <1>;
                        ranges = <0 0 0x40359000 0x3000>;
 
-                       mpll: mpll {
+                       mpll: mpll@0 {
                                compatible = "sprd,sc9863a-mpll";
                                reg = <0 0x100>;
                                #clock-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0 0 0x4035c000 0x3000>;
 
-                       rpll: rpll {
+                       rpll: rpll@0 {
                                compatible = "sprd,sc9863a-rpll";
                                reg = <0 0x100>;
                                clocks = <&ext_26m>;
                        #size-cells = <1>;
                        ranges = <0 0 0x40363000 0x3000>;
 
-                       dpll: dpll {
+                       dpll: dpll@0 {
                                compatible = "sprd,sc9863a-dpll";
                                reg = <0 0x100>;
                                #clock-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0 0 0x60800000 0x3000>;
 
-                       mm_gate: mm-gate {
+                       mm_gate: mm-gate@0 {
                                compatible = "sprd,sc9863a-mm-gate";
                                reg = <0 0x1100>;
                                #clock-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0 0 0x71300000 0x4000>;
 
-                       apapb_gate: apapb-gate {
+                       apapb_gate: apapb-gate@0 {
                                compatible = "sprd,sc9863a-apapb-gate";
                                reg = <0 0x1000>;
                                clocks = <&ext_26m>;
index 6b95fd94cee336ea1be2482a69965766d1f8ac87..1ce3cbbd966844b1138ae3b829335077abb5c4ee 100644 (file)
@@ -24,7 +24,7 @@
                spi0 = &adi_bus;
        };
 
-       memory{
+       memory@80000000 {
                device_type = "memory";
                reg = <0x0 0x80000000 0 0x60000000>,
                      <0x1 0x80000000 0 0x60000000>;
                stdout-path = "serial1:115200n8";
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               key-volumedown {
+                       label = "Volume Down Key";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       gpios = <&eic_debounce 2 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <2>;
+                       wakeup-source;
+               };
+
+               key-volumeup {
+                       label = "Volume Up Key";
+                       linux,code = <KEY_VOLUMEUP>;
+                       gpios = <&pmic_eic 10 GPIO_ACTIVE_HIGH>;
+                       debounce-interval = <2>;
+                       wakeup-source;
+               };
+
+               key-power {
+                       label = "Power Key";
+                       linux,code = <KEY_POWER>;
+                       gpios = <&pmic_eic 1 GPIO_ACTIVE_HIGH>;
+                       debounce-interval = <2>;
+                       wakeup-source;
+               };
+       };
+
        reserved-memory {
                #address-cells = <2>;
                #size-cells = <2>;
index fece49704b5c505fb5f224db80c76afc8615a3ba..7068bfd2f4c34d8be940d08906624a570958c50a 100644 (file)
@@ -64,7 +64,7 @@
                        reg = <0 0x70b00000 0 0x40000>;
                };
 
-               ap-apb {
+               ap-apb@70000000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
index 66791a974f8f29b03f020a01d238eef795bf9522..7a82896dcbf602763c78fd6d087d2df302a60dea 100644 (file)
@@ -6,6 +6,23 @@
 #include <dt-bindings/pinctrl/stm32-pinfunc.h>
 
 &pinctrl {
+       i2c2_pins_a: i2c2-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('B', 5, AF9)>, /* I2C2_SCL */
+                                <STM32_PINMUX('B', 4, AF9)>; /* I2C2_SDA */
+                       bias-disable;
+                       drive-open-drain;
+                       slew-rate = <0>;
+               };
+       };
+
+       i2c2_sleep_pins_a: i2c2-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('B', 5, ANALOG)>, /* I2C2_SCL */
+                                <STM32_PINMUX('B', 4, ANALOG)>; /* I2C2_SDA */
+               };
+       };
+
        sdmmc1_b4_pins_a: sdmmc1-b4-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('E', 4, AF10)>, /* SDMMC1_D0 */
                };
        };
 
+       spi3_pins_a: spi3-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('B', 7, AF1)>, /* SPI3_SCK */
+                                <STM32_PINMUX('B', 8, AF1)>; /* SPI3_MOSI */
+                       drive-push-pull;
+                       bias-disable;
+                       slew-rate = <1>;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('B', 10, AF1)>; /* SPI3_MISO */
+                       bias-disable;
+               };
+       };
+
+       spi3_sleep_pins_a: spi3-sleep-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('B', 7, ANALOG)>, /* SPI3_SCK */
+                                <STM32_PINMUX('B', 8, ANALOG)>, /* SPI3_MOSI */
+                                <STM32_PINMUX('B', 10, ANALOG)>; /* SPI3_MISO */
+               };
+       };
+
        usart2_pins_a: usart2-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('A', 4, AF6)>; /* USART2_TX */
                };
        };
 };
+
+&pinctrl_z {
+       i2c8_pins_a: i2c8-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('Z', 4, AF8)>, /* I2C8_SCL */
+                                <STM32_PINMUX('Z', 3, AF8)>; /* I2C8_SDA */
+                       bias-disable;
+                       drive-open-drain;
+                       slew-rate = <0>;
+               };
+       };
+
+       i2c8_sleep_pins_a: i2c8-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('Z', 4, ANALOG)>, /* I2C8_SCL */
+                                <STM32_PINMUX('Z', 3, ANALOG)>; /* I2C8_SDA */
+               };
+       };
+};
+
+&pinctrl_z {
+       spi8_pins_a: spi8-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('Z', 2, AF3)>, /* SPI8_SCK */
+                                <STM32_PINMUX('Z', 0, AF3)>; /* SPI8_MOSI */
+                       drive-push-pull;
+                       bias-disable;
+                       slew-rate = <1>;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('Z', 1, AF3)>; /* SPI8_MISO */
+                       bias-disable;
+               };
+       };
+
+       spi8_sleep_pins_a: spi8-sleep-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('Z', 2, ANALOG)>, /* SPI8_SCK */
+                                <STM32_PINMUX('Z', 0, ANALOG)>, /* SPI8_MOSI */
+                                <STM32_PINMUX('Z', 1, ANALOG)>; /* SPI8_MISO */
+               };
+       };
+};
index 5dd4f3580a60feee79fae0946492293ee64b0edc..dcd0656d67a807d07062d992204c9a1b7d5aa1ce 100644 (file)
@@ -3,7 +3,9 @@
  * Copyright (C) STMicroelectronics 2023 - All Rights Reserved
  * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
  */
+#include <dt-bindings/clock/st,stm32mp25-rcc.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/reset/st,stm32mp25-rcc.h>
 
 / {
        #address-cells = <2>;
        };
 
        clocks {
-               ck_flexgen_08: ck-flexgen-08 {
+               clk_dsi_txbyte: txbyteclk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
-                       clock-frequency = <100000000>;
+                       clock-frequency = <0>;
                };
 
-               ck_flexgen_51: ck-flexgen-51 {
+               clk_rcbsec: clk-rcbsec {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
-                       clock-frequency = <200000000>;
-               };
-
-               ck_icn_ls_mcu: ck-icn-ls-mcu {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <200000000>;
-               };
-
-               ck_icn_p_vdec: ck-icn-p-vdec {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <200000000>;
-               };
-
-               ck_icn_p_venc: ck-icn-p-venc {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <200000000>;
+                       clock-frequency = <64000000>;
                };
        };
 
        timer {
                compatible = "arm,armv8-timer";
                interrupt-parent = <&intc>;
-               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
                always-on;
        };
 
                interrupt-parent = <&intc>;
                ranges = <0x0 0x0 0x0 0x80000000>;
 
-               rifsc: rifsc-bus@42080000 {
-                       compatible = "simple-bus";
+               rifsc: bus@42080000 {
+                       compatible = "st,stm32mp25-rifsc", "simple-bus";
                        reg = <0x42080000 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
+                       #access-controller-cells = <1>;
                        ranges;
 
+                       spi2: spi@400b0000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x400b0000 0x400>;
+                               interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI2>;
+                               resets = <&rcc SPI2_R>;
+                               access-controllers = <&rifsc 23>;
+                               status = "disabled";
+                       };
+
+                       spi3: spi@400c0000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x400c0000 0x400>;
+                               interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI3>;
+                               resets = <&rcc SPI3_R>;
+                               access-controllers = <&rifsc 24>;
+                               status = "disabled";
+                       };
+
                        usart2: serial@400e0000 {
                                compatible = "st,stm32h7-uart";
                                reg = <0x400e0000 0x400>;
                                interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&ck_flexgen_08>;
+                               clocks = <&rcc CK_KER_USART2>;
+                               access-controllers = <&rifsc 32>;
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@40120000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40120000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C1>;
+                               resets = <&rcc I2C1_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 41>;
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@40130000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40130000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C2>;
+                               resets = <&rcc I2C2_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 42>;
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@40140000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40140000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C3>;
+                               resets = <&rcc I2C3_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 43>;
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@40150000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40150000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C4>;
+                               resets = <&rcc I2C4_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 44>;
+                               status = "disabled";
+                       };
+
+                       i2c5: i2c@40160000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40160000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C5>;
+                               resets = <&rcc I2C5_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 45>;
+                               status = "disabled";
+                       };
+
+                       i2c6: i2c@40170000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40170000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C6>;
+                               resets = <&rcc I2C6_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 46>;
+                               status = "disabled";
+                       };
+
+                       i2c7: i2c@40180000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40180000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C7>;
+                               resets = <&rcc I2C7_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 47>;
+                               status = "disabled";
+                       };
+
+                       spi1: spi@40230000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x40230000 0x400>;
+                               interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI1>;
+                               resets = <&rcc SPI1_R>;
+                               access-controllers = <&rifsc 22>;
+                               status = "disabled";
+                       };
+
+                       spi4: spi@40240000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x40240000 0x400>;
+                               interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI4>;
+                               resets = <&rcc SPI4_R>;
+                               access-controllers = <&rifsc 25>;
+                               status = "disabled";
+                       };
+
+                       spi5: spi@40280000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x40280000 0x400>;
+                               interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI5>;
+                               resets = <&rcc SPI5_R>;
+                               access-controllers = <&rifsc 26>;
+                               status = "disabled";
+                       };
+
+                       spi6: spi@40350000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x40350000 0x400>;
+                               interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI6>;
+                               resets = <&rcc SPI6_R>;
+                               access-controllers = <&rifsc 27>;
+                               status = "disabled";
+                       };
+
+                       spi7: spi@40360000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x40360000 0x400>;
+                               interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI7>;
+                               resets = <&rcc SPI7_R>;
+                               access-controllers = <&rifsc 28>;
+                               status = "disabled";
+                       };
+
+                       spi8: spi@46020000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x46020000 0x400>;
+                               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI8>;
+                               resets = <&rcc SPI8_R>;
+                               access-controllers = <&rifsc 29>;
+                               status = "disabled";
+                       };
+
+                       i2c8: i2c@46040000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x46040000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C8>;
+                               resets = <&rcc I2C8_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 48>;
                                status = "disabled";
                        };
 
                                arm,primecell-periphid = <0x00353180>;
                                reg = <0x48220000 0x400>, <0x44230400 0x8>;
                                interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&ck_flexgen_51>;
+                               clocks = <&rcc CK_KER_SDMMC1 >;
                                clock-names = "apb_pclk";
+                               resets = <&rcc SDMMC1_R>;
                                cap-sd-highspeed;
                                cap-mmc-highspeed;
                                max-frequency = <120000000>;
+                               access-controllers = <&rifsc 76>;
                                status = "disabled";
                        };
                };
                        };
                };
 
+               rcc: clock-controller@44200000 {
+                       compatible = "st,stm32mp25-rcc";
+                       reg = <0x44200000 0x10000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       clocks = <&scmi_clk CK_SCMI_HSE>,
+                               <&scmi_clk CK_SCMI_HSI>,
+                               <&scmi_clk CK_SCMI_MSI>,
+                               <&scmi_clk CK_SCMI_LSE>,
+                               <&scmi_clk CK_SCMI_LSI>,
+                               <&scmi_clk CK_SCMI_HSE_DIV2>,
+                               <&scmi_clk CK_SCMI_ICN_HS_MCU>,
+                               <&scmi_clk CK_SCMI_ICN_LS_MCU>,
+                               <&scmi_clk CK_SCMI_ICN_SDMMC>,
+                               <&scmi_clk CK_SCMI_ICN_DDR>,
+                               <&scmi_clk CK_SCMI_ICN_DISPLAY>,
+                               <&scmi_clk CK_SCMI_ICN_HSL>,
+                               <&scmi_clk CK_SCMI_ICN_NIC>,
+                               <&scmi_clk CK_SCMI_ICN_VID>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_07>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_08>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_09>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_10>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_11>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_12>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_13>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_14>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_15>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_16>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_17>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_18>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_19>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_20>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_21>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_22>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_23>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_24>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_25>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_26>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_27>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_28>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_29>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_30>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_31>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_32>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_33>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_34>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_35>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_36>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_37>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_38>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_39>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_40>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_41>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_42>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_43>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_44>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_45>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_46>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_47>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_48>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_49>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_50>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_51>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_52>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_53>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_54>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_55>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_56>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_57>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_58>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_59>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_60>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_61>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_62>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_63>,
+                               <&scmi_clk CK_SCMI_ICN_APB1>,
+                               <&scmi_clk CK_SCMI_ICN_APB2>,
+                               <&scmi_clk CK_SCMI_ICN_APB3>,
+                               <&scmi_clk CK_SCMI_ICN_APB4>,
+                               <&scmi_clk CK_SCMI_ICN_APBDBG>,
+                               <&scmi_clk CK_SCMI_TIMG1>,
+                               <&scmi_clk CK_SCMI_TIMG2>,
+                               <&scmi_clk CK_SCMI_PLL3>,
+                               <&clk_dsi_txbyte>;
+               };
+
+               exti1: interrupt-controller@44220000 {
+                       compatible = "st,stm32mp1-exti", "syscon";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       reg = <0x44220000 0x400>;
+                       interrupts-extended =
+                               <&intc GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_0 */
+                               <&intc GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_10 */
+                               <&intc GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 0   IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 1   IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,                                            /* EXTI_20 */
+                               <&intc GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_30 */
+                               <&intc GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <&intc GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_40 */
+                               <&intc GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_50 */
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,                                            /* EXTI_60 */
+                               <&intc GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 10  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <&intc GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_70 */
+                               <0>,
+                               <&intc GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,                                            /* EXTI_80 */
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                syscfg: syscon@44230000 {
                        compatible = "st,stm32mp25-syscfg", "syscon";
                        reg = <0x44230000 0x10000>;
                        #size-cells = <1>;
                        compatible = "st,stm32mp257-pinctrl";
                        ranges = <0 0x44240000 0xa0400>;
+                       interrupt-parent = <&exti1>;
+                       st,syscfg = <&exti1 0x60 0xff>;
                        pins-are-numbered;
 
                        gpioa: gpio@44240000 {
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x0 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOA>;
                                st,bank-name = "GPIOA";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x10000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOB>;
                                st,bank-name = "GPIOB";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x20000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOC>;
                                st,bank-name = "GPIOC";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x30000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOD>;
                                st,bank-name = "GPIOD";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x40000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOE>;
                                st,bank-name = "GPIOE";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x50000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOF>;
                                st,bank-name = "GPIOF";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x60000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOG>;
                                st,bank-name = "GPIOG";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x70000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOH>;
                                st,bank-name = "GPIOH";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x80000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOI>;
                                st,bank-name = "GPIOI";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x90000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOJ>;
                                st,bank-name = "GPIOJ";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0xa0000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOK>;
                                st,bank-name = "GPIOK";
                                status = "disabled";
                        };
                        #size-cells = <1>;
                        compatible = "st,stm32mp257-z-pinctrl";
                        ranges = <0 0x46200000 0x400>;
+                       interrupt-parent = <&exti1>;
+                       st,syscfg = <&exti1 0x60 0xff>;
                        pins-are-numbered;
 
                        gpioz: gpio@46200000 {
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOZ>;
                                st,bank-name = "GPIOZ";
                                st,bank-ioport = <11>;
                                status = "disabled";
                        };
 
                };
+
+               exti2: interrupt-controller@46230000 {
+                       compatible = "st,stm32mp1-exti", "syscon";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       reg = <0x46230000 0x400>;
+                       interrupts-extended =
+                               <&intc GIC_SPI 17  IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_0 */
+                               <&intc GIC_SPI 18  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 19  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 20  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 21  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 22  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 23  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 24  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 25  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 26  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 27  IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_10 */
+                               <&intc GIC_SPI 28  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 29  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 30  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 31  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 32  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 12  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 13  IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <0>,                                            /* EXTI_20 */
+                               <&intc GIC_SPI 14  IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 15  IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <&intc GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_30 */
+                               <&intc GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <&intc GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_40 */
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 11  IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <&intc GIC_SPI 5   IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 4   IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 6   IRQ_TYPE_LEVEL_HIGH>,        /* EXTI_50 */
+                               <&intc GIC_SPI 7   IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 2   IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 3   IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,
+                               <0>,                                            /* EXTI_60 */
+                               <&intc GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <&intc GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
+                               <&intc GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+                               <0>,
+                               <0>,
+                               <&intc GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>;        /* EXTI_70 */
+               };
        };
 };
index af48e82efe8a9abeee671b6d31d8460d4987c194..029f8898196167d2300e06c4a4750d1e5e0b0c65 100644 (file)
                             <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-affinity = <&cpu0>, <&cpu1>;
        };
+
+       timer {
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+       };
 };
index 17f197c5b22b1b67973506090ee475ccda5e9998..f689b47c5010033120146cf1954d6624c0270045 100644 (file)
@@ -5,22 +5,21 @@
  */
 #include "stm32mp253.dtsi"
 
-/ {
-       soc@0 {
-               rifsc: rifsc-bus@42080000 {
-                       vdec: vdec@480d0000 {
-                               compatible = "st,stm32mp25-vdec";
-                               reg = <0x480d0000 0x3c8>;
-                               interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&ck_icn_p_vdec>;
-                       };
+&rifsc {
+       vdec: vdec@480d0000 {
+               compatible = "st,stm32mp25-vdec";
+               reg = <0x480d0000 0x3c8>;
+               interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&rcc CK_BUS_VDEC>;
+               access-controllers = <&rifsc 89>;
 
-                       venc: venc@480e0000 {
-                               compatible = "st,stm32mp25-venc";
-                               reg = <0x480e0000 0x800>;
-                               interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&ck_icn_ls_mcu>;
-                       };
-               };
        };
-};
+
+       venc: venc@480e0000 {
+               compatible = "st,stm32mp25-venc";
+               reg = <0x480e0000 0x800>;
+               interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&rcc CK_BUS_VENC>;
+               access-controllers = <&rifsc 90>;
+       };
+};
\ No newline at end of file
index b2d3afb157585e6b4a28f40db0cc55058eddf1e0..27b7360e5dbaf88dfd051d2dc5b1cc1da8ca0faf 100644 (file)
        status = "okay";
 };
 
+&i2c2 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&i2c2_pins_a>;
+       pinctrl-1 = <&i2c2_sleep_pins_a>;
+       i2c-scl-rising-time-ns = <100>;
+       i2c-scl-falling-time-ns = <13>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c8 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&i2c8_pins_a>;
+       pinctrl-1 = <&i2c8_sleep_pins_a>;
+       i2c-scl-rising-time-ns = <57>;
+       i2c-scl-falling-time-ns = <7>;
+       clock-frequency = <400000>;
+       status = "disabled";
+};
+
 &sdmmc1 {
        pinctrl-names = "default", "opendrain", "sleep";
        pinctrl-0 = <&sdmmc1_b4_pins_a>;
        status = "okay";
 };
 
+&spi3 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&spi3_pins_a>;
+       pinctrl-1 = <&spi3_sleep_pins_a>;
+       status = "disabled";
+};
+
+&spi8 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&spi8_pins_a>;
+       pinctrl-1 = <&spi8_sleep_pins_a>;
+       status = "disabled";
+};
+
 &usart2 {
        pinctrl-names = "default", "idle", "sleep";
        pinctrl-0 = <&usart2_pins_a>;
index 53d616c3cfed793cf0e0a44e04999ed47fc24cf7..71e4bfcc9e8128ff2c6a0ce358e7cc55941e6d3e 100644 (file)
@@ -88,7 +88,7 @@
        };
 
        pmu {
-               compatible = "arm,cortex-a53-pmu", "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
index 047a83cee6038394ebe3082fdb0bfb1d578f767c..690b4ed9c29b928216832b6e82ffe6cbb9ad7333 100644 (file)
        };
 
        arm-pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a72-pmu";
                interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
index c4149059a4c5bcf4f2c59dbbdd45f9048663bfa3..9a17bd3e59c90f69c4465225e158dacb33db8abc 100644 (file)
 
                interrupt-parent = <&gic500>;
                interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
-               ti,power-button;
 
                regulators {
                        buck1_reg: buck1 {
index e9cffca073efcd59216b71f089dd13439887a21b..448a59dc53a77c9bc6dca12d0914118eb85141da 100644 (file)
 
        usbss0: dwc3-usb@f900000 {
                compatible = "ti,am62-usb";
-               reg = <0x00 0x0f900000 0x00 0x800>;
+               reg = <0x00 0x0f900000 0x00 0x800>,
+                     <0x00 0x0f908000 0x00 0x400>;
                clocks = <&k3_clks 161 3>;
                clock-names = "ref";
-               ti,syscon-phy-pll-refclk = <&wkup_conf 0x4008>;
+               ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>;
                #address-cells = <2>;
                #size-cells = <2>;
                power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>;
 
        usbss1: dwc3-usb@f910000 {
                compatible = "ti,am62-usb";
-               reg = <0x00 0x0f910000 0x00 0x800>;
+               reg = <0x00 0x0f910000 0x00 0x800>,
+                     <0x00 0x0f918000 0x00 0x400>;
                clocks = <&k3_clks 162 3>;
                clock-names = "ref";
-               ti,syscon-phy-pll-refclk = <&wkup_conf 0x4018>;
+               ti,syscon-phy-pll-refclk = <&usb1_phy_ctrl 0x0>;
                #address-cells = <2>;
                #size-cells = <2>;
                power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>;
index 6c4cec8728e4984870bf9c90de38c72176889679..e8f4d136e5dfb4dd67c16f450141ebf9cd498b24 100644 (file)
@@ -22,6 +22,7 @@
                simple-audio-card,format = "i2s";
                simple-audio-card,frame-master = <&codec_dai>;
                simple-audio-card,name = "verdin-wm8904";
+               simple-audio-card,mclk-fs = <256>;
                simple-audio-card,routing =
                        "Headphone Jack", "HPOUTL",
                        "Headphone Jack", "HPOUTR",
@@ -35,7 +36,6 @@
                        "Line", "Line In Jack";
 
                codec_dai: simple-audio-card,codec {
-                       clocks = <&audio_refclk1>;
                        sound-dai = <&wm8904_1a>;
                };
 
                        sound-dai = <&mcasp0>;
                };
        };
+
+       reg_usb_hub: regulator-usb-hub {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               regulator-name = "HUB_PWR_EN";
+       };
 };
 
 /* Verdin ETHs */
        pinctrl-0 = <&pinctrl_gpio_1>,
                    <&pinctrl_gpio_2>,
                    <&pinctrl_gpio_3>,
-                   <&pinctrl_gpio_4>;
+                   <&pinctrl_gpio_4>,
+                   <&pinctrl_pcie_1_reset>;
 };
 
 /* Verdin I2C_3_HDMI */
        status = "okay";
 };
 
+/* Do not force CTRL_SLEEP_MOCI# always enabled */
+&reg_force_sleep_moci {
+       status = "disabled";
+};
+
 /* Verdin SD_1 */
 &sdhci1 {
        status = "okay";
 };
 
 &usb1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
        status = "okay";
+
+       usb-hub@1 {
+               compatible = "usb424,2744";
+               reg = <1>;
+               vdd-supply = <&reg_usb_hub>;
+       };
 };
 
 /* Verdin CTRL_WAKE1_MICO# */
        status = "okay";
 };
 
+/* Verdin PCIE_1_RESET# */
+&verdin_pcie_1_reset_hog {
+       status = "okay";
+};
+
 /* Verdin UART_2 */
 &wkup_uart0 {
        status = "okay";
index be62648e7818aeedccbc1942776fff87f69a1f60..74eec1a1abca9f9414e9ed6d6f268101f0b22858 100644 (file)
        pinctrl-0 = <&pinctrl_gpio_1>,
                    <&pinctrl_gpio_2>,
                    <&pinctrl_gpio_3>,
-                   <&pinctrl_gpio_4>;
+                   <&pinctrl_gpio_4>,
+                   <&pinctrl_pcie_1_reset>;
 };
 
 /* Verdin I2C_3_HDMI */
        status = "okay";
 };
 
+/* Verdin PCIE_1_RESET# */
+&verdin_pcie_1_reset_hog {
+       status = "okay";
+};
+
 /* Verdin UART_2 */
 &wkup_uart0 {
        status = "okay";
index 77b1beb638ad7bf400c0b7df836d0ea032e0f60f..754216d8ac1424deefd30d8094d065ce255ba814 100644 (file)
 &main_gpio0 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ctrl_sleep_moci>,
-                   <&pinctrl_gpio_1>,
-                   <&pinctrl_gpio_2>,
-                   <&pinctrl_gpio_3>,
-                   <&pinctrl_gpio_4>;
+                   <&pinctrl_gpio_5>,
+                   <&pinctrl_gpio_6>,
+                   <&pinctrl_gpio_7>,
+                   <&pinctrl_gpio_8>;
 };
 
 /* Verdin I2C_1 */
        status = "okay";
 };
 
+&mcu_gpio0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio_1>,
+                   <&pinctrl_gpio_2>,
+                   <&pinctrl_gpio_3>,
+                   <&pinctrl_gpio_4>,
+                   <&pinctrl_pcie_1_reset>;
+};
+
 /* Verdin I2C_3_HDMI */
 &mcu_i2c0 {
        status = "okay";
        status = "okay";
 };
 
+/* Verdin PCIE_1_RESET# */
+&verdin_pcie_1_reset_hog {
+       status = "okay";
+};
+
 /* Verdin UART_2 */
 &wkup_uart0 {
        status = "okay";
index 997dfafd27eb463e3d4e8f1867062e1e9f66078e..7372d392ec8a349b97b1787fd0ee0b946e3926e5 100644 (file)
        pinctrl-0 = <&pinctrl_gpio_1>,
                    <&pinctrl_gpio_2>,
                    <&pinctrl_gpio_3>,
-                   <&pinctrl_gpio_4>;
+                   <&pinctrl_gpio_4>,
+                   <&pinctrl_pcie_1_reset>;
 };
 
 /* Verdin I2C_3_HDMI */
        status = "okay";
 };
 
+/* Verdin PCIE_1_RESET# */
+&verdin_pcie_1_reset_hog {
+       status = "okay";
+};
+
 /* Verdin UART_2 */
 &wkup_uart0 {
        status = "okay";
index e8d8857ad51ff2f25d4ed4ec6989fb19e9e39354..2038c5e04639086c82442a8b925fbf5bcc1c4334 100644 (file)
@@ -76,7 +76,7 @@
 
        memory@80000000 {
                device_type = "memory";
-               reg = <0x00000000 0x80000000 0x00000000 0x40000000>; /* 1G RAM */
+               reg = <0x00000000 0x80000000 0x00000000 0x80000000>; /* 2G RAM */
        };
 
        opp-table {
                vin-supply = <&reg_1v8>;
        };
 
+       /*
+        * By default we enable CTRL_SLEEP_MOCI#, this is required to have
+        * peripherals on the carrier board powered.
+        * If more granularity or power saving is required this can be disabled
+        * in the carrier board device tree files.
+        */
+       reg_force_sleep_moci: regulator-force-sleep-moci {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "CTRL_SLEEP_MOCI#";
+       };
+
        /* Verdin SD_1 Power Supply */
        reg_sdhc1_vmmc: regulator-sdhci1 {
                compatible = "regulator-fixed";
                >;
        };
 
+       /* Verdin SD_1_CD# as GPIO */
+       pinctrl_sd1_cd_gpio: main-gpio1-48-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x240, PIN_INPUT_PULLUP, 7) /* (D17) MMC1_SDCD.GPIO1_48 */ /* SODIMM 84 */
+               >;
+       };
+
        /* Verdin DSI_1_INT# (pulled-up as active-low) */
        pinctrl_dsi1_int: main-gpio1-49-default-pins {
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x22c, PIN_INPUT,        0) /* (B21) MMC1_DAT1 */ /* SODIMM 82 */
                        AM62X_IOPAD(0x228, PIN_INPUT,        0) /* (C21) MMC1_DAT2 */ /* SODIMM 70 */
                        AM62X_IOPAD(0x224, PIN_INPUT,        0) /* (D22) MMC1_DAT3 */ /* SODIMM 72 */
-                       AM62X_IOPAD(0x240, PIN_INPUT_PULLUP, 0) /* (D17) MMC1_SDCD */ /* SODIMM 84 */
                >;
        };
 
                "",
                "",
                "";
-
-       verdin_ctrl_sleep_moci: ctrl-sleep-moci-hog {
-               gpio-hog;
-               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
-               gpios = <31 GPIO_ACTIVE_HIGH>;
-               line-name = "CTRL_SLEEP_MOCI#";
-               output-high;
-       };
 };
 
 &main_gpio1 {
                "",
                "",
                "";
+
+       verdin_pcie_1_reset_hog: pcie-1-reset-hog {
+               gpio-hog;
+               /* Verdin PCIE_1_RESET# (SODIMM 244) */
+               gpios = <0 GPIO_ACTIVE_LOW>;
+               line-name = "PCIE_1_RESET#";
+               output-low;
+               status = "disabled";
+       };
 };
 
 /* Verdin CAN_2 */
 /* Verdin SD_1 */
 &sdhci1 {
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_sdhci1>;
+       pinctrl-0 = <&pinctrl_sdhci1>, <&pinctrl_sd1_cd_gpio>;
+       cd-gpios = <&main_gpio1 48 GPIO_ACTIVE_LOW>;
        disable-wp;
        vmmc-supply = <&reg_sdhc1_vmmc>;
        vqmmc-supply = <&reg_sdhc1_vqmmc>;
+       ti,fails-without-test-cd;
        status = "disabled";
 };
 
index 23ce1bfda8d6abbb75472d3b8a321f6e9eb3d8c3..66ddf2dc51afa7870a27ebabac19799726a834aa 100644 (file)
                        compatible = "ti,am654-chipid";
                        reg = <0x14 0x4>;
                };
+
+               usb0_phy_ctrl: syscon@4008 {
+                       compatible = "ti,am62-usb-phy-ctrl", "syscon";
+                       reg = <0x4008 0x4>;
+               };
+
+               usb1_phy_ctrl: syscon@4018 {
+                       compatible = "ti,am62-usb-phy-ctrl", "syscon";
+                       reg = <0x4018 0x4>;
+               };
        };
 
        target-module@2b300050 {
index a34e0df2ab8646206b26c19f529629f9dfedf226..18e3070a86839f7a4c3816037bf71781e5a3441b 100644 (file)
                };
        };
 
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_en_pins_default>;
+               /* Internal power on time(Figure 8-3) * 2 */
+               post-power-on-delay-ms = <10>;
+               /* Re-enable time(Figure 8-2) + 20uS */
+               power-off-delay-us = <80>;
+               reset-gpios = <&main_gpio0 38 GPIO_ACTIVE_LOW>;
+       };
+
        vsys_5v0: regulator-1 {
                bootph-all;
                compatible = "regulator-fixed";
                regulator-boot-on;
        };
 
-       wlan_en: regulator-3 {
-               /* OUTPUT of SN74AVC2T244DQMR */
-               compatible = "regulator-fixed";
-               regulator-name = "wlan_en";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               enable-active-high;
-               regulator-always-on;
-               vin-supply = <&vdd_3v3>;
-               gpio = <&main_gpio0 38 GPIO_ACTIVE_HIGH>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&wifi_en_pins_default>;
-       };
-
        vdd_3v3_sd: regulator-4 {
                /* output of TPS22918DBVR-U21 */
                bootph-all;
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x0160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */
                        AM62X_IOPAD(0x015c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */
+                       AM62X_IOPAD(0x003c, PIN_INPUT, 7) /* (M25) GPMC0_AD0.GPIO0_15 */
+                       AM62X_IOPAD(0x018c, PIN_INPUT, 7) /* (AC21) RGMII2_RD2.GPIO1_5 */
                >;
        };
 
                        AM62X_IOPAD(0x016c, PIN_INPUT, 1) /* (Y18) RGMII2_TD0.RMII2_TXD0 */
                        AM62X_IOPAD(0x0170, PIN_INPUT, 1) /* (AA18) RGMII2_TD1.RMII2_TXD1 */
                        AM62X_IOPAD(0x0164, PIN_INPUT, 1) /* (AA19) RGMII2_TX_CTL.RMII2_TX_EN */
-                       AM62X_IOPAD(0x018c, PIN_OUTPUT, 7) /* (AC21) RGMII2_RD2.GPIO1_5 */
                        AM62X_IOPAD(0x0190, PIN_INPUT, 7) /* (AE22) RGMII2_RD3.GPIO1_6 */
                        AM62X_IOPAD(0x01f0, PIN_OUTPUT, 5) /* (A18) EXT_REFCLK1.CLKOUT0 */
                >;
 
        cpsw3g_phy0: ethernet-phy@0 {
                reg = <0>;
+               reset-gpios = <&main_gpio0 15 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <50000>;
        };
 
        cpsw3g_phy1: ethernet-phy@1 {
                "USR0", "USR1", "USR2", "USR3", "", "", "USR4", /* 3-9 */
                "EEPROM_WP",                                    /* 10 */
                "CSI2_CAMERA_GPIO1", "CSI2_CAMERA_GPIO2",       /* 11-12 */
-               "CC1352P7_BOOT", "CC1352P7_RSTN", "", "", "",   /* 13-17 */
+               "CC1352P7_BOOT", "CC1352P7_RSTN", "GBE_RSTN", "", "",   /* 13-17 */
                "USR_BUTTON", "", "", "", "", "", "", "", "",   /* 18-26 */
                "", "", "", "", "", "", "", "", "", "HDMI_INT", /* 27-36 */
                "", "VDD_WLAN_EN", "", "", "WL_IRQ", "GBE_INTN",/* 37-42 */
 };
 
 &sdhci2 {
-       vmmc-supply = <&wlan_en>;
        pinctrl-names = "default";
        pinctrl-0 = <&wifi_pins_default>, <&wifi_32k_clk>;
        non-removable;
        ti,fails-without-test-cd;
        cap-power-off-card;
        keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
        assigned-clocks = <&k3_clks 157 158>;
        assigned-clock-parents = <&k3_clks 157 160>;
        #address-cells = <1>;
index a83a90497857662d7d0fc51e9d530949ffc51f79..50d2573c840ee9bb553d778e07b4e0aad279ef55 100644 (file)
@@ -31,7 +31,7 @@
        can_tc1: can-phy0 {
                compatible = "ti,tcan1042";
                #phy-cells = <0>;
-               max-bitrate = <5000000>;
+               max-bitrate = <8000000>;
                standby-gpios = <&gpio_exp 1 GPIO_ACTIVE_HIGH>;
        };
 
                };
        };
 
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "phyBOARD-Lyra";
+               simple-audio-card,widgets =
+                       "Microphone",           "Mic Jack",
+                       "Headphone",            "Headphone Jack",
+                       "Speaker",              "External Speaker";
+               simple-audio-card,routing =
+                       "MIC3R",                "Mic Jack",
+                       "Mic Jack",             "Mic Bias",
+                       "Headphone Jack",       "HPLOUT",
+                       "Headphone Jack",       "HPROUT",
+                       "External Speaker",     "SPOP",
+                       "External Speaker",     "SPOM";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&sound_master>;
+               simple-audio-card,frame-master = <&sound_master>;
+               simple-audio-card,bitclock-inversion;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcasp2>;
+               };
+
+               sound_master: simple-audio-card,codec {
+                               sound-dai = <&audio_codec>;
+                               clocks = <&audio_refclk1>;
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
                };
        };
 
+       vcc_1v8: regulator-vcc-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
        vcc_3v3_mmc: regulator-vcc-3v3-mmc {
                compatible = "regulator-fixed";
                regulator-name = "VCC_3V3_MMC";
                regulator-always-on;
                regulator-boot-on;
        };
+
+       vcc_3v3_sw: regulator-vcc-3v3-sw {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_3V3_SW";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
 };
 
 &main_pmx0 {
+       audio_ext_refclk1_pins_default: audio-ext-refclk1-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x0a0, PIN_OUTPUT, 1) /* (K25) GPMC0_WPn.AUDIO_EXT_REFCLK1 */
+               >;
+       };
+
        gpio_keys_pins_default: gpio-keys-default-pins {
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x1d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */
                >;
        };
 
+       main_mcasp2_pins_default: main-mcasp2-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x070, PIN_INPUT, 3) /* (T24) GPMC0_AD13.MCASP2_ACLKX */
+                       AM62X_IOPAD(0x06c, PIN_INPUT, 3) /* (T22) GPMC0_AD12.MCASP2_AFSX */
+                       AM62X_IOPAD(0x064, PIN_OUTPUT, 3) /* (T25) GPMC0_AD10.MCASP2_AXR2 */
+                       AM62X_IOPAD(0x068, PIN_INPUT, 3) /* (R21) GPMC0_AD11.MCASP2_AXR3 */
+               >;
+       };
+
        main_mmc1_pins_default: main-mmc1-default-pins {
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x23c, PIN_INPUT_PULLUP, 0) /* (A21) MMC1_CMD */
        clock-frequency = <100000>;
        status = "okay";
 
+       audio_codec: audio-codec@18 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&audio_ext_refclk1_pins_default>;
+
+               #sound-dai-cells = <0>;
+               compatible = "ti,tlv320aic3007";
+               reg = <0x18>;
+               ai3x-micbias-vg = <2>;
+
+               AVDD-supply = <&vcc_3v3_sw>;
+               IOVDD-supply = <&vcc_3v3_sw>;
+               DRVDD-supply = <&vcc_3v3_sw>;
+               DVDD-supply = <&vcc_1v8>;
+       };
+
        gpio_exp: gpio-expander@21 {
                pinctrl-names = "default";
                pinctrl-0 = <&gpio_exp_int_pins_default>;
                                  "GPIO6_ETH1_USER_RESET", "GPIO7_AUDIO_USER_RESET";
        };
 
+       usb-pd@22 {
+               compatible = "ti,tps6598x";
+               reg = <0x22>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       self-powered;
+                       data-role = "dual";
+                       power-role = "sink";
+                       port {
+                               usb_con_hs: endpoint {
+                                       remote-endpoint = <&typec_hs>;
+                               };
+                       };
+               };
+       };
+
        sii9022: bridge-hdmi@39 {
                compatible = "sil,sii9022";
                reg = <0x39>;
        status = "okay";
 };
 
+&mcasp2 {
+       #sound-dai-cells = <0>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcasp2_pins_default>;
+
+       /* MCASP_IIS_MODE */
+       op-mode = <0>;
+       tdm-slots = <2>;
+
+       /* 0: INACTIVE, 1: TX, 2: RX */
+       serial-dir = <
+                       0 0 1 2
+                       0 0 0 0
+                       0 0 0 0
+                       0 0 0 0
+       >;
+       tx-num-evt = <32>;
+       rx-num-evt = <32>;
+       status = "okay";
+};
+
 &sdhci1 {
        vmmc-supply = <&vcc_3v3_mmc>;
        vqmmc-supply = <&vddshv5_sdio>;
 };
 
 &usb0 {
-       dr_mode = "peripheral";
+       usb-role-switch;
+
+       port {
+               typec_hs: endpoint {
+                       remote-endpoint = <&usb_con_hs>;
+               };
+       };
 };
 
 &usb1 {
index aa1e057082f0829f5d09dccdfcf596c486cb7230..bf9c2d9c6439a90c04db51bb123972fa1b5fbd6d 100644 (file)
                ti,itap-del-sel-sd-hs = <0x0>;
                ti,itap-del-sel-sdr12 = <0x0>;
                ti,itap-del-sel-sdr25 = <0x0>;
-               no-1-8-v;
                status = "disabled";
        };
 
                ti,itap-del-sel-sd-hs = <0x0>;
                ti,itap-del-sel-sdr12 = <0x0>;
                ti,itap-del-sel-sdr25 = <0x0>;
-               no-1-8-v;
                status = "disabled";
        };
 
        usbss0: dwc3-usb@f900000 {
                compatible = "ti,am62-usb";
-               reg = <0x00 0x0f900000 0x00 0x800>;
+               reg = <0x00 0x0f900000 0x00 0x800>,
+                     <0x00 0x0f908000 0x00 0x400>;
                clocks = <&k3_clks 161 3>;
                clock-names = "ref";
-               ti,syscon-phy-pll-refclk = <&wkup_conf 0x4008>;
+               ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>;
                #address-cells = <2>;
                #size-cells = <2>;
                power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>;
                        interrupt-names = "host", "peripheral";
                        maximum-speed = "high-speed";
                        dr_mode = "otg";
+                       snps,usb2-gadget-lpm-disable;
+                       snps,usb2-lpm-disable;
                };
        };
 
        usbss1: dwc3-usb@f910000 {
                compatible = "ti,am62-usb";
-               reg = <0x00 0x0f910000 0x00 0x800>;
+               reg = <0x00 0x0f910000 0x00 0x800>,
+                     <0x00 0x0f918000 0x00 0x400>;
                clocks = <&k3_clks 162 3>;
                clock-names = "ref";
-               ti,syscon-phy-pll-refclk = <&wkup_conf 0x4018>;
+               ti,syscon-phy-pll-refclk = <&usb1_phy_ctrl 0x0>;
                #address-cells = <2>;
                #size-cells = <2>;
                power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>;
                        interrupt-names = "host", "peripheral";
                        maximum-speed = "high-speed";
                        dr_mode = "otg";
+                       snps,usb2-gadget-lpm-disable;
+                       snps,usb2-lpm-disable;
                };
        };
 
                        #size-cells = <0>;
                };
        };
+
+       vpu: video-codec@30210000 {
+               compatible = "ti,j721s2-wave521c", "cnm,wave521c";
+               reg = <0x00 0x30210000 0x00 0x10000>;
+               clocks = <&k3_clks 204 2>;
+               power-domains = <&k3_pds 204 TI_SCI_PD_EXCLUSIVE>;
+       };
 };
index f7bec484705ad61f894aa58d91c4e1bb4feb3029..98043e9aa316b82f1c781eb1f4c84dded1e81ec6 100644 (file)
                        compatible = "ti,am654-chipid";
                        reg = <0x14 0x4>;
                };
+
+               usb0_phy_ctrl: syscon@4008 {
+                       compatible = "ti,am62-usb-phy-ctrl", "syscon";
+                       reg = <0x4008 0x4>;
+               };
+
+               usb1_phy_ctrl: syscon@4018 {
+                       compatible = "ti,am62-usb-phy-ctrl", "syscon";
+                       reg = <0x4018 0x4>;
+               };
        };
 
        wkup_uart0: serial@2b300000 {
index f241637a5642a0407921fa18b8d66a311bde1197..fa43cd0b631e62af66eb962c80e88e67696eb074 100644 (file)
                regulator-boot-on;
        };
 
+       vddshv_sdio: regulator-5 {
+               compatible = "regulator-gpio";
+               regulator-name = "vddshv_sdio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&vddshv_sdio_pins_default>;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               vin-supply = <&ldo1>;
+               gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
+               states = <1800000 0x0>,
+                        <3300000 0x1>;
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
                        AM62AX_IOPAD(0x01d4, PIN_INPUT, 7) /* (C15) UART0_RTSn.GPIO1_23 */
                >;
        };
+
+       vddshv_sdio_pins_default: vddshv-sdio-default-pins {
+               pinctrl-single,pins = <
+                       AM62AX_IOPAD(0x07c, PIN_OUTPUT, 7) /* (M19) GPMC0_CLK.GPIO0_31 */
+               >;
+       };
 };
 
 &mcu_pmx0 {
        /* SD/MMC */
        status = "okay";
        vmmc-supply = <&vdd_mmc1>;
+       vqmmc-supply = <&vddshv_sdio>;
        pinctrl-names = "default";
        pinctrl-0 = <&main_mmc1_pins_default>;
        disable-wp;
index 7337a9e1353542bfcb8633ea1306defb54e4b476..900d1f9530a2a118cb3d40005e115050d0182d11 100644 (file)
                status = "disabled";
        };
 
+       usbss0: usb@f900000 {
+               compatible = "ti,am62-usb";
+               reg = <0x00 0x0f900000 0x00 0x800>,
+                     <0x00 0x0f908000 0x00 0x400>;
+               clocks = <&k3_clks 161 3>;
+               clock-names = "ref";
+               ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>;
+               ranges;
+               status = "disabled";
+
+               usb0: usb@31000000 {
+                       compatible = "snps,dwc3";
+                       reg = <0x00 0x31000000 0x00 0x50000>;
+                       interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
+                       <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */
+                       interrupt-names = "host", "peripheral";
+                       maximum-speed = "high-speed";
+                       dr_mode = "otg";
+                       snps,usb2-gadget-lpm-disable;
+                       snps,usb2-lpm-disable;
+               };
+       };
+
+       usbss1: usb@f910000 {
+               compatible = "ti,am62-usb";
+               reg = <0x00 0x0f910000 0x00 0x800>,
+                     <0x00 0x0f918000 0x00 0x400>;
+               clocks = <&k3_clks 162 3>;
+               clock-names = "ref";
+               ti,syscon-phy-pll-refclk = <&usb1_phy_ctrl 0x0>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>;
+               ranges;
+               status = "disabled";
+
+               usb1: usb@31100000 {
+                       compatible = "snps,dwc3";
+                       reg = <0x00 0x31100000 0x00 0x50000>;
+                       interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
+                       <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */
+                       interrupt-names = "host", "peripheral";
+                       maximum-speed = "high-speed";
+                       dr_mode = "otg";
+                       snps,usb2-gadget-lpm-disable;
+                       snps,usb2-lpm-disable;
+               };
+       };
+
        fss: bus@fc00000 {
                compatible = "simple-bus";
                reg = <0x00 0x0fc00000 0x00 0x70000>;
                assigned-clock-parents = <&k3_clks 13 11>;
                clock-names = "fck";
                power-domains = <&k3_pds 13 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
 
                dmas = <&main_pktdma 0xc600 15>,
                       <&main_pktdma 0xc601 15>,
                                label = "port1";
                                phys = <&phy_gmii_sel 1>;
                                mac-address = [00 00 00 00 00 00];
+                               status = "disabled";
                        };
 
                        cpsw_port2: port@2 {
                                label = "port2";
                                phys = <&phy_gmii_sel 2>;
                                mac-address = [00 00 00 00 00 00];
+                               status = "disabled";
                        };
                };
 
index a84756c336d0569081d2f382984ff95141ac7319..c71d9624ea27712c6034679d0ea8fe31395bdc20 100644 (file)
                        reg = <0x14 0x4>;
                        bootph-all;
                };
+
+               usb0_phy_ctrl: syscon@4008 {
+                       compatible = "ti,am62-usb-phy-ctrl", "syscon";
+                       reg = <0x4008 0x4>;
+               };
+
+               usb1_phy_ctrl: syscon@4018 {
+                       compatible = "ti,am62-usb-phy-ctrl", "syscon";
+                       reg = <0x4018 0x4>;
+               };
        };
 
        wkup_uart0: serial@2b300000 {
index e86f34e835c1ad2d2410a648f2758a909aaa5f22..6e72346591113d8677f0a6e462bd53f05eca604c 100644 (file)
@@ -27,6 +27,8 @@
                spi0 = &ospi0;
                ethernet0 = &cpsw_port1;
                ethernet1 = &cpsw_port2;
+               usb0 = &usb0;
+               usb1 = &usb1;
        };
 
        chosen {
                bootph-all;
        };
 
+       main_usb1_pins_default: main-usb1-default-pins {
+               pinctrl-single,pins = <
+                       AM62PX_IOPAD(0x0258, PIN_INPUT, 0) /* (G21) USB1_DRVVBUS */
+               >;
+       };
+
        main_wlirq_pins_default: main-wlirq-default-pins {
                pinctrl-single,pins = <
                        AM62PX_IOPAD(0x0128, PIN_INPUT, 7) /* (K25) MMC2_SDWP.GPIO0_72 */
        };
 };
 
+&main_i2c0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_i2c0_pins_default>;
+       clock-frequency = <400000>;
+
+       typec_pd0: usb-power-controller@3f {
+               compatible = "ti,tps6598x";
+               reg = <0x3f>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       self-powered;
+                       data-role = "dual";
+                       power-role = "sink";
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       usb_con_hs: endpoint {
+                                               remote-endpoint = <&usb0_hs_ep>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
 &main_i2c1 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-names = "default";
        pinctrl-0 = <&main_rgmii1_pins_default>,
                    <&main_rgmii2_pins_default>;
+       status = "okay";
 };
 
 &cpsw_port1 {
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy0>;
+       status = "okay";
 };
 
 &cpsw_port2 {
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy1>;
+       status = "okay";
 };
 
 &cpsw3g_mdio {
        };
 };
 
+&usbss0 {
+       status = "okay";
+       ti,vbus-divider;
+};
+
+&usbss1 {
+       status = "okay";
+       ti,vbus-divider;
+};
+
+&usb0 {
+       usb-role-switch;
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       port@0 {
+               reg = <0>;
+               usb0_hs_ep: endpoint {
+                       remote-endpoint = <&usb_con_hs>;
+               };
+       };
+};
+
+&usb1 {
+       dr_mode = "host";
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_usb1_pins_default>;
+};
+
 &mcasp1 {
        status = "okay";
        #sound-dai-cells = <0>;
        pinctrl-0 = <&ospi0_pins_default>;
        bootph-all;
 
-       flash@0{
+       flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                spi-tx-bus-width = <8>;
index 53fe1d065ddbbe2fb616d50d5f75685b0b66578f..e20e4ffd0f1faee877aa1f76b4df0f31a24f1797 100644 (file)
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&main_uart0_pins_default>;
-       current-speed = <115200>;
 };
 
 /* main_uart1 is reserved for firmware usage */
diff --git a/src/arm64/ti/k3-am642-phyboard-electra-gpio-fan.dtso b/src/arm64/ti/k3-am642-phyboard-electra-gpio-fan.dtso
new file mode 100644 (file)
index 0000000..5057658
--- /dev/null
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (C) 2024 PHYTEC America LLC
+ * Author: Nathan Morrisson <nmorrisson@phytec.com>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/thermal/thermal.h>
+#include "k3-pinctrl.h"
+
+&{/} {
+       fan: gpio-fan {
+               compatible = "gpio-fan";
+               gpio-fan,speed-map = <0 0 8600 1>;
+               gpios = <&main_gpio0 28 GPIO_ACTIVE_LOW>;
+               #cooling-cells = <2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_fan_pins_default>;
+       };
+};
+
+&main_pmx0 {
+       gpio_fan_pins_default: gpio-fan-default-pins {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x070, PIN_OUTPUT, 7) /* (V18) GPMC0_AD13.GPIO0_28 */
+               >;
+       };
+};
+
+&thermal_zones {
+       main0_thermal: main0-thermal {
+               trips {
+                       main0_thermal_trip0: main0-thermal-trip {
+                               temperature = <65000>;  /* millicelsius */
+                               hysteresis = <2000>;    /* millicelsius */
+                               type = "active";
+                       };
+               };
+
+               cooling-maps {
+                       map0 {
+                               trip = <&main0_thermal_trip0>;
+                               cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                       };
+               };
+       };
+};
index 8237b8c815b84a86874afaf8bd881889936fac5d..6df331ccb970db06fd0118e8105ff3f03a1972d2 100644 (file)
@@ -42,7 +42,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&can_tc1_pins_default>;
                #phy-cells = <0>;
-               max-bitrate = <5000000>;
+               max-bitrate = <8000000>;
                standby-gpios = <&main_gpio0 32 GPIO_ACTIVE_HIGH>;
        };
 
@@ -51,7 +51,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&can_tc2_pins_default>;
                #phy-cells = <0>;
-               max-bitrate = <5000000>;
+               max-bitrate = <8000000>;
                standby-gpios = <&main_gpio0 35 GPIO_ACTIVE_HIGH>;
        };
 
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&main_uart0_pins_default>;
-       current-speed = <115200>;
 };
 
 &main_uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_uart1_pins_default>;
        uart-has-rtscts;
-       current-speed = <115200>;
 };
 
 &sdhci1 {
index 67cd41bf806eab21e2d6d1d452686ecf60de573a..5b028b3a3192f2890720b12fbba81f481206573c 100644 (file)
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&main_uart0_pins_default>;
-       current-speed = <115200>;
 };
 
 &main_uart1 {
index c50a585dd6384841b13063c65ca23ea47825657d..ef7897763ef84fc45078f6a99565d15609a44331 100644 (file)
 };
 
 &icssg0_eth {
-       status = "disabled";
-};
+       compatible = "ti,am654-sr1-icssg-prueth";
 
-&icssg0_mdio {
-       status = "disabled";
+       ti,prus = <&pru0_0>, <&rtu0_0>, <&pru0_1>, <&rtu0_1>;
+       firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf",
+                       "ti-pruss/am65x-rtu0-prueth-fw.elf",
+                       "ti-pruss/am65x-pru1-prueth-fw.elf",
+                       "ti-pruss/am65x-rtu1-prueth-fw.elf";
+
+       ti,pruss-gp-mux-sel = <2>,      /* MII mode */
+                             <2>,
+                             <2>,      /* MII mode */
+                             <2>;
+
+       dmas = <&main_udmap 0xc100>, /* egress slice 0 */
+              <&main_udmap 0xc101>, /* egress slice 0 */
+              <&main_udmap 0xc102>, /* egress slice 0 */
+              <&main_udmap 0xc103>, /* egress slice 0 */
+              <&main_udmap 0xc104>, /* egress slice 1 */
+              <&main_udmap 0xc105>, /* egress slice 1 */
+              <&main_udmap 0xc106>, /* egress slice 1 */
+              <&main_udmap 0xc107>, /* egress slice 1 */
+              <&main_udmap 0x4100>, /* ingress slice 0 */
+              <&main_udmap 0x4101>, /* ingress slice 1 */
+              <&main_udmap 0x4102>, /* mgmnt rsp slice 0 */
+              <&main_udmap 0x4103>; /* mgmnt rsp slice 1 */
+       dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
+                   "tx1-0", "tx1-1", "tx1-2", "tx1-3",
+                   "rx0", "rx1",
+                   "rxmgm0", "rxmgm1";
 };
index ff857117d71937b132468ceb915500eb533fcb9a..ed71561c5bd9a9266225d0f4673fdc1962c33f39 100644 (file)
@@ -66,7 +66,7 @@
                assigned-clock-parents = <&k3_clks 153 8>, <&k3_clks 153 4>;
                ti,serdes-clk = <&serdes0_clk>;
                #clock-cells = <1>;
-               mux-controls = <&serdes_mux 0>;
+               mux-controls = <&serdes0_mux 0>;
        };
 
        serdes1: serdes@910000 {
@@ -81,7 +81,7 @@
                assigned-clock-parents = <&k3_clks 154 9>, <&k3_clks 154 5>;
                ti,serdes-clk = <&serdes1_clk>;
                #clock-cells = <1>;
-               mux-controls = <&serdes_mux 1>;
+               mux-controls = <&serdes1_mux 0>;
        };
 
        main_uart0: serial@2800000 {
@@ -89,7 +89,6 @@
                reg = <0x00 0x02800000 0x00 0x100>;
                interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
                status = "disabled";
        };
                interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
                mmc-ddr-1_8v;
                mmc-hs200-1_8v;
+               ti,clkbuf-sel = <0x7>;
+               ti,trm-icp = <0x8>;
                ti,otap-del-sel-legacy = <0x0>;
                ti,otap-del-sel-mmc-hs = <0x0>;
-               ti,otap-del-sel-sd-hs = <0x0>;
-               ti,otap-del-sel-sdr12 = <0x0>;
-               ti,otap-del-sel-sdr25 = <0x0>;
-               ti,otap-del-sel-sdr50 = <0x8>;
-               ti,otap-del-sel-sdr104 = <0x7>;
-               ti,otap-del-sel-ddr50 = <0x5>;
                ti,otap-del-sel-ddr52 = <0x5>;
                ti,otap-del-sel-hs200 = <0x5>;
-               ti,otap-del-sel-hs400 = <0x0>;
-               ti,trm-icp = <0x8>;
+               ti,itap-del-sel-ddr52 = <0x0>;
                dma-coherent;
                status = "disabled";
        };
                clocks = <&k3_clks 48 0>, <&k3_clks 48 1>;
                clock-names = "clk_ahb", "clk_xin";
                interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+               ti,clkbuf-sel = <0x7>;
+               ti,trm-icp = <0x8>;
                ti,otap-del-sel-legacy = <0x0>;
-               ti,otap-del-sel-mmc-hs = <0x0>;
                ti,otap-del-sel-sd-hs = <0x0>;
-               ti,otap-del-sel-sdr12 = <0x0>;
-               ti,otap-del-sel-sdr25 = <0x0>;
+               ti,otap-del-sel-sdr12 = <0xf>;
+               ti,otap-del-sel-sdr25 = <0xf>;
                ti,otap-del-sel-sdr50 = <0x8>;
                ti,otap-del-sel-sdr104 = <0x7>;
                ti,otap-del-sel-ddr50 = <0x4>;
-               ti,otap-del-sel-ddr52 = <0x4>;
-               ti,otap-del-sel-hs200 = <0x7>;
-               ti,clkbuf-sel = <0x7>;
-               ti,trm-icp = <0x8>;
+               ti,itap-del-sel-legacy = <0xa>;
+               ti,itap-del-sel-sd-hs = <0x1>;
+               ti,itap-del-sel-sdr12 = <0xa>;
+               ti,itap-del-sel-sdr25 = <0x1>;
                dma-coherent;
                status = "disabled";
        };
                ranges = <0x0 0x0 0x00100000 0x1c000>;
 
                serdes0_clk: clock@4080 {
-                       compatible = "syscon";
-                       reg = <0x00004080 0x4>;
+                       compatible = "ti,am654-serdes-ctrl", "syscon";
+                       reg = <0x4080 0x4>;
+
+                       serdes0_mux: mux-controller {
+                               compatible = "mmio-mux";
+                               #mux-control-cells = <1>;
+                               mux-reg-masks = <0x0 0x3>; /* lane select */
+                       };
                };
 
                serdes1_clk: clock@4090 {
-                       compatible = "syscon";
-                       reg = <0x00004090 0x4>;
-               };
+                       compatible = "ti,am654-serdes-ctrl", "syscon";
+                       reg = <0x4090 0x4>;
 
-               serdes_mux: mux-controller {
-                       compatible = "mmio-mux";
-                       #mux-control-cells = <1>;
-                       mux-reg-masks = <0x4080 0x3>, /* SERDES0 lane select */
-                                       <0x4090 0x3>; /* SERDES1 lane select */
+                       serdes1_mux: mux-controller {
+                               compatible = "mmio-mux";
+                               #mux-control-cells = <1>;
+                               mux-reg-masks = <0x0 0x3>; /* lane select */
+                       };
                };
 
                dss_oldi_io_ctrl: dss-oldi-io-ctrl@41e0 {
index 6ff3ccc39fb448c4ca9fd642740ff77bb20b558b..8feab93176447912e85d86571d1fb42ab61f3ad3 100644 (file)
@@ -43,7 +43,6 @@
                reg = <0x00 0x40a00000 0x00 0x100>;
                interrupts = <GIC_SPI 565 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <96000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
                status = "disabled";
        };
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <2>;
-               ranges;
+               ranges = <0x0 0x47000000 0x0 0x47000000 0x0 0x100>, /* FSS Control */
+                        <0x0 0x47040000 0x0 0x47040000 0x0 0x100>, /* OSPI0 Control */
+                        <0x0 0x47050000 0x0 0x47050000 0x0 0x100>, /* OSPI1 Control */
+                        <0x5 0x00000000 0x5 0x00000000 0x1 0x0000000>, /* OSPI0 Memory */
+                        <0x7 0x00000000 0x7 0x00000000 0x1 0x0000000>; /* OSPI1 Memory */
 
                ospi0: spi@47040000 {
                        compatible = "ti,am654-ospi", "cdns,qspi-nor";
index 37527890ddeaf9a5517d037deb7d7e98696e638d..eee072e44a42f5f66423200975016447d22bdc46 100644 (file)
@@ -59,7 +59,6 @@
                reg = <0x42300000 0x100>;
                interrupts = <GIC_SPI 697 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 150 TI_SCI_PD_EXCLUSIVE>;
                status = "disabled";
        };
index 50de2a448a3a684ed9034a834cbf5084277270ac..d88651c297a22a52b499fd34f3e4d8f16e8af2fe 100644 (file)
        wkup_uart0_pins_default: wkup-uart0-default-pins {
                bootph-all;
                pinctrl-single,pins = <
-                       J721S2_WKUP_IOPAD(0x070, PIN_INPUT, 0) /* (L37) WKUP_GPIO0_6.WKUP_UART0_CTSn */
-                       J721S2_WKUP_IOPAD(0x074, PIN_INPUT, 0) /* (L36) WKUP_GPIO0_7.WKUP_UART0_RTSn */
-                       J721S2_WKUP_IOPAD(0x048, PIN_INPUT, 0) /* (K35) WKUP_UART0_RXD */
-                       J721S2_WKUP_IOPAD(0x04c, PIN_INPUT, 0) /* (K34) WKUP_UART0_TXD */
+                       J784S4_WKUP_IOPAD(0x070, PIN_INPUT, 0) /* (L37) WKUP_UART0_CTSn */
+                       J784S4_WKUP_IOPAD(0x074, PIN_OUTPUT, 0) /* (L36) WKUP_UART0_RTSn */
+                       J784S4_WKUP_IOPAD(0x048, PIN_INPUT, 0) /* (K35) WKUP_UART0_RXD */
+                       J784S4_WKUP_IOPAD(0x04c, PIN_OUTPUT, 0) /* (K34) WKUP_UART0_TXD */
                >;
        };
 
        wkup_i2c0_pins_default: wkup-i2c0-default-pins {
                bootph-all;
                pinctrl-single,pins = <
-                       J721S2_WKUP_IOPAD(0x98, PIN_INPUT, 0) /* (N33) WKUP_I2C0_SCL */
-                       J721S2_WKUP_IOPAD(0x9c, PIN_INPUT, 0) /* (N35) WKUP_I2C0_SDA */
+                       J784S4_WKUP_IOPAD(0x98, PIN_INPUT, 0) /* (N33) WKUP_I2C0_SCL */
+                       J784S4_WKUP_IOPAD(0x9c, PIN_INPUT, 0) /* (N35) WKUP_I2C0_SDA */
                >;
        };
 
index 657f9cc9f4ea017f034a3d83ac30a8b5325b9dab..9386bf3ef9f684474c817e22f0bbf657185b192d 100644 (file)
                reg = <0x00 0x02800000 0x00 0x100>;
                interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 146 2>;
                clock-names = "fclk";
                reg = <0x00 0x02810000 0x00 0x100>;
                interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 278 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 278 2>;
                clock-names = "fclk";
                reg = <0x00 0x02820000 0x00 0x100>;
                interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 279 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 279 2>;
                clock-names = "fclk";
                reg = <0x00 0x02830000 0x00 0x100>;
                interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 280 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 280 2>;
                clock-names = "fclk";
                reg = <0x00 0x02840000 0x00 0x100>;
                interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 281 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 281 2>;
                clock-names = "fclk";
                reg = <0x00 0x02850000 0x00 0x100>;
                interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 282 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 282 2>;
                clock-names = "fclk";
                reg = <0x00 0x02860000 0x00 0x100>;
                interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 283 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 283 2>;
                clock-names = "fclk";
                reg = <0x00 0x02870000 0x00 0x100>;
                interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 284 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 284 2>;
                clock-names = "fclk";
                reg = <0x00 0x02880000 0x00 0x100>;
                interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 285 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 285 2>;
                clock-names = "fclk";
                reg = <0x00 0x02890000 0x00 0x100>;
                interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 286 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 286 2>;
                clock-names = "fclk";
index 7cf21c99956e09c0cb40fc73e09853e51ef2139d..fccaabfb13482076d691e137ab3f5bce81056bb9 100644 (file)
                reg = <0x00 0x42300000 0x00 0x100>;
                interrupts = <GIC_SPI 897 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 287 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 287 2>;
                clock-names = "fclk";
                reg = <0x00 0x40a00000 0x00 0x100>;
                interrupts = <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <96000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 149 2>;
                clock-names = "fclk";
 
        fss: bus@47000000 {
                compatible = "simple-bus";
-               reg = <0x00 0x47000000 0x00 0x100>;
                #address-cells = <2>;
                #size-cells = <2>;
-               ranges;
+               ranges = <0x0 0x47000000 0x0 0x47000000 0x0 0x100>, /* FSS Control */
+                        <0x0 0x47034000 0x0 0x47040000 0x0 0x100>, /* HBMC Control */
+                        <0x0 0x47040000 0x0 0x47040000 0x0 0x100>, /* OSPI0 Control */
+                        <0x5 0x00000000 0x5 0x00000000 0x1 0x0000000>; /* HBMC/OSPI0 Memory */
 
                hbmc_mux: mux-controller@47000004 {
                        compatible = "reg-mux";
index c7eafbc862f96e58b009c7492d05b916797e7d49..0da785be80ff476a89ff5108db566c0f7099a6dc 100644 (file)
                reg = <0x00 0x02800000 0x00 0x100>;
                interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 146 0>;
                clock-names = "fclk";
                reg = <0x00 0x02810000 0x00 0x100>;
                interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 278 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 278 0>;
                clock-names = "fclk";
                reg = <0x00 0x02820000 0x00 0x100>;
                interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 279 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 279 0>;
                clock-names = "fclk";
                reg = <0x00 0x02830000 0x00 0x100>;
                interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 280 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 280 0>;
                clock-names = "fclk";
                reg = <0x00 0x02840000 0x00 0x100>;
                interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 281 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 281 0>;
                clock-names = "fclk";
                reg = <0x00 0x02850000 0x00 0x100>;
                interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 282 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 282 0>;
                clock-names = "fclk";
                reg = <0x00 0x02860000 0x00 0x100>;
                interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 283 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 283 0>;
                clock-names = "fclk";
                reg = <0x00 0x02870000 0x00 0x100>;
                interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 284 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 284 0>;
                clock-names = "fclk";
                reg = <0x00 0x02880000 0x00 0x100>;
                interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 285 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 285 0>;
                clock-names = "fclk";
                reg = <0x00 0x02890000 0x00 0x100>;
                interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 286 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 286 0>;
                clock-names = "fclk";
index 4618b697fbc47c460f2739ea913247c41dfc9477..9349ae07c046e6acfa8843e325bd12fdb7ce6a75 100644 (file)
                reg = <0x00 0x42300000 0x00 0x100>;
                interrupts = <GIC_SPI 897 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 287 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 287 0>;
                clock-names = "fclk";
                reg = <0x00 0x40a00000 0x00 0x100>;
                interrupts = <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <96000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 149 0>;
                clock-names = "fclk";
 
        fss: bus@47000000 {
                compatible = "simple-bus";
-               reg = <0x0 0x47000000 0x0 0x100>;
                #address-cells = <2>;
                #size-cells = <2>;
-               ranges;
+               ranges = <0x0 0x47000000 0x0 0x47000000 0x0 0x100>, /* FSS Control */
+                        <0x0 0x47034000 0x0 0x47034000 0x0 0x100>, /* HBMC Control */
+                        <0x0 0x47040000 0x0 0x47040000 0x0 0x100>, /* OSPI0 Control */
+                        <0x0 0x47050000 0x0 0x47050000 0x0 0x100>, /* OSPI1 Control */
+                        <0x5 0x00000000 0x5 0x00000000 0x1 0x0000000>, /* HBMC/OSPI0 Memory */
+                        <0x7 0x00000000 0x7 0x00000000 0x1 0x0000000>; /* OSPI1 Memory */
 
                hbmc_mux: mux-controller@47000004 {
                        compatible = "reg-mux";
index b70c8615e3c15efa172af62b072420de16333a1b..9ed6949b40e9dfafdaf6861944b0b128b053a44f 100644 (file)
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02800000 0x00 0x200>;
                interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 146 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02810000 0x00 0x200>;
                interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 350 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 350 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02820000 0x00 0x200>;
                interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 351 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 351 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02830000 0x00 0x200>;
                interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 352 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 352 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02840000 0x00 0x200>;
                interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 353 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 353 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02850000 0x00 0x200>;
                interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 354 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 354 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02860000 0x00 0x200>;
                interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 355 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 355 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02870000 0x00 0x200>;
                interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 356 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 356 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02880000 0x00 0x200>;
                interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 357 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 357 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02890000 0x00 0x200>;
                interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 358 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 358 TI_SCI_PD_EXCLUSIVE>;
                ti,clkbuf-sel = <0x7>;
                ti,trm-icp = <0x8>;
                dma-coherent;
-               /* Masking support for SDR104 capability */
-               sdhci-caps-mask = <0x00000003 0x00000000>;
                status = "disabled";
        };
 
index eaf7f709440e6e19f85dcb64324613bb09821aab..5ccb04c7c4624efff9e512fb87b90440a77de863 100644 (file)
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x42300000 0x00 0x200>;
                interrupts = <GIC_SPI 897 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 359 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 359 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x40a00000 0x00 0x200>;
                interrupts = <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 149 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
index be4502fe1c9d99c9e99e4f425652bb690be7d411..568e6a04619d82abf073a13ebf1cb57987227894 100644 (file)
                #size-cells = <2>;
                ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
                         <0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */
+                        <0x00 0x00700000 0x00 0x00700000 0x00 0x00001000>, /* ESM */
                         <0x00 0x01000000 0x00 0x01000000 0x00 0x0d000000>, /* Most peripherals */
                         <0x00 0x0d800000 0x00 0x0d800000 0x00 0x00800000>, /* PCIe Core*/
                         <0x00 0x18000000 0x00 0x18000000 0x00 0x08000000>, /* PCIe1 DAT0 */
index cee3a8661d5e3c82e932590f78546a10227c5603..bf3c246d13d1f5fc09f72427a2aa84fdf0ef16c1 100644 (file)
 &cpsw_port1 {
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy0>;
-};
-
-&cpsw_port2 {
-       status = "disabled";
+       status = "okay";
 };
 
 &main_gpio1 {
 
 };
 
+&sdhci0 {
+       disable-wp;
+       bootph-all;
+       ti,driver-strength-ohm = <50>;
+       status = "okay";
+};
+
 &sdhci1 {
        /* SD/MMC */
        vmmc-supply = <&vdd_mmc1>;
        pinctrl-0 = <&main_mmc1_pins_default>;
        ti,driver-strength-ohm = <50>;
        disable-wp;
-       no-1-8-v;
        status = "okay";
        bootph-all;
 };
index 81fd7afac8c577a632175c206fe008ee393fad6e..d511b25d62e37024813f78c6cbac66407d0e398c 100644 (file)
        wkup_uart0_pins_default: wkup-uart0-default-pins {
                bootph-all;
                pinctrl-single,pins = <
-                       J721S2_WKUP_IOPAD(0x048, PIN_INPUT, 0) /* (K35) WKUP_UART0_RXD */
-                       J721S2_WKUP_IOPAD(0x04c, PIN_INPUT, 0) /* (K34) WKUP_UART0_TXD */
+                       J784S4_WKUP_IOPAD(0x048, PIN_INPUT, 0) /* (K35) WKUP_UART0_RXD */
+                       J784S4_WKUP_IOPAD(0x04c, PIN_OUTPUT, 0) /* (K34) WKUP_UART0_TXD */
                >;
        };
 
        wkup_i2c0_pins_default: wkup-i2c0-default-pins {
                bootph-all;
                pinctrl-single,pins = <
-                       J721S2_WKUP_IOPAD(0x98, PIN_INPUT, 0) /* (N33) WKUP_I2C0_SCL */
-                       J721S2_WKUP_IOPAD(0x9c, PIN_INPUT, 0) /* (N35) WKUP_I2C0_SDA */
+                       J784S4_WKUP_IOPAD(0x98, PIN_INPUT, 0) /* (N33) WKUP_I2C0_SCL */
+                       J784S4_WKUP_IOPAD(0x9c, PIN_INPUT, 0) /* (N35) WKUP_I2C0_SDA */
                >;
        };
 
index b67c37460a73d8033107ded849b3b445e49d7d35..6a4554c6c9c1305127e894cc150bbe3a465ba5d0 100644 (file)
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02800000 0x00 0x200>;
                interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 146 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02810000 0x00 0x200>;
                interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 388 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 388 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02820000 0x00 0x200>;
                interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 389 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 389 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02830000 0x00 0x200>;
                interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 390 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 390 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02840000 0x00 0x200>;
                interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 391 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 391 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02850000 0x00 0x200>;
                interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 392 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 392 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02860000 0x00 0x200>;
                interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 393 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 393 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02870000 0x00 0x200>;
                interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 394 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 394 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02880000 0x00 0x200>;
                interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 395 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 395 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02890000 0x00 0x200>;
                interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 396 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 396 TI_SCI_PD_EXCLUSIVE>;
                ti,clkbuf-sel = <0x7>;
                ti,trm-icp = <0x8>;
                dma-coherent;
-               sdhci-caps-mask = <0x00000003 0x00000000>;
-               no-1-8-v;
                status = "disabled";
        };
 
index 77a8d99139ec15677c0cfc2cb6d4e919f489af00..2e18d91ae92f8e63ef651bb3e0d4757162457a88 100644 (file)
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x42300000 0x00 0x200>;
                interrupts = <GIC_SPI 897 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 397 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 397 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x40a00000 0x00 0x200>;
                interrupts = <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 149 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
 
        fss: bus@47000000 {
                compatible = "simple-bus";
-               reg = <0x00 0x47000000 0x00 0x100>;
                #address-cells = <2>;
                #size-cells = <2>;
-               ranges;
+               ranges = <0x0 0x47000000 0x0 0x47000000 0x0 0x100>, /* FSS Control */
+                        <0x0 0x47040000 0x0 0x47040000 0x0 0x100>, /* OSPI0 Control */
+                        <0x0 0x47050000 0x0 0x47050000 0x0 0x100>, /* OSPI1 Control */
+                        <0x5 0x00000000 0x5 0x00000000 0x1 0x0000000>, /* OSPI0 Memory */
+                        <0x7 0x00000000 0x7 0x00000000 0x1 0x0000000>; /* OSPI1 Memory */
 
                ospi0: spi@47040000 {
                        compatible = "ti,am654-ospi", "cdns,qspi-nor";
index 6e2e92ffe7452b8a8ed1c1ece3b451a6360dceec..da7368ed6b521dfd64241234837345e3555f2b67 100644 (file)
                #size-cells = <2>;
                ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
                         <0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */
+                        <0x00 0x00700000 0x00 0x00700000 0x00 0x00001000>, /* ESM */
                         <0x00 0x01000000 0x00 0x01000000 0x00 0x0d000000>, /* Most peripherals */
                         <0x00 0x04210000 0x00 0x04210000 0x00 0x00010000>, /* VPU0 */
                         <0x00 0x04220000 0x00 0x04220000 0x00 0x00010000>, /* VPU1 */
index 25d20d8032305d1f922c3cbb28b9705bcd4b1e57..d99830c9b85f9df1097ba1de819c0565a67454bd 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupt-parent = <&gic>;
                interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
                        reg = <0x0 0xff000000 0x0 0x1000>;
                        clock-names = "uart_clk", "pclk";
                        power-domains = <&zynqmp_firmware PD_UART_0>;
+                       resets = <&zynqmp_reset ZYNQMP_RESET_UART0>;
                };
 
                uart1: serial@ff010000 {
                        reg = <0x0 0xff010000 0x0 0x1000>;
                        clock-names = "uart_clk", "pclk";
                        power-domains = <&zynqmp_firmware PD_UART_1>;
+                       resets = <&zynqmp_reset ZYNQMP_RESET_UART1>;
                };
 
                usb0: usb@ff9d0000 {
index 8aefb0c126722980a345062cae02a6127c02b52e..a34734a6c3ce802f0b735c2689212a459a6372f2 100644 (file)
 &gmac0 {
        status = "okay";
 
-       phy-mode = "rgmii";
+       phy-mode = "rgmii-id";
        bus_id = <0x0>;
 };
 
 &gmac1 {
        status = "okay";
 
-       phy-mode = "rgmii";
+       phy-mode = "rgmii-id";
        bus_id = <0x1>;
 };
 
index 444779c21034b5aecd2faa6129ff3dd0dd670fe1..3b38ff8853a7d935d5d8cd42118fa08fda6529b0 100644 (file)
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/clock/loongson,ls2k-clk.h>
 
 / {
        #address-cells = <2>;
                        compatible = "loongson,la264";
                        device_type = "cpu";
                        reg = <0x0>;
-                       clocks = <&cpu_clk>;
+                       clocks = <&clk LOONGSON2_NODE_CLK>;
                };
        };
 
-       cpu_clk: cpu-clk {
+       ref_100m: clock-ref-100m {
                compatible = "fixed-clock";
                #clock-cells = <0>;
-               clock-frequency = <500000000>;
+               clock-frequency = <100000000>;
+               clock-output-names = "ref_100m";
        };
 
        cpuintc: interrupt-controller {
                interrupt-controller;
        };
 
+       thermal-zones {
+               cpu-thermal {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <5000>;
+                       thermal-sensors = <&tsensor 0>;
+
+                       trips {
+                               cpu-alert {
+                                       temperature = <33000>;
+                                       hysteresis = <2000>;
+                                       type = "active";
+                               };
+
+                               cpu-crit {
+                                       temperature = <85000>;
+                                       hysteresis = <5000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        bus@10000000 {
                compatible = "simple-bus";
                ranges = <0x0 0x10000000 0x0 0x10000000 0x0 0x10000000>,
                        ranges = <1 0x0 0x0 0x16400000 0x4000>;
                };
 
+               clk: clock-controller@1fe10400 {
+                       compatible = "loongson,ls2k0500-clk";
+                       reg = <0x0 0x1fe10400 0x0 0x2c>;
+                       #clock-cells = <1>;
+                       clocks = <&ref_100m>;
+                       clock-names = "ref_100m";
+               };
+
+               dma-controller@1fe10c00 {
+                       compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
+                       reg = <0 0x1fe10c00 0 0x8>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <67>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #dma-cells = <1>;
+                       status = "disabled";
+               };
+
+               dma-controller@1fe10c10 {
+                       compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
+                       reg = <0 0x1fe10c10 0 0x8>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <68>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #dma-cells = <1>;
+                       status = "disabled";
+               };
+
+               dma-controller@1fe10c20 {
+                       compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
+                       reg = <0 0x1fe10c20 0 0x8>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <69>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #dma-cells = <1>;
+                       status = "disabled";
+               };
+
+               dma-controller@1fe10c30 {
+                       compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
+                       reg = <0 0x1fe10c30 0 0x8>;
+                       interrupt-parent = <&eiointc>;
+                       interrupts = <70>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #dma-cells = <1>;
+                       status = "disabled";
+               };
+
                liointc0: interrupt-controller@1fe11400 {
                        compatible = "loongson,liointc-2.0";
                        reg = <0x0 0x1fe11400 0x0 0x40>,
                        status = "disabled";
                };
 
+               tsensor: thermal-sensor@1fe11500 {
+                       compatible = "loongson,ls2k0500-thermal", "loongson,ls2k1000-thermal";
+                       reg = <0x0 0x1fe11500 0x0 0x30>;
+                       interrupt-parent = <&liointc0>;
+                       interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
+                       #thermal-sensor-cells = <1>;
+               };
+
                uart0: serial@1ff40800 {
                        compatible = "ns16550a";
                        reg = <0x0 0x1ff40800 0x0 0x10>;
index ed4d324340411dee9b88e52720329cf839307ad0..23cf26cc3e5f19703220bd20a8e12e1e61a1e941 100644 (file)
@@ -43,7 +43,7 @@
 &gmac0 {
        status = "okay";
 
-       phy-mode = "rgmii";
+       phy-mode = "rgmii-id";
        phy-handle = <&phy0>;
        mdio {
                compatible = "snps,dwmac-mdio";
@@ -58,7 +58,7 @@
 &gmac1 {
        status = "okay";
 
-       phy-mode = "rgmii";
+       phy-mode = "rgmii-id";
        phy-handle = <&phy1>;
        mdio {
                compatible = "snps,dwmac-mdio";
        status = "okay";
 };
 
-&clk {
-       status = "okay";
-};
-
 &rtc0 {
        status = "okay";
 };
index b6aeb1f70e2a038ac2eb3bfe6c402bd37b4dcd6a..92180140eb56e4494cae018530b94a4a09d99e0f 100644 (file)
                        #clock-cells = <1>;
                        clocks = <&ref_100m>;
                        clock-names = "ref_100m";
-                       status = "disabled";
                };
 
                gpio0: gpio@1fe00500 {
index 74b99bd234cc38df9a087915280e86ddb5bd56d4..ea9e6985d0e9fca980eaad34ca4089b6164ad447 100644 (file)
@@ -92,7 +92,7 @@
 &gmac2 {
        status = "okay";
 
-       phy-mode = "rgmii";
+       phy-mode = "rgmii-id";
        phy-handle = <&phy2>;
        mdio {
                compatible = "snps,dwmac-mdio";
index 9eab2d02cbe8bff12a26ce11dd7ac1543b7c1f82..0953c57078256d67992b3e2c75efd6cf2536d8ad 100644 (file)
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/clock/loongson,ls2k-clk.h>
 
 / {
        #address-cells = <2>;
                        compatible = "loongson,la364";
                        device_type = "cpu";
                        reg = <0x0>;
-                       clocks = <&cpu_clk>;
+                       clocks = <&clk LOONGSON2_NODE_CLK>;
                };
 
                cpu1: cpu@2 {
                        compatible = "loongson,la364";
                        device_type = "cpu";
                        reg = <0x1>;
-                       clocks = <&cpu_clk>;
+                       clocks = <&clk LOONGSON2_NODE_CLK>;
                };
        };
 
-       cpu_clk: cpu-clk {
+       ref_100m: clock-ref-100m {
                compatible = "fixed-clock";
                #clock-cells = <0>;
-               clock-frequency = <1400000000>;
+               clock-frequency = <100000000>;
+               clock-output-names = "ref_100m";
        };
 
        cpuintc: interrupt-controller {
                interrupt-controller;
        };
 
+       thermal-zones {
+               cpu-thermal {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <5000>;
+                       thermal-sensors = <&tsensor 0>;
+
+                       trips {
+                               cpu-alert {
+                                       temperature = <40000>;
+                                       hysteresis = <2000>;
+                                       type = "active";
+                               };
+
+                               cpu-crit {
+                                       temperature = <85000>;
+                                       hysteresis = <5000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        bus@10000000 {
                compatible = "simple-bus";
                ranges = <0x0 0x10000000 0x0 0x10000000 0x0 0x10000000>,
                        ranges = <1 0x0 0x0 0x18400000 0x4000>;
                };
 
+               clk: clock-controller@10010480 {
+                       compatible = "loongson,ls2k2000-clk";
+                       reg = <0x0 0x10010480 0x0 0x100>;
+                       #clock-cells = <1>;
+                       clocks = <&ref_100m>;
+                       clock-names = "ref_100m";
+               };
+
                pmc: power-management@100d0000 {
                        compatible = "loongson,ls2k2000-pmc", "loongson,ls2k0500-pmc", "syscon";
                        reg = <0x0 0x100d0000 0x0 0x58>;
                        };
                };
 
+               tsensor: thermal-sensor@1fe01460 {
+                       compatible = "loongson,ls2k2000-thermal";
+                       reg = <0x0 0x1fe01460 0x0 0x30>,
+                             <0x0 0x1fe0019c 0x0 0x4>;
+                       interrupt-parent = <&liointc>;
+                       interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
+                       #thermal-sensor-cells = <1>;
+               };
+
                liointc: interrupt-controller@1fe01400 {
                        compatible = "loongson,liointc-1.0";
                        reg = <0x0 0x1fe01400 0x0 0x64>;
index 6e95e6f19a6a86da90c794a766ba08b359ce1537..0704eab4a80bad9266a7d009a60aa3c28d92cf6e 100644 (file)
 #include <dt-bindings/reset/mt7621-reset.h>
 
 / {
+       compatible = "mediatek,mt7621-soc";
+
        #address-cells = <1>;
        #size-cells = <1>;
-       compatible = "mediatek,mt7621-soc";
 
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
 
                cpu@0 {
-                       device_type = "cpu";
                        compatible = "mips,mips1004Kc";
                        reg = <0>;
+                       device_type = "cpu";
                };
 
                cpu@1 {
-                       device_type = "cpu";
                        compatible = "mips,mips1004Kc";
                        reg = <1>;
+                       device_type = "cpu";
                };
        };
 
        cpuintc: cpuintc {
+               compatible = "mti,cpu-interrupt-controller";
+
                #address-cells = <0>;
                #interrupt-cells = <1>;
+
                interrupt-controller;
-               compatible = "mti,cpu-interrupt-controller";
        };
 
        mmc_fixed_3v3: regulator-3v3 {
                compatible = "regulator-fixed";
-               regulator-name = "mmc_power";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
+
                enable-active-high;
+
                regulator-always-on;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "mmc_power";
        };
 
        mmc_fixed_1v8_io: regulator-1v8 {
                compatible = "regulator-fixed";
-               regulator-name = "mmc_io";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
+
                enable-active-high;
+
                regulator-always-on;
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               regulator-name = "mmc_io";
+       };
+
+       pinctrl: pinctrl {
+               compatible = "ralink,mt7621-pinctrl";
+
+               i2c_pins: i2c0-pins {
+                       pinmux {
+                               groups = "i2c";
+                               function = "i2c";
+                       };
+               };
+
+               mdio_pins: mdio0-pins {
+                       pinmux {
+                               groups = "mdio";
+                               function = "mdio";
+                       };
+               };
+
+               nand_pins: nand0-pins {
+                       sdhci-pinmux {
+                               groups = "sdhci";
+                               function = "nand2";
+                       };
+
+                       spi-pinmux {
+                               groups = "spi";
+                               function = "nand1";
+                       };
+               };
+
+               pcie_pins: pcie0-pins {
+                       pinmux {
+                               groups = "pcie";
+                               function = "gpio";
+                       };
+               };
+
+               rgmii1_pins: rgmii1-pins {
+                       pinmux {
+                               groups = "rgmii1";
+                               function = "rgmii1";
+                       };
+               };
+
+               rgmii2_pins: rgmii2-pins {
+                       pinmux {
+                               groups = "rgmii2";
+                               function = "rgmii2";
+                       };
+               };
+
+               sdhci_pins: sdhci0-pins {
+                       pinmux {
+                               groups = "sdhci";
+                               function = "sdhci";
+                       };
+               };
+
+               spi_pins: spi0-pins {
+                       pinmux {
+                               groups = "spi";
+                               function = "spi";
+                       };
+               };
+
+               uart1_pins: uart1-pins {
+                       pinmux {
+                               groups = "uart1";
+                               function = "uart1";
+                       };
+               };
+
+               uart2_pins: uart2-pins {
+                       pinmux {
+                               groups = "uart2";
+                               function = "uart2";
+                       };
+               };
+
+               uart3_pins: uart3-pins {
+                       pinmux {
+                               groups = "uart3";
+                               function = "uart3";
+                       };
+               };
        };
 
        palmbus: palmbus@1e000000 {
                sysc: syscon@0 {
                        compatible = "mediatek,mt7621-sysc", "syscon";
                        reg = <0x0 0x100>;
+
                        #clock-cells = <1>;
                        #reset-cells = <1>;
-                       ralink,memctl = <&memc>;
+
                        clock-output-names = "xtal", "cpu", "bus",
                                             "50m", "125m", "150m",
                                             "250m", "270m";
+
+                       ralink,memctl = <&memc>;
                };
 
                wdt: watchdog@100 {
                };
 
                gpio: gpio@600 {
+                       compatible = "mediatek,mt7621-gpio";
+                       reg = <0x600 0x100>;
+
                        #gpio-cells = <2>;
                        #interrupt-cells = <2>;
-                       compatible = "mediatek,mt7621-gpio";
+
                        gpio-controller;
                        gpio-ranges = <&pinctrl 0 0 95>;
+
                        interrupt-controller;
-                       reg = <0x600 0x100>;
                        interrupt-parent = <&gic>;
                        interrupts = <GIC_SHARED 12 IRQ_TYPE_LEVEL_HIGH>;
                };
                        compatible = "mediatek,mt7621-i2c";
                        reg = <0x900 0x100>;
 
-                       clocks = <&sysc MT7621_CLK_I2C>;
-                       clock-names = "i2c";
-                       resets = <&sysc MT7621_RST_I2C>;
-                       reset-names = "i2c";
-
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       status = "disabled";
+                       clocks = <&sysc MT7621_CLK_I2C>;
+                       clock-names = "i2c";
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&i2c_pins>;
+
+                       resets = <&sysc MT7621_RST_I2C>;
+                       reset-names = "i2c";
+
+                       status = "disabled";
                };
 
                memc: memory-controller@5000 {
                };
 
                spi0: spi@b00 {
-                       status = "disabled";
-
                        compatible = "ralink,mt7621-spi";
                        reg = <0xb00 0x100>;
 
-                       clocks = <&sysc MT7621_CLK_SPI>;
-                       clock-names = "spi";
-
-                       resets = <&sysc MT7621_RST_SPI>;
-                       reset-names = "spi";
-
                        #address-cells = <1>;
                        #size-cells = <0>;
 
+                       clock-names = "spi";
+                       clocks = <&sysc MT7621_CLK_SPI>;
+
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi_pins>;
-               };
-       };
-
-       pinctrl: pinctrl {
-               compatible = "ralink,mt7621-pinctrl";
-
-               i2c_pins: i2c0-pins {
-                       pinmux {
-                               groups = "i2c";
-                               function = "i2c";
-                       };
-               };
-
-               spi_pins: spi0-pins {
-                       pinmux {
-                               groups = "spi";
-                               function = "spi";
-                       };
-               };
-
-               uart1_pins: uart1-pins {
-                       pinmux {
-                               groups = "uart1";
-                               function = "uart1";
-                       };
-               };
-
-               uart2_pins: uart2-pins {
-                       pinmux {
-                               groups = "uart2";
-                               function = "uart2";
-                       };
-               };
-
-               uart3_pins: uart3-pins {
-                       pinmux {
-                               groups = "uart3";
-                               function = "uart3";
-                       };
-               };
-
-               rgmii1_pins: rgmii1-pins {
-                       pinmux {
-                               groups = "rgmii1";
-                               function = "rgmii1";
-                       };
-               };
-
-               rgmii2_pins: rgmii2-pins {
-                       pinmux {
-                               groups = "rgmii2";
-                               function = "rgmii2";
-                       };
-               };
-
-               mdio_pins: mdio0-pins {
-                       pinmux {
-                               groups = "mdio";
-                               function = "mdio";
-                       };
-               };
-
-               pcie_pins: pcie0-pins {
-                       pinmux {
-                               groups = "pcie";
-                               function = "gpio";
-                       };
-               };
-
-               nand_pins: nand0-pins {
-                       spi-pinmux {
-                               groups = "spi";
-                               function = "nand1";
-                       };
 
-                       sdhci-pinmux {
-                               groups = "sdhci";
-                               function = "nand2";
-                       };
-               };
+                       reset-names = "spi";
+                       resets = <&sysc MT7621_RST_SPI>;
 
-               sdhci_pins: sdhci0-pins {
-                       pinmux {
-                               groups = "sdhci";
-                               function = "sdhci";
-                       };
+                       status = "disabled";
                };
        };
 
        mmc: mmc@1e130000 {
-               status = "disabled";
-
                compatible = "mediatek,mt7620-mmc";
                reg = <0x1e130000 0x4000>;
 
                bus-width = <4>;
-               max-frequency = <48000000>;
-               cap-sd-highspeed;
-               cap-mmc-highspeed;
-               vmmc-supply = <&mmc_fixed_3v3>;
-               vqmmc-supply = <&mmc_fixed_1v8_io>;
-               disable-wp;
 
-               pinctrl-names = "default", "state_uhs";
-               pinctrl-0 = <&sdhci_pins>;
-               pinctrl-1 = <&sdhci_pins>;
+               cap-mmc-highspeed;
+               cap-sd-highspeed;
 
                clocks = <&sysc MT7621_CLK_SHXC>,
                         <&sysc MT7621_CLK_50M>;
                clock-names = "source", "hclk";
 
+               disable-wp;
+
                interrupt-parent = <&gic>;
                interrupts = <GIC_SHARED 20 IRQ_TYPE_LEVEL_HIGH>;
+
+               max-frequency = <48000000>;
+
+               pinctrl-names = "default", "state_uhs";
+               pinctrl-0 = <&sdhci_pins>;
+               pinctrl-1 = <&sdhci_pins>;
+
+               vmmc-supply = <&mmc_fixed_3v3>;
+               vqmmc-supply = <&mmc_fixed_1v8_io>;
+
+               status = "disabled";
        };
 
        usb: usb@1e1c0000 {
                compatible = "mti,gic";
                reg = <0x1fbc0000 0x2000>;
 
-               interrupt-controller;
                #interrupt-cells = <3>;
+               interrupt-controller;
 
                mti,reserved-cpu-vectors = <7>;
 
                timer {
                        compatible = "mti,gic-timer";
-                       interrupts = <GIC_LOCAL 1 IRQ_TYPE_NONE>;
                        clocks = <&sysc MT7621_CLK_CPU>;
+                       interrupts = <GIC_LOCAL 1 IRQ_TYPE_NONE>;
                };
        };
 
                compatible = "mediatek,mt7621-eth";
                reg = <0x1e100000 0x10000>;
 
-               clocks = <&sysc MT7621_CLK_FE>, <&sysc MT7621_CLK_ETH>;
-               clock-names = "fe", "ethif";
-
                #address-cells = <1>;
                #size-cells = <0>;
 
-               resets = <&sysc MT7621_RST_FE>, <&sysc MT7621_RST_ETH>;
-               reset-names = "fe", "eth";
+               clock-names = "fe", "ethif";
+               clocks = <&sysc MT7621_CLK_FE>, <&sysc MT7621_CLK_ETH>;
 
                interrupt-parent = <&gic>;
                interrupts = <GIC_SHARED 3 IRQ_TYPE_LEVEL_HIGH>;
 
-               mediatek,ethsys = <&sysc>;
-
                pinctrl-names = "default";
                pinctrl-0 = <&mdio_pins>, <&rgmii1_pins>, <&rgmii2_pins>;
 
-               gmac0: mac@0 {
-                       compatible = "mediatek,eth-mac";
-                       reg = <0>;
-                       phy-mode = "trgmii";
-
-                       fixed-link {
-                               speed = <1000>;
-                               full-duplex;
-                               pause;
-                       };
-               };
-
-               gmac1: mac@1 {
-                       compatible = "mediatek,eth-mac";
-                       reg = <1>;
-                       phy-mode = "rgmii";
+               reset-names = "fe", "eth";
+               resets = <&sysc MT7621_RST_FE>, <&sysc MT7621_RST_ETH>;
 
-                       fixed-link {
-                               speed = <1000>;
-                               full-duplex;
-                               pause;
-                       };
-               };
+               mediatek,ethsys = <&sysc>;
 
                mdio: mdio-bus {
                        #address-cells = <1>;
                        switch0: switch@1f {
                                compatible = "mediatek,mt7621";
                                reg = <0x1f>;
-                               mediatek,mcm;
-                               resets = <&sysc MT7621_RST_MCM>;
-                               reset-names = "mcm";
-                               interrupt-controller;
+
                                #interrupt-cells = <1>;
+                               interrupt-controller;
                                interrupts = <GIC_SHARED 23 IRQ_TYPE_LEVEL_HIGH>;
 
+                               reset-names = "mcm";
+                               resets = <&sysc MT7621_RST_MCM>;
+
+                               mediatek,mcm;
+
                                ports {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
                                        port@0 {
-                                               status = "disabled";
                                                reg = <0>;
                                                label = "swp0";
+                                               status = "disabled";
                                        };
 
                                        port@1 {
-                                               status = "disabled";
                                                reg = <1>;
                                                label = "swp1";
+                                               status = "disabled";
                                        };
 
                                        port@2 {
-                                               status = "disabled";
                                                reg = <2>;
                                                label = "swp2";
+                                               status = "disabled";
                                        };
 
                                        port@3 {
-                                               status = "disabled";
                                                reg = <3>;
                                                label = "swp3";
+                                               status = "disabled";
                                        };
 
                                        port@4 {
-                                               status = "disabled";
                                                reg = <4>;
                                                label = "swp4";
+                                               status = "disabled";
                                        };
 
                                        port@5 {
                                                reg = <5>;
+
                                                ethernet = <&gmac1>;
                                                phy-mode = "rgmii";
 
                                                fixed-link {
-                                                       speed = <1000>;
                                                        full-duplex;
                                                        pause;
+                                                       speed = <1000>;
                                                };
                                        };
 
                                        port@6 {
                                                reg = <6>;
+
                                                ethernet = <&gmac0>;
                                                phy-mode = "trgmii";
 
                                                fixed-link {
-                                                       speed = <1000>;
                                                        full-duplex;
                                                        pause;
+                                                       speed = <1000>;
                                                };
                                        };
                                };
                        };
                };
+
+               gmac0: mac@0 {
+                       compatible = "mediatek,eth-mac";
+                       reg = <0>;
+
+                       phy-mode = "trgmii";
+
+                       fixed-link {
+                               full-duplex;
+                               pause;
+                               speed = <1000>;
+                       };
+               };
+
+               gmac1: mac@1 {
+                       compatible = "mediatek,eth-mac";
+                       reg = <1>;
+
+                       phy-mode = "rgmii";
+
+                       fixed-link {
+                               full-duplex;
+                               pause;
+                               speed = <1000>;
+                       };
+               };
+
        };
 
        pcie: pcie@1e140000 {
                      <0x1e142000 0x100>, /* pcie port 0 RC control registers */
                      <0x1e143000 0x100>, /* pcie port 1 RC control registers */
                      <0x1e144000 0x100>; /* pcie port 2 RC control registers */
+               ranges = <0x02000000 0 0x60000000 0x60000000 0 0x10000000>, /* pci memory */
+                        <0x01000000 0 0x00000000 0x1e160000 0 0x00010000>; /* io space */
+
                #address-cells = <3>;
+               #interrupt-cells = <1>;
                #size-cells = <2>;
 
-               pinctrl-names = "default";
-               pinctrl-0 = <&pcie_pins>;
-
                device_type = "pci";
 
-               ranges = <0x02000000 0 0x60000000 0x60000000 0 0x10000000>, /* pci memory */
-                        <0x01000000 0 0x00000000 0x1e160000 0 0x00010000>; /* io space */
-
-               #interrupt-cells = <1>;
-               interrupt-map-mask = <0xF800 0 0 0>;
-               interrupt-map = <0x0000 0 0 0 &gic GIC_SHARED 4 IRQ_TYPE_LEVEL_HIGH>,
+               interrupt-map-mask = <0xf800 0 0 0>;
+               interrupt-map = <0x0000 0 0 0 &gic GIC_SHARED  4 IRQ_TYPE_LEVEL_HIGH>,
                                <0x0800 0 0 0 &gic GIC_SHARED 24 IRQ_TYPE_LEVEL_HIGH>,
                                <0x1000 0 0 0 &gic GIC_SHARED 25 IRQ_TYPE_LEVEL_HIGH>;
 
-               status = "disabled";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie_pins>;
 
                reset-gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
 
+               status = "disabled";
+
                pcie@0,0 {
                        reg = <0x0000 0 0 0 0>;
+                       ranges;
+
                        #address-cells = <3>;
+                       #interrupt-cells = <1>;
                        #size-cells = <2>;
+
+                       clocks = <&sysc MT7621_CLK_PCIE0>;
+
                        device_type = "pci";
-                       #interrupt-cells = <1>;
+
                        interrupt-map-mask = <0 0 0 0>;
                        interrupt-map = <0 0 0 0 &gic GIC_SHARED 4 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&sysc MT7621_RST_PCIE0>;
-                       clocks = <&sysc MT7621_CLK_PCIE0>;
-                       phys = <&pcie0_phy 1>;
+
                        phy-names = "pcie-phy0";
-                       ranges;
+                       phys = <&pcie0_phy 1>;
+
+                       resets = <&sysc MT7621_RST_PCIE0>;
                };
 
                pcie@1,0 {
                        reg = <0x0800 0 0 0 0>;
+                       ranges;
+
                        #address-cells = <3>;
+                       #interrupt-cells = <1>;
                        #size-cells = <2>;
+
+                       clocks = <&sysc MT7621_CLK_PCIE1>;
+
                        device_type = "pci";
-                       #interrupt-cells = <1>;
+
                        interrupt-map-mask = <0 0 0 0>;
                        interrupt-map = <0 0 0 0 &gic GIC_SHARED 24 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&sysc MT7621_RST_PCIE1>;
-                       clocks = <&sysc MT7621_CLK_PCIE1>;
-                       phys = <&pcie0_phy 1>;
+
                        phy-names = "pcie-phy1";
-                       ranges;
+                       phys = <&pcie0_phy 1>;
+
+                       resets = <&sysc MT7621_RST_PCIE1>;
                };
 
                pcie@2,0 {
                        reg = <0x1000 0 0 0 0>;
+                       ranges;
+
                        #address-cells = <3>;
+                       #interrupt-cells = <1>;
                        #size-cells = <2>;
+
+                       clocks = <&sysc MT7621_CLK_PCIE2>;
+
                        device_type = "pci";
-                       #interrupt-cells = <1>;
+
                        interrupt-map-mask = <0 0 0 0>;
                        interrupt-map = <0 0 0 0 &gic GIC_SHARED 25 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&sysc MT7621_RST_PCIE2>;
-                       clocks = <&sysc MT7621_CLK_PCIE2>;
-                       phys = <&pcie2_phy 0>;
+
                        phy-names = "pcie-phy2";
-                       ranges;
+                       phys = <&pcie2_phy 0>;
+
+                       resets = <&sysc MT7621_RST_PCIE2>;
                };
        };
 
        pcie0_phy: pcie-phy@1e149000 {
                compatible = "mediatek,mt7621-pci-phy";
                reg = <0x1e149000 0x0700>;
-               clocks = <&sysc MT7621_CLK_XTAL>;
+
                #phy-cells = <1>;
+
+               clocks = <&sysc MT7621_CLK_XTAL>;
        };
 
        pcie2_phy: pcie-phy@1e14a000 {
                compatible = "mediatek,mt7621-pci-phy";
                reg = <0x1e14a000 0x0700>;
-               clocks = <&sysc MT7621_CLK_XTAL>;
+
                #phy-cells = <1>;
+
+               clocks = <&sysc MT7621_CLK_XTAL>;
        };
 };
index deb52e41ab84b2b9d5ce0a35261f02d5f74ce5ef..5fedda8113783a94907022572d9b560814537c0e 100644 (file)
                                reg = <0xef602800 0x60>;
                                interrupt-parent = <&UIC0>;
                                interrupts = <0x4 0x4>;
-                               /* This thing is a bit weird.  It has it's own UIC
+                               /* This thing is a bit weird.  It has its own UIC
                                 * that it uses to generate snapshot triggers.  We
                                 * don't really support this device yet, and it needs
                                 * work to figure this out.
index 4f044b41a776b0a6141127ca14eabd2958d39d12..fb3200b006ade0110d05429c8596871e1292656c 100644 (file)
@@ -50,7 +50,7 @@
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
-       compatible = "fsl,ifc", "simple-bus";
+       compatible = "fsl,ifc";
        interrupts = <25 2 0 0>;
 };
 
index 8da984251abc889f7e86028b35a106c45e3764fb..0ba86a6dce1b6837f9de6ed88cb734ace2a6c058 100644 (file)
@@ -15,7 +15,7 @@
                device_type = "memory";
        };
 
-       board_ifc: ifc: ifc@ff71e000 {
+       board_ifc: ifc: memory-controller@ff71e000 {
                /* NAND Flash on board */
                ranges = <0x0 0x0 0x0 0xff800000 0x00004000>;
                reg = <0x0 0xff71e000 0x0 0x2000>;
index 2a677fd323ebea75f2ae8e6585dee1bef3a6d6d8..5c53cee8755f9003e2bbf1f1c7acd0287a6c1320 100644 (file)
@@ -35,7 +35,7 @@
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
-       compatible = "fsl,ifc", "simple-bus";
+       compatible = "fsl,ifc";
        interrupts = <16 2 0 0 20 2 0 0>;
 };
 
index 7cb2158dfe58330a033c55052c373eb869e15b43..ce642e879a1b85aa60c1e0f034653c376836ec41 100644 (file)
@@ -15,7 +15,7 @@
                device_type = "memory";
        };
 
-       ifc: ifc@ff71e000 {
+       ifc: memory-controller@ff71e000 {
                /* NOR, NAND Flash on board */
                ranges = <0x0 0x0 0x0 0x88000000 0x08000000
                          0x1 0x0 0x0 0xff800000 0x00010000>;
index b8e0edd1ac69a146b93a2049141345fc4be88f76..4da451e000d901e1402c8e2e5c126781f7074cea 100644 (file)
@@ -35,7 +35,7 @@
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
-       compatible = "fsl,ifc", "simple-bus";
+       compatible = "fsl,ifc";
        /* FIXME: Test whether interrupts are split */
        interrupts = <16 2 0 0 20 2 0 0>;
 };
index 5e905e0857cf9d2fc0aa23f36e5e8c2b53b409c6..e2fdac2ed4205eba0d130be2f1d877c14ed8a942 100644 (file)
@@ -42,7 +42,7 @@
                device_type = "memory";
        };
 
-       ifc: ifc@fffe1e000 {
+       ifc: memory-controller@fffe1e000 {
                reg = <0xf 0xffe1e000 0 0x2000>;
                ranges = <0x0 0x0 0xf 0xec000000 0x04000000
                          0x1 0x0 0xf 0xff800000 0x00010000
index f208fb8f64b3724d16d2a0d7b225b81013bcf840..2d443d519274953049b7b0eb9a0c6e8c6c3c9bbd 100644 (file)
@@ -35,7 +35,7 @@
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
-       compatible = "fsl,ifc", "simple-bus";
+       compatible = "fsl,ifc";
        interrupts = <19 2 0 0>;
 };
 
index 41935709ebe87e6726f0399c468753fb513180ed..fba40a1bccc0465884c69052d2b5e7d2fff778d9 100644 (file)
 
 /include/ "pq3-dma-0.dtsi"
 /include/ "pq3-etsec1-0.dtsi"
+       enet0: ethernet@24000 {
+               fsl,wake-on-filer;
+               fsl,pmc-handle = <&etsec1_clk>;
+       };
 /include/ "pq3-etsec1-timer-0.dtsi"
 
        usb@22000 {
        };
 
 /include/ "pq3-etsec1-2.dtsi"
-
-       ethernet@26000 {
+       enet2: ethernet@26000 {
                cell-index = <1>;
+               fsl,wake-on-filer;
+               fsl,pmc-handle = <&etsec3_clk>;
        };
 
        usb@2b000 {
                reg = <0xe0000 0x1000>;
                fsl,has-rstcr;
        };
+
+/include/ "pq3-power.dtsi"
+       power@e0070 {
+               compatible = "fsl,mpc8536-pmc", "fsl,mpc8548-pmc";
+       };
 };
index b68eb119faef30a442aa390ea2d918a81f61461e..ea7416af7ee3edb963503fdfe0f4ddee2b15ed37 100644 (file)
                reg = <0xe0000 0x1000>;
                fsl,has-rstcr;
        };
+
+/include/ "pq3-power.dtsi"
 };
index 579d76cb8e329de15bf3c5efeb214dc4dc09f57b..dddb7374508d6ba9c62c6e638d5bc9ff2db62074 100644 (file)
                reg = <0xe0000 0x1000>;
                fsl,has-rstcr;
        };
+
+/include/ "pq3-power.dtsi"
 };
index 49294cf36b4e63a34263f59dd1a38ecf8526e99e..40a6cff770327d8af84b90847feff0391e945c17 100644 (file)
                reg = <0xe0000 0x1000>;
                fsl,has-rstcr;
        };
+
+/include/ "pq3-power.dtsi"
 };
index 3a94acbb3c03318bc0a1a4b64667af07e35c4ed1..ce3346d77858f460cbe873948a11186808189017 100644 (file)
 };
 
 /include/ "p1010si-post.dtsi"
+
+&pci0 {
+       pcie@0 {
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       /*
+                        *irq[4:5] are active-high
+                        *irq[6:7] are active-low
+                        */
+                       0000 0x0 0x0 0x1 &mpic 0x4 0x2 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x5 0x2 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0
+                       >;
+       };
+};
index 4cf255fedc96e94367da2feefedca3d8203fbd26..83590354f9a098546291e9c73d963b59c90f4175 100644 (file)
 };
 
 /include/ "p1010si-post.dtsi"
+
+&pci0 {
+       pcie@0 {
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       /*
+                        *irq[4:5] are active-high
+                        *irq[6:7] are active-low
+                        */
+                       0000 0x0 0x0 0x1 &mpic 0x4 0x2 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x5 0x2 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0
+                       >;
+       };
+};
index 2ca9cee2ddeb25479be85330d8644a58cdc18d57..ef49a7d6c69dd59694436b80688f80e2927680bf 100644 (file)
                phy-connection-type = "sgmii";
        };
 };
-
-&pci0 {
-       pcie@0 {
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       /*
-                        *irq[4:5] are active-high
-                        *irq[6:7] are active-low
-                        */
-                       0000 0x0 0x0 0x1 &mpic 0x4 0x2 0x0 0x0
-                       0000 0x0 0x0 0x2 &mpic 0x5 0x2 0x0 0x0
-                       0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0
-                       0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0
-                       >;
-       };
-};
index fdc19aab2f7067e2553b19914530cd9c6a214bb9..583a6cd0507938d6b08c04e8f018096d4143282b 100644 (file)
@@ -36,7 +36,7 @@ memory {
        device_type = "memory";
 };
 
-board_ifc: ifc: ifc@ffe1e000 {
+board_ifc: ifc: memory-controller@ffe1e000 {
        /* NOR, NAND Flashes and CPLD on board */
        ranges = <0x0 0x0 0x0 0xee000000 0x02000000
                  0x1 0x0 0x0 0xff800000 0x00010000
index de2fceed4f79906efd4008d8c8a576b7e9b65776..4d41efe0038f27a294532dbc2e26743290783399 100644 (file)
@@ -36,7 +36,7 @@ memory {
        device_type = "memory";
 };
 
-board_ifc: ifc: ifc@fffe1e000 {
+board_ifc: ifc: memory-controller@fffe1e000 {
        /* NOR, NAND Flashes and CPLD on board */
        ranges = <0x0 0x0 0xf 0xee000000 0x02000000
                  0x1 0x0 0xf 0xff800000 0x00010000
index ccda0a91abf003425bcff4f10e2092096856ac87..2d2550729dcc2db07796b240e0d88157143084e9 100644 (file)
@@ -35,7 +35,7 @@
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
-       compatible = "fsl,ifc", "simple-bus";
+       compatible = "fsl,ifc";
        interrupts = <16 2 0 0 19 2 0 0>;
 };
 
 /include/ "pq3-etsec2-1.dtsi"
 /include/ "pq3-etsec2-2.dtsi"
 
+       enet0: ethernet@b0000 {
+               fsl,pmc-handle = <&etsec1_clk>;
+       };
+
+       enet1: ethernet@b1000 {
+               fsl,pmc-handle = <&etsec2_clk>;
+       };
+
+       enet2: ethernet@b2000 {
+               fsl,pmc-handle = <&etsec3_clk>;
+       };
+
        global-utilities@e0000 {
                compatible = "fsl,p1010-guts";
                reg = <0xe0000 0x1000>;
                fsl,has-rstcr;
        };
+
+/include/ "pq3-power.dtsi"
 };
index 642dc3a83d0e352a46583df09dbecddeb46bc091..cc4c7461003bb987c7c03ad365d477fbb3d46a4c 100644 (file)
 
 /include/ "pq3-etsec2-0.dtsi"
        enet0: enet0_grp2: ethernet@b0000 {
+               fsl,pmc-handle = <&etsec1_clk>;
        };
 
 /include/ "pq3-etsec2-1.dtsi"
        enet1: enet1_grp2: ethernet@b1000 {
+               fsl,pmc-handle = <&etsec2_clk>;
        };
 
 /include/ "pq3-etsec2-2.dtsi"
        enet2: enet2_grp2: ethernet@b2000 {
+               fsl,pmc-handle = <&etsec3_clk>;
        };
 
        global-utilities@e0000 {
                reg = <0xe0000 0x1000>;
                fsl,has-rstcr;
        };
+
+/include/ "pq3-power.dtsi"
 };
 
 /include/ "pq3-etsec2-grp2-0.dtsi"
index 407cb5fd0f5bad533d31e7afc613f83fd36f3e67..378195db9fca5f550c76a7fe5cc637bdc73ec96e 100644 (file)
 
 /include/ "pq3-etsec2-0.dtsi"
        enet0: enet0_grp2: ethernet@b0000 {
+               fsl,pmc-handle = <&etsec1_clk>;
        };
 
 /include/ "pq3-etsec2-1.dtsi"
        enet1: enet1_grp2: ethernet@b1000 {
+               fsl,pmc-handle = <&etsec2_clk>;
        };
 
 /include/ "pq3-etsec2-2.dtsi"
        enet2: enet2_grp2: ethernet@b2000 {
+               fsl,pmc-handle = <&etsec3_clk>;
        };
 
        global-utilities@e0000 {
                reg = <0xe0000 0x1000>;
                fsl,has-rstcr;
        };
+
+/include/ "pq3-power.dtsi"
 };
 
 &qe {
index 093e4e3ed36898bfcb94f6fe906635982e9a0fd8..6ac21e81344ad8bbf9a17b1a5ec7e141d373cc54 100644 (file)
 /include/ "pq3-etsec2-0.dtsi"
        enet0: enet0_grp2: ethernet@b0000 {
                fsl,wake-on-filer;
+               fsl,pmc-handle = <&etsec1_clk>;
        };
 
 /include/ "pq3-etsec2-1.dtsi"
        enet1: enet1_grp2: ethernet@b1000 {
                fsl,wake-on-filer;
+               fsl,pmc-handle = <&etsec2_clk>;
        };
 
        global-utilities@e0000 {
                fsl,has-rstcr;
        };
 
+/include/ "pq3-power.dtsi"
        power@e0070 {
-               compatible = "fsl,mpc8536-pmc", "fsl,mpc8548-pmc";
-               reg = <0xe0070 0x20>;
+               compatible = "fsl,p1022-pmc", "fsl,mpc8536-pmc",
+                               "fsl,mpc8548-pmc";
        };
 
 };
index 81b9ab2119be69b371f8e0f61256cde81cd7e0b3..d410082d21c0f2005bb03c192430b2bd8d6a1265 100644 (file)
                compatible = "fsl-usb2-dr-v1.6", "fsl-usb2-dr";
        };
 /include/ "pq3-etsec1-0.dtsi"
+       enet0: ethernet@24000 {
+               fsl,pmc-handle = <&etsec1_clk>;
+
+       };
 /include/ "pq3-etsec1-timer-0.dtsi"
 
        ptp_clock@24e00 {
 
 
 /include/ "pq3-etsec1-1.dtsi"
+       enet1: ethernet@25000 {
+               fsl,pmc-handle = <&etsec2_clk>;
+       };
+
 /include/ "pq3-etsec1-2.dtsi"
+       enet2: ethernet@26000 {
+               fsl,pmc-handle = <&etsec3_clk>;
+       };
+
 /include/ "pq3-esdhc-0.dtsi"
        sdhc@2e000 {
                compatible = "fsl,p2020-esdhc", "fsl,esdhc";
                fsl,has-rstcr;
        };
 
-       pmc: power@e0070 {
-               compatible = "fsl,mpc8548-pmc";
-               reg = <0xe0070 0x20>;
-       };
+/include/ "pq3-power.dtsi"
 };
diff --git a/src/powerpc/fsl/pq3-power.dtsi b/src/powerpc/fsl/pq3-power.dtsi
new file mode 100644 (file)
index 0000000..6af1240
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: (GPL-2.0+)
+/*
+ * Copyright 2024 NXP
+ */
+
+power@e0070 {
+       compatible = "fsl,mpc8548-pmc";
+       reg = <0xe0070 0x20>;
+
+       etsec1_clk: soc-clk@24 {
+               fsl,pmcdr-mask = <0x00000080>;
+       };
+       etsec2_clk: soc-clk@25 {
+               fsl,pmcdr-mask = <0x00000040>;
+       };
+       etsec3_clk: soc-clk@26 {
+               fsl,pmcdr-mask = <0x00000020>;
+       };
+};
index aa5152ca8120110f879476ff38136b1258efbd54..8ef0c020206b9406cf401c0c18b0cfbe8c6970d2 100644 (file)
@@ -52,7 +52,7 @@
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
-       compatible = "fsl,ifc", "simple-bus";
+       compatible = "fsl,ifc";
        interrupts = <25 2 0 0>;
 };
 
index 270aaf631f2ab0fa969316142e09bf05cb06075b..7d003e07a9fb2076c480d3d9c6de894e0d426ce8 100644 (file)
@@ -91,7 +91,7 @@
                board-control@2,0 {
                        #address-cells = <1>;
                        #size-cells = <1>;
-                       compatible = "fsl,t1024-cpld";
+                       compatible = "fsl,t1024-cpld", "fsl,deepsleep-cpld";
                        reg = <3 0 0x300>;
                        ranges = <0 3 0 0x300>;
                        bank-width = <1>;
index dd3aab81e9dea4c43c6982b323daee702461f1f9..4347924e9aa7e6e82868a145de8e0ac265ede04c 100644 (file)
 
        ifc: localbus@ffe124000 {
                cpld@3,0 {
-                       compatible = "fsl,t1040rdb-cpld";
+                       compatible = "fsl,t104xrdb-cpld", "fsl,deepsleep-cpld";
                };
        };
 };
index 77678862320401428152d775862deb6ba1b026d8..c9542b73bd7f1c95c8f659d81b8a60a46ac2ed43 100644 (file)
@@ -52,7 +52,7 @@
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
-       compatible = "fsl,ifc", "simple-bus";
+       compatible = "fsl,ifc";
        interrupts = <25 2 0 0>;
 };
 
index 3ebb712224cbe02e8990c4548a515aea6894fa72..099764322b33cc0a3cdb225e94ba2be7c3b04954 100644 (file)
@@ -68,7 +68,7 @@
 
        ifc: localbus@ffe124000 {
                cpld@3,0 {
-                       compatible = "fsl,t1042rdb-cpld";
+                       compatible = "fsl,t104xrdb-cpld", "fsl,deepsleep-cpld";
                };
        };
 };
index 8ec3ff45e6fc70a93b8afbe17dddb73dd12a7077..b10cab1a347bfef12b847f6b23503c5fd86894ba 100644 (file)
@@ -41,7 +41,7 @@
 
        ifc: localbus@ffe124000 {
                cpld@3,0 {
-                       compatible = "fsl,t1042rdb_pi-cpld";
+                       compatible = "fsl,t104xrdb-cpld", "fsl,deepsleep-cpld";
                };
        };
 
index 27714dc2f04a541a739c4dc97bcf2b4fe78265d7..6bb95878d39d3319c6713dc0451e909bb40d1e6e 100644 (file)
@@ -50,7 +50,7 @@
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
-       compatible = "fsl,ifc", "simple-bus";
+       compatible = "fsl,ifc";
        interrupts = <25 2 0 0>;
 };
 
index fcac73486d487ea0d85cf82ef1dc1fd2dfc09991..65f3e17c0d41399d9494c9c73458a113cd8e96d0 100644 (file)
@@ -50,7 +50,7 @@
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
-       compatible = "fsl,ifc", "simple-bus";
+       compatible = "fsl,ifc";
        interrupts = <25 2 0 0>;
 };
 
index 8df4cf3656f2c93249f0576fe6b10529b5ccd335..a7d753b6fdfd136670c28f89972cfe1ac068a0af 100644 (file)
        model = "Kendryte KD233";
        compatible = "canaan,kendryte-kd233", "canaan,kendryte-k210";
 
+       aliases {
+               serial0 = &uarths0;
+       };
+
        chosen {
                bootargs = "earlycon console=ttySIF0";
                stdout-path = "serial0:115200n8";
@@ -46,7 +50,6 @@
 &fpioa {
        pinctrl-0 = <&jtag_pinctrl>;
        pinctrl-names = "default";
-       status = "okay";
 
        jtag_pinctrl: jtag-pinmux {
                pinmux = <K210_FPIOA(0, K210_PCF_JTAG_TCLK)>,
        #sound-dai-cells = <1>;
        pinctrl-0 = <&i2s0_pinctrl>;
        pinctrl-names = "default";
+       status = "okay";
 };
 
 &spi0 {
        pinctrl-names = "default";
        num-cs = <1>;
        cs-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
+       status = "okay";
 
        panel@0 {
                compatible = "canaan,kd233-tft", "ilitek,ili9341";
index f87c5164d9cf658d6dbc58af85764ed2c6cd4cf3..4f5d40fa1e77c6246aedc7bda8e51143b2d06409 100644 (file)
        #size-cells = <1>;
        compatible = "canaan,kendryte-k210";
 
-       aliases {
-               serial0 = &uarths0;
-               serial1 = &uart1;
-               serial2 = &uart2;
-               serial3 = &uart3;
-       };
-
        /*
         * The K210 has an sv39 MMU following the privileged specification v1.9.
         * Since this is a non-ratified draft specification, the kernel does not
                        reg = <0x38000000 0x1000>;
                        interrupts = <33>;
                        clocks = <&sysclk K210_CLK_CPU>;
+                       status = "disabled";
                };
 
                gpio0: gpio-controller@38001000 {
                                     <62>, <63>, <64>, <65>;
                        gpio-controller;
                        ngpios = <32>;
+                       status = "disabled";
                };
 
                dmac0: dma-controller@50000000 {
                                         <&sysclk K210_CLK_GPIO>;
                                clock-names = "bus", "db";
                                resets = <&sysrst K210_RST_GPIO>;
+                               status = "disabled";
 
                                gpio1_0: gpio-port@0 {
                                        #gpio-cells = <2>;
                                dsr-override;
                                cts-override;
                                ri-override;
+                               status = "disabled";
                        };
 
                        uart2: serial@50220000 {
                                dsr-override;
                                cts-override;
                                ri-override;
+                               status = "disabled";
                        };
 
                        uart3: serial@50230000 {
                                dsr-override;
                                cts-override;
                                ri-override;
+                               status = "disabled";
                        };
 
                        spi2: spi@50240000 {
                                         <&sysclk K210_CLK_APB0>;
                                clock-names = "ssi_clk", "pclk";
                                resets = <&sysrst K210_RST_SPI2>;
+                               status = "disabled";
                        };
 
                        i2s0: i2s@50250000 {
                                clocks = <&sysclk K210_CLK_I2S0>;
                                clock-names = "i2sclk";
                                resets = <&sysrst K210_RST_I2S0>;
+                               status = "disabled";
                        };
 
                        i2s1: i2s@50260000 {
                                clocks = <&sysclk K210_CLK_I2S1>;
                                clock-names = "i2sclk";
                                resets = <&sysrst K210_RST_I2S1>;
+                               status = "disabled";
                        };
 
                        i2s2: i2s@50270000 {
                                clocks = <&sysclk K210_CLK_I2S2>;
                                clock-names = "i2sclk";
                                resets = <&sysrst K210_RST_I2S2>;
+                               status = "disabled";
                        };
 
                        i2c0: i2c@50280000 {
                                         <&sysclk K210_CLK_APB0>;
                                clock-names = "ref", "pclk";
                                resets = <&sysrst K210_RST_I2C0>;
+                               status = "disabled";
                        };
 
                        i2c1: i2c@50290000 {
                                         <&sysclk K210_CLK_APB0>;
                                clock-names = "ref", "pclk";
                                resets = <&sysrst K210_RST_I2C1>;
+                               status = "disabled";
                        };
 
                        i2c2: i2c@502a0000 {
                                         <&sysclk K210_CLK_APB0>;
                                clock-names = "ref", "pclk";
                                resets = <&sysrst K210_RST_I2C2>;
+                               status = "disabled";
                        };
 
                        fpioa: pinmux@502b0000 {
                                reset-names = "spi";
                                num-cs = <4>;
                                reg-io-width = <4>;
+                               status = "disabled";
                        };
 
                        spi1: spi@53000000 {
                                reset-names = "spi";
                                num-cs = <4>;
                                reg-io-width = <4>;
+                               status = "disabled";
                        };
 
                        spi3: spi@54000000 {
 
                                num-cs = <4>;
                                reg-io-width = <4>;
+                               status = "disabled";
                        };
                };
        };
index 396c8ca4d24db79ae9748ff7f263fa1b514f0da5..5734cc03753b1a061004af8320c8b212e22eddcb 100644 (file)
        model = "Kendryte K210 generic";
        compatible = "canaan,kendryte-k210";
 
+       aliases {
+               serial0 = &uarths0;
+       };
+
        chosen {
                bootargs = "earlycon console=ttySIF0";
                stdout-path = "serial0:115200n8";
@@ -24,7 +28,6 @@
 &fpioa {
        pinctrl-0 = <&jtag_pins>;
        pinctrl-names = "default";
-       status = "okay";
 
        jtag_pins: jtag-pinmux {
                pinmux = <K210_FPIOA(0, K210_PCF_JTAG_TCLK)>,
index 6d25bf07481a6ed8ecbe74e10316825f630cc559..2ab376d609d2592d19300c26b1dc8bc8a7f1e404 100644 (file)
        compatible = "sipeed,maix-bit", "sipeed,maix-bitm",
                     "canaan,kendryte-k210";
 
+       aliases {
+               serial0 = &uarths0;
+       };
+
        chosen {
                bootargs = "earlycon console=ttySIF0";
                stdout-path = "serial0:115200n8";
@@ -58,7 +62,6 @@
 &fpioa {
        pinctrl-names = "default";
        pinctrl-0 = <&jtag_pinctrl>;
-       status = "okay";
 
        jtag_pinctrl: jtag-pinmux {
                pinmux = <K210_FPIOA(0, K210_PCF_JTAG_TCLK)>,
        #sound-dai-cells = <1>;
        pinctrl-0 = <&i2s0_pinctrl>;
        pinctrl-names = "default";
+       status = "okay";
 };
 
 &i2c1 {
        pinctrl-names = "default";
        num-cs = <1>;
        cs-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
+       status = "okay";
 
        panel@0 {
                compatible = "sitronix,st7789v";
 };
 
 &spi3 {
+       status = "okay";
+
        flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
index f4f4d8d5e8b88cad89664f6c6d4e105f97e44c92..d98e20775c0736393a0c771e0e650a0e486a05cb 100644 (file)
        compatible = "sipeed,maix-dock-m1", "sipeed,maix-dock-m1w",
                     "canaan,kendryte-k210";
 
+       aliases {
+               serial0 = &uarths0;
+       };
+
        chosen {
                bootargs = "earlycon console=ttySIF0";
                stdout-path = "serial0:115200n8";
@@ -63,7 +67,6 @@
 &fpioa {
        pinctrl-0 = <&jtag_pinctrl>;
        pinctrl-names = "default";
-       status = "okay";
 
        jtag_pinctrl: jtag-pinmux {
                pinmux = <K210_FPIOA(0, K210_PCF_JTAG_TCLK)>,
        #sound-dai-cells = <1>;
        pinctrl-0 = <&i2s0_pinctrl>;
        pinctrl-names = "default";
+       status = "okay";
 };
 
 &i2c1 {
        pinctrl-names = "default";
        num-cs = <1>;
        cs-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
+       status = "okay";
 
        panel@0 {
                compatible = "sitronix,st7789v";
index 0d86df47e1ed3987afd424db059ec5a271bf0fdf..79ecd549700a006e0f014f0e11ff34abfddd5489 100644 (file)
        model = "SiPeed MAIX GO";
        compatible = "sipeed,maix-go", "canaan,kendryte-k210";
 
+       aliases {
+               serial0 = &uarths0;
+       };
+
        chosen {
                bootargs = "earlycon console=ttySIF0";
                stdout-path = "serial0:115200n8";
@@ -69,7 +73,6 @@
 &fpioa {
        pinctrl-0 = <&jtag_pinctrl>;
        pinctrl-names = "default";
-       status = "okay";
 
        jtag_pinctrl: jtag-pinmux {
                pinmux = <K210_FPIOA(0, K210_PCF_JTAG_TCLK)>,
        #sound-dai-cells = <1>;
        pinctrl-0 = <&i2s0_pinctrl>;
        pinctrl-names = "default";
+       status = "okay";
 };
 
 &i2c1 {
        pinctrl-names = "default";
        num-cs = <1>;
        cs-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
+       status = "okay";
 
        panel@0 {
                compatible = "sitronix,st7789v";
 };
 
 &spi3 {
+       status = "okay";
+
        flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
index 5c05c498e2b88bf4f6310b4168e47ef810f33745..019c03ae51f6c485af82041c27f4e53a3ecea346 100644 (file)
        model = "SiPeed MAIXDUINO";
        compatible = "sipeed,maixduino", "canaan,kendryte-k210";
 
+       aliases {
+               serial0 = &uarths0;
+       };
+
        chosen {
                bootargs = "earlycon console=ttySIF0";
                stdout-path = "serial0:115200n8";
@@ -39,8 +43,6 @@
 };
 
 &fpioa {
-       status = "okay";
-
        uarths_pinctrl: uarths-pinmux {
                pinmux = <K210_FPIOA(4, K210_PCF_UARTHS_RX)>, /* Header "0" */
                         <K210_FPIOA(5, K210_PCF_UARTHS_TX)>; /* Header "1" */
        #sound-dai-cells = <1>;
        pinctrl-0 = <&i2s0_pinctrl>;
        pinctrl-names = "default";
+       status = "okay";
 };
 
 &i2c1 {
        pinctrl-names = "default";
        num-cs = <1>;
        cs-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
+       status = "okay";
 
        panel@0 {
                compatible = "sitronix,st7789v";
 };
 
 &spi3 {
+       status = "okay";
+
        flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
index 222a39d90f85da822fca471d232f4ab267ef33bf..f80df225f72b49bd6c6098aac1af9207522c6038 100644 (file)
 
 &i2c1 {
        status = "okay";
+
+       power-monitor@10 {
+               compatible = "microchip,pac1934";
+               reg = <0x10>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel@1 {
+                       reg = <0x1>;
+                       shunt-resistor-micro-ohms = <10000>;
+                       label = "VDDREG";
+               };
+
+               channel@2 {
+                       reg = <0x2>;
+                       shunt-resistor-micro-ohms = <10000>;
+                       label = "VDDA25";
+               };
+
+               channel@3 {
+                       reg = <0x3>;
+                       shunt-resistor-micro-ohms = <10000>;
+                       label = "VDD25";
+               };
+
+               channel@4 {
+                       reg = <0x4>;
+                       shunt-resistor-micro-ohms = <10000>;
+                       label = "VDDA_REG";
+               };
+       };
 };
 
 &i2c2 {
index f35324b9173cde4985e0eba9dc807c4bcfc7f534..e0ddf8f602c79bc87253aff10925ad7edd08bf9c 100644 (file)
        dma-noncoherent;
        interrupt-parent = <&plic>;
 
+       irqc: interrupt-controller@110a0000 {
+               compatible = "renesas,r9a07g043f-irqc";
+               reg = <0 0x110a0000 0 0x20000>;
+               #interrupt-cells = <2>;
+               #address-cells = <0>;
+               interrupt-controller;
+               interrupts = <32 IRQ_TYPE_LEVEL_HIGH>,
+                            <33 IRQ_TYPE_LEVEL_HIGH>,
+                            <34 IRQ_TYPE_LEVEL_HIGH>,
+                            <35 IRQ_TYPE_LEVEL_HIGH>,
+                            <36 IRQ_TYPE_LEVEL_HIGH>,
+                            <37 IRQ_TYPE_LEVEL_HIGH>,
+                            <38 IRQ_TYPE_LEVEL_HIGH>,
+                            <39 IRQ_TYPE_LEVEL_HIGH>,
+                            <40 IRQ_TYPE_LEVEL_HIGH>,
+                            <476 IRQ_TYPE_LEVEL_HIGH>,
+                            <477 IRQ_TYPE_LEVEL_HIGH>,
+                            <478 IRQ_TYPE_LEVEL_HIGH>,
+                            <479 IRQ_TYPE_LEVEL_HIGH>,
+                            <480 IRQ_TYPE_LEVEL_HIGH>,
+                            <481 IRQ_TYPE_LEVEL_HIGH>,
+                            <482 IRQ_TYPE_LEVEL_HIGH>,
+                            <483 IRQ_TYPE_LEVEL_HIGH>,
+                            <484 IRQ_TYPE_LEVEL_HIGH>,
+                            <485 IRQ_TYPE_LEVEL_HIGH>,
+                            <486 IRQ_TYPE_LEVEL_HIGH>,
+                            <487 IRQ_TYPE_LEVEL_HIGH>,
+                            <488 IRQ_TYPE_LEVEL_HIGH>,
+                            <489 IRQ_TYPE_LEVEL_HIGH>,
+                            <490 IRQ_TYPE_LEVEL_HIGH>,
+                            <491 IRQ_TYPE_LEVEL_HIGH>,
+                            <492 IRQ_TYPE_LEVEL_HIGH>,
+                            <493 IRQ_TYPE_LEVEL_HIGH>,
+                            <494 IRQ_TYPE_LEVEL_HIGH>,
+                            <495 IRQ_TYPE_LEVEL_HIGH>,
+                            <496 IRQ_TYPE_LEVEL_HIGH>,
+                            <497 IRQ_TYPE_LEVEL_HIGH>,
+                            <498 IRQ_TYPE_LEVEL_HIGH>,
+                            <499 IRQ_TYPE_LEVEL_HIGH>,
+                            <500 IRQ_TYPE_LEVEL_HIGH>,
+                            <501 IRQ_TYPE_LEVEL_HIGH>,
+                            <502 IRQ_TYPE_LEVEL_HIGH>,
+                            <503 IRQ_TYPE_LEVEL_HIGH>,
+                            <504 IRQ_TYPE_LEVEL_HIGH>,
+                            <505 IRQ_TYPE_LEVEL_HIGH>,
+                            <506 IRQ_TYPE_LEVEL_HIGH>,
+                            <507 IRQ_TYPE_LEVEL_HIGH>,
+                            <57 IRQ_TYPE_LEVEL_HIGH>,
+                            <66 IRQ_TYPE_EDGE_RISING>,
+                            <67 IRQ_TYPE_EDGE_RISING>,
+                            <68 IRQ_TYPE_EDGE_RISING>,
+                            <69 IRQ_TYPE_EDGE_RISING>,
+                            <70 IRQ_TYPE_EDGE_RISING>,
+                            <71 IRQ_TYPE_EDGE_RISING>;
+               interrupt-names = "nmi",
+                                 "irq0", "irq1", "irq2", "irq3",
+                                 "irq4", "irq5", "irq6", "irq7",
+                                 "tint0", "tint1", "tint2", "tint3",
+                                 "tint4", "tint5", "tint6", "tint7",
+                                 "tint8", "tint9", "tint10", "tint11",
+                                 "tint12", "tint13", "tint14", "tint15",
+                                 "tint16", "tint17", "tint18", "tint19",
+                                 "tint20", "tint21", "tint22", "tint23",
+                                 "tint24", "tint25", "tint26", "tint27",
+                                 "tint28", "tint29", "tint30", "tint31",
+                                 "bus-err", "ec7tie1-0", "ec7tie2-0",
+                                 "ec7tiovf-0", "ec7tie1-1", "ec7tie2-1",
+                                 "ec7tiovf-1";
+               clocks = <&cpg CPG_MOD R9A07G043_IAX45_CLK>,
+                        <&cpg CPG_MOD R9A07G043_IAX45_PCLK>;
+               clock-names = "clk", "pclk";
+               power-domains = <&cpg>;
+               resets = <&cpg R9A07G043_IAX45_RESETN>;
+       };
+
        plic: interrupt-controller@12c00000 {
                compatible = "renesas,r9a07g043-plic", "andestech,nceplic100";
                #interrupt-cells = <2>;
index 433ab5c6a626c30fe4d5c751d427629fbfbd87b9..5e808242649ec1768a6262a326be000a4c3d2f98 100644 (file)
@@ -6,19 +6,3 @@
  */
 
 #include <arm64/renesas/rzg2ul-smarc-som.dtsi>
-
-#if (!SW_ET0_EN_N)
-&eth0 {
-       phy0: ethernet-phy@7 {
-               /delete-property/ interrupt-parent;
-               /delete-property/ interrupts;
-       };
-};
-#endif
-
-&eth1 {
-       phy1: ethernet-phy@7 {
-               /delete-property/ interrupt-parent;
-               /delete-property/ interrupts;
-       };
-};
index 3af9e34b3bc75d19760064ffc82179cfc715bd71..375ff2661b6e257cfddce2381663f61e12748c14 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
-       memory@80000000 {
-               device_type = "memory";
-               reg = <0x80000000 0x3f40000>;
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               coprocessor_rtos: region@83f40000 {
+                       reg = <0x83f40000 0xc0000>;
+                       no-map;
+               };
        };
 };
 
        clock-frequency = <25000000>;
 };
 
+&sdhci0 {
+       status = "okay";
+       bus-width = <4>;
+       no-1-8-v;
+       no-mmc;
+       no-sdio;
+       disable-wp;
+};
+
 &uart0 {
        status = "okay";
 };
index 165e9e320a8c72d7f56ecb61fd86e7d58c8c4333..ec9530972ae2bbb6b319c4db694c8a5633c0bed9 100644 (file)
@@ -7,6 +7,11 @@
 
 / {
        compatible = "sophgo,cv1800b";
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x4000000>;
+       };
 };
 
 &plic {
@@ -16,3 +21,7 @@
 &clint {
        compatible = "sophgo,cv1800b-clint", "thead,c900-clint";
 };
+
+&clk {
+       compatible = "sophgo,cv1800-clk";
+};
index 3e7a942f5c1a5ac988291b0b2224ffc750ce86c7..7fa4c1e2d1da45ac705fcc0d4dd289e31a9b2a15 100644 (file)
@@ -22,3 +22,7 @@
 &clint {
        compatible = "sophgo,cv1812h-clint", "thead,c900-clint";
 };
+
+&clk {
+       compatible = "sophgo,cv1810-clk";
+};
index 2d6f4a4b1e58b4b56ac49c051af7fbc5bf9c4d12..891932ae470f3421ee6a9c0ee2660603f9904c69 100644 (file)
@@ -4,6 +4,8 @@
  * Copyright (C) 2023 Inochi Amaoto <inochiama@outlook.com>
  */
 
+#include <dt-bindings/clock/sophgo,cv1800.h>
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 
 / {
                dma-noncoherent;
                ranges;
 
+               clk: clock-controller@3002000 {
+                       reg = <0x03002000 0x1000>;
+                       clocks = <&osc>;
+                       #clock-cells = <1>;
+               };
+
                gpio0: gpio@3020000 {
                        compatible = "snps,dw-apb-gpio";
                        reg = <0x3020000 0x1000>;
                        };
                };
 
+               i2c0: i2c@4000000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x04000000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_I2C>, <&clk CLK_APB_I2C0>;
+                       clock-names = "ref", "pclk";
+                       interrupts = <49 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@4010000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x04010000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_I2C>, <&clk CLK_APB_I2C1>;
+                       clock-names = "ref", "pclk";
+                       interrupts = <50 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@4020000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x04020000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_I2C>, <&clk CLK_APB_I2C2>;
+                       clock-names = "ref", "pclk";
+                       interrupts = <51 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@4030000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x04030000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_I2C>, <&clk CLK_APB_I2C3>;
+                       clock-names = "ref", "pclk";
+                       interrupts = <52 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c4: i2c@4040000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x04040000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_I2C>, <&clk CLK_APB_I2C4>;
+                       clock-names = "ref", "pclk";
+                       interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
                uart0: serial@4140000 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0x04140000 0x100>;
                        interrupts = <44 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
+                       clocks = <&clk CLK_UART0>, <&clk CLK_APB_UART0>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                        compatible = "snps,dw-apb-uart";
                        reg = <0x04150000 0x100>;
                        interrupts = <45 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
+                       clocks = <&clk CLK_UART1>, <&clk CLK_APB_UART1>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                        compatible = "snps,dw-apb-uart";
                        reg = <0x04160000 0x100>;
                        interrupts = <46 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
+                       clocks = <&clk CLK_UART2>, <&clk CLK_APB_UART2>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                        compatible = "snps,dw-apb-uart";
                        reg = <0x04170000 0x100>;
                        interrupts = <47 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
+                       clocks = <&clk CLK_UART3>, <&clk CLK_APB_UART3>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                };
 
+               spi0: spi@4180000 {
+                       compatible = "snps,dw-apb-ssi";
+                       reg = <0x04180000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_SPI>, <&clk CLK_APB_SPI0>;
+                       clock-names = "ssi_clk", "pclk";
+                       interrupts = <54 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               spi1: spi@4190000 {
+                       compatible = "snps,dw-apb-ssi";
+                       reg = <0x04190000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_SPI>, <&clk CLK_APB_SPI1>;
+                       clock-names = "ssi_clk", "pclk";
+                       interrupts = <55 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               spi2: spi@41a0000 {
+                       compatible = "snps,dw-apb-ssi";
+                       reg = <0x041a0000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_SPI>, <&clk CLK_APB_SPI2>;
+                       clock-names = "ssi_clk", "pclk";
+                       interrupts = <56 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               spi3: spi@41b0000 {
+                       compatible = "snps,dw-apb-ssi";
+                       reg = <0x041b0000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_SPI>, <&clk CLK_APB_SPI3>;
+                       clock-names = "ssi_clk", "pclk";
+                       interrupts = <57 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
                uart4: serial@41c0000 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0x041c0000 0x100>;
                        interrupts = <48 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
+                       clocks = <&clk CLK_UART4>, <&clk CLK_APB_UART4>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                };
 
+               sdhci0: mmc@4310000 {
+                       compatible = "sophgo,cv1800b-dwcmshc";
+                       reg = <0x4310000 0x1000>;
+                       interrupts = <36 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk CLK_AXI4_SD0>,
+                                <&clk CLK_SD0>;
+                       clock-names = "core", "bus";
+                       status = "disabled";
+               };
+
                plic: interrupt-controller@70000000 {
                        reg = <0x70000000 0x4000000>;
                        interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>;
index 9a2e9583af88d78d085584ab61a8ce211aa055c0..7de0732b8eabe4287395df8fb88fb510f0e66276 100644 (file)
@@ -13,7 +13,7 @@
        #address-cells = <2>;
        #size-cells = <2>;
 
-       cpus {
+       cpus: cpus {
                #address-cells = <1>;
                #size-cells = <0>;
 
diff --git a/src/riscv/starfive/jh7110-common.dtsi b/src/riscv/starfive/jh7110-common.dtsi
new file mode 100644 (file)
index 0000000..68d1671
--- /dev/null
@@ -0,0 +1,599 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2022 StarFive Technology Co., Ltd.
+ * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk>
+ */
+
+/dts-v1/;
+#include "jh7110.dtsi"
+#include "jh7110-pinfunc.h"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       aliases {
+               ethernet0 = &gmac0;
+               i2c0 = &i2c0;
+               i2c2 = &i2c2;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
+               mmc0 = &mmc0;
+               mmc1 = &mmc1;
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0x0 0x40000000 0x1 0x0>;
+       };
+
+       gpio-restart {
+               compatible = "gpio-restart";
+               gpios = <&sysgpio 35 GPIO_ACTIVE_HIGH>;
+               priority = <224>;
+       };
+
+       pwmdac_codec: audio-codec {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "StarFive-PWMDAC-Sound-Card";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               simple-audio-card,dai-link@0 {
+                       reg = <0>;
+                       format = "left_j";
+                       bitclock-master = <&sndcpu0>;
+                       frame-master = <&sndcpu0>;
+
+                       sndcpu0: cpu {
+                               sound-dai = <&pwmdac>;
+                       };
+
+                       codec {
+                               sound-dai = <&pwmdac_codec>;
+                       };
+               };
+       };
+};
+
+&cpus {
+       timebase-frequency = <4000000>;
+};
+
+&dvp_clk {
+       clock-frequency = <74250000>;
+};
+
+&gmac0_rgmii_rxin {
+       clock-frequency = <125000000>;
+};
+
+&gmac0_rmii_refin {
+       clock-frequency = <50000000>;
+};
+
+&gmac1_rgmii_rxin {
+       clock-frequency = <125000000>;
+};
+
+&gmac1_rmii_refin {
+       clock-frequency = <50000000>;
+};
+
+&hdmitx0_pixelclk {
+       clock-frequency = <297000000>;
+};
+
+&i2srx_bclk_ext {
+       clock-frequency = <12288000>;
+};
+
+&i2srx_lrck_ext {
+       clock-frequency = <192000>;
+};
+
+&i2stx_bclk_ext {
+       clock-frequency = <12288000>;
+};
+
+&i2stx_lrck_ext {
+       clock-frequency = <192000>;
+};
+
+&mclk_ext {
+       clock-frequency = <12288000>;
+};
+
+&osc {
+       clock-frequency = <24000000>;
+};
+
+&rtc_osc {
+       clock-frequency = <32768>;
+};
+
+&tdm_ext {
+       clock-frequency = <49152000>;
+};
+
+&camss {
+       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>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       camss_from_csi2rx: endpoint {
+                               remote-endpoint = <&csi2rx_to_camss>;
+                       };
+               };
+       };
+};
+
+&csi2rx {
+       assigned-clocks = <&ispcrg JH7110_ISPCLK_VIN_SYS>;
+       assigned-clock-rates = <297000000>;
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       /* remote MIPI sensor endpoint */
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       csi2rx_to_camss: endpoint {
+                               remote-endpoint = <&camss_from_csi2rx>;
+                       };
+               };
+       };
+};
+
+&gmac0 {
+       phy-handle = <&phy0>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+
+               phy0: ethernet-phy@0 {
+                       reg = <0>;
+               };
+       };
+};
+
+&i2c0 {
+       clock-frequency = <100000>;
+       i2c-sda-hold-time-ns = <300>;
+       i2c-sda-falling-time-ns = <510>;
+       i2c-scl-falling-time-ns = <510>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       status = "okay";
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       i2c-sda-hold-time-ns = <300>;
+       i2c-sda-falling-time-ns = <510>;
+       i2c-scl-falling-time-ns = <510>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins>;
+       status = "okay";
+};
+
+&i2c5 {
+       clock-frequency = <100000>;
+       i2c-sda-hold-time-ns = <300>;
+       i2c-sda-falling-time-ns = <510>;
+       i2c-scl-falling-time-ns = <510>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c5_pins>;
+       status = "okay";
+
+       axp15060: pmic@36 {
+               compatible = "x-powers,axp15060";
+               reg = <0x36>;
+               interrupt-controller;
+               #interrupt-cells = <1>;
+
+               regulators {
+                       vcc_3v3: dcdc1 {
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3";
+                       };
+
+                       vdd_cpu: dcdc2 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1540000>;
+                               regulator-name = "vdd-cpu";
+                       };
+
+                       emmc_vdd: aldo4 {
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "emmc_vdd";
+                       };
+               };
+       };
+};
+
+&i2c6 {
+       clock-frequency = <100000>;
+       i2c-sda-hold-time-ns = <300>;
+       i2c-sda-falling-time-ns = <510>;
+       i2c-scl-falling-time-ns = <510>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c6_pins>;
+       status = "okay";
+};
+
+&mmc0 {
+       max-frequency = <100000000>;
+       assigned-clocks = <&syscrg JH7110_SYSCLK_SDIO0_SDCARD>;
+       assigned-clock-rates = <50000000>;
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       mmc-ddr-1_8v;
+       mmc-hs200-1_8v;
+       cap-mmc-hw-reset;
+       post-power-on-delay-ms = <200>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins>;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&emmc_vdd>;
+       status = "okay";
+};
+
+&mmc1 {
+       max-frequency = <100000000>;
+       assigned-clocks = <&syscrg JH7110_SYSCLK_SDIO1_SDCARD>;
+       assigned-clock-rates = <50000000>;
+       bus-width = <4>;
+       no-sdio;
+       no-mmc;
+       cd-gpios = <&sysgpio 41 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       cap-sd-highspeed;
+       post-power-on-delay-ms = <200>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins>;
+       status = "okay";
+};
+
+&pwmdac {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwmdac_pins>;
+       status = "okay";
+};
+
+&qspi {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       nor_flash: flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               cdns,read-delay = <5>;
+               spi-max-frequency = <12000000>;
+               cdns,tshsl-ns = <1>;
+               cdns,tsd2d-ns = <1>;
+               cdns,tchsh-ns = <1>;
+               cdns,tslch-ns = <1>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       spl@0 {
+                               reg = <0x0 0x80000>;
+                       };
+                       uboot-env@f0000 {
+                               reg = <0xf0000 0x10000>;
+                       };
+                       uboot@100000 {
+                               reg = <0x100000 0x400000>;
+                       };
+                       reserved-data@600000 {
+                               reg = <0x600000 0xa00000>;
+                       };
+               };
+       };
+};
+
+&pwm {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm_pins>;
+       status = "okay";
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>;
+       status = "okay";
+
+       spi_dev0: spi@0 {
+               compatible = "rohm,dh2228fv";
+               reg = <0>;
+               spi-max-frequency = <10000000>;
+       };
+};
+
+&sysgpio {
+       i2c0_pins: i2c0-0 {
+               i2c-pins {
+                       pinmux = <GPIOMUX(57, GPOUT_LOW,
+                                             GPOEN_SYS_I2C0_CLK,
+                                             GPI_SYS_I2C0_CLK)>,
+                                <GPIOMUX(58, GPOUT_LOW,
+                                             GPOEN_SYS_I2C0_DATA,
+                                             GPI_SYS_I2C0_DATA)>;
+                       bias-disable; /* external pull-up */
+                       input-enable;
+                       input-schmitt-enable;
+               };
+       };
+
+       i2c2_pins: i2c2-0 {
+               i2c-pins {
+                       pinmux = <GPIOMUX(3, GPOUT_LOW,
+                                            GPOEN_SYS_I2C2_CLK,
+                                            GPI_SYS_I2C2_CLK)>,
+                                <GPIOMUX(2, GPOUT_LOW,
+                                            GPOEN_SYS_I2C2_DATA,
+                                            GPI_SYS_I2C2_DATA)>;
+                       bias-disable; /* external pull-up */
+                       input-enable;
+                       input-schmitt-enable;
+               };
+       };
+
+       i2c5_pins: i2c5-0 {
+               i2c-pins {
+                       pinmux = <GPIOMUX(19, GPOUT_LOW,
+                                             GPOEN_SYS_I2C5_CLK,
+                                             GPI_SYS_I2C5_CLK)>,
+                                <GPIOMUX(20, GPOUT_LOW,
+                                             GPOEN_SYS_I2C5_DATA,
+                                             GPI_SYS_I2C5_DATA)>;
+                       bias-disable; /* external pull-up */
+                       input-enable;
+                       input-schmitt-enable;
+               };
+       };
+
+       i2c6_pins: i2c6-0 {
+               i2c-pins {
+                       pinmux = <GPIOMUX(16, GPOUT_LOW,
+                                             GPOEN_SYS_I2C6_CLK,
+                                             GPI_SYS_I2C6_CLK)>,
+                                <GPIOMUX(17, GPOUT_LOW,
+                                             GPOEN_SYS_I2C6_DATA,
+                                             GPI_SYS_I2C6_DATA)>;
+                       bias-disable; /* external pull-up */
+                       input-enable;
+                       input-schmitt-enable;
+               };
+       };
+
+       mmc0_pins: mmc0-0 {
+                rst-pins {
+                       pinmux = <GPIOMUX(62, GPOUT_SYS_SDIO0_RST,
+                                             GPOEN_ENABLE,
+                                             GPI_NONE)>;
+                       bias-pull-up;
+                       drive-strength = <12>;
+                       input-disable;
+                       input-schmitt-disable;
+                       slew-rate = <0>;
+               };
+
+               mmc-pins {
+                       pinmux = <PINMUX(64, 0)>,
+                                <PINMUX(65, 0)>,
+                                <PINMUX(66, 0)>,
+                                <PINMUX(67, 0)>,
+                                <PINMUX(68, 0)>,
+                                <PINMUX(69, 0)>,
+                                <PINMUX(70, 0)>,
+                                <PINMUX(71, 0)>,
+                                <PINMUX(72, 0)>,
+                                <PINMUX(73, 0)>;
+                       bias-pull-up;
+                       drive-strength = <12>;
+                       input-enable;
+               };
+       };
+
+       mmc1_pins: mmc1-0 {
+               clk-pins {
+                       pinmux = <GPIOMUX(10, GPOUT_SYS_SDIO1_CLK,
+                                             GPOEN_ENABLE,
+                                             GPI_NONE)>;
+                       bias-pull-up;
+                       drive-strength = <12>;
+                       input-disable;
+                       input-schmitt-disable;
+                       slew-rate = <0>;
+               };
+
+               mmc-pins {
+                       pinmux = <GPIOMUX(9, GPOUT_SYS_SDIO1_CMD,
+                                            GPOEN_SYS_SDIO1_CMD,
+                                            GPI_SYS_SDIO1_CMD)>,
+                                <GPIOMUX(11, GPOUT_SYS_SDIO1_DATA0,
+                                             GPOEN_SYS_SDIO1_DATA0,
+                                             GPI_SYS_SDIO1_DATA0)>,
+                                <GPIOMUX(12, GPOUT_SYS_SDIO1_DATA1,
+                                             GPOEN_SYS_SDIO1_DATA1,
+                                             GPI_SYS_SDIO1_DATA1)>,
+                                <GPIOMUX(7, GPOUT_SYS_SDIO1_DATA2,
+                                            GPOEN_SYS_SDIO1_DATA2,
+                                            GPI_SYS_SDIO1_DATA2)>,
+                                <GPIOMUX(8, GPOUT_SYS_SDIO1_DATA3,
+                                            GPOEN_SYS_SDIO1_DATA3,
+                                            GPI_SYS_SDIO1_DATA3)>;
+                       bias-pull-up;
+                       drive-strength = <12>;
+                       input-enable;
+                       input-schmitt-enable;
+                       slew-rate = <0>;
+               };
+       };
+
+       pwmdac_pins: pwmdac-0 {
+               pwmdac-pins {
+                       pinmux = <GPIOMUX(33, GPOUT_SYS_PWMDAC_LEFT,
+                                             GPOEN_ENABLE,
+                                             GPI_NONE)>,
+                                <GPIOMUX(34, GPOUT_SYS_PWMDAC_RIGHT,
+                                             GPOEN_ENABLE,
+                                             GPI_NONE)>;
+                       bias-disable;
+                       drive-strength = <2>;
+                       input-disable;
+                       input-schmitt-disable;
+                       slew-rate = <0>;
+               };
+       };
+
+       pwm_pins: pwm-0 {
+               pwm-pins {
+                       pinmux = <GPIOMUX(46, GPOUT_SYS_PWM_CHANNEL0,
+                                             GPOEN_SYS_PWM0_CHANNEL0,
+                                             GPI_NONE)>,
+                                <GPIOMUX(59, GPOUT_SYS_PWM_CHANNEL1,
+                                             GPOEN_SYS_PWM0_CHANNEL1,
+                                             GPI_NONE)>;
+                       bias-disable;
+                       drive-strength = <12>;
+                       input-disable;
+                       input-schmitt-disable;
+                       slew-rate = <0>;
+               };
+       };
+
+       spi0_pins: spi0-0 {
+               mosi-pins {
+                       pinmux = <GPIOMUX(52, GPOUT_SYS_SPI0_TXD,
+                                             GPOEN_ENABLE,
+                                             GPI_NONE)>;
+                       bias-disable;
+                       input-disable;
+                       input-schmitt-disable;
+               };
+
+               miso-pins {
+                       pinmux = <GPIOMUX(53, GPOUT_LOW,
+                                             GPOEN_DISABLE,
+                                             GPI_SYS_SPI0_RXD)>;
+                       bias-pull-up;
+                       input-enable;
+                       input-schmitt-enable;
+               };
+
+               sck-pins {
+                       pinmux = <GPIOMUX(48, GPOUT_SYS_SPI0_CLK,
+                                             GPOEN_ENABLE,
+                                             GPI_SYS_SPI0_CLK)>;
+                       bias-disable;
+                       input-disable;
+                       input-schmitt-disable;
+               };
+
+               ss-pins {
+                       pinmux = <GPIOMUX(49, GPOUT_SYS_SPI0_FSS,
+                                             GPOEN_ENABLE,
+                                             GPI_SYS_SPI0_FSS)>;
+                       bias-disable;
+                       input-disable;
+                       input-schmitt-disable;
+               };
+       };
+
+       uart0_pins: uart0-0 {
+               tx-pins {
+                       pinmux = <GPIOMUX(5, GPOUT_SYS_UART0_TX,
+                                            GPOEN_ENABLE,
+                                            GPI_NONE)>;
+                       bias-disable;
+                       drive-strength = <12>;
+                       input-disable;
+                       input-schmitt-disable;
+                       slew-rate = <0>;
+               };
+
+               rx-pins {
+                       pinmux = <GPIOMUX(6, GPOUT_LOW,
+                                            GPOEN_DISABLE,
+                                            GPI_SYS_UART0_RX)>;
+                       bias-disable; /* external pull-up */
+                       drive-strength = <2>;
+                       input-enable;
+                       input-schmitt-enable;
+                       slew-rate = <0>;
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins>;
+       status = "okay";
+};
+
+&usb0 {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&U74_1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&U74_2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&U74_3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&U74_4 {
+       cpu-supply = <&vdd_cpu>;
+};
diff --git a/src/riscv/starfive/jh7110-milkv-mars.dts b/src/riscv/starfive/jh7110-milkv-mars.dts
new file mode 100644 (file)
index 0000000..fa0eac7
--- /dev/null
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2023 Jisheng Zhang <jszhang@kernel.org>
+ */
+
+/dts-v1/;
+#include "jh7110-common.dtsi"
+
+/ {
+       model = "Milk-V Mars";
+       compatible = "milkv,mars", "starfive,jh7110";
+};
+
+&gmac0 {
+       starfive,tx-use-rgmii-clk;
+       assigned-clocks = <&aoncrg JH7110_AONCLK_GMAC0_TX>;
+       assigned-clock-parents = <&aoncrg JH7110_AONCLK_GMAC0_RMII_RTX>;
+};
+
+
+&phy0 {
+       motorcomm,tx-clk-adj-enabled;
+       motorcomm,tx-clk-10-inverted;
+       motorcomm,tx-clk-100-inverted;
+       motorcomm,tx-clk-1000-inverted;
+       motorcomm,rx-clk-drv-microamp = <3970>;
+       motorcomm,rx-data-drv-microamp = <2910>;
+       rx-internal-delay-ps = <1500>;
+       tx-internal-delay-ps = <1500>;
+};
index 45b58b6f3df88e81aea2bc4f5eca344d03362bac..9d70f21c86fc6e56e849a0efab63329c87e32e24 100644 (file)
  */
 
 /dts-v1/;
-#include "jh7110.dtsi"
-#include "jh7110-pinfunc.h"
-#include <dt-bindings/gpio/gpio.h>
+#include "jh7110-common.dtsi"
 
 / {
        aliases {
-               ethernet0 = &gmac0;
                ethernet1 = &gmac1;
-               i2c0 = &i2c0;
-               i2c2 = &i2c2;
-               i2c5 = &i2c5;
-               i2c6 = &i2c6;
-               mmc0 = &mmc0;
-               mmc1 = &mmc1;
-               serial0 = &uart0;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       cpus {
-               timebase-frequency = <4000000>;
-       };
-
-       memory@40000000 {
-               device_type = "memory";
-               reg = <0x0 0x40000000 0x1 0x0>;
-       };
-
-       gpio-restart {
-               compatible = "gpio-restart";
-               gpios = <&sysgpio 35 GPIO_ACTIVE_HIGH>;
-               priority = <224>;
-       };
-
-       pwmdac_codec: pwmdac-codec {
-               compatible = "linux,spdif-dit";
-               #sound-dai-cells = <0>;
-       };
-
-       sound-pwmdac {
-               compatible = "simple-audio-card";
-               simple-audio-card,name = "StarFive-PWMDAC-Sound-Card";
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               simple-audio-card,dai-link@0 {
-                       reg = <0>;
-                       format = "left_j";
-                       bitclock-master = <&sndcpu0>;
-                       frame-master = <&sndcpu0>;
-
-                       sndcpu0: cpu {
-                               sound-dai = <&pwmdac>;
-                       };
-
-                       codec {
-                               sound-dai = <&pwmdac_codec>;
-                       };
-               };
-       };
-};
-
-&dvp_clk {
-       clock-frequency = <74250000>;
-};
-
-&gmac0_rgmii_rxin {
-       clock-frequency = <125000000>;
-};
-
-&gmac0_rmii_refin {
-       clock-frequency = <50000000>;
-};
-
-&gmac1_rgmii_rxin {
-       clock-frequency = <125000000>;
-};
-
-&gmac1_rmii_refin {
-       clock-frequency = <50000000>;
-};
-
-&hdmitx0_pixelclk {
-       clock-frequency = <297000000>;
-};
-
-&i2srx_bclk_ext {
-       clock-frequency = <12288000>;
-};
-
-&i2srx_lrck_ext {
-       clock-frequency = <192000>;
-};
-
-&i2stx_bclk_ext {
-       clock-frequency = <12288000>;
-};
-
-&i2stx_lrck_ext {
-       clock-frequency = <192000>;
-};
-
-&mclk_ext {
-       clock-frequency = <12288000>;
-};
-
-&osc {
-       clock-frequency = <24000000>;
-};
-
-&rtc_osc {
-       clock-frequency = <32768>;
-};
-
-&tdm_ext {
-       clock-frequency = <49152000>;
-};
-
-&camss {
-       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>;
-               #size-cells = <0>;
-
-               port@0 {
-                       reg = <0>;
-               };
-
-               port@1 {
-                       reg = <1>;
-
-                       camss_from_csi2rx: endpoint {
-                               remote-endpoint = <&csi2rx_to_camss>;
-                       };
-               };
-       };
-};
-
-&csi2rx {
-       assigned-clocks = <&ispcrg JH7110_ISPCLK_VIN_SYS>;
-       assigned-clock-rates = <297000000>;
-       status = "okay";
-
-       ports {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               port@0 {
-                       reg = <0>;
-
-                       /* remote MIPI sensor endpoint */
-               };
-
-               port@1 {
-                       reg = <1>;
-
-                       csi2rx_to_camss: endpoint {
-                               remote-endpoint = <&camss_from_csi2rx>;
-                       };
-               };
-       };
-};
-
-&gmac0 {
-       phy-handle = <&phy0>;
-       phy-mode = "rgmii-id";
-       status = "okay";
-
-       mdio {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               compatible = "snps,dwmac-mdio";
-
-               phy0: ethernet-phy@0 {
-                       reg = <0>;
-               };
        };
 };
 
        };
 };
 
-&i2c0 {
-       clock-frequency = <100000>;
-       i2c-sda-hold-time-ns = <300>;
-       i2c-sda-falling-time-ns = <510>;
-       i2c-scl-falling-time-ns = <510>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c0_pins>;
-       status = "okay";
-};
-
-&i2c2 {
-       clock-frequency = <100000>;
-       i2c-sda-hold-time-ns = <300>;
-       i2c-sda-falling-time-ns = <510>;
-       i2c-scl-falling-time-ns = <510>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c2_pins>;
-       status = "okay";
-};
-
-&i2c5 {
-       clock-frequency = <100000>;
-       i2c-sda-hold-time-ns = <300>;
-       i2c-sda-falling-time-ns = <510>;
-       i2c-scl-falling-time-ns = <510>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c5_pins>;
-       status = "okay";
-
-       axp15060: pmic@36 {
-               compatible = "x-powers,axp15060";
-               reg = <0x36>;
-               interrupts = <0>;
-               interrupt-controller;
-               #interrupt-cells = <1>;
-
-               regulators {
-                       vcc_3v3: dcdc1 {
-                               regulator-boot-on;
-                               regulator-always-on;
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-name = "vcc_3v3";
-                       };
-
-                       vdd_cpu: dcdc2 {
-                               regulator-always-on;
-                               regulator-min-microvolt = <500000>;
-                               regulator-max-microvolt = <1540000>;
-                               regulator-name = "vdd-cpu";
-                       };
-
-                       emmc_vdd: aldo4 {
-                               regulator-boot-on;
-                               regulator-always-on;
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                               regulator-name = "emmc_vdd";
-                       };
-               };
-       };
-};
-
-&i2c6 {
-       clock-frequency = <100000>;
-       i2c-sda-hold-time-ns = <300>;
-       i2c-sda-falling-time-ns = <510>;
-       i2c-scl-falling-time-ns = <510>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c6_pins>;
-       status = "okay";
-};
-
-&i2srx {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2srx_pins>;
-       status = "okay";
-};
-
-&i2stx0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&mclk_ext_pins>;
-       status = "okay";
-};
-
-&i2stx1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2stx1_pins>;
-       status = "okay";
-};
-
 &mmc0 {
-       max-frequency = <100000000>;
-       assigned-clocks = <&syscrg JH7110_SYSCLK_SDIO0_SDCARD>;
-       assigned-clock-rates = <50000000>;
-       bus-width = <8>;
-       cap-mmc-highspeed;
-       mmc-ddr-1_8v;
-       mmc-hs200-1_8v;
        non-removable;
-       cap-mmc-hw-reset;
-       post-power-on-delay-ms = <200>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&mmc0_pins>;
-       vmmc-supply = <&vcc_3v3>;
-       vqmmc-supply = <&emmc_vdd>;
-       status = "okay";
-};
-
-&mmc1 {
-       max-frequency = <100000000>;
-       assigned-clocks = <&syscrg JH7110_SYSCLK_SDIO1_SDCARD>;
-       assigned-clock-rates = <50000000>;
-       bus-width = <4>;
-       no-sdio;
-       no-mmc;
-       broken-cd;
-       cap-sd-highspeed;
-       post-power-on-delay-ms = <200>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&mmc1_pins>;
-       status = "okay";
-};
-
-&pwmdac {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pwmdac_pins>;
-       status = "okay";
-};
-
-&qspi {
-       #address-cells = <1>;
-       #size-cells = <0>;
-       status = "okay";
-
-       nor_flash: flash@0 {
-               compatible = "jedec,spi-nor";
-               reg = <0>;
-               cdns,read-delay = <5>;
-               spi-max-frequency = <12000000>;
-               cdns,tshsl-ns = <1>;
-               cdns,tsd2d-ns = <1>;
-               cdns,tchsh-ns = <1>;
-               cdns,tslch-ns = <1>;
-
-               partitions {
-                       compatible = "fixed-partitions";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-
-                       spl@0 {
-                               reg = <0x0 0x80000>;
-                       };
-                       uboot-env@f0000 {
-                               reg = <0xf0000 0x10000>;
-                       };
-                       uboot@100000 {
-                               reg = <0x100000 0x400000>;
-                       };
-                       reserved-data@600000 {
-                               reg = <0x600000 0xa00000>;
-                       };
-               };
-       };
-};
-
-&pwm {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pwm_pins>;
-       status = "okay";
-};
-
-&spi0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&spi0_pins>;
-       status = "okay";
-
-       spi_dev0: spi@0 {
-               compatible = "rohm,dh2228fv";
-               reg = <0>;
-               spi-max-frequency = <10000000>;
-       };
-};
-
-&sysgpio {
-       i2c0_pins: i2c0-0 {
-               i2c-pins {
-                       pinmux = <GPIOMUX(57, GPOUT_LOW,
-                                             GPOEN_SYS_I2C0_CLK,
-                                             GPI_SYS_I2C0_CLK)>,
-                                <GPIOMUX(58, GPOUT_LOW,
-                                             GPOEN_SYS_I2C0_DATA,
-                                             GPI_SYS_I2C0_DATA)>;
-                       bias-disable; /* external pull-up */
-                       input-enable;
-                       input-schmitt-enable;
-               };
-       };
-
-       i2c2_pins: i2c2-0 {
-               i2c-pins {
-                       pinmux = <GPIOMUX(3, GPOUT_LOW,
-                                            GPOEN_SYS_I2C2_CLK,
-                                            GPI_SYS_I2C2_CLK)>,
-                                <GPIOMUX(2, GPOUT_LOW,
-                                            GPOEN_SYS_I2C2_DATA,
-                                            GPI_SYS_I2C2_DATA)>;
-                       bias-disable; /* external pull-up */
-                       input-enable;
-                       input-schmitt-enable;
-               };
-       };
-
-       i2c5_pins: i2c5-0 {
-               i2c-pins {
-                       pinmux = <GPIOMUX(19, GPOUT_LOW,
-                                             GPOEN_SYS_I2C5_CLK,
-                                             GPI_SYS_I2C5_CLK)>,
-                                <GPIOMUX(20, GPOUT_LOW,
-                                             GPOEN_SYS_I2C5_DATA,
-                                             GPI_SYS_I2C5_DATA)>;
-                       bias-disable; /* external pull-up */
-                       input-enable;
-                       input-schmitt-enable;
-               };
-       };
-
-       i2c6_pins: i2c6-0 {
-               i2c-pins {
-                       pinmux = <GPIOMUX(16, GPOUT_LOW,
-                                             GPOEN_SYS_I2C6_CLK,
-                                             GPI_SYS_I2C6_CLK)>,
-                                <GPIOMUX(17, GPOUT_LOW,
-                                             GPOEN_SYS_I2C6_DATA,
-                                             GPI_SYS_I2C6_DATA)>;
-                       bias-disable; /* external pull-up */
-                       input-enable;
-                       input-schmitt-enable;
-               };
-       };
-
-       i2srx_pins: i2srx-0 {
-               clk-sd-pins {
-                       pinmux = <GPIOMUX(38, GPOUT_LOW,
-                                             GPOEN_DISABLE,
-                                             GPI_SYS_I2SRX_BCLK)>,
-                                <GPIOMUX(63, GPOUT_LOW,
-                                             GPOEN_DISABLE,
-                                             GPI_SYS_I2SRX_LRCK)>,
-                                <GPIOMUX(38, GPOUT_LOW,
-                                             GPOEN_DISABLE,
-                                             GPI_SYS_I2STX1_BCLK)>,
-                                <GPIOMUX(63, GPOUT_LOW,
-                                             GPOEN_DISABLE,
-                                             GPI_SYS_I2STX1_LRCK)>,
-                                <GPIOMUX(61, GPOUT_LOW,
-                                             GPOEN_DISABLE,
-                                             GPI_SYS_I2SRX_SDIN0)>;
-                       input-enable;
-               };
-       };
-
-       i2stx1_pins: i2stx1-0 {
-               sd-pins {
-                       pinmux = <GPIOMUX(44, GPOUT_SYS_I2STX1_SDO0,
-                                             GPOEN_ENABLE,
-                                             GPI_NONE)>;
-                       bias-disable;
-                       input-disable;
-               };
-       };
-
-       mclk_ext_pins: mclk-ext-0 {
-               mclk-ext-pins {
-                       pinmux = <GPIOMUX(4, GPOUT_LOW,
-                                            GPOEN_DISABLE,
-                                            GPI_SYS_MCLK_EXT)>;
-                       input-enable;
-               };
-       };
-
-       mmc0_pins: mmc0-0 {
-                rst-pins {
-                       pinmux = <GPIOMUX(62, GPOUT_SYS_SDIO0_RST,
-                                             GPOEN_ENABLE,
-                                             GPI_NONE)>;
-                       bias-pull-up;
-                       drive-strength = <12>;
-                       input-disable;
-                       input-schmitt-disable;
-                       slew-rate = <0>;
-               };
-
-               mmc-pins {
-                       pinmux = <PINMUX(64, 0)>,
-                                <PINMUX(65, 0)>,
-                                <PINMUX(66, 0)>,
-                                <PINMUX(67, 0)>,
-                                <PINMUX(68, 0)>,
-                                <PINMUX(69, 0)>,
-                                <PINMUX(70, 0)>,
-                                <PINMUX(71, 0)>,
-                                <PINMUX(72, 0)>,
-                                <PINMUX(73, 0)>;
-                       bias-pull-up;
-                       drive-strength = <12>;
-                       input-enable;
-               };
-       };
-
-       mmc1_pins: mmc1-0 {
-               clk-pins {
-                       pinmux = <GPIOMUX(10, GPOUT_SYS_SDIO1_CLK,
-                                             GPOEN_ENABLE,
-                                             GPI_NONE)>;
-                       bias-pull-up;
-                       drive-strength = <12>;
-                       input-disable;
-                       input-schmitt-disable;
-                       slew-rate = <0>;
-               };
-
-               mmc-pins {
-                       pinmux = <GPIOMUX(9, GPOUT_SYS_SDIO1_CMD,
-                                            GPOEN_SYS_SDIO1_CMD,
-                                            GPI_SYS_SDIO1_CMD)>,
-                                <GPIOMUX(11, GPOUT_SYS_SDIO1_DATA0,
-                                             GPOEN_SYS_SDIO1_DATA0,
-                                             GPI_SYS_SDIO1_DATA0)>,
-                                <GPIOMUX(12, GPOUT_SYS_SDIO1_DATA1,
-                                             GPOEN_SYS_SDIO1_DATA1,
-                                             GPI_SYS_SDIO1_DATA1)>,
-                                <GPIOMUX(7, GPOUT_SYS_SDIO1_DATA2,
-                                            GPOEN_SYS_SDIO1_DATA2,
-                                            GPI_SYS_SDIO1_DATA2)>,
-                                <GPIOMUX(8, GPOUT_SYS_SDIO1_DATA3,
-                                            GPOEN_SYS_SDIO1_DATA3,
-                                            GPI_SYS_SDIO1_DATA3)>;
-                       bias-pull-up;
-                       drive-strength = <12>;
-                       input-enable;
-                       input-schmitt-enable;
-                       slew-rate = <0>;
-               };
-       };
-
-       pwmdac_pins: pwmdac-0 {
-               pwmdac-pins {
-                       pinmux = <GPIOMUX(33, GPOUT_SYS_PWMDAC_LEFT,
-                                             GPOEN_ENABLE,
-                                             GPI_NONE)>,
-                                <GPIOMUX(34, GPOUT_SYS_PWMDAC_RIGHT,
-                                             GPOEN_ENABLE,
-                                             GPI_NONE)>;
-                       bias-disable;
-                       drive-strength = <2>;
-                       input-disable;
-                       input-schmitt-disable;
-                       slew-rate = <0>;
-               };
-       };
-
-       pwm_pins: pwm-0 {
-               pwm-pins {
-                       pinmux = <GPIOMUX(46, GPOUT_SYS_PWM_CHANNEL0,
-                                             GPOEN_SYS_PWM0_CHANNEL0,
-                                             GPI_NONE)>,
-                                <GPIOMUX(59, GPOUT_SYS_PWM_CHANNEL1,
-                                             GPOEN_SYS_PWM0_CHANNEL1,
-                                             GPI_NONE)>;
-                       bias-disable;
-                       drive-strength = <12>;
-                       input-disable;
-                       input-schmitt-disable;
-                       slew-rate = <0>;
-               };
-       };
-
-       spi0_pins: spi0-0 {
-               mosi-pins {
-                       pinmux = <GPIOMUX(52, GPOUT_SYS_SPI0_TXD,
-                                             GPOEN_ENABLE,
-                                             GPI_NONE)>;
-                       bias-disable;
-                       input-disable;
-                       input-schmitt-disable;
-               };
-
-               miso-pins {
-                       pinmux = <GPIOMUX(53, GPOUT_LOW,
-                                             GPOEN_DISABLE,
-                                             GPI_SYS_SPI0_RXD)>;
-                       bias-pull-up;
-                       input-enable;
-                       input-schmitt-enable;
-               };
-
-               sck-pins {
-                       pinmux = <GPIOMUX(48, GPOUT_SYS_SPI0_CLK,
-                                             GPOEN_ENABLE,
-                                             GPI_SYS_SPI0_CLK)>;
-                       bias-disable;
-                       input-disable;
-                       input-schmitt-disable;
-               };
-
-               ss-pins {
-                       pinmux = <GPIOMUX(49, GPOUT_SYS_SPI0_FSS,
-                                             GPOEN_ENABLE,
-                                             GPI_SYS_SPI0_FSS)>;
-                       bias-disable;
-                       input-disable;
-                       input-schmitt-disable;
-               };
-       };
-
-       tdm_pins: tdm-0 {
-               tx-pins {
-                       pinmux = <GPIOMUX(44, GPOUT_SYS_TDM_TXD,
-                                             GPOEN_ENABLE,
-                                             GPI_NONE)>;
-                       bias-pull-up;
-                       drive-strength = <2>;
-                       input-disable;
-                       input-schmitt-disable;
-                       slew-rate = <0>;
-               };
-
-               rx-pins {
-                       pinmux = <GPIOMUX(61, GPOUT_HIGH,
-                                             GPOEN_DISABLE,
-                                             GPI_SYS_TDM_RXD)>;
-                       input-enable;
-               };
-
-               sync-pins {
-                       pinmux = <GPIOMUX(63, GPOUT_HIGH,
-                                             GPOEN_DISABLE,
-                                             GPI_SYS_TDM_SYNC)>;
-                       input-enable;
-               };
-
-               pcmclk-pins {
-                       pinmux = <GPIOMUX(38, GPOUT_HIGH,
-                                             GPOEN_DISABLE,
-                                             GPI_SYS_TDM_CLK)>;
-                       input-enable;
-               };
-       };
-
-       uart0_pins: uart0-0 {
-               tx-pins {
-                       pinmux = <GPIOMUX(5, GPOUT_SYS_UART0_TX,
-                                            GPOEN_ENABLE,
-                                            GPI_NONE)>;
-                       bias-disable;
-                       drive-strength = <12>;
-                       input-disable;
-                       input-schmitt-disable;
-                       slew-rate = <0>;
-               };
-
-               rx-pins {
-                       pinmux = <GPIOMUX(6, GPOUT_LOW,
-                                            GPOEN_DISABLE,
-                                            GPI_SYS_UART0_RX)>;
-                       bias-disable; /* external pull-up */
-                       drive-strength = <2>;
-                       input-enable;
-                       input-schmitt-enable;
-                       slew-rate = <0>;
-               };
-       };
-};
-
-&tdm {
-       pinctrl-names = "default";
-       pinctrl-0 = <&tdm_pins>;
-       status = "okay";
-};
-
-&uart0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&uart0_pins>;
-       status = "okay";
-};
-
-&usb0 {
-       dr_mode = "peripheral";
-       status = "okay";
-};
-
-&U74_1 {
-       cpu-supply = <&vdd_cpu>;
-};
-
-&U74_2 {
-       cpu-supply = <&vdd_cpu>;
-};
-
-&U74_3 {
-       cpu-supply = <&vdd_cpu>;
-};
-
-&U74_4 {
-       cpu-supply = <&vdd_cpu>;
 };
index 4a5708f7fcf7292f63fe975f3fd26cd7becc90d2..18047195c600bdca0f98ac64337d79e91ce202ab 100644 (file)
@@ -15,7 +15,7 @@
        #address-cells = <2>;
        #size-cells = <2>;
 
-       cpus {
+       cpus: cpus {
                #address-cells = <1>;
                #size-cells = <0>;
 
index 8b915e206f3a01a1f7cfb5a3a78217b3df2e26a0..d2fa25839012c3852867e331cd3c042bf0474ea7 100644 (file)
                        status = "disabled";
                };
 
+               emmc: mmc@ffe7080000 {
+                       compatible = "thead,th1520-dwcmshc";
+                       reg = <0xff 0xe7080000 0x0 0x10000>;
+                       interrupts = <62 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&sdhci_clk>;
+                       clock-names = "core";
+                       status = "disabled";
+               };
+
+               sdio0: mmc@ffe7090000 {
+                       compatible = "thead,th1520-dwcmshc";
+                       reg = <0xff 0xe7090000 0x0 0x10000>;
+                       interrupts = <64 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&sdhci_clk>;
+                       clock-names = "core";
+                       status = "disabled";
+               };
+
+               sdio1: mmc@ffe70a0000 {
+                       compatible = "thead,th1520-dwcmshc";
+                       reg = <0xff 0xe70a0000 0x0 0x10000>;
+                       interrupts = <71 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&sdhci_clk>;
+                       clock-names = "core";
+                       status = "disabled";
+               };
+
                uart1: serial@ffe7f00000 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0xff 0xe7f00000 0x0 0x100>;
                        status = "disabled";
                };
 
-               emmc: mmc@ffe7080000 {
-                       compatible = "thead,th1520-dwcmshc";
-                       reg = <0xff 0xe7080000 0x0 0x10000>;
-                       interrupts = <62 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&sdhci_clk>;
-                       clock-names = "core";
-                       status = "disabled";
-               };
-
-               sdio0: mmc@ffe7090000 {
-                       compatible = "thead,th1520-dwcmshc";
-                       reg = <0xff 0xe7090000 0x0 0x10000>;
-                       interrupts = <64 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&sdhci_clk>;
-                       clock-names = "core";
-                       status = "disabled";
-               };
-
-               sdio1: mmc@ffe70a0000 {
-                       compatible = "thead,th1520-dwcmshc";
-                       reg = <0xff 0xe70a0000 0x0 0x10000>;
-                       interrupts = <71 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&sdhci_clk>;
-                       clock-names = "core";
-                       status = "disabled";
-               };
-
                timer0: timer@ffefc32000 {
                        compatible = "snps,dw-apb-timer";
                        reg = <0xff 0xefc32000 0x0 0x14>;
index fa9562f78d532c495d079c44e9a422d651124d72..faf884f53804d6e32e24066d0711c01de77cff1f 100644 (file)
@@ -71,8 +71,6 @@
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       spi-max-frequency = <25000000>;
-
                        reg = <0x40 0x8>;
 
                        sdcard@0 {