GIT 3599b0c972155f0b32c04d7d1ebddf11465df8d3 Signed-off-by: Andrew Morton --- .gitignore | 6 .rustfmt.toml | 12 Documentation/ABI/testing/debugfs-hisi-hpre | 14 Documentation/ABI/testing/debugfs-hisi-sec | 14 Documentation/ABI/testing/debugfs-hisi-zip | 14 Documentation/ABI/testing/securityfs-secrets-coco | 51 Documentation/ABI/testing/sysfs-driver-ccp | 87 Documentation/RCU/Design/Data-Structures/Data-Structures.rst | 2 Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.rst | 2 Documentation/RCU/Design/Requirements/Requirements.rst | 36 Documentation/RCU/arrayRCU.rst | 4 Documentation/RCU/checklist.rst | 9 Documentation/RCU/rcu.rst | 13 Documentation/RCU/rculist_nulls.rst | 2 Documentation/RCU/stallwarn.rst | 18 Documentation/RCU/whatisRCU.rst | 18 Documentation/admin-guide/kernel-parameters.rst | 11 Documentation/admin-guide/kernel-parameters.txt | 434 Documentation/core-api/index.rst | 2 Documentation/core-api/printk-index.rst | 137 Documentation/core-api/timekeeping.rst | 1 Documentation/core-api/watch_queue.rst | 343 Documentation/dev-tools/kunit/api/index.rst | 5 Documentation/dev-tools/kunit/api/resource.rst | 13 Documentation/dev-tools/kunit/architecture.rst | 2 Documentation/dev-tools/kunit/running_tips.rst | 3 Documentation/dev-tools/testing-overview.rst | 63 Documentation/devicetree/bindings/arm/arm,corstone1000.yaml | 45 Documentation/devicetree/bindings/arm/fsl.yaml | 83 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-pcie-mirror.yaml | 42 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt7622-wed.yaml | 50 Documentation/devicetree/bindings/arm/omap/prcm.txt | 7 Documentation/devicetree/bindings/arm/qcom.yaml | 21 Documentation/devicetree/bindings/arm/renesas.yaml | 2 Documentation/devicetree/bindings/arm/rockchip.yaml | 5 Documentation/devicetree/bindings/arm/sunxi.yaml | 5 Documentation/devicetree/bindings/arm/syna.txt | 4 Documentation/devicetree/bindings/arm/tegra/nvidia,tegra-ccplex-cluster.yaml | 52 Documentation/devicetree/bindings/ata/renesas,rcar-sata.yaml | 1 Documentation/devicetree/bindings/bus/qcom,ssc-block-bus.yaml | 147 Documentation/devicetree/bindings/clock/qcom,rpmcc.txt | 63 Documentation/devicetree/bindings/clock/qcom,rpmcc.yaml | 75 Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml | 172 Documentation/devicetree/bindings/clock/renesas,h8300-div-clock.txt | 24 Documentation/devicetree/bindings/clock/renesas,rzg2l-cpg.yaml | 7 Documentation/devicetree/bindings/clock/rockchip,rk3399-cru.yaml | 33 Documentation/devicetree/bindings/clock/samsung,exynos4412-isp-clock.yaml | 1 Documentation/devicetree/bindings/clock/st,stm32mp1-rcc.yaml | 8 Documentation/devicetree/bindings/clock/ti-clkctrl.txt | 4 Documentation/devicetree/bindings/clock/ti/clockdomain.txt | 3 Documentation/devicetree/bindings/clock/ti/composite.txt | 3 Documentation/devicetree/bindings/clock/ti/fixed-factor-clock.txt | 1 Documentation/devicetree/bindings/clock/ti/gate.txt | 1 Documentation/devicetree/bindings/clock/ti/interface.txt | 1 Documentation/devicetree/bindings/clock/ti/mux.txt | 1 Documentation/devicetree/bindings/crypto/allwinner,sun8i-ce.yaml | 1 Documentation/devicetree/bindings/crypto/ti,sa2ul.yaml | 1 Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt | 212 Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml | 1 Documentation/devicetree/bindings/display/bridge/chipone,icn6211.yaml | 18 Documentation/devicetree/bindings/display/bridge/google,cros-ec-anx7688.yaml | 1 Documentation/devicetree/bindings/display/bridge/ite,it66121.yaml | 3 Documentation/devicetree/bindings/display/bridge/lontium,lt9211.yaml | 117 Documentation/devicetree/bindings/display/bridge/ps8640.yaml | 1 Documentation/devicetree/bindings/display/bridge/toshiba,tc358767.yaml | 22 Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml | 1 Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml | 1 Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml | 1 Documentation/devicetree/bindings/display/panel/leadtek,ltk035c5444t.yaml | 59 Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.yaml | 1 Documentation/devicetree/bindings/display/sitronix,st7735r.yaml | 6 Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml | 95 Documentation/devicetree/bindings/display/sprd/sprd,display-subsystem.yaml | 1 Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml | 1 Documentation/devicetree/bindings/dma/altr,msgdma.yaml | 2 Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml | 110 Documentation/devicetree/bindings/dma/qcom,gpi.yaml | 3 Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml | 19 Documentation/devicetree/bindings/dma/st,stm32-dmamux.yaml | 1 Documentation/devicetree/bindings/dma/st,stm32-mdma.yaml | 1 Documentation/devicetree/bindings/dma/xilinx/xilinx_dma.txt | 6 Documentation/devicetree/bindings/example-schema.yaml | 14 Documentation/devicetree/bindings/extcon/siliconmitus,sm5502-muic.yaml | 5 Documentation/devicetree/bindings/firmware/qcom,scm.txt | 3 Documentation/devicetree/bindings/gpio/realtek,otto-gpio.yaml | 34 Documentation/devicetree/bindings/gpio/renesas,rcar-gpio.yaml | 5 Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml | 17 Documentation/devicetree/bindings/gpu/samsung-rotator.yaml | 1 Documentation/devicetree/bindings/h8300/cpu.txt | 13 Documentation/devicetree/bindings/hwmon/adt7475.yaml | 1 Documentation/devicetree/bindings/hwmon/ti,tmp421.yaml | 7 Documentation/devicetree/bindings/i2c/i2c-gate.yaml | 1 Documentation/devicetree/bindings/i2c/i2c-mt65xx.txt | 53 Documentation/devicetree/bindings/i2c/i2c-mt65xx.yaml | 118 Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.yaml | 1 Documentation/devicetree/bindings/i2c/qcom,i2c-qup.txt | 40 Documentation/devicetree/bindings/i2c/qcom,i2c-qup.yaml | 89 Documentation/devicetree/bindings/iio/adc/adi,ad7291.yaml | 1 Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml | 7 Documentation/devicetree/bindings/iio/dac/lltc,ltc1660.yaml | 2 Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml | 34 Documentation/devicetree/bindings/iio/st,st-sensors.yaml | 1 Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml | 960 + Documentation/devicetree/bindings/interconnect/qcom,bcm-voter.yaml | 8 Documentation/devicetree/bindings/interrupt-controller/qcom,pdc.txt | 6 Documentation/devicetree/bindings/interrupt-controller/renesas,h8300h-intc.txt | 22 Documentation/devicetree/bindings/interrupt-controller/renesas,h8s-intc.txt | 22 Documentation/devicetree/bindings/iommu/samsung,sysmmu.yaml | 1 Documentation/devicetree/bindings/leds/backlight/qcom-wled.yaml | 2 Documentation/devicetree/bindings/mailbox/amlogic,meson-gxbb-mhu.yaml | 1 Documentation/devicetree/bindings/media/microchip,xisc.yaml | 1 Documentation/devicetree/bindings/memory-controllers/fsl/fsl,ddr.yaml | 6 Documentation/devicetree/bindings/memory-controllers/renesas,h8300-bsc.yaml | 35 Documentation/devicetree/bindings/memory-controllers/renesas,rpc-if.yaml | 5 Documentation/devicetree/bindings/memory-controllers/rockchip,rk3399-dmc.yaml | 384 Documentation/devicetree/bindings/mfd/atmel-flexcom.txt | 2 Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml | 31 Documentation/devicetree/bindings/mmc/marvell,dove-sdhci.yaml | 44 Documentation/devicetree/bindings/mmc/marvell,orion-sdio.yaml | 44 Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.txt | 173 Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.yaml | 275 Documentation/devicetree/bindings/mmc/mmc-controller.yaml | 5 Documentation/devicetree/bindings/mmc/mtk-sd.yaml | 15 Documentation/devicetree/bindings/mmc/orion-sdio.txt | 16 Documentation/devicetree/bindings/mmc/sdhci-dove.txt | 14 Documentation/devicetree/bindings/mtd/elm.txt | 16 Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt | 2 Documentation/devicetree/bindings/mtd/jedec,spi-nor.yaml | 8 Documentation/devicetree/bindings/mtd/ti,elm.yaml | 72 Documentation/devicetree/bindings/net/can/ctu,ctucanfd.yaml | 63 Documentation/devicetree/bindings/net/can/microchip,mcp251xfd.yaml | 19 Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml | 1 Documentation/devicetree/bindings/net/dsa/realtek.yaml | 35 Documentation/devicetree/bindings/net/mediatek-net.txt | 10 Documentation/devicetree/bindings/net/mscc,miim.yaml | 61 Documentation/devicetree/bindings/net/mscc-miim.txt | 26 Documentation/devicetree/bindings/net/qcom,ipa.yaml | 7 Documentation/devicetree/bindings/net/smsc,lan91c111.yaml | 61 Documentation/devicetree/bindings/net/smsc-lan91c111.txt | 17 Documentation/devicetree/bindings/net/ti,k3-am654-cpts.yaml | 1 Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml | 2 Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml | 137 Documentation/devicetree/bindings/nvmem/apple,efuses.yaml | 50 Documentation/devicetree/bindings/nvmem/snvs-lpgpr.yaml | 4 Documentation/devicetree/bindings/pci/layerscape-pci.txt | 65 Documentation/devicetree/bindings/pci/qcom,pcie.txt | 5 Documentation/devicetree/bindings/pci/socionext,uniphier-pcie.yaml | 96 Documentation/devicetree/bindings/pci/uniphier-pcie.txt | 82 Documentation/devicetree/bindings/phy/allwinner,sun6i-a31-mipi-dphy.yaml | 12 Documentation/devicetree/bindings/phy/mixel,mipi-dsi-phy.txt | 29 Documentation/devicetree/bindings/phy/mixel,mipi-dsi-phy.yaml | 107 Documentation/devicetree/bindings/phy/qcom,qmp-phy.yaml | 4 Documentation/devicetree/bindings/phy/socionext,uniphier-ahci-phy.yaml | 91 Documentation/devicetree/bindings/phy/socionext,uniphier-pcie-phy.yaml | 47 Documentation/devicetree/bindings/phy/socionext,uniphier-usb2-phy.yaml | 3 Documentation/devicetree/bindings/phy/socionext,uniphier-usb3hs-phy.yaml | 89 Documentation/devicetree/bindings/phy/socionext,uniphier-usb3ss-phy.yaml | 98 Documentation/devicetree/bindings/pinctrl/aspeed,ast2600-pinctrl.yaml | 4 Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.txt | 87 Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.yaml | 113 Documentation/devicetree/bindings/pinctrl/marvell,ac5-pinctrl.yaml | 72 Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.txt | 42 Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.yaml | 108 Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml | 147 Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.yaml | 2 Documentation/devicetree/bindings/pinctrl/ralink,mt7620-pinctrl.yaml | 87 Documentation/devicetree/bindings/pinctrl/ralink,mt7621-pinctrl.yaml | 69 Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinctrl.yaml | 68 Documentation/devicetree/bindings/pinctrl/ralink,rt2880-pinmux.yaml | 68 Documentation/devicetree/bindings/pinctrl/ralink,rt305x-pinctrl.yaml | 89 Documentation/devicetree/bindings/pinctrl/ralink,rt3883-pinctrl.yaml | 69 Documentation/devicetree/bindings/pinctrl/renesas,rzg2l-pinctrl.yaml | 5 Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.yaml | 1 Documentation/devicetree/bindings/power/amlogic,meson-sec-pwrc.yaml | 1 Documentation/devicetree/bindings/power/qcom,rpmpd.yaml | 1 Documentation/devicetree/bindings/power/renesas,rcar-sysc.yaml | 15 Documentation/devicetree/bindings/power/renesas,rzg2l-sysc.yaml | 5 Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml | 1 Documentation/devicetree/bindings/power/supply/power-supply.yaml | 1 Documentation/devicetree/bindings/power/supply/ti,lp8727.yaml | 1 Documentation/devicetree/bindings/power/supply/tps65217-charger.yaml | 2 Documentation/devicetree/bindings/powerpc/fsl/l2cache.txt | 6 Documentation/devicetree/bindings/regulator/mt6358-regulator.txt | 22 Documentation/devicetree/bindings/regulator/qcom,rpmh-regulator.yaml | 2 Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml | 5 Documentation/devicetree/bindings/regulator/richtek,rt4801-regulator.yaml | 7 Documentation/devicetree/bindings/regulator/richtek,rt5759-regulator.yaml | 90 Documentation/devicetree/bindings/regulator/socionext,uniphier-regulator.yaml | 58 Documentation/devicetree/bindings/regulator/st,stm32-vrefbuf.yaml | 1 Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt | 2 Documentation/devicetree/bindings/remoteproc/qcom,wcnss-pil.txt | 2 Documentation/devicetree/bindings/reserved-memory/phram.yaml | 47 Documentation/devicetree/bindings/reserved-memory/ramoops.yaml | 1 Documentation/devicetree/bindings/reset/amlogic,meson-reset.yaml | 1 Documentation/devicetree/bindings/reset/hisilicon,hi6220-reset.txt | 37 Documentation/devicetree/bindings/reset/microchip,rst.yaml | 1 Documentation/devicetree/bindings/reset/socionext,uniphier-glue-reset.yaml | 52 Documentation/devicetree/bindings/rng/intel,ixp46x-rng.yaml | 1 Documentation/devicetree/bindings/serial/fsl-lpuart.yaml | 4 Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt | 81 Documentation/devicetree/bindings/serial/qcom,msm-uartdm.yaml | 112 Documentation/devicetree/bindings/serial/qcom,serial-geni-qcom.yaml | 86 Documentation/devicetree/bindings/serial/renesas,em-uart.yaml | 9 Documentation/devicetree/bindings/serial/socionext,uniphier-uart.yaml | 5 Documentation/devicetree/bindings/serial/sprd-uart.yaml | 2 Documentation/devicetree/bindings/soc/amlogic/amlogic,canvas.yaml | 1 Documentation/devicetree/bindings/soc/qcom/qcom,geni-se.yaml | 102 Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.txt | 87 Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.yaml | 132 Documentation/devicetree/bindings/soc/qcom/qcom,rpmh-rsc.yaml | 272 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 12 Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt | 98 Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml | 137 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt | 110 Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.yaml | 145 Documentation/devicetree/bindings/soc/qcom/qcom,smsm.txt | 104 Documentation/devicetree/bindings/soc/qcom/qcom,smsm.yaml | 138 Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt | 131 Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.yaml | 137 Documentation/devicetree/bindings/soc/qcom/rpmh-rsc.txt | 137 Documentation/devicetree/bindings/soc/rockchip/grf.yaml | 3 Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml | 2 Documentation/devicetree/bindings/soc/ti/wkup-m3-ipc.yaml | 163 Documentation/devicetree/bindings/soc/ti/wkup_m3_ipc.txt | 57 Documentation/devicetree/bindings/sound/adi,adau1372.yaml | 1 Documentation/devicetree/bindings/sound/amlogic,gx-sound-card.yaml | 1 Documentation/devicetree/bindings/sound/cirrus,cs35l41.yaml | 44 Documentation/devicetree/bindings/sound/cirrus,cs35l45.yaml | 75 Documentation/devicetree/bindings/sound/maxim,max98390.yaml | 5 Documentation/devicetree/bindings/sound/maxim,max98520.yaml | 1 Documentation/devicetree/bindings/sound/mchp,spdifrx.yaml | 2 Documentation/devicetree/bindings/sound/mchp,spdiftx.yaml | 2 Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml | 32 Documentation/devicetree/bindings/sound/mt8195-mt6359-rt1011-rt5682.yaml | 51 Documentation/devicetree/bindings/sound/mt8195-mt6359-rt1019-rt5682.yaml | 61 Documentation/devicetree/bindings/sound/mt8195-mt6359.yaml | 64 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.yaml | 1 Documentation/devicetree/bindings/sound/nvidia,tegra186-asrc.yaml | 81 Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml | 4 Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml | 17 Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml | 17 Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml | 17 Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml | 11 Documentation/devicetree/bindings/sound/qcom,wcd938x.yaml | 3 Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml | 1 Documentation/devicetree/bindings/sound/samsung,odroid.yaml | 1 Documentation/devicetree/bindings/sound/tas2562.yaml | 1 Documentation/devicetree/bindings/sound/tas2764.yaml | 76 Documentation/devicetree/bindings/sound/tas2770.yaml | 1 Documentation/devicetree/bindings/sound/tas27xx.yaml | 77 Documentation/devicetree/bindings/sound/wlf,wm8731.yaml | 97 Documentation/devicetree/bindings/sound/wm8731.txt | 27 Documentation/devicetree/bindings/soundwire/qcom,sdw.txt | 14 Documentation/devicetree/bindings/spi/allwinner,sun6i-a31-spi.yaml | 1 Documentation/devicetree/bindings/spi/amlogic,meson-gx-spicc.yaml | 1 Documentation/devicetree/bindings/spi/amlogic,meson6-spifc.yaml | 1 Documentation/devicetree/bindings/spi/mediatek,spi-mt65xx.yaml | 4 Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.yaml | 4 Documentation/devicetree/bindings/spi/qcom,spi-qup.txt | 103 Documentation/devicetree/bindings/spi/qcom,spi-qup.yaml | 81 Documentation/devicetree/bindings/spi/renesas,hspi.yaml | 1 Documentation/devicetree/bindings/spi/spi-davinci.txt | 2 Documentation/devicetree/bindings/spi/spi-pl022.yaml | 2 Documentation/devicetree/bindings/staging/net/wireless/silabs,wfx.yaml | 137 Documentation/devicetree/bindings/thermal/qcom-spmi-adc-tm5.yaml | 110 Documentation/devicetree/bindings/thermal/qcom-tsens.yaml | 5 Documentation/devicetree/bindings/thermal/rzg2l-thermal.yaml | 1 Documentation/devicetree/bindings/trivial-devices.yaml | 4 Documentation/devicetree/bindings/usb/dwc2.yaml | 4 Documentation/devicetree/bindings/usb/samsung,exynos-usb2.yaml | 1 Documentation/devicetree/bindings/usb/smsc,usb3503.yaml | 2 Documentation/devicetree/bindings/vendor-prefixes.yaml | 6 Documentation/devicetree/bindings/watchdog/allwinner,sun4i-a10-wdt.yaml | 24 Documentation/devicetree/bindings/writing-bindings.rst | 25 Documentation/devicetree/bindings/writing-schema.rst | 8 Documentation/doc-guide/kernel-doc.rst | 5 Documentation/doc-guide/sphinx.rst | 5 Documentation/driver-api/dmaengine/provider.rst | 8 Documentation/driver-api/gpio/driver.rst | 175 Documentation/driver-api/index.rst | 1 Documentation/driver-api/libata.rst | 11 Documentation/driver-api/serial/driver.rst | 2 Documentation/driver-api/serial/index.rst | 2 Documentation/driver-api/serial/moxa-smartio.rst | 197 Documentation/driver-api/serial/n_gsm.rst | 159 Documentation/driver-api/thermal/intel_dptf.rst | 2 Documentation/driver-api/tty/index.rst | 73 Documentation/driver-api/tty/moxa-smartio.rst | 197 Documentation/driver-api/tty/n_gsm.rst | 153 Documentation/driver-api/tty/n_tty.rst | 22 Documentation/driver-api/tty/tty_buffer.rst | 46 Documentation/driver-api/tty/tty_driver.rst | 128 Documentation/driver-api/tty/tty_internals.rst | 31 Documentation/driver-api/tty/tty_ldisc.rst | 85 Documentation/driver-api/tty/tty_port.rst | 70 Documentation/driver-api/tty/tty_struct.rst | 81 Documentation/fault-injection/fault-injection.rst | 14 Documentation/features/core/cBPF-JIT/arch-support.txt | 1 Documentation/features/core/eBPF-JIT/arch-support.txt | 1 Documentation/features/core/generic-idle-thread/arch-support.txt | 1 Documentation/features/core/jump-labels/arch-support.txt | 1 Documentation/features/core/thread-info-in-task/arch-support.txt | 1 Documentation/features/core/tracehook/arch-support.txt | 1 Documentation/features/debug/KASAN/arch-support.txt | 1 Documentation/features/debug/debug-vm-pgtable/arch-support.txt | 1 Documentation/features/debug/gcov-profile-all/arch-support.txt | 1 Documentation/features/debug/kcov/arch-support.txt | 1 Documentation/features/debug/kgdb/arch-support.txt | 1 Documentation/features/debug/kmemleak/arch-support.txt | 1 Documentation/features/debug/kprobes-on-ftrace/arch-support.txt | 1 Documentation/features/debug/kprobes/arch-support.txt | 1 Documentation/features/debug/kretprobes/arch-support.txt | 1 Documentation/features/debug/optprobes/arch-support.txt | 1 Documentation/features/debug/stackprotector/arch-support.txt | 1 Documentation/features/debug/uprobes/arch-support.txt | 1 Documentation/features/debug/user-ret-profiler/arch-support.txt | 1 Documentation/features/io/dma-contiguous/arch-support.txt | 1 Documentation/features/locking/cmpxchg-local/arch-support.txt | 1 Documentation/features/locking/lockdep/arch-support.txt | 1 Documentation/features/locking/queued-rwlocks/arch-support.txt | 1 Documentation/features/locking/queued-spinlocks/arch-support.txt | 1 Documentation/features/perf/kprobes-event/arch-support.txt | 1 Documentation/features/perf/perf-regs/arch-support.txt | 1 Documentation/features/perf/perf-stackdump/arch-support.txt | 1 Documentation/features/sched/membarrier-sync-core/arch-support.txt | 1 Documentation/features/sched/numa-balancing/arch-support.txt | 1 Documentation/features/seccomp/seccomp-filter/arch-support.txt | 1 Documentation/features/time/arch-tick-broadcast/arch-support.txt | 1 Documentation/features/time/clockevents/arch-support.txt | 1 Documentation/features/time/context-tracking/arch-support.txt | 3 Documentation/features/time/irq-time-acct/arch-support.txt | 1 Documentation/features/time/virt-cpuacct/arch-support.txt | 3 Documentation/features/vm/ELF-ASLR/arch-support.txt | 1 Documentation/features/vm/PG_uncached/arch-support.txt | 1 Documentation/features/vm/THP/arch-support.txt | 1 Documentation/features/vm/TLB/arch-support.txt | 1 Documentation/features/vm/huge-vmap/arch-support.txt | 1 Documentation/features/vm/ioremap_prot/arch-support.txt | 1 Documentation/features/vm/pte_special/arch-support.txt | 1 Documentation/filesystems/zonefs.rst | 52 Documentation/firmware-guide/acpi/enumeration.rst | 3 Documentation/gpu/amdgpu/amdgpu-glossary.rst | 13 Documentation/gpu/drm-mm.rst | 9 Documentation/gpu/drm-uapi.rst | 4 Documentation/gpu/i915.rst | 14 Documentation/hwmon/aquacomputer_d5next.rst | 4 Documentation/hwmon/hwmon-kernel-api.rst | 16 Documentation/ide/ChangeLog.ide-cd.1994-2004 | 268 Documentation/ide/ChangeLog.ide-floppy.1996-2002 | 63 Documentation/ide/ChangeLog.ide-tape.1995-2002 | 257 Documentation/ide/changelogs.rst | 17 Documentation/ide/ide-tape.rst | 68 Documentation/ide/ide.rst | 265 Documentation/ide/index.rst | 21 Documentation/ide/warm-plug-howto.rst | 18 Documentation/index.rst | 4 Documentation/kbuild/kbuild.rst | 17 Documentation/kbuild/kconfig-language.rst | 6 Documentation/kbuild/makefiles.rst | 50 Documentation/kernel-hacking/hacking.rst | 36 Documentation/kernel-hacking/locking.rst | 5 Documentation/litmus-tests/locking/DCL-broken.litmus | 55 Documentation/litmus-tests/locking/DCL-fixed.litmus | 56 Documentation/litmus-tests/locking/RM-broken.litmus | 42 Documentation/litmus-tests/locking/RM-fixed.litmus | 42 Documentation/networking/device_drivers/can/ctu/ctucanfd-driver.rst | 639 + Documentation/networking/device_drivers/can/ctu/fsm_txt_buffer_user.svg | 151 Documentation/networking/device_drivers/ethernet/index.rst | 1 Documentation/networking/device_drivers/ethernet/marvell/octeon_ep.rst | 35 Documentation/networking/devlink/devlink-linecard.rst | 122 Documentation/networking/devlink/index.rst | 1 Documentation/networking/dsa/dsa.rst | 17 Documentation/networking/ethtool-netlink.rst | 8 Documentation/networking/ip-sysctl.rst | 27 Documentation/power/energy-model.rst | 24 Documentation/process/changes.rst | 49 Documentation/process/embargoed-hardware-issues.rst | 2 Documentation/process/maintainer-tip.rst | 14 Documentation/process/submitting-patches.rst | 5 Documentation/rust/arch-support.rst | 34 Documentation/rust/coding-guidelines.rst | 214 Documentation/rust/general-information.rst | 77 Documentation/rust/index.rst | 20 Documentation/rust/logo.svg | 357 Documentation/rust/quick-start.rst | 230 Documentation/scheduler/sched-stats.rst | 8 Documentation/security/index.rst | 1 Documentation/security/secrets/coco.rst | 103 Documentation/security/secrets/index.rst | 9 Documentation/security/siphash.rst | 42 Documentation/sound/alsa-configuration.rst | 4 Documentation/tools/rtla/common_appendix.rst | 3 Documentation/translations/zh_CN/admin-guide/mm/damon/reclaim.rst | 4 Documentation/translations/zh_CN/admin-guide/mm/damon/usage.rst | 291 Documentation/translations/zh_CN/index.rst | 2 Documentation/translations/zh_CN/locking/index.rst | 42 Documentation/translations/zh_CN/locking/spinlocks.rst | 149 Documentation/translations/zh_CN/process/howto.rst | 2 Documentation/translations/zh_CN/scheduler/index.rst | 2 Documentation/translations/zh_CN/scheduler/sched-debug.rst | 51 Documentation/translations/zh_CN/scheduler/schedutil.rst | 165 Documentation/translations/zh_CN/vm/damon/design.rst | 7 Documentation/translations/zh_CN/vm/frontswap.rst | 196 Documentation/translations/zh_CN/vm/hugetlbfs_reserv.rst | 436 Documentation/translations/zh_CN/vm/hwpoison.rst | 166 Documentation/translations/zh_CN/vm/index.rst | 25 Documentation/translations/zh_CN/vm/memory-model.rst | 135 Documentation/translations/zh_CN/vm/mmu_notifier.rst | 97 Documentation/translations/zh_CN/vm/overcommit-accounting.rst | 86 Documentation/translations/zh_CN/vm/page_frags.rst | 38 Documentation/translations/zh_CN/vm/page_owner.rst | 116 Documentation/translations/zh_CN/vm/page_table_check.rst | 56 Documentation/translations/zh_CN/vm/remap_file_pages.rst | 32 Documentation/translations/zh_CN/vm/split_page_table_lock.rst | 96 Documentation/translations/zh_CN/vm/z3fold.rst | 31 Documentation/translations/zh_CN/vm/zsmalloc.rst | 78 Documentation/tty/index.rst | 63 Documentation/tty/n_tty.rst | 22 Documentation/tty/tty_buffer.rst | 46 Documentation/tty/tty_driver.rst | 128 Documentation/tty/tty_internals.rst | 31 Documentation/tty/tty_ldisc.rst | 85 Documentation/tty/tty_port.rst | 70 Documentation/tty/tty_struct.rst | 81 Documentation/virt/coco/sevguest.rst | 155 Documentation/virt/index.rst | 1 Documentation/virt/kvm/api.rst | 161 Documentation/vm/arch_pgtable_helpers.rst | 10 Documentation/vm/slub.rst | 64 Documentation/w1/slaves/w1_therm.rst | 9 Documentation/watch_queue.rst | 343 Documentation/x86/cpuinfo.rst | 5 Documentation/x86/exception-tables.rst | 23 Documentation/x86/index.rst | 1 Documentation/x86/tdx.rst | 218 Documentation/x86/x86_64/boot-options.rst | 23 Documentation/x86/zero-page.rst | 2 MAINTAINERS | 139 Makefile | 182 arch/Kconfig | 18 arch/alpha/kernel/osf_sys.c | 1 arch/alpha/kernel/process.c | 2 arch/arm/Kconfig | 124 arch/arm/Kconfig.debug | 6 arch/arm/Makefile | 9 arch/arm/boot/compressed/misc-ep93xx.h | 86 arch/arm/boot/compressed/misc.c | 4 arch/arm/boot/dts/Makefile | 22 arch/arm/boot/dts/am335x-baltos.dtsi | 2 arch/arm/boot/dts/am335x-guardian.dts | 376 arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi | 2 arch/arm/boot/dts/am335x-moxa-uc-8100-common.dtsi | 2 arch/arm/boot/dts/am335x-phycore-som.dtsi | 2 arch/arm/boot/dts/am335x-sl50.dts | 2 arch/arm/boot/dts/am33xx-clocks.dtsi | 383 arch/arm/boot/dts/am33xx-l4.dtsi | 2 arch/arm/boot/dts/am3517-evm.dts | 45 arch/arm/boot/dts/am3517-som.dtsi | 9 arch/arm/boot/dts/am3874-iceboard.dts | 2 arch/arm/boot/dts/am437x-cm-t43.dts | 2 arch/arm/boot/dts/am437x-idk-evm.dts | 2 arch/arm/boot/dts/am437x-sk-evm.dts | 2 arch/arm/boot/dts/am43x-epos-evm.dts | 2 arch/arm/boot/dts/am43xx-clocks.dtsi | 339 arch/arm/boot/dts/am574x-idk.dts | 2 arch/arm/boot/dts/am57xx-cl-som-am57x.dts | 2 arch/arm/boot/dts/am57xx-idk-common.dtsi | 2 arch/arm/boot/dts/armada-370-db.dts | 2 arch/arm/boot/dts/armada-370-seagate-personal-cloud.dtsi | 2 arch/arm/boot/dts/armada-370-synology-ds213j.dts | 2 arch/arm/boot/dts/armada-375-db.dts | 2 arch/arm/boot/dts/armada-381-netgear-gs110emx.dts | 2 arch/arm/boot/dts/armada-385-atl-x530.dts | 2 arch/arm/boot/dts/armada-385-clearfog-gtr.dtsi | 2 arch/arm/boot/dts/armada-385-db-88f6820-amc.dts | 2 arch/arm/boot/dts/armada-385-db-ap.dts | 2 arch/arm/boot/dts/armada-385-synology-ds116.dts | 2 arch/arm/boot/dts/armada-385-turris-omnia.dts | 2 arch/arm/boot/dts/armada-388-db.dts | 2 arch/arm/boot/dts/armada-388-gp.dts | 2 arch/arm/boot/dts/armada-388-rd.dts | 2 arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi | 2 arch/arm/boot/dts/armada-390-db.dts | 2 arch/arm/boot/dts/armada-398-db.dts | 2 arch/arm/boot/dts/armada-xp-axpwifiap.dts | 2 arch/arm/boot/dts/armada-xp-crs305-1g-4s-bit.dts | 2 arch/arm/boot/dts/armada-xp-crs305-1g-4s.dtsi | 2 arch/arm/boot/dts/armada-xp-crs326-24g-2s-bit.dts | 2 arch/arm/boot/dts/armada-xp-crs326-24g-2s.dtsi | 2 arch/arm/boot/dts/armada-xp-crs328-4c-20s-4s-bit.dts | 2 arch/arm/boot/dts/armada-xp-crs328-4c-20s-4s.dtsi | 2 arch/arm/boot/dts/armada-xp-db-dxbc2.dts | 2 arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts | 2 arch/arm/boot/dts/armada-xp-db.dts | 2 arch/arm/boot/dts/armada-xp-gp.dts | 2 arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 2 arch/arm/boot/dts/armada-xp-synology-ds414.dts | 2 arch/arm/boot/dts/aspeed-ast2600-evb.dts | 18 arch/arm/boot/dts/aspeed-g4.dtsi | 6 arch/arm/boot/dts/aspeed-g5.dtsi | 7 arch/arm/boot/dts/aspeed-g6.dtsi | 19 arch/arm/boot/dts/at91-dvk_su60_somc.dtsi | 2 arch/arm/boot/dts/at91-q5xr5.dts | 2 arch/arm/boot/dts/at91-sama5d27_wlsom1.dtsi | 2 arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dts | 2 arch/arm/boot/dts/at91-sama5d2_xplained.dts | 2 arch/arm/boot/dts/at91-sama5d3_xplained.dts | 8 arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi | 2 arch/arm/boot/dts/at91-sama5d4_xplained.dts | 6 arch/arm/boot/dts/at91-sama5d4ek.dts | 2 arch/arm/boot/dts/at91-sama7g5ek.dts | 4 arch/arm/boot/dts/at91-vinco.dts | 2 arch/arm/boot/dts/at91rm9200ek.dts | 4 arch/arm/boot/dts/at91sam9260ek.dts | 2 arch/arm/boot/dts/at91sam9261ek.dts | 2 arch/arm/boot/dts/at91sam9263ek.dts | 2 arch/arm/boot/dts/at91sam9g20ek_common.dtsi | 45 arch/arm/boot/dts/at91sam9m10g45ek.dts | 2 arch/arm/boot/dts/at91sam9n12ek.dts | 2 arch/arm/boot/dts/at91sam9rlek.dts | 2 arch/arm/boot/dts/at91sam9x5ek.dtsi | 2 arch/arm/boot/dts/bcm2711-rpi-400.dts | 4 arch/arm/boot/dts/dove-cubox.dts | 2 arch/arm/boot/dts/dove-d2plug.dts | 2 arch/arm/boot/dts/dove-d3plug.dts | 2 arch/arm/boot/dts/dove-dove-db.dts | 2 arch/arm/boot/dts/dra7-evm-common.dtsi | 2 arch/arm/boot/dts/dra7-l4.dtsi | 4 arch/arm/boot/dts/dra72-evm-common.dtsi | 2 arch/arm/boot/dts/dra76-evm.dts | 2 arch/arm/boot/dts/dra7xx-clocks.dtsi | 693 - arch/arm/boot/dts/exynos3250.dtsi | 3 arch/arm/boot/dts/exynos4.dtsi | 4 arch/arm/boot/dts/exynos4412-odroidu3.dts | 4 arch/arm/boot/dts/exynos4412-odroidx.dts | 8 arch/arm/boot/dts/exynos5250.dtsi | 8 arch/arm/boot/dts/exynos5260.dtsi | 3 arch/arm/boot/dts/exynos5410-odroidxu.dts | 4 arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 7 arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts | 6 arch/arm/boot/dts/exynos5422-odroidxu3.dts | 6 arch/arm/boot/dts/exynos54xx.dtsi | 3 arch/arm/boot/dts/imx28-evk.dts | 2 arch/arm/boot/dts/imx28-m28evk.dts | 2 arch/arm/boot/dts/imx28-sps1.dts | 2 arch/arm/boot/dts/imx6dl-colibri-aster.dts | 113 arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts | 110 arch/arm/boot/dts/imx6dl-colibri-iris-v2.dts | 46 arch/arm/boot/dts/imx6dl-colibri-iris.dts | 152 arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts | 31 arch/arm/boot/dts/imx6dl-eckelmann-ci4x10.dts | 6 arch/arm/boot/dts/imx6dl-rex-basic.dts | 2 arch/arm/boot/dts/imx6dl-victgo.dts | 85 arch/arm/boot/dts/imx6q-ba16.dtsi | 2 arch/arm/boot/dts/imx6q-bx50v3.dtsi | 2 arch/arm/boot/dts/imx6q-cm-fx6.dts | 2 arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts | 2 arch/arm/boot/dts/imx6q-dms-ba16.dts | 2 arch/arm/boot/dts/imx6q-gw5400-a.dts | 2 arch/arm/boot/dts/imx6q-marsboard.dts | 2 arch/arm/boot/dts/imx6q-rex-pro.dts | 2 arch/arm/boot/dts/imx6qdl-apalis.dtsi | 10 arch/arm/boot/dts/imx6qdl-aristainetos.dtsi | 2 arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi | 2 arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi | 44 arch/arm/boot/dts/imx6qdl-colibri.dtsi | 771 + arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi | 2 arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi | 2 arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi | 2 arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi | 2 arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi | 2 arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi | 2 arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 2 arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 2 arch/arm/boot/dts/imx6qdl-sabresd.dtsi | 2 arch/arm/boot/dts/imx6qdl-tx6.dtsi | 5 arch/arm/boot/dts/imx6qdl-vicut1.dtsi | 51 arch/arm/boot/dts/imx6sl-evk.dts | 2 arch/arm/boot/dts/imx6sx-nitrogen6sx.dts | 2 arch/arm/boot/dts/imx6sx-sdb-reva.dts | 4 arch/arm/boot/dts/imx6sx-sdb.dts | 4 arch/arm/boot/dts/imx6ul-14x14-evk.dtsi | 2 arch/arm/boot/dts/imx6ul-kontron-n6310-som.dtsi | 2 arch/arm/boot/dts/imx6ul-kontron-n6311-som.dtsi | 2 arch/arm/boot/dts/imx6ul-kontron-n6x1x-som-common.dtsi | 2 arch/arm/boot/dts/imx6ul-phytec-segin-peb-av-02.dtsi | 3 arch/arm/boot/dts/imx6ul-tqma6ul-common.dtsi | 211 arch/arm/boot/dts/imx6ul-tqma6ul1-mba6ulx.dts | 55 arch/arm/boot/dts/imx6ul-tqma6ul1.dtsi | 37 arch/arm/boot/dts/imx6ul-tqma6ul2-mba6ulx.dts | 15 arch/arm/boot/dts/imx6ul-tqma6ul2.dtsi | 71 arch/arm/boot/dts/imx6ul-tqma6ul2l-mba6ulx.dts | 15 arch/arm/boot/dts/imx6ul-tqma6ul2l.dtsi | 71 arch/arm/boot/dts/imx6ul-tqma6ulx-common.dtsi | 43 arch/arm/boot/dts/imx6ul-tqma6ulxl-common.dtsi | 48 arch/arm/boot/dts/imx6ull-kontron-n6411-som.dtsi | 2 arch/arm/boot/dts/imx6ull-phytec-tauri-emmc.dts | 20 arch/arm/boot/dts/imx6ull-phytec-tauri-nand.dts | 20 arch/arm/boot/dts/imx6ull-phytec-tauri.dtsi | 588 + arch/arm/boot/dts/imx6ull-tqma6ull2-mba6ulx.dts | 15 arch/arm/boot/dts/imx6ull-tqma6ull2.dtsi | 76 arch/arm/boot/dts/imx6ull-tqma6ull2l-mba6ulx.dts | 15 arch/arm/boot/dts/imx6ull-tqma6ull2l.dtsi | 76 arch/arm/boot/dts/imx7s.dtsi | 2 arch/arm/boot/dts/kirkwood-dir665.dts | 2 arch/arm/boot/dts/kirkwood-synology.dtsi | 2 arch/arm/boot/dts/logicpd-som-lv-35xx-devkit.dts | 15 arch/arm/boot/dts/logicpd-som-lv-37xx-devkit.dts | 15 arch/arm/boot/dts/logicpd-som-lv.dtsi | 25 arch/arm/boot/dts/mba6ulx.dtsi | 571 + arch/arm/boot/dts/meson8-minix-neo-x8.dts | 2 arch/arm/boot/dts/nspire-classic.dtsi | 10 arch/arm/boot/dts/nspire-cx.dts | 4 arch/arm/boot/dts/nspire.dtsi | 60 arch/arm/boot/dts/nuvoton-npcm730-gbs.dts | 6 arch/arm/boot/dts/nuvoton-npcm730-gsj.dts | 2 arch/arm/boot/dts/nuvoton-npcm730-kudo.dts | 6 arch/arm/boot/dts/nuvoton-npcm750-evb.dts | 8 arch/arm/boot/dts/nuvoton-npcm750-runbmc-olympus.dts | 6 arch/arm/boot/dts/omap3-beagle-xm.dts | 2 arch/arm/boot/dts/omap3-gta04.dtsi | 2 arch/arm/boot/dts/omap4-panda-common.dtsi | 2 arch/arm/boot/dts/omap443x-clocks.dtsi | 1 arch/arm/boot/dts/omap446x-clocks.dtsi | 2 arch/arm/boot/dts/omap44xx-clocks.dtsi | 173 arch/arm/boot/dts/omap5-igep0050.dts | 2 arch/arm/boot/dts/omap5-uevm.dts | 2 arch/arm/boot/dts/omap54xx-clocks.dtsi | 160 arch/arm/boot/dts/ox820.dtsi | 2 arch/arm/boot/dts/qcom-apq8026-asus-sparrow.dts | 294 arch/arm/boot/dts/qcom-apq8064-sony-xperia-lagan-yuga.dts | 401 arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts | 401 arch/arm/boot/dts/qcom-apq8064.dtsi | 16 arch/arm/boot/dts/qcom-apq8074-dragonboard.dts | 580 - arch/arm/boot/dts/qcom-apq8084.dtsi | 2 arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi | 4 arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c1.dts | 2 arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1.dtsi | 4 arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts | 2 arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1.dtsi | 4 arch/arm/boot/dts/qcom-ipq4019.dtsi | 42 arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi | 2 arch/arm/boot/dts/qcom-ipq8064.dtsi | 12 arch/arm/boot/dts/qcom-mdm9615.dtsi | 4 arch/arm/boot/dts/qcom-msm8226.dtsi | 9 arch/arm/boot/dts/qcom-msm8660.dtsi | 1 arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts | 594 - arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts | 1064 -- arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts | 908 - arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dts | 435 arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts | 723 - arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts | 484 arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine-amami.dts | 13 arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine-honami.dts | 7 arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine.dtsi | 457 arch/arm/boot/dts/qcom-msm8974.dtsi | 1730 +-- arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts | 813 + arch/arm/boot/dts/qcom-msm8974pro-sony-xperia-shinano-castor.dts | 607 + arch/arm/boot/dts/qcom-msm8974pro.dtsi | 31 arch/arm/boot/dts/qcom-pm8226.dtsi | 41 arch/arm/boot/dts/qcom-pm8941.dtsi | 2 arch/arm/boot/dts/qcom-pmx65.dtsi | 32 arch/arm/boot/dts/qcom-sdx55.dtsi | 2 arch/arm/boot/dts/qcom-sdx65-mtp.dts | 221 arch/arm/boot/dts/qcom-sdx65.dtsi | 193 arch/arm/boot/dts/r8a7743.dtsi | 1 arch/arm/boot/dts/r8a7744.dtsi | 1 arch/arm/boot/dts/r8a7745.dtsi | 1 arch/arm/boot/dts/r8a77470.dtsi | 1 arch/arm/boot/dts/r8a7790.dtsi | 1 arch/arm/boot/dts/r8a7791.dtsi | 1 arch/arm/boot/dts/r8a7792.dtsi | 1 arch/arm/boot/dts/r8a7793.dtsi | 1 arch/arm/boot/dts/r8a7794.dtsi | 1 arch/arm/boot/dts/r9a06g032.dtsi | 3 arch/arm/boot/dts/rk3036.dtsi | 4 arch/arm/boot/dts/rk3188-bqedison2qc.dts | 3 arch/arm/boot/dts/rk322x.dtsi | 2 arch/arm/boot/dts/s5pv210-aquila.dts | 3 arch/arm/boot/dts/s5pv210-aries.dtsi | 11 arch/arm/boot/dts/s5pv210-goni.dts | 6 arch/arm/boot/dts/s5pv210.dtsi | 40 arch/arm/boot/dts/sama5d3xmb.dtsi | 2 arch/arm/boot/dts/sama5d3xmb_cmp.dtsi | 2 arch/arm/boot/dts/sama7g5.dtsi | 18 arch/arm/boot/dts/socfpga.dtsi | 2 arch/arm/boot/dts/socfpga_arria10.dtsi | 2 arch/arm/boot/dts/stm32f4-pinctrl.dtsi | 2 arch/arm/boot/dts/stm32f7-pinctrl.dtsi | 2 arch/arm/boot/dts/stm32h743.dtsi | 2 arch/arm/boot/dts/stm32mp131.dtsi | 17 arch/arm/boot/dts/stm32mp135f-dk.dts | 4 arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 49 arch/arm/boot/dts/stm32mp151.dtsi | 4 arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi | 22 arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi | 1 arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts | 31 arch/arm/boot/dts/suniv-f1c100s.dtsi | 104 arch/arm/boot/dts/usb_a9263.dts | 2 arch/arm/common/locomo.c | 1 arch/arm/common/sa1111.c | 5 arch/arm/configs/am200epdkit_defconfig | 1 arch/arm/configs/cm_x300_defconfig | 1 arch/arm/configs/colibri_pxa270_defconfig | 1 arch/arm/configs/colibri_pxa300_defconfig | 1 arch/arm/configs/corgi_defconfig | 1 arch/arm/configs/dove_defconfig | 2 arch/arm/configs/ep93xx_defconfig | 2 arch/arm/configs/eseries_pxa_defconfig | 1 arch/arm/configs/ezx_defconfig | 1 arch/arm/configs/h5000_defconfig | 1 arch/arm/configs/imx_v6_v7_defconfig | 1 arch/arm/configs/iop32x_defconfig | 1 arch/arm/configs/ixp4xx_defconfig | 1 arch/arm/configs/lpc18xx_defconfig | 1 arch/arm/configs/lpd270_defconfig | 1 arch/arm/configs/lubbock_defconfig | 1 arch/arm/configs/magician_defconfig | 1 arch/arm/configs/mainstone_defconfig | 1 arch/arm/configs/mini2440_defconfig | 5 arch/arm/configs/mps2_defconfig | 1 arch/arm/configs/multi_v5_defconfig | 3 arch/arm/configs/multi_v7_defconfig | 1 arch/arm/configs/omap1_defconfig | 3 arch/arm/configs/palmz72_defconfig | 1 arch/arm/configs/pcm027_defconfig | 1 arch/arm/configs/pxa255-idp_defconfig | 1 arch/arm/configs/pxa3xx_defconfig | 1 arch/arm/configs/pxa_defconfig | 1 arch/arm/configs/qcom_defconfig | 8 arch/arm/configs/s3c2410_defconfig | 5 arch/arm/configs/shmobile_defconfig | 4 arch/arm/configs/spitz_defconfig | 1 arch/arm/configs/stm32_defconfig | 1 arch/arm/configs/tct_hammer_defconfig | 2 arch/arm/configs/tegra_defconfig | 3 arch/arm/configs/trizeps4_defconfig | 1 arch/arm/configs/vf610m4_defconfig | 1 arch/arm/configs/viper_defconfig | 1 arch/arm/configs/xcep_defconfig | 1 arch/arm/configs/zeus_defconfig | 1 arch/arm/include/asm/hardware/sa1111.h | 2 arch/arm/include/asm/timex.h | 1 arch/arm/mach-asm9260/Kconfig | 1 arch/arm/mach-aspeed/Kconfig | 2 arch/arm/mach-at91/Kconfig | 3 arch/arm/mach-clps711x/Kconfig | 1 arch/arm/mach-davinci/Kconfig | 1 arch/arm/mach-dove/Kconfig | 16 arch/arm/mach-dove/Makefile | 2 arch/arm/mach-dove/include/mach/uncompress.h | 34 arch/arm/mach-ep93xx/Kconfig | 13 arch/arm/mach-ep93xx/adssphere.c | 1 arch/arm/mach-ep93xx/core.c | 5 arch/arm/mach-ep93xx/edb93xx.c | 8 arch/arm/mach-ep93xx/ep93xx-regs.h | 38 arch/arm/mach-ep93xx/gesbc9312.c | 1 arch/arm/mach-ep93xx/gpio-ep93xx.h | 2 arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h | 42 arch/arm/mach-ep93xx/include/mach/irqs.h | 79 arch/arm/mach-ep93xx/include/mach/uncompress.h | 90 arch/arm/mach-ep93xx/irqs.h | 76 arch/arm/mach-ep93xx/micro9.c | 4 arch/arm/mach-ep93xx/simone.c | 1 arch/arm/mach-ep93xx/snappercl15.c | 1 arch/arm/mach-ep93xx/soc.h | 3 arch/arm/mach-ep93xx/ts72xx.c | 3 arch/arm/mach-ep93xx/vision_ep9307.c | 1 arch/arm/mach-exynos/Kconfig | 2 arch/arm/mach-gemini/Kconfig | 1 arch/arm/mach-highbank/Kconfig | 1 arch/arm/mach-hisi/Kconfig | 2 arch/arm/mach-imx/Kconfig | 4 arch/arm/mach-integrator/Kconfig | 125 arch/arm/mach-integrator/Makefile | 10 arch/arm/mach-integrator/cm.h | 41 arch/arm/mach-integrator/common.h | 7 arch/arm/mach-integrator/core.c | 96 arch/arm/mach-integrator/hardware.h | 336 arch/arm/mach-integrator/integrator_ap.c | 202 arch/arm/mach-integrator/integrator_cp.c | 147 arch/arm/mach-iop32x/Kconfig | 18 arch/arm/mach-iop32x/em7210.c | 1 arch/arm/mach-iop32x/glantank.c | 1 arch/arm/mach-iop32x/include/mach/irqs.h | 14 arch/arm/mach-iop32x/include/mach/uncompress.h | 25 arch/arm/mach-iop32x/iq31244.c | 1 arch/arm/mach-iop32x/iq80321.c | 1 arch/arm/mach-iop32x/irqs.h | 2 arch/arm/mach-iop32x/n2100.c | 1 arch/arm/mach-ixp4xx/Kconfig | 22 arch/arm/mach-ixp4xx/Makefile.boot | 4 arch/arm/mach-ixp4xx/include/mach/uncompress.h | 54 arch/arm/mach-keystone/Kconfig | 1 arch/arm/mach-lpc32xx/Kconfig | 1 arch/arm/mach-mmp/Kconfig | 12 arch/arm/mach-mmp/Makefile | 1 arch/arm/mach-mmp/devices.c | 2 arch/arm/mach-mmp/devices.h | 10 arch/arm/mach-mmp/mfp.h | 2 arch/arm/mach-mmp/mmp2.h | 48 arch/arm/mach-mmp/pxa168.h | 60 arch/arm/mach-mmp/pxa910.h | 38 arch/arm/mach-mmp/tavorevb.c | 113 arch/arm/mach-mmp/ttc_dkb.c | 6 arch/arm/mach-moxart/Kconfig | 1 arch/arm/mach-mv78xx0/Kconfig | 1 arch/arm/mach-mvebu/Kconfig | 3 arch/arm/mach-mxs/Kconfig | 1 arch/arm/mach-nomadik/Kconfig | 1 arch/arm/mach-npcm/Kconfig | 2 arch/arm/mach-nspire/Kconfig | 1 arch/arm/mach-omap1/Kconfig | 72 arch/arm/mach-omap1/Makefile | 6 arch/arm/mach-omap1/ams-delta-fiq-handler.S | 3 arch/arm/mach-omap1/ams-delta-fiq.c | 2 arch/arm/mach-omap1/ams-delta-fiq.h | 2 arch/arm/mach-omap1/board-ams-delta.c | 18 arch/arm/mach-omap1/board-fsample.c | 10 arch/arm/mach-omap1/board-generic.c | 8 arch/arm/mach-omap1/board-h2.c | 14 arch/arm/mach-omap1/board-h3.c | 16 arch/arm/mach-omap1/board-htcherald.c | 12 arch/arm/mach-omap1/board-innovator.c | 34 arch/arm/mach-omap1/board-nokia770.c | 8 arch/arm/mach-omap1/board-osk.c | 49 arch/arm/mach-omap1/board-palmte.c | 14 arch/arm/mach-omap1/board-palmtt.c | 14 arch/arm/mach-omap1/board-palmz71.c | 14 arch/arm/mach-omap1/board-perseus2.c | 15 arch/arm/mach-omap1/board-sx1-mmc.c | 3 arch/arm/mach-omap1/board-sx1.c | 12 arch/arm/mach-omap1/clock.c | 797 - arch/arm/mach-omap1/clock.h | 191 arch/arm/mach-omap1/clock_data.c | 510 - arch/arm/mach-omap1/common.h | 3 arch/arm/mach-omap1/devices.c | 12 arch/arm/mach-omap1/dma.c | 2 arch/arm/mach-omap1/fb.c | 19 arch/arm/mach-omap1/flash.c | 5 arch/arm/mach-omap1/fpga.c | 3 arch/arm/mach-omap1/gpio15xx.c | 3 arch/arm/mach-omap1/gpio16xx.c | 5 arch/arm/mach-omap1/gpio7xx.c | 3 arch/arm/mach-omap1/hardware.h | 195 arch/arm/mach-omap1/i2c.c | 3 arch/arm/mach-omap1/id.c | 5 arch/arm/mach-omap1/include/mach/hardware.h | 321 arch/arm/mach-omap1/include/mach/io.h | 45 arch/arm/mach-omap1/include/mach/irqs.h | 251 arch/arm/mach-omap1/include/mach/lcd_dma.h | 65 arch/arm/mach-omap1/include/mach/lcdc.h | 44 arch/arm/mach-omap1/include/mach/memory.h | 12 arch/arm/mach-omap1/include/mach/mtd-xip.h | 61 arch/arm/mach-omap1/include/mach/mux.h | 441 arch/arm/mach-omap1/include/mach/omap1510.h | 162 arch/arm/mach-omap1/include/mach/omap16xx.h | 201 arch/arm/mach-omap1/include/mach/omap7xx.h | 106 arch/arm/mach-omap1/include/mach/serial.h | 48 arch/arm/mach-omap1/include/mach/soc.h | 220 arch/arm/mach-omap1/include/mach/tc.h | 76 arch/arm/mach-omap1/include/mach/uncompress.h | 117 arch/arm/mach-omap1/include/mach/usb.h | 128 arch/arm/mach-omap1/io.c | 12 arch/arm/mach-omap1/irq.c | 4 arch/arm/mach-omap1/irqs.h | 249 arch/arm/mach-omap1/lcd_dma.c | 441 arch/arm/mach-omap1/mcbsp.c | 17 arch/arm/mach-omap1/mtd-xip.h | 62 arch/arm/mach-omap1/mux.c | 6 arch/arm/mach-omap1/mux.h | 144 arch/arm/mach-omap1/ocpi.c | 8 arch/arm/mach-omap1/omap-dma.c | 898 + arch/arm/mach-omap1/omap1510.h | 162 arch/arm/mach-omap1/omap16xx.h | 201 arch/arm/mach-omap1/omap7xx.h | 106 arch/arm/mach-omap1/pm.c | 9 arch/arm/mach-omap1/pm.h | 2 arch/arm/mach-omap1/reset.c | 3 arch/arm/mach-omap1/serial.c | 10 arch/arm/mach-omap1/serial.h | 48 arch/arm/mach-omap1/sleep.S | 2 arch/arm/mach-omap1/soc.h | 6 arch/arm/mach-omap1/sram-init.c | 91 arch/arm/mach-omap1/sram.S | 4 arch/arm/mach-omap1/sram.h | 4 arch/arm/mach-omap1/tc.h | 74 arch/arm/mach-omap1/time.c | 7 arch/arm/mach-omap1/timer.c | 1 arch/arm/mach-omap1/timer32k.c | 100 arch/arm/mach-omap1/usb.c | 8 arch/arm/mach-omap1/usb.h | 25 arch/arm/mach-omap2/Kconfig | 49 arch/arm/mach-omap2/cm_common.c | 8 arch/arm/mach-omap2/control.c | 19 arch/arm/mach-omap2/omap4-common.c | 2 arch/arm/mach-omap2/omap_device.c | 20 arch/arm/mach-omap2/omap_device.h | 1 arch/arm/mach-omap2/prm_common.c | 8 arch/arm/mach-omap2/sram.c | 91 arch/arm/mach-omap2/sram.h | 5 arch/arm/mach-orion5x/Kconfig | 1 arch/arm/mach-oxnas/Kconfig | 2 arch/arm/mach-pxa/Kconfig | 14 arch/arm/mach-pxa/Makefile | 18 arch/arm/mach-pxa/Makefile.boot | 3 arch/arm/mach-pxa/addr-map.h | 61 arch/arm/mach-pxa/am300epd.c | 2 arch/arm/mach-pxa/balloon3-pcmcia.c | 137 arch/arm/mach-pxa/balloon3.c | 4 arch/arm/mach-pxa/balloon3.h | 181 arch/arm/mach-pxa/cm-x300.c | 12 arch/arm/mach-pxa/colibri-evalboard.c | 1 arch/arm/mach-pxa/colibri-pcmcia.c | 165 arch/arm/mach-pxa/colibri-pxa270-income.c | 1 arch/arm/mach-pxa/colibri-pxa270.c | 2 arch/arm/mach-pxa/colibri-pxa300.c | 3 arch/arm/mach-pxa/colibri-pxa320.c | 2 arch/arm/mach-pxa/colibri-pxa3xx.c | 3 arch/arm/mach-pxa/colibri.h | 2 arch/arm/mach-pxa/corgi.c | 23 arch/arm/mach-pxa/corgi.h | 110 arch/arm/mach-pxa/corgi_pm.c | 5 arch/arm/mach-pxa/csb726.c | 5 arch/arm/mach-pxa/csb726.h | 2 arch/arm/mach-pxa/devices.c | 17 arch/arm/mach-pxa/e740-pcmcia.c | 127 arch/arm/mach-pxa/eseries-gpio.h | 63 arch/arm/mach-pxa/eseries.c | 36 arch/arm/mach-pxa/ezx.c | 1 arch/arm/mach-pxa/generic.c | 62 arch/arm/mach-pxa/generic.h | 9 arch/arm/mach-pxa/gumstix.c | 1 arch/arm/mach-pxa/gumstix.h | 2 arch/arm/mach-pxa/h5000.c | 2 arch/arm/mach-pxa/hx4700-pcmcia.c | 118 arch/arm/mach-pxa/hx4700.c | 18 arch/arm/mach-pxa/hx4700.h | 129 arch/arm/mach-pxa/idp.c | 2 arch/arm/mach-pxa/idp.h | 2 arch/arm/mach-pxa/include/mach/addr-map.h | 61 arch/arm/mach-pxa/include/mach/audio.h | 31 arch/arm/mach-pxa/include/mach/balloon3.h | 181 arch/arm/mach-pxa/include/mach/bitfield.h | 114 arch/arm/mach-pxa/include/mach/corgi.h | 110 arch/arm/mach-pxa/include/mach/dma.h | 17 arch/arm/mach-pxa/include/mach/eseries-gpio.h | 63 arch/arm/mach-pxa/include/mach/generic.h | 1 arch/arm/mach-pxa/include/mach/hardware.h | 305 arch/arm/mach-pxa/include/mach/hx4700.h | 129 arch/arm/mach-pxa/include/mach/irqs.h | 109 arch/arm/mach-pxa/include/mach/lubbock.h | 49 arch/arm/mach-pxa/include/mach/magician.h | 125 arch/arm/mach-pxa/include/mach/mainstone.h | 142 arch/arm/mach-pxa/include/mach/mfp.h | 18 arch/arm/mach-pxa/include/mach/mtd-xip.h | 36 arch/arm/mach-pxa/include/mach/palmld.h | 107 arch/arm/mach-pxa/include/mach/palmtc.h | 84 arch/arm/mach-pxa/include/mach/palmtx.h | 110 arch/arm/mach-pxa/include/mach/poodle.h | 94 arch/arm/mach-pxa/include/mach/pxa2xx-regs.h | 194 arch/arm/mach-pxa/include/mach/pxa3xx-regs.h | 203 arch/arm/mach-pxa/include/mach/regs-ac97.h | 102 arch/arm/mach-pxa/include/mach/regs-lcd.h | 198 arch/arm/mach-pxa/include/mach/regs-ost.h | 35 arch/arm/mach-pxa/include/mach/regs-uart.h | 144 arch/arm/mach-pxa/include/mach/reset.h | 22 arch/arm/mach-pxa/include/mach/smemc.h | 72 arch/arm/mach-pxa/include/mach/spitz.h | 185 arch/arm/mach-pxa/include/mach/tosa.h | 183 arch/arm/mach-pxa/include/mach/trizeps4.h | 165 arch/arm/mach-pxa/include/mach/uncompress.h | 70 arch/arm/mach-pxa/include/mach/vpac270.h | 38 arch/arm/mach-pxa/include/mach/z2.h | 37 arch/arm/mach-pxa/irq.c | 5 arch/arm/mach-pxa/irqs.h | 109 arch/arm/mach-pxa/littleton.c | 1 arch/arm/mach-pxa/lpd270.c | 6 arch/arm/mach-pxa/lubbock.c | 17 arch/arm/mach-pxa/lubbock.h | 47 arch/arm/mach-pxa/magician.c | 56 arch/arm/mach-pxa/magician.h | 125 arch/arm/mach-pxa/mainstone.c | 17 arch/arm/mach-pxa/mainstone.h | 140 arch/arm/mach-pxa/mfp-pxa2xx.c | 3 arch/arm/mach-pxa/mfp-pxa2xx.h | 2 arch/arm/mach-pxa/mfp-pxa3xx.c | 3 arch/arm/mach-pxa/mfp-pxa3xx.h | 2 arch/arm/mach-pxa/mfp.h | 18 arch/arm/mach-pxa/mioa701.c | 4 arch/arm/mach-pxa/mxm8x10.c | 8 arch/arm/mach-pxa/palm27x.c | 2 arch/arm/mach-pxa/palmld-pcmcia.c | 111 arch/arm/mach-pxa/palmld.c | 23 arch/arm/mach-pxa/palmld.h | 107 arch/arm/mach-pxa/palmt5.c | 11 arch/arm/mach-pxa/palmt5.h | 2 arch/arm/mach-pxa/palmtc-pcmcia.c | 162 arch/arm/mach-pxa/palmtc.c | 4 arch/arm/mach-pxa/palmtc.h | 84 arch/arm/mach-pxa/palmte2.c | 2 arch/arm/mach-pxa/palmtreo.c | 4 arch/arm/mach-pxa/palmtx-pcmcia.c | 111 arch/arm/mach-pxa/palmtx.c | 13 arch/arm/mach-pxa/palmtx.h | 110 arch/arm/mach-pxa/palmz72.c | 2 arch/arm/mach-pxa/pcm027.h | 2 arch/arm/mach-pxa/pcm990-baseboard.c | 2 arch/arm/mach-pxa/pcm990_baseboard.h | 2 arch/arm/mach-pxa/poodle.c | 31 arch/arm/mach-pxa/poodle.h | 92 arch/arm/mach-pxa/pxa-dt.c | 2 arch/arm/mach-pxa/pxa-regs.h | 52 arch/arm/mach-pxa/pxa25x.c | 12 arch/arm/mach-pxa/pxa25x.h | 6 arch/arm/mach-pxa/pxa27x-udc.h | 2 arch/arm/mach-pxa/pxa27x.c | 12 arch/arm/mach-pxa/pxa27x.h | 6 arch/arm/mach-pxa/pxa2xx-regs.h | 149 arch/arm/mach-pxa/pxa2xx.c | 32 arch/arm/mach-pxa/pxa300.c | 1 arch/arm/mach-pxa/pxa320.c | 1 arch/arm/mach-pxa/pxa3xx-regs.h | 134 arch/arm/mach-pxa/pxa3xx-ulpi.c | 2 arch/arm/mach-pxa/pxa3xx.c | 19 arch/arm/mach-pxa/pxa3xx.h | 6 arch/arm/mach-pxa/pxa930.c | 1 arch/arm/mach-pxa/regs-ost.h | 37 arch/arm/mach-pxa/regs-rtc.h | 2 arch/arm/mach-pxa/regs-u2d.h | 2 arch/arm/mach-pxa/regs-uart.h | 146 arch/arm/mach-pxa/reset.c | 9 arch/arm/mach-pxa/reset.h | 22 arch/arm/mach-pxa/sharpsl_pm.c | 2 arch/arm/mach-pxa/sleep.S | 9 arch/arm/mach-pxa/smemc.c | 13 arch/arm/mach-pxa/smemc.h | 72 arch/arm/mach-pxa/spitz.c | 37 arch/arm/mach-pxa/spitz.h | 185 arch/arm/mach-pxa/spitz_pm.c | 3 arch/arm/mach-pxa/standby.S | 3 arch/arm/mach-pxa/tosa.c | 47 arch/arm/mach-pxa/tosa.h | 183 arch/arm/mach-pxa/trizeps4-pcmcia.c | 200 arch/arm/mach-pxa/trizeps4.c | 6 arch/arm/mach-pxa/trizeps4.h | 166 arch/arm/mach-pxa/viper-pcmcia.c | 180 arch/arm/mach-pxa/viper-pcmcia.h | 12 arch/arm/mach-pxa/viper.c | 8 arch/arm/mach-pxa/vpac270-pcmcia.c | 137 arch/arm/mach-pxa/vpac270.c | 4 arch/arm/mach-pxa/vpac270.h | 38 arch/arm/mach-pxa/xcep.c | 4 arch/arm/mach-pxa/z2.c | 13 arch/arm/mach-pxa/z2.h | 37 arch/arm/mach-pxa/zeus.c | 8 arch/arm/mach-pxa/zylonite.c | 34 arch/arm/mach-pxa/zylonite.h | 2 arch/arm/mach-pxa/zylonite_pxa300.c | 1 arch/arm/mach-pxa/zylonite_pxa320.c | 1 arch/arm/mach-qcom/Kconfig | 1 arch/arm/mach-realview/Kconfig | 103 arch/arm/mach-realview/Makefile | 8 arch/arm/mach-realview/platsmp-dt.c | 93 arch/arm/mach-realview/realview-dt.c | 27 arch/arm/mach-rockchip/platsmp.c | 2 arch/arm/mach-s3c/Kconfig | 8 arch/arm/mach-s3c/Kconfig.s3c24xx | 31 arch/arm/mach-s3c/Kconfig.s3c64xx | 7 arch/arm/mach-s3c/bast-ide.c | 2 arch/arm/mach-s3c/bast-irq.c | 2 arch/arm/mach-s3c/cpu.c | 3 arch/arm/mach-s3c/dev-audio-s3c64xx.c | 2 arch/arm/mach-s3c/dev-uart-s3c64xx.c | 2 arch/arm/mach-s3c/devs.c | 2 arch/arm/mach-s3c/gpio-samsung.c | 2 arch/arm/mach-s3c/include/mach/io-s3c24xx.h | 50 arch/arm/mach-s3c/include/mach/io.h | 8 arch/arm/mach-s3c/include/mach/irqs-s3c24xx.h | 213 arch/arm/mach-s3c/include/mach/irqs-s3c64xx.h | 172 arch/arm/mach-s3c/include/mach/irqs.h | 9 arch/arm/mach-s3c/include/mach/map-base.h | 42 arch/arm/mach-s3c/init.c | 2 arch/arm/mach-s3c/iotiming-s3c2410.c | 2 arch/arm/mach-s3c/irq-pm-s3c24xx.c | 2 arch/arm/mach-s3c/irq-s3c24xx.c | 2 arch/arm/mach-s3c/irqs-s3c24xx.h | 219 arch/arm/mach-s3c/irqs-s3c64xx.h | 172 arch/arm/mach-s3c/irqs.h | 9 arch/arm/mach-s3c/mach-amlm5900.c | 2 arch/arm/mach-s3c/mach-anubis.c | 6 arch/arm/mach-s3c/mach-anw6410.c | 2 arch/arm/mach-s3c/mach-at2440evb.c | 1 arch/arm/mach-s3c/mach-bast.c | 6 arch/arm/mach-s3c/mach-crag6410-module.c | 2 arch/arm/mach-s3c/mach-crag6410.c | 2 arch/arm/mach-s3c/mach-gta02.c | 1 arch/arm/mach-s3c/mach-h1940.c | 1 arch/arm/mach-s3c/mach-hmt.c | 2 arch/arm/mach-s3c/mach-jive.c | 2 arch/arm/mach-s3c/mach-mini2440.c | 3 arch/arm/mach-s3c/mach-mini6410.c | 2 arch/arm/mach-s3c/mach-n30.c | 2 arch/arm/mach-s3c/mach-ncp.c | 2 arch/arm/mach-s3c/mach-nexcoder.c | 1 arch/arm/mach-s3c/mach-osiris.c | 6 arch/arm/mach-s3c/mach-otom.c | 1 arch/arm/mach-s3c/mach-qt2410.c | 1 arch/arm/mach-s3c/mach-real6410.c | 2 arch/arm/mach-s3c/mach-rx1950.c | 1 arch/arm/mach-s3c/mach-rx3715.c | 7 arch/arm/mach-s3c/mach-smartq5.c | 2 arch/arm/mach-s3c/mach-smartq7.c | 2 arch/arm/mach-s3c/mach-smdk2410.c | 1 arch/arm/mach-s3c/mach-smdk2413.c | 3 arch/arm/mach-s3c/mach-smdk2416.c | 11 arch/arm/mach-s3c/mach-smdk2440.c | 11 arch/arm/mach-s3c/mach-smdk2443.c | 12 arch/arm/mach-s3c/mach-smdk6400.c | 2 arch/arm/mach-s3c/mach-smdk6410.c | 2 arch/arm/mach-s3c/mach-tct_hammer.c | 1 arch/arm/mach-s3c/mach-vr1000.c | 6 arch/arm/mach-s3c/mach-vstms.c | 1 arch/arm/mach-s3c/map-base.h | 48 arch/arm/mach-s3c/map-s3c24xx.h | 2 arch/arm/mach-s3c/map-s3c64xx.h | 2 arch/arm/mach-s3c/pl080.c | 2 arch/arm/mach-s3c/pm-core-s3c24xx.h | 2 arch/arm/mach-s3c/pm-s3c2412.c | 2 arch/arm/mach-s3c/pm-s3c64xx.c | 4 arch/arm/mach-s3c/pm.c | 2 arch/arm/mach-s3c/s3c2443.c | 2 arch/arm/mach-s3c/s3c24xx.c | 9 arch/arm/mach-s3c/s3c24xx.h | 2 arch/arm/mach-s3c/s3c64xx.c | 9 arch/arm/mach-s3c/simtec-usb.c | 2 arch/arm/mach-sa1100/generic.c | 6 arch/arm/mach-sa1100/include/mach/reset.h | 1 arch/arm/mach-socfpga/Kconfig | 1 arch/arm/mach-spear/Kconfig | 2 arch/arm/mach-sunxi/Kconfig | 3 arch/arm/mach-tegra/platsmp.c | 2 arch/arm/mach-versatile/Kconfig | 309 arch/arm/mach-versatile/Makefile | 32 arch/arm/mach-versatile/Makefile.boot | 4 arch/arm/mach-versatile/dcscb.c | 172 arch/arm/mach-versatile/dcscb_setup.S | 33 arch/arm/mach-versatile/headsmp.S | 36 arch/arm/mach-versatile/hotplug.c | 102 arch/arm/mach-versatile/integrator-cm.h | 41 arch/arm/mach-versatile/integrator-hardware.h | 336 arch/arm/mach-versatile/integrator.c | 94 arch/arm/mach-versatile/integrator.h | 7 arch/arm/mach-versatile/integrator_ap.c | 200 arch/arm/mach-versatile/integrator_cp.c | 145 arch/arm/mach-versatile/platsmp-realview.c | 93 arch/arm/mach-versatile/platsmp-vexpress.c | 93 arch/arm/mach-versatile/platsmp.c | 107 arch/arm/mach-versatile/platsmp.h | 11 arch/arm/mach-versatile/realview.c | 27 arch/arm/mach-versatile/spc.c | 598 + arch/arm/mach-versatile/spc.h | 18 arch/arm/mach-versatile/tc2_pm.c | 261 arch/arm/mach-versatile/v2m-mps2.c | 17 arch/arm/mach-versatile/v2m.c | 40 arch/arm/mach-versatile/versatile.c | 185 arch/arm/mach-versatile/versatile_dt.c | 185 arch/arm/mach-versatile/vexpress.h | 4 arch/arm/mach-vexpress/Kconfig | 81 arch/arm/mach-vexpress/Makefile | 19 arch/arm/mach-vexpress/Makefile.boot | 4 arch/arm/mach-vexpress/core.h | 4 arch/arm/mach-vexpress/dcscb.c | 172 arch/arm/mach-vexpress/dcscb_setup.S | 35 arch/arm/mach-vexpress/platsmp.c | 96 arch/arm/mach-vexpress/spc.c | 598 - arch/arm/mach-vexpress/spc.h | 18 arch/arm/mach-vexpress/tc2_pm.c | 263 arch/arm/mach-vexpress/v2m-mps2.c | 17 arch/arm/mach-vexpress/v2m.c | 40 arch/arm/mach-vt8500/Kconfig | 1 arch/arm/mach-zynq/Kconfig | 1 arch/arm/mm/Kconfig | 28 arch/arm/mm/copypage-xsc3.c | 2 arch/arm/mm/init.c | 6 arch/arm/plat-omap/Kconfig | 119 arch/arm/plat-omap/Makefile | 13 arch/arm/plat-omap/counter_32k.c | 114 arch/arm/plat-omap/debug-leds.c | 171 arch/arm/plat-omap/dma.c | 1003 -- arch/arm/plat-omap/include/plat/counter-32k.h | 1 arch/arm/plat-omap/include/plat/cpu.h | 21 arch/arm/plat-omap/include/plat/sram.h | 8 arch/arm/plat-omap/sram.c | 129 arch/arm/plat-pxa/Kconfig | 9 arch/arm/plat-pxa/Makefile | 10 arch/arm/plat-pxa/include/plat/mfp.h | 472 arch/arm/plat-pxa/mfp.c | 282 arch/arm/plat-pxa/ssp.c | 231 arch/arm/plat-versatile/Makefile | 5 arch/arm/plat-versatile/headsmp.S | 38 arch/arm/plat-versatile/hotplug.c | 102 arch/arm/plat-versatile/include/plat/platsmp.h | 13 arch/arm/plat-versatile/platsmp.c | 109 arch/arm/xen/mm.c | 26 arch/arm64/Kconfig | 1 arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts | 30 arch/arm64/boot/dts/amlogic/Makefile | 38 arch/arm64/boot/dts/amlogic/meson-axg-jethome-jethub-j100.dts | 16 arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi | 40 arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi | 40 arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi | 2 arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts | 2 arch/arm64/boot/dts/amlogic/meson-gxl-s905w-jethome-jethub-j80.dts | 6 arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts | 2 arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 2 arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi | 2 arch/arm64/boot/dts/amlogic/meson-s4.dtsi | 41 arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts | 1 arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts | 2 arch/arm64/boot/dts/amlogic/meson-sm1.dtsi | 20 arch/arm64/boot/dts/arm/Makefile | 1 arch/arm64/boot/dts/arm/corstone1000-fvp.dts | 51 arch/arm64/boot/dts/arm/corstone1000-mps3.dts | 32 arch/arm64/boot/dts/arm/corstone1000.dtsi | 164 arch/arm64/boot/dts/arm/juno-base.dtsi | 162 arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi | 37 arch/arm64/boot/dts/arm/juno-r1-scmi.dts | 8 arch/arm64/boot/dts/arm/juno-r1.dts | 25 arch/arm64/boot/dts/arm/juno-r2-scmi.dts | 8 arch/arm64/boot/dts/arm/juno-r2.dts | 25 arch/arm64/boot/dts/arm/juno-scmi.dtsi | 25 arch/arm64/boot/dts/arm/juno.dts | 25 arch/arm64/boot/dts/exynos/exynos5433.dtsi | 3 arch/arm64/boot/dts/exynos/exynos850-e850-96.dts | 5 arch/arm64/boot/dts/exynos/exynos850.dtsi | 19 arch/arm64/boot/dts/freescale/Makefile | 7 arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts | 9 arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 2 arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts | 2 arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 2 arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi | 10 arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi | 2 arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 4 arch/arm64/boot/dts/freescale/imx8-ss-vpu.dtsi | 74 arch/arm64/boot/dts/freescale/imx8mm-data-modul-edm-sbc.dts | 996 ++ arch/arm64/boot/dts/freescale/imx8mm-emcon.dtsi | 2 arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | 20 arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts | 2 arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi | 2 arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi | 4 arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx.dtsi | 4 arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx.dtsi | 5 arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts | 3 arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dts | 3 arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi | 2 arch/arm64/boot/dts/freescale/imx8mm-verdin-wifi.dtsi | 26 arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi | 415 arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2pro.dts | 90 arch/arm64/boot/dts/freescale/imx8mn-ddr3l-evk.dts | 114 arch/arm64/boot/dts/freescale/imx8mn-evk.dts | 54 arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi | 27 arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts | 1 arch/arm64/boot/dts/freescale/imx8mn.dtsi | 16 arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts | 896 + arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi | 129 arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi | 46 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dahlia.dts | 18 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dev.dts | 18 arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi.dtsi | 54 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dahlia.dts | 18 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dev.dts | 18 arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi.dtsi | 82 arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi | 1380 ++ arch/arm64/boot/dts/freescale/imx8mp.dtsi | 121 arch/arm64/boot/dts/freescale/imx8mq-librem5-r4.dts | 4 arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi | 15 arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi | 2 arch/arm64/boot/dts/freescale/imx8mq.dtsi | 7 arch/arm64/boot/dts/freescale/imx8qm.dtsi | 2 arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 25 arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 24 arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 4 arch/arm64/boot/dts/hisilicon/hi3670.dtsi | 4 arch/arm64/boot/dts/marvell/armada-3720-db.dts | 2 arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts | 2 arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts | 2 arch/arm64/boot/dts/marvell/armada-7040-db.dts | 4 arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts | 2 arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts | 2 arch/arm64/boot/dts/marvell/armada-8040-db.dts | 4 arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi | 2 arch/arm64/boot/dts/marvell/armada-8040-puzzle-m801.dts | 2 arch/arm64/boot/dts/marvell/cn9130-crb.dtsi | 2 arch/arm64/boot/dts/marvell/cn9130-db.dtsi | 2 arch/arm64/boot/dts/marvell/cn9131-db.dtsi | 2 arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 4 arch/arm64/boot/dts/mediatek/mt7622.dtsi | 32 arch/arm64/boot/dts/mediatek/mt8173.dtsi | 6 arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi | 2 arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 2 arch/arm64/boot/dts/mediatek/mt8183.dtsi | 4 arch/arm64/boot/dts/microchip/sparx5_nand.dtsi | 2 arch/arm64/boot/dts/microchip/sparx5_pcb125.dts | 4 arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi | 4 arch/arm64/boot/dts/microchip/sparx5_pcb135_board.dtsi | 4 arch/arm64/boot/dts/nvidia/tegra194.dtsi | 10 arch/arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi | 12 arch/arm64/boot/dts/nvidia/tegra234.dtsi | 35 arch/arm64/boot/dts/qcom/Makefile | 5 arch/arm64/boot/dts/qcom/apq8096-db820c.dts | 6 arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts | 2 arch/arm64/boot/dts/qcom/ipq6018.dtsi | 34 arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 2 arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi | 2 arch/arm64/boot/dts/qcom/ipq8074.dtsi | 42 arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts | 59 arch/arm64/boot/dts/qcom/msm8916.dtsi | 102 arch/arm64/boot/dts/qcom/msm8953.dtsi | 52 arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts | 36 arch/arm64/boot/dts/qcom/msm8992.dtsi | 24 arch/arm64/boot/dts/qcom/msm8994-huawei-angler-rev-101.dts | 21 arch/arm64/boot/dts/qcom/msm8994-sony-xperia-kitakami.dtsi | 89 arch/arm64/boot/dts/qcom/msm8994.dtsi | 126 arch/arm64/boot/dts/qcom/msm8996-mtp.dts | 8 arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone.dtsi | 18 arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi | 36 arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts | 9 arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts | 9 arch/arm64/boot/dts/qcom/msm8996.dtsi | 250 arch/arm64/boot/dts/qcom/msm8998-oneplus-common.dtsi | 31 arch/arm64/boot/dts/qcom/msm8998.dtsi | 15 arch/arm64/boot/dts/qcom/pm8350.dtsi | 31 arch/arm64/boot/dts/qcom/pm8350b.dtsi | 31 arch/arm64/boot/dts/qcom/pm8350c.dtsi | 32 arch/arm64/boot/dts/qcom/pm8450.dtsi | 59 arch/arm64/boot/dts/qcom/pmr735a.dtsi | 32 arch/arm64/boot/dts/qcom/pmr735b.dtsi | 31 arch/arm64/boot/dts/qcom/qcs404.dtsi | 94 arch/arm64/boot/dts/qcom/sa8155p-adp.dts | 229 arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r9.dts | 2 arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1-lte.dts | 4 arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r3-lte.dts | 4 arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-lte.dts | 4 arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 1 arch/arm64/boot/dts/qcom/sc7180.dtsi | 2 arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts | 108 arch/arm64/boot/dts/qcom/sc7280-crd.dts | 105 arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts | 325 arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r0.dts | 1352 -- arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r1.dts | 30 arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r0.dts | 296 arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 69 arch/arm64/boot/dts/qcom/sc7280-idp.dts | 2 arch/arm64/boot/dts/qcom/sc7280-idp.dtsi | 10 arch/arm64/boot/dts/qcom/sc7280.dtsi | 195 arch/arm64/boot/dts/qcom/sdm630.dtsi | 4 arch/arm64/boot/dts/qcom/sdm660.dtsi | 2 arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 1 arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts | 35 arch/arm64/boot/dts/qcom/sdm845.dtsi | 34 arch/arm64/boot/dts/qcom/sm6350.dtsi | 241 arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 61 arch/arm64/boot/dts/qcom/sm8150.dtsi | 330 arch/arm64/boot/dts/qcom/sm8250-mtp.dts | 12 arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi | 30 arch/arm64/boot/dts/qcom/sm8250.dtsi | 343 arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 4 arch/arm64/boot/dts/qcom/sm8350.dtsi | 186 arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 41 arch/arm64/boot/dts/qcom/sm8450-qrd.dts | 34 arch/arm64/boot/dts/qcom/sm8450.dtsi | 2500 +++++ arch/arm64/boot/dts/renesas/Makefile | 2 arch/arm64/boot/dts/renesas/draak.dtsi | 58 arch/arm64/boot/dts/renesas/ebisu.dtsi | 58 arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 1 arch/arm64/boot/dts/renesas/r8a774b1.dtsi | 1 arch/arm64/boot/dts/renesas/r8a774c0.dtsi | 1 arch/arm64/boot/dts/renesas/r8a77951.dtsi | 17 arch/arm64/boot/dts/renesas/r8a77960.dtsi | 17 arch/arm64/boot/dts/renesas/r8a77961.dtsi | 42 arch/arm64/boot/dts/renesas/r8a77965.dtsi | 17 arch/arm64/boot/dts/renesas/r8a77970.dtsi | 1 arch/arm64/boot/dts/renesas/r8a77980.dtsi | 1 arch/arm64/boot/dts/renesas/r8a77990.dtsi | 17 arch/arm64/boot/dts/renesas/r8a77995.dtsi | 17 arch/arm64/boot/dts/renesas/r8a779a0-falcon-cpu.dtsi | 12 arch/arm64/boot/dts/renesas/r8a779a0-falcon.dts | 24 arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 57 arch/arm64/boot/dts/renesas/r8a779f0-spider-cpu.dtsi | 20 arch/arm64/boot/dts/renesas/r8a779f0-spider-ethernet.dtsi | 15 arch/arm64/boot/dts/renesas/r8a779f0-spider.dts | 10 arch/arm64/boot/dts/renesas/r8a779f0.dtsi | 163 arch/arm64/boot/dts/renesas/r9a07g043.dtsi | 481 arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts | 97 arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dts | 76 arch/arm64/boot/dts/renesas/r9a07g054.dtsi | 584 + arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dts | 8 arch/arm64/boot/dts/renesas/rz-smarc-common.dtsi | 16 arch/arm64/boot/dts/renesas/rzg2l-smarc.dtsi | 19 arch/arm64/boot/dts/renesas/rzg2lc-smarc-pinfunction.dtsi | 64 arch/arm64/boot/dts/renesas/rzg2lc-smarc-som.dtsi | 61 arch/arm64/boot/dts/renesas/rzg2lc-smarc.dtsi | 27 arch/arm64/boot/dts/renesas/rzg2ul-smarc-pinfunction.dtsi | 63 arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi | 233 arch/arm64/boot/dts/renesas/rzg2ul-smarc.dtsi | 24 arch/arm64/boot/dts/renesas/salvator-common.dtsi | 49 arch/arm64/boot/dts/renesas/ulcb.dtsi | 49 arch/arm64/boot/dts/rockchip/Makefile | 3 arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 3 arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi | 7 arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 12 arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi | 28 arch/arm64/boot/dts/rockchip/rk3399-hugsun-x99.dts | 3 arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi | 3 arch/arm64/boot/dts/rockchip/rk3399-leez-p710.dts | 3 arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi | 2 arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi | 25 arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts | 3 arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts | 2 arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts | 2 arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi | 3 arch/arm64/boot/dts/rockchip/rk3399.dtsi | 27 arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 37 arch/arm64/boot/dts/rockchip/rk3566.dtsi | 11 arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 142 arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 46 arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts | 502 + arch/arm64/boot/dts/rockchip/rk3568.dtsi | 23 arch/arm64/boot/dts/rockchip/rk356x.dtsi | 63 arch/arm64/boot/dts/synaptics/as370.dtsi | 173 arch/arm64/boot/dts/tesla/fsd.dtsi | 2 arch/arm64/configs/defconfig | 18 arch/arm64/crypto/Kconfig | 16 arch/arm64/crypto/Makefile | 8 arch/arm64/crypto/sm4-ce-cipher-core.S | 36 arch/arm64/crypto/sm4-ce-cipher-glue.c | 82 arch/arm64/crypto/sm4-ce-core.S | 688 + arch/arm64/crypto/sm4-ce-glue.c | 386 arch/arm64/crypto/sm4-neon-core.S | 487 + arch/arm64/crypto/sm4-neon-glue.c | 442 arch/arm64/include/asm/compiler.h | 16 arch/arm64/include/asm/insn.h | 9 arch/arm64/kernel/entry-common.c | 8 arch/arm64/lib/insn.c | 67 arch/arm64/mm/init.c | 6 arch/arm64/net/bpf_jit.h | 17 arch/arm64/net/bpf_jit_comp.c | 255 arch/csky/Kconfig | 8 arch/csky/abiv1/Makefile | 2 arch/csky/abiv1/memcpy.S | 347 arch/csky/abiv1/strksyms.c | 6 arch/csky/abiv2/Makefile | 2 arch/csky/abiv2/strksyms.c | 4 arch/csky/include/asm/atomic.h | 237 arch/csky/include/asm/barrier.h | 20 arch/csky/include/asm/cmpxchg.h | 64 arch/csky/include/asm/io.h | 12 arch/csky/kernel/Makefile | 2 arch/csky/kernel/io.c | 91 arch/csky/kernel/module.c | 2 arch/csky/kernel/probes/kprobes.c | 2 arch/csky/kernel/probes/uprobes.c | 2 arch/csky/kernel/process.c | 1 arch/csky/lib/Makefile | 3 arch/csky/lib/string.c | 134 arch/csky/mm/dma-mapping.c | 1 arch/h8300/Kbuild | 5 arch/h8300/Kconfig | 49 arch/h8300/Kconfig.cpu | 99 arch/h8300/Kconfig.debug | 2 arch/h8300/Makefile | 44 arch/h8300/boot/Makefile | 27 arch/h8300/boot/compressed/Makefile | 45 arch/h8300/boot/compressed/head.S | 49 arch/h8300/boot/compressed/misc.c | 76 arch/h8300/boot/compressed/vmlinux.lds | 35 arch/h8300/boot/compressed/vmlinux.scr | 9 arch/h8300/boot/dts/Makefile | 6 arch/h8300/boot/dts/edosk2674.dts | 108 arch/h8300/boot/dts/h8300h_sim.dts | 97 arch/h8300/boot/dts/h8s_sim.dts | 100 arch/h8300/configs/edosk2674_defconfig | 48 arch/h8300/configs/h8300h-sim_defconfig | 48 arch/h8300/configs/h8s-sim_defconfig | 48 arch/h8300/include/asm/Kbuild | 8 arch/h8300/include/asm/bitops.h | 179 arch/h8300/include/asm/bug.h | 13 arch/h8300/include/asm/byteorder.h | 7 arch/h8300/include/asm/cache.h | 12 arch/h8300/include/asm/elf.h | 102 arch/h8300/include/asm/flat.h | 36 arch/h8300/include/asm/hash.h | 54 arch/h8300/include/asm/io.h | 67 arch/h8300/include/asm/irq.h | 25 arch/h8300/include/asm/irqflags.h | 97 arch/h8300/include/asm/kgdb.h | 45 arch/h8300/include/asm/mmu_context.h | 6 arch/h8300/include/asm/page.h | 17 arch/h8300/include/asm/page_offset.h | 2 arch/h8300/include/asm/pgtable.h | 43 arch/h8300/include/asm/processor.h | 126 arch/h8300/include/asm/ptrace.h | 39 arch/h8300/include/asm/signal.h | 23 arch/h8300/include/asm/smp.h | 1 arch/h8300/include/asm/string.h | 18 arch/h8300/include/asm/switch_to.h | 52 arch/h8300/include/asm/syscall.h | 43 arch/h8300/include/asm/thread_info.h | 102 arch/h8300/include/asm/tlb.h | 7 arch/h8300/include/asm/traps.h | 41 arch/h8300/include/asm/user.h | 71 arch/h8300/include/asm/vmalloc.h | 4 arch/h8300/include/uapi/asm/Kbuild | 2 arch/h8300/include/uapi/asm/byteorder.h | 7 arch/h8300/include/uapi/asm/posix_types.h | 13 arch/h8300/include/uapi/asm/ptrace.h | 43 arch/h8300/include/uapi/asm/sigcontext.h | 19 arch/h8300/include/uapi/asm/signal.h | 92 arch/h8300/include/uapi/asm/unistd.h | 8 arch/h8300/kernel/.gitignore | 2 arch/h8300/kernel/Makefile | 22 arch/h8300/kernel/asm-offsets.c | 70 arch/h8300/kernel/entry.S | 433 arch/h8300/kernel/h8300_ksyms.c | 35 arch/h8300/kernel/head_ram.S | 60 arch/h8300/kernel/head_rom.S | 111 arch/h8300/kernel/irq.c | 99 arch/h8300/kernel/kgdb.c | 135 arch/h8300/kernel/module.c | 71 arch/h8300/kernel/process.c | 173 arch/h8300/kernel/ptrace.c | 199 arch/h8300/kernel/ptrace_h.c | 256 arch/h8300/kernel/ptrace_s.c | 44 arch/h8300/kernel/setup.c | 213 arch/h8300/kernel/signal.c | 287 arch/h8300/kernel/sim-console.c | 31 arch/h8300/kernel/syscalls.c | 15 arch/h8300/kernel/traps.c | 156 arch/h8300/kernel/vmlinux.lds.S | 69 arch/h8300/lib/Makefile | 9 arch/h8300/lib/abs.S | 21 arch/h8300/lib/ashldi3.c | 25 arch/h8300/lib/ashrdi3.c | 25 arch/h8300/lib/delay.c | 41 arch/h8300/lib/libgcc.h | 78 arch/h8300/lib/lshrdi3.c | 24 arch/h8300/lib/memcpy.S | 86 arch/h8300/lib/memset.S | 70 arch/h8300/lib/moddivsi3.S | 73 arch/h8300/lib/modsi3.S | 73 arch/h8300/lib/muldi3.c | 45 arch/h8300/lib/mulsi3.S | 39 arch/h8300/lib/ucmpdi2.c | 18 arch/h8300/lib/udivsi3.S | 77 arch/h8300/mm/Makefile | 6 arch/h8300/mm/fault.c | 57 arch/h8300/mm/init.c | 95 arch/h8300/mm/memory.c | 52 arch/ia64/include/asm/iommu_table.h | 7 arch/ia64/kernel/setup.c | 2 arch/ia64/mm/init.c | 4 arch/ia64/mm/tlb.c | 2 arch/m68k/Kbuild | 1 arch/m68k/Kconfig.machine | 17 arch/m68k/configs/virt_defconfig | 68 arch/m68k/include/asm/config.h | 2 arch/m68k/include/asm/io.h | 3 arch/m68k/include/asm/irq.h | 3 arch/m68k/include/asm/pgtable_mm.h | 7 arch/m68k/include/asm/setup.h | 44 arch/m68k/include/asm/timex.h | 2 arch/m68k/include/asm/virt.h | 25 arch/m68k/include/uapi/asm/bootinfo-virt.h | 18 arch/m68k/include/uapi/asm/bootinfo.h | 1 arch/m68k/kernel/Makefile | 1 arch/m68k/kernel/head.S | 31 arch/m68k/kernel/setup_mm.c | 7 arch/m68k/mm/kmap.c | 21 arch/m68k/virt/Makefile | 6 arch/m68k/virt/config.c | 130 arch/m68k/virt/ints.c | 155 arch/m68k/virt/platform.c | 72 arch/microblaze/include/asm/string.h | 2 arch/microblaze/lib/memcpy.c | 18 arch/microblaze/lib/memmove.c | 29 arch/microblaze/lib/memset.c | 33 arch/microblaze/mm/init.c | 5 arch/mips/alchemy/devboards/db1300.c | 9 arch/mips/boot/dts/ralink/mt7621.dtsi | 2 arch/mips/cavium-octeon/dma-octeon.c | 15 arch/mips/cavium-octeon/octeon-irq.c | 4 arch/mips/configs/gpr_defconfig | 2 arch/mips/configs/mtx1_defconfig | 2 arch/mips/include/asm/timex.h | 16 arch/mips/kernel/crash.c | 2 arch/mips/loongson64/dma.c | 2 arch/mips/pci/pci-octeon.c | 2 arch/mips/sibyte/common/dma.c | 2 arch/nios2/include/asm/timex.h | 2 arch/parisc/Kconfig | 1 arch/parisc/configs/generic-32bit_defconfig | 4 arch/parisc/configs/generic-64bit_defconfig | 3 arch/parisc/include/asm/cache.h | 1 arch/parisc/include/asm/cacheflush.h | 5 arch/parisc/include/asm/pgtable.h | 2 arch/parisc/kernel/cache.c | 17 arch/parisc/kernel/pacache.S | 3 arch/parisc/kernel/processor.c | 11 arch/powerpc/Kconfig | 2 arch/powerpc/include/asm/svm.h | 4 arch/powerpc/include/asm/swiotlb.h | 1 arch/powerpc/kernel/dma-swiotlb.c | 1 arch/powerpc/kernel/fadump.c | 2 arch/powerpc/kernel/smp.c | 2 arch/powerpc/kernel/watchdog.c | 2 arch/powerpc/mm/mem.c | 6 arch/powerpc/platforms/powernv/opal-core.c | 2 arch/powerpc/platforms/pseries/setup.c | 3 arch/powerpc/platforms/pseries/svm.c | 26 arch/powerpc/xmon/xmon.c | 4 arch/riscv/Kconfig | 1 arch/riscv/Makefile | 5 arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 5 arch/riscv/include/asm/timex.h | 2 arch/riscv/mm/fault.c | 10 arch/riscv/mm/init.c | 8 arch/riscv/net/bpf_jit.h | 67 arch/riscv/net/bpf_jit_comp64.c | 110 arch/s390/kernel/perf_cpum_cf.c | 2 arch/s390/kvm/kvm-s390.c | 11 arch/s390/mm/init.c | 3 arch/sh/boards/board-sh7757lcr.c | 2 arch/sh/boards/mach-ecovec24/setup.c | 2 arch/sh/boot/romimage/mmcif-sh7724.c | 2 arch/sh/configs/rsk7201_defconfig | 1 arch/sh/configs/rsk7203_defconfig | 1 arch/sh/configs/se7206_defconfig | 1 arch/sparc/include/asm/timex_32.h | 4 arch/um/drivers/ubd_kern.c | 2 arch/um/include/asm/timex.h | 9 arch/x86/Kconfig | 42 arch/x86/Makefile | 15 arch/x86/boot/boot.h | 37 arch/x86/boot/compressed/Makefile | 2 arch/x86/boot/compressed/acpi.c | 178 arch/x86/boot/compressed/efi.c | 234 arch/x86/boot/compressed/efi.h | 126 arch/x86/boot/compressed/head_64.S | 64 arch/x86/boot/compressed/ident_map_64.c | 39 arch/x86/boot/compressed/idt_64.c | 18 arch/x86/boot/compressed/kaslr.c | 3 arch/x86/boot/compressed/mem_encrypt.S | 36 arch/x86/boot/compressed/misc.c | 12 arch/x86/boot/compressed/misc.h | 61 arch/x86/boot/compressed/pgtable.h | 2 arch/x86/boot/compressed/pgtable_64.c | 3 arch/x86/boot/compressed/sev.c | 263 arch/x86/boot/compressed/tdcall.S | 3 arch/x86/boot/compressed/tdx.c | 77 arch/x86/boot/compressed/tdx.h | 13 arch/x86/boot/cpucheck.c | 30 arch/x86/boot/cpuflags.c | 3 arch/x86/boot/cpuflags.h | 1 arch/x86/boot/header.S | 4 arch/x86/boot/io.h | 41 arch/x86/boot/main.c | 4 arch/x86/boot/msr.h | 26 arch/x86/boot/video-vesa.c | 4 arch/x86/coco/Makefile | 2 arch/x86/coco/core.c | 25 arch/x86/coco/tdx/Makefile | 3 arch/x86/coco/tdx/tdcall.S | 204 arch/x86/coco/tdx/tdx.c | 692 + arch/x86/crypto/blowfish_glue.c | 8 arch/x86/crypto/camellia_glue.c | 8 arch/x86/crypto/serpent_avx2_glue.c | 8 arch/x86/crypto/twofish_glue.c | 8 arch/x86/crypto/twofish_glue_3way.c | 8 arch/x86/entry/entry_64.S | 3 arch/x86/events/Kconfig | 8 arch/x86/events/amd/Makefile | 1 arch/x86/events/amd/brs.c | 364 arch/x86/events/amd/core.c | 252 arch/x86/events/core.c | 19 arch/x86/events/intel/lbr.c | 36 arch/x86/events/perf_event.h | 143 arch/x86/ia32/Makefile | 2 arch/x86/ia32/ia32_aout.c | 325 arch/x86/include/asm/acenv.h | 14 arch/x86/include/asm/amd_nb.h | 1 arch/x86/include/asm/apic.h | 7 arch/x86/include/asm/apicdef.h | 6 arch/x86/include/asm/bootparam_utils.h | 1 arch/x86/include/asm/cpu_entry_area.h | 2 arch/x86/include/asm/cpufeature.h | 7 arch/x86/include/asm/cpufeatures.h | 2 arch/x86/include/asm/cpuid.h | 34 arch/x86/include/asm/disabled-features.h | 16 arch/x86/include/asm/dma-mapping.h | 12 arch/x86/include/asm/e820/api.h | 5 arch/x86/include/asm/efi.h | 5 arch/x86/include/asm/elf.h | 15 arch/x86/include/asm/gart.h | 5 arch/x86/include/asm/highmem.h | 1 arch/x86/include/asm/idtentry.h | 4 arch/x86/include/asm/intel-family.h | 3 arch/x86/include/asm/io.h | 44 arch/x86/include/asm/iommu.h | 8 arch/x86/include/asm/iommu_table.h | 102 arch/x86/include/asm/kvm-x86-ops.h | 1 arch/x86/include/asm/kvm-x86-pmu-ops.h | 31 arch/x86/include/asm/kvm_host.h | 68 arch/x86/include/asm/kvm_para.h | 22 arch/x86/include/asm/mem_encrypt.h | 6 arch/x86/include/asm/microcode.h | 2 arch/x86/include/asm/mmu_context.h | 2 arch/x86/include/asm/msr-index.h | 7 arch/x86/include/asm/msr.h | 11 arch/x86/include/asm/page_64.h | 2 arch/x86/include/asm/pci_x86.h | 9 arch/x86/include/asm/perf_event.h | 23 arch/x86/include/asm/pkeys.h | 8 arch/x86/include/asm/proto.h | 1 arch/x86/include/asm/realmode.h | 1 arch/x86/include/asm/segment.h | 12 arch/x86/include/asm/setup.h | 1 arch/x86/include/asm/sev-common.h | 82 arch/x86/include/asm/sev.h | 102 arch/x86/include/asm/shared/io.h | 34 arch/x86/include/asm/shared/msr.h | 15 arch/x86/include/asm/shared/tdx.h | 40 arch/x86/include/asm/smap.h | 24 arch/x86/include/asm/special_insns.h | 7 arch/x86/include/asm/static_call.h | 1 arch/x86/include/asm/svm.h | 179 arch/x86/include/asm/swiotlb.h | 30 arch/x86/include/asm/tdx.h | 91 arch/x86/include/asm/timex.h | 10 arch/x86/include/asm/tsc.h | 3 arch/x86/include/asm/uaccess.h | 142 arch/x86/include/asm/vmx.h | 10 arch/x86/include/asm/xen/page.h | 5 arch/x86/include/asm/xen/swiotlb-xen.h | 2 arch/x86/include/uapi/asm/bootparam.h | 4 arch/x86/include/uapi/asm/kvm.h | 11 arch/x86/include/uapi/asm/svm.h | 13 arch/x86/kernel/Makefile | 4 arch/x86/kernel/acpi/boot.c | 95 arch/x86/kernel/amd_gart_64.c | 5 arch/x86/kernel/amd_nb.c | 7 arch/x86/kernel/aperture_64.c | 14 arch/x86/kernel/apic/apic.c | 21 arch/x86/kernel/apic/io_apic.c | 18 arch/x86/kernel/apic/x2apic_uv_x.c | 16 arch/x86/kernel/asm-offsets.c | 17 arch/x86/kernel/asm-offsets_64.c | 4 arch/x86/kernel/cpu/bugs.c | 7 arch/x86/kernel/cpu/common.c | 105 arch/x86/kernel/cpu/mce/amd.c | 32 arch/x86/kernel/cpu/mce/apei.c | 8 arch/x86/kernel/cpu/mce/core.c | 4 arch/x86/kernel/cpu/microcode/core.c | 6 arch/x86/kernel/cpu/mshyperv.c | 8 arch/x86/kernel/cpu/resctrl/rdtgroup.c | 16 arch/x86/kernel/crash.c | 2 arch/x86/kernel/early-quirks.c | 2 arch/x86/kernel/head64.c | 36 arch/x86/kernel/head_64.S | 65 arch/x86/kernel/idt.c | 3 arch/x86/kernel/kvm.c | 77 arch/x86/kernel/kvmclock.c | 2 arch/x86/kernel/pci-dma.c | 112 arch/x86/kernel/pci-iommu_table.c | 77 arch/x86/kernel/pci-swiotlb.c | 77 arch/x86/kernel/probe_roms.c | 13 arch/x86/kernel/process.c | 11 arch/x86/kernel/process_32.c | 11 arch/x86/kernel/ptrace.c | 6 arch/x86/kernel/resource.c | 23 arch/x86/kernel/setup.c | 28 arch/x86/kernel/sev-shared.c | 529 + arch/x86/kernel/sev.c | 820 + arch/x86/kernel/signal.c | 8 arch/x86/kernel/smpboot.c | 15 arch/x86/kernel/tboot.c | 1 arch/x86/kernel/traps.c | 143 arch/x86/kernel/unwind_orc.c | 8 arch/x86/kernel/vm86_32.c | 4 arch/x86/kernel/vmlinux.lds.S | 12 arch/x86/kvm/cpuid.c | 19 arch/x86/kvm/hyperv.c | 8 arch/x86/kvm/i8259.c | 1 arch/x86/kvm/irq.c | 10 arch/x86/kvm/irq_comm.c | 2 arch/x86/kvm/mmu/mmu.c | 18 arch/x86/kvm/mmu/paging_tmpl.h | 49 arch/x86/kvm/pmu.c | 66 arch/x86/kvm/pmu.h | 7 arch/x86/kvm/svm/avic.c | 10 arch/x86/kvm/svm/nested.c | 298 arch/x86/kvm/svm/pmu.c | 2 arch/x86/kvm/svm/sev.c | 31 arch/x86/kvm/svm/svm.c | 217 arch/x86/kvm/svm/svm.h | 57 arch/x86/kvm/vmx/nested.c | 48 arch/x86/kvm/vmx/pmu_intel.c | 2 arch/x86/kvm/vmx/vmcs.h | 5 arch/x86/kvm/vmx/vmx.c | 10 arch/x86/kvm/x86.c | 269 arch/x86/kvm/xen.c | 1245 ++ arch/x86/kvm/xen.h | 62 arch/x86/lib/copy_user_64.S | 87 arch/x86/lib/delay.c | 4 arch/x86/lib/insn-eval.c | 5 arch/x86/lib/kaslr.c | 2 arch/x86/lib/putuser.S | 4 arch/x86/lib/retpoline.S | 2 arch/x86/math-emu/get_address.c | 2 arch/x86/mm/amdtopology.c | 2 arch/x86/mm/fault.c | 2 arch/x86/mm/init_64.c | 1 arch/x86/mm/ioremap.c | 5 arch/x86/mm/mem_encrypt.c | 13 arch/x86/mm/mem_encrypt_amd.c | 74 arch/x86/mm/mem_encrypt_identity.c | 8 arch/x86/mm/mmio-mod.c | 2 arch/x86/mm/numa_emulation.c | 4 arch/x86/mm/setup_nx.c | 62 arch/x86/pci/acpi.c | 5 arch/x86/pci/irq.c | 377 arch/x86/pci/sta2x11-fixup.c | 2 arch/x86/platform/efi/efi.c | 3 arch/x86/platform/pvh/head.S | 1 arch/x86/platform/uv/uv_nmi.c | 23 arch/x86/power/cpu.c | 10 arch/x86/realmode/rm/header.S | 1 arch/x86/realmode/rm/trampoline_64.S | 57 arch/x86/realmode/rm/trampoline_common.S | 12 arch/x86/realmode/rm/wakemain.c | 4 arch/x86/virt/vmx/tdx/tdxcall.S | 96 arch/x86/xen/Makefile | 2 arch/x86/xen/pci-swiotlb-xen.c | 96 arch/x86/xen/smp_pv.c | 5 arch/x86/xen/xen-head.S | 1 arch/xtensa/Kconfig | 17 arch/xtensa/boot/lib/Makefile | 1 arch/xtensa/include/asm/barrier.h | 12 arch/xtensa/include/asm/bitops.h | 10 arch/xtensa/include/asm/coprocessor.h | 11 arch/xtensa/include/asm/processor.h | 7 arch/xtensa/include/asm/thread_info.h | 7 arch/xtensa/include/asm/timex.h | 6 arch/xtensa/include/asm/traps.h | 40 arch/xtensa/kernel/Makefile | 1 arch/xtensa/kernel/asm-offsets.c | 16 arch/xtensa/kernel/coprocessor.S | 228 arch/xtensa/kernel/entry.S | 224 arch/xtensa/kernel/hibernate.c | 25 arch/xtensa/kernel/process.c | 112 arch/xtensa/kernel/ptrace.c | 3 arch/xtensa/kernel/s32c1i_selftest.c | 7 arch/xtensa/kernel/signal.c | 3 arch/xtensa/kernel/smp.c | 7 arch/xtensa/kernel/traps.c | 100 arch/xtensa/lib/Makefile | 2 arch/xtensa/lib/kcsan-stubs.c | 54 arch/xtensa/lib/memcopy.S | 20 arch/xtensa/mm/Makefile | 3 arch/xtensa/mm/fault.c | 112 arch/xtensa/mm/mmu.c | 2 arch/xtensa/platforms/iss/network.c | 150 block/bdev.c | 23 block/bfq-cgroup.c | 111 block/bfq-iosched.c | 56 block/bfq-iosched.h | 6 block/bio.c | 135 block/blk-core.c | 56 block/blk-crypto-fallback.c | 14 block/blk-lib.c | 124 block/blk-map.c | 42 block/blk-mq-debugfs.c | 2 block/blk-settings.c | 74 block/blk.h | 21 block/fops.c | 13 block/genhd.c | 4 block/ioctl.c | 48 block/partitions/core.c | 14 certs/.gitignore | 1 certs/Kconfig | 17 certs/Makefile | 18 certs/blacklist.c | 225 crypto/Kconfig | 18 crypto/Makefile | 6 crypto/asymmetric_keys/x509_public_key.c | 3 crypto/crypto_engine.c | 1 crypto/sm3.c | 246 crypto/sm4.c | 184 crypto/testmgr.c | 75 drivers/Kconfig | 2 drivers/Makefile | 1 drivers/accessibility/speakup/fakekey.c | 4 drivers/accessibility/speakup/serialio.c | 2 drivers/accessibility/speakup/speakup_acntpc.c | 2 drivers/accessibility/speakup/speakup_acntsa.c | 2 drivers/accessibility/speakup/speakup_apollo.c | 2 drivers/accessibility/speakup/speakup_audptr.c | 2 drivers/accessibility/speakup/speakup_bns.c | 2 drivers/accessibility/speakup/speakup_decext.c | 2 drivers/accessibility/speakup/speakup_dectlk.c | 2 drivers/accessibility/speakup/speakup_dtlk.c | 2 drivers/accessibility/speakup/speakup_dummy.c | 2 drivers/accessibility/speakup/speakup_keypc.c | 2 drivers/accessibility/speakup/speakup_ltlk.c | 2 drivers/accessibility/speakup/speakup_soft.c | 2 drivers/accessibility/speakup/speakup_spkout.c | 2 drivers/accessibility/speakup/speakup_txprt.c | 2 drivers/acpi/acpi_pad.c | 7 drivers/acpi/acpica/acapps.h | 4 drivers/acpi/acpica/accommon.h | 2 drivers/acpi/acpica/acconvert.h | 2 drivers/acpi/acpica/acdebug.h | 2 drivers/acpi/acpica/acdispat.h | 2 drivers/acpi/acpica/acevents.h | 2 drivers/acpi/acpica/acglobal.h | 2 drivers/acpi/acpica/achware.h | 2 drivers/acpi/acpica/acinterp.h | 2 drivers/acpi/acpica/aclocal.h | 2 drivers/acpi/acpica/acmacros.h | 2 drivers/acpi/acpica/acnamesp.h | 2 drivers/acpi/acpica/acobject.h | 2 drivers/acpi/acpica/acopcode.h | 2 drivers/acpi/acpica/acparser.h | 2 drivers/acpi/acpica/acpredef.h | 2 drivers/acpi/acpica/acresrc.h | 2 drivers/acpi/acpica/acstruct.h | 2 drivers/acpi/acpica/actables.h | 2 drivers/acpi/acpica/acutils.h | 2 drivers/acpi/acpica/amlcode.h | 2 drivers/acpi/acpica/amlresrc.h | 2 drivers/acpi/acpica/dbhistry.c | 2 drivers/acpi/acpica/dsargs.c | 2 drivers/acpi/acpica/dscontrol.c | 2 drivers/acpi/acpica/dsdebug.c | 2 drivers/acpi/acpica/dsfield.c | 2 drivers/acpi/acpica/dsinit.c | 2 drivers/acpi/acpica/dsmethod.c | 2 drivers/acpi/acpica/dsobject.c | 2 drivers/acpi/acpica/dsopcode.c | 2 drivers/acpi/acpica/dspkginit.c | 2 drivers/acpi/acpica/dswexec.c | 4 drivers/acpi/acpica/dswload.c | 2 drivers/acpi/acpica/dswload2.c | 2 drivers/acpi/acpica/dswscope.c | 2 drivers/acpi/acpica/dswstate.c | 2 drivers/acpi/acpica/evevent.c | 2 drivers/acpi/acpica/evglock.c | 2 drivers/acpi/acpica/evgpe.c | 2 drivers/acpi/acpica/evgpeblk.c | 2 drivers/acpi/acpica/evgpeinit.c | 2 drivers/acpi/acpica/evgpeutil.c | 2 drivers/acpi/acpica/evhandler.c | 2 drivers/acpi/acpica/evmisc.c | 2 drivers/acpi/acpica/evregion.c | 2 drivers/acpi/acpica/evrgnini.c | 2 drivers/acpi/acpica/evxface.c | 2 drivers/acpi/acpica/evxfevnt.c | 2 drivers/acpi/acpica/evxfgpe.c | 2 drivers/acpi/acpica/evxfregn.c | 2 drivers/acpi/acpica/exconcat.c | 2 drivers/acpi/acpica/exconfig.c | 61 drivers/acpi/acpica/exconvrt.c | 2 drivers/acpi/acpica/excreate.c | 2 drivers/acpi/acpica/exdebug.c | 2 drivers/acpi/acpica/exdump.c | 2 drivers/acpi/acpica/exfield.c | 2 drivers/acpi/acpica/exfldio.c | 4 drivers/acpi/acpica/exmisc.c | 2 drivers/acpi/acpica/exmutex.c | 2 drivers/acpi/acpica/exnames.c | 2 drivers/acpi/acpica/exoparg1.c | 23 drivers/acpi/acpica/exoparg2.c | 2 drivers/acpi/acpica/exoparg3.c | 2 drivers/acpi/acpica/exoparg6.c | 2 drivers/acpi/acpica/exprep.c | 2 drivers/acpi/acpica/exregion.c | 2 drivers/acpi/acpica/exresnte.c | 2 drivers/acpi/acpica/exresolv.c | 2 drivers/acpi/acpica/exresop.c | 2 drivers/acpi/acpica/exserial.c | 2 drivers/acpi/acpica/exstore.c | 2 drivers/acpi/acpica/exstoren.c | 2 drivers/acpi/acpica/exstorob.c | 2 drivers/acpi/acpica/exsystem.c | 40 drivers/acpi/acpica/extrace.c | 2 drivers/acpi/acpica/exutils.c | 2 drivers/acpi/acpica/hwacpi.c | 2 drivers/acpi/acpica/hwesleep.c | 2 drivers/acpi/acpica/hwgpe.c | 2 drivers/acpi/acpica/hwregs.c | 2 drivers/acpi/acpica/hwsleep.c | 2 drivers/acpi/acpica/hwtimer.c | 2 drivers/acpi/acpica/hwvalid.c | 2 drivers/acpi/acpica/hwxface.c | 2 drivers/acpi/acpica/hwxfsleep.c | 2 drivers/acpi/acpica/nsarguments.c | 2 drivers/acpi/acpica/nsconvert.c | 2 drivers/acpi/acpica/nsdump.c | 2 drivers/acpi/acpica/nsdumpdv.c | 2 drivers/acpi/acpica/nsinit.c | 2 drivers/acpi/acpica/nsload.c | 2 drivers/acpi/acpica/nsparse.c | 2 drivers/acpi/acpica/nspredef.c | 2 drivers/acpi/acpica/nsprepkg.c | 2 drivers/acpi/acpica/nsrepair.c | 2 drivers/acpi/acpica/nsrepair2.c | 2 drivers/acpi/acpica/nsutils.c | 2 drivers/acpi/acpica/nswalk.c | 2 drivers/acpi/acpica/nsxfname.c | 2 drivers/acpi/acpica/psargs.c | 2 drivers/acpi/acpica/psloop.c | 2 drivers/acpi/acpica/psobject.c | 2 drivers/acpi/acpica/psopcode.c | 6 drivers/acpi/acpica/psopinfo.c | 2 drivers/acpi/acpica/psparse.c | 2 drivers/acpi/acpica/psscope.c | 2 drivers/acpi/acpica/pstree.c | 2 drivers/acpi/acpica/psutils.c | 2 drivers/acpi/acpica/pswalk.c | 2 drivers/acpi/acpica/psxface.c | 2 drivers/acpi/acpica/tbdata.c | 2 drivers/acpi/acpica/tbfadt.c | 2 drivers/acpi/acpica/tbfind.c | 2 drivers/acpi/acpica/tbinstal.c | 2 drivers/acpi/acpica/tbprint.c | 2 drivers/acpi/acpica/tbutils.c | 2 drivers/acpi/acpica/tbxface.c | 2 drivers/acpi/acpica/tbxfload.c | 2 drivers/acpi/acpica/tbxfroot.c | 2 drivers/acpi/acpica/utaddress.c | 2 drivers/acpi/acpica/utalloc.c | 2 drivers/acpi/acpica/utascii.c | 2 drivers/acpi/acpica/utbuffer.c | 2 drivers/acpi/acpica/utcache.c | 2 drivers/acpi/acpica/utcopy.c | 2 drivers/acpi/acpica/utdebug.c | 2 drivers/acpi/acpica/utdecode.c | 2 drivers/acpi/acpica/uteval.c | 2 drivers/acpi/acpica/utglobal.c | 2 drivers/acpi/acpica/uthex.c | 2 drivers/acpi/acpica/utids.c | 2 drivers/acpi/acpica/utinit.c | 2 drivers/acpi/acpica/utlock.c | 2 drivers/acpi/acpica/utobject.c | 2 drivers/acpi/acpica/utosi.c | 3 drivers/acpi/acpica/utpredef.c | 2 drivers/acpi/acpica/utprint.c | 2 drivers/acpi/acpica/uttrack.c | 2 drivers/acpi/acpica/utuuid.c | 2 drivers/acpi/acpica/utxface.c | 2 drivers/acpi/acpica/utxfinit.c | 2 drivers/acpi/apei/erst-dbg.c | 3 drivers/acpi/apei/erst.c | 77 drivers/acpi/bus.c | 6 drivers/acpi/device_pm.c | 72 drivers/acpi/numa/srat.c | 2 drivers/acpi/pci_root.c | 2 drivers/acpi/processor_idle.c | 5 drivers/acpi/property.c | 54 drivers/acpi/spcr.c | 1 drivers/acpi/sysfs.c | 25 drivers/android/Kconfig | 6 drivers/android/Makefile | 2 drivers/android/allocation.rs | 266 drivers/android/context.rs | 80 drivers/android/defs.rs | 99 drivers/android/node.rs | 476 drivers/android/process.rs | 960 + drivers/android/range_alloc.rs | 189 drivers/android/rust_binder.rs | 111 drivers/android/thread.rs | 870 + drivers/android/transaction.rs | 326 drivers/ata/ahci.c | 5 drivers/ata/libata-core.c | 54 drivers/ata/libata-sata.c | 25 drivers/ata/libata-scsi.c | 46 drivers/ata/libata.h | 13 drivers/ata/pata_mpc52xx.c | 3 drivers/ata/pata_palmld.c | 3 drivers/ata/pata_sil680.c | 30 drivers/ata/pata_via.c | 6 drivers/ata/sata_gemini.c | 7 drivers/atm/Kconfig | 25 drivers/atm/Makefile | 1 drivers/atm/ambassador.c | 2400 ---- drivers/atm/ambassador.h | 648 - drivers/base/arch_topology.c | 11 drivers/base/power/common.c | 8 drivers/base/power/runtime.c | 53 drivers/base/property.c | 185 drivers/base/regmap/regmap-i3c.c | 2 drivers/base/regmap/regmap-sccb.c | 2 drivers/base/regmap/regmap-sdw-mbq.c | 2 drivers/base/regmap/regmap-sdw.c | 2 drivers/base/regmap/regmap-slimbus.c | 2 drivers/base/regmap/regmap-w1.c | 6 drivers/base/topology.c | 12 drivers/block/drbd/drbd_bitmap.c | 2 drivers/block/drbd/drbd_main.c | 62 drivers/block/drbd/drbd_nl.c | 129 drivers/block/drbd/drbd_receiver.c | 28 drivers/block/drbd/drbd_req.c | 2 drivers/block/drbd/drbd_state.c | 3 drivers/block/drbd/drbd_worker.c | 2 drivers/block/loop.c | 272 drivers/block/loop.h | 1 drivers/block/nbd.c | 21 drivers/block/null_blk/main.c | 1 drivers/block/pktcdvd.c | 34 drivers/block/rbd.c | 1 drivers/block/rnbd/rnbd-clt.c | 20 drivers/block/rnbd/rnbd-srv-dev.h | 8 drivers/block/rnbd/rnbd-srv.c | 5 drivers/block/virtio_blk.c | 2 drivers/block/xen-blkback/blkback.c | 15 drivers/block/xen-blkback/xenbus.c | 9 drivers/block/xen-blkfront.c | 8 drivers/block/zram/zram_drv.c | 35 drivers/bluetooth/btbcm.c | 52 drivers/bluetooth/btintel.c | 2 drivers/bluetooth/btmtksdio.c | 2 drivers/bluetooth/btusb.c | 5 drivers/bluetooth/hci_qca.c | 4 drivers/bus/Kconfig | 11 drivers/bus/Makefile | 1 drivers/bus/imx-weim.c | 5 drivers/bus/mhi/Kconfig | 1 drivers/bus/mhi/Makefile | 3 drivers/bus/mhi/common.h | 22 drivers/bus/mhi/ep/Kconfig | 10 drivers/bus/mhi/ep/Makefile | 2 drivers/bus/mhi/ep/internal.h | 218 drivers/bus/mhi/ep/main.c | 1591 +++ drivers/bus/mhi/ep/mmio.c | 273 drivers/bus/mhi/ep/ring.c | 207 drivers/bus/mhi/ep/sm.c | 148 drivers/bus/mhi/host/main.c | 9 drivers/bus/mhi/host/pci_generic.c | 2 drivers/bus/qcom-ssc-block-bus.c | 389 drivers/bus/ti-sysc.c | 20 drivers/char/agp/amd64-agp.c | 2 drivers/char/hw_random/Kconfig | 13 drivers/char/hw_random/Makefile | 1 drivers/char/hw_random/cn10k-rng.c | 31 drivers/char/hw_random/mpfs-rng.c | 104 drivers/char/ipmi/ipmb_dev_int.c | 5 drivers/char/ipmi/ipmi_ipmb.c | 5 drivers/char/ipmi/ipmi_msghandler.c | 112 drivers/char/ipmi/ipmi_poweroff.c | 8 drivers/char/ipmi/ipmi_si_intf.c | 22 drivers/char/ipmi/ipmi_ssif.c | 27 drivers/char/ipmi/ipmi_watchdog.c | 28 drivers/char/pcmcia/synclink_cs.c | 2 drivers/char/random.c | 98 drivers/clk/Makefile | 1 drivers/clk/h8300/Makefile | 3 drivers/clk/h8300/clk-div.c | 57 drivers/clk/h8300/clk-h8s2678.c | 145 drivers/clk/imx/clk-composite-8m.c | 21 drivers/clk/imx/clk-imx7d.c | 1 drivers/clk/imx/clk-imx8mm.c | 3 drivers/clk/imx/clk-imx8mn.c | 41 drivers/clk/imx/clk-imx8mp.c | 8 drivers/clk/imx/clk-imx8mq.c | 5 drivers/clk/imx/clk-scu.c | 4 drivers/clk/imx/clk.c | 5 drivers/clk/imx/clk.h | 1 drivers/clk/pxa/clk-pxa.c | 8 drivers/clk/pxa/clk-pxa.h | 9 drivers/clk/pxa/clk-pxa25x.c | 46 drivers/clk/pxa/clk-pxa27x.c | 68 drivers/clk/pxa/clk-pxa2xx.h | 58 drivers/clk/pxa/clk-pxa3xx.c | 139 drivers/clk/qcom/Kconfig | 10 drivers/clk/qcom/Makefile | 1 drivers/clk/qcom/clk-regmap-mux.c | 78 drivers/clk/qcom/clk-regmap-mux.h | 3 drivers/clk/qcom/gcc-msm8998.c | 56 drivers/clk/qcom/gcc-sc7280.c | 6 drivers/clk/qcom/gcc-sm8450.c | 6 drivers/clk/qcom/lpassaudiocc-sc7280.c | 838 + drivers/clk/qcom/lpasscorecc-sc7280.c | 431 drivers/clk/renesas/Kconfig | 7 drivers/clk/renesas/Makefile | 1 drivers/clk/renesas/r8a774a1-cpg-mssr.c | 9 drivers/clk/renesas/r8a774b1-cpg-mssr.c | 9 drivers/clk/renesas/r8a774c0-cpg-mssr.c | 8 drivers/clk/renesas/r8a774e1-cpg-mssr.c | 9 drivers/clk/renesas/r8a7795-cpg-mssr.c | 9 drivers/clk/renesas/r8a7796-cpg-mssr.c | 9 drivers/clk/renesas/r8a77965-cpg-mssr.c | 9 drivers/clk/renesas/r8a77980-cpg-mssr.c | 10 drivers/clk/renesas/r8a77990-cpg-mssr.c | 7 drivers/clk/renesas/r8a77995-cpg-mssr.c | 11 drivers/clk/renesas/r8a779a0-cpg-mssr.c | 11 drivers/clk/renesas/r8a779f0-cpg-mssr.c | 9 drivers/clk/renesas/r9a07g043-cpg.c | 220 drivers/clk/renesas/rcar-gen3-cpg.h | 5 drivers/clk/renesas/rzg2l-cpg.c | 10 drivers/clk/renesas/rzg2l-cpg.h | 1 drivers/clk/sunxi-ng/ccu-sun6i-rtc.c | 1 drivers/clocksource/Kconfig | 27 drivers/clocksource/Makefile | 4 drivers/clocksource/h8300_timer16.c | 192 drivers/clocksource/h8300_timer8.c | 211 drivers/clocksource/h8300_tpu.c | 158 drivers/clocksource/timer-goldfish.c | 153 drivers/clocksource/timer-ti-dm.c | 2 drivers/cpufreq/cpufreq_governor.c | 20 drivers/cpufreq/cpufreq_governor.h | 1 drivers/cpufreq/intel_pstate.c | 1 drivers/cpufreq/mediatek-cpufreq-hw.c | 4 drivers/cpufreq/mediatek-cpufreq.c | 147 drivers/cpufreq/pasemi-cpufreq.c | 1 drivers/cpufreq/pmac32-cpufreq.c | 2 drivers/cpufreq/pmac64-cpufreq.c | 2 drivers/cpufreq/ppc_cbe_cpufreq.c | 1 drivers/cpufreq/ppc_cbe_cpufreq_pmi.c | 2 drivers/cpufreq/pxa2xx-cpufreq.c | 6 drivers/cpufreq/pxa3xx-cpufreq.c | 65 drivers/cpufreq/qcom-cpufreq-hw.c | 62 drivers/cpufreq/scmi-cpufreq.c | 4 drivers/cpufreq/tegra194-cpufreq.c | 246 drivers/cpuidle/cpuidle-psci.c | 46 drivers/crypto/cavium/nitrox/nitrox_main.c | 10 drivers/crypto/ccp/psp-dev.c | 49 drivers/crypto/ccp/psp-dev.h | 22 drivers/crypto/ccp/sev-dev.c | 2 drivers/crypto/ccp/sp-pci.c | 62 drivers/crypto/ccree/cc_buffer_mgr.c | 27 drivers/crypto/ccree/cc_driver.c | 24 drivers/crypto/hisilicon/hpre/hpre_main.c | 222 drivers/crypto/hisilicon/qm.c | 282 drivers/crypto/hisilicon/sec2/sec_main.c | 108 drivers/crypto/hisilicon/sgl.c | 6 drivers/crypto/hisilicon/zip/zip_crypto.c | 2 drivers/crypto/hisilicon/zip/zip_main.c | 185 drivers/crypto/marvell/cesa/cipher.c | 1 drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c | 15 drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h | 4 drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c | 15 drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.h | 4 drivers/crypto/qat/qat_common/adf_accel_devices.h | 4 drivers/crypto/qat/qat_common/adf_common_drv.h | 18 drivers/crypto/qat/qat_common/adf_gen2_hw_data.c | 13 drivers/crypto/qat/qat_common/adf_gen2_hw_data.h | 6 drivers/crypto/qat/qat_common/adf_gen2_pfvf.c | 78 drivers/crypto/qat/qat_common/adf_gen4_pfvf.c | 61 drivers/crypto/qat/qat_common/adf_isr.c | 21 drivers/crypto/qat/qat_common/adf_pfvf_msg.h | 4 drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c | 6 drivers/crypto/qat/qat_common/adf_sriov.c | 16 drivers/crypto/qat/qat_common/adf_vf_isr.c | 1 drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 126 drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 4 drivers/crypto/sa2ul.c | 1 drivers/crypto/ux500/hash/hash_core.c | 4 drivers/devfreq/rk3399_dmc.c | 299 drivers/dma-buf/dma-buf.c | 24 drivers/dma-buf/dma-resv.c | 463 drivers/dma-buf/st-dma-resv.c | 157 drivers/dma/Kconfig | 11 drivers/dma/Makefile | 1 drivers/dma/amba-pl08x.c | 11 drivers/dma/at_hdmac.c | 10 drivers/dma/at_xdmac.c | 9 drivers/dma/bestcomm/bestcomm.c | 2 drivers/dma/dma-jz4780.c | 9 drivers/dma/dmaengine.c | 7 drivers/dma/dmatest.c | 13 drivers/dma/ep93xx_dma.c | 2 drivers/dma/idxd/device.c | 69 drivers/dma/idxd/dma.c | 19 drivers/dma/idxd/registers.h | 1 drivers/dma/idxd/sysfs.c | 10 drivers/dma/imx-dma.c | 2 drivers/dma/imx-sdma.c | 76 drivers/dma/mediatek/mtk-cqdma.c | 12 drivers/dma/mediatek/mtk-hsdma.c | 13 drivers/dma/nbpfaxi.c | 14 drivers/dma/plx_dma.c | 4 drivers/dma/ptdma/ptdma-dev.c | 36 drivers/dma/ptdma/ptdma-dmaengine.c | 16 drivers/dma/ptdma/ptdma.h | 13 drivers/dma/qcom/gpi.c | 20 drivers/dma/qcom/hidma.c | 13 drivers/dma/sf-pdma/sf-pdma.c | 24 drivers/dma/sf-pdma/sf-pdma.h | 8 drivers/dma/sh/Kconfig | 2 drivers/dma/stm32-mdma.c | 21 drivers/dma/tegra186-gpc-dma.c | 1506 +++ drivers/dma/ti/omap-dma.c | 19 drivers/edac/Kconfig | 1 drivers/edac/amd64_edac.c | 2 drivers/edac/dmc520_edac.c | 2 drivers/edac/edac_device.c | 136 drivers/edac/edac_device.h | 14 drivers/edac/edac_device_sysfs.c | 5 drivers/edac/edac_mc.c | 96 drivers/edac/edac_module.h | 2 drivers/edac/edac_pci.c | 25 drivers/edac/ghes_edac.c | 198 drivers/edac/mpc85xx_edac.c | 14 drivers/extcon/Kconfig | 3 drivers/extcon/extcon-axp288.c | 4 drivers/extcon/extcon-intel-int3496.c | 54 drivers/extcon/extcon-ptn5150.c | 36 drivers/extcon/extcon-sm5502.c | 2 drivers/extcon/extcon-usb-gpio.c | 15 drivers/extcon/extcon-usbc-cros-ec.c | 2 drivers/extcon/extcon.c | 8 drivers/firewire/core-card.c | 39 drivers/firewire/core-cdev.c | 6 drivers/firewire/core-transaction.c | 18 drivers/firmware/Kconfig | 6 drivers/firmware/efi/Kconfig | 43 drivers/firmware/efi/cper.c | 64 drivers/firmware/efi/efi.c | 13 drivers/firmware/efi/libstub/efistub.h | 74 drivers/firmware/efi/libstub/x86-stub.c | 120 drivers/firmware/psci/psci_checker.c | 2 drivers/firmware/qcom_scm.c | 4 drivers/fpga/Makefile | 6 drivers/fpga/fpga-mgr.c | 8 drivers/fpga/fpga-region.c | 7 drivers/fpga/of-fpga-region.c | 6 drivers/fpga/zynq-fpga.c | 2 drivers/gpio/Kconfig | 9 drivers/gpio/Makefile | 1 drivers/gpio/TODO | 19 drivers/gpio/gpio-ixp4xx.c | 5 drivers/gpio/gpio-pl061.c | 32 drivers/gpio/gpio-rcar.c | 7 drivers/gpio/gpio-realtek-otto.c | 137 drivers/gpio/gpio-rockchip.c | 29 drivers/gpio/gpio-tegra186.c | 32 drivers/gpio/gpio_pl061_rust.rs | 370 drivers/gpio/gpiolib-cdev.c | 66 drivers/gpio/gpiolib-of.c | 8 drivers/gpio/gpiolib-sysfs.c | 3 drivers/gpio/gpiolib.c | 88 drivers/gpio/gpiolib.h | 11 drivers/gpu/drm/Kconfig | 1 drivers/gpu/drm/amd/amdgpu/Makefile | 4 drivers/gpu/drm/amd/amdgpu/amdgpu.h | 6 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 8 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 6 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 84 drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 64 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 12 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 drivers/gpu/drm/amd/amdgpu/amdgpu_df.h | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 15 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 55 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 14 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 113 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 13 drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c | 49 drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.h | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 66 drivers/gpu/drm/amd/amdgpu/amdgpu_ids.h | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h | 8 drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.h | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c | 4 drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 13 drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 31 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 54 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 26 drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c | 308 drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.h | 30 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 9 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h | 3 drivers/gpu/drm/amd/amdgpu/amdgpu_res_cursor.h | 97 drivers/gpu/drm/amd/amdgpu/amdgpu_smuio.h | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 26 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.h | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 90 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 10 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 3 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 9 drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 24 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 32 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 1203 -- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 52 drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c | 11 drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c | 984 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c | 13 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 357 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h | 89 drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h | 99 drivers/gpu/drm/amd/amdgpu/athub_v1_0.c | 2 drivers/gpu/drm/amd/amdgpu/athub_v1_0.h | 2 drivers/gpu/drm/amd/amdgpu/athub_v2_0.c | 2 drivers/gpu/drm/amd/amdgpu/athub_v2_0.h | 2 drivers/gpu/drm/amd/amdgpu/athub_v2_1.c | 2 drivers/gpu/drm/amd/amdgpu/athub_v2_1.h | 2 drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 21 drivers/gpu/drm/amd/amdgpu/df_v1_7.c | 2 drivers/gpu/drm/amd/amdgpu/df_v3_6.c | 2 drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 4 drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 4 drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.c | 14 drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 2 drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 2 drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 2 drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c | 2 drivers/gpu/drm/amd/amdgpu/hdp_v5_0.c | 2 drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c | 74 drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.h | 7 drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c | 2 drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.c | 2 drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c | 2 drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c | 2 drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c | 2 drivers/gpu/drm/amd/amdgpu/navi10_ih.c | 2 drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c | 2 drivers/gpu/drm/amd/amdgpu/nbio_v6_1.c | 2 drivers/gpu/drm/amd/amdgpu/nbio_v7_0.c | 2 drivers/gpu/drm/amd/amdgpu/nbio_v7_2.c | 2 drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c | 2 drivers/gpu/drm/amd/amdgpu/nv.c | 2 drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 2 drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 2 drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 2 drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 2 drivers/gpu/drm/amd/amdgpu/smuio_v11_0.c | 2 drivers/gpu/drm/amd/amdgpu/smuio_v11_0_6.c | 2 drivers/gpu/drm/amd/amdgpu/smuio_v13_0.c | 2 drivers/gpu/drm/amd/amdgpu/smuio_v9_0.c | 2 drivers/gpu/drm/amd/amdgpu/soc15.c | 2 drivers/gpu/drm/amd/amdgpu/umc_v6_7.c | 106 drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 2 drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 2 drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 2 drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 71 drivers/gpu/drm/amd/amdgpu/vcn_v2_5.h | 6 drivers/gpu/drm/amd/amdgpu/vi.c | 2 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 27 drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 4 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 83 drivers/gpu/drm/amd/amdkfd/kfd_events.c | 152 drivers/gpu/drm/amd/amdkfd/kfd_events.h | 3 drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 49 drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c | 11 drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 13 drivers/gpu/drm/amd/amdkfd/kfd_process.c | 13 drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 10 drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 39 drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 83 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 43 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 37 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 2 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c | 9 drivers/gpu/drm/amd/display/dc/bios/bios_parser_common.c | 3 drivers/gpu/drm/amd/display/dc/bios/command_table.c | 3 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.c | 3 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 17 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c | 3 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c | 3 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c | 26 drivers/gpu/drm/amd/display/dc/core/dc.c | 13 drivers/gpu/drm/amd/display/dc/core/dc_link.c | 196 drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 30 drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 91 drivers/gpu/drm/amd/display/dc/dc.h | 4 drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 14 drivers/gpu/drm/amd/display/dc/dc_link.h | 12 drivers/gpu/drm/amd/display/dc/dc_stream.h | 1 drivers/gpu/drm/amd/display/dc/dce/dce_aux.c | 2 drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c | 4 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 25 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c | 2 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 56 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c | 16 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c | 1 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c | 6 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c | 6 drivers/gpu/drm/amd/display/dc/dcn302/dcn302_resource.c | 6 drivers/gpu/drm/amd/display/dc/dcn31/Makefile | 26 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c | 3 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.c | 6 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_init.c | 5 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_optc.c | 24 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_optc.h | 2 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 363 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.h | 4 drivers/gpu/drm/amd/display/dc/dcn315/Makefile | 26 drivers/gpu/drm/amd/display/dc/dcn315/dcn315_resource.c | 235 drivers/gpu/drm/amd/display/dc/dcn315/dcn315_resource.h | 3 drivers/gpu/drm/amd/display/dc/dcn316/Makefile | 26 drivers/gpu/drm/amd/display/dc/dcn316/dcn316_resource.c | 234 drivers/gpu/drm/amd/display/dc/dcn316/dcn316_resource.h | 3 drivers/gpu/drm/amd/display/dc/dml/Makefile | 2 drivers/gpu/drm/amd/display/dc/dml/calcs/dcn_calcs.c | 19 drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 2 drivers/gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.c | 863 + drivers/gpu/drm/amd/display/dc/dml/dcn31/dcn31_fpu.h | 44 drivers/gpu/drm/amd/display/dc/inc/dc_link_dp.h | 4 drivers/gpu/drm/amd/display/dc/inc/dcn_calcs.h | 2 drivers/gpu/drm/amd/display/dc/inc/hw/timing_generator.h | 2 drivers/gpu/drm/amd/display/dc/inc/link_hwss.h | 9 drivers/gpu/drm/amd/display/dc/link/link_dp_trace.c | 20 drivers/gpu/drm/amd/display/dc/link/link_dp_trace.h | 5 drivers/gpu/drm/amd/display/dc/link/link_hwss_dio.c | 52 drivers/gpu/drm/amd/display/dc/link/link_hwss_dio.h | 1 drivers/gpu/drm/amd/display/dc/link/link_hwss_dpia.c | 28 drivers/gpu/drm/amd/display/dc/link/link_hwss_hpo_dp.c | 27 drivers/gpu/drm/amd/display/dc/link/link_hwss_hpo_frl.c | 19 drivers/gpu/drm/amd/display/dc/virtual/virtual_link_hwss.c | 5 drivers/gpu/drm/amd/display/dc/virtual/virtual_link_hwss.h | 1 drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 48 drivers/gpu/drm/amd/display/include/grph_object_id.h | 1 drivers/gpu/drm/amd/display/modules/freesync/freesync.c | 76 drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c | 38 drivers/gpu/drm/amd/display/modules/hdcp/hdcp.h | 8 drivers/gpu/drm/amd/display/modules/hdcp/hdcp1_execution.c | 6 drivers/gpu/drm/amd/display/modules/inc/mod_freesync.h | 12 drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h | 2 drivers/gpu/drm/amd/display/modules/power/power_helpers.c | 38 drivers/gpu/drm/amd/display/modules/power/power_helpers.h | 1 drivers/gpu/drm/amd/include/amd_shared.h | 66 drivers/gpu/drm/amd/include/asic_reg/vcn/vcn_2_5_offset.h | 13 drivers/gpu/drm/amd/include/asic_reg/vcn/vcn_2_5_sh_mask.h | 24 drivers/gpu/drm/amd/include/discovery.h | 2 drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 2 drivers/gpu/drm/amd/pm/amdgpu_pm.c | 87 drivers/gpu/drm/amd/pm/inc/amdgpu_pm.h | 2 drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 8 drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c | 17 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c | 147 drivers/gpu/drm/amd/pm/powerplay/inc/hwmgr.h | 2 drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 2 drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu11_driver_if_sienna_cichlid.h | 7 drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 31 drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 16 drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 8 drivers/gpu/drm/arm/display/komeda/komeda_plane.c | 23 drivers/gpu/drm/arm/malidp_crtc.c | 5 drivers/gpu/drm/arm/malidp_planes.c | 14 drivers/gpu/drm/bridge/Kconfig | 16 drivers/gpu/drm/bridge/Makefile | 1 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 7 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 38 drivers/gpu/drm/bridge/analogix/anx7625.c | 60 drivers/gpu/drm/bridge/analogix/anx7625.h | 4 drivers/gpu/drm/bridge/chipone-icn6211.c | 598 + drivers/gpu/drm/bridge/display-connector.c | 15 drivers/gpu/drm/bridge/ite-it66121.c | 629 + drivers/gpu/drm/bridge/lontium-lt9211.c | 802 + drivers/gpu/drm/bridge/lontium-lt9611.c | 49 drivers/gpu/drm/bridge/nwl-dsi.c | 30 drivers/gpu/drm/bridge/nxp-ptn3460.c | 7 drivers/gpu/drm/bridge/panel.c | 6 drivers/gpu/drm/bridge/parade-ps8622.c | 7 drivers/gpu/drm/bridge/parade-ps8640.c | 9 drivers/gpu/drm/bridge/synopsys/Kconfig | 10 drivers/gpu/drm/bridge/synopsys/Makefile | 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi-gp-audio.c | 199 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 188 drivers/gpu/drm/bridge/synopsys/dw-hdmi.h | 16 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 51 drivers/gpu/drm/bridge/tc358762.c | 9 drivers/gpu/drm/bridge/tc358764.c | 104 drivers/gpu/drm/bridge/tc358767.c | 585 + drivers/gpu/drm/bridge/tc358775.c | 11 drivers/gpu/drm/bridge/ti-sn65dsi83.c | 17 drivers/gpu/drm/bridge/ti-sn65dsi86.c | 8 drivers/gpu/drm/dp/drm_dp.c | 91 drivers/gpu/drm/drm_atomic.c | 20 drivers/gpu/drm/drm_atomic_uapi.c | 4 drivers/gpu/drm/drm_blend.c | 2 drivers/gpu/drm/drm_bridge_connector.c | 4 drivers/gpu/drm/drm_buddy.c | 3 drivers/gpu/drm/drm_crtc_helper.c | 12 drivers/gpu/drm/drm_edid.c | 882 + drivers/gpu/drm/drm_format_helper.c | 78 drivers/gpu/drm/drm_gem.c | 83 drivers/gpu/drm/drm_gem_atomic_helper.c | 18 drivers/gpu/drm/drm_gem_vram_helper.c | 2 drivers/gpu/drm/drm_modes.c | 21 drivers/gpu/drm/drm_vblank.c | 2 drivers/gpu/drm/etnaviv/etnaviv_gem.c | 17 drivers/gpu/drm/etnaviv/etnaviv_gem.h | 5 drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 77 drivers/gpu/drm/etnaviv/etnaviv_mmu.c | 54 drivers/gpu/drm/etnaviv/etnaviv_sched.c | 63 drivers/gpu/drm/etnaviv/etnaviv_sched.h | 3 drivers/gpu/drm/exynos/exynos_drm_dsi.c | 241 drivers/gpu/drm/exynos/exynos_drm_mic.c | 22 drivers/gpu/drm/gma500/cdv_device.c | 11 drivers/gpu/drm/gma500/cdv_intel_crt.c | 6 drivers/gpu/drm/gma500/cdv_intel_display.c | 9 drivers/gpu/drm/gma500/cdv_intel_dp.c | 6 drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 5 drivers/gpu/drm/gma500/cdv_intel_lvds.c | 5 drivers/gpu/drm/gma500/framebuffer.c | 10 drivers/gpu/drm/gma500/gem.c | 161 drivers/gpu/drm/gma500/gem.h | 13 drivers/gpu/drm/gma500/gma_display.c | 53 drivers/gpu/drm/gma500/gma_display.h | 10 drivers/gpu/drm/gma500/gtt.c | 297 drivers/gpu/drm/gma500/gtt.h | 8 drivers/gpu/drm/gma500/oaktrail_crtc.c | 25 drivers/gpu/drm/gma500/oaktrail_device.c | 1 drivers/gpu/drm/gma500/oaktrail_hdmi.c | 1 drivers/gpu/drm/gma500/oaktrail_lvds.c | 16 drivers/gpu/drm/gma500/opregion.c | 5 drivers/gpu/drm/gma500/power.c | 15 drivers/gpu/drm/gma500/psb_device.c | 29 drivers/gpu/drm/gma500/psb_drv.c | 34 drivers/gpu/drm/gma500/psb_drv.h | 90 drivers/gpu/drm/gma500/psb_intel_display.c | 39 drivers/gpu/drm/gma500/psb_intel_lvds.c | 5 drivers/gpu/drm/gma500/psb_intel_sdvo.c | 6 drivers/gpu/drm/gma500/psb_irq.c | 94 drivers/gpu/drm/gma500/psb_irq.h | 19 drivers/gpu/drm/i915/Makefile | 2 drivers/gpu/drm/i915/display/g4x_dp.c | 76 drivers/gpu/drm/i915/display/g4x_hdmi.c | 39 drivers/gpu/drm/i915/display/i9xx_plane.c | 24 drivers/gpu/drm/i915/display/icl_dsi.c | 24 drivers/gpu/drm/i915/display/intel_atomic_plane.c | 143 drivers/gpu/drm/i915/display/intel_atomic_plane.h | 3 drivers/gpu/drm/i915/display/intel_audio.c | 45 drivers/gpu/drm/i915/display/intel_backlight.c | 3 drivers/gpu/drm/i915/display/intel_bios.c | 506 - drivers/gpu/drm/i915/display/intel_bw.c | 314 drivers/gpu/drm/i915/display/intel_bw.h | 12 drivers/gpu/drm/i915/display/intel_cdclk.c | 96 drivers/gpu/drm/i915/display/intel_cdclk.h | 2 drivers/gpu/drm/i915/display/intel_color.c | 95 drivers/gpu/drm/i915/display/intel_color.h | 3 drivers/gpu/drm/i915/display/intel_combo_phy.c | 35 drivers/gpu/drm/i915/display/intel_connector.c | 4 drivers/gpu/drm/i915/display/intel_crtc.c | 8 drivers/gpu/drm/i915/display/intel_cursor.c | 27 drivers/gpu/drm/i915/display/intel_ddi.c | 38 drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 40 drivers/gpu/drm/i915/display/intel_display.c | 942 - drivers/gpu/drm/i915/display/intel_display.h | 7 drivers/gpu/drm/i915/display/intel_display_debugfs.c | 304 drivers/gpu/drm/i915/display/intel_display_power.c | 4854 ---------- drivers/gpu/drm/i915/display/intel_display_power.h | 159 drivers/gpu/drm/i915/display/intel_display_power_map.c | 1501 +++ drivers/gpu/drm/i915/display/intel_display_power_map.h | 14 drivers/gpu/drm/i915/display/intel_display_power_well.c | 1912 +++ drivers/gpu/drm/i915/display/intel_display_power_well.h | 173 drivers/gpu/drm/i915/display/intel_display_trace.h | 9 drivers/gpu/drm/i915/display/intel_display_types.h | 43 drivers/gpu/drm/i915/display/intel_dmc.c | 131 drivers/gpu/drm/i915/display/intel_dmc.h | 10 drivers/gpu/drm/i915/display/intel_dmc_regs.h | 30 drivers/gpu/drm/i915/display/intel_dp.c | 568 - drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 34 drivers/gpu/drm/i915/display/intel_dp_link_training.c | 31 drivers/gpu/drm/i915/display/intel_dp_mst.c | 8 drivers/gpu/drm/i915/display/intel_dpio_phy.c | 1 drivers/gpu/drm/i915/display/intel_dpll.c | 44 drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 144 drivers/gpu/drm/i915/display/intel_dpt.c | 2 drivers/gpu/drm/i915/display/intel_drrs.c | 406 drivers/gpu/drm/i915/display/intel_drrs.h | 20 drivers/gpu/drm/i915/display/intel_dsb.c | 7 drivers/gpu/drm/i915/display/intel_dsi.c | 24 drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 7 drivers/gpu/drm/i915/display/intel_dvo.c | 49 drivers/gpu/drm/i915/display/intel_fb.c | 68 drivers/gpu/drm/i915/display/intel_fb.h | 1 drivers/gpu/drm/i915/display/intel_fbc.c | 105 drivers/gpu/drm/i915/display/intel_fbc.h | 2 drivers/gpu/drm/i915/display/intel_fdi.c | 8 drivers/gpu/drm/i915/display/intel_gmbus.c | 142 drivers/gpu/drm/i915/display/intel_hdcp.c | 1 drivers/gpu/drm/i915/display/intel_hdmi.c | 3 drivers/gpu/drm/i915/display/intel_lvds.c | 57 drivers/gpu/drm/i915/display/intel_overlay.c | 22 drivers/gpu/drm/i915/display/intel_panel.c | 359 drivers/gpu/drm/i915/display/intel_panel.h | 33 drivers/gpu/drm/i915/display/intel_pch_display.c | 99 drivers/gpu/drm/i915/display/intel_pch_display.h | 10 drivers/gpu/drm/i915/display/intel_plane_initial.c | 1 drivers/gpu/drm/i915/display/intel_pps.c | 1 drivers/gpu/drm/i915/display/intel_psr.c | 186 drivers/gpu/drm/i915/display/intel_psr.h | 5 drivers/gpu/drm/i915/display/intel_sdvo.c | 88 drivers/gpu/drm/i915/display/intel_snps_phy.c | 8 drivers/gpu/drm/i915/display/intel_sprite.c | 51 drivers/gpu/drm/i915/display/intel_tc.c | 5 drivers/gpu/drm/i915/display/intel_tv.c | 12 drivers/gpu/drm/i915/display/intel_vbt_defs.h | 21 drivers/gpu/drm/i915/display/intel_vdsc.c | 24 drivers/gpu/drm/i915/display/intel_vrr.c | 4 drivers/gpu/drm/i915/display/skl_scaler.c | 22 drivers/gpu/drm/i915/display/skl_universal_plane.c | 266 drivers/gpu/drm/i915/display/vlv_dsi.c | 15 drivers/gpu/drm/i915/display/vlv_dsi_pll.c | 8 drivers/gpu/drm/i915/gem/i915_gem_busy.c | 10 drivers/gpu/drm/i915/gem/i915_gem_clflush.c | 6 drivers/gpu/drm/i915/gem/i915_gem_context.c | 1 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 13 drivers/gpu/drm/i915/gem/i915_gem_lmem.c | 4 drivers/gpu/drm/i915/gem/i915_gem_object.c | 43 drivers/gpu/drm/i915/gem/i915_gem_object.h | 8 drivers/gpu/drm/i915/gem/i915_gem_phys.c | 1 drivers/gpu/drm/i915/gem/i915_gem_region.c | 2 drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 3 drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 3 drivers/gpu/drm/i915/gem/i915_gem_tiling.c | 8 drivers/gpu/drm/i915/gem/i915_gem_tiling.h | 2 drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 4 drivers/gpu/drm/i915/gem/i915_gem_ttm_move.c | 26 drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 2 drivers/gpu/drm/i915/gem/i915_gem_wait.c | 6 drivers/gpu/drm/i915/gem/i915_gemfs.c | 3 drivers/gpu/drm/i915/gem/selftests/huge_pages.c | 10 drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c | 7 drivers/gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c | 3 drivers/gpu/drm/i915/gem/selftests/i915_gem_migrate.c | 6 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 5 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 3 drivers/gpu/drm/i915/gt/intel_engine_cs.c | 11 drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 7 drivers/gpu/drm/i915/gt/intel_ggtt.c | 5 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c | 2 drivers/gpu/drm/i915/gt/intel_gt_pm.c | 3 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c | 54 drivers/gpu/drm/i915/gt/intel_gt_regs.h | 1 drivers/gpu/drm/i915/gt/intel_gtt.c | 12 drivers/gpu/drm/i915/gt/intel_gtt.h | 2 drivers/gpu/drm/i915/gt/intel_rc6.c | 5 drivers/gpu/drm/i915/gt/intel_reset.c | 3 drivers/gpu/drm/i915/gt/intel_rps.c | 13 drivers/gpu/drm/i915/gt/intel_sseu.c | 9 drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c | 10 drivers/gpu/drm/i915/gt/selftest_timeline.c | 3 drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 5 drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 5 drivers/gpu/drm/i915/gt/uc/intel_guc_rc.c | 6 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 3 drivers/gpu/drm/i915/gt/uc/intel_uc.c | 14 drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c | 20 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 1 drivers/gpu/drm/i915/gvt/handlers.c | 20 drivers/gpu/drm/i915/i915_cmd_parser.c | 2 drivers/gpu/drm/i915/i915_debugfs.c | 18 drivers/gpu/drm/i915/i915_deps.c | 2 drivers/gpu/drm/i915/i915_driver.c | 5 drivers/gpu/drm/i915/i915_driver.h | 4 drivers/gpu/drm/i915/i915_drv.h | 126 drivers/gpu/drm/i915/i915_gpu_error.c | 21 drivers/gpu/drm/i915/i915_gpu_error.h | 6 drivers/gpu/drm/i915/i915_params.c | 7 drivers/gpu/drm/i915/i915_pci.c | 40 drivers/gpu/drm/i915/i915_pmu.c | 7 drivers/gpu/drm/i915/i915_reg.h | 138 drivers/gpu/drm/i915/i915_request.c | 3 drivers/gpu/drm/i915/i915_suspend.c | 4 drivers/gpu/drm/i915/i915_sw_fence.c | 2 drivers/gpu/drm/i915/i915_utils.c | 11 drivers/gpu/drm/i915/i915_utils.h | 37 drivers/gpu/drm/i915/i915_vma.c | 27 drivers/gpu/drm/i915/intel_device_info.c | 20 drivers/gpu/drm/i915/intel_device_info.h | 12 drivers/gpu/drm/i915/intel_dram.c | 10 drivers/gpu/drm/i915/intel_memory_region.c | 2 drivers/gpu/drm/i915/intel_memory_region.h | 2 drivers/gpu/drm/i915/intel_pch.c | 3 drivers/gpu/drm/i915/intel_pcode.c | 4 drivers/gpu/drm/i915/intel_pm.c | 545 - drivers/gpu/drm/i915/intel_pm.h | 1 drivers/gpu/drm/i915/intel_step.c | 7 drivers/gpu/drm/i915/intel_uncore.c | 27 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c | 4 drivers/gpu/drm/i915/pxp/intel_pxp_session.c | 2 drivers/gpu/drm/i915/selftests/i915_active.c | 3 drivers/gpu/drm/i915/selftests/intel_memory_region.c | 10 drivers/gpu/drm/i915/vlv_suspend.c | 3 drivers/gpu/drm/imx/imx-ldb.c | 3 drivers/gpu/drm/imx/imx-tve.c | 4 drivers/gpu/drm/imx/ipuv3-plane.c | 8 drivers/gpu/drm/ingenic/Kconfig | 9 drivers/gpu/drm/ingenic/Makefile | 1 drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 62 drivers/gpu/drm/ingenic/ingenic-dw-hdmi.c | 103 drivers/gpu/drm/lima/lima_gem.c | 17 drivers/gpu/drm/mcde/mcde_dsi.c | 43 drivers/gpu/drm/mediatek/mtk_dsi.c | 12 drivers/gpu/drm/meson/meson_drv.c | 2 drivers/gpu/drm/msm/msm_gem.c | 3 drivers/gpu/drm/msm/msm_gem_submit.c | 24 drivers/gpu/drm/nouveau/dispnv50/atom.h | 6 drivers/gpu/drm/nouveau/dispnv50/base917c.c | 2 drivers/gpu/drm/nouveau/dispnv50/crc.c | 27 drivers/gpu/drm/nouveau/dispnv50/wndw.c | 15 drivers/gpu/drm/nouveau/nouveau_bo.c | 18 drivers/gpu/drm/nouveau/nouveau_fence.c | 20 drivers/gpu/drm/nouveau/nouveau_gem.c | 3 drivers/gpu/drm/nouveau/nouveau_prime.c | 17 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 2 drivers/gpu/drm/nouveau/nvkm/engine/gr/gf108.c | 2 drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 6 drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 2 drivers/gpu/drm/omapdrm/omap_gem.c | 198 drivers/gpu/drm/omapdrm/omap_gem.h | 3 drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 5 drivers/gpu/drm/omapdrm/omap_overlay.c | 2 drivers/gpu/drm/panel/Kconfig | 9 drivers/gpu/drm/panel/Makefile | 1 drivers/gpu/drm/panel/panel-abt-y030xx067a.c | 30 drivers/gpu/drm/panel/panel-edp.c | 2 drivers/gpu/drm/panel/panel-innolux-ej030na.c | 31 drivers/gpu/drm/panel/panel-lvds.c | 31 drivers/gpu/drm/panel/panel-newvision-nv3052c.c | 482 drivers/gpu/drm/panel/panel-truly-nt35597.c | 3 drivers/gpu/drm/panel/panel-visionox-rm69299.c | 4 drivers/gpu/drm/panfrost/panfrost_drv.c | 3 drivers/gpu/drm/panfrost/panfrost_job.c | 6 drivers/gpu/drm/qxl/qxl_debugfs.c | 3 drivers/gpu/drm/qxl/qxl_kms.c | 4 drivers/gpu/drm/qxl/qxl_release.c | 5 drivers/gpu/drm/qxl/qxl_ttm.c | 45 drivers/gpu/drm/radeon/Makefile | 8 drivers/gpu/drm/radeon/cayman_blit_shaders.c | 320 drivers/gpu/drm/radeon/cayman_blit_shaders.h | 294 drivers/gpu/drm/radeon/evergreen_blit_shaders.c | 303 drivers/gpu/drm/radeon/evergreen_blit_shaders.h | 278 drivers/gpu/drm/radeon/r600_blit_shaders.c | 719 - drivers/gpu/drm/radeon/r600_blit_shaders.h | 38 drivers/gpu/drm/radeon/radeon_cs.c | 4 drivers/gpu/drm/radeon/radeon_display.c | 8 drivers/gpu/drm/radeon/radeon_gem.c | 9 drivers/gpu/drm/radeon/radeon_mn.c | 4 drivers/gpu/drm/radeon/radeon_object.c | 21 drivers/gpu/drm/radeon/radeon_pm.c | 2 drivers/gpu/drm/radeon/radeon_prime.c | 14 drivers/gpu/drm/radeon/radeon_sync.c | 4 drivers/gpu/drm/radeon/radeon_ttm.c | 36 drivers/gpu/drm/radeon/radeon_uvd.c | 12 drivers/gpu/drm/radeon/radeon_vm.c | 2 drivers/gpu/drm/radeon/si_blit_shaders.c | 253 drivers/gpu/drm/radeon/si_blit_shaders.h | 223 drivers/gpu/drm/scheduler/sched_main.c | 5 drivers/gpu/drm/selftests/test-drm_buddy.c | 10 drivers/gpu/drm/solomon/Kconfig | 20 drivers/gpu/drm/solomon/Makefile | 1 drivers/gpu/drm/solomon/ssd130x-i2c.c | 56 drivers/gpu/drm/solomon/ssd130x-spi.c | 178 drivers/gpu/drm/solomon/ssd130x.c | 150 drivers/gpu/drm/solomon/ssd130x.h | 16 drivers/gpu/drm/sti/sti_gdp.c | 2 drivers/gpu/drm/sti/sti_hdmi.c | 22 drivers/gpu/drm/stm/ltdc.c | 16 drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 2 drivers/gpu/drm/tidss/tidss_dispc.c | 18 drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 2 drivers/gpu/drm/tilcdc/tilcdc_external.c | 8 drivers/gpu/drm/tiny/repaper.c | 2 drivers/gpu/drm/ttm/ttm_agp_backend.c | 2 drivers/gpu/drm/ttm/ttm_bo.c | 260 drivers/gpu/drm/ttm/ttm_bo_util.c | 40 drivers/gpu/drm/ttm/ttm_bo_vm.c | 34 drivers/gpu/drm/ttm/ttm_device.c | 82 drivers/gpu/drm/ttm/ttm_execbuf_util.c | 21 drivers/gpu/drm/ttm/ttm_resource.c | 231 drivers/gpu/drm/ttm/ttm_tt.c | 28 drivers/gpu/drm/v3d/v3d_gem.c | 19 drivers/gpu/drm/vc4/vc4_crtc.c | 14 drivers/gpu/drm/vc4/vc4_drv.h | 15 drivers/gpu/drm/vc4/vc4_gem.c | 15 drivers/gpu/drm/vc4/vc4_hdmi.c | 483 drivers/gpu/drm/vc4/vc4_hdmi.h | 40 drivers/gpu/drm/vc4/vc4_hdmi_phy.c | 2 drivers/gpu/drm/vc4/vc4_hdmi_regs.h | 6 drivers/gpu/drm/vc4/vc4_hvs.c | 153 drivers/gpu/drm/vc4/vc4_irq.c | 5 drivers/gpu/drm/vc4/vc4_kms.c | 87 drivers/gpu/drm/vc4/vc4_regs.h | 28 drivers/gpu/drm/vc4/vc4_trace.h | 95 drivers/gpu/drm/vc4/vc4_txp.c | 8 drivers/gpu/drm/vgem/vgem_fence.c | 13 drivers/gpu/drm/virtio/virtgpu_display.c | 2 drivers/gpu/drm/virtio/virtgpu_gem.c | 12 drivers/gpu/drm/virtio/virtgpu_ioctl.c | 8 drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 23 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c | 13 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 38 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 23 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 2 drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 28 drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 27 drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 81 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 449 drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 29 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 36 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 18 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 17 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 27 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 2 drivers/gpu/ipu-v3/ipu-dc.c | 5 drivers/gpu/ipu-v3/ipu-image-convert.c | 9 drivers/hid/Kconfig | 12 drivers/hid/Makefile | 1 drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h | 6 drivers/hid/hid-elan.c | 2 drivers/hid/hid-google-atrus.c | 55 drivers/hid/hid-ids.h | 2 drivers/hid/hid-led.c | 2 drivers/hid/hid-multitouch.c | 9 drivers/hid/hid-uclogic-core.c | 89 drivers/hid/hid-uclogic-params.c | 60 drivers/hid/hid-uclogic-params.h | 173 drivers/hid/hid-uclogic-rdesc.c | 115 drivers/hid/hid-uclogic-rdesc.h | 30 drivers/hid/intel-ish-hid/ipc/hw-ish.h | 2 drivers/hid/intel-ish-hid/ipc/pci-ish.c | 2 drivers/hid/wacom_sys.c | 2 drivers/hid/wacom_wac.c | 43 drivers/hid/wacom_wac.h | 5 drivers/hsi/clients/ssi_protocol.c | 1 drivers/hsi/controllers/omap_ssi_core.c | 1 drivers/hwmon/Kconfig | 8 drivers/hwmon/adt7470.c | 4 drivers/hwmon/aquacomputer_d5next.c | 433 drivers/hwmon/asus-ec-sensors.c | 3 drivers/hwmon/asus_wmi_sensors.c | 2 drivers/hwmon/f71882fg.c | 5 drivers/hwmon/hwmon.c | 53 drivers/hwmon/intel-m10-bmc-hwmon.c | 11 drivers/hwmon/jc42.c | 2 drivers/hwmon/peci/dimmtemp.c | 13 drivers/hwmon/pmbus/xdpe12284.c | 2 drivers/hwtracing/coresight/coresight-etm3x-core.c | 2 drivers/hwtracing/coresight/coresight-etm3x-sysfs.c | 2 drivers/hwtracing/coresight/coresight-etm4x-core.c | 136 drivers/hwtracing/coresight/coresight-etm4x-sysfs.c | 180 drivers/hwtracing/coresight/coresight-etm4x.h | 120 drivers/i2c/busses/i2c-meson.c | 111 drivers/i2c/busses/i2c-rcar.c | 31 drivers/iio/accel/dmard09.c | 2 drivers/iio/accel/kxsd9-spi.c | 4 drivers/iio/accel/st_accel.h | 28 drivers/iio/accel/st_accel_core.c | 1 drivers/iio/accel/st_accel_i2c.c | 5 drivers/iio/accel/st_accel_spi.c | 5 drivers/iio/adc/ad7124.c | 86 drivers/iio/adc/ad7192.c | 64 drivers/iio/adc/ad7280a.c | 12 drivers/iio/adc/ad_sigma_delta.c | 143 drivers/iio/adc/palmas_gpadc.c | 3 drivers/iio/adc/qcom-vadc-common.c | 11 drivers/iio/adc/ti-ads1015.c | 396 drivers/iio/chemical/scd30.h | 5 drivers/iio/chemical/scd30_core.c | 10 drivers/iio/chemical/scd30_i2c.c | 3 drivers/iio/chemical/scd30_serial.c | 3 drivers/iio/chemical/scd4x.c | 5 drivers/iio/common/ssp_sensors/ssp_spi.c | 13 drivers/iio/dac/ad3552r.c | 6 drivers/iio/dac/ad5446.c | 2 drivers/iio/dac/ad5592r-base.c | 2 drivers/iio/dac/ltc2688.c | 21 drivers/iio/dac/ti-dac5571.c | 28 drivers/iio/dummy/iio_simple_dummy.c | 20 drivers/iio/dummy/iio_simple_dummy_buffer.c | 48 drivers/iio/filter/Kconfig | 1 drivers/iio/imu/bmi160/bmi160_core.c | 20 drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c | 15 drivers/iio/imu/inv_mpu6050/Kconfig | 4 drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 9 drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 6 drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 2 drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | 5 drivers/iio/industrialio-buffer.c | 24 drivers/iio/industrialio-core.c | 3 drivers/iio/industrialio-trigger.c | 2 drivers/iio/magnetometer/ak8975.c | 1 drivers/iio/multiplexer/Kconfig | 1 drivers/iio/multiplexer/iio-mux.c | 49 drivers/iio/proximity/sx9324.c | 32 drivers/iio/proximity/sx_common.c | 1 drivers/iio/temperature/ltc2983.c | 236 drivers/iio/trigger/iio-trig-sysfs.c | 11 drivers/infiniband/core/device.c | 2 drivers/infiniband/core/nldev.c | 2 drivers/infiniband/core/sa_query.c | 16 drivers/infiniband/core/umem_dmabuf.c | 9 drivers/infiniband/core/uverbs_cmd.c | 2 drivers/infiniband/core/uverbs_std_types_flow_action.c | 383 drivers/infiniband/core/verbs.c | 8 drivers/infiniband/hw/bnxt_re/ib_verbs.c | 2 drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 1 drivers/infiniband/hw/cxgb4/provider.c | 8 drivers/infiniband/hw/hfi1/affinity.c | 9 drivers/infiniband/hw/hfi1/verbs.c | 4 drivers/infiniband/hw/irdma/hw.c | 4 drivers/infiniband/hw/irdma/main.h | 1 drivers/infiniband/hw/irdma/puda.c | 7 drivers/infiniband/hw/irdma/verbs.c | 4 drivers/infiniband/hw/mlx4/main.c | 8 drivers/infiniband/hw/mlx5/fs.c | 223 drivers/infiniband/hw/mlx5/main.c | 46 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 drivers/infiniband/hw/qedr/verbs.c | 3 drivers/infiniband/hw/qib/qib_file_ops.c | 2 drivers/infiniband/hw/qib/qib_iba7322.c | 2 drivers/infiniband/hw/usnic/usnic_ib_main.c | 11 drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 6 drivers/infiniband/hw/usnic/usnic_uiom.c | 15 drivers/infiniband/hw/usnic/usnic_uiom.h | 3 drivers/infiniband/sw/rdmavt/qp.c | 6 drivers/infiniband/sw/rxe/rxe.c | 1 drivers/infiniband/sw/rxe/rxe_mw.c | 8 drivers/infiniband/sw/rxe/rxe_opcode.c | 2 drivers/infiniband/sw/rxe/rxe_param.h | 2 drivers/infiniband/sw/rxe/rxe_qp.c | 14 drivers/infiniband/sw/rxe/rxe_recv.c | 1 drivers/infiniband/sw/rxe/rxe_req.c | 4 drivers/infiniband/sw/rxe/rxe_resp.c | 5 drivers/infiniband/sw/rxe/rxe_verbs.c | 1 drivers/infiniband/sw/rxe/rxe_verbs.h | 2 drivers/infiniband/sw/siw/siw_verbs.c | 4 drivers/infiniband/ulp/ipoib/ipoib.h | 1 drivers/infiniband/ulp/ipoib/ipoib_main.c | 5 drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 6 drivers/infiniband/ulp/iser/iscsi_iser.c | 2 drivers/infiniband/ulp/iser/iser_verbs.c | 8 drivers/infiniband/ulp/isert/ib_isert.c | 2 drivers/infiniband/ulp/srp/ib_srp.c | 8 drivers/input/keyboard/mt6779-keypad.c | 10 drivers/input/keyboard/omap-keypad.c | 1 drivers/input/misc/Kconfig | 10 drivers/input/misc/Makefile | 1 drivers/input/misc/iqs7222.c | 2446 +++++ drivers/input/mouse/pxa930_trkball.c | 1 drivers/input/touchscreen/Kconfig | 2 drivers/input/touchscreen/mainstone-wm97xx.c | 128 drivers/input/touchscreen/wm97xx-core.c | 42 drivers/input/touchscreen/zylonite-wm97xx.c | 41 drivers/interconnect/qcom/sc7180.c | 21 drivers/interconnect/qcom/sdx55.c | 21 drivers/iommu/amd/init.c | 6 drivers/iommu/amd/iommu.c | 5 drivers/iommu/intel/dmar.c | 6 drivers/iommu/intel/iommu.c | 2 drivers/irqchip/Kconfig | 11 drivers/irqchip/Makefile | 2 drivers/irqchip/irq-bcm6345-l1.c | 2 drivers/irqchip/irq-gic-v3-its.c | 2 drivers/irqchip/irq-renesas-h8300h.c | 94 drivers/irqchip/irq-renesas-h8s.c | 102 drivers/isdn/mISDN/socket.c | 2 drivers/leds/leds-locomo.c | 1 drivers/md/bcache/alloc.c | 2 drivers/md/bcache/debug.c | 10 drivers/md/bcache/request.c | 4 drivers/md/bcache/super.c | 3 drivers/md/bcache/sysfs.c | 2 drivers/md/dm-bufio.c | 9 drivers/md/dm-cache-target.c | 9 drivers/md/dm-clone-target.c | 9 drivers/md/dm-core.h | 38 drivers/md/dm-delay.c | 3 drivers/md/dm-flakey.c | 4 drivers/md/dm-io.c | 2 drivers/md/dm-linear.c | 11 drivers/md/dm-log-writes.c | 3 drivers/md/dm-raid.c | 9 drivers/md/dm-stats.c | 3 drivers/md/dm-table.c | 41 drivers/md/dm-thin.c | 15 drivers/md/dm-zone.c | 10 drivers/md/dm.c | 520 - drivers/md/dm.h | 4 drivers/md/md-linear.c | 11 drivers/md/md.c | 5 drivers/md/raid0.c | 7 drivers/md/raid1.c | 30 drivers/md/raid10.c | 41 drivers/md/raid5-cache.c | 8 drivers/md/raid5.c | 14 drivers/media/rc/bpf-lirc.c | 8 drivers/media/usb/dvb-usb/a800.c | 18 drivers/media/usb/dvb-usb/af9005.c | 19 drivers/media/usb/dvb-usb/az6027.c | 45 drivers/media/usb/dvb-usb/cinergyT2-core.c | 10 drivers/media/usb/dvb-usb/cxusb.c | 88 drivers/media/usb/dvb-usb/dib0700_devices.c | 428 drivers/media/usb/dvb-usb/dibusb-mb.c | 165 drivers/media/usb/dvb-usb/dibusb-mc.c | 88 drivers/media/usb/dvb-usb/digitv.c | 13 drivers/media/usb/dvb-usb/dtt200u.c | 56 drivers/media/usb/dvb-usb/dtv5100.c | 11 drivers/media/usb/dvb-usb/dw2102.c | 84 drivers/media/usb/dvb-usb/gp8psk.c | 36 drivers/media/usb/dvb-usb/m920x.c | 51 drivers/media/usb/dvb-usb/nova-t-usb2.c | 18 drivers/media/usb/dvb-usb/opera1.c | 15 drivers/media/usb/dvb-usb/pctv452e.c | 22 drivers/media/usb/dvb-usb/technisat-usb2.c | 11 drivers/media/usb/dvb-usb/ttusb2.c | 36 drivers/media/usb/dvb-usb/umt-010.c | 18 drivers/media/usb/dvb-usb/vp702x.c | 23 drivers/media/usb/dvb-usb/vp7045.c | 28 drivers/memory/emif.c | 11 drivers/memory/fsl-corenet-cf.c | 9 drivers/memory/renesas-rpc-if.c | 88 drivers/memory/samsung/exynos5422-dmc.c | 5 drivers/memory/tegra/Makefile | 2 drivers/memory/tegra/mc.c | 3 drivers/memory/tegra/mc.h | 7 drivers/memory/tegra/tegra186-emc.c | 3 drivers/memory/tegra/tegra234.c | 101 drivers/memstick/core/ms_block.c | 4 drivers/mmc/core/block.c | 16 drivers/mmc/core/core.c | 10 drivers/mmc/core/mmc.c | 25 drivers/mmc/core/queue.c | 3 drivers/mmc/host/bcm2835.c | 2 drivers/mmc/host/dw_mmc.c | 2 drivers/mmc/host/jz4740_mmc.c | 20 drivers/mmc/host/meson-gx-mmc.c | 21 drivers/mmc/host/meson-mx-sdhc-mmc.c | 2 drivers/mmc/host/mmci.c | 2 drivers/mmc/host/mmci_stm32_sdmmc.c | 90 drivers/mmc/host/mtk-sd.c | 2 drivers/mmc/host/mxcmmc.c | 2 drivers/mmc/host/of_mmc_spi.c | 4 drivers/mmc/host/omap.c | 23 drivers/mmc/host/pxamci.c | 2 drivers/mmc/host/renesas_sdhi.h | 2 drivers/mmc/host/renesas_sdhi_core.c | 2 drivers/mmc/host/renesas_sdhi_internal_dmac.c | 76 drivers/mmc/host/sdhci-pci-gli.c | 10 drivers/mmc/host/sdhci.c | 2 drivers/mmc/host/sh_mmcif.c | 2 drivers/mmc/host/sunxi-mmc.c | 2 drivers/mmc/host/uniphier-sd.c | 2 drivers/mtd/devices/phram.c | 78 drivers/mtd/maps/Kconfig | 9 drivers/mtd/maps/Makefile | 1 drivers/mtd/maps/ixp4xx.c | 262 drivers/mtd/maps/pxa2xx-flash.c | 2 drivers/mtd/mtd_blkdevs.c | 1 drivers/mtd/mtdcore.c | 11 drivers/mtd/mtdpart.c | 3 drivers/mtd/nand/raw/davinci_nand.c | 2 drivers/mtd/nand/raw/denali_pci.c | 15 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 302 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.h | 12 drivers/mtd/nand/raw/mtk_ecc.c | 12 drivers/mtd/nand/raw/nand_base.c | 9 drivers/mtd/nand/raw/nand_ids.c | 3 drivers/mtd/nand/raw/omap_elm.c | 1 drivers/mtd/nand/raw/qcom_nandc.c | 24 drivers/mtd/nand/raw/sh_flctl.c | 14 drivers/mtd/nand/spi/Makefile | 2 drivers/mtd/nand/spi/core.c | 1 drivers/mtd/nand/spi/gigadevice.c | 158 drivers/mtd/nand/spi/xtx.c | 129 drivers/mtd/parsers/bcm47xxpart.c | 2 drivers/net/can/Kconfig | 1 drivers/net/can/Makefile | 1 drivers/net/can/ctucanfd/Kconfig | 34 drivers/net/can/ctucanfd/Makefile | 10 drivers/net/can/ctucanfd/ctucanfd.h | 82 drivers/net/can/ctucanfd/ctucanfd_base.c | 1490 +++ drivers/net/can/ctucanfd/ctucanfd_kframe.h | 77 drivers/net/can/ctucanfd/ctucanfd_kregs.h | 325 drivers/net/can/ctucanfd/ctucanfd_pci.c | 304 drivers/net/can/ctucanfd/ctucanfd_platform.c | 132 drivers/net/can/dev/bittiming.c | 2 drivers/net/can/dev/rx-offload.c | 6 drivers/net/can/flexcan/flexcan-core.c | 16 drivers/net/can/m_can/m_can.c | 2 drivers/net/can/mscan/mpc5xxx_can.c | 2 drivers/net/can/sja1000/Kconfig | 2 drivers/net/can/sja1000/tscan1.c | 7 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 25 drivers/net/can/spi/mcp251xfd/mcp251xfd-rx.c | 2 drivers/net/can/spi/mcp251xfd/mcp251xfd.h | 12 drivers/net/can/ti_hecc.c | 4 drivers/net/can/xilinx_can.c | 4 drivers/net/dsa/b53/b53_common.c | 6 drivers/net/dsa/mt7530.c | 330 drivers/net/dsa/mt7530.h | 26 drivers/net/dsa/qca8k.c | 145 drivers/net/dsa/qca8k.h | 12 drivers/net/dsa/realtek/realtek-mdio.c | 1 drivers/net/dsa/realtek/realtek-smi.c | 4 drivers/net/eql.c | 3 drivers/net/ethernet/aquantia/atlantic/aq_cfg.h | 1 drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c | 9 drivers/net/ethernet/aquantia/atlantic/aq_main.c | 87 drivers/net/ethernet/aquantia/atlantic/aq_main.h | 2 drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 136 drivers/net/ethernet/aquantia/atlantic/aq_nic.h | 5 drivers/net/ethernet/aquantia/atlantic/aq_ring.c | 407 drivers/net/ethernet/aquantia/atlantic/aq_ring.h | 21 drivers/net/ethernet/aquantia/atlantic/aq_vec.c | 23 drivers/net/ethernet/aquantia/atlantic/aq_vec.h | 6 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c | 6 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 10 drivers/net/ethernet/broadcom/bcmsysport.c | 6 drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h | 10 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 304 drivers/net/ethernet/broadcom/bnxt/bnxt.h | 16 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 2 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 191 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.h | 16 drivers/net/ethernet/cadence/macb_main.c | 22 drivers/net/ethernet/calxeda/xgmac.c | 2 drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls.h | 2 drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c | 22 drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h | 17 drivers/net/ethernet/hisilicon/hns3/hnae3.h | 4 drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_cmd.c | 2 drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_cmd.h | 1 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 5 drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 141 drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.h | 6 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c | 2 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 3 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 2 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 4 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 8 drivers/net/ethernet/ibm/ibmvnic.c | 310 drivers/net/ethernet/ibm/ibmvnic.h | 54 drivers/net/ethernet/intel/i40e/i40e.h | 1 drivers/net/ethernet/intel/i40e/i40e_common.c | 1 drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 5 drivers/net/ethernet/intel/i40e/i40e_devids.h | 1 drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 2 drivers/net/ethernet/intel/i40e/i40e_main.c | 25 drivers/net/ethernet/intel/i40e/i40e_txrx.c | 49 drivers/net/ethernet/intel/i40e/i40e_txrx.h | 1 drivers/net/ethernet/intel/i40e/i40e_txrx_common.h | 1 drivers/net/ethernet/intel/i40e/i40e_xsk.c | 39 drivers/net/ethernet/intel/ice/ice_main.c | 4 drivers/net/ethernet/intel/ice/ice_switch.c | 489 - drivers/net/ethernet/intel/ice/ice_switch.h | 12 drivers/net/ethernet/intel/ice/ice_txrx.c | 29 drivers/net/ethernet/intel/ice/ice_txrx.h | 1 drivers/net/ethernet/intel/ice/ice_xsk.c | 53 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 2 drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h | 1 drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 53 drivers/net/ethernet/marvell/Kconfig | 2 drivers/net/ethernet/marvell/Makefile | 1 drivers/net/ethernet/marvell/mvneta.c | 20 drivers/net/ethernet/marvell/octeon_ep/Kconfig | 20 drivers/net/ethernet/marvell/octeon_ep/Makefile | 9 drivers/net/ethernet/marvell/octeon_ep/octep_cn9k_pf.c | 737 + drivers/net/ethernet/marvell/octeon_ep/octep_config.h | 204 drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_mbox.c | 245 drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_mbox.h | 170 drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.c | 194 drivers/net/ethernet/marvell/octeon_ep/octep_ctrl_net.h | 299 drivers/net/ethernet/marvell/octeon_ep/octep_ethtool.c | 463 drivers/net/ethernet/marvell/octeon_ep/octep_main.c | 1176 ++ drivers/net/ethernet/marvell/octeon_ep/octep_main.h | 357 drivers/net/ethernet/marvell/octeon_ep/octep_regs_cn9k_pf.h | 367 drivers/net/ethernet/marvell/octeon_ep/octep_rx.c | 508 + drivers/net/ethernet/marvell/octeon_ep/octep_rx.h | 199 drivers/net/ethernet/marvell/octeon_ep/octep_tx.c | 335 drivers/net/ethernet/marvell/octeon_ep/octep_tx.h | 284 drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 2 drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c | 8 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 2 drivers/net/ethernet/marvell/prestera/prestera_acl.c | 7 drivers/net/ethernet/marvell/prestera/prestera_flower.c | 18 drivers/net/ethernet/marvell/prestera/prestera_router.c | 11 drivers/net/ethernet/mediatek/Kconfig | 4 drivers/net/ethernet/mediatek/Makefile | 5 drivers/net/ethernet/mediatek/mtk_eth_soc.c | 131 drivers/net/ethernet/mediatek/mtk_eth_soc.h | 14 drivers/net/ethernet/mediatek/mtk_ppe.c | 369 drivers/net/ethernet/mediatek/mtk_ppe.h | 89 drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c | 1 drivers/net/ethernet/mediatek/mtk_ppe_offload.c | 189 drivers/net/ethernet/mediatek/mtk_wed.c | 878 + drivers/net/ethernet/mediatek/mtk_wed.h | 135 drivers/net/ethernet/mediatek/mtk_wed_debugfs.c | 175 drivers/net/ethernet/mediatek/mtk_wed_ops.c | 8 drivers/net/ethernet/mediatek/mtk_wed_regs.h | 251 drivers/net/ethernet/mellanox/mlx4/cmd.c | 33 drivers/net/ethernet/mellanox/mlx4/eq.c | 4 drivers/net/ethernet/mellanox/mlx4/fw.c | 4 drivers/net/ethernet/mellanox/mlx4/main.c | 2 drivers/net/ethernet/mellanox/mlx5/core/Kconfig | 58 drivers/net/ethernet/mellanox/mlx5/core/Makefile | 12 drivers/net/ethernet/mellanox/mlx5/core/accel/accel.h | 36 drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec.c | 179 drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec.h | 96 drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec_offload.c | 385 drivers/net/ethernet/mellanox/mlx5/core/accel/ipsec_offload.h | 38 drivers/net/ethernet/mellanox/mlx5/core/accel/tls.c | 125 drivers/net/ethernet/mellanox/mlx5/core/accel/tls.h | 156 drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 drivers/net/ethernet/mellanox/mlx5/core/en/params.c | 19 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/tx.c | 2 drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h | 11 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 30 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.h | 31 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c | 5 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.h | 7 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.c | 420 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_offload.h | 14 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.c | 245 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_rxtx.h | 3 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_stats.c | 63 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c | 71 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.h | 86 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c | 2 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_stats.c | 90 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_tx.c | 20 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h | 28 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_utils.h | 1 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.c | 247 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls.h | 132 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c | 390 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.h | 91 drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_stats.c | 105 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 24 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 1 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 61 drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 9 drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 1 drivers/net/ethernet/mellanox/mlx5/core/fpga/core.h | 3 drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c | 1582 --- drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.h | 62 drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c | 622 - drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.h | 74 drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 2 drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 15 drivers/net/ethernet/mellanox/mlx5/core/fw.c | 3 drivers/net/ethernet/mellanox/mlx5/core/main.c | 18 drivers/net/ethernet/mellanox/mlxsw/Makefile | 3 drivers/net/ethernet/mellanox/mlxsw/core.c | 58 drivers/net/ethernet/mellanox/mlxsw/core.h | 79 drivers/net/ethernet/mellanox/mlxsw/core_env.c | 683 + drivers/net/ethernet/mellanox/mlxsw/core_env.h | 47 drivers/net/ethernet/mellanox/mlxsw/core_hwmon.c | 311 drivers/net/ethernet/mellanox/mlxsw/core_linecards.c | 1142 ++ drivers/net/ethernet/mellanox/mlxsw/core_thermal.c | 250 drivers/net/ethernet/mellanox/mlxsw/minimal.c | 39 drivers/net/ethernet/mellanox/mlxsw/reg.h | 459 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 282 drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 10 drivers/net/ethernet/mellanox/mlxsw/spectrum_ethtool.c | 35 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 35 drivers/net/ethernet/mellanox/mlxsw/trap.h | 6 drivers/net/ethernet/microchip/lan966x/Makefile | 2 drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c | 842 + drivers/net/ethernet/microchip/lan966x/lan966x_main.c | 58 drivers/net/ethernet/microchip/lan966x/lan966x_main.h | 117 drivers/net/ethernet/microchip/lan966x/lan966x_port.c | 3 drivers/net/ethernet/microchip/lan966x/lan966x_regs.h | 106 drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cpp.h | 26 drivers/net/ethernet/qlogic/qed/qed_nvmetcp_ip_services.c | 4 drivers/net/ethernet/qlogic/qed/qed_rdma.c | 43 drivers/net/ethernet/qlogic/qed/qed_roce.c | 2 drivers/net/ethernet/sfc/ef10.c | 2 drivers/net/ethernet/sfc/efx.h | 1 drivers/net/ethernet/sfc/efx_channels.c | 52 drivers/net/ethernet/sfc/efx_channels.h | 4 drivers/net/ethernet/sfc/efx_common.c | 4 drivers/net/ethernet/sfc/falcon/rx.c | 4 drivers/net/ethernet/sfc/farch.c | 1 drivers/net/ethernet/sfc/mcdi_pcol.h | 4 drivers/net/ethernet/sfc/net_driver.h | 5 drivers/net/ethernet/sfc/tx.c | 3 drivers/net/ethernet/smsc/Kconfig | 4 drivers/net/ethernet/smsc/smc91x.h | 11 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 22 drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 24 drivers/net/ethernet/ti/Kconfig | 1 drivers/net/ethernet/ti/am65-cpsw-nuss.c | 33 drivers/net/ethernet/ti/am65-cpsw-qos.c | 180 drivers/net/ethernet/ti/am65-cpsw-qos.h | 8 drivers/net/ethernet/ti/cpsw.c | 38 drivers/net/ethernet/ti/cpsw_ale.c | 66 drivers/net/ethernet/ti/cpsw_ale.h | 2 drivers/net/ethernet/ti/cpsw_new.c | 39 drivers/net/ethernet/ti/cpsw_priv.c | 223 drivers/net/ethernet/ti/cpsw_priv.h | 9 drivers/net/ethernet/ti/davinci_emac.c | 9 drivers/net/ethernet/ti/davinci_mdio.c | 18 drivers/net/ethernet/xilinx/ll_temac_main.c | 2 drivers/net/ethernet/xilinx/xilinx_emaclite.c | 55 drivers/net/ethernet/xscale/ptp_ixp46x.c | 2 drivers/net/geneve.c | 10 drivers/net/hyperv/hyperv_net.h | 69 drivers/net/hyperv/netvsc.c | 16 drivers/net/hyperv/netvsc_bpf.c | 101 drivers/net/hyperv/netvsc_drv.c | 150 drivers/net/mdio/mdio-aspeed.c | 123 drivers/net/mdio/mdio-mscc-miim.c | 81 drivers/net/netdevsim/fib.c | 9 drivers/net/phy/micrel.c | 221 drivers/net/phy/phylink.c | 28 drivers/net/ppp/pppoe.c | 3 drivers/net/usb/cdc_ether.c | 3 drivers/net/usb/qmi_wwan.c | 2 drivers/net/usb/rndis_host.c | 47 drivers/net/wan/Kconfig | 28 drivers/net/wan/Makefile | 2 drivers/net/wan/lmc/Makefile | 18 drivers/net/wan/lmc/lmc.h | 33 drivers/net/wan/lmc/lmc_debug.c | 65 drivers/net/wan/lmc/lmc_debug.h | 52 drivers/net/wan/lmc/lmc_ioctl.h | 255 drivers/net/wan/lmc/lmc_main.c | 2009 ---- drivers/net/wan/lmc/lmc_media.c | 1206 -- drivers/net/wan/lmc/lmc_proto.c | 106 drivers/net/wan/lmc/lmc_proto.h | 18 drivers/net/wan/lmc/lmc_var.h | 468 drivers/net/wireless/Kconfig | 1 drivers/net/wireless/Makefile | 1 drivers/net/wireless/ath/ar5523/ar5523.c | 7 drivers/net/wireless/ath/ath10k/ahb.c | 9 drivers/net/wireless/ath/ath10k/core.c | 25 drivers/net/wireless/ath/ath10k/hw.h | 2 drivers/net/wireless/ath/ath10k/mac.c | 76 drivers/net/wireless/ath/ath10k/usb.c | 27 drivers/net/wireless/ath/ath11k/Makefile | 6 drivers/net/wireless/ath/ath11k/core.c | 372 drivers/net/wireless/ath/ath11k/core.h | 132 drivers/net/wireless/ath/ath11k/debugfs.c | 4 drivers/net/wireless/ath/ath11k/htc.c | 6 drivers/net/wireless/ath/ath11k/hw.h | 23 drivers/net/wireless/ath/ath11k/mac.c | 547 - drivers/net/wireless/ath/ath11k/mac.h | 3 drivers/net/wireless/ath/ath11k/mhi.c | 285 drivers/net/wireless/ath/ath11k/mhi.h | 17 drivers/net/wireless/ath/ath11k/pci.c | 980 -- drivers/net/wireless/ath/ath11k/pci.h | 28 drivers/net/wireless/ath/ath11k/pcic.c | 741 + drivers/net/wireless/ath/ath11k/pcic.h | 46 drivers/net/wireless/ath/ath11k/peer.c | 373 drivers/net/wireless/ath/ath11k/peer.h | 10 drivers/net/wireless/ath/ath11k/qmi.c | 19 drivers/net/wireless/ath/ath11k/reg.c | 44 drivers/net/wireless/ath/ath11k/reg.h | 2 drivers/net/wireless/ath/ath11k/wmi.c | 635 + drivers/net/wireless/ath/ath11k/wmi.h | 366 drivers/net/wireless/ath/ath11k/wow.c | 763 + drivers/net/wireless/ath/ath11k/wow.h | 45 drivers/net/wireless/ath/ath6kl/htc_mbox.c | 2 drivers/net/wireless/ath/ath9k/ahb.c | 8 drivers/net/wireless/ath/ath9k/ar9002_mac.c | 9 drivers/net/wireless/ath/ath9k/ar9003_calib.c | 2 drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 85 drivers/net/wireless/ath/ath9k/ar9003_eeprom.h | 2 drivers/net/wireless/ath/ath9k/ar9003_mac.c | 9 drivers/net/wireless/ath/ath9k/ar9003_paprd.c | 10 drivers/net/wireless/ath/ath9k/ar9003_phy.c | 25 drivers/net/wireless/ath/ath9k/debug_sta.c | 4 drivers/net/wireless/ath/ath9k/htc_drv_main.c | 20 drivers/net/wireless/ath/ath9k/mac.h | 6 drivers/net/wireless/ath/ath9k/main.c | 2 drivers/net/wireless/ath/ath9k/reg.h | 10 drivers/net/wireless/ath/ath9k/xmit.c | 6 drivers/net/wireless/ath/carl9170/main.c | 8 drivers/net/wireless/ath/carl9170/tx.c | 5 drivers/net/wireless/ath/wcn36xx/hal.h | 7 drivers/net/wireless/ath/wcn36xx/main.c | 160 drivers/net/wireless/ath/wcn36xx/smd.c | 92 drivers/net/wireless/ath/wcn36xx/smd.h | 2 drivers/net/wireless/ath/wcn36xx/txrx.c | 29 drivers/net/wireless/ath/wcn36xx/txrx.h | 1 drivers/net/wireless/broadcom/b43/phy_n.c | 2 drivers/net/wireless/broadcom/b43legacy/phy.c | 2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 39 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c | 2 drivers/net/wireless/intel/ipw2x00/ipw2100.c | 64 drivers/net/wireless/intel/ipw2x00/ipw2200.c | 119 drivers/net/wireless/intel/ipw2x00/libipw_tx.c | 2 drivers/net/wireless/intel/iwlegacy/3945-rs.c | 6 drivers/net/wireless/intel/iwlegacy/4965-rs.c | 22 drivers/net/wireless/intel/iwlegacy/common.c | 6 drivers/net/wireless/intel/iwlwifi/dvm/rs.c | 22 drivers/net/wireless/intel/iwlwifi/dvm/rxon.c | 2 drivers/net/wireless/intel/iwlwifi/dvm/sta.c | 4 drivers/net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h | 4 drivers/net/wireless/intel/iwlwifi/fw/api/debug.h | 4 drivers/net/wireless/intel/iwlwifi/fw/api/filter.h | 2 drivers/net/wireless/intel/iwlwifi/fw/api/scan.h | 4 drivers/net/wireless/intel/iwlwifi/fw/api/sta.h | 2 drivers/net/wireless/intel/iwlwifi/fw/api/tdls.h | 2 drivers/net/wireless/intel/iwlwifi/fw/error-dump.h | 2 drivers/net/wireless/intel/iwlwifi/fw/file.h | 10 drivers/net/wireless/intel/iwlwifi/mei/sap.h | 2 drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 2 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 38 drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 38 drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 35 drivers/net/wireless/intel/iwlwifi/mvm/sf.c | 8 drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 31 drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 6 drivers/net/wireless/intersil/orinoco/airport.c | 1 drivers/net/wireless/mac80211_hwsim.c | 4 drivers/net/wireless/marvell/mwifiex/11h.c | 2 drivers/net/wireless/marvell/mwl8k.c | 48 drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 16 drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c | 83 drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 4 drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c | 4 drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 2 drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 140 drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 2 drivers/net/wireless/mediatek/mt7601u/mac.c | 2 drivers/net/wireless/mediatek/mt7601u/tx.c | 4 drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 8 drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 2 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 146 drivers/net/wireless/realtek/rtlwifi/base.c | 44 drivers/net/wireless/realtek/rtlwifi/core.c | 40 drivers/net/wireless/realtek/rtlwifi/pci.c | 15 drivers/net/wireless/realtek/rtlwifi/rc.c | 20 drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c | 26 drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c | 8 drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c | 26 drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.c | 6 drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c | 30 drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c | 2 drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c | 26 drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c | 4 drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c | 12 drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.c | 8 drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c | 26 drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.c | 2 drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c | 26 drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.c | 8 drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 12 drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.c | 8 drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c | 30 drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.c | 6 drivers/net/wireless/realtek/rtw88/bf.c | 2 drivers/net/wireless/realtek/rtw88/fw.c | 11 drivers/net/wireless/realtek/rtw88/fw.h | 4 drivers/net/wireless/realtek/rtw88/mac80211.c | 44 drivers/net/wireless/realtek/rtw88/main.c | 70 drivers/net/wireless/realtek/rtw88/main.h | 6 drivers/net/wireless/realtek/rtw88/pci.c | 5 drivers/net/wireless/realtek/rtw88/phy.c | 2 drivers/net/wireless/realtek/rtw88/reg.h | 2 drivers/net/wireless/realtek/rtw88/rtw8821c.c | 4 drivers/net/wireless/realtek/rtw88/rtw8821c_table.c | 2 drivers/net/wireless/realtek/rtw88/rtw8821ce.c | 4 drivers/net/wireless/realtek/rtw88/rx.c | 3 drivers/net/wireless/realtek/rtw88/tx.c | 31 drivers/net/wireless/realtek/rtw88/tx.h | 4 drivers/net/wireless/realtek/rtw89/cam.c | 57 drivers/net/wireless/realtek/rtw89/cam.h | 4 drivers/net/wireless/realtek/rtw89/coex.c | 24 drivers/net/wireless/realtek/rtw89/core.c | 172 drivers/net/wireless/realtek/rtw89/core.h | 171 drivers/net/wireless/realtek/rtw89/debug.c | 70 drivers/net/wireless/realtek/rtw89/fw.c | 264 drivers/net/wireless/realtek/rtw89/fw.h | 376 drivers/net/wireless/realtek/rtw89/mac.c | 707 + drivers/net/wireless/realtek/rtw89/mac.h | 81 drivers/net/wireless/realtek/rtw89/mac80211.c | 4 drivers/net/wireless/realtek/rtw89/pci.c | 630 + drivers/net/wireless/realtek/rtw89/pci.h | 245 drivers/net/wireless/realtek/rtw89/phy.c | 101 drivers/net/wireless/realtek/rtw89/reg.h | 1430 ++ drivers/net/wireless/realtek/rtw89/regd.c | 513 - drivers/net/wireless/realtek/rtw89/rtw8852a.c | 77 drivers/net/wireless/realtek/rtw89/rtw8852a_table.c | 581 + drivers/net/wireless/realtek/rtw89/rtw8852ae.c | 32 drivers/net/wireless/realtek/rtw89/rtw8852c.c | 172 drivers/net/wireless/realtek/rtw89/rtw8852ce.c | 32 drivers/net/wireless/realtek/rtw89/ser.c | 250 drivers/net/wireless/realtek/rtw89/txrx.h | 107 drivers/net/wireless/rsi/rsi_91x_mac80211.c | 12 drivers/net/wireless/rsi/rsi_91x_mgmt.c | 8 drivers/net/wireless/silabs/Kconfig | 18 drivers/net/wireless/silabs/Makefile | 3 drivers/net/wireless/silabs/wfx/Kconfig | 13 drivers/net/wireless/silabs/wfx/Makefile | 25 drivers/net/wireless/silabs/wfx/bh.c | 324 drivers/net/wireless/silabs/wfx/bh.h | 34 drivers/net/wireless/silabs/wfx/bus.h | 36 drivers/net/wireless/silabs/wfx/bus_sdio.c | 273 drivers/net/wireless/silabs/wfx/bus_spi.c | 284 drivers/net/wireless/silabs/wfx/data_rx.c | 92 drivers/net/wireless/silabs/wfx/data_rx.h | 17 drivers/net/wireless/silabs/wfx/data_tx.c | 568 + drivers/net/wireless/silabs/wfx/data_tx.h | 66 drivers/net/wireless/silabs/wfx/debug.c | 331 drivers/net/wireless/silabs/wfx/debug.h | 19 drivers/net/wireless/silabs/wfx/fwio.c | 389 drivers/net/wireless/silabs/wfx/fwio.h | 15 drivers/net/wireless/silabs/wfx/hif_api_cmd.h | 553 + drivers/net/wireless/silabs/wfx/hif_api_general.h | 252 drivers/net/wireless/silabs/wfx/hif_api_mib.h | 346 drivers/net/wireless/silabs/wfx/hif_rx.c | 391 drivers/net/wireless/silabs/wfx/hif_rx.h | 17 drivers/net/wireless/silabs/wfx/hif_tx.c | 490 + drivers/net/wireless/silabs/wfx/hif_tx.h | 61 drivers/net/wireless/silabs/wfx/hif_tx_mib.c | 307 drivers/net/wireless/silabs/wfx/hif_tx_mib.h | 48 drivers/net/wireless/silabs/wfx/hwio.c | 332 drivers/net/wireless/silabs/wfx/hwio.h | 78 drivers/net/wireless/silabs/wfx/key.c | 227 drivers/net/wireless/silabs/wfx/key.h | 19 drivers/net/wireless/silabs/wfx/main.c | 491 + drivers/net/wireless/silabs/wfx/main.h | 41 drivers/net/wireless/silabs/wfx/queue.c | 297 drivers/net/wireless/silabs/wfx/queue.h | 44 drivers/net/wireless/silabs/wfx/scan.c | 144 drivers/net/wireless/silabs/wfx/scan.h | 22 drivers/net/wireless/silabs/wfx/sta.c | 794 + drivers/net/wireless/silabs/wfx/sta.h | 66 drivers/net/wireless/silabs/wfx/traces.h | 496 + drivers/net/wireless/silabs/wfx/wfx.h | 162 drivers/net/wireless/st/cw1200/sta.c | 4 drivers/net/wireless/ti/wlcore/cmd.c | 8 drivers/net/wireless/ti/wlcore/debugfs.c | 52 drivers/net/wireless/ti/wlcore/main.c | 16 drivers/ntb/hw/idt/Makefile | 1 drivers/nvme/host/core.c | 4 drivers/nvme/host/rdma.c | 4 drivers/nvme/target/io-cmd-bdev.c | 2 drivers/nvme/target/rdma.c | 4 drivers/nvme/target/zns.c | 3 drivers/nvmem/Kconfig | 12 drivers/nvmem/Makefile | 2 drivers/nvmem/apple-efuses.c | 80 drivers/nvmem/bcm-ocotp.c | 2 drivers/nvmem/brcm_nvram.c | 2 drivers/nvmem/core.c | 1 drivers/nvmem/sunplus-ocotp.c | 4 drivers/of/irq.c | 13 drivers/of/platform.c | 98 drivers/of/property.c | 39 drivers/opp/core.c | 14 drivers/opp/of.c | 8 drivers/pci/controller/cadence/pcie-cadence-ep.c | 3 drivers/pci/controller/dwc/pcie-designware-host.c | 3 drivers/pci/controller/dwc/pcie-qcom.c | 15 drivers/pci/controller/dwc/pcie-tegra194.c | 9 drivers/pci/controller/pcie-mediatek.c | 1 drivers/pci/controller/pcie-rockchip-ep.c | 3 drivers/pci/hotplug/pnv_php.c | 1 drivers/pci/hotplug/rpadlpar_core.c | 1 drivers/pci/hotplug/rpaphp_core.c | 2 drivers/pci/hotplug/rpaphp_pci.c | 1 drivers/pci/hotplug/rpaphp_slot.c | 1 drivers/pci/p2pdma.c | 25 drivers/pci/pci-acpi.c | 44 drivers/pci/pci-driver.c | 10 drivers/pci/pci.c | 10 drivers/pci/quirks.c | 47 drivers/pcmcia/Kconfig | 5 drivers/pcmcia/Makefile | 13 drivers/pcmcia/omap_cf.c | 48 drivers/pcmcia/pxa2xx_balloon3.c | 137 drivers/pcmcia/pxa2xx_base.c | 48 drivers/pcmcia/pxa2xx_colibri.c | 165 drivers/pcmcia/pxa2xx_e740.c | 127 drivers/pcmcia/pxa2xx_hx4700.c | 118 drivers/pcmcia/pxa2xx_palmld.c | 110 drivers/pcmcia/pxa2xx_palmtc.c | 162 drivers/pcmcia/pxa2xx_palmtx.c | 111 drivers/pcmcia/pxa2xx_sharpsl.c | 3 drivers/pcmcia/pxa2xx_trizeps4.c | 200 drivers/pcmcia/pxa2xx_viper.c | 182 drivers/pcmcia/pxa2xx_vpac270.c | 137 drivers/pcmcia/rsrc_nonstatic.c | 2 drivers/pcmcia/sa1111_generic.c | 1 drivers/pcmcia/sa1111_lubbock.c | 1 drivers/pcmcia/soc_common.c | 2 drivers/pcmcia/soc_common.h | 120 drivers/perf/thunderx2_pmu.c | 4 drivers/phy/Kconfig | 1 drivers/phy/allwinner/phy-sun6i-mipi-dphy.c | 166 drivers/phy/amlogic/phy-meson-g12a-usb3-pcie.c | 20 drivers/phy/cadence/phy-cadence-sierra.c | 193 drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c | 276 drivers/phy/freescale/phy-fsl-imx8m-pcie.c | 10 drivers/phy/mediatek/phy-mtk-hdmi.c | 50 drivers/phy/mediatek/phy-mtk-mipi-dsi.c | 29 drivers/phy/motorola/phy-mapphone-mdm6600.c | 3 drivers/phy/phy-can-transceiver.c | 22 drivers/phy/phy-core.c | 44 drivers/phy/qualcomm/phy-qcom-qmp.c | 79 drivers/phy/rockchip/phy-rockchip-dphy-rx0.c | 7 drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 125 drivers/phy/rockchip/phy-rockchip-typec.c | 6 drivers/phy/samsung/phy-exynos5250-sata.c | 21 drivers/phy/ti/phy-am654-serdes.c | 2 drivers/phy/ti/phy-omap-usb2.c | 2 drivers/phy/ti/phy-ti-pipe3.c | 1 drivers/phy/ti/phy-tusb1210.c | 12 drivers/pinctrl/aspeed/pinctrl-aspeed-g6.c | 17 drivers/pinctrl/bcm/pinctrl-bcm2835.c | 18 drivers/pinctrl/intel/pinctrl-alderlake.c | 60 drivers/pinctrl/mediatek/Kconfig | 2 drivers/pinctrl/meson/Kconfig | 2 drivers/pinctrl/meson/pinctrl-meson-s4.c | 3 drivers/pinctrl/meson/pinctrl-meson.c | 52 drivers/pinctrl/meson/pinctrl-meson.h | 28 drivers/pinctrl/mvebu/Kconfig | 4 drivers/pinctrl/mvebu/Makefile | 1 drivers/pinctrl/mvebu/pinctrl-ac5.c | 261 drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 34 drivers/pinctrl/nomadik/pinctrl-nomadik-db8500.c | 7 drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c | 142 drivers/pinctrl/pinctrl-amd.c | 11 drivers/pinctrl/pinctrl-apple-gpio.c | 29 drivers/pinctrl/pinctrl-ingenic.c | 118 drivers/pinctrl/pinctrl-max77620.c | 1 drivers/pinctrl/pinctrl-ocelot.c | 14 drivers/pinctrl/pinctrl-rockchip.c | 64 drivers/pinctrl/pinctrl-rockchip.h | 7 drivers/pinctrl/pinctrl-thunderbay.c | 7 drivers/pinctrl/qcom/pinctrl-msm.c | 53 drivers/pinctrl/qcom/pinctrl-sm6350.c | 16 drivers/pinctrl/qcom/pinctrl-sm8150.c | 22 drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 1 drivers/pinctrl/ralink/Kconfig | 28 drivers/pinctrl/ralink/Makefile | 4 drivers/pinctrl/ralink/pinctrl-mt7620.c | 300 drivers/pinctrl/ralink/pinctrl-mt7621.c | 76 drivers/pinctrl/ralink/pinctrl-ralink.c | 349 drivers/pinctrl/ralink/pinctrl-ralink.h | 53 drivers/pinctrl/ralink/pinctrl-rt2880.c | 377 drivers/pinctrl/ralink/pinctrl-rt288x.c | 60 drivers/pinctrl/ralink/pinctrl-rt305x.c | 66 drivers/pinctrl/ralink/pinctrl-rt3883.c | 50 drivers/pinctrl/ralink/pinmux.h | 53 drivers/pinctrl/renesas/Kconfig | 7 drivers/pinctrl/renesas/core.c | 67 drivers/pinctrl/renesas/gpio.c | 1 drivers/pinctrl/renesas/pfc-emev2.c | 1 drivers/pinctrl/renesas/pfc-r8a77990.c | 120 drivers/pinctrl/renesas/pfc-r8a77995.c | 98 drivers/pinctrl/renesas/pfc-sh7722.c | 1 drivers/pinctrl/renesas/pfc-sh7723.c | 1 drivers/pinctrl/renesas/pfc-sh7724.c | 1 drivers/pinctrl/renesas/pfc-sh7734.c | 1 drivers/pinctrl/renesas/pfc-sh7757.c | 1 drivers/pinctrl/renesas/pfc-sh7785.c | 1 drivers/pinctrl/renesas/pfc-sh7786.c | 1 drivers/pinctrl/renesas/pfc-shx3.c | 1 drivers/pinctrl/renesas/pinctrl-rza1.c | 47 drivers/pinctrl/renesas/pinctrl-rzg2l.c | 200 drivers/pinctrl/renesas/pinctrl.c | 1 drivers/pinctrl/renesas/sh_pfc.h | 7 drivers/pinctrl/samsung/Kconfig | 11 drivers/pinctrl/samsung/pinctrl-exynos-arm64.c | 2 drivers/pinctrl/samsung/pinctrl-exynos.c | 8 drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 2 drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 4 drivers/pinctrl/samsung/pinctrl-samsung.c | 30 drivers/pinctrl/samsung/pinctrl-samsung.h | 2 drivers/pinctrl/stm32/pinctrl-stm32.c | 84 drivers/pinctrl/sunplus/sppctl_sp7021.c | 8 drivers/platform/chrome/cros_ec.c | 36 drivers/platform/chrome/cros_ec_chardev.c | 2 drivers/platform/chrome/cros_ec_proto.c | 50 drivers/platform/x86/Kconfig | 8 drivers/platform/x86/Makefile | 3 drivers/platform/x86/amd-pmc.c | 78 drivers/platform/x86/hp-wmi.c | 8 drivers/platform/x86/winmate-fm07-keys.c | 189 drivers/platform/x86/wmi.c | 13 drivers/power/supply/axp288_charger.c | 17 drivers/power/supply/charger-manager.c | 7 drivers/power/supply/max8997_charger.c | 8 drivers/power/supply/tosa_battery.c | 191 drivers/powercap/dtpm_cpu.c | 2 drivers/regulator/Kconfig | 10 drivers/regulator/Makefile | 1 drivers/regulator/core.c | 41 drivers/regulator/da9121-regulator.c | 2 drivers/regulator/fixed.c | 5 drivers/regulator/mt6358-regulator.c | 213 drivers/regulator/rpi-panel-attiny-regulator.c | 1 drivers/regulator/rt5759-regulator.c | 369 drivers/regulator/stm32-vrefbuf.c | 30 drivers/remoteproc/imx_dsp_rproc.c | 105 drivers/remoteproc/imx_rproc.c | 3 drivers/remoteproc/mtk_common.h | 2 drivers/remoteproc/mtk_scp.c | 70 drivers/remoteproc/remoteproc_cdev.c | 11 drivers/remoteproc/remoteproc_core.c | 15 drivers/remoteproc/remoteproc_debugfs.c | 17 drivers/remoteproc/remoteproc_elf_loader.c | 2 drivers/remoteproc/remoteproc_sysfs.c | 11 drivers/reset/Kconfig | 4 drivers/reset/core.c | 15 drivers/reset/reset-meson.c | 6 drivers/reset/reset-simple.c | 1 drivers/reset/reset-uniphier-glue.c | 75 drivers/rtc/rtc-goldfish.c | 44 drivers/rtc/rtc-pxa.c | 2 drivers/s390/block/dasd_fba.c | 1 drivers/scsi/fcoe/fcoe.c | 2 drivers/scsi/fcoe/fcoe_ctlr.c | 2 drivers/scsi/lpfc/lpfc.h | 6 drivers/scsi/lpfc/lpfc_attr.c | 55 drivers/scsi/lpfc/lpfc_bsg.c | 79 drivers/scsi/lpfc/lpfc_crtn.h | 4 drivers/scsi/lpfc/lpfc_ct.c | 252 drivers/scsi/lpfc/lpfc_els.c | 644 - drivers/scsi/lpfc/lpfc_hbadisc.c | 143 drivers/scsi/lpfc/lpfc_hw.h | 75 drivers/scsi/lpfc/lpfc_hw4.h | 17 drivers/scsi/lpfc/lpfc_init.c | 211 drivers/scsi/lpfc/lpfc_logmsg.h | 8 drivers/scsi/lpfc/lpfc_mbox.c | 203 drivers/scsi/lpfc/lpfc_nportdisc.c | 64 drivers/scsi/lpfc/lpfc_nvme.c | 35 drivers/scsi/lpfc/lpfc_nvmet.c | 73 drivers/scsi/lpfc/lpfc_scsi.c | 55 drivers/scsi/lpfc/lpfc_sli.c | 226 drivers/scsi/lpfc/lpfc_sli.h | 34 drivers/scsi/lpfc/lpfc_sli4.h | 3 drivers/scsi/lpfc/lpfc_version.h | 2 drivers/scsi/lpfc/lpfc_vport.c | 31 drivers/scsi/megaraid/megaraid_sas_base.c | 2 drivers/scsi/pmcraid.c | 2 drivers/scsi/scsi.c | 4 drivers/scsi/sd.c | 2 drivers/scsi/ufs/ufshcd-pltfrm.c | 10 drivers/scsi/ufs/ufshpb.c | 7 drivers/scsi/vmw_pvscsi.c | 1 drivers/slimbus/qcom-ctrl.c | 4 drivers/slimbus/qcom-ngd-ctrl.c | 10 drivers/soc/Kconfig | 1 drivers/soc/Makefile | 1 drivers/soc/fsl/qbman/qman_test_stash.c | 2 drivers/soc/imx/gpcv2.c | 430 drivers/soc/imx/imx8m-blk-ctrl.c | 2 drivers/soc/pxa/Kconfig | 8 drivers/soc/pxa/Makefile | 6 drivers/soc/pxa/mfp.c | 282 drivers/soc/pxa/ssp.c | 231 drivers/soc/qcom/llcc-qcom.c | 1 drivers/soc/qcom/pdr_interface.c | 11 drivers/soc/qcom/rpmhpd.c | 16 drivers/soc/qcom/smem.c | 305 drivers/soc/qcom/smp2p.c | 1 drivers/soc/qcom/smsm.c | 1 drivers/soc/qcom/socinfo.c | 26 drivers/soc/renesas/Kconfig | 6 drivers/soc/renesas/renesas-soc.c | 13 drivers/soc/rockchip/grf.c | 17 drivers/soc/rockchip/pm_domains.c | 6 drivers/soc/tegra/fuse/fuse-tegra.c | 8 drivers/soc/tegra/fuse/fuse-tegra30.c | 17 drivers/soc/tegra/pmc.c | 33 drivers/soc/ti/knav_dma.c | 29 drivers/soc/ti/knav_qmss_queue.c | 16 drivers/soc/ti/omap_prm.c | 7 drivers/soc/ti/pruss.c | 3 drivers/soc/ti/ti_sci_pm_domains.c | 2 drivers/soc/ti/wkup_m3_ipc.c | 4 drivers/soundwire/qcom.c | 3 drivers/soundwire/stream.c | 1 drivers/spi/Kconfig | 2 drivers/spi/atmel-quadspi.c | 6 drivers/spi/spi-cadence.c | 8 drivers/spi/spi-fsl-lpspi.c | 2 drivers/spi/spi-imx.c | 34 drivers/spi/spi-intel.c | 51 drivers/spi/spi-mem.c | 13 drivers/spi/spi-mpc52xx-psc.c | 1 drivers/spi/spi-mpc52xx.c | 3 drivers/spi/spi-mt65xx.c | 710 + drivers/spi/spi-omap-uwire.c | 15 drivers/spi/spi-rspi.c | 15 drivers/spi/spi-stm32-qspi.c | 30 drivers/spi/spi-sunplus-sp7021.c | 6 drivers/spi/spi-tegra114.c | 9 drivers/spi/spi-ti-qspi.c | 8 drivers/spi/spi.c | 25 drivers/spi/spidev.c | 104 drivers/staging/Kconfig | 3 drivers/staging/Makefile | 2 drivers/staging/greybus/arche-apb-ctrl.c | 2 drivers/staging/greybus/audio_codec.c | 44 drivers/staging/greybus/pwm.c | 1 drivers/staging/iio/resolver/ad2s1210.c | 1 drivers/staging/ks7010/ks_hostif.c | 21 drivers/staging/ks7010/ks_wlan.h | 2 drivers/staging/media/tegra-video/vi.c | 2 drivers/staging/most/dim2/dim2.c | 29 drivers/staging/qlge/qlge.h | 1 drivers/staging/r8188eu/core/rtw_ap.c | 3 drivers/staging/r8188eu/core/rtw_br_ext.c | 73 drivers/staging/r8188eu/core/rtw_cmd.c | 200 drivers/staging/r8188eu/core/rtw_fw.c | 165 drivers/staging/r8188eu/core/rtw_ieee80211.c | 45 drivers/staging/r8188eu/core/rtw_ioctl_set.c | 4 drivers/staging/r8188eu/core/rtw_iol.c | 4 drivers/staging/r8188eu/core/rtw_led.c | 10 drivers/staging/r8188eu/core/rtw_mlme.c | 117 drivers/staging/r8188eu/core/rtw_mlme_ext.c | 540 - drivers/staging/r8188eu/core/rtw_p2p.c | 58 drivers/staging/r8188eu/core/rtw_pwrctrl.c | 101 drivers/staging/r8188eu/core/rtw_recv.c | 312 drivers/staging/r8188eu/core/rtw_security.c | 6 drivers/staging/r8188eu/core/rtw_sta_mgt.c | 4 drivers/staging/r8188eu/core/rtw_wlan_util.c | 109 drivers/staging/r8188eu/core/rtw_xmit.c | 17 drivers/staging/r8188eu/hal/HalHWImg8188E_BB.c | 6 drivers/staging/r8188eu/hal/HalHWImg8188E_MAC.c | 2 drivers/staging/r8188eu/hal/HalHWImg8188E_RF.c | 2 drivers/staging/r8188eu/hal/hal_com.c | 4 drivers/staging/r8188eu/hal/odm_HWConfig.c | 8 drivers/staging/r8188eu/hal/rtl8188e_cmd.c | 49 drivers/staging/r8188eu/hal/rtl8188e_hal_init.c | 15 drivers/staging/r8188eu/hal/rtl8188e_phycfg.c | 8 drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c | 3 drivers/staging/r8188eu/hal/rtl8188eu_xmit.c | 8 drivers/staging/r8188eu/hal/usb_halinit.c | 351 drivers/staging/r8188eu/hal/usb_ops_linux.c | 10 drivers/staging/r8188eu/include/HalVerDef.h | 5 drivers/staging/r8188eu/include/basic_types.h | 75 drivers/staging/r8188eu/include/drv_types.h | 6 drivers/staging/r8188eu/include/hal_intf.h | 33 drivers/staging/r8188eu/include/ieee80211.h | 47 drivers/staging/r8188eu/include/odm.h | 29 drivers/staging/r8188eu/include/osdep_service.h | 47 drivers/staging/r8188eu/include/rtl8188e_hal.h | 3 drivers/staging/r8188eu/include/rtl8188e_spec.h | 10 drivers/staging/r8188eu/include/rtw_eeprom.h | 3 drivers/staging/r8188eu/include/rtw_fw.h | 5 drivers/staging/r8188eu/include/rtw_ioctl.h | 79 drivers/staging/r8188eu/include/rtw_mlme.h | 5 drivers/staging/r8188eu/include/rtw_mlme_ext.h | 44 drivers/staging/r8188eu/include/rtw_pwrctrl.h | 23 drivers/staging/r8188eu/include/rtw_recv.h | 2 drivers/staging/r8188eu/include/rtw_xmit.h | 2 drivers/staging/r8188eu/include/usb_ops.h | 22 drivers/staging/r8188eu/include/usb_osintf.h | 4 drivers/staging/r8188eu/include/usb_vendor_req.h | 35 drivers/staging/r8188eu/include/wifi.h | 60 drivers/staging/r8188eu/os_dep/ioctl_linux.c | 66 drivers/staging/r8188eu/os_dep/os_intfs.c | 45 drivers/staging/r8188eu/os_dep/osdep_service.c | 27 drivers/staging/r8188eu/os_dep/usb_intf.c | 1 drivers/staging/r8188eu/os_dep/usb_ops_linux.c | 19 drivers/staging/r8188eu/os_dep/xmit_linux.c | 16 drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 8 drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 drivers/staging/rtl8192e/rtl819x_BAProc.c | 5 drivers/staging/rtl8192e/rtllib.h | 2 drivers/staging/rtl8192e/rtllib_crypt_ccmp.c | 10 drivers/staging/rtl8192e/rtllib_crypt_tkip.c | 36 drivers/staging/rtl8192e/rtllib_rx.c | 22 drivers/staging/rtl8192e/rtllib_softmac.c | 48 drivers/staging/rtl8192e/rtllib_softmac_wx.c | 4 drivers/staging/rtl8192e/rtllib_wx.c | 2 drivers/staging/rtl8192u/ieee80211/ieee80211.h | 2 drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 17 drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c | 8 drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c | 15 drivers/staging/rtl8712/drv_types.h | 3 drivers/staging/rtl8712/ieee80211.c | 4 drivers/staging/rtl8712/os_intfs.c | 1 drivers/staging/rtl8712/rtl8712_cmdctrl_bitdef.h | 1 drivers/staging/rtl8712/rtl8712_efuse.h | 4 drivers/staging/rtl8712/rtl8712_macsetting_bitdef.h | 3 drivers/staging/rtl8712/rtl8712_macsetting_regdef.h | 2 drivers/staging/rtl8712/rtl8712_ratectrl_regdef.h | 1 drivers/staging/rtl8712/rtl8712_recv.c | 16 drivers/staging/rtl8712/rtl8712_security_bitdef.h | 1 drivers/staging/rtl8712/rtl8712_spec.h | 3 drivers/staging/rtl8712/rtl8712_syscfg_bitdef.h | 4 drivers/staging/rtl8712/rtl8712_syscfg_regdef.h | 2 drivers/staging/rtl8712/rtl8712_timectrl_bitdef.h | 1 drivers/staging/rtl8712/rtl8712_wmac_bitdef.h | 1 drivers/staging/rtl8712/rtl871x_cmd.c | 4 drivers/staging/rtl8712/rtl871x_cmd.h | 3 drivers/staging/rtl8712/rtl871x_ioctl.h | 1 drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 24 drivers/staging/rtl8712/rtl871x_ioctl_rtl.c | 1 drivers/staging/rtl8712/rtl871x_ioctl_set.c | 3 drivers/staging/rtl8712/rtl871x_mlme.c | 102 drivers/staging/rtl8712/rtl871x_mp_ioctl.h | 1 drivers/staging/rtl8712/rtl871x_mp_phy_regdef.h | 3 drivers/staging/rtl8712/rtl871x_recv.c | 1 drivers/staging/rtl8712/rtl871x_security.c | 1 drivers/staging/rtl8712/sta_info.h | 1 drivers/staging/rtl8712/usb_intf.c | 8 drivers/staging/rtl8712/wifi.h | 1 drivers/staging/rtl8712/xmit_linux.c | 8 drivers/staging/rtl8723bs/core/rtw_cmd.c | 12 drivers/staging/rtl8723bs/core/rtw_efuse.c | 54 drivers/staging/rtl8723bs/core/rtw_ieee80211.c | 44 drivers/staging/rtl8723bs/core/rtw_mlme.c | 66 drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 192 drivers/staging/rtl8723bs/core/rtw_rf.c | 56 drivers/staging/rtl8723bs/hal/sdio_ops.c | 15 drivers/staging/rtl8723bs/include/drv_types.h | 1 drivers/staging/rtl8723bs/include/rtw_ioctl.h | 72 drivers/staging/rtl8723bs/os_dep/os_intfs.c | 2 drivers/staging/rts5208/rtsx_transport.c | 12 drivers/staging/sm750fb/sm750_hw.c | 1 drivers/staging/unisys/Documentation/ABI/sysfs-platform-visorchipset | 89 drivers/staging/unisys/Documentation/overview.txt | 337 drivers/staging/unisys/Kconfig | 16 drivers/staging/unisys/MAINTAINERS | 5 drivers/staging/unisys/Makefile | 7 drivers/staging/unisys/TODO | 16 drivers/staging/unisys/include/iochannel.h | 571 - drivers/staging/unisys/visorhba/Kconfig | 15 drivers/staging/unisys/visorhba/Makefile | 10 drivers/staging/unisys/visorhba/visorhba_main.c | 1142 -- drivers/staging/unisys/visorinput/Kconfig | 16 drivers/staging/unisys/visorinput/Makefile | 7 drivers/staging/unisys/visorinput/visorinput.c | 788 - drivers/staging/unisys/visornic/Kconfig | 16 drivers/staging/unisys/visornic/Makefile | 10 drivers/staging/unisys/visornic/visornic_main.c | 2148 ---- drivers/staging/vc04_services/bcm2835-audio/Kconfig | 6 drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c | 86 drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c | 5 drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c | 2 drivers/staging/vc04_services/bcm2835-audio/bcm2835.c | 33 drivers/staging/vc04_services/bcm2835-audio/bcm2835.h | 2 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 26 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c | 13 drivers/staging/vme/devices/vme_user.c | 2 drivers/staging/vt6655/baseband.c | 7 drivers/staging/vt6655/card.c | 3 drivers/staging/vt6655/device_main.c | 6 drivers/staging/vt6655/key.c | 1 drivers/staging/vt6655/mac.c | 1 drivers/staging/vt6655/mac.h | 200 drivers/staging/vt6655/srom.c | 9 drivers/staging/vt6655/tmacro.h | 43 drivers/staging/vt6655/upc.h | 16 drivers/staging/vt6656/channel.c | 1 drivers/staging/vt6656/rf.c | 1 drivers/staging/wfx/Kconfig | 13 drivers/staging/wfx/Makefile | 25 drivers/staging/wfx/TODO | 6 drivers/staging/wfx/bh.c | 324 drivers/staging/wfx/bh.h | 34 drivers/staging/wfx/bus.h | 36 drivers/staging/wfx/bus_sdio.c | 273 drivers/staging/wfx/bus_spi.c | 284 drivers/staging/wfx/data_rx.c | 92 drivers/staging/wfx/data_rx.h | 17 drivers/staging/wfx/data_tx.c | 568 - drivers/staging/wfx/data_tx.h | 66 drivers/staging/wfx/debug.c | 331 drivers/staging/wfx/debug.h | 19 drivers/staging/wfx/fwio.c | 389 drivers/staging/wfx/fwio.h | 15 drivers/staging/wfx/hif_api_cmd.h | 553 - drivers/staging/wfx/hif_api_general.h | 252 drivers/staging/wfx/hif_api_mib.h | 346 drivers/staging/wfx/hif_rx.c | 391 drivers/staging/wfx/hif_rx.h | 17 drivers/staging/wfx/hif_tx.c | 490 - drivers/staging/wfx/hif_tx.h | 61 drivers/staging/wfx/hif_tx_mib.c | 307 drivers/staging/wfx/hif_tx_mib.h | 48 drivers/staging/wfx/hwio.c | 332 drivers/staging/wfx/hwio.h | 78 drivers/staging/wfx/key.c | 227 drivers/staging/wfx/key.h | 19 drivers/staging/wfx/main.c | 491 - drivers/staging/wfx/main.h | 41 drivers/staging/wfx/queue.c | 297 drivers/staging/wfx/queue.h | 44 drivers/staging/wfx/scan.c | 144 drivers/staging/wfx/scan.h | 22 drivers/staging/wfx/sta.c | 794 - drivers/staging/wfx/sta.h | 66 drivers/staging/wfx/traces.h | 496 - drivers/staging/wfx/wfx.h | 162 drivers/staging/wlan-ng/cfg80211.c | 10 drivers/staging/wlan-ng/hfa384x.h | 4 drivers/staging/wlan-ng/hfa384x_usb.c | 34 drivers/staging/wlan-ng/prism2usb.c | 8 drivers/target/target_core_configfs.c | 47 drivers/target/target_core_device.c | 20 drivers/target/target_core_file.c | 10 drivers/target/target_core_iblock.c | 17 drivers/target/target_core_pscsi.c | 36 drivers/tee/Kconfig | 5 drivers/tee/optee/call.c | 2 drivers/tee/optee/ffa_abi.c | 1 drivers/tee/tee_shm.c | 37 drivers/thermal/broadcom/bcm2711_thermal.c | 5 drivers/thermal/cpufreq_cooling.c | 2 drivers/thermal/devfreq_cooling.c | 33 drivers/thermal/hisi_thermal.c | 6 drivers/thermal/intel/int340x_thermal/int3400_thermal.c | 24 drivers/thermal/k3_bandgap.c | 5 drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 486 - drivers/thermal/qcom/tsens.c | 3 drivers/thermal/rcar_thermal.c | 17 drivers/thermal/thermal_of.c | 12 drivers/thunderbolt/ctl.c | 15 drivers/thunderbolt/nhi.c | 2 drivers/thunderbolt/path.c | 6 drivers/thunderbolt/tb.c | 19 drivers/thunderbolt/tb.h | 2 drivers/thunderbolt/test.c | 150 drivers/thunderbolt/tunnel.c | 11 drivers/thunderbolt/tunnel.h | 4 drivers/tty/goldfish.c | 22 drivers/tty/hvc/hvc_opal.c | 2 drivers/tty/hvc/hvc_vio.c | 2 drivers/tty/hvc/hvsi.c | 2 drivers/tty/n_gsm.c | 256 drivers/tty/n_tty.c | 38 drivers/tty/serial/8250/8250.h | 2 drivers/tty/serial/8250/8250_aspeed_vuart.c | 2 drivers/tty/serial/8250/8250_of.c | 2 drivers/tty/serial/8250/8250_pci.c | 67 drivers/tty/serial/8250/8250_port.c | 6 drivers/tty/serial/8250/Kconfig | 2 drivers/tty/serial/Kconfig | 5 drivers/tty/serial/altera_jtaguart.c | 6 drivers/tty/serial/amba-pl011.c | 25 drivers/tty/serial/atmel_serial.c | 4 drivers/tty/serial/cpm_uart/cpm_uart_cpm2.c | 1 drivers/tty/serial/fsl_lpuart.c | 56 drivers/tty/serial/icom.c | 2 drivers/tty/serial/imx.c | 6 drivers/tty/serial/max310x.c | 1 drivers/tty/serial/meson_uart.c | 4 drivers/tty/serial/mpc52xx_uart.c | 5 drivers/tty/serial/omap-serial.c | 13 drivers/tty/serial/owl-uart.c | 7 drivers/tty/serial/pmac_zilog.c | 1 drivers/tty/serial/samsung_tty.c | 12 drivers/tty/serial/sc16is7xx.c | 10 drivers/tty/serial/serial_core.c | 38 drivers/tty/serial/stm32-usart.c | 9 drivers/tty/synclink_gt.c | 2 drivers/usb/cdns3/cdns3-gadget.c | 7 drivers/usb/core/devio.c | 14 drivers/usb/core/quirks.c | 6 drivers/usb/dwc3/core.c | 31 drivers/usb/dwc3/drd.c | 20 drivers/usb/gadget/configfs.c | 2 drivers/usb/gadget/function/uvc_queue.c | 2 drivers/usb/gadget/udc/omap_udc.c | 19 drivers/usb/gadget/udc/pxa25x_udc.c | 37 drivers/usb/gadget/udc/pxa25x_udc.h | 7 drivers/usb/host/Kconfig | 2 drivers/usb/host/ehci-hcd.c | 23 drivers/usb/host/ehci-pci.c | 4 drivers/usb/host/ehci.h | 1 drivers/usb/host/ohci-omap.c | 60 drivers/usb/host/ohci-pxa27x.c | 3 drivers/usb/host/xhci-hub.c | 2 drivers/usb/host/xhci-pci.c | 4 drivers/usb/host/xhci-ring.c | 1 drivers/usb/host/xhci-tegra.c | 4 drivers/usb/host/xhci.c | 11 drivers/usb/misc/qcom_eud.c | 10 drivers/usb/misc/uss720.c | 3 drivers/usb/mtu3/mtu3_dr.c | 6 drivers/usb/phy/Kconfig | 3 drivers/usb/phy/phy-isp1301-omap.c | 6 drivers/usb/phy/phy-omap-otg.c | 4 drivers/usb/serial/cp210x.c | 2 drivers/usb/serial/option.c | 12 drivers/usb/serial/whiteheat.c | 5 drivers/usb/typec/Kconfig | 1 drivers/usb/typec/tcpm/fusb302.c | 4 drivers/usb/typec/ucsi/ucsi.c | 24 drivers/video/backlight/Kconfig | 4 drivers/video/backlight/omap1_bl.c | 4 drivers/video/console/sticore.c | 21 drivers/video/fbdev/Kconfig | 14 drivers/video/fbdev/Makefile | 2 drivers/video/fbdev/arkfb.c | 3 drivers/video/fbdev/aty/aty128fb.c | 1 drivers/video/fbdev/aty/atyfb_base.c | 1 drivers/video/fbdev/aty/radeon_pm.c | 1 drivers/video/fbdev/aty/radeonfb.h | 2 drivers/video/fbdev/controlfb.c | 3 drivers/video/fbdev/core/fb_defio.c | 9 drivers/video/fbdev/core/fbcon.c | 714 - drivers/video/fbdev/core/fbcon.h | 8 drivers/video/fbdev/core/fbmem.c | 37 drivers/video/fbdev/core/fbsysfs.c | 2 drivers/video/fbdev/i740fb.c | 5 drivers/video/fbdev/imxfb.c | 2 drivers/video/fbdev/kyro/fbdev.c | 2 drivers/video/fbdev/matrox/matroxfb_base.h | 1 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c | 2 drivers/video/fbdev/mmp/core.c | 11 drivers/video/fbdev/mx3fb.c | 2 drivers/video/fbdev/neofb.c | 2 drivers/video/fbdev/offb.c | 98 drivers/video/fbdev/omap/Kconfig | 4 drivers/video/fbdev/omap/Makefile | 5 drivers/video/fbdev/omap/hwa742.c | 6 drivers/video/fbdev/omap/lcd_ams_delta.c | 6 drivers/video/fbdev/omap/lcd_dma.c | 444 drivers/video/fbdev/omap/lcd_dma.h | 63 drivers/video/fbdev/omap/lcd_inn1510.c | 9 drivers/video/fbdev/omap/lcd_osk.c | 4 drivers/video/fbdev/omap/lcdc.c | 16 drivers/video/fbdev/omap/lcdc.h | 35 drivers/video/fbdev/omap/omapfb.h | 2 drivers/video/fbdev/omap/omapfb_main.c | 19 drivers/video/fbdev/omap/sossi.c | 9 drivers/video/fbdev/platinumfb.c | 2 drivers/video/fbdev/pm2fb.c | 8 drivers/video/fbdev/pxa3xx-regs.h | 180 drivers/video/fbdev/pxafb.c | 8 drivers/video/fbdev/s3fb.c | 3 drivers/video/fbdev/sh_mobile_lcdcfb.c | 3 drivers/video/fbdev/sis/sis_main.c | 2 drivers/video/fbdev/tridentfb.c | 3 drivers/video/fbdev/udlfb.c | 14 drivers/video/fbdev/valkyriefb.c | 3 drivers/video/fbdev/vt8623fb.c | 3 drivers/video/of_display_timing.c | 2 drivers/virt/Kconfig | 5 drivers/virt/Makefile | 2 drivers/virt/acrn/acrn_drv.h | 10 drivers/virt/acrn/mm.c | 9 drivers/virt/coco/efi_secret/Kconfig | 16 drivers/virt/coco/efi_secret/Makefile | 2 drivers/virt/coco/efi_secret/efi_secret.c | 349 drivers/virt/coco/sevguest/Kconfig | 14 drivers/virt/coco/sevguest/Makefile | 2 drivers/virt/coco/sevguest/sevguest.c | 740 + drivers/virt/coco/sevguest/sevguest.h | 98 drivers/visorbus/Kconfig | 15 drivers/visorbus/Makefile | 10 drivers/visorbus/controlvmchannel.h | 650 - drivers/visorbus/vbuschannel.h | 95 drivers/visorbus/visorbus_main.c | 1234 -- drivers/visorbus/visorbus_private.h | 48 drivers/visorbus/visorchannel.c | 434 drivers/visorbus/visorchipset.c | 1691 --- drivers/watchdog/sa1100_wdt.c | 90 drivers/xen/swiotlb-xen.c | 132 fs/Kconfig.binfmt | 6 fs/afs/security.c | 3 fs/binfmt_flat.c | 239 fs/btrfs/acl.c | 39 fs/btrfs/block-group.c | 197 fs/btrfs/block-group.h | 5 fs/btrfs/btrfs_inode.h | 11 fs/btrfs/check-integrity.c | 170 fs/btrfs/check-integrity.h | 6 fs/btrfs/compression.c | 52 fs/btrfs/compression.h | 4 fs/btrfs/ctree.c | 100 fs/btrfs/ctree.h | 140 fs/btrfs/delalloc-space.c | 9 fs/btrfs/delayed-inode.c | 80 fs/btrfs/dev-replace.c | 59 fs/btrfs/dir-item.c | 31 fs/btrfs/disk-io.c | 119 fs/btrfs/disk-io.h | 7 fs/btrfs/extent-tree.c | 51 fs/btrfs/extent_io.c | 591 - fs/btrfs/extent_io.h | 23 fs/btrfs/file.c | 280 fs/btrfs/free-space-cache.c | 9 fs/btrfs/free-space-tree.c | 2 fs/btrfs/inode.c | 1653 +-- fs/btrfs/ioctl.c | 255 fs/btrfs/props.c | 99 fs/btrfs/props.h | 8 fs/btrfs/qgroup.c | 7 fs/btrfs/qgroup.h | 12 fs/btrfs/raid56.c | 782 - fs/btrfs/raid56.h | 9 fs/btrfs/reflink.c | 23 fs/btrfs/relocation.c | 19 fs/btrfs/root-tree.c | 3 fs/btrfs/scrub.c | 1854 +-- fs/btrfs/send.c | 227 fs/btrfs/space-info.c | 11 fs/btrfs/space-info.h | 8 fs/btrfs/subpage.c | 55 fs/btrfs/subpage.h | 2 fs/btrfs/super.c | 6 fs/btrfs/sysfs.c | 43 fs/btrfs/tests/btrfs-tests.c | 22 fs/btrfs/transaction.c | 4 fs/btrfs/tree-checker.c | 55 fs/btrfs/tree-checker.h | 1 fs/btrfs/tree-log.c | 26 fs/btrfs/volumes.c | 140 fs/btrfs/volumes.h | 49 fs/btrfs/xattr.c | 51 fs/btrfs/zoned.c | 30 fs/btrfs/zoned.h | 16 fs/btrfs/zstd.c | 14 fs/ceph/caps.c | 3 fs/ceph/mds_client.c | 6 fs/cifs/smbdirect.c | 2 fs/crypto/crypto.c | 10 fs/crypto/fname.c | 11 fs/crypto/fscrypt_private.h | 4 fs/crypto/inline_crypt.c | 33 fs/crypto/keysetup.c | 2 fs/direct-io.c | 32 fs/dlm/dir.c | 2 fs/dlm/dlm_internal.h | 66 fs/dlm/lock.c | 620 - fs/dlm/lockspace.c | 12 fs/dlm/lockspace.h | 1 fs/dlm/lowcomms.c | 12 fs/dlm/member.c | 11 fs/dlm/midcomms.c | 61 fs/dlm/plock.c | 178 fs/dlm/rcom.c | 120 fs/dlm/recover.c | 49 fs/dlm/requestqueue.c | 20 fs/dlm/user.c | 16 fs/dlm/util.c | 92 fs/dlm/util.h | 8 fs/exfat/exfat_fs.h | 1 fs/exfat/fatent.c | 41 fs/exfat/file.c | 5 fs/exfat/misc.c | 10 fs/exfat/namei.c | 27 fs/exfat/super.c | 19 fs/ext4/ioctl.c | 10 fs/ext4/mballoc.c | 10 fs/ext4/super.c | 10 fs/f2fs/checkpoint.c | 8 fs/f2fs/f2fs.h | 26 fs/f2fs/file.c | 82 fs/f2fs/gc.c | 82 fs/f2fs/namei.c | 10 fs/f2fs/node.c | 25 fs/f2fs/segment.c | 60 fs/f2fs/segment.h | 3 fs/fat/file.c | 5 fs/fat/inode.c | 10 fs/fsopen.c | 4 fs/fuse/file.c | 9 fs/fuse/inode.c | 5 fs/gfs2/file.c | 7 fs/gfs2/glock.c | 39 fs/gfs2/glock.h | 1 fs/gfs2/inode.c | 7 fs/gfs2/lops.c | 5 fs/gfs2/ops_fstype.c | 14 fs/gfs2/quota.c | 13 fs/gfs2/recovery.c | 22 fs/gfs2/rgrp.c | 7 fs/gfs2/super.c | 3 fs/gfs2/util.c | 5 fs/internal.h | 30 fs/io-wq.h | 1 fs/io_uring.c | 1921 ++- fs/iomap/direct-io.c | 3 fs/jbd2/journal.c | 9 fs/jfs/ioctl.c | 5 fs/jfs/jfs_dmap.c | 3 fs/jfs/super.c | 8 fs/namei.c | 11 fs/namespace.c | 13 fs/nfs/nfs4file.c | 4 fs/nfsd/vfs.c | 10 fs/nilfs2/ioctl.c | 6 fs/nilfs2/sufile.c | 4 fs/nilfs2/the_nilfs.c | 4 fs/ntfs3/file.c | 18 fs/ntfs3/frecord.c | 10 fs/ntfs3/fslog.c | 6 fs/ntfs3/inode.c | 8 fs/ntfs3/super.c | 10 fs/ntfs3/xattr.c | 136 fs/ocfs2/ioctl.c | 5 fs/squashfs/block.c | 20 fs/super.c | 2 fs/ubifs/ubifs.h | 2 fs/xattr.c | 143 fs/xfs/xfs_discard.c | 8 fs/xfs/xfs_log_cil.c | 2 fs/xfs/xfs_super.c | 12 fs/zonefs/Makefile | 2 fs/zonefs/super.c | 227 fs/zonefs/sysfs.c | 139 fs/zonefs/zonefs.h | 18 include/acpi/acbuffer.h | 2 include/acpi/acconfig.h | 2 include/acpi/acexcep.h | 2 include/acpi/acnames.h | 2 include/acpi/acoutput.h | 2 include/acpi/acpi.h | 2 include/acpi/acpi_bus.h | 3 include/acpi/acpiosxf.h | 2 include/acpi/acpixf.h | 4 include/acpi/acrestyp.h | 2 include/acpi/actbl.h | 2 include/acpi/actbl1.h | 18 include/acpi/actbl2.h | 175 include/acpi/actbl3.h | 2 include/acpi/actypes.h | 19 include/acpi/acuuid.h | 2 include/acpi/apei.h | 2 include/acpi/platform/acenv.h | 2 include/acpi/platform/acenvex.h | 2 include/acpi/platform/acgcc.h | 2 include/acpi/platform/acgccex.h | 2 include/acpi/platform/acintel.h | 2 include/acpi/platform/aclinux.h | 2 include/acpi/platform/aclinuxex.h | 2 include/clocksource/timer-goldfish.h | 31 include/crypto/sm4.h | 4 include/drm/bridge/dw_hdmi.h | 11 include/drm/dp/drm_dp_helper.h | 5 include/drm/drm_atomic.h | 27 include/drm/drm_edid.h | 12 include/drm/drm_file.h | 2 include/drm/drm_format_helper.h | 5 include/drm/drm_gem.h | 5 include/drm/drm_mipi_dsi.h | 2 include/drm/drm_modes.h | 2 include/drm/drm_modeset_helper_vtables.h | 2 include/drm/gpu_scheduler.h | 1 include/drm/i915_drm.h | 3 include/drm/i915_pciids.h | 13 include/drm/ttm/ttm_bo_api.h | 64 include/drm/ttm/ttm_bo_driver.h | 40 include/drm/ttm/ttm_device.h | 11 include/drm/ttm/ttm_resource.h | 77 include/drm/ttm/ttm_tt.h | 4 include/dt-bindings/clock/imx8mn-clock.h | 16 include/dt-bindings/clock/imx8mp-clock.h | 4 include/dt-bindings/clock/qcom,gcc-msm8998.h | 4 include/dt-bindings/clock/qcom,lpassaudiocc-sc7280.h | 43 include/dt-bindings/clock/qcom,lpasscorecc-sc7280.h | 26 include/dt-bindings/clock/r9a07g043-cpg.h | 184 include/dt-bindings/clock/tegra234-clock.h | 8 include/dt-bindings/power/qcom-rpmpd.h | 8 include/dt-bindings/reset/amlogic,meson-s4-reset.h | 125 include/dt-bindings/reset/tegra234-reset.h | 2 include/dt-bindings/sound/cs35l45.h | 20 include/keys/system_keyring.h | 14 include/kunit/resource.h | 318 include/kunit/test.h | 387 include/linux/acct.h | 1 include/linux/bio.h | 10 include/linux/bitmap.h | 83 include/linux/blk_types.h | 5 include/linux/blkdev.h | 135 include/linux/bpf.h | 115 include/linux/bpf_local_storage.h | 4 include/linux/can/rx-offload.h | 4 include/linux/cc_platform.h | 18 include/linux/clk/pxa.h | 16 include/linux/compiler-clang.h | 10 include/linux/cper.h | 3 include/linux/cpu.h | 2 include/linux/cpumask.h | 50 include/linux/delayacct.h | 3 include/linux/dma-buf.h | 28 include/linux/dma-resv.h | 235 include/linux/dma/imx-dma.h | 88 include/linux/dmaengine.h | 9 include/linux/dmar.h | 6 include/linux/efi.h | 19 include/linux/elfcore.h | 9 include/linux/energy_model.h | 35 include/linux/ethtool.h | 4 include/linux/extcon.h | 2 include/linux/fb.h | 1 include/linux/find.h | 6 include/linux/firewire.h | 3 include/linux/fpga/fpga-region.h | 7 include/linux/fs.h | 16 include/linux/fscrypt.h | 12 include/linux/ftrace.h | 3 include/linux/fwnode.h | 15 include/linux/goldfish.h | 15 include/linux/gpio/driver.h | 56 include/linux/highmem-internal.h | 10 include/linux/hisi_acc_qm.h | 23 include/linux/hwmon.h | 3 include/linux/icmpv6.h | 11 include/linux/iio/adc/ad_sigma_delta.h | 38 include/linux/iio/adc/qcom-vadc-common.h | 2 include/linux/initrd.h | 2 include/linux/ipc_namespace.h | 37 include/linux/ipmi.h | 5 include/linux/ipmi_smi.h | 6 include/linux/ipv6.h | 1 include/linux/irq.h | 2 include/linux/irqflags.h | 4 include/linux/kallsyms.h | 2 include/linux/kdb.h | 1 include/linux/kvm_host.h | 5 include/linux/libata.h | 3 include/linux/lockdep.h | 4 include/linux/mhi_ep.h | 277 include/linux/mlx5/accel.h | 35 include/linux/mlx5/driver.h | 3 include/linux/mlx5/mlx5_ifc_fpga.h | 211 include/linux/mlx5/port.h | 2 include/linux/mmc/core.h | 2 include/linux/mmc/host.h | 2 include/linux/mmc/sh_mmcif.h | 209 include/linux/mod_devicetable.h | 2 include/linux/module.h | 29 include/linux/mount.h | 29 include/linux/mtd/mtd.h | 6 include/linux/mtd/spinand.h | 1 include/linux/netdevice.h | 92 include/linux/nodemask.h | 40 include/linux/nvmem-consumer.h | 1 include/linux/omap-dma.h | 28 include/linux/oom.h | 4 include/linux/panic.h | 6 include/linux/perf_event.h | 22 include/linux/phy/phy-lvds.h | 32 include/linux/phy/phy.h | 4 include/linux/phylink.h | 6 include/linux/platform_data/asoc-poodle.h | 16 include/linux/platform_data/asoc-pxa.h | 31 include/linux/platform_data/cros_ec_proto.h | 6 include/linux/platform_data/dma-imx.h | 68 include/linux/platform_data/pcmcia-pxa2xx_viper.h | 12 include/linux/platform_data/sh_mmcif.h | 207 include/linux/platform_data/usb-omap1.h | 2 include/linux/platform_data/video-pxafb.h | 22 include/linux/pm.h | 14 include/linux/pm_runtime.h | 10 include/linux/property.h | 12 include/linux/rcupdate.h | 2 include/linux/rcutiny.h | 10 include/linux/rcutree.h | 2 include/linux/reboot.h | 4 include/linux/regulator/mt6358-regulator.h | 45 include/linux/rtnetlink.h | 1 include/linux/sched.h | 41 include/linux/sched/sysctl.h | 41 include/linux/sched/task_stack.h | 2 include/linux/seqlock.h | 8 include/linux/skbuff.h | 52 include/linux/slab.h | 7 include/linux/soc/mediatek/mtk_wed.h | 131 include/linux/soc/pxa/cpu.h | 252 include/linux/soc/pxa/mfp.h | 470 include/linux/soc/pxa/smemc.h | 13 include/linux/soc/ti/omap1-io.h | 143 include/linux/soc/ti/omap1-mux.h | 311 include/linux/soc/ti/omap1-soc.h | 198 include/linux/soc/ti/omap1-usb.h | 116 include/linux/socket.h | 1 include/linux/spinlock.h | 17 include/linux/srcutree.h | 32 include/linux/stackdepot.h | 26 include/linux/sunrpc/cache.h | 8 include/linux/sunrpc/svc.h | 2 include/linux/suspend.h | 44 include/linux/swiotlb.h | 22 include/linux/thermal.h | 3 include/linux/timekeeping.h | 1 include/linux/timer.h | 8 include/linux/timex.h | 8 include/linux/torture.h | 2 include/linux/usb/pd_bdo.h | 2 include/linux/usb/rndis_host.h | 1 include/linux/usb/usbnet.h | 1 include/linux/wm97xx.h | 4 include/linux/workqueue.h | 15 include/linux/writeback.h | 15 include/linux/zstd_lib.h | 4 include/media/dvb-usb-ids.h | 632 - include/memory/renesas-rpc-if.h | 1 include/net/act_api.h | 3 include/net/bluetooth/hci.h | 9 include/net/bluetooth/hci_core.h | 8 include/net/devlink.h | 48 include/net/flow_dissector.h | 9 include/net/if_inet6.h | 8 include/net/ip_fib.h | 4 include/net/mac80211.h | 90 include/net/netfilter/nf_conntrack.h | 8 include/net/page_pool.h | 21 include/net/ping.h | 4 include/net/pkt_cls.h | 6 include/net/rtnetlink.h | 16 include/net/sctp/sctp.h | 2 include/net/sock.h | 12 include/net/strparser.h | 4 include/net/tc_act/tc_gact.h | 15 include/net/tc_act/tc_skbedit.h | 13 include/net/tcp.h | 33 include/net/tls.h | 15 include/net/udp.h | 8 include/pcmcia/soc_common.h | 125 include/rdma/ib_verbs.h | 142 include/rdma/opa_vnic.h | 3 include/scsi/libfcoe.h | 3 include/sound/cs35l41.h | 60 include/sound/hda_codec.h | 3 include/sound/jack.h | 1 include/sound/pxa2xx-lib.h | 4 include/sound/soc-card.h | 7 include/sound/soc-dpcm.h | 2 include/sound/soc.h | 8 include/sound/sof.h | 23 include/target/target_core_backend.h | 4 include/trace/events/f2fs.h | 94 include/trace/events/io_uring.h | 51 include/trace/events/lock.h | 63 include/trace/events/skb.h | 21 include/trace/events/sunrpc.h | 12 include/trace/events/swiotlb.h | 29 include/trace/events/tcp.h | 47 include/trace/events/timer.h | 5 include/uapi/drm/drm_fourcc.h | 47 include/uapi/drm/vmwgfx_drm.h | 9 include/uapi/linux/android/binder.h | 28 include/uapi/linux/btf.h | 4 include/uapi/linux/btrfs_tree.h | 13 include/uapi/linux/devlink.h | 23 include/uapi/linux/ethtool_netlink.h | 1 include/uapi/linux/fb.h | 2 include/uapi/linux/idxd.h | 31 include/uapi/linux/if_link.h | 5 include/uapi/linux/io_uring.h | 21 include/uapi/linux/ipv6.h | 1 include/uapi/linux/kvm.h | 52 include/uapi/linux/neighbour.h | 2 include/uapi/linux/netlink.h | 1 include/uapi/linux/pkt_cls.h | 2 include/uapi/linux/sev-guest.h | 80 include/uapi/linux/spi/spi.h | 3 include/uapi/linux/tc_act/tc_skbedit.h | 2 include/uapi/linux/tipc_config.h | 28 include/uapi/linux/wireless.h | 2 include/uapi/rdma/ib_user_verbs.h | 42 include/uapi/sound/intel/avs/tokens.h | 126 include/xen/arm/page.h | 1 include/xen/swiotlb-xen.h | 8 init/Kconfig | 59 init/do_mounts_initrd.c | 22 ipc/ipc_sysctl.c | 189 ipc/mq_sysctl.c | 121 ipc/mqueue.c | 10 ipc/namespace.c | 10 kernel/Makefile | 5 kernel/acct.c | 22 kernel/bpf/Kconfig | 1 kernel/bpf/bpf_inode_storage.c | 4 kernel/bpf/bpf_iter.c | 32 kernel/bpf/bpf_local_storage.c | 29 kernel/bpf/bpf_struct_ops.c | 4 kernel/bpf/bpf_task_storage.c | 4 kernel/bpf/btf.c | 174 kernel/bpf/cgroup.c | 124 kernel/bpf/hashtab.c | 2 kernel/bpf/stackmap.c | 2 kernel/bpf/syscall.c | 87 kernel/bpf/task_iter.c | 1 kernel/bpf/verifier.c | 137 kernel/configs/x86_debug.config | 18 kernel/cpu.c | 29 kernel/debug/kdb/kdb_io.c | 1 kernel/debug/kdb/kdb_keyboard.c | 1 kernel/debug/kdb/kdb_main.c | 49 kernel/debug/kdb/kdb_private.h | 4 kernel/debug/kdb/kdb_support.c | 1 kernel/delayacct.c | 22 kernel/dma/direct.h | 2 kernel/dma/swiotlb.c | 161 kernel/entry/common.c | 6 kernel/futex/futex.h | 1 kernel/gen_kheaders.sh | 2 kernel/irq/affinity.c | 2 kernel/irq/debugfs.c | 1 kernel/irq/manage.c | 31 kernel/irq/msi.c | 15 kernel/kallsyms.c | 26 kernel/kcsan/kcsan_test.c | 5 kernel/kexec_core.c | 2 kernel/livepatch/core.c | 4 kernel/locking/lockdep.c | 58 kernel/locking/mutex.c | 18 kernel/locking/percpu-rwsem.c | 5 kernel/locking/qrwlock.c | 9 kernel/locking/qspinlock.c | 5 kernel/locking/rtmutex.c | 11 kernel/locking/rwbase_rt.c | 7 kernel/locking/rwsem.c | 130 kernel/locking/semaphore.c | 15 kernel/module-internal.h | 50 kernel/module.c | 4810 --------- kernel/module/Makefile | 20 kernel/module/debug_kmemleak.c | 30 kernel/module/decompress.c | 276 kernel/module/internal.h | 268 kernel/module/kallsyms.c | 512 + kernel/module/kdb.c | 62 kernel/module/livepatch.c | 74 kernel/module/main.c | 3143 ++++++ kernel/module/procfs.c | 146 kernel/module/signing.c | 122 kernel/module/strict_rwx.c | 143 kernel/module/sysfs.c | 436 kernel/module/tree_lookup.c | 117 kernel/module/version.c | 109 kernel/module_decompress.c | 273 kernel/module_signing.c | 45 kernel/panic.c | 26 kernel/power/Makefile | 6 kernel/power/energy_model.c | 63 kernel/power/main.c | 29 kernel/power/process.c | 3 kernel/power/snapshot.c | 12 kernel/rcu/Kconfig | 73 kernel/rcu/Kconfig.debug | 22 kernel/rcu/rcu.h | 30 kernel/rcu/rcu_segcblist.c | 8 kernel/rcu/rcuscale.c | 22 kernel/rcu/rcutorture.c | 288 kernel/rcu/refscale.c | 22 kernel/rcu/srcutree.c | 639 - kernel/rcu/sync.c | 2 kernel/rcu/tasks.h | 174 kernel/rcu/tiny.c | 11 kernel/rcu/tree.c | 262 kernel/rcu/tree.h | 20 kernel/rcu/tree_exp.h | 252 kernel/rcu/tree_nocb.h | 263 kernel/rcu/tree_plugin.h | 34 kernel/rcu/tree_stall.h | 34 kernel/rcu/update.c | 15 kernel/reboot.c | 34 kernel/scftorture.c | 5 kernel/sched/core.c | 81 kernel/sched/deadline.c | 42 kernel/sched/fair.c | 32 kernel/sched/idle.c | 2 kernel/sched/rt.c | 63 kernel/sched/sched.h | 7 kernel/sched/topology.c | 25 kernel/smp.c | 7 kernel/smpboot.c | 7 kernel/sysctl.c | 367 kernel/time/clockevents.c | 9 kernel/time/clocksource.c | 2 kernel/time/timekeeping.c | 27 kernel/time/timer.c | 56 kernel/trace/Kconfig | 1 kernel/trace/bpf_trace.c | 11 kernel/trace/ftrace.c | 22 kernel/trace/trace.c | 14 kernel/trace/trace_preemptirq.c | 4 kernel/usermode_driver.c | 4 kernel/workqueue.c | 38 lib/Kconfig.debug | 144 lib/bitmap.c | 54 lib/crypto/Kconfig | 6 lib/crypto/Makefile | 6 lib/crypto/sm3.c | 246 lib/crypto/sm4.c | 176 lib/irq_poll.c | 8 lib/kunit/Makefile | 1 lib/kunit/kunit-example-test.c | 2 lib/kunit/kunit-test.c | 37 lib/kunit/resource.c | 129 lib/kunit/test.c | 116 lib/list-test.c | 397 lib/slub_kunit.c | 10 lib/stackdepot.c | 67 lib/strncpy_from_user.c | 2 lib/strnlen_user.c | 2 lib/test_bpf.c | 315 lib/test_kasan.c | 2 lib/vsprintf.c | 13 mm/mempolicy.c | 2 mm/oom_kill.c | 38 mm/page-writeback.c | 103 mm/page_alloc.c | 2 mm/page_owner.c | 9 mm/slab.c | 29 mm/slab.h | 5 mm/slab_common.c | 23 mm/slub.c | 174 mm/swapfile.c | 31 mm/usercopy.c | 101 mm/vmstat.c | 4 net/appletalk/ddp.c | 3 net/atm/common.c | 2 net/ax25/af_ax25.c | 3 net/bluetooth/af_bluetooth.c | 3 net/bluetooth/hci_conn.c | 2 net/bluetooth/hci_sock.c | 3 net/bluetooth/hci_sync.c | 31 net/bluetooth/mgmt_util.c | 2 net/bluetooth/sco.c | 23 net/bpf/test_run.c | 5 net/bridge/br_device.c | 1 net/bridge/br_fdb.c | 157 net/bridge/br_mdb.c | 12 net/bridge/br_netlink.c | 9 net/bridge/br_private.h | 18 net/bridge/br_switchdev.c | 3 net/bridge/br_sysfs_br.c | 6 net/caif/caif_socket.c | 2 net/can/bcm.c | 5 net/can/isotp.c | 4 net/can/j1939/socket.c | 2 net/can/raw.c | 6 net/ceph/osd_client.c | 6 net/core/bpf_sk_storage.c | 6 net/core/datagram.c | 5 net/core/dev.c | 53 net/core/dev.h | 91 net/core/dev_addr_lists.c | 2 net/core/dev_ioctl.c | 2 net/core/devlink.c | 653 + net/core/filter.c | 6 net/core/flow_dissector.c | 20 net/core/link_watch.c | 1 net/core/net-procfs.c | 2 net/core/net-sysfs.c | 1 net/core/page_pool.c | 78 net/core/rtnetlink.c | 211 net/core/skbuff.c | 2 net/core/sock.c | 35 net/core/sysctl_net_core.c | 2 net/dccp/dccp.h | 4 net/dccp/proto.c | 6 net/dsa/dsa_priv.h | 28 net/dsa/port.c | 128 net/dsa/slave.c | 31 net/dsa/switch.c | 188 net/dsa/tag_8021q.c | 10 net/ethernet/eth.c | 2 net/ethtool/netlink.h | 2 net/ethtool/rings.c | 54 net/ieee802154/socket.c | 8 net/ipv4/Kconfig | 1 net/ipv4/af_inet.c | 5 net/ipv4/fib_semantics.c | 4 net/ipv4/fib_trie.c | 10 net/ipv4/fou.c | 1 net/ipv4/icmp.c | 75 net/ipv4/ip_forward.c | 13 net/ipv4/ip_input.c | 1 net/ipv4/netfilter/nft_fib_ipv4.c | 4 net/ipv4/ping.c | 38 net/ipv4/raw.c | 4 net/ipv4/route.c | 10 net/ipv4/tcp.c | 27 net/ipv4/tcp_bbr.c | 20 net/ipv4/tcp_bic.c | 14 net/ipv4/tcp_bpf.c | 15 net/ipv4/tcp_cdg.c | 30 net/ipv4/tcp_cong.c | 30 net/ipv4/tcp_cubic.c | 22 net/ipv4/tcp_dctcp.c | 11 net/ipv4/tcp_highspeed.c | 18 net/ipv4/tcp_htcp.c | 10 net/ipv4/tcp_hybla.c | 18 net/ipv4/tcp_illinois.c | 12 net/ipv4/tcp_input.c | 166 net/ipv4/tcp_ipv4.c | 2 net/ipv4/tcp_lp.c | 6 net/ipv4/tcp_metrics.c | 12 net/ipv4/tcp_nv.c | 24 net/ipv4/tcp_output.c | 30 net/ipv4/tcp_rate.c | 2 net/ipv4/tcp_scalable.c | 4 net/ipv4/tcp_vegas.c | 21 net/ipv4/tcp_veno.c | 24 net/ipv4/tcp_westwood.c | 3 net/ipv4/tcp_yeah.c | 30 net/ipv4/udp.c | 11 net/ipv4/udp_bpf.c | 17 net/ipv4/udp_impl.h | 4 net/ipv6/addrconf.c | 40 net/ipv6/af_inet6.c | 5 net/ipv6/exthdrs.c | 44 net/ipv6/icmp.c | 31 net/ipv6/ip6_input.c | 41 net/ipv6/ip6_output.c | 9 net/ipv6/ip6_tunnel.c | 2 net/ipv6/ndisc.c | 20 net/ipv6/netfilter/nft_fib_ipv6.c | 4 net/ipv6/raw.c | 4 net/ipv6/route.c | 6 net/ipv6/tcp_ipv6.c | 2 net/ipv6/udp.c | 4 net/ipv6/udp_impl.h | 4 net/iucv/af_iucv.c | 3 net/key/af_key.c | 2 net/l2tp/l2tp_ip.c | 4 net/l2tp/l2tp_ip6.c | 4 net/l2tp/l2tp_ppp.c | 3 net/mac80211/agg-rx.c | 12 net/mac80211/agg-tx.c | 6 net/mac80211/airtime.c | 4 net/mac80211/cfg.c | 33 net/mac80211/chan.c | 8 net/mac80211/debugfs.c | 1 net/mac80211/debugfs_sta.c | 12 net/mac80211/eht.c | 6 net/mac80211/ethtool.c | 4 net/mac80211/he.c | 8 net/mac80211/ht.c | 8 net/mac80211/ibss.c | 26 net/mac80211/key.c | 9 net/mac80211/mesh_hwmp.c | 2 net/mac80211/mesh_plink.c | 24 net/mac80211/mlme.c | 18 net/mac80211/ocb.c | 2 net/mac80211/rate.c | 8 net/mac80211/rc80211_minstrel_ht.c | 23 net/mac80211/rx.c | 131 net/mac80211/s1g.c | 4 net/mac80211/sta_info.c | 110 net/mac80211/sta_info.h | 155 net/mac80211/status.c | 41 net/mac80211/tdls.c | 26 net/mac80211/trace.h | 4 net/mac80211/tx.c | 26 net/mac80211/vht.c | 78 net/mctp/af_mctp.c | 2 net/mctp/test/route-test.c | 12 net/mpls/af_mpls.c | 3 net/mptcp/mptcp_diag.c | 105 net/mptcp/pm.c | 19 net/mptcp/pm_netlink.c | 43 net/mptcp/protocol.c | 22 net/mptcp/protocol.h | 1 net/mptcp/sockopt.c | 6 net/netfilter/nf_conntrack_bpf.c | 22 net/netfilter/nf_conntrack_ecache.c | 19 net/netfilter/nf_conntrack_netlink.c | 68 net/netfilter/nf_log_syslog.c | 136 net/netfilter/nf_tables_api.c | 6 net/netfilter/nfnetlink_cttimeout.c | 14 net/netfilter/nft_bitwise.c | 13 net/netfilter/nft_fib.c | 4 net/netlink/af_netlink.c | 3 net/netrom/af_netrom.c | 3 net/nfc/core.c | 1 net/nfc/llcp_sock.c | 3 net/nfc/rawsock.c | 3 net/packet/af_packet.c | 2 net/phonet/datagram.c | 4 net/phonet/pep.c | 7 net/qrtr/af_qrtr.c | 3 net/rds/ib.c | 4 net/rose/af_rose.c | 3 net/sched/act_api.c | 4 net/sched/act_csum.c | 3 net/sched/act_ct.c | 3 net/sched/act_gact.c | 13 net/sched/act_gate.c | 3 net/sched/act_mirred.c | 4 net/sched/act_mpls.c | 10 net/sched/act_pedit.c | 4 net/sched/act_police.c | 20 net/sched/act_sample.c | 3 net/sched/act_skbedit.c | 65 net/sched/act_tunnel_key.c | 4 net/sched/act_vlan.c | 4 net/sched/cls_api.c | 22 net/sched/cls_flower.c | 104 net/sched/cls_matchall.c | 19 net/sched/sch_generic.c | 12 net/sctp/socket.c | 16 net/sctp/ulpevent.c | 2 net/socket.c | 52 net/sunrpc/cache.c | 18 net/sunrpc/debugfs.c | 3 net/sunrpc/fail.h | 2 net/sunrpc/svc_xprt.c | 10 net/sunrpc/svcsock.c | 13 net/sunrpc/xprtrdma/frwr_ops.c | 2 net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 1 net/sunrpc/xprtsock.c | 2 net/tls/tls_device.c | 6 net/tls/tls_sw.c | 479 net/unix/af_unix.c | 11 net/unix/unix_bpf.c | 5 net/vmw_vsock/vmci_transport.c | 5 net/wireless/nl80211.c | 1 net/x25/af_x25.c | 3 net/xdp/xsk.c | 6 net/xdp/xsk_queue.h | 4 net/xfrm/espintcp.c | 4 rust/.gitignore | 8 rust/Makefile | 376 rust/alloc/README.md | 32 rust/alloc/alloc.rs | 440 rust/alloc/borrow.rs | 498 + rust/alloc/boxed.rs | 2008 ++++ rust/alloc/collections/mod.rs | 156 rust/alloc/fmt.rs | 601 + rust/alloc/lib.rs | 231 rust/alloc/macros.rs | 126 rust/alloc/raw_vec.rs | 561 + rust/alloc/slice.rs | 1279 ++ rust/alloc/str.rs | 632 + rust/alloc/string.rs | 2862 +++++ rust/alloc/vec/drain.rs | 186 rust/alloc/vec/drain_filter.rs | 145 rust/alloc/vec/into_iter.rs | 356 rust/alloc/vec/is_zero.rs | 106 rust/alloc/vec/mod.rs | 3353 ++++++ rust/alloc/vec/partial_eq.rs | 49 rust/alloc/vec/set_len_on_drop.rs | 30 rust/alloc/vec/spec_extend.rs | 174 rust/bindgen_parameters | 13 rust/build_error.rs | 29 rust/compiler_builtins.rs | 57 rust/exports.c | 20 rust/helpers.c | 531 + rust/kernel/allocator.rs | 65 rust/kernel/amba.rs | 259 rust/kernel/bindings.rs | 47 rust/kernel/bindings_helper.h | 37 rust/kernel/build_assert.rs | 80 rust/kernel/c_types.rs | 119 rust/kernel/chrdev.rs | 207 rust/kernel/clk.rs | 75 rust/kernel/cred.rs | 73 rust/kernel/device.rs | 554 + rust/kernel/driver.rs | 440 rust/kernel/error.rs | 560 + rust/kernel/file.rs | 873 + rust/kernel/gpio.rs | 478 rust/kernel/hwrng.rs | 242 rust/kernel/io_buffer.rs | 153 rust/kernel/io_mem.rs | 237 rust/kernel/iov_iter.rs | 81 rust/kernel/irq.rs | 409 rust/kernel/lib.rs | 260 rust/kernel/linked_list.rs | 247 rust/kernel/miscdev.rs | 291 rust/kernel/mm.rs | 149 rust/kernel/module_param.rs | 498 + rust/kernel/of.rs | 63 rust/kernel/pages.rs | 144 rust/kernel/platform.rs | 224 rust/kernel/power.rs | 118 rust/kernel/prelude.rs | 36 rust/kernel/print.rs | 414 rust/kernel/random.rs | 42 rust/kernel/raw_list.rs | 361 rust/kernel/rbtree.rs | 562 + rust/kernel/revocable.rs | 163 rust/kernel/security.rs | 36 rust/kernel/static_assert.rs | 39 rust/kernel/std_vendor.rs | 150 rust/kernel/str.rs | 592 + rust/kernel/sync/arc.rs | 500 + rust/kernel/sync/condvar.rs | 138 rust/kernel/sync/guard.rs | 166 rust/kernel/sync/locked_by.rs | 112 rust/kernel/sync/mod.rs | 157 rust/kernel/sync/mutex.rs | 114 rust/kernel/sync/revocable_mutex.rs | 184 rust/kernel/sync/rwsem.rs | 149 rust/kernel/sync/seqlock.rs | 202 rust/kernel/sync/spinlock.rs | 192 rust/kernel/sysctl.rs | 199 rust/kernel/task.rs | 182 rust/kernel/types.rs | 569 + rust/kernel/user_ptr.rs | 175 rust/macros/helpers.rs | 79 rust/macros/lib.rs | 94 rust/macros/module.rs | 631 + samples/Kconfig | 2 samples/Makefile | 1 samples/bpf/Makefile | 10 samples/bpf/cpustat_user.c | 1 samples/bpf/hbm.c | 5 samples/bpf/ibumad_user.c | 1 samples/bpf/map_perf_test_user.c | 1 samples/bpf/offwaketime_user.c | 1 samples/bpf/sockex2_user.c | 1 samples/bpf/sockex3_user.c | 1 samples/bpf/spintest_user.c | 1 samples/bpf/syscall_tp_user.c | 4 samples/bpf/task_fd_query_user.c | 1 samples/bpf/test_lru_dist.c | 1 samples/bpf/test_map_in_map_user.c | 1 samples/bpf/test_overhead_user.c | 1 samples/bpf/tracex2_user.c | 1 samples/bpf/tracex3_user.c | 1 samples/bpf/tracex4_user.c | 1 samples/bpf/tracex5_user.c | 1 samples/bpf/tracex6_user.c | 1 samples/bpf/xdp1_user.c | 3 samples/bpf/xdp_adjust_tail_user.c | 1 samples/bpf/xdp_monitor_user.c | 1 samples/bpf/xdp_redirect_cpu_user.c | 1 samples/bpf/xdp_redirect_map_multi_user.c | 1 samples/bpf/xdp_redirect_user.c | 1 samples/bpf/xdp_router_ipv4.bpf.c | 180 samples/bpf/xdp_router_ipv4_kern.c | 186 samples/bpf/xdp_router_ipv4_user.c | 456 samples/bpf/xdp_rxq_info_user.c | 1 samples/bpf/xdp_sample_pkts_user.c | 1 samples/bpf/xdp_sample_user.c | 1 samples/bpf/xdp_tx_iptunnel_user.c | 1 samples/bpf/xdpsock_user.c | 9 samples/bpf/xsk_fwd.c | 7 samples/rust/Kconfig | 130 samples/rust/Makefile | 15 samples/rust/hostprogs/.gitignore | 3 samples/rust/hostprogs/Makefile | 5 samples/rust/hostprogs/a.rs | 7 samples/rust/hostprogs/b.rs | 5 samples/rust/hostprogs/single.rs | 12 samples/rust/rust_chrdev.rs | 50 samples/rust/rust_minimal.rs | 35 samples/rust/rust_miscdev.rs | 143 samples/rust/rust_module_parameters.rs | 69 samples/rust/rust_platform.rs | 22 samples/rust/rust_print.rs | 54 samples/rust/rust_random.rs | 60 samples/rust/rust_semaphore.rs | 171 samples/rust/rust_semaphore_c.c | 212 samples/rust/rust_stack_probing.rs | 36 samples/rust/rust_sync.rs | 93 scripts/.gitignore | 1 scripts/Kconfig.include | 6 scripts/Makefile | 7 scripts/Makefile.build | 152 scripts/Makefile.debug | 10 scripts/Makefile.extrawarn | 13 scripts/Makefile.host | 34 scripts/Makefile.lib | 18 scripts/Makefile.modfinal | 8 scripts/adjust_autoksyms.sh | 2 scripts/cc-version.sh | 12 scripts/check-blacklist-hashes.awk | 37 scripts/decode_stacktrace.sh | 14 scripts/dummy-tools/pahole | 4 scripts/gcc-plugins/randomize_layout_plugin.c | 2 scripts/gen_autoksyms.sh | 18 scripts/generate_rust_analyzer.py | 133 scripts/generate_rust_target.rs | 227 scripts/is_rust_module.sh | 13 scripts/kallsyms.c | 40 scripts/kconfig/confdata.c | 75 scripts/kconfig/gconf-cfg.sh | 12 scripts/kconfig/mconf-cfg.sh | 16 scripts/kconfig/nconf-cfg.sh | 16 scripts/kconfig/qconf-cfg.sh | 14 scripts/link-vmlinux.sh | 8 scripts/min-tool-version.sh | 6 scripts/mod/file2alias.c | 10 scripts/mod/modpost.c | 49 scripts/mod/modpost.h | 4 scripts/mod/sumversion.c | 11 scripts/rust-is-available-bindgen-libclang.h | 2 scripts/rust-is-available.sh | 158 security/Kconfig | 13 security/apparmor/Kconfig | 86 security/apparmor/apparmorfs.c | 101 security/apparmor/audit.c | 2 security/apparmor/include/apparmor.h | 1 security/apparmor/include/apparmorfs.h | 14 security/apparmor/include/lib.h | 5 security/apparmor/label.c | 17 security/apparmor/lib.c | 2 security/apparmor/lsm.c | 23 security/apparmor/mount.c | 11 security/apparmor/policy.c | 35 security/apparmor/policy_unpack.c | 37 security/apparmor/policy_unpack_test.c | 34 security/apparmor/procattr.c | 2 security/integrity/ima/ima_main.c | 2 security/integrity/platform_certs/keyring_handler.c | 26 security/security.c | 9 security/selinux/avc.c | 4 security/selinux/hooks.c | 5 security/selinux/include/security.h | 4 security/selinux/selinuxfs.c | 8 security/selinux/ss/services.c | 1 security/smack/smackfs.c | 2 sound/arm/pxa2xx-ac97-lib.c | 145 sound/arm/pxa2xx-ac97-regs.h | 100 sound/arm/pxa2xx-ac97.c | 3 sound/core/jack.c | 34 sound/pci/echoaudio/midi.c | 1 sound/pci/emu10k1/emu10k1_main.c | 5 sound/pci/hda/cs35l41_hda.c | 295 sound/pci/hda/cs35l41_hda.h | 27 sound/pci/hda/hda_codec.c | 11 sound/pci/hda/hda_tegra.c | 2 sound/soc/Kconfig | 9 sound/soc/Makefile | 5 sound/soc/amd/acp-da7219-max98357a.c | 4 sound/soc/amd/acp-rt5645.c | 2 sound/soc/amd/acp/acp-legacy-mach.c | 1 sound/soc/amd/acp/acp-mach-common.c | 4 sound/soc/amd/acp/acp-sof-mach.c | 1 sound/soc/amd/acp3x-rt5682-max9836.c | 2 sound/soc/amd/vangogh/acp5x-mach.c | 8 sound/soc/amd/yc/acp6x-mach.c | 42 sound/soc/amd/yc/pci-acp6x.c | 9 sound/soc/atmel/Kconfig | 4 sound/soc/atmel/sam9g20_wm8731.c | 14 sound/soc/au1x/Kconfig | 2 sound/soc/codecs/Kconfig | 53 sound/soc/codecs/Makefile | 14 sound/soc/codecs/ad193x-i2c.c | 6 sound/soc/codecs/adau1372-i2c.c | 4 sound/soc/codecs/adau1373.c | 5 sound/soc/codecs/adau1701.c | 5 sound/soc/codecs/adau1761-i2c.c | 8 sound/soc/codecs/adau1781-i2c.c | 8 sound/soc/codecs/adau1977-i2c.c | 8 sound/soc/codecs/adau7118-i2c.c | 5 sound/soc/codecs/adav803.c | 5 sound/soc/codecs/ak4118.c | 5 sound/soc/codecs/ak4535.c | 5 sound/soc/codecs/ak4613.c | 367 sound/soc/codecs/ak4641.c | 5 sound/soc/codecs/ak4671.c | 5 sound/soc/codecs/cs35l32.c | 5 sound/soc/codecs/cs35l33.c | 5 sound/soc/codecs/cs35l34.c | 5 sound/soc/codecs/cs35l35.c | 5 sound/soc/codecs/cs35l36.c | 5 sound/soc/codecs/cs35l41-i2c.c | 9 sound/soc/codecs/cs35l41-lib.c | 208 sound/soc/codecs/cs35l41-spi.c | 4 sound/soc/codecs/cs35l41.c | 164 sound/soc/codecs/cs35l41.h | 5 sound/soc/codecs/cs35l45-i2c.c | 74 sound/soc/codecs/cs35l45-spi.c | 74 sound/soc/codecs/cs35l45-tables.c | 202 sound/soc/codecs/cs35l45.c | 694 + sound/soc/codecs/cs35l45.h | 217 sound/soc/codecs/cs4234.c | 4 sound/soc/codecs/cs4265.c | 5 sound/soc/codecs/cs4270.c | 5 sound/soc/codecs/cs4271-i2c.c | 5 sound/soc/codecs/cs42l42.c | 5 sound/soc/codecs/cs42l51-i2c.c | 5 sound/soc/codecs/cs42l52.c | 5 sound/soc/codecs/cs42l56.c | 5 sound/soc/codecs/cs42l73.c | 5 sound/soc/codecs/cs42xx8-i2c.c | 5 sound/soc/codecs/cs43130.c | 7 sound/soc/codecs/cs4341.c | 5 sound/soc/codecs/cs4349.c | 5 sound/soc/codecs/cs53l30.c | 5 sound/soc/codecs/cx2072x.c | 5 sound/soc/codecs/da7210.c | 5 sound/soc/codecs/da7213.c | 5 sound/soc/codecs/da7218.c | 19 sound/soc/codecs/da7219.c | 19 sound/soc/codecs/da732x.c | 5 sound/soc/codecs/da9055.c | 5 sound/soc/codecs/dmic.c | 5 sound/soc/codecs/es8316.c | 5 sound/soc/codecs/es8328-i2c.c | 5 sound/soc/codecs/isabelle.c | 5 sound/soc/codecs/lm4857.c | 5 sound/soc/codecs/lm49453.c | 5 sound/soc/codecs/lpass-macro-common.c | 35 sound/soc/codecs/max9768.c | 5 sound/soc/codecs/max98371.c | 5 sound/soc/codecs/max98373-i2c.c | 5 sound/soc/codecs/max98390.c | 17 sound/soc/codecs/max9850.c | 5 sound/soc/codecs/max98504.c | 5 sound/soc/codecs/max98520.c | 4 sound/soc/codecs/max9867.c | 5 sound/soc/codecs/max9877.c | 5 sound/soc/codecs/max98925.c | 5 sound/soc/codecs/max98926.c | 5 sound/soc/codecs/max98927.c | 5 sound/soc/codecs/ml26124.c | 5 sound/soc/codecs/mt6660.c | 5 sound/soc/codecs/nau8540.c | 5 sound/soc/codecs/nau8810.c | 5 sound/soc/codecs/nau8821.c | 5 sound/soc/codecs/nau8822.c | 5 sound/soc/codecs/nau8824.c | 5 sound/soc/codecs/nau8825.c | 5 sound/soc/codecs/pcm1681.c | 5 sound/soc/codecs/pcm1789-i2c.c | 5 sound/soc/codecs/pcm179x-i2c.c | 5 sound/soc/codecs/pcm3060-i2c.c | 5 sound/soc/codecs/pcm3168a-i2c.c | 5 sound/soc/codecs/pcm512x-i2c.c | 5 sound/soc/codecs/rt1011.c | 5 sound/soc/codecs/rt1015.c | 5 sound/soc/codecs/rt1016.c | 5 sound/soc/codecs/rt1019.c | 5 sound/soc/codecs/rt1305.c | 5 sound/soc/codecs/rt1308.c | 5 sound/soc/codecs/rt274.c | 5 sound/soc/codecs/rt286.c | 5 sound/soc/codecs/rt298.c | 5 sound/soc/codecs/rt5514.c | 5 sound/soc/codecs/rt5616.c | 5 sound/soc/codecs/rt5631.c | 5 sound/soc/codecs/rt5640.c | 5 sound/soc/codecs/rt5645.c | 5 sound/soc/codecs/rt5651.c | 5 sound/soc/codecs/rt5659.c | 5 sound/soc/codecs/rt5660.c | 5 sound/soc/codecs/rt5663.c | 5 sound/soc/codecs/rt5665.c | 5 sound/soc/codecs/rt5668.c | 5 sound/soc/codecs/rt5670.c | 5 sound/soc/codecs/rt5682-i2c.c | 5 sound/soc/codecs/rt5682s.c | 32 sound/soc/codecs/rt5682s.h | 6 sound/soc/codecs/sgtl5000.c | 5 sound/soc/codecs/ssm2518.c | 5 sound/soc/codecs/ssm2602-i2c.c | 8 sound/soc/codecs/ssm4567.c | 5 sound/soc/codecs/sta32x.c | 5 sound/soc/codecs/sta350.c | 5 sound/soc/codecs/sta529.c | 5 sound/soc/codecs/tas2552.c | 5 sound/soc/codecs/tas2764.c | 5 sound/soc/codecs/tas2770.c | 5 sound/soc/codecs/tas5086.c | 5 sound/soc/codecs/tas6424.c | 5 sound/soc/codecs/tda7419.c | 5 sound/soc/codecs/tlv320adcx140.c | 5 sound/soc/codecs/tlv320aic23-i2c.c | 5 sound/soc/codecs/tlv320dac33.c | 5 sound/soc/codecs/ts3a227e.c | 5 sound/soc/codecs/tscs42xx.c | 5 sound/soc/codecs/tscs454.c | 5 sound/soc/codecs/uda1380.c | 5 sound/soc/codecs/wm1250-ev1.c | 5 sound/soc/codecs/wm2000.c | 5 sound/soc/codecs/wm2200.c | 5 sound/soc/codecs/wm5100.c | 5 sound/soc/codecs/wm8510.c | 5 sound/soc/codecs/wm8523.c | 5 sound/soc/codecs/wm8580.c | 5 sound/soc/codecs/wm8711.c | 5 sound/soc/codecs/wm8728.c | 5 sound/soc/codecs/wm8731-i2c.c | 68 sound/soc/codecs/wm8731-spi.c | 59 sound/soc/codecs/wm8731.c | 109 sound/soc/codecs/wm8731.h | 27 sound/soc/codecs/wm8737.c | 5 sound/soc/codecs/wm8741.c | 5 sound/soc/codecs/wm8750.c | 5 sound/soc/codecs/wm8753.c | 5 sound/soc/codecs/wm8776.c | 5 sound/soc/codecs/wm8804-i2c.c | 5 sound/soc/codecs/wm8900.c | 5 sound/soc/codecs/wm8903.c | 5 sound/soc/codecs/wm8904.c | 9 sound/soc/codecs/wm8940.c | 5 sound/soc/codecs/wm8955.c | 5 sound/soc/codecs/wm8958-dsp2.c | 8 sound/soc/codecs/wm8960.c | 5 sound/soc/codecs/wm8961.c | 5 sound/soc/codecs/wm8962.c | 11 sound/soc/codecs/wm8971.c | 5 sound/soc/codecs/wm8974.c | 5 sound/soc/codecs/wm8978.c | 5 sound/soc/codecs/wm8983.c | 5 sound/soc/codecs/wm8985.c | 8 sound/soc/codecs/wm8988.c | 5 sound/soc/codecs/wm8990.c | 5 sound/soc/codecs/wm8991.c | 5 sound/soc/codecs/wm8993.c | 5 sound/soc/codecs/wm8995.c | 5 sound/soc/codecs/wm8996.c | 5 sound/soc/codecs/wm9081.c | 5 sound/soc/codecs/wm9090.c | 5 sound/soc/codecs/wm_adsp.c | 10 sound/soc/fsl/fsl_asrc.c | 2 sound/soc/fsl/fsl_asrc_dma.c | 2 sound/soc/fsl/fsl_easrc.h | 2 sound/soc/fsl/fsl_esai.c | 6 sound/soc/fsl/fsl_micfil.c | 369 sound/soc/fsl/fsl_micfil.h | 271 sound/soc/fsl/imx-es8328.c | 2 sound/soc/fsl/imx-hdmi.c | 5 sound/soc/fsl/imx-pcm.h | 2 sound/soc/fsl/imx-ssi.h | 2 sound/soc/generic/audio-graph-card2.c | 5 sound/soc/generic/simple-card-utils.c | 7 sound/soc/intel/Kconfig | 2 sound/soc/intel/atom/sst/sst.c | 1 sound/soc/intel/avs/Makefile | 3 sound/soc/intel/avs/avs.h | 23 sound/soc/intel/avs/path.c | 1005 ++ sound/soc/intel/avs/path.h | 72 sound/soc/intel/avs/topology.c | 1600 +++ sound/soc/intel/avs/topology.h | 194 sound/soc/intel/boards/bdw-rt5650.c | 6 sound/soc/intel/boards/bdw-rt5677.c | 4 sound/soc/intel/boards/broadwell.c | 2 sound/soc/intel/boards/bxt_da7219_max98357a.c | 5 sound/soc/intel/boards/bxt_rt298.c | 5 sound/soc/intel/boards/bytcht_cx2072x.c | 10 sound/soc/intel/boards/bytcht_es8316.c | 8 sound/soc/intel/boards/bytcr_rt5640.c | 24 sound/soc/intel/boards/bytcr_rt5651.c | 7 sound/soc/intel/boards/bytcr_wm5102.c | 6 sound/soc/intel/boards/cht_bsw_max98090_ti.c | 28 sound/soc/intel/boards/cht_bsw_nau8824.c | 4 sound/soc/intel/boards/cht_bsw_rt5645.c | 6 sound/soc/intel/boards/cht_bsw_rt5672.c | 12 sound/soc/intel/boards/cml_rt1011_rt5682.c | 5 sound/soc/intel/boards/glk_rt5682_max98357a.c | 5 sound/soc/intel/boards/kbl_da7219_max98357a.c | 5 sound/soc/intel/boards/kbl_da7219_max98927.c | 5 sound/soc/intel/boards/kbl_rt5660.c | 15 sound/soc/intel/boards/kbl_rt5663_max98927.c | 7 sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 7 sound/soc/intel/boards/skl_hda_dsp_common.c | 8 sound/soc/intel/boards/skl_nau88l25_max98357a.c | 6 sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 6 sound/soc/intel/boards/skl_rt286.c | 5 sound/soc/intel/boards/sof_cs42l42.c | 5 sound/soc/intel/boards/sof_da7219_max98373.c | 2 sound/soc/intel/boards/sof_es8336.c | 8 sound/soc/intel/boards/sof_nau8825.c | 2 sound/soc/intel/boards/sof_rt5682.c | 5 sound/soc/intel/boards/sof_sdw_rt5682.c | 14 sound/soc/intel/boards/sof_sdw_rt700.c | 14 sound/soc/intel/boards/sof_sdw_rt711.c | 14 sound/soc/intel/boards/sof_sdw_rt711_sdca.c | 14 sound/soc/intel/boards/sof_ssp_amp.c | 6 sound/soc/intel/catpt/messages.h | 4 sound/soc/mediatek/Kconfig | 27 sound/soc/mediatek/mt2701/mt2701-wm8960.c | 9 sound/soc/mediatek/mt8173/mt8173-max98090.c | 13 sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 sound/soc/mediatek/mt8173/mt8173-rt5650.c | 4 sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 5 sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c | 5 sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 201 sound/soc/mediatek/mt8195/Makefile | 3 sound/soc/mediatek/mt8195/mt8195-mt6359-rt1011-rt5682.c | 1198 -- sound/soc/mediatek/mt8195/mt8195-mt6359-rt1019-rt5682.c | 1440 -- sound/soc/mediatek/mt8195/mt8195-mt6359.c | 1685 +++ sound/soc/meson/aiu-acodec-ctrl.c | 2 sound/soc/meson/aiu-codec-ctrl.c | 2 sound/soc/meson/axg-card.c | 1 sound/soc/meson/axg-tdm-interface.c | 26 sound/soc/meson/g12a-tohdmitx.c | 2 sound/soc/pxa/Kconfig | 4 sound/soc/pxa/corgi.c | 43 sound/soc/pxa/e740_wm9705.c | 37 sound/soc/pxa/e750_wm9705.c | 33 sound/soc/pxa/e800_wm9712.c | 33 sound/soc/pxa/em-x270.c | 2 sound/soc/pxa/hx4700.c | 40 sound/soc/pxa/magician.c | 143 sound/soc/pxa/mioa701_wm9713.c | 2 sound/soc/pxa/palm27x.c | 9 sound/soc/pxa/poodle.c | 51 sound/soc/pxa/pxa2xx-ac97.c | 24 sound/soc/pxa/pxa2xx-i2s.c | 112 sound/soc/pxa/spitz.c | 58 sound/soc/pxa/tosa.c | 18 sound/soc/pxa/ttc-dkb.c | 14 sound/soc/pxa/z2.c | 15 sound/soc/qcom/Kconfig | 2 sound/soc/qcom/apq8016_sbc.c | 2 sound/soc/qcom/lpass-platform.c | 2 sound/soc/qcom/sc7180.c | 4 sound/soc/qcom/sc7280.c | 111 sound/soc/qcom/sdm845.c | 2 sound/soc/qcom/sm8250.c | 2 sound/soc/rockchip/rk3288_hdmi_analog.c | 8 sound/soc/rockchip/rk3399_gru_sound.c | 16 sound/soc/rockchip/rockchip_max98090.c | 16 sound/soc/rockchip/rockchip_rt5645.c | 2 sound/soc/samsung/aries_wm8994.c | 4 sound/soc/samsung/bells.c | 4 sound/soc/samsung/h1940_uda1380.c | 3 sound/soc/samsung/littlemill.c | 6 sound/soc/samsung/lowland.c | 13 sound/soc/samsung/midas_wm1811.c | 2 sound/soc/samsung/rx1950_uda1380.c | 3 sound/soc/samsung/smartq_wm8987.c | 8 sound/soc/samsung/speyside.c | 14 sound/soc/samsung/tobermory.c | 12 sound/soc/sh/rcar/core.c | 17 sound/soc/sh/rcar/dma.c | 9 sound/soc/sh/rcar/rsnd.h | 2 sound/soc/sh/rcar/src.c | 7 sound/soc/sh/rcar/ssi.c | 14 sound/soc/sh/rcar/ssiu.c | 11 sound/soc/soc-card.c | 56 sound/soc/soc-core.c | 80 sound/soc/soc-jack.c | 2 sound/soc/soc-ops.c | 2 sound/soc/soc-pcm.c | 38 sound/soc/soc-topology.c | 453 sound/soc/soc-utils-test.c | 186 sound/soc/soc-utils.c | 45 sound/soc/sof/amd/acp.c | 66 sound/soc/sof/amd/acp.h | 8 sound/soc/sof/amd/pci-rn.c | 14 sound/soc/sof/amd/renoir.c | 2 sound/soc/sof/compress.c | 8 sound/soc/sof/control.c | 33 sound/soc/sof/core.c | 6 sound/soc/sof/debug.c | 4 sound/soc/sof/imx/imx8.c | 32 sound/soc/sof/imx/imx8m.c | 16 sound/soc/sof/intel/Kconfig | 2 sound/soc/sof/intel/Makefile | 2 sound/soc/sof/intel/apl.c | 109 sound/soc/sof/intel/bdw.c | 17 sound/soc/sof/intel/byt.c | 48 sound/soc/sof/intel/cnl.c | 114 sound/soc/sof/intel/hda-common-ops.c | 107 sound/soc/sof/intel/hda-dsp.c | 8 sound/soc/sof/intel/hda-loader.c | 47 sound/soc/sof/intel/hda.c | 23 sound/soc/sof/intel/hda.h | 30 sound/soc/sof/intel/icl.c | 113 sound/soc/sof/intel/pci-apl.c | 36 sound/soc/sof/intel/pci-cnl.c | 54 sound/soc/sof/intel/pci-icl.c | 36 sound/soc/sof/intel/pci-tgl.c | 91 sound/soc/sof/intel/pci-tng.c | 23 sound/soc/sof/intel/shim.h | 16 sound/soc/sof/intel/tgl.c | 128 sound/soc/sof/ipc.c | 894 - sound/soc/sof/ipc3-control.c | 131 sound/soc/sof/ipc3-pcm.c | 8 sound/soc/sof/ipc3-topology.c | 26 sound/soc/sof/ipc3.c | 682 + sound/soc/sof/mediatek/mt8195/mt8195.c | 23 sound/soc/sof/ops.h | 8 sound/soc/sof/pcm.c | 7 sound/soc/sof/pm.c | 20 sound/soc/sof/sof-acpi-dev.c | 6 sound/soc/sof/sof-audio.c | 60 sound/soc/sof/sof-audio.h | 8 sound/soc/sof/sof-client-probes.c | 9 sound/soc/sof/sof-client.c | 2 sound/soc/sof/sof-of-dev.c | 12 sound/soc/sof/sof-of-dev.h | 1 sound/soc/sof/sof-pci-dev.c | 47 sound/soc/sof/sof-priv.h | 55 sound/soc/sof/topology.c | 24 sound/soc/sof/trace.c | 61 sound/soc/tegra/Kconfig | 12 sound/soc/tegra/Makefile | 2 sound/soc/tegra/tegra186_asrc.c | 1046 ++ sound/soc/tegra/tegra186_asrc.h | 112 sound/soc/tegra/tegra210_ahub.c | 82 sound/soc/tegra/tegra_asoc_machine.c | 30 sound/soc/tegra/tegra_wm8903.c | 10 sound/soc/ti/ams-delta.c | 4 sound/soc/ti/omap-abe-twl6040.c | 8 sound/soc/ti/omap-twl4030.c | 8 sound/soc/ti/osk5912.c | 4 sound/soc/ti/rx51.c | 2 sound/usb/implicit.c | 10 sound/usb/quirks.c | 6 sound/usb/usbaudio.h | 6 tools/Makefile | 4 tools/arch/h8300/include/asm/bitsperlong.h | 15 tools/arch/h8300/include/uapi/asm/mman.h | 7 tools/arch/x86/include/asm/disabled-features.h | 8 tools/bpf/bpftool/common.c | 8 tools/bpf/bpftool/feature.c | 4 tools/bpf/bpftool/link.c | 3 tools/bpf/bpftool/main.c | 6 tools/bpf/bpftool/main.h | 2 tools/bpf/bpftool/map.c | 2 tools/bpf/bpftool/pids.c | 1 tools/bpf/bpftool/prog.c | 4 tools/bpf/bpftool/struct_ops.c | 2 tools/bpf/runqslower/runqslower.c | 18 tools/certs/print-cert-tbs-hash.sh | 91 tools/include/linux/bitmap.h | 43 tools/include/linux/kallsyms.h | 2 tools/include/nolibc/Makefile | 42 tools/include/nolibc/arch-aarch64.h | 199 tools/include/nolibc/arch-arm.h | 204 tools/include/nolibc/arch-i386.h | 219 tools/include/nolibc/arch-mips.h | 215 tools/include/nolibc/arch-riscv.h | 204 tools/include/nolibc/arch-x86_64.h | 215 tools/include/nolibc/arch.h | 32 tools/include/nolibc/ctype.h | 99 tools/include/nolibc/errno.h | 27 tools/include/nolibc/nolibc.h | 2540 ----- tools/include/nolibc/signal.h | 22 tools/include/nolibc/std.h | 49 tools/include/nolibc/stdio.h | 306 tools/include/nolibc/stdlib.h | 423 tools/include/nolibc/string.h | 285 tools/include/nolibc/sys.h | 1247 ++ tools/include/nolibc/time.h | 28 tools/include/nolibc/types.h | 205 tools/include/nolibc/unistd.h | 54 tools/include/uapi/asm/bpf_perf_event.h | 2 tools/include/uapi/linux/btf.h | 4 tools/lib/bitmap.c | 20 tools/lib/bpf/Build | 3 tools/lib/bpf/Makefile | 2 tools/lib/bpf/bpf_tracing.h | 23 tools/lib/bpf/btf.c | 6 tools/lib/bpf/libbpf.c | 551 + tools/lib/bpf/libbpf.h | 123 tools/lib/bpf/libbpf.map | 1 tools/lib/bpf/libbpf_internal.h | 30 tools/lib/bpf/usdt.bpf.h | 259 tools/lib/bpf/usdt.c | 1518 +++ tools/lib/perf/include/perf/event.h | 2 tools/lib/symbol/kallsyms.h | 2 tools/memory-model/Documentation/locking.txt | 320 tools/memory-model/litmus-tests/.gitignore | 2 tools/memory-model/scripts/README | 16 tools/memory-model/scripts/checkalllitmus.sh | 29 tools/memory-model/scripts/checkghlitmus.sh | 11 tools/memory-model/scripts/checklitmus.sh | 25 tools/memory-model/scripts/checklitmushist.sh | 2 tools/memory-model/scripts/checktheselitmus.sh | 43 tools/memory-model/scripts/cmplitmushist.sh | 49 tools/memory-model/scripts/hwfnseg.sh | 20 tools/memory-model/scripts/initlitmushist.sh | 2 tools/memory-model/scripts/judgelitmus.sh | 120 tools/memory-model/scripts/newlitmushist.sh | 4 tools/memory-model/scripts/parseargs.sh | 21 tools/memory-model/scripts/runlitmus.sh | 80 tools/memory-model/scripts/runlitmushist.sh | 29 tools/memory-model/scripts/simpletest.sh | 35 tools/objtool/Makefile | 4 tools/objtool/check.c | 86 tools/objtool/include/objtool/objtool.h | 2 tools/objtool/objtool.c | 1 tools/perf/arch/riscv/Makefile | 1 tools/perf/tests/builtin-test.c | 4 tools/perf/util/genelf.h | 3 tools/perf/util/path.c | 14 tools/perf/util/path.h | 1 tools/perf/util/pmu.c | 2 tools/perf/util/scripting-engines/trace-event-python.c | 49 tools/power/acpi/common/cmfsize.c | 2 tools/power/acpi/common/getopt.c | 2 tools/power/acpi/os_specific/service_layers/oslinuxtbl.c | 2 tools/power/acpi/os_specific/service_layers/osunixdir.c | 2 tools/power/acpi/os_specific/service_layers/osunixmap.c | 2 tools/power/acpi/os_specific/service_layers/osunixxf.c | 2 tools/power/acpi/tools/acpidump/acpidump.h | 2 tools/power/acpi/tools/acpidump/apdump.c | 2 tools/power/acpi/tools/acpidump/apfiles.c | 2 tools/power/acpi/tools/acpidump/apmain.c | 2 tools/power/x86/intel-speed-select/Makefile | 2 tools/power/x86/turbostat/Makefile | 2 tools/power/x86/turbostat/turbostat.8 | 2 tools/power/x86/turbostat/turbostat.c | 594 - tools/testing/kunit/kunit.py | 54 tools/testing/kunit/kunit_config.py | 9 tools/testing/kunit/kunit_json.py | 63 tools/testing/kunit/kunit_kernel.py | 53 tools/testing/kunit/kunit_parser.py | 7 tools/testing/kunit/kunit_tool_test.py | 15 tools/testing/kunit/qemu_config.py | 17 tools/testing/selftests/bpf/Makefile | 25 tools/testing/selftests/bpf/bench.c | 1 tools/testing/selftests/bpf/bpf_rlimit.h | 28 tools/testing/selftests/bpf/flow_dissector_load.c | 6 tools/testing/selftests/bpf/get_cgroup_id_user.c | 4 tools/testing/selftests/bpf/prog_tests/arg_parsing.c | 107 tools/testing/selftests/bpf/prog_tests/attach_probe.c | 85 tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 4 tools/testing/selftests/bpf/prog_tests/bpf_mod_race.c | 4 tools/testing/selftests/bpf/prog_tests/bpf_tcp_ca.c | 6 tools/testing/selftests/bpf/prog_tests/btf.c | 100 tools/testing/selftests/bpf/prog_tests/for_each.c | 12 tools/testing/selftests/bpf/prog_tests/helper_restricted.c | 10 tools/testing/selftests/bpf/prog_tests/ksyms_btf.c | 17 tools/testing/selftests/bpf/prog_tests/netcnt.c | 2 tools/testing/selftests/bpf/prog_tests/prog_tests_framework.c | 56 tools/testing/selftests/bpf/prog_tests/reference_tracking.c | 23 tools/testing/selftests/bpf/prog_tests/skb_load_bytes.c | 45 tools/testing/selftests/bpf/prog_tests/snprintf.c | 4 tools/testing/selftests/bpf/prog_tests/tc_redirect.c | 1 tools/testing/selftests/bpf/prog_tests/test_global_funcs.c | 1 tools/testing/selftests/bpf/prog_tests/test_strncmp.c | 25 tools/testing/selftests/bpf/prog_tests/uprobe_autoattach.c | 50 tools/testing/selftests/bpf/prog_tests/usdt.c | 421 tools/testing/selftests/bpf/progs/exhandler_kern.c | 15 tools/testing/selftests/bpf/progs/for_each_map_elem_write_key.c | 27 tools/testing/selftests/bpf/progs/linked_funcs1.c | 8 tools/testing/selftests/bpf/progs/linked_funcs2.c | 8 tools/testing/selftests/bpf/progs/perf_event_stackmap.c | 4 tools/testing/selftests/bpf/progs/profiler.inc.h | 5 tools/testing/selftests/bpf/progs/pyperf.h | 4 tools/testing/selftests/bpf/progs/pyperf600.c | 11 tools/testing/selftests/bpf/progs/skb_load_bytes.c | 19 tools/testing/selftests/bpf/progs/strncmp_test.c | 8 tools/testing/selftests/bpf/progs/test_attach_probe.c | 41 tools/testing/selftests/bpf/progs/test_bpf_cookie.c | 4 tools/testing/selftests/bpf/progs/test_global_func17.c | 16 tools/testing/selftests/bpf/progs/test_helper_restricted.c | 16 tools/testing/selftests/bpf/progs/test_ksyms_btf_write_check.c | 18 tools/testing/selftests/bpf/progs/test_l4lb_noinline.c | 2 tools/testing/selftests/bpf/progs/test_sk_assign.c | 4 tools/testing/selftests/bpf/progs/test_sk_lookup_kern.c | 18 tools/testing/selftests/bpf/progs/test_task_pt_regs.c | 2 tools/testing/selftests/bpf/progs/test_uprobe_autoattach.c | 73 tools/testing/selftests/bpf/progs/test_urandom_usdt.c | 70 tools/testing/selftests/bpf/progs/test_usdt.c | 96 tools/testing/selftests/bpf/progs/test_usdt_multispec.c | 32 tools/testing/selftests/bpf/progs/test_xdp_noinline.c | 12 tools/testing/selftests/bpf/progs/trigger_bench.c | 2 tools/testing/selftests/bpf/sdt-config.h | 6 tools/testing/selftests/bpf/sdt.h | 513 + tools/testing/selftests/bpf/test_bpftool_synctypes.py | 2 tools/testing/selftests/bpf/test_cgroup_storage.c | 7 tools/testing/selftests/bpf/test_dev_cgroup.c | 4 tools/testing/selftests/bpf/test_lpm_map.c | 43 tools/testing/selftests/bpf/test_lru_map.c | 70 tools/testing/selftests/bpf/test_offload.py | 2 tools/testing/selftests/bpf/test_progs.c | 487 - tools/testing/selftests/bpf/test_progs.h | 53 tools/testing/selftests/bpf/test_skb_cgroup_id_user.c | 4 tools/testing/selftests/bpf/test_sock.c | 6 tools/testing/selftests/bpf/test_sock_addr.c | 4 tools/testing/selftests/bpf/test_sockmap.c | 5 tools/testing/selftests/bpf/test_sysctl.c | 6 tools/testing/selftests/bpf/test_tag.c | 4 tools/testing/selftests/bpf/test_tcp_check_syncookie_user.c | 4 tools/testing/selftests/bpf/test_tcpnotify_user.c | 1 tools/testing/selftests/bpf/test_verifier_log.c | 5 tools/testing/selftests/bpf/testing_helpers.c | 91 tools/testing/selftests/bpf/testing_helpers.h | 8 tools/testing/selftests/bpf/trace_helpers.c | 9 tools/testing/selftests/bpf/urandom_read.c | 63 tools/testing/selftests/bpf/urandom_read_aux.c | 9 tools/testing/selftests/bpf/urandom_read_lib1.c | 13 tools/testing/selftests/bpf/urandom_read_lib2.c | 8 tools/testing/selftests/bpf/xdp_redirect_multi.c | 1 tools/testing/selftests/bpf/xdping.c | 8 tools/testing/selftests/bpf/xdpxceiver.c | 6 tools/testing/selftests/drivers/net/mlxsw/devlink_linecard.sh | 280 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_string.tc | 3 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_syntax.tc | 4 tools/testing/selftests/kvm/.gitignore | 1 tools/testing/selftests/kvm/Makefile | 2 tools/testing/selftests/kvm/x86_64/fix_hypercall_test.c | 170 tools/testing/selftests/kvm/x86_64/tsc_scaling_sync.c | 119 tools/testing/selftests/kvm/x86_64/xen_shinfo_test.c | 366 tools/testing/selftests/mqueue/mq_perf_tests.c | 4 tools/testing/selftests/net/Makefile | 1 tools/testing/selftests/net/fib_rule_tests.sh | 12 tools/testing/selftests/net/forwarding/Makefile | 1 tools/testing/selftests/net/forwarding/bridge_mdb.sh | 103 tools/testing/selftests/net/mptcp/diag.sh | 38 tools/testing/selftests/net/ndisc_unsolicited_na_test.sh | 255 tools/testing/selftests/netfilter/nft_fib.sh | 50 tools/testing/selftests/rcutorture/bin/functions.sh | 2 tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh | 2 tools/testing/selftests/rcutorture/bin/kvm-recheck.sh | 7 tools/testing/selftests/rcutorture/bin/kvm-remote.sh | 15 tools/testing/selftests/rcutorture/bin/kvm.sh | 10 tools/testing/selftests/rcutorture/bin/torture.sh | 29 tools/testing/selftests/rcutorture/configs/rcu/RUDE01 | 2 tools/testing/selftests/rcutorture/configs/rcu/SRCU-N | 2 tools/testing/selftests/rcutorture/configs/rcu/TASKS01 | 1 tools/testing/selftests/rcutorture/configs/rcu/TASKS02 | 4 tools/testing/selftests/rcutorture/configs/rcu/TASKS02.boot | 1 tools/testing/selftests/rcutorture/configs/rcu/TASKS03 | 2 tools/testing/selftests/rcutorture/configs/rcu/TRACE01 | 3 tools/testing/selftests/rcutorture/configs/rcu/TRACE02 | 2 tools/testing/selftests/rcutorture/configs/rcu/TREE04 | 5 tools/testing/selftests/rcutorture/configs/rcu/TREE07 | 1 tools/testing/selftests/rcutorture/configs/rcu/TREE09 | 2 tools/testing/selftests/rcutorture/configs/rcu/TREE10 | 1 tools/testing/selftests/rcutorture/configs/rcu/ver_functions.sh | 16 tools/testing/selftests/rcutorture/configs/rcuscale/CFcommon | 7 tools/testing/selftests/rcutorture/configs/rcuscale/TREE | 2 tools/testing/selftests/rcutorture/configs/refscale/CFcommon | 4 tools/testing/selftests/rcutorture/configs/refscale/NOPREEMPT | 2 tools/testing/selftests/rcutorture/configs/scf/NOPREEMPT | 2 tools/testing/selftests/rcutorture/configs/scf/PREEMPT | 1 tools/testing/selftests/rcutorture/configs/scf/ver_functions.sh | 3 tools/testing/selftests/seccomp/Makefile | 1 tools/testing/selftests/seccomp/seccomp_bpf.c | 78 usr/include/Makefile | 2 5812 files changed, 242092 insertions(+), 135157 deletions(-) --- a/arch/alpha/kernel/osf_sys.c~linux-next +++ a/arch/alpha/kernel/osf_sys.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include --- a/arch/alpha/kernel/process.c~linux-next +++ a/arch/alpha/kernel/process.c @@ -125,7 +125,7 @@ common_shutdown_1(void *generic_ptr) /* Wait for the secondaries to halt. */ set_cpu_present(boot_cpuid, false); set_cpu_possible(boot_cpuid, false); - while (cpumask_weight(cpu_present_mask)) + while (!cpumask_empty(cpu_present_mask)) barrier(); #endif --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts~linux-next +++ a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts @@ -58,6 +58,15 @@ }; }; +&codec { + status = "okay"; +}; + +&codec_analog { + cpvdd-supply = <®_eldo1>; + status = "okay"; +}; + &cpu0 { cpu-supply = <®_dcdc2>; }; @@ -74,6 +83,10 @@ cpu-supply = <®_dcdc2>; }; +&dai { + status = "okay"; +}; + &de { status = "okay"; }; @@ -328,6 +341,23 @@ vcc-hdmi-supply = <®_dldo1>; }; +&sound { + simple-audio-card,aux-devs = <&codec_analog>; + simple-audio-card,widgets = "Microphone", "Microphone Jack Left", + "Microphone", "Microphone Jack Right", + "Headphone", "Headphone Jack"; + simple-audio-card,routing = "Left DAC", "DACL", + "Right DAC", "DACR", + "Headphone Jack", "HP", + "ADCL", "Left ADC", + "ADCR", "Right ADC", + "Microphone Jack Left", "MBIAS", + "MIC1", "Microphone Jack Left", + "Microphone Jack Right", "MBIAS", + "MIC2", "Microphone Jack Right"; + status = "okay"; +}; + &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pb_pins>; --- a/arch/arm64/boot/dts/amlogic/Makefile~linux-next +++ a/arch/arm64/boot/dts/amlogic/Makefile @@ -1,17 +1,18 @@ # SPDX-License-Identifier: GPL-2.0 -dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12a-radxa-zero.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gsking-x.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb @@ -19,29 +20,29 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-n dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p200.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p201.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-pro.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-meta.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-pro.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-telos.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-hub.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-play2.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-libretech-ac.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-p241.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-libretech-pc.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-mecool-kii-pro.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-phicomm-n1.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-sml5442tw.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-vero4k-plus.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-p241.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-libretech-pc.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-minix-neo-u9h.dtb @@ -52,15 +53,14 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air-gbit.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m5.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-h96-max.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-hc4.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air.dtb dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air-gbit.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb -dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air.dtb --- a/arch/arm64/boot/dts/amlogic/meson-axg-jethome-jethub-j100.dts~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-axg-jethome-jethub-j100.dts @@ -18,7 +18,7 @@ model = "JetHome JetHub J100"; aliases { serial0 = &uart_AO; /* Console */ - serial1 = &uart_AO_B; /* External UART (Wireless Module) */ + serial2 = &uart_AO_B; /* External UART (Wireless Module) */ ethernet0 = ðmac; }; @@ -81,6 +81,15 @@ vddio_boot: regulator-vddio_boot { compatible = "regulator-fixed"; regulator-name = "VDDIO_BOOT"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vddao_3v3>; + regulator-always-on; + }; + + vccq_1v8: regulator-vccq_1v8 { + compatible = "regulator-fixed"; + regulator-name = "VCCQ_1V8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; vin-supply = <&vddao_3v3>; @@ -248,8 +257,7 @@ bus-width = <4>; cap-sd-highspeed; - sd-uhs-sdr104; - max-frequency = <200000000>; + max-frequency = <50000000>; non-removable; disable-wp; @@ -282,7 +290,7 @@ mmc-pwrseq = <&emmc_pwrseq>; vmmc-supply = <&vcc_3v3>; - vqmmc-supply = <&vddio_boot>; + vqmmc-supply = <&vccq_1v8>; }; /* UART Bluetooth */ --- a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi @@ -11,26 +11,6 @@ compatible = "operating-points-v2"; opp-shared; - opp-100000000 { - opp-hz = /bits/ 64 <100000000>; - opp-microvolt = <731000>; - }; - - opp-250000000 { - opp-hz = /bits/ 64 <250000000>; - opp-microvolt = <731000>; - }; - - opp-500000000 { - opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <731000>; - }; - - opp-667000000 { - opp-hz = /bits/ 64 <667000000>; - opp-microvolt = <731000>; - }; - opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <761000>; @@ -71,26 +51,6 @@ compatible = "operating-points-v2"; opp-shared; - opp-100000000 { - opp-hz = /bits/ 64 <100000000>; - opp-microvolt = <731000>; - }; - - opp-250000000 { - opp-hz = /bits/ 64 <250000000>; - opp-microvolt = <731000>; - }; - - opp-500000000 { - opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <731000>; - }; - - opp-667000000 { - opp-hz = /bits/ 64 <667000000>; - opp-microvolt = <731000>; - }; - opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <731000>; --- a/arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi @@ -11,26 +11,6 @@ compatible = "operating-points-v2"; opp-shared; - opp-100000000 { - opp-hz = /bits/ 64 <100000000>; - opp-microvolt = <731000>; - }; - - opp-250000000 { - opp-hz = /bits/ 64 <250000000>; - opp-microvolt = <731000>; - }; - - opp-500000000 { - opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <731000>; - }; - - opp-667000000 { - opp-hz = /bits/ 64 <667000000>; - opp-microvolt = <731000>; - }; - opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <731000>; @@ -76,26 +56,6 @@ compatible = "operating-points-v2"; opp-shared; - opp-100000000 { - opp-hz = /bits/ 64 <100000000>; - opp-microvolt = <751000>; - }; - - opp-250000000 { - opp-hz = /bits/ 64 <250000000>; - opp-microvolt = <751000>; - }; - - opp-500000000 { - opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <751000>; - }; - - opp-667000000 { - opp-hz = /bits/ 64 <667000000>; - opp-microvolt = <751000>; - }; - opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <771000>; --- a/arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi @@ -416,7 +416,7 @@ pinctrl-names = "default"; status = "okay"; - gd25lq128: spi-flash@0 { + gd25lq128: flash@0 { compatible = "jedec,spi-nor"; #address-cells = <1>; #size-cells = <1>; --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts @@ -298,7 +298,7 @@ pinctrl-0 = <&nor_pins>; pinctrl-names = "default"; - w25q32: spi-flash@0 { + w25q32: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-jethome-jethub-j80.dts~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-jethome-jethub-j80.dts @@ -213,6 +213,12 @@ pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; pinctrl-names = "default"; uart-has-rtscts; + + bluetooth { + compatible = "realtek,rtl8822cs-bt"; + enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; + host-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>; + }; }; &uart_C { --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts @@ -284,7 +284,7 @@ pinctrl-0 = <&nor_pins>; pinctrl-names = "default"; - nor_4u1: spi-flash@0 { + nor_4u1: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; --- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts @@ -374,7 +374,7 @@ pinctrl-0 = <&nor_pins>; pinctrl-names = "default"; - w25q32: spi-flash@0 { + w25q32: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "winbond,w25q16", "jedec,spi-nor"; --- a/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi @@ -458,7 +458,7 @@ pinctrl-0 = <&nor_pins>; pinctrl-names = "default"; - w25q128: spi-flash@0 { + w25q128: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "winbond,w25q128fw", "jedec,spi-nor"; --- a/arch/arm64/boot/dts/amlogic/meson-s4.dtsi~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-s4.dtsi @@ -5,6 +5,7 @@ #include #include +#include / { cpus { @@ -13,28 +14,28 @@ cpu0: cpu@0 { device_type = "cpu"; - compatible = "arm,cortex-a35","arm,armv8"; + compatible = "arm,cortex-a35"; reg = <0x0 0x0>; enable-method = "psci"; }; cpu1: cpu@1 { device_type = "cpu"; - compatible = "arm,cortex-a35","arm,armv8"; + compatible = "arm,cortex-a35"; reg = <0x0 0x1>; enable-method = "psci"; }; cpu2: cpu@2 { device_type = "cpu"; - compatible = "arm,cortex-a35","arm,armv8"; + compatible = "arm,cortex-a35"; reg = <0x0 0x2>; enable-method = "psci"; }; cpu3: cpu@3 { device_type = "cpu"; - compatible = "arm,cortex-a35","arm,armv8"; + compatible = "arm,cortex-a35"; reg = <0x0 0x3>; enable-method = "psci"; }; @@ -60,6 +61,12 @@ #clock-cells = <0>; }; + pwrc: power-controller { + compatible = "amlogic,meson-s4-pwrc"; + #power-domain-cells = <1>; + status = "okay"; + }; + soc { compatible = "simple-bus"; #address-cells = <2>; @@ -85,6 +92,32 @@ #size-cells = <2>; ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>; + periphs_pinctrl: pinctrl@4000 { + compatible = "amlogic,meson-s4-periphs-pinctrl"; + #address-cells = <2>; + #size-cells = <2>; + ranges; + + gpio: bank@4000 { + reg = <0x0 0x4000 0x0 0x004c>, + <0x0 0x40c0 0x0 0x0220>; + reg-names = "mux", "gpio"; + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&periphs_pinctrl 0 0 82>; + }; + }; + + gpio_intc: interrupt-controller@4080 { + compatible = "amlogic,meson-s4-gpio-intc", + "amlogic,meson-gpio-intc"; + reg = <0x0 0x4080 0x0 0x20>; + interrupt-controller; + #interrupt-cells = <2>; + amlogic,channel-interrupts = + <10 11 12 13 14 15 16 17 18 19 20 21>; + }; + uart_B: serial@7a000 { compatible = "amlogic,meson-s4-uart", "amlogic,meson-ao-uart"; --- a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts @@ -437,6 +437,7 @@ "", "eMMC_RST#", /* BOOT_12 */ "eMMC_DS", /* BOOT_13 */ + "", "", /* GPIOC */ "SD_D0_B", /* GPIOC_0 */ "SD_D1_B", /* GPIOC_1 */ --- a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi @@ -95,26 +95,6 @@ compatible = "operating-points-v2"; opp-shared; - opp-100000000 { - opp-hz = /bits/ 64 <100000000>; - opp-microvolt = <730000>; - }; - - opp-250000000 { - opp-hz = /bits/ 64 <250000000>; - opp-microvolt = <730000>; - }; - - opp-500000000 { - opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <730000>; - }; - - opp-667000000 { - opp-hz = /bits/ 64 <666666666>; - opp-microvolt = <750000>; - }; - opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <770000>; --- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts~linux-next +++ a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts @@ -121,7 +121,7 @@ pinctrl-0 = <&nor_pins>; pinctrl-names = "default"; - spi-flash@0 { + flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; --- /dev/null +++ a/arch/arm64/boot/dts/arm/corstone1000.dtsi @@ -0,0 +1,164 @@ +// SPDX-License-Identifier: GPL-2.0 or MIT +/* + * Copyright (c) 2022, Arm Limited. All rights reserved. + * Copyright (c) 2022, Linaro Limited. All rights reserved. + * + */ + +#include + +/ { + interrupt-parent = <&gic>; + #address-cells = <1>; + #size-cells = <1>; + + aliases { + serial0 = &uart0; + serial1 = &uart1; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a35"; + reg = <0>; + next-level-cache = <&L2_0>; + }; + }; + + memory@88200000 { + device_type = "memory"; + reg = <0x88200000 0x77e00000>; + }; + + gic: interrupt-controller@1c000000 { + compatible = "arm,gic-400"; + #interrupt-cells = <3>; + #address-cells = <0>; + interrupt-controller; + reg = <0x1c010000 0x1000>, + <0x1c02f000 0x2000>, + <0x1c04f000 0x1000>, + <0x1c06f000 0x2000>; + interrupts = ; + }; + + L2_0: l2-cache0 { + compatible = "cache"; + cache-level = <2>; + cache-size = <0x80000>; + cache-line-size = <64>; + cache-sets = <1024>; + }; + + refclk100mhz: refclk100mhz { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <100000000>; + clock-output-names = "apb_pclk"; + }; + + smbclk: refclk24mhzx2 { + /* Reference 24MHz clock x 2 */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <48000000>; + clock-output-names = "smclk"; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = , + , + , + ; + }; + + uartclk: uartclk { + /* UART clock - 50MHz */ + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <50000000>; + clock-output-names = "uartclk"; + }; + + psci { + compatible = "arm,psci-1.0", "arm,psci-0.2"; + method = "smc"; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&gic>; + ranges; + + timer@1a220000 { + compatible = "arm,armv7-timer-mem"; + reg = <0x1a220000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + clock-frequency = <50000000>; + ranges; + + frame@1a230000 { + frame-number = <0>; + interrupts = ; + reg = <0x1a230000 0x1000>; + }; + }; + + uart0: serial@1a510000 { + compatible = "arm,pl011", "arm,primecell"; + reg = <0x1a510000 0x1000>; + interrupts = ; + clocks = <&uartclk>, <&refclk100mhz>; + clock-names = "uartclk", "apb_pclk"; + }; + + uart1: serial@1a520000 { + compatible = "arm,pl011", "arm,primecell"; + reg = <0x1a520000 0x1000>; + interrupts = ; + clocks = <&uartclk>, <&refclk100mhz>; + clock-names = "uartclk", "apb_pclk"; + }; + + mhu_hse1: mailbox@1b820000 { + compatible = "arm,mhuv2-tx", "arm,primecell"; + reg = <0x1b820000 0x1000>; + clocks = <&refclk100mhz>; + clock-names = "apb_pclk"; + interrupts = ; + #mbox-cells = <2>; + arm,mhuv2-protocols = <0 0>; + secure-status = "okay"; /* secure-world-only */ + status = "disabled"; + }; + + mhu_seh1: mailbox@1b830000 { + compatible = "arm,mhuv2-rx", "arm,primecell"; + reg = <0x1b830000 0x1000>; + clocks = <&refclk100mhz>; + clock-names = "apb_pclk"; + interrupts = ; + #mbox-cells = <2>; + arm,mhuv2-protocols = <0 0>; + secure-status = "okay"; /* secure-world-only */ + status = "disabled"; + }; + }; +}; --- /dev/null +++ a/arch/arm64/boot/dts/arm/corstone1000-fvp.dts @@ -0,0 +1,51 @@ +// SPDX-License-Identifier: GPL-2.0 or MIT +/* + * Copyright (c) 2022, Arm Limited. All rights reserved. + * Copyright (c) 2022, Linaro Limited. All rights reserved. + * + */ + +/dts-v1/; + +#include "corstone1000.dtsi" + +/ { + model = "ARM Corstone1000 FVP (Fixed Virtual Platform)"; + compatible = "arm,corstone1000-fvp"; + + smsc: ethernet@4010000 { + compatible = "smsc,lan91c111"; + reg = <0x40100000 0x10000>; + phy-mode = "mii"; + interrupts = ; + reg-io-width = <2>; + }; + + vmmc_v3_3d: fixed_v3_3d { + compatible = "regulator-fixed"; + regulator-name = "vmmc_supply"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + + sdmmc0: mmc@40300000 { + compatible = "arm,pl18x", "arm,primecell"; + reg = <0x40300000 0x1000>; + interrupts = ; + max-frequency = <12000000>; + vmmc-supply = <&vmmc_v3_3d>; + clocks = <&smbclk>, <&refclk100mhz>; + clock-names = "smclk", "apb_pclk"; + }; + + sdmmc1: mmc@50000000 { + compatible = "arm,pl18x", "arm,primecell"; + reg = <0x50000000 0x10000>; + interrupts = ; + max-frequency = <12000000>; + vmmc-supply = <&vmmc_v3_3d>; + clocks = <&smbclk>, <&refclk100mhz>; + clock-names = "smclk", "apb_pclk"; + }; +}; --- /dev/null +++ a/arch/arm64/boot/dts/arm/corstone1000-mps3.dts @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: GPL-2.0 or MIT +/* + * Copyright (c) 2022, Arm Limited. All rights reserved. + * Copyright (c) 2022, Linaro Limited. All rights reserved. + * + */ + +/dts-v1/; + +#include "corstone1000.dtsi" + +/ { + model = "ARM Corstone1000 FPGA MPS3 board"; + compatible = "arm,corstone1000-mps3"; + + smsc: ethernet@4010000 { + compatible = "smsc,lan9220", "smsc,lan9115"; + reg = <0x40100000 0x10000>; + phy-mode = "mii"; + interrupts = ; + reg-io-width = <2>; + smsc,irq-push-pull; + }; + + usb_host: usb@40200000 { + compatible = "nxp,usb-isp1763"; + reg = <0x40200000 0x100000>; + interrupts = ; + bus-width = <16>; + dr_mode = "host"; + }; +}; --- a/arch/arm64/boot/dts/arm/juno-base.dtsi~linux-next +++ a/arch/arm64/boot/dts/arm/juno-base.dtsi @@ -117,7 +117,7 @@ * The actual size is just 4K though 64K is reserved. Access to the * unmapped reserved region results in a DECERR response. */ - etf@20010000 { /* etf0 */ + etf_sys0: etf@20010000 { /* etf0 */ compatible = "arm,coresight-tmc", "arm,primecell"; reg = <0 0x20010000 0 0x1000>; @@ -141,7 +141,7 @@ }; }; - tpiu@20030000 { + tpiu_sys: tpiu@20030000 { compatible = "arm,coresight-tpiu", "arm,primecell"; reg = <0 0x20030000 0 0x1000>; @@ -194,7 +194,7 @@ }; }; - etr@20070000 { + etr_sys: etr@20070000 { compatible = "arm,coresight-tmc", "arm,primecell"; reg = <0 0x20070000 0 0x1000>; iommus = <&smmu_etr 0>; @@ -212,7 +212,7 @@ }; }; - stm@20100000 { + stm_sys: stm@20100000 { compatible = "arm,coresight-stm", "arm,primecell"; reg = <0 0x20100000 0 0x1000>, <0 0x28000000 0 0x1000000>; @@ -289,6 +289,18 @@ }; }; + cti0: cti@22020000 { + compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti", + "arm,primecell"; + reg = <0 0x22020000 0 0x1000>; + + clocks = <&soc_smc50mhz>; + clock-names = "apb_pclk"; + power-domains = <&scpi_devpd 0>; + + arm,cs-dev-assoc = <&etm0>; + }; + funnel@220c0000 { /* cluster0 funnel */ compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; reg = <0 0x220c0000 0 0x1000>; @@ -349,6 +361,18 @@ }; }; + cti1: cti@22120000 { + compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti", + "arm,primecell"; + reg = <0 0x22120000 0 0x1000>; + + clocks = <&soc_smc50mhz>; + clock-names = "apb_pclk"; + power-domains = <&scpi_devpd 0>; + + arm,cs-dev-assoc = <&etm1>; + }; + cpu_debug2: cpu-debug@23010000 { compatible = "arm,coresight-cpu-debug", "arm,primecell"; reg = <0x0 0x23010000 0x0 0x1000>; @@ -374,6 +398,18 @@ }; }; + cti2: cti@23020000 { + compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti", + "arm,primecell"; + reg = <0 0x23020000 0 0x1000>; + + clocks = <&soc_smc50mhz>; + clock-names = "apb_pclk"; + power-domains = <&scpi_devpd 0>; + + arm,cs-dev-assoc = <&etm2>; + }; + funnel@230c0000 { /* cluster1 funnel */ compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; reg = <0 0x230c0000 0 0x1000>; @@ -446,6 +482,18 @@ }; }; + cti3: cti@23120000 { + compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti", + "arm,primecell"; + reg = <0 0x23120000 0 0x1000>; + + clocks = <&soc_smc50mhz>; + clock-names = "apb_pclk"; + power-domains = <&scpi_devpd 0>; + + arm,cs-dev-assoc = <&etm3>; + }; + cpu_debug4: cpu-debug@23210000 { compatible = "arm,coresight-cpu-debug", "arm,primecell"; reg = <0x0 0x23210000 0x0 0x1000>; @@ -471,6 +519,18 @@ }; }; + cti4: cti@23220000 { + compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti", + "arm,primecell"; + reg = <0 0x23220000 0 0x1000>; + + clocks = <&soc_smc50mhz>; + clock-names = "apb_pclk"; + power-domains = <&scpi_devpd 0>; + + arm,cs-dev-assoc = <&etm4>; + }; + cpu_debug5: cpu-debug@23310000 { compatible = "arm,coresight-cpu-debug", "arm,primecell"; reg = <0x0 0x23310000 0x0 0x1000>; @@ -496,6 +556,100 @@ }; }; + cti5: cti@23320000 { + compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti", + "arm,primecell"; + reg = <0 0x23320000 0 0x1000>; + + clocks = <&soc_smc50mhz>; + clock-names = "apb_pclk"; + power-domains = <&scpi_devpd 0>; + + arm,cs-dev-assoc = <&etm5>; + }; + + cti_sys0: cti@20020000 { /* sys_cti_0 */ + compatible = "arm,coresight-cti", "arm,primecell"; + reg = <0 0x20020000 0 0x1000>; + + clocks = <&soc_smc50mhz>; + clock-names = "apb_pclk"; + power-domains = <&scpi_devpd 0>; + + #address-cells = <1>; + #size-cells = <0>; + + trig-conns@0 { + reg = <0>; + arm,trig-in-sigs=<2 3>; + arm,trig-in-types=; + arm,trig-out-sigs=<0 1>; + arm,trig-out-types=; + arm,cs-dev-assoc = <&etr_sys>; + }; + + trig-conns@1 { + reg = <1>; + arm,trig-in-sigs=<0 1>; + arm,trig-in-types=; + arm,trig-out-sigs=<7 6>; + arm,trig-out-types=; + arm,cs-dev-assoc = <&etf_sys0>; + }; + + trig-conns@2 { + reg = <2>; + arm,trig-in-sigs=<4 5 6 7>; + arm,trig-in-types=; + arm,trig-out-sigs=<4 5>; + arm,trig-out-types=; + arm,cs-dev-assoc = <&stm_sys>; + }; + + trig-conns@3 { + reg = <3>; + arm,trig-out-sigs=<2 3>; + arm,trig-out-types=; + arm,cs-dev-assoc = <&tpiu_sys>; + }; + }; + + cti_sys1: cti@20110000 { /* sys_cti_1 */ + compatible = "arm,coresight-cti", "arm,primecell"; + reg = <0 0x20110000 0 0x1000>; + + clocks = <&soc_smc50mhz>; + clock-names = "apb_pclk"; + power-domains = <&scpi_devpd 0>; + + #address-cells = <1>; + #size-cells = <0>; + + trig-conns@0 { + reg = <0>; + arm,trig-in-sigs=<0>; + arm,trig-in-types=; + arm,trig-out-sigs=<0>; + arm,trig-out-types=; + arm,trig-conn-name = "sys_profiler"; + }; + + trig-conns@1 { + reg = <1>; + arm,trig-out-sigs=<2 3>; + arm,trig-out-types=; + arm,trig-conn-name = "watchdog"; + }; + + trig-conns@2 { + reg = <2>; + arm,trig-out-sigs=<1 6>; + arm,trig-out-types=; + arm,trig-conn-name = "g_counter"; + }; + }; + gpu: gpu@2d000000 { compatible = "arm,juno-mali", "arm,mali-t624"; reg = <0 0x2d000000 0 0x10000>; --- a/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi~linux-next +++ a/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi @@ -23,7 +23,7 @@ }; }; - etf@20140000 { /* etf1 */ + etf_sys1: etf@20140000 { /* etf1 */ compatible = "arm,coresight-tmc", "arm,primecell"; reg = <0 0x20140000 0 0x1000>; @@ -82,4 +82,39 @@ }; }; + + cti_sys2: cti@20160000 { /* sys_cti_2 */ + compatible = "arm,coresight-cti", "arm,primecell"; + reg = <0 0x20160000 0 0x1000>; + + clocks = <&soc_smc50mhz>; + clock-names = "apb_pclk"; + power-domains = <&scpi_devpd 0>; + + #address-cells = <1>; + #size-cells = <0>; + + trig-conns@0 { + reg = <0>; + arm,trig-in-sigs=<0 1>; + arm,trig-in-types=; + arm,trig-out-sigs=<0 1>; + arm,trig-out-types=; + arm,cs-dev-assoc = <&etf_sys1>; + }; + + trig-conns@1 { + reg = <1>; + arm,trig-in-sigs=<2 3 4>; + arm,trig-in-types=; + arm,trig-conn-name = "ela_clus_0"; + }; + + trig-conns@2 { + reg = <2>; + arm,trig-in-sigs=<5 6 7>; + arm,trig-in-types=; + arm,trig-conn-name = "ela_clus_1"; + }; + }; }; --- a/arch/arm64/boot/dts/arm/juno.dts~linux-next +++ a/arch/arm64/boot/dts/arm/juno.dts @@ -9,6 +9,7 @@ /dts-v1/; #include +#include #include "juno-base.dtsi" / { @@ -295,3 +296,27 @@ &cpu_debug5 { cpu = <&A53_3>; }; + +&cti0 { + cpu = <&A57_0>; +}; + +&cti1 { + cpu = <&A57_1>; +}; + +&cti2 { + cpu = <&A53_0>; +}; + +&cti3 { + cpu = <&A53_1>; +}; + +&cti4 { + cpu = <&A53_2>; +}; + +&cti5 { + cpu = <&A53_3>; +}; --- a/arch/arm64/boot/dts/arm/juno-r1.dts~linux-next +++ a/arch/arm64/boot/dts/arm/juno-r1.dts @@ -9,6 +9,7 @@ /dts-v1/; #include +#include #include "juno-base.dtsi" #include "juno-cs-r1r2.dtsi" @@ -313,3 +314,27 @@ &cpu_debug5 { cpu = <&A53_3>; }; + +&cti0 { + cpu = <&A57_0>; +}; + +&cti1 { + cpu = <&A57_1>; +}; + +&cti2 { + cpu = <&A53_0>; +}; + +&cti3 { + cpu = <&A53_1>; +}; + +&cti4 { + cpu = <&A53_2>; +}; + +&cti5 { + cpu = <&A53_3>; +}; --- a/arch/arm64/boot/dts/arm/juno-r1-scmi.dts~linux-next +++ a/arch/arm64/boot/dts/arm/juno-r1-scmi.dts @@ -7,14 +7,18 @@ }; etf@20140000 { - power-domains = <&scmi_devpd 0>; + power-domains = <&scmi_devpd 8>; }; funnel@20150000 { - power-domains = <&scmi_devpd 0>; + power-domains = <&scmi_devpd 8>; }; }; +&cti_sys2 { + power-domains = <&scmi_devpd 8>; +}; + &A57_0 { clocks = <&scmi_dvfs 0>; }; --- a/arch/arm64/boot/dts/arm/juno-r2.dts~linux-next +++ a/arch/arm64/boot/dts/arm/juno-r2.dts @@ -9,6 +9,7 @@ /dts-v1/; #include +#include #include "juno-base.dtsi" #include "juno-cs-r1r2.dtsi" @@ -319,3 +320,27 @@ &cpu_debug5 { cpu = <&A53_3>; }; + +&cti0 { + cpu = <&A72_0>; +}; + +&cti1 { + cpu = <&A72_1>; +}; + +&cti2 { + cpu = <&A53_0>; +}; + +&cti3 { + cpu = <&A53_1>; +}; + +&cti4 { + cpu = <&A53_2>; +}; + +&cti5 { + cpu = <&A53_3>; +}; --- a/arch/arm64/boot/dts/arm/juno-r2-scmi.dts~linux-next +++ a/arch/arm64/boot/dts/arm/juno-r2-scmi.dts @@ -7,14 +7,18 @@ }; etf@20140000 { - power-domains = <&scmi_devpd 0>; + power-domains = <&scmi_devpd 8>; }; funnel@20150000 { - power-domains = <&scmi_devpd 0>; + power-domains = <&scmi_devpd 8>; }; }; +&cti_sys2 { + power-domains = <&scmi_devpd 8>; +}; + &A72_0 { clocks = <&scmi_dvfs 0>; }; --- a/arch/arm64/boot/dts/arm/juno-scmi.dtsi~linux-next +++ a/arch/arm64/boot/dts/arm/juno-scmi.dtsi @@ -154,6 +154,31 @@ power-domains = <&scmi_devpd 8>; }; +&cti0 { + power-domains = <&scmi_devpd 8>; +}; +&cti1 { + power-domains = <&scmi_devpd 8>; +}; +&cti2 { + power-domains = <&scmi_devpd 8>; +}; +&cti3 { + power-domains = <&scmi_devpd 8>; +}; +&cti4 { + power-domains = <&scmi_devpd 8>; +}; +&cti5 { + power-domains = <&scmi_devpd 8>; +}; +&cti_sys0 { + power-domains = <&scmi_devpd 8>; +}; +&cti_sys1 { + power-domains = <&scmi_devpd 8>; +}; + &gpu { clocks = <&scmi_dvfs 2>; power-domains = <&scmi_devpd 9>; --- a/arch/arm64/boot/dts/arm/Makefile~linux-next +++ a/arch/arm64/boot/dts/arm/Makefile @@ -6,3 +6,4 @@ dtb-$(CONFIG_ARCH_VEXPRESS) += juno.dtb dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2f-1xv7-ca53x2.dtb dtb-$(CONFIG_ARCH_VEXPRESS) += fvp-base-revc.dtb +dtb-$(CONFIG_ARCH_VEXPRESS) += corstone1000-fvp.dtb corstone1000-mps3.dtb --- a/arch/arm64/boot/dts/exynos/exynos5433.dtsi~linux-next +++ a/arch/arm64/boot/dts/exynos/exynos5433.dtsi @@ -806,7 +806,8 @@ }; timer@101c0000 { - compatible = "samsung,exynos4210-mct"; + compatible = "samsung,exynos5433-mct", + "samsung,exynos4210-mct"; reg = <0x101c0000 0x800>; interrupts = , , --- a/arch/arm64/boot/dts/exynos/exynos850.dtsi~linux-next +++ a/arch/arm64/boot/dts/exynos/exynos850.dtsi @@ -29,22 +29,6 @@ pinctrl3 = &pinctrl_hsi; pinctrl4 = &pinctrl_core; pinctrl5 = &pinctrl_peri; - mmc0 = &mmc_0; - serial0 = &serial_0; - serial1 = &serial_1; - serial2 = &serial_2; - i2c0 = &i2c_0; - i2c1 = &i2c_1; - i2c2 = &i2c_2; - i2c3 = &i2c_3; - i2c4 = &i2c_4; - i2c5 = &i2c_5; - i2c6 = &i2c_6; - i2c7 = &hsi2c_0; - i2c8 = &hsi2c_1; - i2c9 = &hsi2c_2; - i2c10 = &hsi2c_3; - i2c11 = &hsi2c_4; }; arm-pmu { @@ -181,7 +165,8 @@ }; timer@10040000 { - compatible = "samsung,exynos4210-mct"; + compatible = "samsung,exynos850-mct", + "samsung,exynos4210-mct"; reg = <0x10040000 0x800>; interrupts = , , --- a/arch/arm64/boot/dts/exynos/exynos850-e850-96.dts~linux-next +++ a/arch/arm64/boot/dts/exynos/exynos850-e850-96.dts @@ -20,6 +20,11 @@ model = "WinLink E850-96 board"; compatible = "winlink,e850-96", "samsung,exynos850"; + aliases { + mmc0 = &mmc_0; + serial0 = &serial_0; + }; + chosen { stdout-path = &serial_0; }; --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi @@ -599,7 +599,6 @@ compatible = "fsl,ls1028a-dwc3", "snps,dwc3"; reg = <0x0 0x3100000 0x0 0x10000>; interrupts = ; - dr_mode = "host"; snps,dis_rxdet_inp3_quirk; snps,quirk-frame-length-adjustment = <0x20>; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; @@ -610,7 +609,6 @@ compatible = "fsl,ls1028a-dwc3", "snps,dwc3"; reg = <0x0 0x3110000 0x0 0x10000>; interrupts = ; - dr_mode = "host"; snps,dis_rxdet_inp3_quirk; snps,quirk-frame-length-adjustment = <0x20>; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts~linux-next +++ a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts @@ -311,10 +311,19 @@ status = "okay"; }; +&mscc_felix_port4 { + dsa-tag-protocol = "ocelot-8021q"; +}; + +&mscc_felix_port5 { + dsa-tag-protocol = "ocelot-8021q"; +}; + &usb0 { status = "okay"; }; &usb1 { + dr_mode = "host"; status = "okay"; }; --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts~linux-next +++ a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts @@ -382,9 +382,11 @@ }; &usb0 { + dr_mode = "host"; status = "okay"; }; &usb1 { + dr_mode = "host"; status = "okay"; }; --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts~linux-next +++ a/arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts @@ -299,10 +299,10 @@ }; &usb0 { + dr_mode = "host"; status = "okay"; }; &usb1 { - dr_mode = "otg"; status = "okay"; }; --- a/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi @@ -104,21 +104,21 @@ &dspi { status = "okay"; - dflash0: n25q128a@0 { + dflash0: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "st,m25p80"; spi-max-frequency = <3000000>; reg = <0>; }; - dflash1: sst25wf040b@1 { + dflash1: flash@1 { #address-cells = <1>; #size-cells = <1>; compatible = "st,m25p80"; spi-max-frequency = <3000000>; reg = <1>; }; - dflash2: en25s64@2 { + dflash2: flash@2 { #address-cells = <1>; #size-cells = <1>; compatible = "st,m25p80"; @@ -129,7 +129,7 @@ &qspi { status = "okay"; - flash0: s25fl256s1@0 { + flash0: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "st,m25p80"; @@ -138,7 +138,7 @@ spi-tx-bus-width = <4>; reg = <0>; }; - flash2: s25fl256s1@2 { + flash2: flash@2 { #address-cells = <1>; #size-cells = <1>; compatible = "st,m25p80"; --- a/arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi @@ -100,7 +100,7 @@ &dspi { status = "okay"; - dflash0: n25q512a@0 { + dflash0: flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "st,m25p80"; --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi @@ -909,7 +909,7 @@ QORIQ_CLK_PLL_DIV(8)>, <&clockgen QORIQ_CLK_SYSCLK 0>; clock-names = "ipg", "per"; - fsl,clk-source = <0>; + fsl,clk-source = /bits/ 8 <0>; status = "disabled"; }; @@ -921,7 +921,7 @@ QORIQ_CLK_PLL_DIV(8)>, <&clockgen QORIQ_CLK_SYSCLK 0>; clock-names = "ipg", "per"; - fsl,clk-source = <0>; + fsl,clk-source = /bits/ 8 <0>; status = "disabled"; }; --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8mm-data-modul-edm-sbc.dts @@ -0,0 +1,996 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2022 Marek Vasut + */ + +/dts-v1/; + +#include +#include +#include "imx8mm.dtsi" + +/ { + model = "Data Modul i.MX8M Mini eDM SBC"; + compatible = "dmo,imx8mm-data-modul-edm-sbc", "fsl,imx8mm"; + + aliases { + rtc0 = &rtc; + rtc1 = &snvs_rtc; + }; + + chosen { + stdout-path = &uart3; + }; + + memory@40000000 { + device_type = "memory"; + /* There are 1/2/4 GiB options, adjusted by bootloader. */ + reg = <0x0 0x40000000 0 0x40000000>; + }; + + backlight: backlight { + compatible = "pwm-backlight"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_panel_backlight>; + brightness-levels = <0 1 10 20 30 40 50 60 70 75 80 90 100>; + default-brightness-level = <7>; + enable-gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>; + pwms = <&pwm1 0 5000000>; + /* Disabled by default, unless display board plugged in. */ + status = "disabled"; + }; + + clk_xtal25: clk-xtal25 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <25000000>; + }; + + panel: panel { + backlight = <&backlight>; + power-supply = <®_panel_vcc>; + /* Disabled by default, unless display board plugged in. */ + status = "disabled"; + }; + + reg_panel_vcc: regulator-panel-vcc { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_panel_vcc_reg>; + regulator-name = "PANEL_VCC"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio3 6 0>; + enable-active-high; + /* Disabled by default, unless display board plugged in. */ + status = "disabled"; + }; + + reg_usdhc2_vcc: regulator-usdhc2-vcc { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc2_vcc_reg>; + regulator-name = "V_3V3_SD"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&gpio2 19 0>; + enable-active-high; + }; + + watchdog-gpio { + /* TPS3813 */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_watchdog_gpio>; + compatible = "linux,wdt-gpio"; + always-enabled; + gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; + hw_algo = "level"; + /* Reset triggers in 2..3 seconds */ + hw_margin_ms = <1500>; + /* Disabled by default */ + status = "disabled"; + }; +}; + +&A53_0 { + cpu-supply = <&buck2_reg>; +}; + +&A53_1 { + cpu-supply = <&buck2_reg>; +}; + +&A53_2 { + cpu-supply = <&buck2_reg>; +}; + +&A53_3 { + cpu-supply = <&buck2_reg>; +}; + +&ddrc { + operating-points-v2 = <&ddrc_opp_table>; + + ddrc_opp_table: opp-table { + compatible = "operating-points-v2"; + + opp-25M { + opp-hz = /bits/ 64 <25000000>; + }; + + opp-100M { + opp-hz = /bits/ 64 <100000000>; + }; + + opp-750M { + opp-hz = /bits/ 64 <750000000>; + }; + }; +}; + +&ecspi1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ecspi1>; + cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; + status = "okay"; + + flash@0 { /* W25Q128FVSI */ + compatible = "jedec,spi-nor"; + m25p,fast-read; + spi-max-frequency = <50000000>; + reg = <0>; + }; +}; + +&ecspi2 { /* Feature connector SPI */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ecspi2>; + cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>; + /* Disabled by default, unless feature board plugged in. */ + status = "disabled"; +}; + +&ecspi3 { /* Display connector SPI */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ecspi3>; + cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>; + /* Disabled by default, unless display board plugged in. */ + status = "disabled"; +}; + +&fec1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_fec1>; + phy-mode = "rgmii-id"; + phy-handle = <&fec1_phy>; + phy-supply = <&buck4_reg>; + fsl,magic-packet; + status = "okay"; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + /* Atheros AR8031 PHY */ + fec1_phy: ethernet-phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0>; + /* + * Dedicated ENET_WOL# signal is unused, the PHY + * can wake the SoC up via INT signal as well. + */ + interrupts-extended = <&gpio1 15 IRQ_TYPE_LEVEL_LOW>; + reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; + reset-assert-us = <10000>; + reset-deassert-us = <10000>; + qca,clk-out-frequency = <125000000>; + qca,clk-out-strength = ; + qca,keep-pll-enabled; + vddio-supply = <&vddio>; + + vddio: vddio-regulator { + regulator-name = "VDDIO"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + vddh: vddh-regulator { + regulator-name = "VDDH"; + }; + }; + }; +}; + +&gpio1 { + gpio-line-names = + "", "ENET_RST#", "WDOG_B#", "PMIC_INT#", + "", "M2-B_PCIE_RST#", "M2-B_PCIE_WAKE#", "RTC_IRQ#", + "WDOG_KICK#", "M2-B_PCIE_CLKREQ#", + "USB1_OTG_ID_3V3", "ENET_WOL#", + "", "", "", "ENET_INT#", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", ""; +}; + +&gpio2 { + gpio-line-names = + "MEMCFG2", "MEMCFG1", "DSI_RESET_1V8#", "DSI_IRQ_1V8#", + "M2-B_FULL_CARD_PWROFF_1V8#", "EEPROM_WP_1V8#", + "PCIE_CLK_GEN_CLKPWRGD_PD_1V8#", "GRAPHICS_PRSNT_1V8#", + "MEMCFG0", "WDOG_EN", + "M2-B_W_DISABLE1_WWAN_1V8#", "M2-B_W_DISABLE2_GPS_1V8#", + "", "", "", "", + "", "", "", "SD2_RESET#", "", "", "", "", + "", "", "", "", "", "", "", ""; +}; + +&gpio3 { + gpio-line-names = + "BL_ENABLE_1V8", "PG_V_IN_VAR#", "", "", + "", "", "TFT_ENABLE_1V8", "GRAPHICS_GPIO0_1V8", + "CSI_PD_1V8", "CSI_RESET_1V8#", "", "", + "", "", "", "", + "", "", "", "M2-B_WAKE_WWAN_1V8#", + "M2-B_RESET_1V8#", "", "", "", + "", "", "", "", "", "", "", ""; +}; + +&gpio4 { + gpio-line-names = + "NC0", "NC1", "BOOTCFG0", "BOOTCFG1", + "BOOTCFG2", "BOOTCFG3", "BOOTCFG4", "BOOTCFG5", + "BOOTCFG6", "BOOTCFG7", "NC10", "NC11", + "BOOTCFG8", "BOOTCFG9", "BOOTCFG10", "BOOTCFG11", + "BOOTCFG12", "BOOTCFG13", "BOOTCFG14", "BOOTCFG15", + "NC20", "", "", "", + "", "CAN_INT#", "CAN_RST#", "GPIO4_IO27", + "DIS_USB_DN2", "", "", ""; +}; + +&gpio5 { + gpio-line-names = + "", "DIS_USB_DN1", "USBHUB_RESET#", "GPIO5_IO03", + "GPIO5_IO04", "", "", "", + "", "SPI1_CS#", "", "", + "", "SPI2_CS#", "I2C1_SCL_3V3", "I2C1_SDA_3V3", + "I2C2_SCL_3V3", "I2C2_SDA_3V3", "I2C3_SCL_3V3", "I2C3_SDA_3V3", + "I2C4_SCL_3V3", "I2C4_SDA_3V3", "", "", + "", "SPI3_CS#", "", "", "", "", "", ""; +}; + +&i2c1 { + /* IMX8MM ERRATA e7805 -- I2C is limited to 384 kHz due to SoC bug */ + clock-frequency = <100000>; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&pinctrl_i2c1>; + pinctrl-1 = <&pinctrl_i2c1_gpio>; + scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + status = "okay"; + + pmic: pmic@4b { + compatible = "rohm,bd71847"; + reg = <0x4b>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pmic>; + interrupt-parent = <&gpio1>; + interrupts = <3 IRQ_TYPE_EDGE_FALLING>; + rohm,reset-snvs-powered; + + /* + * i.MX 8M Mini Data Sheet for Consumer Products + * 3.1.3 Operating ranges + * MIMX8MM4DVTLZAA + */ + regulators { + /* VDD_SOC */ + buck1_reg: BUCK1 { + regulator-name = "buck1"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <1250>; + }; + + /* VDD_ARM */ + buck2_reg: BUCK2 { + regulator-name = "buck2"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1050000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <1250>; + rohm,dvs-run-voltage = <1000000>; + rohm,dvs-idle-voltage = <950000>; + }; + + /* VDD_DRAM, BUCK5 */ + buck3_reg: BUCK3 { + regulator-name = "buck3"; + /* 1.5 GHz DDR bus clock */ + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1000000>; + regulator-boot-on; + regulator-always-on; + }; + + /* 3V3_VDD, BUCK6 */ + buck4_reg: BUCK4 { + regulator-name = "buck4"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + /* 1V8_VDD, BUCK7 */ + buck5_reg: BUCK5 { + regulator-name = "buck5"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + /* 1V1_NVCC_DRAM, BUCK8 */ + buck6_reg: BUCK6 { + regulator-name = "buck6"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-boot-on; + regulator-always-on; + }; + + /* 1V8_NVCC_SNVS */ + ldo1_reg: LDO1 { + regulator-name = "ldo1"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + /* 0V8_VDD_SNVS */ + ldo2_reg: LDO2 { + regulator-name = "ldo2"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <800000>; + regulator-boot-on; + regulator-always-on; + }; + + /* 1V8_VDDA */ + ldo3_reg: LDO3 { + regulator-name = "ldo3"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + /* 0V9_VDD_PHY */ + ldo4_reg: LDO4 { + regulator-name = "ldo4"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + regulator-boot-on; + regulator-always-on; + }; + + /* 1V2_VDD_PHY */ + ldo6_reg: LDO6 { + regulator-name = "ldo6"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-boot-on; + regulator-always-on; + }; + }; + }; +}; + +&i2c2 { + /* IMX8MM ERRATA e7805 -- I2C is limited to 384 kHz due to SoC bug */ + clock-frequency = <320000>; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&pinctrl_i2c2>; + pinctrl-1 = <&pinctrl_i2c2_gpio>; + scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + status = "okay"; + + usb-hub@2c { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usb_hub>; + compatible = "microchip,usb2514bi"; + reg = <0x2c>; + individual-port-switching; + reset-gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; + self-powered; + }; + + eeprom: eeprom@50 { + compatible = "atmel,24c32"; + reg = <0x50>; + pagesize = <32>; + }; + + rtc: rtc@68 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_rtc>; + compatible = "st,m41t62"; + reg = <0x68>; + interrupts-extended = <&gpio1 7 IRQ_TYPE_LEVEL_LOW>; + }; + + pcieclk: clk@6a { + compatible = "renesas,9fgv0241"; + reg = <0x6a>; + clocks = <&clk_xtal25>; + #clock-cells = <1>; + }; +}; + +&i2c3 { /* Display connector I2C */ + /* IMX8MM ERRATA e7805 -- I2C is limited to 384 kHz due to SoC bug */ + clock-frequency = <320000>; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&pinctrl_i2c3>; + pinctrl-1 = <&pinctrl_i2c3_gpio>; + scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + status = "okay"; +}; + +&i2c4 { /* Feature connector I2C */ + /* IMX8MM ERRATA e7805 -- I2C is limited to 384 kHz due to SoC bug */ + clock-frequency = <320000>; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&pinctrl_i2c4>; + pinctrl-1 = <&pinctrl_i2c4_gpio>; + scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + status = "okay"; +}; + +&iomuxc { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hog_feature>, <&pinctrl_hog_misc>, + <&pinctrl_hog_panel>, <&pinctrl_hog_sbc>, + <&pinctrl_panel_expansion>; + + pinctrl_ecspi1: ecspi1-grp { + fsl,pins = < + MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x44 + MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x44 + MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x44 + MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x40 + >; + }; + + pinctrl_ecspi2: ecspi2-grp { + fsl,pins = < + MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x44 + MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x44 + MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x44 + MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0x40 + >; + }; + + pinctrl_ecspi3: ecspi3-grp { + fsl,pins = < + MX8MM_IOMUXC_UART1_RXD_ECSPI3_SCLK 0x44 + MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI 0x44 + MX8MM_IOMUXC_UART2_RXD_ECSPI3_MISO 0x44 + MX8MM_IOMUXC_UART2_TXD_GPIO5_IO25 0x40 + >; + }; + + pinctrl_fec1: fec1-grp { + fsl,pins = < + MX8MM_IOMUXC_ENET_MDC_ENET1_MDC 0x3 + MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO 0x3 + MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0 0x91 + MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1 0x91 + MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2 0x91 + MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3 0x91 + MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC 0x91 + MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91 + MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0 0x1f + MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1 0x1f + MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2 0x1f + MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3 0x1f + MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC 0x1f + MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f + /* ENET_RST# */ + MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1 0x6 + /* ENET_WOL# */ + MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11 0x40000090 + /* ENET_INT# */ + MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15 0x40000090 + >; + }; + + pinctrl_hog_feature: hog-feature-grp { + fsl,pins = < + /* GPIO4_IO27 */ + MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27 0x40000006 + /* GPIO5_IO03 */ + MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3 0x40000006 + /* GPIO5_IO04 */ + MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4 0x40000006 + + /* CAN_INT# */ + MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25 0x40000090 + /* CAN_RST# */ + MX8MM_IOMUXC_SAI2_TXD0_GPIO4_IO26 0x26 + >; + }; + + pinctrl_hog_panel: hog-panel-grp { + fsl,pins = < + /* GRAPHICS_GPIO0_1V8 */ + MX8MM_IOMUXC_NAND_DATA01_GPIO3_IO7 0x26 + >; + }; + + pinctrl_hog_misc: hog-misc-grp { + fsl,pins = < + /* PG_V_IN_VAR# */ + MX8MM_IOMUXC_NAND_CE0_B_GPIO3_IO1 0x40000000 + /* CSI_PD_1V8 */ + MX8MM_IOMUXC_NAND_DATA02_GPIO3_IO8 0x0 + /* CSI_RESET_1V8# */ + MX8MM_IOMUXC_NAND_DATA03_GPIO3_IO9 0x0 + + /* DIS_USB_DN1 */ + MX8MM_IOMUXC_SAI3_TXD_GPIO5_IO1 0x0 + /* DIS_USB_DN2 */ + MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28 0x0 + + /* EEPROM_WP_1V8# */ + MX8MM_IOMUXC_SD1_DATA3_GPIO2_IO5 0x100 + /* PCIE_CLK_GEN_CLKPWRGD_PD_1V8# */ + MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6 0x0 + /* GRAPHICS_PRSNT_1V8# */ + MX8MM_IOMUXC_SD1_DATA5_GPIO2_IO7 0x40000000 + + /* CLK_CCM_CLKO1_3V3 */ + MX8MM_IOMUXC_GPIO1_IO14_CCMSRCGPCMIX_CLKO1 0x10 + >; + }; + + pinctrl_hog_sbc: hog-sbc-grp { + fsl,pins = < + /* MEMCFG[0..2] straps */ + MX8MM_IOMUXC_SD1_DATA6_GPIO2_IO8 0x40000140 + MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1 0x40000140 + MX8MM_IOMUXC_SD1_CLK_GPIO2_IO0 0x40000140 + + /* BOOT_CFG[0..15] straps */ + MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2 0x40000000 + MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3 0x40000000 + MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4 0x40000000 + MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5 0x40000000 + MX8MM_IOMUXC_SAI1_RXD4_GPIO4_IO6 0x40000000 + MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7 0x40000000 + MX8MM_IOMUXC_SAI1_RXD6_GPIO4_IO8 0x40000000 + MX8MM_IOMUXC_SAI1_RXD7_GPIO4_IO9 0x40000000 + MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12 0x40000000 + MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13 0x40000000 + MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14 0x40000000 + MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15 0x40000000 + MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16 0x40000000 + MX8MM_IOMUXC_SAI1_TXD5_GPIO4_IO17 0x40000000 + MX8MM_IOMUXC_SAI1_TXD6_GPIO4_IO18 0x40000000 + MX8MM_IOMUXC_SAI1_TXD7_GPIO4_IO19 0x40000000 + + /* Not connected pins */ + MX8MM_IOMUXC_SAI1_MCLK_GPIO4_IO20 0x0 + MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10 0x0 + MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11 0x0 + MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0 0x0 + MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1 0x0 + >; + }; + + pinctrl_i2c1: i2c1-grp { + fsl,pins = < + MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL 0x40000084 + MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA 0x40000084 + >; + }; + + pinctrl_i2c1_gpio: i2c1-gpio-grp { + fsl,pins = < + MX8MM_IOMUXC_I2C1_SCL_GPIO5_IO14 0x84 + MX8MM_IOMUXC_I2C1_SDA_GPIO5_IO15 0x84 + >; + }; + + pinctrl_i2c2: i2c2-grp { + fsl,pins = < + MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL 0x40000084 + MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA 0x40000084 + >; + }; + + pinctrl_i2c2_gpio: i2c2-gpio-grp { + fsl,pins = < + MX8MM_IOMUXC_I2C2_SCL_GPIO5_IO16 0x84 + MX8MM_IOMUXC_I2C2_SDA_GPIO5_IO17 0x84 + >; + }; + + pinctrl_i2c3: i2c3-grp { + fsl,pins = < + MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL 0x40000084 + MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA 0x40000084 + >; + }; + + pinctrl_i2c3_gpio: i2c3-gpio-grp { + fsl,pins = < + MX8MM_IOMUXC_I2C3_SCL_GPIO5_IO18 0x84 + MX8MM_IOMUXC_I2C3_SDA_GPIO5_IO19 0x84 + >; + }; + + pinctrl_i2c4: i2c4-grp { + fsl,pins = < + MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL 0x40000084 + MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA 0x40000084 + >; + }; + + pinctrl_i2c4_gpio: i2c4-gpio-grp { + fsl,pins = < + MX8MM_IOMUXC_I2C4_SCL_GPIO5_IO20 0x84 + MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21 0x84 + >; + }; + + pinctrl_panel_backlight: panel-backlight-grp { + fsl,pins = < + /* BL_ENABLE_1V8 */ + MX8MM_IOMUXC_NAND_ALE_GPIO3_IO0 0x104 + >; + }; + + pinctrl_panel_expansion: panel-expansion-grp { + fsl,pins = < + /* DSI_RESET_1V8# */ + MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2 0x2 + /* DSI_IRQ_1V8# */ + MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3 0x40000090 + >; + }; + + pinctrl_panel_vcc_reg: panel-vcc-grp { + fsl,pins = < + /* TFT_ENABLE_1V8 */ + MX8MM_IOMUXC_NAND_DATA00_GPIO3_IO6 0x104 + >; + }; + + pinctrl_panel_pwm: panel-pwm-grp { + fsl,pins = < + /* BL_PWM_3V3 */ + MX8MM_IOMUXC_SPDIF_EXT_CLK_PWM1_OUT 0x12 + >; + }; + + pinctrl_pcie0: pcie-grp { + fsl,pins = < + /* M2-B_RESET_1V8# */ + MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20 0x102 + /* M2-B_PCIE_RST# */ + MX8MM_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x2 + /* M2-B_FULL_CARD_PWROFF_1V8# */ + MX8MM_IOMUXC_SD1_DATA2_GPIO2_IO4 0x102 + /* M2-B_W_DISABLE1_WWAN_1V8# */ + MX8MM_IOMUXC_SD1_RESET_B_GPIO2_IO10 0x102 + /* M2-B_W_DISABLE2_GPS_1V8# */ + MX8MM_IOMUXC_SD1_STROBE_GPIO2_IO11 0x102 + /* CLK_M2_32K768 */ + MX8MM_IOMUXC_GPIO1_IO00_ANAMIX_REF_CLK_32K 0x14 + /* M2-B_WAKE_WWAN_1V8# */ + MX8MM_IOMUXC_SAI5_RXFS_GPIO3_IO19 0x40000140 + /* M2-B_PCIE_WAKE# */ + MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x40000140 + /* M2-B_PCIE_CLKREQ# */ + MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x40000140 + >; + }; + + pinctrl_pmic: pmic-grp { + fsl,pins = < + MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3 0x40000090 + >; + }; + + pinctrl_rtc: rtc-grp { + fsl,pins = < + /* RTC_IRQ# */ + MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x40000090 + >; + }; + + pinctrl_sai5: sai5-grp { + fsl,pins = < + MX8MM_IOMUXC_SAI5_MCLK_SAI5_MCLK 0x100 + MX8MM_IOMUXC_SAI5_RXD0_SAI5_RX_DATA0 0x0 + MX8MM_IOMUXC_SAI5_RXD1_SAI5_TX_SYNC 0x100 + MX8MM_IOMUXC_SAI5_RXD2_SAI5_TX_BCLK 0x100 + MX8MM_IOMUXC_SAI5_RXD3_SAI5_TX_DATA0 0x100 + >; + }; + + pinctrl_uart1: uart1-grp { + fsl,pins = < + MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX 0x90 + MX8MM_IOMUXC_SAI2_RXD0_UART1_DCE_RTS_B 0x90 + MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX 0x50 + MX8MM_IOMUXC_SAI2_TXFS_UART1_DCE_CTS_B 0x50 + >; + }; + + pinctrl_uart2: uart2-grp { + fsl,pins = < + MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B 0x50 + MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B 0x90 + MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX 0x50 + MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX 0x90 + >; + }; + + pinctrl_uart3: uart3-grp { + fsl,pins = < + MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX 0x40 + MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX 0x40 + >; + }; + + pinctrl_uart4: uart4-grp { + fsl,pins = < + MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX 0x40 + MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX 0x40 + >; + }; + + pinctrl_usb_hub: usb-hub-grp { + fsl,pins = < + /* USBHUB_RESET# */ + MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2 0x4 + >; + }; + + pinctrl_usb_otg1: usb-otg1-grp { + fsl,pins = < + MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10 0x40000000 + MX8MM_IOMUXC_GPIO1_IO12_USB1_OTG_PWR 0x4 + MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC 0x40000090 + >; + }; + + pinctrl_usdhc2_vcc_reg: usdhc2-vcc-reg-grp { + fsl,pins = < + MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x4 + >; + }; + + pinctrl_usdhc2: usdhc2-grp { + fsl,pins = < + MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x190 + MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d0 + MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d0 + MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d0 + MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0 + MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0 + MX8MM_IOMUXC_SD2_WP_USDHC2_WP 0x400000d6 + MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x0d6 + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 + >; + }; + + pinctrl_usdhc2_100mhz: usdhc2-100mhz-grp { + fsl,pins = < + MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x194 + MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d4 + MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4 + MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4 + MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4 + MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4 + MX8MM_IOMUXC_SD2_WP_USDHC2_WP 0x400000d6 + MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x0d6 + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 + >; + }; + + pinctrl_usdhc2_200mhz: usdhc2-200mhz-grp { + fsl,pins = < + MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK 0x196 + MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD 0x1d6 + MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d6 + MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d6 + MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6 + MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6 + MX8MM_IOMUXC_SD2_WP_USDHC2_WP 0x400000d6 + MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B 0x0d6 + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 + >; + }; + + pinctrl_usdhc3: usdhc3-grp { + fsl,pins = < + MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x190 + MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d0 + MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d0 + MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d0 + MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d0 + MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d0 + MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d0 + MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d0 + MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d0 + MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d0 + MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x190 + MX8MM_IOMUXC_NAND_READY_B_SD3_RESET_B 0x40 + >; + }; + + pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp { + fsl,pins = < + MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x194 + MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d4 + MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d4 + MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d4 + MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d4 + MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d4 + MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d4 + MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d4 + MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d4 + MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d4 + MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x194 + MX8MM_IOMUXC_NAND_READY_B_SD3_RESET_B 0x40 + >; + }; + + pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp { + fsl,pins = < + MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x196 + MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d6 + MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0 0x1d6 + MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1 0x1d6 + MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2 0x1d6 + MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3 0x1d6 + MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4 0x1d6 + MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5 0x1d6 + MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6 0x1d6 + MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7 0x1d6 + MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE 0x196 + MX8MM_IOMUXC_NAND_READY_B_SD3_RESET_B 0x40 + >; + }; + + pinctrl_watchdog_gpio: watchdog-gpio-grp { + fsl,pins = < + /* WDOG_B# */ + MX8MM_IOMUXC_GPIO1_IO02_GPIO1_IO2 0x26 + /* WDOG_EN -- ungate WDT RESET# signal propagation */ + MX8MM_IOMUXC_SD1_DATA7_GPIO2_IO9 0x6 + /* WDOG_KICK# / WDI */ + MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8 0x26 + >; + }; +}; + +&pcie_phy { + fsl,clkreq-unsupported; /* CLKREQ_B is not connected to suitable input */ + fsl,refclk-pad-mode = ; + fsl,tx-deemph-gen1 = <0x2d>; + fsl,tx-deemph-gen2 = <0xf>; + clocks = <&pcieclk 0>; + status = "okay"; +}; + +&pcie0 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pcie0>; + reset-gpio = <&gpio1 5 GPIO_ACTIVE_LOW>; + clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>, <&clk IMX8MM_CLK_PCIE1_AUX>, + <&pcieclk 0>; + clock-names = "pcie", "pcie_aux", "pcie_bus"; + assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>, + <&clk IMX8MM_CLK_PCIE1_CTRL>; + assigned-clock-rates = <10000000>, <250000000>; + assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>, + <&clk IMX8MM_SYS_PLL2_250M>; + status = "okay"; +}; + +&pwm1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_panel_pwm>; + /* Disabled by default, unless display board plugged in. */ + status = "disabled"; +}; + +&sai5 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai5>; + fsl,sai-mclk-direction-output; + /* Input into codec PLL */ + assigned-clocks = <&clk IMX8MM_CLK_SAI5>; + assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL2_OUT>; + assigned-clock-rates = <22579200>; + /* Disabled by default, unless display board plugged in. */ + status = "disabled"; +}; + +&uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1>; + uart-has-rtscts; + status = "disabled"; +}; + +&uart2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart2>; + status = "disabled"; +}; + +&uart3 { /* A53 Debug */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart3>; + status = "okay"; +}; + +&uart4 { /* M4 Debug */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart4>; + /* UART4 is reserved for CM and RDC blocks CA access to UART4. */ + status = "disabled"; +}; + +&usbotg1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usb_otg1>; + dr_mode = "otg"; + status = "okay"; +}; + +&usbotg2 { + dr_mode = "host"; + status = "okay"; +}; + +&usdhc2 { /* MicroSD */ + assigned-clocks = <&clk IMX8MM_CLK_USDHC2_ROOT>; + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc2>; + pinctrl-1 = <&pinctrl_usdhc2_100mhz>; + pinctrl-2 = <&pinctrl_usdhc2_200mhz>; + bus-width = <4>; + vmmc-supply = <®_usdhc2_vcc>; + status = "okay"; +}; + +&usdhc3 { /* eMMC */ + assigned-clocks = <&clk IMX8MM_CLK_USDHC3_ROOT>; + assigned-clock-rates = <400000000>; + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc3>; + pinctrl-1 = <&pinctrl_usdhc3_100mhz>; + pinctrl-2 = <&pinctrl_usdhc3_200mhz>; + bus-width = <8>; + non-removable; + vmmc-supply = <&buck4_reg>; + vqmmc-supply = <&buck5_reg>; + status = "okay"; +}; + +&wdog1 { + status = "okay"; +}; --- a/arch/arm64/boot/dts/freescale/imx8mm-emcon.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mm-emcon.dtsi @@ -98,7 +98,7 @@ pinctrl-1 = <&pinctrl_flexspi1>; status = "okay"; - flash0: spi-flash@0 { + flash0: flash@0 { reg = <0>; #address-cells = <1>; #size-cells = <1>; --- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi @@ -59,6 +59,14 @@ enable-active-high; }; + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&pwm1 0 5000000>; + brightness-levels = <0 255>; + num-interpolated-steps = <255>; + default-brightness-level = <250>; + }; + ir-receiver { compatible = "gpio-ir-receiver"; gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; @@ -395,6 +403,12 @@ status = "okay"; }; +&pwm1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_backlight>; + status = "okay"; +}; + &iomuxc { pinctrl_fec1: fec1grp { fsl,pins = < @@ -549,4 +563,10 @@ MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0x166 >; }; + + pinctrl_backlight: backlightgrp { + fsl,pins = < + MX8MM_IOMUXC_GPIO1_IO01_PWM1_OUT 0x06 + >; + }; }; --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts @@ -182,7 +182,7 @@ #address-cells = <1>; #size-cells = <0>; - usbnet: usbether@1 { + usbnet: ethernet@1 { compatible = "usb424,ec00"; reg = <1>; local-mac-address = [ 00 00 00 00 00 00 ]; --- a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi @@ -66,7 +66,7 @@ cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; status = "okay"; - spi-flash@0 { + flash@0 { compatible = "mxicy,mx25r1635f", "jedec,spi-nor"; spi-max-frequency = <80000000>; reg = <0>; --- a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi @@ -146,12 +146,14 @@ &usbotg1 { dr_mode = "otg"; + over-current-active-low; vbus-supply = <®_usb_otg1_vbus>; status = "okay"; }; &usbotg2 { dr_mode = "host"; + disable-over-current; status = "okay"; }; @@ -215,7 +217,7 @@ fsl,pins = < MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0xd6 - MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 + MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0xd6 MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0xd6 >; }; --- a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx.dtsi @@ -211,12 +211,14 @@ &usbotg1 { dr_mode = "otg"; + over-current-active-low; vbus-supply = <®_usb_otg1_vbus>; status = "okay"; }; &usbotg2 { dr_mode = "host"; + disable-over-current; vbus-supply = <®_usb_otg2_vbus>; status = "okay"; }; @@ -309,7 +311,7 @@ fsl,pins = < MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0xd6 - MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 + MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0xd6 MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0xd6 >; }; --- a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx.dtsi @@ -221,6 +221,7 @@ pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_bten>; cts-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; rts-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; + uart-has-rtscts; status = "okay"; bluetooth { @@ -238,12 +239,14 @@ &usbotg1 { dr_mode = "otg"; + over-current-active-low; vbus-supply = <®_usb_otg1_vbus>; status = "okay"; }; &usbotg2 { dr_mode = "host"; + disable-over-current; vbus-supply = <®_usb_otg2_vbus>; status = "okay"; }; @@ -358,7 +361,7 @@ fsl,pins = < MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0xd6 - MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0xd6 + MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0xd6 MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0xd6 >; }; --- a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts @@ -716,6 +716,7 @@ dtr-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; dsr-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; dcd-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; + uart-has-rtscts; status = "okay"; }; @@ -731,6 +732,7 @@ pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_uart3_gpio>; cts-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; rts-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>; + uart-has-rtscts; status = "okay"; }; @@ -739,6 +741,7 @@ pinctrl-0 = <&pinctrl_uart4>, <&pinctrl_uart4_gpio>; cts-gpios = <&gpio5 11 GPIO_ACTIVE_LOW>; rts-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>; + uart-has-rtscts; status = "okay"; }; --- a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dts~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dts @@ -644,6 +644,7 @@ pinctrl-0 = <&pinctrl_uart1>, <&pinctrl_uart1_gpio>; rts-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; cts-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; + uart-has-rtscts; status = "okay"; }; @@ -660,6 +661,7 @@ pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_uart3_gpio>; rts-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; cts-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; + uart-has-rtscts; status = "okay"; bluetooth { @@ -677,6 +679,7 @@ dtr-gpios = <&gpio4 3 GPIO_ACTIVE_LOW>; dsr-gpios = <&gpio4 4 GPIO_ACTIVE_LOW>; dcd-gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; + uart-has-rtscts; status = "okay"; }; --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi @@ -114,7 +114,7 @@ status = "okay"; }; -/* VERDIN I2S_1 */ +/* Verdin I2S_1 */ &sai2 { status = "okay"; }; --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi @@ -86,7 +86,7 @@ regulator-boot-on; regulator-max-microvolt = <3300000>; regulator-min-microvolt = <3300000>; - regulator-name = "+V3.3_ETH"; + regulator-name = "On-module +V3.3_ETH"; startup-delay-us = <200000>; }; @@ -99,7 +99,7 @@ pinctrl-0 = <&pinctrl_reg_usb1_en>; regulator-max-microvolt = <5000000>; regulator-min-microvolt = <5000000>; - regulator-name = "usb_otg1_vbus"; + regulator-name = "USB_1_EN"; }; reg_usb_otg2_vbus: regulator-usb-otg2 { @@ -111,7 +111,7 @@ pinctrl-0 = <&pinctrl_reg_usb2_en>; regulator-max-microvolt = <5000000>; regulator-min-microvolt = <5000000>; - regulator-name = "usb_otg2_vbus"; + regulator-name = "USB_2_EN"; }; reg_usdhc2_vmmc: regulator-usdhc2 { @@ -306,7 +306,7 @@ "SODIMM_151", "SODIMM_153"; - ctrl_sleep_moci-hog { + ctrl-sleep-moci-hog { gpio-hog; /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ gpios = <1 GPIO_ACTIVE_HIGH>; @@ -337,6 +337,11 @@ reg = <0x25>; sd-vsel-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; + /* + * The bootloader is expected to switch on the I2C level shifter for the TLA2024 ADC + * behind this PMIC. + */ + regulators { reg_vdd_soc: BUCK1 { nxp,dvs-run-voltage = <850000>; @@ -345,7 +350,7 @@ regulator-boot-on; regulator-max-microvolt = <850000>; regulator-min-microvolt = <800000>; - regulator-name = "+VDD_SOC"; + regulator-name = "On-module +VDD_SOC (BUCK1)"; regulator-ramp-delay = <3125>; }; @@ -356,7 +361,7 @@ regulator-boot-on; regulator-max-microvolt = <950000>; regulator-min-microvolt = <850000>; - regulator-name = "+VDD_ARM"; + regulator-name = "On-module +VDD_ARM (BUCK2)"; regulator-ramp-delay = <3125>; }; @@ -365,7 +370,7 @@ regulator-boot-on; regulator-max-microvolt = <950000>; regulator-min-microvolt = <850000>; - regulator-name = "+VDD_GPU_VPU_DDR"; + regulator-name = "On-module +VDD_GPU_VPU_DDR (BUCK3)"; }; reg_vdd_3v3: BUCK4 { @@ -373,7 +378,7 @@ regulator-boot-on; regulator-max-microvolt = <3300000>; regulator-min-microvolt = <3300000>; - regulator-name = "+V3.3"; + regulator-name = "On-module +V3.3 (BUCK4)"; }; reg_vdd_1v8: BUCK5 { @@ -381,7 +386,7 @@ regulator-boot-on; regulator-max-microvolt = <1800000>; regulator-min-microvolt = <1800000>; - regulator-name = "PWR_1V8_MOCI"; + regulator-name = "PWR_1V8_MOCI (BUCK5)"; }; reg_nvcc_dram: BUCK6 { @@ -389,7 +394,7 @@ regulator-boot-on; regulator-max-microvolt = <1100000>; regulator-min-microvolt = <1100000>; - regulator-name = "+VDD_DDR"; + regulator-name = "On-module +VDD_DDR (BUCK6)"; }; reg_nvcc_snvs: LDO1 { @@ -397,7 +402,7 @@ regulator-boot-on; regulator-max-microvolt = <1800000>; regulator-min-microvolt = <1800000>; - regulator-name = "+V1.8_SNVS"; + regulator-name = "On-module +V1.8_SNVS (LDO1)"; }; reg_vdd_snvs: LDO2 { @@ -405,7 +410,7 @@ regulator-boot-on; regulator-max-microvolt = <900000>; regulator-min-microvolt = <800000>; - regulator-name = "+V0.8_SNVS"; + regulator-name = "On-module +V0.8_SNVS (LDO2)"; }; reg_vdda: LDO3 { @@ -413,7 +418,7 @@ regulator-boot-on; regulator-max-microvolt = <1800000>; regulator-min-microvolt = <1800000>; - regulator-name = "+V1.8A"; + regulator-name = "On-module +V1.8A (LDO3)"; }; reg_vdd_phy: LDO4 { @@ -421,13 +426,13 @@ regulator-boot-on; regulator-max-microvolt = <900000>; regulator-min-microvolt = <900000>; - regulator-name = "+V0.9_MIPI"; + regulator-name = "On-module +V0.9_MIPI (LDO4)"; }; reg_nvcc_sd: LDO5 { regulator-max-microvolt = <3300000>; regulator-min-microvolt = <1800000>; - regulator-name = "+V3.3_1.8_SD"; + regulator-name = "On-module +V3.3_1.8_SD (LDO5)"; }; }; }; @@ -580,8 +585,10 @@ atmel_mxt_ts: touch@4a { compatible = "atmel,maxtouch"; - /* Verdin GPIO_9_DSI */ - /* (TOUCH_INT#, SODIMM 17, also routed to SN65dsi83 IRQ albeit currently unused) */ + /* + * Verdin GPIO_9_DSI + * (TOUCH_INT#, SODIMM 17, also routed to SN65DSI83 IRQ albeit currently unused) + */ interrupt-parent = <&gpio3>; interrupts = <15 IRQ_TYPE_EDGE_FALLING>; pinctrl-names = "default"; @@ -661,7 +668,7 @@ #pwm-cells = <3>; }; -/* VERDIN I2S_1 */ +/* Verdin I2S_1 */ &sai2 { #sound-dai-cells = <0>; assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>; @@ -695,8 +702,8 @@ uart-has-rtscts; }; -/* Verdin UART_4 */ /* + * Verdin UART_4 * Resource allocated to M4 by default, must not be accessed from Cortex-A35 or you get an OOPS */ &uart4 { @@ -750,10 +757,11 @@ bus-width = <4>; cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; disable-wp; - pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_cd>; pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_cd>; pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_cd>; + pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_cd_sleep>; vmmc-supply = <®_usdhc2_vmmc>; }; @@ -774,235 +782,235 @@ pinctrl_can1_int: can1intgrp { fsl,pins = - ; /* CAN_1_SPI_INT#_1.8V */ + ; /* CAN_1_SPI_INT#_1.8V */ }; pinctrl_can2_int: can2intgrp { fsl,pins = - ; /* CAN_2_SPI_INT#_1.8V */ + ; /* CAN_2_SPI_INT#_1.8V, unused */ }; pinctrl_ctrl_sleep_moci: ctrlsleepmocigrp { fsl,pins = - ; /* SODIMM 256 */ + ; /* SODIMM 256 */ }; pinctrl_ecspi2: ecspi2grp { fsl,pins = - , /* SODIMM 196 */ - , /* SODIMM 200 */ - , /* SODIMM 198 */ - ; /* SODIMM 202 */ + , /* SODIMM 198 */ + , /* SODIMM 200 */ + , /* SODIMM 196 */ + ; /* SODIMM 202 */ }; pinctrl_ecspi3: ecspi3grp { fsl,pins = - , /* CAN_SPI_SCK_1.8V */ - , /* CAN_SPI_MOSI_1.8V */ - , /* CAN_SPI_MISO_1.8V */ - , /* CAN_1_SPI_CS_1.8V# */ - ; /* CAN_2_SPI_CS#_1.8V */ + , /* CAN_2_SPI_CS#_1.8V */ + , /* CAN_SPI_SCK_1.8V */ + , /* CAN_SPI_MOSI_1.8V */ + , /* CAN_SPI_MISO_1.8V */ + ; /* CAN_1_SPI_CS_1.8V# */ }; pinctrl_fec1: fec1grp { fsl,pins = , , - , - , - , - , - , - , - , , - , + , + , + , , , + , + , + , + , + , , - ; + ; }; pinctrl_fec1_sleep: fec1-sleepgrp { fsl,pins = , , - , - , - , - , - , - , - , , - , + , + , + , , , + , + , + , + , + , , - ; + ; }; pinctrl_flexspi0: flexspi0grp { fsl,pins = - , /* SODIMM 52 */ - , /* SODIMM 54 */ - , /* SODIMM 64 */ - , /* SODIMM 66 */ - , /* SODIMM 56 */ - , /* SODIMM 58 */ - , /* SODIMM 60 */ - ; /* SODIMM 62 */ + , /* SODIMM 52 */ + , /* SODIMM 54 */ + , /* SODIMM 64 */ + , /* SODIMM 56 */ + , /* SODIMM 58 */ + , /* SODIMM 60 */ + , /* SODIMM 62 */ + ; /* SODIMM 66 */ }; pinctrl_gpio1: gpio1grp { fsl,pins = - ; /* SODIMM 206 */ + ; /* SODIMM 206 */ }; pinctrl_gpio2: gpio2grp { fsl,pins = - ; /* SODIMM 208 */ + ; /* SODIMM 208 */ }; pinctrl_gpio3: gpio3grp { fsl,pins = - ; /* SODIMM 210 */ + ; /* SODIMM 210 */ }; pinctrl_gpio4: gpio4grp { fsl,pins = - ; /* SODIMM 212 */ + ; /* SODIMM 212 */ }; pinctrl_gpio5: gpio5grp { fsl,pins = - ; /* SODIMM 216 */ + ; /* SODIMM 216 */ }; pinctrl_gpio6: gpio6grp { fsl,pins = - ; /* SODIMM 218 */ + ; /* SODIMM 218 */ }; pinctrl_gpio7: gpio7grp { fsl,pins = - ; /* SODIMM 220 */ + ; /* SODIMM 220 */ }; pinctrl_gpio8: gpio8grp { fsl,pins = - ; /* SODIMM 222 */ + ; /* SODIMM 222 */ }; /* Verdin GPIO_9_DSI (pulled-up as active-low) */ pinctrl_gpio_9_dsi: gpio9dsigrp { fsl,pins = - ; /* SODIMM 17 */ + ; /* SODIMM 17 */ }; - /* Verdin GPIO_10_DSI */ + /* Verdin GPIO_10_DSI (pulled-up as active-low) */ pinctrl_gpio_10_dsi: gpio10dsigrp { fsl,pins = - ; /* SODIMM 21 */ + ; /* SODIMM 21 */ }; pinctrl_gpio_hog1: gpiohog1grp { fsl,pins = - , /* SODIMM 88 */ - , /* SODIMM 90 */ - , /* SODIMM 92 */ - , /* SODIMM 94 */ - , /* SODIMM 96 */ - , /* SODIMM 100 */ - , /* SODIMM 102 */ - , /* SODIMM 104 */ - , /* SODIMM 106 */ - , /* SODIMM 108 */ - , /* SODIMM 112 */ - , /* SODIMM 114 */ - , /* SODIMM 116 */ - , /* SODIMM 118 */ - ; /* SODIMM 120 */ + , /* SODIMM 88 */ + , /* SODIMM 90 */ + , /* SODIMM 92 */ + , /* SODIMM 94 */ + , /* SODIMM 96 */ + , /* SODIMM 100 */ + , /* SODIMM 102 */ + , /* SODIMM 104 */ + , /* SODIMM 106 */ + , /* SODIMM 108 */ + , /* SODIMM 112 */ + , /* SODIMM 114 */ + , /* SODIMM 116 */ + , /* SODIMM 118 */ + ; /* SODIMM 120 */ }; pinctrl_gpio_hog2: gpiohog2grp { fsl,pins = - ; /* SODIMM 91 */ + ; /* SODIMM 91 */ }; pinctrl_gpio_hog3: gpiohog3grp { fsl,pins = - , /* SODIMM 157 */ - ; /* SODIMM 187 */ + , /* SODIMM 157 */ + ; /* SODIMM 187 */ }; pinctrl_gpio_keys: gpiokeysgrp { fsl,pins = - ; /* SODIMM 252 */ + ; /* SODIMM 252 */ }; /* On-module I2C */ pinctrl_i2c1: i2c1grp { fsl,pins = - , /* PMIC_I2C_SCL */ - ; /* PMIC_I2C_SDA */ + , /* PMIC_I2C_SCL */ + ; /* PMIC_I2C_SDA */ }; pinctrl_i2c1_gpio: i2c1gpiogrp { fsl,pins = - , /* PMIC_I2C_SCL */ - ; /* PMIC_I2C_SDA */ + , /* PMIC_I2C_SCL */ + ; /* PMIC_I2C_SDA */ }; /* Verdin I2C_4_CSI */ pinctrl_i2c2: i2c2grp { fsl,pins = - , /* SODIMM 55 */ - ; /* SODIMM 53 */ + , /* SODIMM 55 */ + ; /* SODIMM 53 */ }; pinctrl_i2c2_gpio: i2c2gpiogrp { fsl,pins = - , /* SODIMM 55 */ - ; /* SODIMM 53 */ + , /* SODIMM 55 */ + ; /* SODIMM 53 */ }; /* Verdin I2C_2_DSI */ pinctrl_i2c3: i2c3grp { fsl,pins = - , /* SODIMM 95 */ - ; /* SODIMM 93 */ + , /* SODIMM 95 */ + ; /* SODIMM 93 */ }; pinctrl_i2c3_gpio: i2c3gpiogrp { fsl,pins = - , /* SODIMM 95 */ - ; /* SODIMM 93 */ + , /* SODIMM 95 */ + ; /* SODIMM 93 */ }; /* Verdin I2C_1 */ pinctrl_i2c4: i2c4grp { fsl,pins = - , /* SODIMM 14 */ - ; /* SODIMM 12 */ + , /* SODIMM 14 */ + ; /* SODIMM 12 */ }; pinctrl_i2c4_gpio: i2c4gpiogrp { fsl,pins = - , /* SODIMM 14 */ - ; /* SODIMM 12 */ + , /* SODIMM 14 */ + ; /* SODIMM 12 */ }; /* Verdin I2S_2_BCLK (TOUCH_RESET#) */ pinctrl_i2s_2_bclk_touch_reset: i2s2bclktouchresetgrp { fsl,pins = - ; /* SODIMM 42 */ + ; /* SODIMM 42 */ }; /* Verdin I2S_2_D_OUT shared with SAI5 */ pinctrl_i2s_2_d_out_dsi_1_bkl_en: i2s2doutdsi1bklengrp { fsl,pins = - ; /* SODIMM 46 */ + ; /* SODIMM 46 */ }; pinctrl_pcie0: pcie0grp { @@ -1014,7 +1022,7 @@ pinctrl_pmic: pmicirqgrp { fsl,pins = - ; /* PMIC_INT# */ + ; /* PMIC_INT# */ }; /* Verdin PWM_3_DSI shared with GPIO1_IO1 */ @@ -1036,82 +1044,82 @@ /* Verdin PWM_3_DSI (pulled-down as active-high) shared with PWM1_OUT */ pinctrl_pwm_3_dsi_hpd_gpio: pwm3dsihpdgpiogrp { fsl,pins = - ; /* SODIMM 19 */ + ; /* SODIMM 19 */ }; pinctrl_reg_eth: regethgrp { fsl,pins = - ; /* PMIC_EN_ETH */ + ; /* PMIC_EN_ETH */ }; pinctrl_reg_usb1_en: regusb1engrp { fsl,pins = - ; /* SODIMM 155 */ + ; /* SODIMM 155 */ }; pinctrl_reg_usb2_en: regusb2engrp { fsl,pins = - ; /* SODIMM 185 */ + ; /* SODIMM 185 */ }; pinctrl_sai2: sai2grp { fsl,pins = - , /* SODIMM 32 */ - , /* SODIMM 30 */ - , /* SODIMM 38 */ - , /* SODIMM 36 */ - ; /* SODIMM 34 */ + , /* SODIMM 38 */ + , /* SODIMM 30 */ + , /* SODIMM 32 */ + , /* SODIMM 36 */ + ; /* SODIMM 34 */ }; pinctrl_sai5: sai5grp { fsl,pins = - , /* SODIMM 48 */ - , /* SODIMM 44 */ - , /* SODIMM 42 */ - ; /* SODIMM 46 */ + , /* SODIMM 48 */ + , /* SODIMM 44 */ + , /* SODIMM 42 */ + ; /* SODIMM 46 */ }; /* control signal for optional ATTPM20P or SE050 */ pinctrl_pmic_tpm_ena: pmictpmenagrp { fsl,pins = - ; /* PMIC_TPM_ENA */ + ; /* PMIC_TPM_ENA */ }; pinctrl_tsp: tspgrp { fsl,pins = - , /* SODIMM 148 */ - , /* SODIMM 152 */ - , /* SODIMM 154 */ - , /* SODIMM 174 */ - ; /* SODIMM 150 */ + , /* SODIMM 148 */ + , /* SODIMM 152 */ + , /* SODIMM 154 */ + , /* SODIMM 174 */ + ; /* SODIMM 150 */ }; pinctrl_uart1: uart1grp { fsl,pins = - , /* SODIMM 149 */ - ; /* SODIMM 147 */ + , /* SODIMM 147 */ + ; /* SODIMM 149 */ }; pinctrl_uart2: uart2grp { fsl,pins = - , /* SODIMM 129 */ - , /* SODIMM 131 */ - , /* SODIMM 133 */ - ; /* SODIMM 135 */ + , /* SODIMM 133 */ + , /* SODIMM 135 */ + , /* SODIMM 131 */ + ; /* SODIMM 129 */ }; pinctrl_uart3: uart3grp { fsl,pins = - , /* SODIMM 137 */ - , /* SODIMM 139 */ - , /* SODIMM 141 */ - ; /* SODIMM 143 */ + , /* SODIMM 141 */ + , /* SODIMM 139 */ + , /* SODIMM 137 */ + ; /* SODIMM 143 */ }; pinctrl_uart4: uart4grp { fsl,pins = - , /* SODIMM 151 */ - ; /* SODIMM 153 */ + , /* SODIMM 151 */ + ; /* SODIMM 153 */ }; pinctrl_usdhc1: usdhc1grp { @@ -1164,101 +1172,124 @@ pinctrl_usdhc2_cd: usdhc2cdgrp { fsl,pins = - ; /* SODIMM 84 */ + ; /* SODIMM 84 */ + }; + + pinctrl_usdhc2_cd_sleep: usdhc2cdslpgrp { + fsl,pins = + ; /* SODIMM 84 */ }; pinctrl_usdhc2_pwr_en: usdhc2pwrengrp { fsl,pins = - ; /* SODIMM 76 */ + ; /* SODIMM 76 */ }; + /* + * Note: Due to ERR050080 we use discrete external on-module resistors pulling-up to the + * on-module +V3.3_1.8_SD (LDO5) rail and explicitly disable the internal pull-ups here. + */ pinctrl_usdhc2: usdhc2grp { fsl,pins = - , /* SODIMM 78 */ - , /* SODIMM 74 */ - , /* SODIMM 80 */ - , /* SODIMM 82 */ - , /* SODIMM 70 */ - , /* SODIMM 72 */ - ; + , + , /* SODIMM 78 */ + , /* SODIMM 74 */ + , /* SODIMM 80 */ + , /* SODIMM 82 */ + , /* SODIMM 70 */ + ; /* SODIMM 72 */ }; pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { fsl,pins = - , - , - , - , - , - , - ; + , + , + , + , + , + , + ; }; pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { fsl,pins = - , - , - , - , - , - , - ; - }; - - /* On-module Wi-Fi/BT or type specific SDHC interface */ - /* (e.g. on X52 extension slot of Verdin Development Board) */ + , + , + , + , + , + , + ; + }; + + /* Avoid backfeeding with removed card power */ + pinctrl_usdhc2_sleep: usdhc2slpgrp { + fsl,pins = + , + , + , + , + , + , + ; + }; + + /* + * On-module Wi-Fi/BT or type specific SDHC interface + * (e.g. on X52 extension slot of Verdin Development Board) + */ pinctrl_usdhc3: usdhc3grp { fsl,pins = - , - , - , - , - , - ; + , + , + , + , + , + ; }; pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp { fsl,pins = - , - , - , - , - , - ; + , + , + , + , + , + ; }; pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { fsl,pins = - , - , - , - , - , - ; + , + , + , + , + , + ; }; pinctrl_wdog: wdoggrp { fsl,pins = - ; /* PMIC_WDI */ + ; /* PMIC_WDI */ }; pinctrl_wifi_ctrl: wifictrlgrp { fsl,pins = - , /* WIFI_WKUP_BT */ - , /* WIFI_W_WKUP_HOST */ - ; /* WIFI_WKUP_WLAN */ + , /* WIFI_WKUP_BT */ + , /* WIFI_W_WKUP_HOST */ + ; /* WIFI_WKUP_WLAN */ }; pinctrl_wifi_i2s: bti2sgrp { fsl,pins = - , /* WIFI_TX_BCLK */ - , /* WIFI_TX_DATA0 */ - , /* WIFI_TX_SYNC */ - ; /* WIFI_RX_DATA0 */ + , /* WIFI_TX_BCLK */ + , /* WIFI_TX_DATA0 */ + , /* WIFI_TX_SYNC */ + ; /* WIFI_RX_DATA0 */ }; pinctrl_wifi_pwr_en: wifipwrengrp { fsl,pins = - ; /* PMIC_EN_WIFI */ + ; /* PMIC_EN_WIFI */ }; }; --- a/arch/arm64/boot/dts/freescale/imx8mm-verdin-wifi.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mm-verdin-wifi.dtsi @@ -17,19 +17,6 @@ }; }; -/* On-module Wi-Fi */ -&usdhc3 { - bus-width = <4>; - keep-power-in-suspend; - non-removable; - pinctrl-names = "default", "state_100mhz", "state_200mhz"; - pinctrl-0 = <&pinctrl_usdhc3>, <&pinctrl_wifi_ctrl>; - pinctrl-1 = <&pinctrl_usdhc3_100mhz>, <&pinctrl_wifi_ctrl>; - pinctrl-2 = <&pinctrl_usdhc3_200mhz>, <&pinctrl_wifi_ctrl>; - vmmc-supply = <®_wifi_en>; - status = "okay"; -}; - &gpio3 { gpio-line-names = "SODIMM_52", "SODIMM_54", @@ -92,3 +79,16 @@ "SODIMM_135", "SODIMM_129"; }; + +/* On-module Wi-Fi */ +&usdhc3 { + bus-width = <4>; + keep-power-in-suspend; + non-removable; + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc3>, <&pinctrl_wifi_ctrl>; + pinctrl-1 = <&pinctrl_usdhc3_100mhz>, <&pinctrl_wifi_ctrl>; + pinctrl-2 = <&pinctrl_usdhc3_200mhz>, <&pinctrl_wifi_ctrl>; + vmmc-supply = <®_wifi_en>; + status = "okay"; +}; --- a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2pro.dts~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2pro.dts @@ -7,6 +7,7 @@ /dts-v1/; #include "imx8mn-bsh-smm-s2-common.dtsi" +#include / { model = "BSH SMM S2 PRO"; @@ -16,6 +17,65 @@ device_type = "memory"; reg = <0x0 0x40000000 0x0 0x20000000>; }; + + sound-tlv320aic31xx { + compatible = "fsl,imx-audio-tlv320aic31xx"; + model = "tlv320aic31xx-hifi"; + audio-cpu = <&sai3>; + audio-codec = <&tlv320dac3101>; + audio-asrc = <&easrc>; + audio-routing = + "Ext Spk", "SPL", + "Ext Spk", "SPR"; + mclk-id = ; + }; + + vdd_input: vdd_input { + compatible = "regulator-fixed"; + regulator-name = "vdd_input"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; +}; + +&easrc { + fsl,asrc-rate = <48000>; + fsl,asrc-format = <10>; + status = "okay"; +}; + +&i2c2 { + clock-frequency = <400000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c2>; + status = "okay"; + + tlv320dac3101: audio-codec@18 { + compatible = "ti,tlv320dac3101"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_dac_rst>; + reg = <0x18>; + #sound-dai-cells = <0>; + HPVDD-supply = <&buck4_reg>; + SPRVDD-supply = <&vdd_input>; + SPLVDD-supply = <&vdd_input>; + AVDD-supply = <&buck4_reg>; + IOVDD-supply = <&buck4_reg>; + DVDD-supply = <&buck5_reg>; + reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; + ai31xx-micbias-vg = ; + clocks = <&clk IMX8MN_CLK_SAI3_ROOT>; + }; +}; + +&sai3 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai3>; + assigned-clocks = <&clk IMX8MN_CLK_SAI3>; + assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>; + assigned-clock-rates = <24576000>; + fsl,sai-mclk-direction-output; + status = "okay"; }; /* eMMC */ @@ -30,6 +90,36 @@ }; &iomuxc { + pinctrl_dac_rst: dacrstgrp { + fsl,pins = < + MX8MN_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x19 /* DAC_RST */ + >; + }; + + pinctrl_espi2: espi2grp { + fsl,pins = < + MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x082 + MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x082 + MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x082 + MX8MN_IOMUXC_ECSPI2_SS0_ECSPI2_SS0 0x040 + >; + }; + + pinctrl_i2c2: i2c2grp { + fsl,pins = < + MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL 0x400000c3 + MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA 0x400000c3 + >; + }; + + pinctrl_sai3: sai3grp { + fsl,pins = < + MX8MN_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC 0xd6 + MX8MN_IOMUXC_SAI3_TXC_SAI3_TX_BCLK 0xd6 + MX8MN_IOMUXC_SAI3_TXD_SAI3_TX_DATA0 0xd6 + >; + }; + pinctrl_usdhc1: usdhc1grp { fsl,pins = < MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK 0x40000090 --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8mn-ddr3l-evk.dts @@ -0,0 +1,114 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; + +#include "imx8mn.dtsi" +#include "imx8mn-evk.dtsi" +#include + +/ { + model = "NXP i.MX8MNano DDR3L EVK board"; + compatible = "fsl,imx8mn-ddr3l-evk", "fsl,imx8mn"; +}; + +&A53_0 { + cpu-supply = <&buck1>; +}; + +&A53_1 { + cpu-supply = <&buck1>; +}; + +&A53_2 { + cpu-supply = <&buck1>; +}; + +&A53_3 { + cpu-supply = <&buck1>; +}; + +&i2c1 { + pmic: pmic@25 { + compatible = "nxp,pca9450b"; + reg = <0x25>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pmic>; + interrupt-parent = <&gpio1>; + interrupts = <3 IRQ_TYPE_LEVEL_LOW>; + + regulators { + buck1: BUCK1 { + regulator-name = "VDD_SOC_0V9"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <950000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <3125>; + }; + + buck4: BUCK4 { + regulator-name = "VDD_3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + buck5: BUCK5 { + regulator-name = "VDD_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + buck6: BUCK6 { + regulator-name = "NVCC_DRAM_1V35"; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo1: LDO1 { + regulator-name = "NVCC_SNVS_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo2: LDO2 { + regulator-name = "VDD_SNVS_0V8"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <800000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo3: LDO3 { + regulator-name = "VDDA_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo4: LDO4 { + regulator-name = "VDD_PHY_1V2"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo5: LDO5 { + regulator-name = "NVCC_SD2"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + }; + }; +}; --- a/arch/arm64/boot/dts/freescale/imx8mn.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mn.dtsi @@ -293,7 +293,7 @@ ranges; sai2: sai@30020000 { - compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; + compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai"; reg = <0x30020000 0x10000>; interrupts = ; clocks = <&clk IMX8MN_CLK_SAI2_IPG>, @@ -307,7 +307,7 @@ }; sai3: sai@30030000 { - compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; + compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai"; reg = <0x30030000 0x10000>; interrupts = ; clocks = <&clk IMX8MN_CLK_SAI3_IPG>, @@ -321,7 +321,7 @@ }; sai5: sai@30050000 { - compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; + compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai"; reg = <0x30050000 0x10000>; interrupts = ; clocks = <&clk IMX8MN_CLK_SAI5_IPG>, @@ -337,7 +337,7 @@ }; sai6: sai@30060000 { - compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; + compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai"; reg = <0x30060000 0x10000>; interrupts = ; clocks = <&clk IMX8MN_CLK_SAI6_IPG>, @@ -394,7 +394,7 @@ }; sai7: sai@300b0000 { - compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai"; + compatible = "fsl,imx8mn-sai", "fsl,imx8mq-sai"; reg = <0x300b0000 0x10000>; interrupts = ; clocks = <&clk IMX8MN_CLK_SAI7_IPG>, @@ -933,7 +933,7 @@ }; usdhc1: mmc@30b40000 { - compatible = "fsl,imx8mn-usdhc", "fsl,imx7d-usdhc"; + compatible = "fsl,imx8mn-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"; reg = <0x30b40000 0x10000>; interrupts = ; clocks = <&clk IMX8MN_CLK_IPG_ROOT>, @@ -947,7 +947,7 @@ }; usdhc2: mmc@30b50000 { - compatible = "fsl,imx8mn-usdhc", "fsl,imx7d-usdhc"; + compatible = "fsl,imx8mn-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"; reg = <0x30b50000 0x10000>; interrupts = ; clocks = <&clk IMX8MN_CLK_IPG_ROOT>, @@ -961,7 +961,7 @@ }; usdhc3: mmc@30b60000 { - compatible = "fsl,imx8mn-usdhc", "fsl,imx7d-usdhc"; + compatible = "fsl,imx8mn-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"; reg = <0x30b60000 0x10000>; interrupts = ; clocks = <&clk IMX8MN_CLK_IPG_ROOT>, --- a/arch/arm64/boot/dts/freescale/imx8mn-evk.dts~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mn-evk.dts @@ -41,18 +41,18 @@ regulators { buck1: BUCK1{ - regulator-name = "BUCK1"; - regulator-min-microvolt = <600000>; - regulator-max-microvolt = <2187500>; + regulator-name = "VDD_SOC"; + regulator-min-microvolt = <850000>; + 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 = <2187500>; + regulator-name = "VDD_ARM_0V9"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1000000>; regulator-boot-on; regulator-always-on; regulator-ramp-delay = <3125>; @@ -61,63 +61,63 @@ }; buck4: BUCK4{ - regulator-name = "BUCK4"; - regulator-min-microvolt = <600000>; - regulator-max-microvolt = <3400000>; + regulator-name = "VDD_3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; regulator-boot-on; regulator-always-on; }; buck5: BUCK5{ - regulator-name = "BUCK5"; - regulator-min-microvolt = <600000>; - regulator-max-microvolt = <3400000>; + regulator-name = "VDD_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; }; buck6: BUCK6 { - regulator-name = "BUCK6"; - regulator-min-microvolt = <600000>; - regulator-max-microvolt = <3400000>; + regulator-name = "NVCC_DRAM_1V1"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; regulator-boot-on; regulator-always-on; }; ldo1: LDO1 { - regulator-name = "LDO1"; - regulator-min-microvolt = <1600000>; - regulator-max-microvolt = <3300000>; + regulator-name = "NVCC_SNVS_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; }; ldo2: LDO2 { - regulator-name = "LDO2"; + regulator-name = "VDD_SNVS_0V8"; regulator-min-microvolt = <800000>; - regulator-max-microvolt = <1150000>; + regulator-max-microvolt = <800000>; regulator-boot-on; regulator-always-on; }; ldo3: LDO3 { - regulator-name = "LDO3"; - regulator-min-microvolt = <800000>; - regulator-max-microvolt = <3300000>; + regulator-name = "VDDA_1V8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; }; ldo4: LDO4 { - regulator-name = "LDO4"; - regulator-min-microvolt = <800000>; - regulator-max-microvolt = <3300000>; + regulator-name = "VDD_PHY_1V2"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; regulator-boot-on; regulator-always-on; }; ldo5: LDO5 { - regulator-name = "LDO5"; + regulator-name = "NVCC_SD2"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-boot-on; --- a/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi @@ -110,6 +110,22 @@ }; }; +&flexspi { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexspi>; + status = "okay"; + + flash0: flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + spi-max-frequency = <166000000>; + spi-tx-bus-width = <4>; + spi-rx-bus-width = <4>; + }; +}; + &i2c1 { clock-frequency = <400000>; pinctrl-names = "default"; @@ -267,6 +283,17 @@ >; }; + pinctrl_flexspi: flexspigrp { + fsl,pins = < + MX8MN_IOMUXC_NAND_ALE_QSPI_A_SCLK 0x1c2 + MX8MN_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B 0x82 + MX8MN_IOMUXC_NAND_DATA00_QSPI_A_DATA0 0x82 + MX8MN_IOMUXC_NAND_DATA01_QSPI_A_DATA1 0x82 + MX8MN_IOMUXC_NAND_DATA02_QSPI_A_DATA2 0x82 + MX8MN_IOMUXC_NAND_DATA03_QSPI_A_DATA3 0x82 + >; + }; + pinctrl_gpio_led: gpioledgrp { fsl,pins = < MX8MN_IOMUXC_NAND_READY_B_GPIO3_IO16 0x19 --- a/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts @@ -625,6 +625,7 @@ pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_uart3_gpio>; rts-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; cts-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; + uart-has-rtscts; status = "okay"; bluetooth { --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mp.dtsi @@ -4,6 +4,7 @@ */ #include +#include #include #include #include @@ -58,6 +59,9 @@ d-cache-line-size = <64>; d-cache-sets = <128>; next-level-cache = <&A53_L2>; + nvmem-cells = <&cpu_speed_grade>; + nvmem-cell-names = "speed_grade"; + operating-points-v2 = <&a53_opp_table>; #cooling-cells = <2>; }; @@ -75,6 +79,7 @@ d-cache-line-size = <64>; d-cache-sets = <128>; next-level-cache = <&A53_L2>; + operating-points-v2 = <&a53_opp_table>; #cooling-cells = <2>; }; @@ -92,6 +97,7 @@ d-cache-line-size = <64>; d-cache-sets = <128>; next-level-cache = <&A53_L2>; + operating-points-v2 = <&a53_opp_table>; #cooling-cells = <2>; }; @@ -109,6 +115,7 @@ d-cache-line-size = <64>; d-cache-sets = <128>; next-level-cache = <&A53_L2>; + operating-points-v2 = <&a53_opp_table>; #cooling-cells = <2>; }; @@ -121,6 +128,35 @@ }; }; + a53_opp_table: opp-table { + compatible = "operating-points-v2"; + opp-shared; + + opp-1200000000 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <850000>; + opp-supported-hw = <0x8a0>, <0x7>; + clock-latency-ns = <150000>; + opp-suspend; + }; + + opp-1600000000 { + opp-hz = /bits/ 64 <1600000000>; + opp-microvolt = <950000>; + opp-supported-hw = <0xa0>, <0x7>; + clock-latency-ns = <150000>; + opp-suspend; + }; + + opp-1800000000 { + opp-hz = /bits/ 64 <1800000000>; + opp-microvolt = <1000000>; + opp-supported-hw = <0x20>, <0x3>; + clock-latency-ns = <150000>; + opp-suspend; + }; + }; + osc_32k: clock-osc-32k { compatible = "fixed-clock"; #clock-cells = <0>; @@ -475,6 +511,46 @@ interrupts = ; #reset-cells = <1>; }; + + gpc: gpc@303a0000 { + compatible = "fsl,imx8mp-gpc"; + reg = <0x303a0000 0x1000>; + interrupt-parent = <&gic>; + interrupt-controller; + #interrupt-cells = <3>; + + pgc { + #address-cells = <1>; + #size-cells = <0>; + + pgc_gpu2d: power-domain@6 { + #power-domain-cells = <0>; + reg = ; + clocks = <&clk IMX8MP_CLK_GPU2D_ROOT>; + power-domains = <&pgc_gpumix>; + }; + + pgc_gpumix: power-domain@7 { + #power-domain-cells = <0>; + reg = ; + clocks = <&clk IMX8MP_CLK_GPU_ROOT>, + <&clk IMX8MP_CLK_GPU_AHB>; + assigned-clocks = <&clk IMX8MP_CLK_GPU_AXI>, + <&clk IMX8MP_CLK_GPU_AHB>; + assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>, + <&clk IMX8MP_SYS_PLL1_800M>; + assigned-clock-rates = <800000000>, <400000000>; + }; + + pgc_gpu3d: power-domain@9 { + #power-domain-cells = <0>; + reg = ; + clocks = <&clk IMX8MP_CLK_GPU3D_ROOT>, + <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>; + power-domains = <&pgc_gpumix>; + }; + }; + }; }; aips2: bus@30400000 { @@ -617,6 +693,8 @@ clocks = <&clk IMX8MP_CLK_UART2_ROOT>, <&clk IMX8MP_CLK_UART2_ROOT>; clock-names = "ipg", "per"; + dmas = <&sdma1 24 4 0>, <&sdma1 25 4 0>; + dma-names = "rx", "tx"; status = "disabled"; }; @@ -769,7 +847,7 @@ }; usdhc1: mmc@30b40000 { - compatible = "fsl,imx8mp-usdhc", "fsl,imx7d-usdhc"; + compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"; reg = <0x30b40000 0x10000>; interrupts = ; clocks = <&clk IMX8MP_CLK_DUMMY>, @@ -783,7 +861,7 @@ }; usdhc2: mmc@30b50000 { - compatible = "fsl,imx8mp-usdhc", "fsl,imx7d-usdhc"; + compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"; reg = <0x30b50000 0x10000>; interrupts = ; clocks = <&clk IMX8MP_CLK_DUMMY>, @@ -797,7 +875,7 @@ }; usdhc3: mmc@30b60000 { - compatible = "fsl,imx8mp-usdhc", "fsl,imx7d-usdhc"; + compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"; reg = <0x30b60000 0x10000>; interrupts = ; clocks = <&clk IMX8MP_CLK_DUMMY>, @@ -892,6 +970,37 @@ }; }; + gpu3d: gpu@38000000 { + compatible = "vivante,gc"; + reg = <0x38000000 0x8000>; + interrupts = ; + clocks = <&clk IMX8MP_CLK_GPU3D_ROOT>, + <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>, + <&clk IMX8MP_CLK_GPU_ROOT>, + <&clk IMX8MP_CLK_GPU_AHB>; + clock-names = "core", "shader", "bus", "reg"; + assigned-clocks = <&clk IMX8MP_CLK_GPU3D_CORE>, + <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>; + assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>, + <&clk IMX8MP_SYS_PLL1_800M>; + assigned-clock-rates = <800000000>, <800000000>; + power-domains = <&pgc_gpu3d>; + }; + + gpu2d: gpu@38008000 { + compatible = "vivante,gc"; + reg = <0x38008000 0x8000>; + interrupts = ; + clocks = <&clk IMX8MP_CLK_GPU2D_ROOT>, + <&clk IMX8MP_CLK_GPU_ROOT>, + <&clk IMX8MP_CLK_GPU_AHB>; + clock-names = "core", "bus", "reg"; + assigned-clocks = <&clk IMX8MP_CLK_GPU2D_CORE>; + assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>; + assigned-clock-rates = <800000000>; + power-domains = <&pgc_gpu2d>; + }; + gic: interrupt-controller@38800000 { compatible = "arm,gic-v3"; reg = <0x38800000 0x10000>, @@ -902,6 +1011,12 @@ interrupt-parent = <&gic>; }; + edacmc: memory-controller@3d400000 { + compatible = "snps,ddrc-3.80a"; + reg = <0x3d400000 0x400000>; + interrupts = ; + }; + ddr-pmu@3d800000 { compatible = "fsl,imx8mp-ddr-pmu", "fsl,imx8m-ddr-pmu"; reg = <0x3d800000 0x400000>; --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts @@ -0,0 +1,896 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2021 Gateworks Corporation + */ + +/dts-v1/; + +#include +#include +#include + +#include "imx8mp.dtsi" + +/ { + model = "Gateworks Venice GW74xx i.MX8MP board"; + compatible = "gateworks,imx8mp-gw74xx", "fsl,imx8mp"; + + aliases { + ethernet0 = &eqos; + ethernet1 = &fec; + ethernet2 = &lan1; + ethernet3 = &lan2; + ethernet4 = &lan3; + ethernet5 = &lan4; + ethernet6 = &lan5; + }; + + chosen { + stdout-path = &uart2; + }; + + memory@40000000 { + device_type = "memory"; + reg = <0x0 0x40000000 0 0x80000000>; + }; + + gpio-keys { + compatible = "gpio-keys"; + + key-0 { + label = "user_pb"; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + key-1 { + label = "user_pb1x"; + linux,code = ; + interrupt-parent = <&gsc>; + interrupts = <0>; + }; + + key-2 { + label = "key_erased"; + linux,code = ; + interrupt-parent = <&gsc>; + interrupts = <1>; + }; + + key-3 { + label = "eeprom_wp"; + linux,code = ; + interrupt-parent = <&gsc>; + interrupts = <2>; + }; + + key-4 { + label = "tamper"; + linux,code = ; + interrupt-parent = <&gsc>; + interrupts = <5>; + }; + + key-5 { + label = "switch_hold"; + linux,code = ; + interrupt-parent = <&gsc>; + interrupts = <7>; + }; + }; + + led-controller { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_leds>; + + led-0 { + function = LED_FUNCTION_HEARTBEAT; + color = ; + gpios = <&gpio2 15 GPIO_ACTIVE_HIGH>; + default-state = "on"; + linux,default-trigger = "heartbeat"; + }; + + led-1 { + function = LED_FUNCTION_STATUS; + color = ; + gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + }; + + pps { + compatible = "pps-gpio"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pps>; + gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>; + }; + + reg_usb2_vbus: regulator-usb2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_reg_usb2>; + compatible = "regulator-fixed"; + regulator-name = "usb_usb2_vbus"; + gpio = <&gpio1 6 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; + + reg_can2_stby: regulator-can2-stby { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_reg_can>; + regulator-name = "can2_stby"; + gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + reg_wifi_en: regulator-wifi-en { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_reg_wifi>; + compatible = "regulator-fixed"; + regulator-name = "wl"; + gpio = <&gpio3 9 GPIO_ACTIVE_HIGH>; + startup-delay-us = <100>; + enable-active-high; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; +}; + +/* off-board header */ +&ecspi2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_spi2>; + cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>; + status = "okay"; +}; + +&eqos { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_eqos>; + phy-mode = "rgmii-id"; + phy-handle = <ðphy0>; + status = "okay"; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <1>; + #size-cells = <0>; + + ethphy0: ethernet-phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x0>; + }; + }; +}; + +&fec { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_fec>; + phy-mode = "rgmii-id"; + local-mac-address = [00 00 00 00 00 00]; + status = "okay"; + + fixed-link { + speed = <1000>; + full-duplex; + }; +}; + +&flexcan2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexcan2>; + xceiver-supply = <®_can2_stby>; + status = "okay"; +}; + +&gpio1 { + gpio-line-names = + "", "", "", "", "", "", "", "", + "", "", "dio0", "", "dio1", "", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", ""; +}; + +&gpio2 { + gpio-line-names = + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", + "pcie3_wdis#", "", "", "pcie1_wdis@", "pcie2_wdis#", "", "", "", + "", "", "", "", "", "", "", ""; +}; + +&gpio3 { + gpio-line-names = + "m2_gdis#", "", "", "", "", "", "", "m2_rst#", + "", "", "", "", "", "", "", "", + "m2_off#", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", ""; +}; + +&gpio4 { + gpio-line-names = + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "m2_wdis#", "", "", "", + "", "", "", "", "", "", "", "uart_rs485"; +}; + +&gpio5 { + gpio-line-names = + "uart_half", "uart_term", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", ""; +}; + +&i2c1 { + clock-frequency = <100000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c1>; + status = "okay"; + + gsc: gsc@20 { + compatible = "gw,gsc"; + reg = <0x20>; + pinctrl-0 = <&pinctrl_gsc>; + interrupt-parent = <&gpio4>; + interrupts = <20 IRQ_TYPE_EDGE_FALLING>; + interrupt-controller; + #interrupt-cells = <1>; + + adc { + compatible = "gw,gsc-adc"; + #address-cells = <1>; + #size-cells = <0>; + + channel@6 { + gw,mode = <0>; + reg = <0x06>; + label = "temp"; + }; + + channel@8 { + gw,mode = <1>; + reg = <0x08>; + label = "vdd_bat"; + }; + + channel@82 { + gw,mode = <2>; + reg = <0x82>; + label = "vdd_adc1"; + gw,voltage-divider-ohms = <10000 10000>; + }; + + channel@84 { + gw,mode = <2>; + reg = <0x84>; + label = "vdd_adc2"; + gw,voltage-divider-ohms = <10000 10000>; + }; + + channel@86 { + gw,mode = <2>; + reg = <0x86>; + label = "vdd_vin"; + gw,voltage-divider-ohms = <22100 1000>; + }; + + channel@88 { + gw,mode = <2>; + reg = <0x88>; + label = "vdd_3p3"; + gw,voltage-divider-ohms = <10000 10000>; + }; + + channel@8c { + gw,mode = <2>; + reg = <0x8c>; + label = "vdd_2p5"; + gw,voltage-divider-ohms = <10000 10000>; + }; + + channel@90 { + gw,mode = <2>; + reg = <0x90>; + label = "vdd_soc"; + }; + + channel@92 { + gw,mode = <2>; + reg = <0x92>; + label = "vdd_arm"; + }; + + channel@98 { + gw,mode = <2>; + reg = <0x98>; + label = "vdd_1p8"; + }; + + channel@9a { + gw,mode = <2>; + reg = <0x9a>; + label = "vdd_1p2"; + }; + + channel@9c { + gw,mode = <2>; + reg = <0x9c>; + label = "vdd_dram"; + }; + + channel@a2 { + gw,mode = <2>; + reg = <0xa2>; + label = "vdd_gsc"; + gw,voltage-divider-ohms = <10000 10000>; + }; + }; + }; + + gpio: gpio@23 { + compatible = "nxp,pca9555"; + reg = <0x23>; + gpio-controller; + #gpio-cells = <2>; + interrupt-parent = <&gsc>; + interrupts = <4>; + }; + + pmic@25 { + compatible = "nxp,pca9450c"; + reg = <0x25>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pmic>; + interrupt-parent = <&gpio3>; + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; + + regulators { + BUCK1 { + regulator-name = "BUCK1"; + regulator-min-microvolt = <720000>; + regulator-max-microvolt = <1000000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <3125>; + }; + + BUCK2 { + regulator-name = "BUCK2"; + regulator-min-microvolt = <720000>; + regulator-max-microvolt = <1025000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <3125>; + nxp,dvs-run-voltage = <950000>; + nxp,dvs-standby-voltage = <850000>; + }; + + BUCK4 { + regulator-name = "BUCK4"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3600000>; + regulator-boot-on; + regulator-always-on; + }; + + BUCK5 { + regulator-name = "BUCK5"; + regulator-min-microvolt = <1650000>; + regulator-max-microvolt = <1950000>; + regulator-boot-on; + regulator-always-on; + }; + + BUCK6 { + regulator-name = "BUCK6"; + regulator-min-microvolt = <1045000>; + regulator-max-microvolt = <1155000>; + regulator-boot-on; + regulator-always-on; + }; + + LDO1 { + regulator-name = "LDO1"; + regulator-min-microvolt = <1650000>; + regulator-max-microvolt = <1950000>; + regulator-boot-on; + regulator-always-on; + }; + + LDO3 { + regulator-name = "LDO3"; + regulator-min-microvolt = <1710000>; + regulator-max-microvolt = <1890000>; + regulator-boot-on; + regulator-always-on; + }; + + LDO5 { + regulator-name = "LDO5"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + }; + }; + + eeprom@50 { + compatible = "atmel,24c02"; + reg = <0x50>; + pagesize = <16>; + }; + + eeprom@51 { + compatible = "atmel,24c02"; + reg = <0x51>; + pagesize = <16>; + }; + + eeprom@52 { + compatible = "atmel,24c02"; + reg = <0x52>; + pagesize = <16>; + }; + + eeprom@53 { + compatible = "atmel,24c02"; + reg = <0x53>; + pagesize = <16>; + }; + + rtc@68 { + compatible = "dallas,ds1672"; + reg = <0x68>; + }; +}; + +&i2c2 { + clock-frequency = <400000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c2>; + status = "okay"; + + accelerometer@19 { + compatible = "st,lis2de12"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_accel>; + reg = <0x19>; + st,drdy-int-pin = <1>; + interrupt-parent = <&gpio1>; + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; + interrupt-names = "INT1"; + }; + + switch: switch@5f { + compatible = "microchip,ksz9897"; + reg = <0x5f>; + pinctrl-0 = <&pinctrl_ksz>; + interrupt-parent = <&gpio4>; + interrupts = <29 IRQ_TYPE_EDGE_FALLING>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + lan1: port@0 { + reg = <0>; + label = "lan1"; + local-mac-address = [00 00 00 00 00 00]; + }; + + lan2: port@1 { + reg = <1>; + label = "lan2"; + local-mac-address = [00 00 00 00 00 00]; + }; + + lan3: port@2 { + reg = <2>; + label = "lan3"; + local-mac-address = [00 00 00 00 00 00]; + }; + + lan4: port@3 { + reg = <3>; + label = "lan4"; + local-mac-address = [00 00 00 00 00 00]; + }; + + lan5: port@4 { + reg = <4>; + label = "lan5"; + local-mac-address = [00 00 00 00 00 00]; + }; + + port@6 { + reg = <6>; + label = "cpu"; + ethernet = <&fec>; + phy-mode = "rgmii-id"; + + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + }; + }; +}; + +/* off-board header */ +&i2c3 { + clock-frequency = <400000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c3>; + status = "okay"; +}; + +/* off-board header */ +&i2c4 { + clock-frequency = <400000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c4>; + status = "okay"; +}; + +/* GPS / off-board header */ +&uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1>; + status = "okay"; +}; + +/* RS232 console */ +&uart2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart2>; + status = "okay"; +}; + +&uart4 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart4>; + status = "okay"; +}; + +/* USB1 - Type C front panel */ +&usb3_phy0 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usb1>; + status = "okay"; +}; + +&usb3_0 { + fsl,over-current-active-low; + status = "okay"; +}; + +&usb_dwc3_0 { + dr_mode = "host"; + status = "okay"; +}; + +/* USB2 - USB3.0 Hub */ +&usb3_phy1 { + vbus-supply = <®_usb2_vbus>; + status = "okay"; +}; + +&usb3_1 { + fsl,permanently-attached; + fsl,disable-port-power-control; + status = "okay"; +}; + +&usb_dwc3_1 { + dr_mode = "host"; + 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-names = "default"; + pinctrl-0 = <&pinctrl_hog>; + + pinctrl_hog: hoggrp { + fsl,pins = < + MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 0x40000041 /* DIO0 */ + MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11 0x40000041 /* DIO1 */ + MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14 0x40000041 /* M2SKT_OFF# */ + MX8MP_IOMUXC_SD2_DATA2__GPIO2_IO17 0x40000159 /* PCIE1_WDIS# */ + MX8MP_IOMUXC_SD2_DATA3__GPIO2_IO18 0x40000159 /* PCIE2_WDIS# */ + MX8MP_IOMUXC_SD2_CMD__GPIO2_IO14 0x40000159 /* PCIE3_WDIS# */ + MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06 0x40000041 /* M2SKT_RST# */ + MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18 0x40000159 /* M2SKT_WDIS# */ + MX8MP_IOMUXC_NAND_ALE__GPIO3_IO00 0x40000159 /* M2SKT_GDIS# */ + MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01 0x40000104 /* UART_TERM */ + MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31 0x40000104 /* UART_RS485 */ + MX8MP_IOMUXC_SAI3_TXC__GPIO5_IO00 0x40000104 /* UART_HALF */ + >; + }; + + pinctrl_accel: accelgrp { + fsl,pins = < + MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07 0x159 + >; + }; + + 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_SAI3_RXD__GPIO4_IO30 0x141 /* RST# */ + MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28 0x159 /* IRQ# */ + >; + }; + + pinctrl_fec: fecgrp { + fsl,pins = < + MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0 0x91 + MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1 0x91 + MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2 0x91 + MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3 0x91 + MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC 0x91 + MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL 0x91 + MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0 0x1f + MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1 0x1f + MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2 0x1f + MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3 0x1f + MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL 0x1f + MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC 0x1f + MX8MP_IOMUXC_SAI1_RXFS__ENET1_1588_EVENT0_IN 0x141 + MX8MP_IOMUXC_SAI1_RXC__ENET1_1588_EVENT0_OUT 0x141 + >; + }; + + pinctrl_flexcan2: flexcan2grp { + fsl,pins = < + MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX 0x154 + MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX 0x154 + >; + }; + + pinctrl_gsc: gscgrp { + fsl,pins = < + MX8MP_IOMUXC_SAI1_MCLK__GPIO4_IO20 0x159 + >; + }; + + 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_ksz: kszgrp { + fsl,pins = < + MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29 0x159 /* IRQ# */ + MX8MP_IOMUXC_SAI3_MCLK__GPIO5_IO02 0x141 /* RST# */ + >; + }; + + pinctrl_gpio_leds: ledgrp { + fsl,pins = < + MX8MP_IOMUXC_SD2_DATA0__GPIO2_IO15 0x19 + MX8MP_IOMUXC_SD2_DATA1__GPIO2_IO16 0x19 + >; + }; + + pinctrl_pmic: pmicgrp { + fsl,pins = < + MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07 0x141 + >; + }; + + pinctrl_pps: ppsgrp { + fsl,pins = < + MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12 0x141 + >; + }; + + pinctrl_reg_can: regcangrp { + fsl,pins = < + MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19 0x154 + >; + }; + + pinctrl_reg_usb2: regusb2grp { + fsl,pins = < + MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06 0x141 + >; + }; + + pinctrl_reg_wifi: regwifigrp { + fsl,pins = < + MX8MP_IOMUXC_NAND_DATA03__GPIO3_IO09 0x119 + >; + }; + + pinctrl_sai2: sai2grp { + fsl,pins = < + MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC + MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00 + MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK + MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI2_MCLK + >; + }; + + pinctrl_spi2: spi2grp { + fsl,pins = < + MX8MP_IOMUXC_ECSPI2_SCLK__ECSPI2_SCLK 0x82 + MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI 0x82 + MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO 0x82 + MX8MP_IOMUXC_ECSPI2_SS0__GPIO5_IO13 0x140 + >; + }; + + pinctrl_uart1: uart1grp { + fsl,pins = < + MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX 0x140 + MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX 0x140 + >; + }; + + pinctrl_uart2: uart2grp { + fsl,pins = < + MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x140 + MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x140 + >; + }; + + pinctrl_uart3: uart3grp { + fsl,pins = < + MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX 0x140 + MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX 0x140 + MX8MP_IOMUXC_SAI5_RXD0__GPIO3_IO21 0x140 + MX8MP_IOMUXC_SAI5_RXD1__GPIO3_IO22 0x140 + >; + }; + + pinctrl_uart3_gpio: uart3gpiogrp { + fsl,pins = < + MX8MP_IOMUXC_NAND_DATA02__GPIO3_IO08 0x119 + >; + }; + + pinctrl_uart4: uart4grp { + fsl,pins = < + MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX 0x140 + MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX 0x140 + >; + }; + + pinctrl_usb1: usb1grp { + fsl,pins = < + MX8MP_IOMUXC_GPIO1_IO13__USB1_OTG_OC 0x140 + MX8MP_IOMUXC_GPIO1_IO10__USB1_OTG_ID 0x140 + >; + }; + + pinctrl_usdhc1: usdhc1grp { + fsl,pins = < + MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK 0x190 + MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD 0x1d0 + MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0 0x1d0 + MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1 0x1d0 + MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2 0x1d0 + MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3 0x1d0 + >; + }; + + pinctrl_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 0x166 + >; + }; +}; --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi @@ -0,0 +1,129 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2022 Toradex + */ + +/* TODO: Audio Codec */ + +&backlight { + power-supply = <®_3p3v>; +}; + +/* Verdin SPI_1 */ +&ecspi1 { + status = "okay"; +}; + +/* EEPROM on display adapter boards */ +&eeprom_display_adapter { + status = "okay"; +}; + +/* EEPROM on Verdin Development board */ +&eeprom_carrier_board { + status = "okay"; +}; + +&eqos { + status = "okay"; +}; + +&flexcan1 { + status = "okay"; +}; + +&flexcan2 { + status = "okay"; +}; + +/* Verdin QSPI_1 */ +&flexspi { + status = "okay"; +}; + +/* Current measurement into module VCC */ +&hwmon { + status = "okay"; +}; + +&hwmon_temp { + vs-supply = <®_1p8v>; + status = "okay"; +}; + +/* Verdin I2C_2_DSI */ +&i2c2 { + status = "okay"; +}; + +&i2c3 { + status = "okay"; +}; + +/* Verdin I2C_1 */ +&i2c4 { + status = "okay"; + + /* TODO: Audio Codec */ +}; + +/* TODO: Verdin PCIE_1 */ + +/* Verdin PWM_1 */ +&pwm1 { + status = "okay"; +}; + +/* Verdin PWM_2 */ +&pwm2 { + status = "okay"; +}; + +/* Verdin PWM_3_DSI */ +&pwm3 { + status = "okay"; +}; + +®_usdhc2_vmmc { + vin-supply = <®_3p3v>; +}; + +/* TODO: Verdin I2S_1 */ + +/* Verdin UART_1 */ +&uart1 { + status = "okay"; +}; + +/* Verdin UART_2 */ +&uart2 { + status = "okay"; +}; + +/* Verdin UART_3, used as the Linux Console */ +&uart3 { + status = "okay"; +}; + +/* Verdin USB_1 */ +&usb3_0 { + status = "okay"; +}; + +&usb3_phy0 { + status = "okay"; +}; + +/* Verdin USB_2 */ +&usb3_1 { + status = "okay"; +}; + +&usb3_phy1 { + status = "okay"; +}; + +/* Verdin SD_1 */ +&usdhc2 { + status = "okay"; +}; --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2022 Toradex + */ + +#include "imx8mp-verdin-dahlia.dtsi" + +/ { + /* TODO: Audio Codec */ + + reg_eth2phy: regulator-eth2phy { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio_expander_21 4 GPIO_ACTIVE_HIGH>; /* ETH_PWR_EN */ + off-on-delay = <500000>; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "+V3.3_ETH"; + startup-delay-us = <200000>; + vin-supply = <®_3p3v>; + }; +}; + +&fec { + phy-supply = <®_eth2phy>; + status = "okay"; +}; + +&gpio_expander_21 { + status = "okay"; + vcc-supply = <®_1p8v>; +}; + +/* TODO: Verdin I2C_1 with Audio Codec */ + +/* Verdin UART_1, connector X50 through RS485 transceiver */ +&uart1 { + linux,rs485-enabled-at-boot-time; + rs485-rts-active-low; + rs485-rx-during-tx; +}; + +/* Limit frequency on dev board due to long traces and bad signal integrity */ +&usdhc2 { + max-frequency = <100000000>; +}; --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi @@ -0,0 +1,1380 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2022 Toradex + */ + +#include "dt-bindings/pwm/pwm.h" +#include "imx8mp.dtsi" + +/ { + chosen { + stdout-path = &uart3; + }; + + aliases { + /* Ethernet aliases to ensure correct MAC addresses */ + ethernet0 = &eqos; + ethernet1 = &fec; + rtc0 = &rtc_i2c; + rtc1 = &snvs_rtc; + }; + + backlight: backlight { + compatible = "pwm-backlight"; + brightness-levels = <0 45 63 88 119 158 203 255>; + default-brightness-level = <4>; + /* Verdin I2S_2_D_OUT (DSI_1_BKL_EN/DSI_1_BKL_EN_LVDS, SODIMM 46) */ + enable-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2s_2_d_out_dsi_1_bkl_en>; + power-supply = <®_3p3v>; + /* Verdin PWM_3_DSI/PWM_3_DSI_LVDS (SODIMM 19) */ + pwms = <&pwm3 0 6666667 PWM_POLARITY_INVERTED>; + status = "disabled"; + }; + + backlight_mezzanine: backlight-mezzanine { + compatible = "pwm-backlight"; + brightness-levels = <0 45 63 88 119 158 203 255>; + default-brightness-level = <4>; + /* Verdin GPIO 4 (SODIMM 212) */ + enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; + /* Verdin PWM_2 (SODIMM 16) */ + pwms = <&pwm2 0 6666667 PWM_POLARITY_INVERTED>; + status = "disabled"; + }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_keys>; + + wakeup { + debounce-interval = <10>; + /* Verdin CTRL_WAKE1_MICO# (SODIMM 252) */ + gpios = <&gpio4 0 GPIO_ACTIVE_LOW>; + label = "Wake-Up"; + linux,code = ; + wakeup-source; + }; + }; + + /* Carrier Board Supplies */ + reg_1p8v: regulator-1p8v { + compatible = "regulator-fixed"; + regulator-max-microvolt = <1800000>; + regulator-min-microvolt = <1800000>; + regulator-name = "+V1.8_SW"; + }; + + reg_3p3v: regulator-3p3v { + compatible = "regulator-fixed"; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "+V3.3_SW"; + }; + + reg_5p0v: regulator-5p0v { + compatible = "regulator-fixed"; + regulator-max-microvolt = <5000000>; + regulator-min-microvolt = <5000000>; + regulator-name = "+V5_SW"; + }; + + /* Non PMIC On-module Supplies */ + reg_module_eth1phy: regulator-module-eth1phy { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>; /* PMIC_EN_ETH */ + off-on-delay = <500000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_reg_eth>; + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "On-module +V3.3_ETH"; + startup-delay-us = <200000>; + vin-supply = <®_vdd_3v3>; + }; + + reg_usb1_vbus: regulator-usb1-vbus { + compatible = "regulator-fixed"; + enable-active-high; + /* Verdin USB_1_EN (SODIMM 155) */ + gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usb1_vbus>; + regulator-max-microvolt = <5000000>; + regulator-min-microvolt = <5000000>; + regulator-name = "USB_1_EN"; + }; + + reg_usb2_vbus: regulator-usb2-vbus { + compatible = "regulator-fixed"; + enable-active-high; + /* Verdin USB_2_EN (SODIMM 185) */ + gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usb2_vbus>; + regulator-max-microvolt = <5000000>; + regulator-min-microvolt = <5000000>; + regulator-name = "USB_2_EN"; + }; + + reg_usdhc2_vmmc: regulator-usdhc2 { + compatible = "regulator-fixed"; + enable-active-high; + /* Verdin SD_1_PWR_EN (SODIMM 76) */ + gpio = <&gpio4 22 GPIO_ACTIVE_HIGH>; + off-on-delay = <100000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usdhc2_pwr_en>; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "+V3.3_SD"; + startup-delay-us = <2000>; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + /* Use the kernel configuration settings instead */ + /delete-node/ linux,cma; + }; +}; + +/* Verdin SPI_1 */ +&ecspi1 { + #address-cells = <1>; + #size-cells = <0>; + cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ecspi1>; +}; + +/* Verdin ETH_1 (On-module PHY) */ +&eqos { + phy-handle = <ðphy0>; + phy-mode = "rgmii-id"; + phy-supply = <®_module_eth1phy>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_eqos>; + snps,force_thresh_dma_mode; + snps,mtl-rx-config = <&mtl_rx_setup>; + snps,mtl-tx-config = <&mtl_tx_setup>; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <1>; + #size-cells = <0>; + + ethphy0: ethernet-phy@7 { + compatible = "ethernet-phy-ieee802.3-c22"; + eee-broken-100tx; + eee-broken-1000t; + interrupt-parent = <&gpio1>; + interrupts = <10 IRQ_TYPE_LEVEL_LOW>; + micrel,led-mode = <0>; + reg = <7>; + }; + }; + + mtl_rx_setup: rx-queues-config { + snps,rx-queues-to-use = <5>; + snps,rx-sched-sp; + + queue0 { + snps,dcb-algorithm; + snps,priority = <0x1>; + snps,map-to-dma-channel = <0>; + }; + + queue1 { + snps,dcb-algorithm; + snps,priority = <0x2>; + snps,map-to-dma-channel = <1>; + }; + + queue2 { + snps,dcb-algorithm; + snps,priority = <0x4>; + snps,map-to-dma-channel = <2>; + }; + + queue3 { + snps,dcb-algorithm; + snps,priority = <0x8>; + snps,map-to-dma-channel = <3>; + }; + + queue4 { + snps,dcb-algorithm; + snps,priority = <0xf0>; + snps,map-to-dma-channel = <4>; + }; + }; + + mtl_tx_setup: tx-queues-config { + snps,tx-queues-to-use = <5>; + snps,tx-sched-sp; + + queue0 { + snps,dcb-algorithm; + snps,priority = <0x1>; + }; + + queue1 { + snps,dcb-algorithm; + snps,priority = <0x2>; + }; + + queue2 { + snps,dcb-algorithm; + snps,priority = <0x4>; + }; + + queue3 { + snps,dcb-algorithm; + snps,priority = <0x8>; + }; + + queue4 { + snps,dcb-algorithm; + snps,priority = <0xf0>; + }; + }; +}; + +/* Verdin ETH_2_RGMII */ +&fec { + fsl,magic-packet; + phy-handle = <ðphy1>; + phy-mode = "rgmii-id"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pinctrl_fec>; + pinctrl-1 = <&pinctrl_fec_sleep>; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + ethphy1: ethernet-phy@7 { + compatible = "ethernet-phy-ieee802.3-c22"; + interrupt-parent = <&gpio4>; + interrupts = <18 IRQ_TYPE_LEVEL_LOW>; + micrel,led-mode = <0>; + reg = <7>; + }; + }; +}; + +/* Verdin CAN_1 */ +&flexcan1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexcan1>; + status = "disabled"; +}; + + +/* Verdin CAN_2 */ +&flexcan2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexcan2>; + status = "disabled"; +}; + +/* Verdin QSPI_1 */ +&flexspi { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexspi0>; +}; + +&gpio1 { + gpio-line-names = "SODIMM_206", + "SODIMM_208", + "", + "", + "", + "SODIMM_210", + "SODIMM_212", + "SODIMM_216", + "SODIMM_218", + "", + "", + "SODIMM_16", + "SODIMM_155", + "SODIMM_157", + "SODIMM_185", + "SODIMM_91"; +}; + +&gpio2 { + gpio-line-names = "", + "", + "", + "", + "", + "", + "SODIMM_143", + "SODIMM_141", + "", + "", + "SODIMM_161", + "", + "SODIMM_84", + "SODIMM_78", + "SODIMM_74", + "SODIMM_80", + "SODIMM_82", + "SODIMM_70", + "SODIMM_72"; + + 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>; + }; +}; + +&gpio3 { + gpio-line-names = "SODIMM_52", + "SODIMM_54", + "", + "", + "", + "", + "SODIMM_56", + "SODIMM_58", + "SODIMM_60", + "SODIMM_62", + "", + "", + "", + "", + "SODIMM_66", + "", + "SODIMM_64", + "", + "", + "SODIMM_34", + "SODIMM_19", + "", + "SODIMM_32", + "", + "", + "SODIMM_30", + "SODIMM_59", + "SODIMM_57", + "SODIMM_63", + "SODIMM_61"; +}; + +&gpio4 { + gpio-line-names = "SODIMM_252", + "SODIMM_222", + "SODIMM_36", + "SODIMM_220", + "SODIMM_193", + "SODIMM_191", + "SODIMM_201", + "SODIMM_203", + "SODIMM_205", + "SODIMM_207", + "SODIMM_199", + "SODIMM_197", + "SODIMM_221", + "SODIMM_219", + "SODIMM_217", + "SODIMM_215", + "SODIMM_211", + "SODIMM_213", + "SODIMM_189", + "SODIMM_244", + "SODIMM_38", + "", + "SODIMM_76", + "SODIMM_135", + "SODIMM_133", + "SODIMM_17", + "SODIMM_24", + "SODIMM_26", + "SODIMM_21", + "SODIMM_256", + "SODIMM_48", + "SODIMM_44"; +}; + +/* On-module I2C */ +&i2c1 { + clock-frequency = <400000>; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&pinctrl_i2c1>; + pinctrl-1 = <&pinctrl_i2c1_gpio>; + scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + status = "okay"; + + pca9450: pmic@25 { + compatible = "nxp,pca9450c"; + interrupt-parent = <&gpio1>; + /* PMIC PCA9450 PMIC_nINT GPIO1_IO3 */ + interrupts = <3 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pmic>; + reg = <0x25>; + sd-vsel-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; + + /* + * The bootloader is expected to switch on LDO4 for the on-module +V3.3_ADC and the + * I2C level shifter for the TLA2024 ADC behind this PMIC. + */ + + regulators { + BUCK1 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <1000000>; + regulator-min-microvolt = <720000>; + regulator-name = "On-module +VDD_SOC (BUCK1)"; + regulator-ramp-delay = <3125>; + }; + + BUCK2 { + nxp,dvs-run-voltage = <950000>; + nxp,dvs-standby-voltage = <850000>; + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <1025000>; + regulator-min-microvolt = <720000>; + regulator-name = "On-module +VDD_ARM (BUCK2)"; + regulator-ramp-delay = <3125>; + }; + + reg_vdd_3v3: BUCK4 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "On-module +V3.3 (BUCK4)"; + }; + + reg_vdd_1v8: BUCK5 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <1800000>; + regulator-min-microvolt = <1800000>; + regulator-name = "PWR_1V8_MOCI (BUCK5)"; + }; + + BUCK6 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <1155000>; + regulator-min-microvolt = <1045000>; + regulator-name = "On-module +VDD_DDR (BUCK6)"; + }; + + LDO1 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <1950000>; + regulator-min-microvolt = <1650000>; + regulator-name = "On-module +V1.8_SNVS (LDO1)"; + }; + + LDO2 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <1150000>; + regulator-min-microvolt = <800000>; + regulator-name = "On-module +V0.8_SNVS (LDO2)"; + }; + + LDO3 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <1800000>; + regulator-min-microvolt = <1800000>; + regulator-name = "On-module +V1.8A (LDO3)"; + }; + + LDO4 { + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "On-module +V3.3_ADC (LDO4)"; + }; + + LDO5 { + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <1800000>; + regulator-name = "On-module +V3.3_1.8_SD (LDO5)"; + }; + }; + }; + + rtc_i2c: rtc@32 { + compatible = "epson,rx8130"; + reg = <0x32>; + }; + + /* On-module temperature sensor */ + hwmon_temp_module: sensor@48 { + compatible = "ti,tmp1075"; + reg = <0x48>; + vs-supply = <®_vdd_1v8>; + }; + + adc@49 { + compatible = "ti,ads1015"; + reg = <0x49>; + #address-cells = <1>; + #size-cells = <0>; + + /* Verdin I2C_1 (ADC_4 - ADC_3) */ + channel@0 { + reg = <0>; + ti,datarate = <4>; + ti,gain = <2>; + }; + + /* Verdin I2C_1 (ADC_4 - ADC_1) */ + channel@1 { + reg = <1>; + ti,datarate = <4>; + ti,gain = <2>; + }; + + /* Verdin I2C_1 (ADC_3 - ADC_1) */ + channel@2 { + reg = <2>; + ti,datarate = <4>; + ti,gain = <2>; + }; + + /* Verdin I2C_1 (ADC_2 - ADC_1) */ + channel@3 { + reg = <3>; + ti,datarate = <4>; + ti,gain = <2>; + }; + + /* Verdin I2C_1 ADC_4 */ + channel@4 { + reg = <4>; + ti,datarate = <4>; + ti,gain = <2>; + }; + + /* Verdin I2C_1 ADC_3 */ + channel@5 { + reg = <5>; + ti,datarate = <4>; + ti,gain = <2>; + }; + + /* Verdin I2C_1 ADC_2 */ + channel@6 { + reg = <6>; + ti,datarate = <4>; + ti,gain = <2>; + }; + + /* Verdin I2C_1 ADC_1 */ + channel@7 { + reg = <7>; + ti,datarate = <4>; + ti,gain = <2>; + }; + }; + + eeprom@50 { + compatible = "st,24c02"; + pagesize = <16>; + reg = <0x50>; + }; +}; + +/* Verdin I2C_2_DSI */ +&i2c2 { + /* Lower frequency to avoid DDC/EDID issues with certain displays/screens. */ + clock-frequency = <10000>; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&pinctrl_i2c2>; + pinctrl-1 = <&pinctrl_i2c2_gpio>; + scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + + atmel_mxt_ts_mezzanine: touch-mezzanine@4a { + compatible = "atmel,maxtouch"; + /* Verdin GPIO_3 (SODIMM 210) */ + interrupt-parent = <&gpio1>; + interrupts = <5 IRQ_TYPE_EDGE_FALLING>; + reg = <0x4a>; + /* Verdin GPIO_2 (SODIMM 208) */ + reset-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; + status = "disabled"; + }; +}; + +/* TODO: Verdin I2C_3_HDMI */ + +/* Verdin I2C_4_CSI */ +&i2c3 { + clock-frequency = <400000>; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&pinctrl_i2c3>; + pinctrl-1 = <&pinctrl_i2c3_gpio>; + scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; +}; + +/* Verdin I2C_1 */ +&i2c4 { + clock-frequency = <400000>; + pinctrl-names = "default", "gpio"; + pinctrl-0 = <&pinctrl_i2c4>; + pinctrl-1 = <&pinctrl_i2c4_gpio>; + scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + + gpio_expander_21: gpio-expander@21 { + compatible = "nxp,pcal6416"; + #gpio-cells = <2>; + gpio-controller; + reg = <0x21>; + vcc-supply = <®_3p3v>; + status = "disabled"; + }; + + lvds_ti_sn65dsi83: bridge@2c { + compatible = "ti,sn65dsi83"; + /* Verdin GPIO_9_DSI (SN65DSI84 IRQ, SODIMM 17, unused) */ + /* Verdin GPIO_10_DSI (SODIMM 21) */ + enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_10_dsi>; + reg = <0x2c>; + status = "disabled"; + }; + + /* Current measurement into module VCC */ + hwmon: hwmon@40 { + compatible = "ti,ina219"; + reg = <0x40>; + shunt-resistor = <10000>; + status = "disabled"; + }; + + hdmi_lontium_lt8912: hdmi@48 { + compatible = "lontium,lt8912b"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_10_dsi>, <&pinctrl_pwm_3_dsi_hpd_gpio>; + reg = <0x48>; + /* Verdin GPIO_9_DSI (LT8912 INT, SODIMM 17, unused) */ + /* Verdin GPIO_10_DSI (SODIMM 21) */ + reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>; + status = "disabled"; + }; + + atmel_mxt_ts: touch@4a { + compatible = "atmel,maxtouch"; + /* + * Verdin GPIO_9_DSI + * (TOUCH_INT#, SODIMM 17, also routed to SN65DSI83 IRQ albeit currently unused) + */ + interrupt-parent = <&gpio4>; + interrupts = <25 IRQ_TYPE_EDGE_FALLING>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_9_dsi>, <&pinctrl_i2s_2_bclk_touch_reset>; + reg = <0x4a>; + /* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 42) */ + reset-gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>; + status = "disabled"; + }; + + /* Temperature sensor on carrier board */ + hwmon_temp: sensor@4f { + compatible = "ti,tmp75c"; + reg = <0x4f>; + status = "disabled"; + }; + + /* EEPROM on display adapter (MIPI DSI Display Adapter) */ + eeprom_display_adapter: eeprom@50 { + compatible = "st,24c02"; + pagesize = <16>; + reg = <0x50>; + status = "disabled"; + }; + + /* EEPROM on carrier board */ + eeprom_carrier_board: eeprom@57 { + compatible = "st,24c02"; + pagesize = <16>; + reg = <0x57>; + status = "disabled"; + }; +}; + +/* TODO: Verdin PCIE_1 */ + +/* Verdin PWM_1 */ +&pwm1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pwm_1>; + #pwm-cells = <3>; +}; + +/* Verdin PWM_2 */ +&pwm2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pwm_2>; + #pwm-cells = <3>; +}; + +/* Verdin PWM_3_DSI */ +&pwm3 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pwm_3>; + #pwm-cells = <3>; +}; + +/* TODO: Verdin I2S_1 */ + +/* TODO: Verdin I2S_2 */ + +&snvs_pwrkey { + status = "okay"; +}; + +/* Verdin UART_1 */ +&uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1>; + fsl,uart-has-rtscts; +}; + +/* Verdin UART_2 */ +&uart2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart2>; + fsl,uart-has-rtscts; +}; + +/* Verdin UART_3, used as the Linux Console */ +&uart3 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart3>; +}; + +/* Verdin UART_4, used for Bluetooth on Wi-Fi/Bluetooth SKUs */ +&uart4 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart4>; +}; + +/* Verdin USB_1 */ +&usb3_phy0 { + vbus-supply = <®_usb1_vbus>; +}; + +&usb_dwc3_0 { + adp-disable; + dr_mode = "otg"; + hnp-disable; + maximum-speed = "high-speed"; + over-current-active-low; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usb_1_id>; + srp-disable; +}; + +/* Verdin USB_2 */ +&usb3_phy1 { + vbus-supply = <®_usb2_vbus>; +}; + +&usb_dwc3_1 { + disable-over-current; + dr_mode = "host"; +}; + +/* Verdin SD_1 */ +&usdhc2 { + assigned-clocks = <&clk IMX8MP_CLK_USDHC2>; + assigned-clock-rates = <400000000>; + bus-width = <4>; + cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; + disable-wp; + pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep"; + pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_cd>; + pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_cd>; + pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_cd>; + pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_cd_sleep>; + vmmc-supply = <®_usdhc2_vmmc>; +}; + +/* On-module eMMC */ +&usdhc3 { + assigned-clocks = <&clk IMX8MP_CLK_USDHC3_ROOT>; + assigned-clock-rates = <400000000>; + bus-width = <8>; + non-removable; + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc3>; + pinctrl-1 = <&pinctrl_usdhc3_100mhz>; + pinctrl-2 = <&pinctrl_usdhc3_200mhz>; + status = "okay"; +}; + +&wdog1 { + fsl,ext-reset-output; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_wdog>; + status = "okay"; +}; + +&iomuxc { + pinctrl_bt_uart: btuartgrp { + fsl,pins = + , + , + , + ; + }; + + pinctrl_ctrl_sleep_moci: ctrlsleepmocigrp { + fsl,pins = + ; /* SODIMM 256 */ + }; + + pinctrl_ecspi1: ecspi1grp { + fsl,pins = + , /* SODIMM 198 */ + , /* SODIMM 200 */ + , /* SODIMM 196 */ + ; /* SODIMM 202 */ + }; + + /* Connection On Board PHY */ + pinctrl_eqos: eqosgrp { + fsl,pins = + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + }; + + /* ETH_INT# shared with TPM_INT# (usually N/A) */ + pinctrl_eth_tpm_int: ethtpmintgrp { + fsl,pins = + ; + }; + + /* Connection Carrier Board PHY ETH_2 */ + pinctrl_fec: fecgrp { + fsl,pins = + , /* SODIMM 193 */ + , /* SODIMM 191 */ + , /* SODIMM 201 */ + , /* SODIMM 203 */ + , /* SODIMM 205 */ + , /* SODIMM 207 */ + , /* SODIMM 197 */ + , /* SODIMM 199 */ + , /* SODIMM 221 */ + , /* SODIMM 219 */ + , /* SODIMM 217 */ + , /* SODIMM 215 */ + , /* SODIMM 211 */ + , /* SODIMM 213 */ + ; /* SODIMM 189 */ + }; + + pinctrl_fec_sleep: fecsleepgrp { + fsl,pins = + , /* SODIMM 193 */ + , /* SODIMM 191 */ + , /* SODIMM 201 */ + , /* SODIMM 203 */ + , /* SODIMM 205 */ + , /* SODIMM 207 */ + , /* SODIMM 197 */ + , /* SODIMM 199 */ + , /* SODIMM 221 */ + , /* SODIMM 219 */ + , /* SODIMM 217 */ + , /* SODIMM 215 */ + , /* SODIMM 211 */ + , /* SODIMM 213 */ + ; /* SODIMM 189 */ + }; + + pinctrl_flexcan1: flexcan1grp { + fsl,pins = + , /* SODIMM 22 */ + ; /* SODIMM 20 */ + }; + + pinctrl_flexcan2: flexcan2grp { + fsl,pins = + , /* SODIMM 26 */ + ; /* SODIMM 24 */ + }; + + pinctrl_flexspi0: flexspi0grp { + fsl,pins = + , /* SODIMM 52 */ + , /* SODIMM 54 */ + , /* SODIMM 66 */ + , /* SODIMM 56 */ + , /* SODIMM 58 */ + , /* SODIMM 60 */ + , /* SODIMM 62 */ + ; /* SODIMM 64 */ + }; + + pinctrl_gpio1: gpio1grp { + fsl,pins = + ; /* SODIMM 206 */ + }; + + pinctrl_gpio2: gpio2grp { + fsl,pins = + ; /* SODIMM 208 */ + }; + + pinctrl_gpio3: gpio3grp { + fsl,pins = + ; /* SODIMM 210 */ + }; + + pinctrl_gpio4: gpio4grp { + fsl,pins = + ; /* SODIMM 212 */ + }; + + pinctrl_gpio5: gpio5grp { + fsl,pins = + ; /* SODIMM 216 */ + }; + + pinctrl_gpio6: gpio6grp { + fsl,pins = + ; /* SODIMM 218 */ + }; + + pinctrl_gpio7: gpio7grp { + fsl,pins = + ; /* SODIMM 220 */ + }; + + pinctrl_gpio8: gpio8grp { + fsl,pins = + ; /* SODIMM 222 */ + }; + + /* Verdin GPIO_9_DSI (pulled-up as active-low) */ + pinctrl_gpio_9_dsi: gpio9dsigrp { + fsl,pins = + ; /* SODIMM 17 */ + }; + + /* Verdin GPIO_10_DSI */ + pinctrl_gpio_10_dsi: gpio10dsigrp { + fsl,pins = + ; /* SODIMM 21 */ + }; + + /* Non-wifi MSP usage only */ + pinctrl_gpio_hog1: gpiohog1grp { + fsl,pins = + , /* SODIMM 116 */ + , /* SODIMM 152 */ + , /* SODIMM 164 */ + ; /* SODIMM 128 */ + }; + + /* USB_2_OC# */ + pinctrl_gpio_hog2: gpiohog2grp { + fsl,pins = + ; /* SODIMM 187 */ + }; + + pinctrl_gpio_hog3: gpiohog3grp { + fsl,pins = + , /* SODIMM 157 */ + /* CSI_1_MCLK */ + ; /* SODIMM 91 */ + }; + + /* Wifi usage only */ + pinctrl_gpio_hog4: gpiohog4grp { + fsl,pins = + , /* SODIMM 151 */ + ; /* SODIMM 153 */ + }; + + pinctrl_gpio_keys: gpiokeysgrp { + fsl,pins = + ; /* SODIMM 252 */ + }; + + pinctrl_hdmi_hog: hdmihoggrp { + fsl,pins = + , /* SODIMM 63 */ + , /* SODIMM 59 */ + , /* SODIMM 57 */ + ; /* SODIMM 61 */ + }; + + /* On-module I2C */ + pinctrl_i2c1: i2c1grp { + fsl,pins = + , /* PMIC_I2C_SCL */ + ; /* PMIC_I2C_SDA */ + }; + + pinctrl_i2c1_gpio: i2c1gpiogrp { + fsl,pins = + , /* PMIC_I2C_SCL */ + ; /* PMIC_I2C_SDA */ + }; + + /* Verdin I2C_2_DSI */ + pinctrl_i2c2: i2c2grp { + fsl,pins = + , /* SODIMM 55 */ + ; /* SODIMM 53 */ + }; + + pinctrl_i2c2_gpio: i2c2gpiogrp { + fsl,pins = + , /* SODIMM 55 */ + ; /* SODIMM 53 */ + }; + + /* Verdin I2C_4_CSI */ + pinctrl_i2c3: i2c3grp { + fsl,pins = + , /* SODIMM 95 */ + ; /* SODIMM 93 */ + }; + + pinctrl_i2c3_gpio: i2c3gpiogrp { + fsl,pins = + , /* SODIMM 95 */ + ; /* SODIMM 93 */ + }; + + /* Verdin I2C_1 */ + pinctrl_i2c4: i2c4grp { + fsl,pins = + , /* SODIMM 14 */ + ; /* SODIMM 12 */ + }; + + pinctrl_i2c4_gpio: i2c4gpiogrp { + fsl,pins = + , /* SODIMM 14 */ + ; /* SODIMM 12 */ + }; + + /* Verdin I2S_2_BCLK (TOUCH_RESET#) */ + pinctrl_i2s_2_bclk_touch_reset: i2s2bclktouchresetgrp { + fsl,pins = + ; /* SODIMM 42 */ + }; + + /* Verdin I2S_2_D_OUT shared with SAI3 */ + pinctrl_i2s_2_d_out_dsi_1_bkl_en: i2s2doutdsi1bklengrp { + fsl,pins = + ; /* SODIMM 46 */ + }; + + pinctrl_pcie: pciegrp { + fsl,pins = + , /* SODIMM 244 */ + ; /* PMIC_EN_PCIe_CLK, unused */ + }; + + pinctrl_pmic: pmicirqgrp { + fsl,pins = + ; /* PMIC_INT# */ + }; + + pinctrl_pwm_1: pwm1grp { + fsl,pins = + ; /* SODIMM 15 */ + }; + + pinctrl_pwm_2: pwm2grp { + fsl,pins = + ; /* SODIMM 16 */ + }; + + /* Verdin PWM_3_DSI shared with GPIO3_IO20 */ + pinctrl_pwm_3: pwm3grp { + fsl,pins = + ; /* SODIMM 19 */ + }; + + /* Verdin PWM_3_DSI (pulled-down as active-high) shared with PWM3_OUT */ + pinctrl_pwm_3_dsi_hpd_gpio: pwm3dsi1hpdgpiogrp { + fsl,pins = + ; /* SODIMM 19 */ + }; + + pinctrl_reg_eth: regethgrp { + fsl,pins = + ; /* PMIC_EN_ETH */ + }; + + pinctrl_sai1: sai1grp { + fsl,pins = + , /* SODIMM 38 */ + , /* SODIMM 36 */ + , /* SODIMM 30 */ + , /* SODIMM 32 */ + ; /* SODIMM 34 */ + }; + + pinctrl_sai3: sai3grp { + fsl,pins = + , /* SODIMM 48 */ + , /* SODIMM 42 */ + , /* SODIMM 46 */ + ; /* SODIMM 44 */ + }; + + pinctrl_uart1: uart1grp { + fsl,pins = + , /* SODIMM 135 */ + , /* SODIMM 133 */ + , /* SODIMM 129 */ + ; /* SODIMM 131 */ + }; + + pinctrl_uart2: uart2grp { + fsl,pins = + , /* SODIMM 143 */ + , /* SODIMM 141 */ + , /* SODIMM 137 */ + ; /* SODIMM 139 */ + }; + + pinctrl_uart3: uart3grp { + fsl,pins = + , /* SODIMM 147 */ + ; /* SODIMM 149 */ + }; + + /* Non-wifi usage only */ + pinctrl_uart4: uart4grp { + fsl,pins = + , /* SODIMM 151 */ + ; /* SODIMM 153 */ + }; + + pinctrl_usb1_vbus: usb1vbusgrp { + fsl,pins = + ; /* SODIMM 155 */ + }; + + /* USB_1_ID */ + pinctrl_usb_1_id: usb1idgrp { + fsl,pins = + ; /* SODIMM 161 */ + }; + + pinctrl_usb2_vbus: usb2vbusgrp { + fsl,pins = + ; /* SODIMM 185 */ + }; + + /* On-module Wi-Fi */ + pinctrl_usdhc1: usdhc1grp { + fsl,pins = + , + , + , + , + , + ; + }; + + pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { + fsl,pins = + , + , + , + , + , + ; + }; + + pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { + fsl,pins = + , + , + , + , + , + ; + }; + + pinctrl_usdhc2_cd: usdhc2cdgrp { + fsl,pins = + ; /* SODIMM 84 */ + }; + + pinctrl_usdhc2_cd_sleep: usdhc2cdslpgrp { + fsl,pins = + ; /* SODIMM 84 */ + }; + + pinctrl_usdhc2_pwr_en: usdhc2pwrengrp { + fsl,pins = + ; /* SODIMM 76 */ + }; + + pinctrl_usdhc2: usdhc2grp { + fsl,pins = + , /* PMIC_USDHC_VSELECT */ + , /* SODIMM 78 */ + , /* SODIMM 74 */ + , /* SODIMM 80 */ + , /* SODIMM 82 */ + , /* SODIMM 70 */ + ; /* SODIMM 72 */ + }; + + pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { + fsl,pins = + , + , + , + , + , + , + ; + }; + + pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { + fsl,pins = + , + , + , + , + , + , + ; + }; + + /* Avoid backfeeding with removed card power */ + pinctrl_usdhc2_sleep: usdhc2slpgrp { + fsl,pins = + , + , + , + , + , + , + ; + }; + + pinctrl_usdhc3: usdhc3grp { + fsl,pins = + , + , + , + , + , + , + , + , + , + , + , + ; + }; + + pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp { + fsl,pins = + , + , + , + , + , + , + , + , + , + , + , + ; + }; + + pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { + fsl,pins = + , + , + , + , + , + , + , + , + , + , + , + ; + }; + + pinctrl_wdog: wdoggrp { + fsl,pins = + ; /* PMIC_WDI */ + }; + + pinctrl_bluetooth_ctrl: bluetoothctrlgrp { + fsl,pins = + ; /* WIFI_WKUP_BT */ + }; + + pinctrl_wifi_ctrl: wifictrlgrp { + fsl,pins = + ; /* WIFI_WKUP_WLAN */ + }; + + pinctrl_wifi_i2s: wifii2sgrp { + fsl,pins = + , /* WIFI_TX_SYNC */ + , /* WIFI_RX_DATA0 */ + , /* WIFI_TX_BCLK */ + ; /* WIFI_TX_DATA0 */ + }; + + pinctrl_wifi_pwr_en: wifipwrengrp { + fsl,pins = + ; /* PMIC_EN_WIFI */ + }; +}; --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dahlia.dts @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2022 Toradex + */ + +/dts-v1/; + +#include "imx8mp-verdin.dtsi" +#include "imx8mp-verdin-nonwifi.dtsi" +#include "imx8mp-verdin-dahlia.dtsi" + +/ { + model = "Toradex Verdin iMX8M Plus on Dahlia Board"; + compatible = "toradex,verdin-imx8mp-nonwifi-dahlia", + "toradex,verdin-imx8mp-nonwifi", + "toradex,verdin-imx8mp", + "fsl,imx8mp"; +}; --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dev.dts @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2022 Toradex + */ + +/dts-v1/; + +#include "imx8mp-verdin.dtsi" +#include "imx8mp-verdin-nonwifi.dtsi" +#include "imx8mp-verdin-dev.dtsi" + +/ { + model = "Toradex Verdin iMX8M Plus on Verdin Development Board"; + compatible = "toradex,verdin-imx8mp-nonwifi-dev", + "toradex,verdin-imx8mp-nonwifi", + "toradex,verdin-imx8mp", + "fsl,imx8mp"; +}; --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi.dtsi @@ -0,0 +1,54 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2022 Toradex + */ + +&gpio5 { + gpio-line-names = "SODIMM_42", + "SODIMM_46", + "SODIMM_187", + "SODIMM_20", + "SODIMM_22", + "SODIMM_15", + "SODIMM_196", + "SODIMM_200", + "SODIMM_198", + "SODIMM_202", + "SODIMM_164", + "SODIMM_152", + "SODIMM_116", + "SODIMM_128", + "", + "", + "SODIMM_55", + "SODIMM_53", + "SODIMM_95", + "SODIMM_93", + "SODIMM_14", + "SODIMM_12", + "SODIMM_129", + "SODIMM_131", + "SODIMM_137", + "SODIMM_139", + "SODIMM_147", + "SODIMM_149", + "SODIMM_151", + "SODIMM_153"; +}; + +&iomuxc { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>, + <&pinctrl_gpio3>, <&pinctrl_gpio4>, + <&pinctrl_gpio7>, <&pinctrl_gpio8>, + <&pinctrl_gpio_hog1>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>, + <&pinctrl_hdmi_hog>; +}; + +/* + * Verdin UART_4 + * Often used by the M7 and then should not be enabled here. + */ +&uart4 { + status = "disabled"; +}; --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dahlia.dts @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2022 Toradex + */ + +/dts-v1/; + +#include "imx8mp-verdin.dtsi" +#include "imx8mp-verdin-wifi.dtsi" +#include "imx8mp-verdin-dahlia.dtsi" + +/ { + model = "Toradex Verdin iMX8M Plus WB on Dahlia Board"; + compatible = "toradex,verdin-imx8mp-wifi-dahlia", + "toradex,verdin-imx8mp-wifi", + "toradex,verdin-imx8mp", + "fsl,imx8mp"; +}; --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dev.dts @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2022 Toradex + */ + +/dts-v1/; + +#include "imx8mp-verdin.dtsi" +#include "imx8mp-verdin-wifi.dtsi" +#include "imx8mp-verdin-dev.dtsi" + +/ { + model = "Toradex Verdin iMX8M Plus WB on Verdin Development Board"; + compatible = "toradex,verdin-imx8mp-wifi-dev", + "toradex,verdin-imx8mp-wifi", + "toradex,verdin-imx8mp", + "fsl,imx8mp"; +}; --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi.dtsi @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2022 Toradex + */ + +/ { + reg_wifi_en: regulator-wifi-en { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_wifi_pwr_en>; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "PDn_AW-CM276NF"; + startup-delay-us = <2000>; + }; +}; + +&gpio5 { + gpio-line-names = "SODIMM_42", + "SODIMM_46", + "SODIMM_187", + "SODIMM_20", + "SODIMM_22", + "SODIMM_15", + "SODIMM_196", + "SODIMM_200", + "SODIMM_198", + "SODIMM_202", + "", + "", + "", + "", + "", + "", + "SODIMM_55", + "SODIMM_53", + "SODIMM_95", + "SODIMM_93", + "SODIMM_14", + "SODIMM_12", + "SODIMM_129", + "SODIMM_131", + "SODIMM_137", + "SODIMM_139", + "SODIMM_147", + "SODIMM_149", + "SODIMM_151", + "SODIMM_153"; +}; + +&iomuxc { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>, + <&pinctrl_gpio3>, <&pinctrl_gpio4>, + <&pinctrl_gpio7>, <&pinctrl_gpio8>, + <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>, <&pinctrl_gpio_hog4>, + <&pinctrl_hdmi_hog>; +}; + +/* On-module Bluetooth */ +&uart4 { + fsl,uart-has-rtscts; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_bt_uart>; + status = "okay"; +}; + +/* On-module Wi-Fi */ +&usdhc1 { + bus-width = <4>; + keep-power-in-suspend; + max-frequency = <100000000>; + non-removable; + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_wifi_ctrl>; + pinctrl-1 = <&pinctrl_usdhc1_100mhz>, <&pinctrl_wifi_ctrl>; + pinctrl-2 = <&pinctrl_usdhc1_200mhz>, <&pinctrl_wifi_ctrl>; + vmmc-supply = <®_wifi_en>; + status = "okay"; +}; --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mq.dtsi @@ -63,6 +63,13 @@ clock-output-names = "osc_27m"; }; + hdmi_phy_27m: clock-hdmi-phy-27m { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <27000000>; + clock-output-names = "hdmi_phy_27m"; + }; + clk_ext1: clock-ext1 { compatible = "fixed-clock"; #clock-cells = <0>; --- a/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi @@ -42,6 +42,7 @@ gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; linux,code = ; debounce-interval = <50>; + wakeup-source; }; vol-up { @@ -49,6 +50,7 @@ gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; linux,code = ; debounce-interval = <50>; + wakeup-source; }; }; @@ -323,15 +325,10 @@ }; partition@30000 { - label = "protected1"; - reg = <0x30000 0x10000>; + label = "firmware"; + reg = <0x30000 0x1d0000>; read-only; }; - - partition@40000 { - label = "rw"; - reg = <0x40000 0x1C0000>; - }; }; }; @@ -387,8 +384,6 @@ fsl,pins = < /* CHRG_INT */ MX8MQ_IOMUXC_NAND_CE2_B_GPIO3_IO3 0x80 - /* CHG_STATUS_B */ - MX8MQ_IOMUXC_NAND_ALE_GPIO3_IO0 0x80 >; }; @@ -1098,7 +1093,7 @@ ti,precharge-current = <130000>; /* uA */ ti,minimum-sys-voltage = <3700000>; /* uV */ ti,boost-voltage = <5000000>; /* uV */ - ti,boost-max-current = <500000>; /* uA */ + ti,boost-max-current = <1500000>; /* uA */ ti,use-vinmin-threshold = <1>; /* enable VINDPM */ ti,vinmin-threshold = <3900000>; /* uV */ monitored-battery = <&bat>; --- a/arch/arm64/boot/dts/freescale/imx8mq-librem5-r4.dts~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mq-librem5-r4.dts @@ -18,6 +18,10 @@ led-max-microamp = <25000>; }; +&lcd_panel { + compatible = "ys,ys57pss36bh5gq"; +}; + &proximity { proximity-near-level = <10>; }; --- a/arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi @@ -253,7 +253,7 @@ #address-cells = <1>; #size-cells = <1>; spi-max-frequency = <84000000>; - spi-tx-bus-width = <4>; + spi-tx-bus-width = <1>; spi-rx-bus-width = <4>; }; }; --- a/arch/arm64/boot/dts/freescale/imx8qm.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8qm.dtsi @@ -196,7 +196,7 @@ }; clk: clock-controller { - compatible = "fsl,imx8qxp-clk", "fsl,scu-clk"; + compatible = "fsl,imx8qm-clk", "fsl,scu-clk"; #clock-cells = <2>; }; --- a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi @@ -46,6 +46,9 @@ serial1 = &lpuart1; serial2 = &lpuart2; serial3 = &lpuart3; + vpu_core0 = &vpu_core0; + vpu_core1 = &vpu_core1; + vpu_core2 = &vpu_core2; }; cpus { @@ -162,10 +165,30 @@ #size-cells = <2>; ranges; + decoder_boot: decoder-boot@84000000 { + reg = <0 0x84000000 0 0x2000000>; + no-map; + }; + + encoder_boot: encoder-boot@86000000 { + reg = <0 0x86000000 0 0x200000>; + no-map; + }; + + decoder_rpc: decoder-rpc@92000000 { + reg = <0 0x92000000 0 0x100000>; + no-map; + }; + dsp_reserved: dsp@92400000 { reg = <0 0x92400000 0 0x2000000>; no-map; }; + + encoder_rpc: encoder-rpc@94400000 { + reg = <0 0x94400000 0 0x700000>; + no-map; + }; }; pmu { @@ -287,6 +310,7 @@ /* sorted in register address */ #include "imx8-ss-img.dtsi" + #include "imx8-ss-vpu.dtsi" #include "imx8-ss-adma.dtsi" #include "imx8-ss-conn.dtsi" #include "imx8-ss-ddr.dtsi" --- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts~linux-next +++ a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts @@ -135,6 +135,14 @@ status = "okay"; }; +&mu_m0 { + status = "okay"; +}; + +&mu1_m0 { + status = "okay"; +}; + &scu_key { status = "okay"; }; @@ -196,6 +204,23 @@ status = "okay"; }; +&vpu { + compatible = "nxp,imx8qxp-vpu"; + status = "okay"; +}; + +&vpu_core0 { + reg = <0x2d040000 0x10000>; + memory-region = <&decoder_boot>, <&decoder_rpc>; + status = "okay"; +}; + +&vpu_core1 { + reg = <0x2d050000 0x10000>; + memory-region = <&encoder_boot>, <&encoder_rpc>; + status = "okay"; +}; + &iomuxc { pinctrl_fec1: fec1grp { fsl,pins = < --- /dev/null +++ a/arch/arm64/boot/dts/freescale/imx8-ss-vpu.dtsi @@ -0,0 +1,74 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2021 NXP + * Dong Aisheng + */ + +vpu: vpu@2c000000 { + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x2c000000 0x0 0x2c000000 0x2000000>; + reg = <0 0x2c000000 0 0x1000000>; + power-domains = <&pd IMX_SC_R_VPU>; + status = "disabled"; + + mu_m0: mailbox@2d000000 { + compatible = "fsl,imx6sx-mu"; + reg = <0x2d000000 0x20000>; + interrupts = ; + #mbox-cells = <2>; + power-domains = <&pd IMX_SC_R_VPU_MU_0>; + status = "disabled"; + }; + + mu1_m0: mailbox@2d020000 { + compatible = "fsl,imx6sx-mu"; + reg = <0x2d020000 0x20000>; + interrupts = ; + #mbox-cells = <2>; + power-domains = <&pd IMX_SC_R_VPU_MU_1>; + status = "disabled"; + }; + + mu2_m0: mailbox@2d040000 { + compatible = "fsl,imx6sx-mu"; + reg = <0x2d040000 0x20000>; + interrupts = ; + #mbox-cells = <2>; + power-domains = <&pd IMX_SC_R_VPU_MU_2>; + status = "disabled"; + }; + + vpu_core0: vpu-core@2d080000 { + reg = <0x2d080000 0x10000>; + compatible = "nxp,imx8q-vpu-decoder"; + power-domains = <&pd IMX_SC_R_VPU_DEC_0>; + mbox-names = "tx0", "tx1", "rx"; + mboxes = <&mu_m0 0 0>, + <&mu_m0 0 1>, + <&mu_m0 1 0>; + status = "disabled"; + }; + + vpu_core1: vpu-core@2d090000 { + reg = <0x2d090000 0x10000>; + compatible = "nxp,imx8q-vpu-encoder"; + power-domains = <&pd IMX_SC_R_VPU_ENC_0>; + mbox-names = "tx0", "tx1", "rx"; + mboxes = <&mu1_m0 0 0>, + <&mu1_m0 0 1>, + <&mu1_m0 1 0>; + status = "disabled"; + }; + + vpu_core2: vpu-core@2d0a0000 { + reg = <0x2d0a0000 0x10000>; + compatible = "nxp,imx8q-vpu-encoder"; + power-domains = <&pd IMX_SC_R_VPU_ENC_1>; + mbox-names = "tx0", "tx1", "rx"; + mboxes = <&mu2_m0 0 0>, + <&mu2_m0 0 1>, + <&mu2_m0 1 0>; + status = "disabled"; + }; +}; --- a/arch/arm64/boot/dts/freescale/Makefile~linux-next +++ a/arch/arm64/boot/dts/freescale/Makefile @@ -49,6 +49,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-9999.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-beacon-kit.dtb +dtb-$(CONFIG_ARCH_MXC) += imx8mm-data-modul-edm-sbc.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-ddr4-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-emcon-avari.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb @@ -72,12 +73,18 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mn-beacon- dtb-$(CONFIG_ARCH_MXC) += imx8mn-bsh-smm-s2.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mn-bsh-smm-s2pro.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mn-evk.dtb +dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr3l-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr4-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mn-tqma8mqnl-mba8mx.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mn-var-som-symphony.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mn-venice-gw7902.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb +dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw74xx.dtb +dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dahlia.dtb +dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dev.dtb +dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dahlia.dtb +dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mq-hummingboard-pulse.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mq-kontron-pitx-imx8m.dtb --- a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi~linux-next +++ a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi @@ -1045,8 +1045,8 @@ clocks = <&crg_ctrl HI3660_CLK_GATE_UFSIO_REF>, <&crg_ctrl HI3660_CLK_GATE_UFSPHY_CFG>; clock-names = "ref_clk", "phy_clk"; - freq-table-hz = <0 0 - 0 0>; + freq-table-hz = <0 0>, + <0 0>; /* offset: 0x84; bit: 12 */ resets = <&crg_rst 0x84 12>; reset-names = "rst"; --- a/arch/arm64/boot/dts/hisilicon/hi3670.dtsi~linux-next +++ a/arch/arm64/boot/dts/hisilicon/hi3670.dtsi @@ -671,8 +671,8 @@ clocks = <&crg_ctrl HI3670_CLK_GATE_UFSIO_REF>, <&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>; clock-names = "ref_clk", "phy_clk"; - freq-table-hz = <0 0 - 0 0>; + freq-table-hz = <0 0>, + <0 0>; /* offset: 0x84; bit: 12 */ resets = <&crg_rst 0x84 12>; reset-names = "rst"; --- a/arch/arm64/boot/dts/marvell/armada-3720-db.dts~linux-next +++ a/arch/arm64/boot/dts/marvell/armada-3720-db.dts @@ -164,7 +164,7 @@ pinctrl-names = "default"; pinctrl-0 = <&spi_quad_pins>; - m25p80@0 { + flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <108000000>; --- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts~linux-next +++ a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts @@ -211,7 +211,7 @@ assigned-clock-parents = <&tbg 1>; assigned-clock-rates = <20000000>; - spi-flash@0 { + flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; --- a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts~linux-next +++ a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts @@ -99,7 +99,7 @@ pinctrl-names = "default"; pinctrl-0 = <&spi_quad_pins>; - m25p80@0 { + flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <54000000>; --- a/arch/arm64/boot/dts/marvell/armada-7040-db.dts~linux-next +++ a/arch/arm64/boot/dts/marvell/armada-7040-db.dts @@ -83,7 +83,7 @@ &spi0 { status = "okay"; - spi-flash@0 { + flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <10000000>; @@ -186,7 +186,7 @@ &cp0_spi1 { status = "okay"; - spi-flash@0 { + flash@0 { compatible = "jedec,spi-nor"; reg = <0x0>; spi-max-frequency = <20000000>; --- a/arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts~linux-next +++ a/arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts @@ -155,7 +155,7 @@ pinctrl-names = "default"; pinctrl-0 = <&cp0_spi1_pins>; - spi-flash@0 { + flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; --- a/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts~linux-next +++ a/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts @@ -589,7 +589,7 @@ pinctrl-0 = <&cp1_spi1_pins>; status = "okay"; - spi-flash@0 { + flash@0 { compatible = "st,w25q32"; spi-max-frequency = <50000000>; reg = <0>; --- a/arch/arm64/boot/dts/marvell/armada-8040-db.dts~linux-next +++ a/arch/arm64/boot/dts/marvell/armada-8040-db.dts @@ -72,7 +72,7 @@ &spi0 { status = "okay"; - spi-flash@0 { + flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <10000000>; @@ -238,7 +238,7 @@ &cp1_spi1 { status = "okay"; - spi-flash@0 { + flash@0 { compatible = "jedec,spi-nor"; reg = <0x0>; spi-max-frequency = <20000000>; --- a/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi~linux-next +++ a/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi @@ -360,7 +360,7 @@ pinctrl-0 = <&cp1_spi1_pins>; status = "okay"; - spi-flash@0 { + flash@0 { compatible = "st,w25q32"; spi-max-frequency = <50000000>; reg = <0>; --- a/arch/arm64/boot/dts/marvell/armada-8040-puzzle-m801.dts~linux-next +++ a/arch/arm64/boot/dts/marvell/armada-8040-puzzle-m801.dts @@ -185,7 +185,7 @@ &spi0 { status = "okay"; - spi-flash@0 { + flash@0 { #address-cells = <0x1>; #size-cells = <0x1>; compatible = "jedec,spi-nor"; --- a/arch/arm64/boot/dts/marvell/cn9130-crb.dtsi~linux-next +++ a/arch/arm64/boot/dts/marvell/cn9130-crb.dtsi @@ -175,7 +175,7 @@ <0x2000000 0x1000000>; /* CS0 */ status = "okay"; - spi-flash@0 { + flash@0 { #address-cells = <0x1>; #size-cells = <0x1>; compatible = "jedec,spi-nor"; --- a/arch/arm64/boot/dts/marvell/cn9130-db.dtsi~linux-next +++ a/arch/arm64/boot/dts/marvell/cn9130-db.dtsi @@ -310,7 +310,7 @@ pinctrl-0 = <&cp0_spi0_pins>; reg = <0x700680 0x50>; - spi-flash@0 { + flash@0 { #address-cells = <0x1>; #size-cells = <0x1>; compatible = "jedec,spi-nor"; --- a/arch/arm64/boot/dts/marvell/cn9131-db.dtsi~linux-next +++ a/arch/arm64/boot/dts/marvell/cn9131-db.dtsi @@ -137,7 +137,7 @@ pinctrl-0 = <&cp1_spi0_pins>; reg = <0x700680 0x50>; - spi-flash@0 { + flash@0 { #address-cells = <0x1>; #size-cells = <0x1>; compatible = "jedec,spi-nor"; --- a/arch/arm64/boot/dts/mediatek/mt2712e.dtsi~linux-next +++ a/arch/arm64/boot/dts/mediatek/mt2712e.dtsi @@ -19,7 +19,7 @@ #address-cells = <2>; #size-cells = <2>; - cluster0_opp: opp_table0 { + cluster0_opp: opp-table-0 { compatible = "operating-points-v2"; opp-shared; opp00 { @@ -36,7 +36,7 @@ }; }; - cluster1_opp: opp_table1 { + cluster1_opp: opp-table-1 { compatible = "operating-points-v2"; opp-shared; opp00 { --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi~linux-next +++ a/arch/arm64/boot/dts/mediatek/mt7622.dtsi @@ -357,7 +357,7 @@ }; cci_control2: slave-if@5000 { - compatible = "arm,cci-400-ctrl-if"; + compatible = "arm,cci-400-ctrl-if", "syscon"; interface-type = "ace"; reg = <0x5000 0x1000>; }; @@ -901,6 +901,11 @@ }; }; + hifsys: syscon@1af00000 { + compatible = "mediatek,mt7622-hifsys", "syscon"; + reg = <0 0x1af00000 0 0x70>; + }; + ethsys: syscon@1b000000 { compatible = "mediatek,mt7622-ethsys", "syscon"; @@ -919,6 +924,26 @@ #dma-cells = <1>; }; + pcie_mirror: pcie-mirror@10000400 { + compatible = "mediatek,mt7622-pcie-mirror", + "syscon"; + reg = <0 0x10000400 0 0x10>; + }; + + wed0: wed@1020a000 { + compatible = "mediatek,mt7622-wed", + "syscon"; + reg = <0 0x1020a000 0 0x1000>; + interrupts = ; + }; + + wed1: wed@1020b000 { + compatible = "mediatek,mt7622-wed", + "syscon"; + reg = <0 0x1020b000 0 0x1000>; + interrupts = ; + }; + eth: ethernet@1b100000 { compatible = "mediatek,mt7622-eth", "mediatek,mt2701-eth", @@ -945,6 +970,11 @@ power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>; mediatek,ethsys = <ðsys>; mediatek,sgmiisys = <&sgmiisys>; + cci-control-port = <&cci_control2>; + mediatek,wed = <&wed0>, <&wed1>; + mediatek,pcie-mirror = <&pcie_mirror>; + mediatek,hifsys = <&hifsys>; + dma-coherent; #address-cells = <1>; #size-cells = <0>; status = "disabled"; --- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi~linux-next +++ a/arch/arm64/boot/dts/mediatek/mt8173.dtsi @@ -57,7 +57,7 @@ serial3 = &uart3; }; - cluster0_opp: opp_table0 { + cluster0_opp: opp-table-0 { compatible = "operating-points-v2"; opp-shared; opp-507000000 { @@ -94,7 +94,7 @@ }; }; - cluster1_opp: opp_table1 { + cluster1_opp: opp-table-1 { compatible = "operating-points-v2"; opp-shared; opp-507000000 { @@ -273,7 +273,7 @@ }; thermal-zones { - cpu_thermal: cpu_thermal { + cpu_thermal: cpu-thermal { polling-delay-passive = <1000>; /* milliseconds */ polling-delay = <1000>; /* milliseconds */ --- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi~linux-next +++ a/arch/arm64/boot/dts/mediatek/mt8183.dtsi @@ -197,7 +197,7 @@ }; }; - gpu_opp_table: opp_table0 { + gpu_opp_table: opp-table-0 { compatible = "operating-points-v2"; opp-shared; @@ -823,7 +823,7 @@ }; thermal_zones: thermal-zones { - cpu_thermal: cpu_thermal { + cpu_thermal: cpu-thermal { polling-delay-passive = <100>; polling-delay = <500>; thermal-sensors = <&thermal 0>; --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi~linux-next +++ a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi @@ -849,7 +849,7 @@ mediatek,pad-select = <0>; status = "okay"; - w25q64dw: spi-flash@0 { + w25q64dw: flash@0 { compatible = "winbond,w25q64dw", "jedec,spi-nor"; reg = <0>; spi-max-frequency = <25000000>; --- a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi~linux-next +++ a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi @@ -92,7 +92,7 @@ }; &cros_ec { - cros_ec_pwm: ec-pwm { + cros_ec_pwm: pwm { compatible = "google,cros-ec-pwm"; #pwm-cells = <1>; status = "disabled"; --- a/arch/arm64/boot/dts/microchip/sparx5_nand.dtsi~linux-next +++ a/arch/arm64/boot/dts/microchip/sparx5_nand.dtsi @@ -19,7 +19,7 @@ #address-cells = <1>; #size-cells = <0>; reg = <14>; /* CS14 */ - spi-flash@6 { + flash@6 { compatible = "spi-nand"; pinctrl-0 = <&cs14_pins>; pinctrl-names = "default"; --- a/arch/arm64/boot/dts/microchip/sparx5_pcb125.dts~linux-next +++ a/arch/arm64/boot/dts/microchip/sparx5_pcb125.dts @@ -47,7 +47,7 @@ #address-cells = <1>; #size-cells = <0>; reg = <0>; /* CS0 */ - spi-flash@9 { + flash@9 { compatible = "jedec,spi-nor"; spi-max-frequency = <8000000>; reg = <0x9>; /* SPI */ @@ -59,7 +59,7 @@ #address-cells = <1>; #size-cells = <0>; reg = <1>; /* CS1 */ - spi-flash@9 { + flash@9 { compatible = "spi-nand"; pinctrl-0 = <&cs1_pins>; pinctrl-names = "default"; --- a/arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi~linux-next +++ a/arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi @@ -274,7 +274,7 @@ &spi0 { status = "okay"; - spi-flash@0 { + flash@0 { compatible = "jedec,spi-nor"; spi-max-frequency = <8000000>; reg = <0>; @@ -289,7 +289,7 @@ #address-cells = <1>; #size-cells = <0>; reg = <0>; /* CS0 */ - spi-flash@9 { + flash@9 { compatible = "jedec,spi-nor"; spi-max-frequency = <8000000>; reg = <0x9>; /* SPI */ --- a/arch/arm64/boot/dts/microchip/sparx5_pcb135_board.dtsi~linux-next +++ a/arch/arm64/boot/dts/microchip/sparx5_pcb135_board.dtsi @@ -89,7 +89,7 @@ &spi0 { status = "okay"; - spi-flash@0 { + flash@0 { compatible = "jedec,spi-nor"; spi-max-frequency = <8000000>; reg = <0>; @@ -104,7 +104,7 @@ #address-cells = <1>; #size-cells = <0>; reg = <0>; /* CS0 */ - spi-flash@9 { + flash@9 { compatible = "jedec,spi-nor"; spi-max-frequency = <8000000>; reg = <0x9>; /* SPI */ --- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi~linux-next +++ a/arch/arm64/boot/dts/nvidia/tegra194.dtsi @@ -934,6 +934,11 @@ clocks = <&bpmp TEGRA194_CLK_SDMMC1>, <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>; clock-names = "sdhci", "tmclk"; + assigned-clocks = <&bpmp TEGRA194_CLK_SDMMC1>, + <&bpmp TEGRA194_CLK_PLLC4_MUXED>; + assigned-clock-parents = + <&bpmp TEGRA194_CLK_PLLC4_MUXED>, + <&bpmp TEGRA194_CLK_PLLC4_VCO_DIV2>; resets = <&bpmp TEGRA194_RESET_SDMMC1>; reset-names = "sdhci"; interconnects = <&mc TEGRA194_MEMORY_CLIENT_SDMMCRA &emc>, @@ -968,6 +973,11 @@ clocks = <&bpmp TEGRA194_CLK_SDMMC3>, <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>; clock-names = "sdhci", "tmclk"; + assigned-clocks = <&bpmp TEGRA194_CLK_SDMMC3>, + <&bpmp TEGRA194_CLK_PLLC4_MUXED>; + assigned-clock-parents = + <&bpmp TEGRA194_CLK_PLLC4_MUXED>, + <&bpmp TEGRA194_CLK_PLLC4_VCO_DIV2>; resets = <&bpmp TEGRA194_RESET_SDMMC3>; reset-names = "sdhci"; interconnects = <&mc TEGRA194_MEMORY_CLIENT_SDMMCR &emc>, --- a/arch/arm64/boot/dts/nvidia/tegra234.dtsi~linux-next +++ a/arch/arm64/boot/dts/nvidia/tegra234.dtsi @@ -654,6 +654,20 @@ reset-names = "i2c"; }; + spi@3270000 { + compatible = "nvidia,tegra234-qspi"; + reg = <0x3270000 0x1000>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&bpmp TEGRA234_CLK_QSPI0_2X_PM>, + <&bpmp TEGRA234_CLK_QSPI0_PM>; + clock-names = "qspi", "qspi_out"; + resets = <&bpmp TEGRA234_RESET_QSPI0>; + reset-names = "qspi"; + status = "disabled"; + }; + pwm1: pwm@3280000 { compatible = "nvidia,tegra194-pwm", "nvidia,tegra186-pwm"; @@ -666,6 +680,20 @@ #pwm-cells = <2>; }; + spi@3300000 { + compatible = "nvidia,tegra234-qspi"; + reg = <0x3300000 0x1000>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&bpmp TEGRA234_CLK_QSPI1_2X_PM>, + <&bpmp TEGRA234_CLK_QSPI1_PM>; + clock-names = "qspi", "qspi_out"; + resets = <&bpmp TEGRA234_RESET_QSPI1>; + reset-names = "qspi"; + status = "disabled"; + }; + mmc@3460000 { compatible = "nvidia,tegra234-sdhci", "nvidia,tegra186-sdhci"; reg = <0x03460000 0x20000>; @@ -1258,6 +1286,13 @@ }; }; + ccplex@e000000 { + compatible = "nvidia,tegra234-ccplex-cluster"; + reg = <0x0 0x0e000000 0x0 0x5ffff>; + nvidia,bpmp = <&bpmp>; + status = "okay"; + }; + sram@40000000 { compatible = "nvidia,tegra234-sysram", "mmio-sram"; reg = <0x0 0x40000000 0x0 0x80000>; --- a/arch/arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi~linux-next +++ a/arch/arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi @@ -7,6 +7,18 @@ compatible = "nvidia,p3701-0000", "nvidia,tegra234"; bus@0 { + spi@3270000 { + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <102000000>; + spi-tx-bus-width = <4>; + spi-rx-bus-width = <4>; + }; + }; + mmc@3460000 { status = "okay"; bus-width = <8>; --- a/arch/arm64/boot/dts/qcom/apq8096-db820c.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/apq8096-db820c.dts @@ -258,6 +258,12 @@ vdd-gfx-supply = <&vdd_gfx>; }; +&mss_pil { + status = "okay"; + pll-supply = <&vreg_l12a_1p8>; + firmware-name = "qcom/apq8096/mba.mbn", "qcom/apq8096/modem.mbn"; +}; + &pm8994_resin { status = "okay"; linux,code = ; --- a/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts @@ -39,7 +39,7 @@ cs-select = <0>; status = "okay"; - m25p80@0 { + flash@0 { #address-cells = <1>; #size-cells = <1>; reg = <0>; --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/ipq6018.dtsi @@ -318,12 +318,12 @@ #size-cells = <0>; reg = <0x0 0x078b6000 0x0 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <400000>; - dmas = <&blsp_dma 15>, <&blsp_dma 14>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 14>, <&blsp_dma 15>; + dma-names = "tx", "rx"; status = "disabled"; }; @@ -333,12 +333,12 @@ #size-cells = <0>; reg = <0x0 0x078b7000 0x0 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <400000>; - dmas = <&blsp_dma 17>, <&blsp_dma 16>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 16>, <&blsp_dma 17>; + dma-names = "tx", "rx"; status = "disabled"; }; @@ -630,6 +630,16 @@ }; }; + mdio: mdio@90000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "qcom,ipq6018-mdio", "qcom,ipq4019-mdio"; + reg = <0x0 0x90000 0x0 0x64>; + clocks = <&gcc GCC_MDIO_AHB_CLK>; + clock-names = "gcc_mdio_ahb_clk"; + status = "disabled"; + }; + qusb_phy_1: qusb@59000 { compatible = "qcom,ipq6018-qusb2-phy"; reg = <0x0 0x059000 0x0 0x180>; @@ -683,7 +693,6 @@ reg = <0x0 0x78000 0x0 0x1C4>; #address-cells = <2>; #size-cells = <2>; - #clock-cells = <1>; ranges; clocks = <&gcc GCC_USB0_AUX_CLK>, @@ -695,12 +704,13 @@ reset-names = "phy","common"; status = "disabled"; - usb0_ssphy: lane@78200 { + usb0_ssphy: phy@78200 { reg = <0x0 0x00078200 0x0 0x130>, /* Tx */ <0x0 0x00078400 0x0 0x200>, /* Rx */ <0x0 0x00078800 0x0 0x1F8>, /* PCS */ <0x0 0x00078600 0x0 0x044>; /* PCS misc */ #phy-cells = <0>; + #clock-cells = <1>; clocks = <&gcc GCC_USB0_PIPE_CLK>; clock-names = "pipe0"; clock-output-names = "gcc_usb0_pipe_clk_src"; --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/ipq8074.dtsi @@ -13,7 +13,7 @@ clocks { sleep_clk: sleep_clk { compatible = "fixed-clock"; - clock-frequency = <32000>; + clock-frequency = <32768>; #clock-cells = <0>; }; @@ -467,12 +467,12 @@ #size-cells = <0>; reg = <0x078b6000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <400000>; - dmas = <&blsp_dma 15>, <&blsp_dma 14>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 14>, <&blsp_dma 15>; + dma-names = "tx", "rx"; pinctrl-0 = <&i2c_0_pins>; pinctrl-names = "default"; status = "disabled"; @@ -484,12 +484,12 @@ #size-cells = <0>; reg = <0x078b7000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <100000>; - dmas = <&blsp_dma 17>, <&blsp_dma 16>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 16>, <&blsp_dma 17>; + dma-names = "tx", "rx"; status = "disabled"; }; @@ -499,12 +499,12 @@ #size-cells = <0>; reg = <0x78b9000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <400000>; - dmas = <&blsp_dma 21>, <&blsp_dma 20>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 20>, <&blsp_dma 21>; + dma-names = "tx", "rx"; status = "disabled"; }; @@ -514,12 +514,12 @@ #size-cells = <0>; reg = <0x078ba000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <100000>; - dmas = <&blsp_dma 23>, <&blsp_dma 22>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 22>, <&blsp_dma 23>; + dma-names = "tx", "rx"; status = "disabled"; }; --- a/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts @@ -35,7 +35,7 @@ &blsp1_spi1 { status = "okay"; - m25p80@0 { + flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; --- a/arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi @@ -29,7 +29,7 @@ &blsp1_spi1 { status = "ok"; - m25p80@0 { + flash@0 { #address-cells = <1>; #size-cells = <1>; compatible = "jedec,spi-nor"; --- a/arch/arm64/boot/dts/qcom/Makefile~linux-next +++ a/arch/arm64/boot/dts/qcom/Makefile @@ -83,11 +83,12 @@ dtb-$(CONFIG_ARCH_QCOM) += sc7180-trogdo dtb-$(CONFIG_ARCH_QCOM) += sc7180-trogdor-pompom-r3-lte.dtb dtb-$(CONFIG_ARCH_QCOM) += sc7180-trogdor-r1.dtb dtb-$(CONFIG_ARCH_QCOM) += sc7180-trogdor-r1-lte.dtb -dtb-$(CONFIG_ARCH_QCOM) += sc7280-herobrine-herobrine-r0.dtb +dtb-$(CONFIG_ARCH_QCOM) += sc7280-herobrine-crd.dtb dtb-$(CONFIG_ARCH_QCOM) += sc7280-herobrine-herobrine-r1.dtb +dtb-$(CONFIG_ARCH_QCOM) += sc7280-herobrine-villager-r0.dtb dtb-$(CONFIG_ARCH_QCOM) += sc7280-idp.dtb dtb-$(CONFIG_ARCH_QCOM) += sc7280-idp2.dtb -dtb-$(CONFIG_ARCH_QCOM) += sc7280-crd.dtb +dtb-$(CONFIG_ARCH_QCOM) += sc7280-crd-r3.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm630-sony-xperia-ganges-kirin.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm630-sony-xperia-nile-discovery.dtb dtb-$(CONFIG_ARCH_QCOM) += sdm630-sony-xperia-nile-pioneer.dtb --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8916.dtsi @@ -299,7 +299,7 @@ qcom,smd-channels = "rpm_requests"; rpmcc: clock-controller { - compatible = "qcom,rpmcc-msm8916"; + compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc"; #clock-cells = <1>; }; @@ -1314,6 +1314,20 @@ #interrupt-cells = <4>; }; + bam_dmux_dma: dma-controller@4044000 { + compatible = "qcom,bam-v1.7.0"; + reg = <0x04044000 0x19000>; + interrupts = ; + #dma-cells = <1>; + qcom,ee = <0>; + + num-channels = <6>; + qcom,num-ees = <1>; + qcom,powered-remotely; + + status = "disabled"; + }; + mpss: remoteproc@4080000 { compatible = "qcom,msm8916-mss-pil", "qcom,q6v5-pil"; reg = <0x04080000 0x100>, @@ -1357,6 +1371,22 @@ memory-region = <&mpss_mem>; }; + bam_dmux: bam-dmux { + compatible = "qcom,bam-dmux"; + + interrupt-parent = <&hexagon_smsm>; + interrupts = <1 IRQ_TYPE_EDGE_BOTH>, <11 IRQ_TYPE_EDGE_BOTH>; + interrupt-names = "pc", "pc-ack"; + + qcom,smem-states = <&apps_smsm 1>, <&apps_smsm 11>; + qcom,smem-state-names = "pc", "pc-ack"; + + dmas = <&bam_dmux_dma 4>, <&bam_dmux_dma 5>; + dma-names = "tx", "rx"; + + status = "disabled"; + }; + smd-edge { interrupts = ; @@ -1485,8 +1515,8 @@ interrupts = ; clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp_dma 1>, <&blsp_dma 0>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 0>, <&blsp_dma 1>; + dma-names = "tx", "rx"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&blsp1_uart1_default>; pinctrl-1 = <&blsp1_uart1_sleep>; @@ -1499,8 +1529,8 @@ interrupts = ; clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp_dma 3>, <&blsp_dma 2>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 2>, <&blsp_dma 3>; + dma-names = "tx", "rx"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&blsp1_uart2_default>; pinctrl-1 = <&blsp1_uart2_sleep>; @@ -1511,9 +1541,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x078b5000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c1_default>; pinctrl-1 = <&i2c1_sleep>; @@ -1529,8 +1559,8 @@ clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp_dma 5>, <&blsp_dma 4>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 4>, <&blsp_dma 5>; + dma-names = "tx", "rx"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&spi1_default>; pinctrl-1 = <&spi1_sleep>; @@ -1543,9 +1573,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x078b6000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c2_default>; pinctrl-1 = <&i2c2_sleep>; @@ -1561,8 +1591,8 @@ clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp_dma 7>, <&blsp_dma 6>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 6>, <&blsp_dma 7>; + dma-names = "tx", "rx"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&spi2_default>; pinctrl-1 = <&spi2_sleep>; @@ -1575,9 +1605,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x078b7000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c3_default>; pinctrl-1 = <&i2c3_sleep>; @@ -1593,8 +1623,8 @@ clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp_dma 9>, <&blsp_dma 8>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 8>, <&blsp_dma 9>; + dma-names = "tx", "rx"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&spi3_default>; pinctrl-1 = <&spi3_sleep>; @@ -1607,9 +1637,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x078b8000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c4_default>; pinctrl-1 = <&i2c4_sleep>; @@ -1625,8 +1655,8 @@ clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp_dma 11>, <&blsp_dma 10>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 10>, <&blsp_dma 11>; + dma-names = "tx", "rx"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&spi4_default>; pinctrl-1 = <&spi4_sleep>; @@ -1639,9 +1669,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x078b9000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c5_default>; pinctrl-1 = <&i2c5_sleep>; @@ -1657,8 +1687,8 @@ clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp_dma 13>, <&blsp_dma 12>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 12>, <&blsp_dma 13>; + dma-names = "tx", "rx"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&spi5_default>; pinctrl-1 = <&spi5_sleep>; @@ -1671,9 +1701,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x078ba000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c6_default>; pinctrl-1 = <&i2c6_sleep>; @@ -1689,8 +1719,8 @@ clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp_dma 15>, <&blsp_dma 14>; - dma-names = "rx", "tx"; + dmas = <&blsp_dma 14>, <&blsp_dma 15>; + dma-names = "tx", "rx"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&spi6_default>; pinctrl-1 = <&spi6_sleep>; @@ -1788,7 +1818,7 @@ qcom,mmio = <&pronto>; - bt { + bluetooth { compatible = "qcom,wcnss-bt"; }; --- a/arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts @@ -8,18 +8,14 @@ #include #include #include +#include /* * Note: The original firmware from Huawei can only boot 32-bit kernels. - * To boot arm64 kernels it is necessary to flash 64-bit TZ/HYP firmware - * with EDL, e.g. taken from the DragonBoard 410c. This works because Huawei - * forgot to set up (firmware) secure boot for some reason. - * - * Also note that Huawei no longer provides bootloader unlock codes. - * This can be bypassed by patching the bootloader from a custom HYP firmware, - * making it think the bootloader is unlocked. - * - * See: https://wiki.postmarketos.org/wiki/Huawei_Ascend_G7_(huawei-g7) + * To boot this device tree using arm64 it is necessary to flash 64-bit TZ/HYP + * firmware (e.g. taken from the DragonBoard 410c). + * See https://wiki.postmarketos.org/wiki/Huawei_Ascend_G7_(huawei-g7) + * for suggested installation instructions. */ / { @@ -216,6 +212,10 @@ status = "okay"; }; +&lpass { + status = "okay"; +}; + &pm8916_resin { status = "okay"; linux,code = ; @@ -260,6 +260,40 @@ cd-gpios = <&msmgpio 56 GPIO_ACTIVE_LOW>; }; +&sound { + status = "okay"; + + model = "msm8916"; + audio-routing = + "AMIC1", "MIC BIAS External1", + "AMIC2", "MIC BIAS External2", + "AMIC3", "MIC BIAS External1"; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&cdc_pdm_lines_act>; + pinctrl-1 = <&cdc_pdm_lines_sus>; + + primary-dai-link { + link-name = "WCD"; + cpu { + sound-dai = <&lpass MI2S_PRIMARY>; + }; + codec { + sound-dai = <&lpass_codec 0>, <&wcd_codec 0>; + }; + }; + + tertiary-dai-link { + link-name = "WCD-Capture"; + cpu { + sound-dai = <&lpass MI2S_TERTIARY>; + }; + codec { + sound-dai = <&lpass_codec 1>, <&wcd_codec 1>; + }; + }; +}; + &usb { status = "okay"; extcon = <&usb_id>, <&usb_id>; @@ -269,6 +303,13 @@ extcon = <&usb_id>; }; +&wcd_codec { + qcom,micbias-lvl = <2800>; + qcom,mbhc-vthreshold-low = <75 150 237 450 500>; + qcom,mbhc-vthreshold-high = <75 150 237 450 500>; + qcom,hphl-jack-type-normally-open; +}; + &smd_rpm_regulators { vdd_l1_l2_l3-supply = <&pm8916_s3>; vdd_l4_l5_l6-supply = <&pm8916_s4>; --- a/arch/arm64/boot/dts/qcom/msm8953.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8953.dtsi @@ -321,12 +321,12 @@ qcom,ipc = <&apcs 8 0>; qcom,smd-edge = <15>; - rpm_requests: rpm_requests { + rpm_requests: rpm-requests { compatible = "qcom,rpm-msm8953"; qcom,smd-channels = "rpm_requests"; rpmcc: rpmcc { - compatible = "qcom,rpmcc-msm8953"; + compatible = "qcom,rpmcc-msm8953", "qcom,rpmcc"; clocks = <&xo_board>; clock-names = "xo"; #clock-cells = <1>; @@ -923,9 +923,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x78b5000 0x600>; interrupts = ; - clock-names = "iface", "core"; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>; + clock-names = "core", "iface"; + clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c_1_default>; @@ -941,9 +941,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x78b6000 0x600>; interrupts = ; - clock-names = "iface", "core"; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>; + clock-names = "core", "iface"; + clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c_2_default>; @@ -959,9 +959,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x78b7000 0x600>; interrupts = ; - clock-names = "iface", "core"; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>; + clock-names = "core", "iface"; + clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c_3_default>; pinctrl-1 = <&i2c_3_sleep>; @@ -976,9 +976,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x78b8000 0x600>; interrupts = ; - clock-names = "iface", "core"; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>; + clock-names = "core", "iface"; + clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c_4_default>; pinctrl-1 = <&i2c_4_sleep>; @@ -993,9 +993,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x7af5000 0x600>; interrupts = ; - clock-names = "iface", "core"; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>; + clock-names = "core", "iface"; + clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c_5_default>; pinctrl-1 = <&i2c_5_sleep>; @@ -1010,9 +1010,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x7af6000 0x600>; interrupts = ; - clock-names = "iface", "core"; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>; + clock-names = "core", "iface"; + clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c_6_default>; pinctrl-1 = <&i2c_6_sleep>; @@ -1027,9 +1027,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x7af7000 0x600>; interrupts = ; - clock-names = "iface", "core"; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>; + clock-names = "core", "iface"; + clocks = <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c_7_default>; pinctrl-1 = <&i2c_7_sleep>; @@ -1044,9 +1044,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x7af8000 0x600>; interrupts = ; - clock-names = "iface", "core"; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>; + clock-names = "core", "iface"; + clocks = <&gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2c_8_default>; pinctrl-1 = <&i2c_8_sleep>; --- a/arch/arm64/boot/dts/qcom/msm8992.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8992.dtsi @@ -10,8 +10,30 @@ /delete-node/ &cpu6_map; /delete-node/ &cpu7_map; +&gcc { + compatible = "qcom,gcc-msm8992"; +}; + +&mmcc { + compatible = "qcom,mmcc-msm8992"; + + assigned-clock-rates = <800000000>, + <808000000>, + <1020000000>, + <960000000>, + <800000000>; +}; + +&ocmem { + reg = <0xfdd00000 0x2000>, <0xfec00000 0x100000>; + + gmu-sram@0 { + reg = <0x0 0x80000>; + }; +}; + &rpmcc { - compatible = "qcom,rpmcc-msm8992"; + compatible = "qcom,rpmcc-msm8992", "qcom,rpmcc"; }; &tcsr_mutex { --- a/arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts @@ -23,20 +23,31 @@ /* This enables graphical output via bootloader-enabled display */ chosen { - bootargs = "earlycon=tty0 console=tty0"; + bootargs = "earlycon=tty0 console=tty0 maxcpus=1"; #address-cells = <2>; #size-cells = <2>; ranges; - framebuffer0: framebuffer@3404000 { - status= "okay"; + framebuffer0: framebuffer@3400000 { compatible = "simple-framebuffer"; - reg = <0 0x3404000 0 (1080 * 1920 * 3)>; + reg = <0 0x3400000 0 (1080 * 1920 * 3)>; width = <1080>; height = <1920>; stride = <(1080 * 3)>; format = "r8g8b8"; + /* + * That's a lot of clocks, but it's necessary due + * to unused clk cleanup & no panel driver yet.. + */ + clocks = <&mmcc MDSS_AHB_CLK>, + <&mmcc MDSS_AXI_CLK>, + <&mmcc MDSS_VSYNC_CLK>, + <&mmcc MDSS_MDP_CLK>, + <&mmcc MDSS_BYTE0_CLK>, + <&mmcc MDSS_PCLK0_CLK>, + <&mmcc MDSS_ESC0_CLK>; + power-domains = <&mmcc MDSS_GDSC>; }; }; @@ -126,6 +137,23 @@ no-map; }; +&pm8994_spmi_regulators { + VDD_APC0: s8 { + regulator-min-microvolt = <680000>; + regulator-max-microvolt = <1180000>; + regulator-always-on; + regulator-boot-on; + }; + + /* APC1 is 3-phase, but quoting downstream, s11 is "the gang leader" */ + VDD_APC1: s11 { + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1225000>; + regulator-always-on; + regulator-boot-on; + }; +}; + &rpm_requests { pm8994-regulators { compatible = "qcom,rpm-pm8994-regulators"; --- a/arch/arm64/boot/dts/qcom/msm8994.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8994.dtsi @@ -4,6 +4,8 @@ #include #include +#include +#include #include / { @@ -12,6 +14,11 @@ #address-cells = <2>; #size-cells = <2>; + aliases { + mmc1 = &sdhc1; + mmc2 = &sdhc2; + }; + chosen { }; clocks { @@ -183,8 +190,8 @@ no-map; }; - cont_splash_mem: memory@3800000 { - reg = <0 0x03800000 0 0x2400000>; + cont_splash_mem: memory@3401000 { + reg = <0 0x03401000 0 0x2200000>; no-map; }; @@ -233,7 +240,6 @@ interrupts = ; qcom,ipc = <&apcs 8 0>; qcom,smd-edge = <15>; - qcom,local-pid = <0>; qcom,remote-pid = <6>; rpm_requests: rpm-requests { @@ -241,7 +247,7 @@ qcom,smd-channels = "rpm_requests"; rpmcc: rpmcc { - compatible = "qcom,rpmcc-msm8994"; + compatible = "qcom,rpmcc-msm8994", "qcom,rpmcc"; #clock-cells = <1>; }; @@ -354,6 +360,15 @@ #mbox-cells = <1>; }; + watchdog@f9017000 { + compatible = "qcom,apss-wdt-msm8994", "qcom,kpss-wdt"; + reg = <0xf9017000 0x1000>; + interrupts = , + ; + clocks = <&sleep_clk>; + timeout-sec = <10>; + }; + timer@f9020000 { #address-cells = <1>; #size-cells = <1>; @@ -498,7 +513,7 @@ #dma-cells = <1>; qcom,ee = <0>; qcom,controlled-remotely; - num-channels = <18>; + num-channels = <24>; qcom,num-ees = <4>; }; @@ -519,9 +534,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0xf9923000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <400000>; dmas = <&blsp1_dma 12>, <&blsp1_dma 13>; dma-names = "tx", "rx"; @@ -555,9 +570,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0xf9924000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <400000>; dmas = <&blsp1_dma 14>, <&blsp1_dma 15>; dma-names = "tx", "rx"; @@ -575,9 +590,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0xf9926000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <400000>; dmas = <&blsp1_dma 18>, <&blsp1_dma 19>; dma-names = "tx", "rx"; @@ -593,9 +608,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0xf9927000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <400000>; dmas = <&blsp2_dma 20>, <&blsp2_dma 21>; dma-names = "tx", "rx"; @@ -611,9 +626,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0xf9928000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <400000>; dmas = <&blsp1_dma 22>, <&blsp1_dma 23>; dma-names = "tx", "rx"; @@ -634,7 +649,7 @@ #dma-cells = <1>; qcom,ee = <0>; qcom,controlled-remotely; - num-channels = <18>; + num-channels = <24>; qcom,num-ees = <4>; }; @@ -657,9 +672,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0xf9963000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <400000>; dmas = <&blsp2_dma 12>, <&blsp2_dma 13>; dma-names = "tx", "rx"; @@ -693,9 +708,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0xf9967000 0x500>; interrupts = ; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <355000>; dmas = <&blsp2_dma 20>, <&blsp2_dma 21>; dma-names = "tx", "rx"; @@ -714,7 +729,7 @@ #power-domain-cells = <1>; reg = <0xfc400000 0x2000>; - clock-names = "xo", "sleep_clk"; + clock-names = "xo", "sleep"; clocks = <&xo_board>, <&sleep_clk>; }; @@ -1012,6 +1027,61 @@ drive-strength = <2>; }; }; + + mmcc: clock-controller@fd8c0000 { + compatible = "qcom,mmcc-msm8994"; + reg = <0xfd8c0000 0x5200>; + #clock-cells = <1>; + #reset-cells = <1>; + #power-domain-cells = <1>; + + clock-names = "xo", + "gpll0", + "mmssnoc_ahb", + "oxili_gfx3d_clk_src", + "dsi0pll", + "dsi0pllbyte", + "dsi1pll", + "dsi1pllbyte", + "hdmipll"; + clocks = <&xo_board>, + <&gcc GPLL0_OUT_MMSSCC>, + <&rpmcc RPM_SMD_MMSSNOC_AHB_CLK>, + <&rpmcc RPM_SMD_GFX3D_CLK_SRC>, + <0>, + <0>, + <0>, + <0>, + <0>; + + assigned-clocks = <&mmcc MMPLL0_PLL>, + <&mmcc MMPLL1_PLL>, + <&mmcc MMPLL3_PLL>, + <&mmcc MMPLL4_PLL>, + <&mmcc MMPLL5_PLL>; + assigned-clock-rates = <800000000>, + <1167000000>, + <1020000000>, + <960000000>, + <600000000>; + }; + + ocmem: ocmem@fdd00000 { + compatible = "qcom,msm8974-ocmem"; + reg = <0xfdd00000 0x2000>, + <0xfec00000 0x200000>; + reg-names = "ctrl", "mem"; + clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>, + <&mmcc OCMEMCX_OCMEMNOC_CLK>; + clock-names = "core", "iface"; + + #address-cells = <1>; + #size-cells = <1>; + + gmu_sram: gmu-sram@0 { + reg = <0x0 0x180000>; + }; + }; }; timer: timer { --- a/arch/arm64/boot/dts/qcom/msm8994-huawei-angler-rev-101.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8994-huawei-angler-rev-101.dts @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-only /* Copyright (c) 2015, Huawei Inc. All rights reserved. * Copyright (c) 2016, The Linux Foundation. All rights reserved. - * Copyright (c) 2021, Petr Vorel + * Copyright (c) 2021-2022, Petr Vorel */ /dts-v1/; @@ -27,17 +27,20 @@ chosen { stdout-path = "serial0:115200n8"; }; +}; - soc { - serial@f991e000 { - status = "okay"; - pinctrl-names = "default", "sleep"; - pinctrl-0 = <&blsp1_uart2_default>; - pinctrl-1 = <&blsp1_uart2_sleep>; - }; - }; +&blsp1_uart2 { + status = "okay"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&blsp1_uart2_default>; + pinctrl-1 = <&blsp1_uart2_sleep>; }; &tlmm { gpio-reserved-ranges = <85 4>; }; + +&sdhc1 { + status = "okay"; + mmc-hs400-1_8v; +}; --- a/arch/arm64/boot/dts/qcom/msm8994-sony-xperia-kitakami.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8994-sony-xperia-kitakami.dtsi @@ -108,13 +108,6 @@ /* NXP PN547 NFC */ }; -&blsp1_i2c4 { - status = "okay"; - clock-frequency = <355000>; - - /* Empty but active */ -}; - &blsp1_i2c6 { status = "okay"; clock-frequency = <355000>; @@ -194,26 +187,38 @@ }; &rpm_requests { + /* PMI8994 should probe first, because pmi8994_bby supplies some of PM8994's regulators */ + pmi8994_regulators: pmi8994-regulators { + compatible = "qcom,rpm-pmi8994-regulators"; + + vdd_s1-supply = <&vph_pwr>; + vdd_bst_byp-supply = <&vph_pwr>; + + pmi8994_s1: s1 { + regulator-min-microvolt = <1025000>; + regulator-max-microvolt = <1025000>; + }; + + /* S2 & S3 - VDD_GFX */ + + pmi8994_bby: boost-bypass { + regulator-min-microvolt = <3150000>; + regulator-max-microvolt = <3600000>; + }; + }; + pm8994_regulators: pm8994-regulators { compatible = "qcom,rpm-pm8994-regulators"; - vdd_s1-supply = <&vph_pwr>; - vdd_s2-supply = <&vph_pwr>; vdd_s3-supply = <&vph_pwr>; vdd_s4-supply = <&vph_pwr>; vdd_s5-supply = <&vph_pwr>; vdd_s6-supply = <&vph_pwr>; vdd_s7-supply = <&vph_pwr>; - vdd_s8-supply = <&vph_pwr>; - vdd_s9-supply = <&vph_pwr>; - vdd_s10-supply = <&vph_pwr>; - vdd_s11-supply = <&vph_pwr>; - vdd_s12-supply = <&vph_pwr>; vdd_l1-supply = <&pmi8994_s1>; vdd_l2_l26_l28-supply = <&pm8994_s3>; vdd_l3_l11-supply = <&pm8994_s3>; vdd_l4_l27_l31-supply = <&pm8994_s3>; - vdd_l5_l7-supply = <&pm8994_s5>; vdd_l6_l12_l32-supply = <&pm8994_s5>; vdd_l8_l16_l30-supply = <&vph_pwr>; vdd_l9_l10_l18_l22-supply = <&pmi8994_bby>; @@ -234,9 +239,9 @@ pm8994_s4: s4 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; + regulator-system-load = <325000>; regulator-allow-set-load; regulator-always-on; - regulator-system-load = <325000>; }; pm8994_s5: s5 { @@ -262,13 +267,14 @@ pm8994_l2: l2 { regulator-min-microvolt = <1250000>; regulator-max-microvolt = <1250000>; - regulator-allow-set-load; regulator-system-load = <10000>; + regulator-allow-set-load; }; pm8994_l3: l3 { regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; + regulator-boot-on; }; pm8994_l4: l4 { @@ -308,8 +314,8 @@ pm8994_l12: l12 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; - regulator-allow-set-load; regulator-system-load = <10000>; + regulator-allow-set-load; }; pm8994_l13: l13 { @@ -320,8 +326,9 @@ pm8994_l14: l14 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; - regulator-allow-set-load; regulator-system-load = <10000>; + regulator-allow-set-load; + regulator-boot-on; }; pm8994_l15: l15 { @@ -337,44 +344,47 @@ pm8994_l17: l17 { regulator-min-microvolt = <2200000>; regulator-max-microvolt = <2200000>; + regulator-boot-on; }; pm8994_l18: l18 { regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; regulator-always-on; + regulator-boot-on; }; pm8994_l19: l19 { regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; + regulator-boot-on; }; pm8994_l20: l20 { regulator-min-microvolt = <2950000>; regulator-max-microvolt = <2950000>; - regulator-always-on; - regulator-boot-on; - regulator-allow-set-load; regulator-system-load = <570000>; + regulator-allow-set-load; }; pm8994_l21: l21 { regulator-min-microvolt = <2950000>; regulator-max-microvolt = <2950000>; - regulator-always-on; - regulator-allow-set-load; regulator-system-load = <800000>; + regulator-allow-set-load; }; pm8994_l22: l22 { regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; + regulator-boot-on; }; pm8994_l23: l23 { regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; + regulator-always-on; + regulator-boot-on; }; pm8994_l24: l24 { @@ -385,6 +395,7 @@ pm8994_l25: l25 { regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; + regulator-boot-on; }; pm8994_l26: l26 { @@ -395,30 +406,33 @@ pm8994_l27: l27 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; + regulator-boot-on; }; pm8994_l28: l28 { regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; - regulator-allow-set-load; regulator-system-load = <10000>; + regulator-allow-set-load; }; pm8994_l29: l29 { regulator-min-microvolt = <2700000>; regulator-max-microvolt = <2700000>; + regulator-boot-on; }; pm8994_l30: l30 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; + regulator-boot-on; }; pm8994_l31: l31 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; - regulator-allow-set-load; regulator-system-load = <10000>; + regulator-allow-set-load; }; pm8994_l32: l32 { @@ -426,26 +440,11 @@ regulator-max-microvolt = <1800000>; }; - pm8994_lvs1: lvs1 {}; - pm8994_lvs2: lvs2 {}; - }; - - pmi8994_regulators: pmi8994-regulators { - compatible = "qcom,rpm-pmi8994-regulators"; - - vdd_s1-supply = <&vph_pwr>; - vdd_bst_byp-supply = <&vph_pwr>; - - pmi8994_s1: s1 { - regulator-min-microvolt = <1025000>; - regulator-max-microvolt = <1025000>; + pm8994_lvs1: lvs1 { + regulator-boot-on; }; - - /* S2 & S3 - VDD_GFX */ - - pmi8994_bby: boost-bypass { - regulator-min-microvolt = <3150000>; - regulator-max-microvolt = <3600000>; + pm8994_lvs2: lvs2 { + regulator-boot-on; }; }; }; --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8996.dtsi @@ -384,60 +384,65 @@ #size-cells = <2>; ranges; - mba_region: mba@91500000 { - reg = <0x0 0x91500000 0x0 0x200000>; + hyp_mem: memory@85800000 { + reg = <0x0 0x85800000 0x0 0x600000>; no-map; }; - slpi_region: slpi@90b00000 { - reg = <0x0 0x90b00000 0x0 0xa00000>; + xbl_mem: memory@85e00000 { + reg = <0x0 0x85e00000 0x0 0x200000>; no-map; }; - venus_region: venus@90400000 { - reg = <0x0 0x90400000 0x0 0x700000>; + smem_mem: smem-mem@86000000 { + reg = <0x0 0x86000000 0x0 0x200000>; no-map; }; - adsp_region: adsp@8ea00000 { - reg = <0x0 0x8ea00000 0x0 0x1a00000>; + tz_mem: memory@86200000 { + reg = <0x0 0x86200000 0x0 0x2600000>; no-map; }; - mpss_region: mpss@88800000 { - reg = <0x0 0x88800000 0x0 0x6200000>; + rmtfs_mem: rmtfs { + compatible = "qcom,rmtfs-mem"; + + size = <0x0 0x200000>; + alloc-ranges = <0x0 0xa0000000 0x0 0x2000000>; no-map; + + qcom,client-id = <1>; + qcom,vmid = <15>; }; - smem_mem: smem-mem@86000000 { - reg = <0x0 0x86000000 0x0 0x200000>; + mpss_mem: mpss@88800000 { + reg = <0x0 0x88800000 0x0 0x6200000>; no-map; }; - memory@85800000 { - reg = <0x0 0x85800000 0x0 0x800000>; + adsp_mem: adsp@8ea00000 { + reg = <0x0 0x8ea00000 0x0 0x1b00000>; no-map; }; - memory@86200000 { - reg = <0x0 0x86200000 0x0 0x2600000>; + slpi_mem: slpi@90500000 { + reg = <0x0 0x90500000 0x0 0xa00000>; no-map; }; - rmtfs@86700000 { - compatible = "qcom,rmtfs-mem"; - - size = <0x0 0x200000>; - alloc-ranges = <0x0 0xa0000000 0x0 0x2000000>; + gpu_mem: gpu@90f00000 { + compatible = "shared-dma-pool"; + reg = <0x0 0x90f00000 0x0 0x100000>; no-map; + }; - qcom,client-id = <1>; - qcom,vmid = <15>; + venus_mem: venus@91000000 { + reg = <0x0 0x91000000 0x0 0x500000>; + no-map; }; - zap_shader_region: gpu@8f200000 { - compatible = "shared-dma-pool"; - reg = <0x0 0x90b00000 0x0 0xa00000>; + mba_mem: mba@91500000 { + reg = <0x0 0x91500000 0x0 0x200000>; no-map; }; }; @@ -456,7 +461,7 @@ qcom,glink-channels = "rpm_requests"; rpmcc: qcom,rpmcc { - compatible = "qcom,rpmcc-msm8996"; + compatible = "qcom,rpmcc-msm8996", "qcom,rpmcc"; #clock-cells = <1>; }; @@ -513,12 +518,12 @@ qcom,local-pid = <0>; qcom,remote-pid = <2>; - smp2p_adsp_out: master-kernel { + adsp_smp2p_out: master-kernel { qcom,entry-name = "master-kernel"; #qcom,smem-state-cells = <1>; }; - smp2p_adsp_in: slave-kernel { + adsp_smp2p_in: slave-kernel { qcom,entry-name = "slave-kernel"; interrupt-controller; @@ -526,7 +531,7 @@ }; }; - smp2p-modem { + smp2p-mpss { compatible = "qcom,smp2p"; qcom,smem = <435>, <428>; @@ -537,12 +542,12 @@ qcom,local-pid = <0>; qcom,remote-pid = <1>; - modem_smp2p_out: master-kernel { + mpss_smp2p_out: master-kernel { qcom,entry-name = "master-kernel"; #qcom,smem-state-cells = <1>; }; - modem_smp2p_in: slave-kernel { + mpss_smp2p_in: slave-kernel { qcom,entry-name = "slave-kernel"; interrupt-controller; @@ -561,16 +566,17 @@ qcom,local-pid = <0>; qcom,remote-pid = <3>; - smp2p_slpi_in: slave-kernel { + slpi_smp2p_out: master-kernel { + qcom,entry-name = "master-kernel"; + #qcom,smem-state-cells = <1>; + }; + + slpi_smp2p_in: slave-kernel { qcom,entry-name = "slave-kernel"; + interrupt-controller; #interrupt-cells = <2>; }; - - smp2p_slpi_out: master-kernel { - qcom,entry-name = "master-kernel"; - #qcom,smem-state-cells = <1>; - }; }; soc: soc { @@ -707,7 +713,7 @@ #thermal-sensor-cells = <1>; }; - cryptobam: dma@644000 { + cryptobam: dma-controller@644000 { compatible = "qcom,bam-v1.7.0"; reg = <0x00644000 0x24000>; interrupts = ; @@ -788,7 +794,7 @@ reg-names = "mdp_phys"; interrupt-parent = <&mdss>; - interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <0>; clocks = <&mmcc MDSS_AHB_CLK>, <&mmcc MDSS_AXI_CLK>, @@ -834,7 +840,7 @@ reg-names = "dsi_ctrl"; interrupt-parent = <&mdss>; - interrupts = <4 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <4>; clocks = <&mmcc MDSS_MDP_CLK>, <&mmcc MDSS_BYTE0_CLK>, @@ -904,7 +910,7 @@ "hdcp_physical"; interrupt-parent = <&mdss>; - interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <8>; clocks = <&mmcc MDSS_MDP_CLK>, <&mmcc MDSS_AHB_CLK>, @@ -1033,7 +1039,7 @@ }; zap-shader { - memory-region = <&zap_shader_region>; + memory-region = <&gpu_mem>; }; }; @@ -1574,7 +1580,7 @@ ranges; pcie0: pcie@600000 { - compatible = "qcom,pcie-msm8996", "snps,dw-pcie"; + compatible = "qcom,pcie-msm8996"; status = "disabled"; power-domains = <&gcc PCIE0_GDSC>; bus-range = <0x00 0xff>; @@ -1626,7 +1632,7 @@ }; pcie1: pcie@608000 { - compatible = "qcom,pcie-msm8996", "snps,dw-pcie"; + compatible = "qcom,pcie-msm8996"; power-domains = <&gcc PCIE1_GDSC>; bus-range = <0x00 0xff>; num-lanes = <1>; @@ -1679,7 +1685,7 @@ }; pcie2: pcie@610000 { - compatible = "qcom,pcie-msm8996", "snps,dw-pcie"; + compatible = "qcom,pcie-msm8996"; power-domains = <&gcc PCIE2_GDSC>; bus-range = <0x00 0xff>; num-lanes = <1>; @@ -1730,7 +1736,8 @@ }; ufshc: ufshc@624000 { - compatible = "qcom,ufshc"; + compatible = "qcom,msm8996-ufshc", "qcom,ufshc", + "jedec,ufs-2.0"; reg = <0x00624000 0x2500>; interrupts = ; @@ -2026,7 +2033,7 @@ <&venus_smmu 0x2c>, <&venus_smmu 0x2d>, <&venus_smmu 0x31>; - memory-region = <&venus_region>; + memory-region = <&venus_mem>; status = "disabled"; video-decoder { @@ -2122,6 +2129,105 @@ clock-names = "iface", "bus"; }; + slpi_pil: remoteproc@1c00000 { + compatible = "qcom,msm8996-slpi-pil"; + reg = <0x01c00000 0x4000>; + + interrupts-extended = <&intc 0 390 IRQ_TYPE_EDGE_RISING>, + <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, + <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, + <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, + <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "wdog", + "fatal", + "ready", + "handover", + "stop-ack"; + + clocks = <&xo_board>, + <&rpmcc RPM_SMD_AGGR2_NOC_CLK>; + clock-names = "xo", "aggre2"; + + memory-region = <&slpi_mem>; + + qcom,smem-states = <&slpi_smp2p_out 0>; + qcom,smem-state-names = "stop"; + + power-domains = <&rpmpd MSM8996_VDDSSCX>; + power-domain-names = "ssc_cx"; + + status = "disabled"; + + smd-edge { + interrupts = ; + + label = "dsps"; + mboxes = <&apcs_glb 25>; + qcom,smd-edge = <3>; + qcom,remote-pid = <3>; + }; + }; + + mss_pil: remoteproc@2080000 { + compatible = "qcom,msm8996-mss-pil"; + reg = <0x2080000 0x100>, + <0x2180000 0x020>; + reg-names = "qdsp6", "rmb"; + + interrupts-extended = <&intc 0 448 IRQ_TYPE_EDGE_RISING>, + <&mpss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, + <&mpss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, + <&mpss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, + <&mpss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>, + <&mpss_smp2p_in 7 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "wdog", "fatal", "ready", + "handover", "stop-ack", + "shutdown-ack"; + + clocks = <&gcc GCC_MSS_CFG_AHB_CLK>, + <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, + <&gcc GCC_BOOT_ROM_AHB_CLK>, + <&xo_board>, + <&gcc GCC_MSS_GPLL0_DIV_CLK>, + <&gcc GCC_MSS_SNOC_AXI_CLK>, + <&gcc GCC_MSS_MNOC_BIMC_AXI_CLK>, + <&rpmcc RPM_SMD_PCNOC_CLK>, + <&rpmcc RPM_SMD_QDSS_CLK>; + clock-names = "iface", "bus", "mem", "xo", "gpll0_mss", + "snoc_axi", "mnoc_axi", "pnoc", "qdss"; + + resets = <&gcc GCC_MSS_RESTART>; + reset-names = "mss_restart"; + + power-domains = <&rpmpd MSM8996_VDDCX>, + <&rpmpd MSM8996_VDDMX>; + power-domain-names = "cx", "mx"; + + qcom,smem-states = <&mpss_smp2p_out 0>; + qcom,smem-state-names = "stop"; + + qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>; + + status = "disabled"; + + mba { + memory-region = <&mba_mem>; + }; + + mpss { + memory-region = <&mpss_mem>; + }; + + smd-edge { + interrupts = ; + + label = "mpss"; + mboxes = <&apcs_glb 12>; + qcom,smd-edge = <0>; + qcom,remote-pid = <1>; + }; + }; + stm@3002000 { compatible = "arm,coresight-stm", "arm,primecell"; reg = <0x3002000 0x1000>, @@ -2786,9 +2892,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x07577000 0x1000>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&blsp1_i2c3_default>; pinctrl-1 = <&blsp1_i2c3_sleep>; @@ -2834,9 +2940,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x075b5000 0x1000>; interrupts = ; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&blsp2_i2c1_default>; pinctrl-1 = <&blsp2_i2c1_sleep>; @@ -2851,9 +2957,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x075b6000 0x1000>; interrupts = ; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&blsp2_i2c2_default>; pinctrl-1 = <&blsp2_i2c2_sleep>; @@ -2868,9 +2974,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x075b7000 0x1000>; interrupts = ; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; + clock-names = "core", "iface"; clock-frequency = <400000>; pinctrl-names = "default", "sleep"; pinctrl-0 = <&blsp2_i2c3_default>; @@ -2886,9 +2992,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x75b9000 0x1000>; interrupts = ; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp2_i2c5_default>; dmas = <&blsp2_dma 20>, <&blsp2_dma 21>; @@ -2902,9 +3008,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x75ba000 0x1000>; interrupts = ; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&blsp2_i2c6_default>; pinctrl-1 = <&blsp2_i2c6_sleep>; @@ -3023,19 +3129,19 @@ reg = <0x09300000 0x80000>; interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>, - <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>, - <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>, - <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>, - <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>; + <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, + <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, + <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, + <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack"; clocks = <&rpmcc RPM_SMD_BB_CLK1>; clock-names = "xo"; - memory-region = <&adsp_region>; + memory-region = <&adsp_mem>; - qcom,smem-states = <&smp2p_adsp_out 0>; + qcom,smem-states = <&adsp_smp2p_out 0>; qcom,smem-state-names = "stop"; power-domains = <&rpmpd MSM8996_VDDCX>; --- a/arch/arm64/boot/dts/qcom/msm8996-mtp.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8996-mtp.dts @@ -18,12 +18,10 @@ chosen { stdout-path = "serial0"; }; +}; - soc { - serial@75b0000 { - status = "okay"; - }; - }; +&blsp2_uart2 { + status = "okay"; }; &hdmi { --- a/arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone.dtsi @@ -13,9 +13,10 @@ #include #include -/delete-node/ &slpi_region; -/delete-node/ &venus_region; -/delete-node/ &zap_shader_region; +/delete-node/ &adsp_mem; +/delete-node/ &slpi_mem; +/delete-node/ &venus_mem; +/delete-node/ &gpu_mem; / { qcom,msm-id = <246 0x30001>; /* MSM8996 V3.1 (Final) */ @@ -46,18 +47,23 @@ no-map; }; - zap_shader_region: gpu@90400000 { + adsp_mem: adsp@8ea00000 { + reg = <0x0 0x8ea00000 0x0 0x1a00000>; + no-map; + }; + + gpu_mem: gpu@90400000 { compatible = "shared-dma-pool"; reg = <0x0 0x90400000 0x0 0x2000>; no-map; }; - slpi_region: memory@90500000 { + slpi_mem: memory@90500000 { reg = <0 0x90500000 0 0xa00000>; no-map; }; - venus_region: memory@90f00000 { + venus_mem: memory@90f00000 { reg = <0 0x90f00000 0 0x500000>; no-map; }; --- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi @@ -66,32 +66,32 @@ /* This platform has all PIL regions offset by 0x1400000 */ /delete-node/ mpss@88800000; - mpss_region: mpss@89c00000 { + mpss_mem: mpss@89c00000 { reg = <0x0 0x89c00000 0x0 0x6200000>; no-map; }; /delete-node/ adsp@8ea00000; - adsp_region: adsp@8ea00000 { + adsp_mem: adsp@8fe00000 { reg = <0x0 0x8fe00000 0x0 0x1b00000>; no-map; }; - /delete-node/ slpi@90b00000; - slpi_region: slpi@91900000 { + /delete-node/ slpi@90500000; + slpi_mem: slpi@91900000 { reg = <0x0 0x91900000 0x0 0xa00000>; no-map; }; - /delete-node/ gpu@8f200000; - zap_shader_region: gpu@92300000 { + /delete-node/ gpu@90f00000; + gpu_mem: gpu@92300000 { compatible = "shared-dma-pool"; reg = <0x0 0x92300000 0x0 0x2000>; no-map; }; /delete-node/ venus@91000000; - venus_region: venus@90400000 { + venus_mem: venus@92400000 { reg = <0x0 0x92400000 0x0 0x500000>; no-map; }; @@ -107,7 +107,7 @@ pmsg-size = <0x40000>; }; - /delete-node/ rmtfs@86700000; + /delete-node/ rmtfs; rmtfs@f6c00000 { compatible = "qcom,rmtfs-mem"; reg = <0 0xf6c00000 0 0x200000>; @@ -118,7 +118,7 @@ }; /delete-node/ mba@91500000; - mba_region: mba@f6f00000 { + mba_mem: mba@f6f00000 { reg = <0x0 0xf6f00000 0x0 0x100000>; no-map; }; @@ -267,6 +267,12 @@ vdd-gfx-supply = <&vdd_gfx>; }; +&mss_pil { + status = "okay"; + + pll-supply = <&vreg_l12a_1p8>; +}; + &pcie0 { status = "okay"; @@ -291,6 +297,12 @@ linux,code = ; }; +&slpi_pil { + status = "okay"; + + px-supply = <&vreg_lvs2a_1p8>; +}; + &usb3 { status = "okay"; extcon = <&typec>; @@ -336,13 +348,7 @@ vdda-phy-supply = <&vreg_l28a_0p925>; vdda-pll-supply = <&vreg_l12a_1p8>; - - vdda-phy-max-microamp = <18380>; - vdda-pll-max-microamp = <9440>; - vddp-ref-clk-supply = <&vreg_l25a_1p2>; - vddp-ref-clk-max-microamp = <100>; - vddp-ref-clk-always-on; }; &venus { --- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts @@ -130,6 +130,11 @@ status = "okay"; }; +&mss_pil { + firmware-name = "qcom/msm8996/gemini/mba.mbn", + "qcom/msm8996/gemini/modem.mbn"; +}; + &q6asmdai { dai@0 { reg = <0>; @@ -144,6 +149,10 @@ }; }; +&slpi_pil { + firmware-name = "qcom/msm8996/gemini/slpi.mbn"; +}; + &sound { compatible = "qcom,apq8096-sndcard"; model = "gemini"; --- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts @@ -111,6 +111,11 @@ status = "disabled"; }; +&mss_pil { + firmware-name = "qcom/msm8996/scorpio/mba.mbn", + "qcom/msm8996/scorpio/modem.mbn"; +}; + &q6asmdai { dai@0 { reg = <0>; @@ -125,6 +130,10 @@ }; }; +&slpi_pil { + firmware-name = "qcom/msm8996/scorpio/slpi.mbn"; +}; + &sound { compatible = "qcom,apq8096-sndcard"; model = "scorpio"; --- a/arch/arm64/boot/dts/qcom/msm8998.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8998.dtsi @@ -815,6 +815,21 @@ clock-names = "xo", "sleep_clk"; clocks = <&xo>, <&sleep_clk>; + + /* + * The hypervisor typically configures the memory region where these clocks + * reside as read-only for the HLOS. If the HLOS tried to enable or disable + * these clocks on a device with such configuration (e.g. because they are + * enabled but unused during boot-up), the device will most likely decide + * to reboot. + * In light of that, we are conservative here and we list all such clocks + * as protected. The board dts (or a user-supplied dts) can override the + * list of protected clocks if it differs from the norm, and it is in fact + * desired for the HLOS to manage these clocks + */ + protected-clocks = , + , + ; }; rpm_msg_ram: sram@778000 { --- a/arch/arm64/boot/dts/qcom/msm8998-oneplus-common.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/msm8998-oneplus-common.dtsi @@ -188,6 +188,23 @@ }; }; +&blsp1_i2c6 { + status = "okay"; + + nfc@28 { + compatible = "nxp,nxp-nci-i2c"; + reg = <0x28>; + + interrupt-parent = <&tlmm>; + interrupts = <92 IRQ_TYPE_LEVEL_HIGH>; + + enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&nfc_int_active &nfc_enable_active>; + }; +}; + &blsp1_uart3 { status = "okay"; @@ -462,6 +479,20 @@ drive-strength = <8>; bias-pull-up; }; + + nfc_int_active: nfc-int-active { + pins = "gpio92"; + function = "gpio"; + drive-strength = <6>; + bias-pull-up; + }; + + nfc_enable_active: nfc-enable-active { + pins = "gpio12", "gpio116"; + function = "gpio"; + drive-strength = <6>; + bias-pull-up; + }; }; &ufshc { --- a/arch/arm64/boot/dts/qcom/pm8350b.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/pm8350b.dtsi @@ -6,6 +6,30 @@ #include #include +/ { + thermal-zones { + pm8350b_thermal: pm8350c-thermal { + polling-delay-passive = <100>; + polling-delay = <0>; + thermal-sensors = <&pm8350b_temp_alarm>; + + trips { + pm8350b_trip0: trip0 { + temperature = <95000>; + hysteresis = <0>; + type = "passive"; + }; + + pm8350b_crit: pm8350c-crit { + temperature = <115000>; + hysteresis = <0>; + type = "critical"; + }; + }; + }; + }; +}; + &spmi_bus { pm8350b: pmic@3 { compatible = "qcom,pm8350b", "qcom,spmi-pmic"; @@ -13,6 +37,13 @@ #address-cells = <1>; #size-cells = <0>; + pm8350b_temp_alarm: temp-alarm@a00 { + compatible = "qcom,spmi-temp-alarm"; + reg = <0xa00>; + interrupts = <0x3 0xa 0x0 IRQ_TYPE_EDGE_BOTH>; + #thermal-sensor-cells = <0>; + }; + pm8350b_gpios: gpio@8800 { compatible = "qcom,pm8350b-gpio"; reg = <0x8800>; --- a/arch/arm64/boot/dts/qcom/pm8350c.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/pm8350c.dtsi @@ -32,23 +32,25 @@ }; }; -&thermal_zones { - pm8350c_thermal: pm8350c-thermal { - polling-delay-passive = <100>; - polling-delay = <0>; - thermal-sensors = <&pm8350c_temp_alarm>; +/ { + thermal-zones { + pm8350c_thermal: pm8350c-thermal { + polling-delay-passive = <100>; + polling-delay = <0>; + thermal-sensors = <&pm8350c_temp_alarm>; - trips { - pm8350c_trip0: trip0 { - temperature = <95000>; - hysteresis = <0>; - type = "passive"; - }; + trips { + pm8350c_trip0: trip0 { + temperature = <95000>; + hysteresis = <0>; + type = "passive"; + }; - pm8350c_crit: pm8350c-crit { - temperature = <115000>; - hysteresis = <0>; - type = "critical"; + pm8350c_crit: pm8350c-crit { + temperature = <115000>; + hysteresis = <0>; + type = "critical"; + }; }; }; }; --- a/arch/arm64/boot/dts/qcom/pm8350.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/pm8350.dtsi @@ -6,6 +6,30 @@ #include #include +/ { + thermal-zones { + pm8350_thermal: pm8350c-thermal { + polling-delay-passive = <100>; + polling-delay = <0>; + thermal-sensors = <&pm8350_temp_alarm>; + + trips { + pm8350_trip0: trip0 { + temperature = <95000>; + hysteresis = <0>; + type = "passive"; + }; + + pm8350_crit: pm8350c-crit { + temperature = <115000>; + hysteresis = <0>; + type = "critical"; + }; + }; + }; + }; +}; + &spmi_bus { pm8350: pmic@1 { compatible = "qcom,pm8350", "qcom,spmi-pmic"; @@ -13,6 +37,13 @@ #address-cells = <1>; #size-cells = <0>; + pm8350_temp_alarm: temp-alarm@a00 { + compatible = "qcom,spmi-temp-alarm"; + reg = <0xa00>; + interrupts = <0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>; + #thermal-sensor-cells = <0>; + }; + pm8350_gpios: gpio@8800 { compatible = "qcom,pm8350-gpio"; reg = <0x8800>; --- /dev/null +++ a/arch/arm64/boot/dts/qcom/pm8450.dtsi @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022, Linaro Limited + */ + +#include +#include + +/ { + thermal-zones { + pm8450-thermal { + polling-delay-passive = <100>; + polling-delay = <0>; + + thermal-sensors = <&pm8450_temp_alarm>; + + trips { + trip0 { + temperature = <95000>; + hysteresis = <0>; + type = "passive"; + }; + + trip1 { + temperature = <115000>; + hysteresis = <0>; + type = "hot"; + }; + }; + }; + }; +}; + + +&spmi_bus { + pm8450: pmic@7 { + compatible = "qcom,pm8450", "qcom,spmi-pmic"; + reg = <0x7 SPMI_USID>; + #address-cells = <1>; + #size-cells = <0>; + + pm8450_temp_alarm: temp-alarm@a00 { + compatible = "qcom,spmi-temp-alarm"; + reg = <0xa00>; + interrupts = <0x7 0xa 0x0 IRQ_TYPE_EDGE_BOTH>; + #thermal-sensor-cells = <0>; + }; + + pm8450_gpios: gpio@8800 { + compatible = "qcom,pm8450-gpio", "qcom,spmi-gpio"; + reg = <0x8800>; + gpio-controller; + gpio-ranges = <&pm8450_gpios 0 0 4>; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + }; +}; --- a/arch/arm64/boot/dts/qcom/pmr735a.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/pmr735a.dtsi @@ -32,23 +32,25 @@ }; }; -&thermal_zones { - pmr735a_thermal: pmr735a-thermal { - polling-delay-passive = <100>; - polling-delay = <0>; - thermal-sensors = <&pmr735a_temp_alarm>; +/ { + thermal-zones { + pmr735a_thermal: pmr735a-thermal { + polling-delay-passive = <100>; + polling-delay = <0>; + thermal-sensors = <&pmr735a_temp_alarm>; - trips { - pmr735a_trip0: trip0 { - temperature = <95000>; - hysteresis = <0>; - type = "passive"; - }; + trips { + pmr735a_trip0: trip0 { + temperature = <95000>; + hysteresis = <0>; + type = "passive"; + }; - pmr735a_crit: pmr735a-crit { - temperature = <115000>; - hysteresis = <0>; - type = "critical"; + pmr735a_crit: pmr735a-crit { + temperature = <115000>; + hysteresis = <0>; + type = "critical"; + }; }; }; }; --- a/arch/arm64/boot/dts/qcom/pmr735b.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/pmr735b.dtsi @@ -6,6 +6,30 @@ #include #include +/ { + thermal-zones { + pmr735a_thermal: pmr735a-thermal { + polling-delay-passive = <100>; + polling-delay = <0>; + thermal-sensors = <&pmr735b_temp_alarm>; + + trips { + pmr735b_trip0: trip0 { + temperature = <95000>; + hysteresis = <0>; + type = "passive"; + }; + + pmr735b_crit: pmr735a-crit { + temperature = <115000>; + hysteresis = <0>; + type = "critical"; + }; + }; + }; + }; +}; + &spmi_bus { pmr735b: pmic@5 { compatible = "qcom,pmr735b", "qcom,spmi-pmic"; @@ -13,6 +37,13 @@ #address-cells = <1>; #size-cells = <0>; + pmr735b_temp_alarm: temp-alarm@a00 { + compatible = "qcom,spmi-temp-alarm"; + reg = <0xa00>; + interrupts = <0x5 0xa 0x0 IRQ_TYPE_EDGE_BOTH>; + #thermal-sensor-cells = <0>; + }; + pmr735b_gpios: gpio@8800 { compatible = "qcom,pmr735b-gpio"; reg = <0x8800>; --- a/arch/arm64/boot/dts/qcom/qcs404.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/qcs404.dtsi @@ -226,7 +226,7 @@ qcom,glink-channels = "rpm_requests"; rpmcc: clock-controller { - compatible = "qcom,rpmcc-qcs404"; + compatible = "qcom,rpmcc-qcs404", "qcom,rpmcc"; #clock-cells = <1>; }; @@ -823,8 +823,8 @@ interrupts = ; clocks = <&gcc GCC_BLSP1_UART0_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp1_dma 1>, <&blsp1_dma 0>; - dma-names = "rx", "tx"; + dmas = <&blsp1_dma 0>, <&blsp1_dma 1>; + dma-names = "tx", "rx"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_uart0_default>; status = "disabled"; @@ -836,8 +836,8 @@ interrupts = ; clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp1_dma 3>, <&blsp1_dma 2>; - dma-names = "rx", "tx"; + dmas = <&blsp1_dma 2>, <&blsp1_dma 3>; + dma-names = "tx", "rx"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_uart1_default>; status = "disabled"; @@ -849,8 +849,8 @@ interrupts = ; clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp1_dma 5>, <&blsp1_dma 4>; - dma-names = "rx", "tx"; + dmas = <&blsp1_dma 4>, <&blsp1_dma 5>; + dma-names = "tx", "rx"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_uart2_default>; status = "okay"; @@ -903,8 +903,8 @@ interrupts = ; clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp1_dma 7>, <&blsp1_dma 6>; - dma-names = "rx", "tx"; + dmas = <&blsp1_dma 6>, <&blsp1_dma 7>; + dma-names = "tx", "rx"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_uart3_default>; status = "disabled"; @@ -914,9 +914,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x078b5000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP0_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP0_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_i2c0_default>; #address-cells = <1>; @@ -928,9 +928,9 @@ compatible = "qcom,spi-qup-v2.2.1"; reg = <0x078b5000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP0_SPI_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP0_SPI_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_spi0_default>; #address-cells = <1>; @@ -942,9 +942,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x078b6000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_i2c1_default>; #address-cells = <1>; @@ -956,9 +956,9 @@ compatible = "qcom,spi-qup-v2.2.1"; reg = <0x078b6000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_spi1_default>; #address-cells = <1>; @@ -970,9 +970,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x078b7000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_i2c2_default>; #address-cells = <1>; @@ -984,9 +984,9 @@ compatible = "qcom,spi-qup-v2.2.1"; reg = <0x078b7000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_spi2_default>; #address-cells = <1>; @@ -998,9 +998,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x078b8000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_i2c3_default>; #address-cells = <1>; @@ -1012,9 +1012,9 @@ compatible = "qcom,spi-qup-v2.2.1"; reg = <0x078b8000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_spi3_default>; #address-cells = <1>; @@ -1026,9 +1026,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x078b9000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_i2c4_default>; #address-cells = <1>; @@ -1040,9 +1040,9 @@ compatible = "qcom,spi-qup-v2.2.1"; reg = <0x078b9000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP1_AHB_CLK>, - <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>, + <&gcc GCC_BLSP1_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp1_spi4_default>; #address-cells = <1>; @@ -1067,8 +1067,8 @@ interrupts = ; clocks = <&gcc GCC_BLSP2_UART0_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>; clock-names = "core", "iface"; - dmas = <&blsp2_dma 1>, <&blsp2_dma 0>; - dma-names = "rx", "tx"; + dmas = <&blsp2_dma 0>, <&blsp2_dma 1>; + dma-names = "tx", "rx"; pinctrl-names = "default"; pinctrl-0 = <&blsp2_uart0_default>; status = "disabled"; @@ -1078,9 +1078,9 @@ compatible = "qcom,i2c-qup-v2.2.1"; reg = <0x07af5000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP0_I2C_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP2_QUP0_I2C_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp2_i2c0_default>; #address-cells = <1>; @@ -1092,9 +1092,9 @@ compatible = "qcom,spi-qup-v2.2.1"; reg = <0x07af5000 0x600>; interrupts = ; - clocks = <&gcc GCC_BLSP2_AHB_CLK>, - <&gcc GCC_BLSP2_QUP0_SPI_APPS_CLK>; - clock-names = "iface", "core"; + clocks = <&gcc GCC_BLSP2_QUP0_SPI_APPS_CLK>, + <&gcc GCC_BLSP2_AHB_CLK>; + clock-names = "core", "iface"; pinctrl-names = "default"; pinctrl-0 = <&blsp2_spi0_default>; #address-cells = <1>; --- a/arch/arm64/boot/dts/qcom/sa8155p-adp.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sa8155p-adp.dts @@ -47,6 +47,65 @@ vin-supply = <&vreg_3p3>; }; + + mtl_rx_setup: rx-queues-config { + snps,rx-queues-to-use = <4>; + snps,rx-sched-sp; + + queue0 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x0>; + snps,route-up; + snps,priority = <0x1>; + }; + + queue1 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x1>; + snps,route-ptp; + }; + + queue2 { + snps,avb-algorithm; + snps,map-to-dma-channel = <0x2>; + snps,route-avcp; + }; + + queue3 { + snps,avb-algorithm; + snps,map-to-dma-channel = <0x3>; + snps,priority = <0xC>; + }; + }; + + mtl_tx_setup: tx-queues-config { + snps,tx-queues-to-use = <4>; + snps,tx-sched-wrr; + + queue0 { + snps,weight = <0x10>; + snps,dcb-algorithm; + snps,priority = <0x0>; + }; + + queue1 { + snps,weight = <0x11>; + snps,dcb-algorithm; + snps,priority = <0x1>; + }; + + queue2 { + snps,weight = <0x12>; + snps,dcb-algorithm; + snps,priority = <0x2>; + }; + + queue3 { + snps,weight = <0x13>; + snps,dcb-algorithm; + snps,priority = <0x3>; + }; + }; }; &apps_rsc { @@ -303,6 +362,44 @@ }; }; +ðernet { + status = "okay"; + + snps,reset-gpio = <&tlmm 79 GPIO_ACTIVE_LOW>; + snps,reset-active-low; + snps,reset-delays-us = <0 11000 70000>; + + snps,ptp-ref-clk-rate = <250000000>; + snps,ptp-req-clk-rate = <96000000>; + + snps,mtl-rx-config = <&mtl_rx_setup>; + snps,mtl-tx-config = <&mtl_tx_setup>; + + pinctrl-names = "default"; + pinctrl-0 = <ðernet_defaults>; + + phy-handle = <&rgmii_phy>; + phy-mode = "rgmii"; + max-speed = <1000>; + + mdio { + #address-cells = <0x1>; + #size-cells = <0x0>; + + compatible = "snps,dwmac-mdio"; + + /* Micrel KSZ9031RNZ PHY */ + rgmii_phy: phy@7 { + reg = <0x7>; + + interrupt-parent = <&tlmm>; + interrupts-extended = <&tlmm 124 IRQ_TYPE_EDGE_FALLING>; /* phy intr */ + device_type = "ethernet-phy"; + compatible = "ethernet-phy-ieee802.3-c22"; + }; + }; +}; + &qupv3_id_1 { status = "okay"; }; @@ -317,6 +414,20 @@ firmware-name = "qcom/sa8155p/cdsp.mdt"; }; +&sdhc_2 { + status = "okay"; + + cd-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&sdc2_on>; + pinctrl-1 = <&sdc2_off>; + vqmmc-supply = <&vreg_l13c_2p96>; /* IO line power */ + vmmc-supply = <&vreg_l17a_2p96>; /* Card power line */ + bus-width = <4>; + no-sdio; + no-emmc; +}; + &uart2 { status = "okay"; }; @@ -387,9 +498,78 @@ vdda-pll-supply = <&vdda_usb_ss_dp_core_1>; }; +&pcie0 { + status = "okay"; +}; + +&pcie0_phy { + status = "okay"; + vdda-phy-supply = <&vreg_l18c_0p88>; + vdda-pll-supply = <&vreg_l8c_1p2>; +}; + +&pcie1_phy { + vdda-phy-supply = <&vreg_l18c_0p88>; + vdda-pll-supply = <&vreg_l8c_1p2>; +}; + &tlmm { gpio-reserved-ranges = <0 4>; + sdc2_on: sdc2_on { + clk { + pins = "sdc2_clk"; + bias-disable; /* No pull */ + drive-strength = <16>; /* 16 MA */ + }; + + cmd { + pins = "sdc2_cmd"; + bias-pull-up; /* pull up */ + drive-strength = <16>; /* 16 MA */ + }; + + data { + pins = "sdc2_data"; + bias-pull-up; /* pull up */ + drive-strength = <16>; /* 16 MA */ + }; + + sd-cd { + pins = "gpio96"; + function = "gpio"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc2_off: sdc2_off { + clk { + pins = "sdc2_clk"; + bias-disable; /* No pull */ + drive-strength = <2>; /* 2 MA */ + }; + + cmd { + pins = "sdc2_cmd"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + + data { + pins = "sdc2_data"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + + sd-cd { + pins = "gpio96"; + function = "gpio"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + usb2phy_ac_en1_default: usb2phy_ac_en1_default { mux { pins = "gpio113"; @@ -407,4 +587,53 @@ drive-strength = <2>; }; }; + + ethernet_defaults: ethernet-defaults { + mdc { + pins = "gpio7"; + function = "rgmii"; + bias-pull-up; + }; + + mdio { + pins = "gpio59"; + function = "rgmii"; + bias-pull-up; + }; + + rgmii-rx { + pins = "gpio117", "gpio118", "gpio119", "gpio120", "gpio115", "gpio116"; + function = "rgmii"; + bias-disable; + drive-strength = <2>; + }; + + rgmii-tx { + pins = "gpio122", "gpio4", "gpio5", "gpio6", "gpio114", "gpio121"; + function = "rgmii"; + bias-pull-up; + drive-strength = <16>; + }; + + phy-intr { + pins = "gpio124"; + function = "emac_phy"; + bias-disable; + drive-strength = <8>; + }; + + pps { + pins = "gpio81"; + function = "emac_pps"; + bias-disable; + drive-strength = <8>; + }; + + phy-reset { + pins = "gpio79"; + function = "gpio"; + bias-pull-up; + drive-strength = <16>; + }; + }; }; --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sc7180.dtsi @@ -3522,7 +3522,7 @@ }; }; - apps_bcm_voter: bcm_voter { + apps_bcm_voter: bcm-voter { compatible = "qcom,bcm-voter"; }; }; --- a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi @@ -722,7 +722,6 @@ ap_sar_sensor_i2c: &i2c5 { vdd-supply = <&pp3300_a>; svdd-supply = <&pp1800_prox>; - status = "disabled"; label = "proximity-wifi"; }; }; --- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r9.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r9.dts @@ -20,7 +20,7 @@ /delete-node/&ap_ts; &panel { - compatible = "innolux,n116bca-ea1", "innolux,n116bge"; + compatible = "edp-panel"; }; &sdhc_2 { --- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1-lte.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1-lte.dts @@ -13,10 +13,6 @@ compatible = "google,lazor-rev1-sku0", "google,lazor-rev2-sku0", "qcom,sc7180"; }; -&ap_sar_sensor { - status = "okay"; -}; - &ap_sar_sensor_i2c { status = "okay"; }; --- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r3-lte.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r3-lte.dts @@ -20,10 +20,6 @@ "qcom,sc7180"; }; -&ap_sar_sensor { - status = "okay"; -}; - &ap_sar_sensor_i2c { status = "okay"; }; --- a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-lte.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-lte.dts @@ -17,10 +17,6 @@ compatible = "google,lazor-sku0", "qcom,sc7180"; }; -&ap_sar_sensor { - status = "okay"; -}; - &ap_sar_sensor_i2c { status = "okay"; }; --- a/arch/arm64/boot/dts/qcom/sc7280-crd.dts +++ /dev/null @@ -1,105 +0,0 @@ -// SPDX-License-Identifier: BSD-3-Clause -/* - * sc7280 CRD board device tree source - * - * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. - */ - -/dts-v1/; - -#include "sc7280-idp.dtsi" -#include "sc7280-idp-ec-h1.dtsi" - -/ { - model = "Qualcomm Technologies, Inc. sc7280 CRD platform"; - compatible = "qcom,sc7280-crd", "google,hoglin", "qcom,sc7280"; - - aliases { - serial0 = &uart5; - }; - - chosen { - stdout-path = "serial0:115200n8"; - }; -}; - -&apps_rsc { - pmg1110-regulators { - compatible = "qcom,pmg1110-rpmh-regulators"; - qcom,pmic-id = "k"; - - vreg_s1k_1p0: smps1 { - regulator-min-microvolt = <1010000>; - regulator-max-microvolt = <1170000>; - }; - }; -}; - -ap_tp_i2c: &i2c0 { - status = "okay"; - clock-frequency = <400000>; - - trackpad: trackpad@15 { - compatible = "hid-over-i2c"; - reg = <0x15>; - pinctrl-names = "default"; - pinctrl-0 = <&tp_int_odl>; - - interrupt-parent = <&tlmm>; - interrupts = <7 IRQ_TYPE_EDGE_FALLING>; - - post-power-on-delay-ms = <20>; - hid-descr-addr = <0x0001>; - vdd-supply = <&vreg_l18b_1p8>; - - wakeup-source; - }; -}; - -ap_ts_pen_1v8: &i2c13 { - status = "okay"; - clock-frequency = <400000>; - - ap_ts: touchscreen@5c { - compatible = "hid-over-i2c"; - reg = <0x5c>; - pinctrl-names = "default"; - pinctrl-0 = <&ts_int_l>, <&ts_reset_l>; - - interrupt-parent = <&tlmm>; - interrupts = <55 IRQ_TYPE_LEVEL_LOW>; - - post-power-on-delay-ms = <500>; - hid-descr-addr = <0x0000>; - - vdd-supply = <&vreg_l19b_1p8>; - }; -}; - -&nvme_3v3_regulator { - gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>; -}; - -&nvme_pwren { - pins = "gpio51"; -}; - -&tlmm { - tp_int_odl: tp-int-odl { - pins = "gpio7"; - function = "gpio"; - bias-disable; - }; - - ts_int_l: ts-int-l { - pins = "gpio55"; - function = "gpio"; - bias-pull-up; - }; - - ts_reset_l: ts-reset-l { - pins = "gpio54"; - function = "gpio"; - bias-disable; - }; -}; --- /dev/null +++ a/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts @@ -0,0 +1,108 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * sc7280 CRD board device tree source + * + * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; + +#include "sc7280-idp.dtsi" +#include "sc7280-idp-ec-h1.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. sc7280 CRD platform (rev3 - 4)"; + compatible = "qcom,sc7280-crd", + "google,hoglin-rev3", "google,hoglin-rev4", + "google,piglin-rev3", "google,piglin-rev4", + "qcom,sc7280"; + + aliases { + serial0 = &uart5; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; +}; + +&apps_rsc { + pmg1110-regulators { + compatible = "qcom,pmg1110-rpmh-regulators"; + qcom,pmic-id = "k"; + + vreg_s1k_1p0: smps1 { + regulator-min-microvolt = <1010000>; + regulator-max-microvolt = <1170000>; + }; + }; +}; + +ap_tp_i2c: &i2c0 { + status = "okay"; + clock-frequency = <400000>; + + trackpad: trackpad@15 { + compatible = "hid-over-i2c"; + reg = <0x15>; + pinctrl-names = "default"; + pinctrl-0 = <&tp_int_odl>; + + interrupt-parent = <&tlmm>; + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; + + post-power-on-delay-ms = <20>; + hid-descr-addr = <0x0001>; + vdd-supply = <&vreg_l18b_1p8>; + + wakeup-source; + }; +}; + +ap_ts_pen_1v8: &i2c13 { + status = "okay"; + clock-frequency = <400000>; + + ap_ts: touchscreen@5c { + compatible = "hid-over-i2c"; + reg = <0x5c>; + pinctrl-names = "default"; + pinctrl-0 = <&ts_int_l>, <&ts_reset_l>; + + interrupt-parent = <&tlmm>; + interrupts = <55 IRQ_TYPE_LEVEL_LOW>; + + post-power-on-delay-ms = <500>; + hid-descr-addr = <0x0000>; + + vdd-supply = <&vreg_l19b_1p8>; + }; +}; + +&nvme_3v3_regulator { + gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>; +}; + +&nvme_pwren { + pins = "gpio51"; +}; + +&tlmm { + tp_int_odl: tp-int-odl { + pins = "gpio7"; + function = "gpio"; + bias-disable; + }; + + ts_int_l: ts-int-l { + pins = "gpio55"; + function = "gpio"; + bias-pull-up; + }; + + ts_reset_l: ts-reset-l { + pins = "gpio54"; + function = "gpio"; + bias-disable; + }; +}; --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sc7280.dtsi @@ -8,6 +8,8 @@ #include #include #include +#include +#include #include #include #include @@ -85,6 +87,11 @@ #size-cells = <2>; ranges; + wlan_ce_mem: memory@4cd000 { + no-map; + reg = <0x0 0x004cd000 0x0 0x1000>; + }; + hyp_mem: memory@80000000 { reg = <0x0 0x80000000 0x0 0x600000>; no-map; @@ -842,6 +849,11 @@ power-domains = <&rpmhpd SC7280_MX>; #address-cells = <1>; #size-cells = <1>; + + gpu_speed_bin: gpu_speed_bin@1e9 { + reg = <0x1e9 0x2>; + bits = <5 8>; + }; }; sdhc_1: sdhci@7c4000 { @@ -881,6 +893,8 @@ mmc-hs400-1_8v; mmc-hs400-enhanced-strobe; + resets = <&gcc GCC_SDCC1_BCR>; + sdhc1_opp_table: opp-table { compatible = "operating-points-v2"; @@ -1808,6 +1822,47 @@ qcom,bcm-voters = <&apps_bcm_voter>; }; + wifi: wifi@17a10040 { + compatible = "qcom,wcn6750-wifi"; + reg = <0 0x17a10040 0 0x0>; + iommus = <&apps_smmu 0x1c00 0x1>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + qcom,rproc = <&remoteproc_wpss>; + memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>; + status = "disabled"; + }; + pcie1: pci@1c08000 { compatible = "qcom,pcie-sc7280"; reg = <0 0x01c08000 0 0x3000>, @@ -1903,7 +1958,7 @@ status = "disabled"; - pcie1_lane: lanes@1c0e200 { + pcie1_lane: phy@1c0e200 { reg = <0 0x01c0e200 0 0x170>, <0 0x01c0e400 0 0x200>, <0 0x01c0ea00 0 0x1f0>, @@ -1980,6 +2035,47 @@ #clock-cells = <1>; }; + lpass_audiocc: clock-controller@3300000 { + compatible = "qcom,sc7280-lpassaudiocc"; + reg = <0 0x03300000 0 0x30000>; + clocks = <&rpmhcc RPMH_CXO_CLK>, + <&lpass_aon LPASS_AON_CC_MAIN_RCG_CLK_SRC>; + clock-names = "bi_tcxo", "lpass_aon_cc_main_rcg_clk_src"; + power-domains = <&lpass_aon LPASS_AON_CC_LPASS_AUDIO_HM_GDSC>; + #clock-cells = <1>; + #power-domain-cells = <1>; + }; + + lpass_aon: clock-controller@3380000 { + compatible = "qcom,sc7280-lpassaoncc"; + reg = <0 0x03380000 0 0x30000>; + clocks = <&rpmhcc RPMH_CXO_CLK>, + <&rpmhcc RPMH_CXO_CLK_A>, + <&lpasscore LPASS_CORE_CC_CORE_CLK>; + clock-names = "bi_tcxo", "bi_tcxo_ao", "iface"; + #clock-cells = <1>; + #power-domain-cells = <1>; + }; + + lpasscore: clock-controller@3900000 { + compatible = "qcom,sc7280-lpasscorecc"; + reg = <0 0x03900000 0 0x50000>; + clocks = <&rpmhcc RPMH_CXO_CLK>; + clock-names = "bi_tcxo"; + power-domains = <&lpass_hm LPASS_CORE_CC_LPASS_CORE_HM_GDSC>; + #clock-cells = <1>; + #power-domain-cells = <1>; + }; + + lpass_hm: clock-controller@3c00000 { + compatible = "qcom,sc7280-lpasshm"; + reg = <0 0x3c00000 0 0x28>; + clocks = <&rpmhcc RPMH_CXO_CLK>; + clock-names = "bi_tcxo"; + #clock-cells = <1>; + #power-domain-cells = <1>; + }; + lpass_ag_noc: interconnect@3c40000 { reg = <0 0x03c40000 0 0xf080>; compatible = "qcom,sc7280-lpass-ag-noc"; @@ -2003,6 +2099,9 @@ interconnect-names = "gfx-mem"; #cooling-cells = <2>; + nvmem-cells = <&gpu_speed_bin>; + nvmem-cell-names = "speed_bin"; + gpu_opp_table: opp-table { compatible = "operating-points-v2"; @@ -2010,18 +2109,56 @@ opp-hz = /bits/ 64 <315000000>; opp-level = ; opp-peak-kBps = <1804000>; + opp-supported-hw = <0x03>; }; opp-450000000 { opp-hz = /bits/ 64 <450000000>; opp-level = ; opp-peak-kBps = <4068000>; + opp-supported-hw = <0x03>; }; opp-550000000 { opp-hz = /bits/ 64 <550000000>; opp-level = ; opp-peak-kBps = <6832000>; + opp-supported-hw = <0x03>; + }; + + opp-608000000 { + opp-hz = /bits/ 64 <608000000>; + opp-level = ; + opp-peak-kBps = <8368000>; + opp-supported-hw = <0x02>; + }; + + opp-700000000 { + opp-hz = /bits/ 64 <700000000>; + opp-level = ; + opp-peak-kBps = <8532000>; + opp-supported-hw = <0x02>; + }; + + opp-812000000 { + opp-hz = /bits/ 64 <812000000>; + opp-level = ; + opp-peak-kBps = <8532000>; + opp-supported-hw = <0x02>; + }; + + opp-840000000 { + opp-hz = /bits/ 64 <840000000>; + opp-level = ; + opp-peak-kBps = <8532000>; + opp-supported-hw = <0x02>; + }; + + opp-900000000 { + opp-hz = /bits/ 64 <900000000>; + opp-level = ; + opp-peak-kBps = <8532000>; + opp-supported-hw = <0x02>; }; }; }; @@ -2686,6 +2823,8 @@ qcom,dll-config = <0x0007642c>; + resets = <&gcc GCC_SDCC2_BCR>; + sdhc2_opp_table: opp-table { compatible = "operating-points-v2"; @@ -2842,6 +2981,57 @@ status = "disabled"; }; + remoteproc_wpss: remoteproc@8a00000 { + compatible = "qcom,sc7280-wpss-pil"; + reg = <0 0x08a00000 0 0x10000>; + + interrupts-extended = <&intc GIC_SPI 587 IRQ_TYPE_EDGE_RISING>, + <&wpss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, + <&wpss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, + <&wpss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, + <&wpss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>, + <&wpss_smp2p_in 7 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "wdog", "fatal", "ready", "handover", + "stop-ack", "shutdown-ack"; + + clocks = <&gcc GCC_WPSS_AHB_BDG_MST_CLK>, + <&gcc GCC_WPSS_AHB_CLK>, + <&gcc GCC_WPSS_RSCP_CLK>, + <&rpmhcc RPMH_CXO_CLK>; + clock-names = "ahb_bdg", "ahb", + "rscp", "xo"; + + power-domains = <&rpmhpd SC7280_CX>, + <&rpmhpd SC7280_MX>; + power-domain-names = "cx", "mx"; + + memory-region = <&wpss_mem>; + + qcom,qmp = <&aoss_qmp>; + + qcom,smem-states = <&wpss_smp2p_out 0>; + qcom,smem-state-names = "stop"; + + resets = <&aoss_reset AOSS_CC_WCSS_RESTART>, + <&pdc_reset PDC_WPSS_SYNC_RESET>; + reset-names = "restart", "pdc_sync"; + + qcom,halt-regs = <&tcsr_mutex 0x37000>; + + status = "disabled"; + + glink-edge { + interrupts-extended = <&ipcc IPCC_CLIENT_WPSS + IPCC_MPROC_SIGNAL_GLINK_QMP + IRQ_TYPE_EDGE_RISING>; + mboxes = <&ipcc IPCC_CLIENT_WPSS + IPCC_MPROC_SIGNAL_GLINK_QMP>; + + label = "wpss"; + qcom,remote-pid = <13>; + }; + }; + dc_noc: interconnect@90e0000 { reg = <0 0x090e0000 0 0x5080>; compatible = "qcom,sc7280-dc-noc"; @@ -2916,6 +3106,7 @@ phys = <&usb_1_hsphy>, <&usb_1_ssphy>; phy-names = "usb2-phy", "usb3-phy"; maximum-speed = "super-speed"; + wakeup-source; }; }; @@ -3296,7 +3487,7 @@ port@1 { reg = <1>; - edp_out: endpoint { }; + mdss_edp_out: endpoint { }; }; }; --- /dev/null +++ a/arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts @@ -0,0 +1,325 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * sc7280 CRD 3+ board device tree source + * + * Copyright 2022 Google LLC. + */ + +/dts-v1/; + +#include "sc7280-herobrine.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. sc7280 CRD platform (rev5+)"; + compatible = "google,hoglin", "qcom,sc7280"; +}; + +/* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */ + +&apps_rsc { + pmg1110-regulators { + compatible = "qcom,pmg1110-rpmh-regulators"; + qcom,pmic-id = "k"; + + vreg_s1k_1p0: smps1 { + regulator-min-microvolt = <1010000>; + regulator-max-microvolt = <1170000>; + }; + }; +}; + +ap_tp_i2c: &i2c0 { + status = "okay"; + clock-frequency = <400000>; + + trackpad: trackpad@15 { + compatible = "hid-over-i2c"; + reg = <0x15>; + pinctrl-names = "default"; + pinctrl-0 = <&tp_int_odl>; + + interrupt-parent = <&tlmm>; + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; + + post-power-on-delay-ms = <20>; + hid-descr-addr = <0x0001>; + vdd-supply = <&pp3300_z1>; + + wakeup-source; + }; +}; + +&ap_sar_sensor_i2c { + status = "okay"; +}; + +&ap_sar_sensor0 { + status = "okay"; +}; + +&ap_sar_sensor1 { + status = "okay"; +}; + +ap_ts_pen_1v8: &i2c13 { + status = "okay"; + clock-frequency = <400000>; + + ap_ts: touchscreen@5c { + compatible = "hid-over-i2c"; + reg = <0x5c>; + pinctrl-names = "default"; + pinctrl-0 = <&ts_int_conn>, <&ts_rst_conn>; + + interrupt-parent = <&tlmm>; + interrupts = <55 IRQ_TYPE_LEVEL_LOW>; + + post-power-on-delay-ms = <500>; + hid-descr-addr = <0x0000>; + + vdd-supply = <&pp3300_left_in_mlb>; + }; +}; + +/* For nvme */ +&pcie1 { + status = "okay"; +}; + +/* For nvme */ +&pcie1_phy { + status = "okay"; +}; + +/* For eMMC */ +&sdhc_1 { + status = "okay"; +}; + +/* For SD Card */ +&sdhc_2 { + status = "okay"; +}; + +/* PINCTRL - BOARD-SPECIFIC */ + +/* + * Methodology for gpio-line-names: + * - If a pin goes to CRD board and is named it gets that name. + * - If a pin goes to CRD board and is not named, it gets no name. + * - If a pin is totally internal to Qcard then it gets Qcard name. + * - If a pin is not hooked up on Qcard, it gets no name. + */ + +&pm8350c_gpios { + gpio-line-names = "FLASH_STROBE_1", /* 1 */ + "AP_SUSPEND", + "PM8008_1_RST_N", + "", + "", + "EDP_BL_REG_EN", + "PMIC_EDP_BL_EN", + "PMIC_EDP_BL_PWM", + ""; +}; + +&tlmm { + gpio-line-names = "AP_TP_I2C_SDA", /* 0 */ + "AP_TP_I2C_SCL", + "PCIE1_RESET_N", + "PCIE1_WAKE_N", + "APPS_I2C_SDA", + "APPS_I2C_SCL", + "", + "TPAD_INT_N", + "", + "", + + "GNSS_L1_EN", /* 10 */ + "GNSS_L5_EN", + "QSPI_DATA_0", + "QSPI_DATA_1", + "QSPI_CLK", + "QSPI_CS_N_1", + /* + * AP_FLASH_WP is crossystem ABI. Schematics call it + * BIOS_FLASH_WP_L (the '_L' suffix is misleading, the + * signal is active high). + */ + "AP_FLASH_WP", + "", + "AP_EC_INT_N", + "", + + "CAM0_RST_N", /* 20 */ + "CAM1_RST_N", + "SM_DBG_UART_TX", + "SM_DBG_UART_RX", + "", + "PM8008_IRQ_1", + "HOST2WLAN_SOL", + "WLAN2HOST_SOL", + "MOS_BT_UART_CTS", + "MOS_BT_UART_RFR", + + "MOS_BT_UART_TX", /* 30 */ + "MOS_BT_UART_RX", + "", + "HUB_RST", + "", + "", + "", + "", + "", + "", + + "EC_SPI_MISO_GPIO40", /* 40 */ + "EC_SPI_MOSI_GPIO41", + "EC_SPI_CLK_GPIO42", + "EC_SPI_CS_GPIO43", + "", + "EARLY_EUD_EN", + "", + "DP_HOT_PLUG_DETECT", + "AP_BRD_ID_0", + "AP_BRD_ID_1", + + "AP_BRD_ID_2", /* 50 */ + "NVME_PWR_REG_EN", + "TS_I2C_SDA_CONN", + "TS_I2C_CLK_CONN", + "TS_RST_CONN", + "TS_INT_CONN", + "AP_I2C_TPM_SDA", + "AP_I2C_TPM_SCL", + "", + "", + + "EDP_HOT_PLUG_DET_N", /* 60 */ + "", + "", + "AMP_EN", + "CAM0_MCLK_GPIO_64", + "CAM1_MCLK_GPIO_65", + "", + "", + "", + "CCI_I2C_SDA0", + + "CCI_I2C_SCL0", /* 70 */ + "", + "", + "", + "", + "", + "", + "", + "", + "PCIE1_CLK_REQ_N", + + "EN_PP3300_DX_EDP", /* 80 */ + "US_EURO_HS_SEL", + "FORCED_USB_BOOT", + "WCD_RESET_N", + "MOS_WLAN_EN", + "MOS_BT_EN", + "MOS_SW_CTRL", + "MOS_PCIE0_RST", + "MOS_PCIE0_CLKREQ_N", + "MOS_PCIE0_WAKE_N", + + "MOS_LAA_AS_EN", /* 90 */ + "SD_CARD_DET_CONN", + "", + "", + "MOS_BT_WLAN_SLIMBUS_CLK", + "MOS_BT_WLAN_SLIMBUS_DAT0", + "", + "", + "", + "", + + "", /* 100 */ + "", + "", + "", + "H1_AP_INT_N", + "", + "AMP_BCLK", + "AMP_DIN", + "AMP_LRCLK", + "UIM1_DATA_GPIO_109", + + "UIM1_CLK_GPIO_110", /* 110 */ + "UIM1_RESET_GPIO_111", + "", + "UIM1_DATA", + "UIM1_CLK", + "UIM1_RESET", + "UIM1_PRESENT", + "SDM_RFFE0_CLK", + "SDM_RFFE0_DATA", + "", + + "SDM_RFFE1_DATA", /* 120 */ + "SC_GPIO_121", + "FASTBOOT_SEL_1", + "SC_GPIO_123", + "FASTBOOT_SEL_2", + "SM_RFFE4_CLK_GRFC_8", + "SM_RFFE4_DATA_GRFC_9", + "WLAN_COEX_UART1_RX", + "WLAN_COEX_UART1_TX", + "", + + "", /* 130 */ + "", + "", + "SDR_QLINK_REQ", + "SDR_QLINK_EN", + "QLINK0_WMSS_RESET_N", + "SMR526_QLINK1_REQ", + "SMR526_QLINK1_EN", + "SMR526_QLINK1_WMSS_RESET_N", + "", + + "SAR1_INT_N", /* 140 */ + "SAR0_INT_N", + "", + "", + "WCD_SWR_TX_CLK", + "WCD_SWR_TX_DATA0", + "WCD_SWR_TX_DATA1", + "WCD_SWR_RX_CLK", + "WCD_SWR_RX_DATA0", + "WCD_SWR_RX_DATA1", + + "DMIC01_CLK", /* 150 */ + "DMIC01_DATA", + "DMIC23_CLK", + "DMIC23_DATA", + "", + "", + "EC_IN_RW_N", + "EN_PP3300_HUB", + "WCD_SWR_TX_DATA2", + "", + + "", /* 160 */ + "", + "", + "", + "", + "", + "", + "", + "", + "", + + "", /* 170 */ + "MOS_BLE_UART_TX", + "MOS_BLE_UART_RX", + "", + "", + ""; +}; --- a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi @@ -92,6 +92,7 @@ pinctrl-0 = <&en_pp3300_codec>; vin-supply = <&pp3300_z1>; + status = "disabled"; }; pp3300_left_in_mlb: pp3300-left-in-mlb-regulator { @@ -132,6 +133,7 @@ pinctrl-0 = <&en_fp_rails>; vin-supply = <&pp3300_z1>; + status = "disabled"; }; pp3300_hub: pp3300-hub-regulator { @@ -178,6 +180,13 @@ pinctrl-names = "default"; pinctrl-0 = <&ssd_en>; + /* + * The bootloaer may have left PCIe configured. Powering this + * off while the PCIe clocks are still running isn't great, + * so it's better to default to this regulator being on. + */ + regulator-boot-on; + vin-supply = <&pp3300_z1>; }; @@ -194,6 +203,7 @@ pinctrl-0 = <&wf_cam_en>; vin-supply = <&pp3300_z1>; + status = "disabled"; }; pp2850_wf_cam: pp2850-wf-cam-regulator { @@ -214,6 +224,7 @@ */ vin-supply = <&pp3300_z1>; + status = "disabled"; }; pp1800_fp: pp1800-fp-regulator { @@ -258,6 +269,7 @@ */ vin-supply = <&vreg_l19b_s0>; + status = "disabled"; }; pp1200_wf_cam: pp1200-wf-cam-regulator { @@ -278,6 +290,7 @@ */ vin-supply = <&pp3300_z1>; + status = "disabled"; }; /* BOARD-SPECIFIC TOP LEVEL NODES */ @@ -295,7 +308,10 @@ }; /* - * BOARD-LOCAL NAMES FOR REGULATORS THAT CONNECT TO QCARD + * ADJUSTMENTS TO QCARD REGULATORS + * + * Mostly this is just board-local names for regulators that come from + * Qcard, but this also has some minor regulator overrides. * * Names are only listed here if regulators go somewhere other than a * testpoint. @@ -339,8 +355,55 @@ vreg_edp_bl: &ppvar_sys {}; ts_avdd: &pp3300_left_in_mlb {}; vreg_edp_3p3: &pp3300_left_in_mlb {}; +/* Regulator overrides from Qcard */ + +/* + * Herobrine boards only use l2c to power an external audio codec (like + * alc5682) and we want that to be at 1.8V, not at some slightly lower voltage. + */ +&vreg_l2c_1p8 { + regulator-min-microvolt = <1800000>; +}; + /* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */ +ap_sar_sensor_i2c: &i2c1 { + clock-frequency = <400000>; + status = "disabled"; + + ap_sar_sensor0: proximity@28 { + compatible = "semtech,sx9324"; + reg = <0x28>; + #io-channel-cells = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&sar0_irq_odl>; + + interrupt-parent = <&tlmm>; + interrupts = <141 IRQ_TYPE_LEVEL_LOW>; + + vdd-supply = <&pp1800_prox>; + + label = "proximity-wifi-lte0"; + status = "disabled"; + }; + + ap_sar_sensor1: proximity@2c { + compatible = "semtech,sx9324"; + reg = <0x2c>; + #io-channel-cells = <1>; + pinctrl-names = "default"; + pinctrl-0 = <&sar1_irq_odl>; + + interrupt-parent = <&tlmm>; + interrupts = <140 IRQ_TYPE_LEVEL_LOW>; + + vdd-supply = <&pp1800_prox>; + + label = "proximity-wifi-lte1"; + status = "disabled"; + }; +}; + ap_i2c_tpm: &i2c14 { status = "okay"; clock-frequency = <400000>; @@ -677,7 +740,6 @@ ap_ec_spi: &spi10 { function = "gpio"; bias-disable; drive-strength = <2>; - output-high; }; fp_to_ap_irq_l: fp-to-ap-irq-l { @@ -691,7 +753,6 @@ ap_ec_spi: &spi10 { pins = "gpio68"; function = "gpio"; bias-disable; - output-low; }; gsc_ap_int_odl: gsc-ap-int-odl { @@ -741,7 +802,7 @@ ap_ec_spi: &spi10 { bias-pull-up; }; - sar1_irq_odl: sar0-irq-odl { + sar1_irq_odl: sar1-irq-odl { pins = "gpio140"; function = "gpio"; bias-pull-up; --- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r0.dts +++ /dev/null @@ -1,1352 +0,0 @@ -// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -/* - * Google Herobrine board device tree source - * - * Copyright 2021 Google LLC. - */ - -/dts-v1/; - -#include -#include -#include -#include -#include -#include - -#include "sc7280.dtsi" - -/* PMICs depend on spmi_bus label and so must come after SoC */ -#include "pm7325.dtsi" -#include "pm8350c.dtsi" -#include "pmk8350.dtsi" - -#include "sc7280-chrome-common.dtsi" - -/ { - model = "Google Herobrine (rev0)"; - compatible = "google,herobrine-rev0", "qcom,sc7280"; -}; - -/ { - aliases { - serial0 = &uart5; - serial1 = &uart7; - }; - - chosen { - stdout-path = "serial0:115200n8"; - }; - - /* FIXED REGULATORS - parents above children */ - - /* This is the top level supply and variable voltage */ - ppvar_sys: ppvar-sys-regulator { - compatible = "regulator-fixed"; - regulator-name = "ppvar_sys"; - regulator-always-on; - regulator-boot-on; - }; - - /* This divides ppvar_sys by 2, so voltage is variable */ - src_vph_pwr: src-vph-pwr-regulator { - compatible = "regulator-fixed"; - regulator-name = "src_vph_pwr"; - - /* EC turns on with switchcap_on; always on for AP */ - regulator-always-on; - regulator-boot-on; - - vin-supply = <&ppvar_sys>; - }; - - pp5000_s3: pp5000-s3-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp5000_s3"; - - /* EC turns on with en_pp5000_s3; always on for AP */ - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <5000000>; - regulator-max-microvolt = <5000000>; - - vin-supply = <&ppvar_sys>; - }; - - pp3300_z1: pp3300-z1-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp3300_z1"; - - /* EC turns on with en_pp3300_z1; always on for AP */ - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - vin-supply = <&ppvar_sys>; - }; - - pp3300_audio: - pp3300_codec: pp3300-codec-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp3300_codec"; - - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - gpio = <&tlmm 67 GPIO_ACTIVE_HIGH>; - enable-active-high; - pinctrl-names = "default"; - pinctrl-0 = <&en_pp3300_codec>; - - vin-supply = <&pp3300_z1>; - }; - - pp3300_cam: - pp3300_edp: - pp3300_ts: pp3300-edp-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp3300_edp"; - - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - gpio = <&tlmm 80 GPIO_ACTIVE_HIGH>; - enable-active-high; - pinctrl-names = "default"; - pinctrl-0 = <&en_pp3300_dx_edp>; - - vin-supply = <&pp3300_z1>; - }; - - pp3300_fp: - pp3300_fp_ls: - pp3300_mcu: pp3300-fp-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp3300_fp"; - - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - regulator-boot-on; - regulator-always-on; - - /* - * WARNING: it is intentional that GPIO 42 isn't listed here. - * The userspace script for updating the fingerprint firmware - * needs to control the FP regulators during a FW update, - * hence the signal can't be owned by the kernel regulator. - */ - - pinctrl-names = "default"; - pinctrl-0 = <&en_fp_rails>; - - vin-supply = <&pp3300_z1>; - }; - - pp3300_hub: pp3300-hub-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp3300_hub"; - - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - regulator-boot-on; - regulator-always-on; - - gpio = <&tlmm 24 GPIO_ACTIVE_HIGH>; - enable-active-high; - pinctrl-names = "default"; - pinctrl-0 = <&en_pp3300_hub>; - - vin-supply = <&pp3300_z1>; - }; - - pp3300_tp: pp3300-tp-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp3300_tp"; - - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - /* AP turns on with PP1800_L18B_S0; always on for AP */ - regulator-always-on; - regulator-boot-on; - - vin-supply = <&pp3300_z1>; - }; - - pp2850_uf_cam: pp2850-uf-cam-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp2850_uf_cam"; - - regulator-min-microvolt = <2850000>; - regulator-max-microvolt = <2850000>; - - gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>; - enable-active-high; - pinctrl-names = "default"; - pinctrl-0 = <&uf_cam_en>; - - vin-supply = <&pp3300_cam>; - }; - - pp2850_vcm_wf_cam: pp2850-vcm-wf-cam-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp2850_vcm_wf_cam"; - - regulator-min-microvolt = <2850000>; - regulator-max-microvolt = <2850000>; - - gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>; - enable-active-high; - pinctrl-names = "default"; - pinctrl-0 = <&wf_cam_en>; - - vin-supply = <&pp3300_cam>; - }; - - pp2850_wf_cam: pp2850-wf-cam-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp2850_wf_cam"; - - regulator-min-microvolt = <2850000>; - regulator-max-microvolt = <2850000>; - - gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>; - enable-active-high; - /* - * The pinconf can only be referenced once so we put it on the - * first regulator and comment it out here. - * - * pinctrl-names = "default"; - * pinctrl-0 = <&wf_cam_en>; - */ - - vin-supply = <&pp3300_cam>; - }; - - pp1800_fp: pp1800-fp-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp1800_fp"; - - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - - regulator-boot-on; - regulator-always-on; - - /* - * WARNING: it is intentional that GPIO 42 isn't listed here. - * The userspace script for updating the fingerprint firmware - * needs to control the FP regulators during a FW update, - * hence the signal can't be owned by the kernel regulator. - */ - - pinctrl-names = "default"; - pinctrl-0 = <&en_fp_rails>; - - vin-supply = <&pp1800_l18b_s0>; - status = "disabled"; - }; - - pp1800_uf_cam: pp1800-uf-cam-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp1800_uf_cam"; - - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - - gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>; - enable-active-high; - /* - * The pinconf can only be referenced once so we put it on the - * first regulator and comment it out here. - * - * pinctrl-names = "default"; - * pinctrl-0 = <&uf_cam_en>; - */ - - vin-supply = <&pp1800_l19b>; - }; - - pp1800_wf_cam: pp1800-wf-cam-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp1800_wf_cam"; - - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - - gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>; - enable-active-high; - /* - * The pinconf can only be referenced once so we put it on the - * first regulator and comment it out here. - * - * pinctrl-names = "default"; - * pinctrl-0 = <&wf_cam_en>; - */ - - vin-supply = <&pp1800_l19b>; - }; - - pp1200_wf_cam: pp1200-wf-cam-regulator { - compatible = "regulator-fixed"; - regulator-name = "pp1200_wf_cam"; - - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1200000>; - - gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>; - enable-active-high; - /* - * The pinconf can only be referenced once so we put it on the - * first regulator and comment it out here. - * - * pinctrl-names = "default"; - * pinctrl-0 = <&wf_cam_en>; - */ - - vin-supply = <&pp1200_l6b>; - }; - - /* BOARD-SPECIFIC TOP LEVEL NODES */ - - gpio_keys: gpio-keys { - compatible = "gpio-keys"; - status = "disabled"; - pinctrl-names = "default"; - pinctrl-0 = <&pen_pdct_l>; - - pen_insert: pen-insert { - label = "Pen Insert"; - - /* Insert = low, eject = high */ - gpios = <&tlmm 39 GPIO_ACTIVE_LOW>; - linux,code = ; - linux,input-type = ; - wakeup-event-action = ; - wakeup-source; - }; - }; - - pwmleds { - compatible = "pwm-leds"; - status = "disabled"; - keyboard_backlight: keyboard-backlight { - status = "disabled"; - label = "cros_ec::kbd_backlight"; - pwms = <&cros_ec_pwm 0>; - max-brightness = <1023>; - }; - }; -}; - -&apps_rsc { - pm7325-regulators { - compatible = "qcom,pm7325-rpmh-regulators"; - qcom,pmic-id = "b"; - - vdd19_pmu_pcie_i: - vdd19_pmu_rfa_i: - vreg_s1b_wlan: - vreg_s1b: smps1 { - regulator-min-microvolt = <1856000>; - regulator-max-microvolt = <2040000>; - }; - - vdd_pmu_aon_i: - vreg_s7b_wlan: - vreg_s7b: smps7 { - regulator-min-microvolt = <535000>; - regulator-max-microvolt = <1120000>; - }; - - vdd13_pmu_pcie_i: - vdd13_pmu_rfa_i: - vreg_s8b_wlan: - vreg_s8b: smps8 { - regulator-min-microvolt = <1256000>; - regulator-max-microvolt = <1500000>; - }; - - vdda_usb_ss_dp_core: - vreg_l1b: ldo1 { - regulator-min-microvolt = <825000>; - regulator-max-microvolt = <925000>; - regulator-initial-mode = ; - }; - - vdda_usb_hs0_3p1: - vreg_l2b: ldo2 { - regulator-min-microvolt = <2700000>; - regulator-max-microvolt = <3544000>; - regulator-initial-mode = ; - }; - - pp1200_l6b: - vdd_ufs_1p2: - vdd_vref: - vdda_csi01_1p2: - vdda_csi23_1p2: - vdda_csi4_1p2: - vdda_dsi0_1p2: - vdda_pcie0_1p2: - vdda_pcie1_1p2: - vdda_usb_ss_dp_1p2: - vdda_qlink0_1p2_ck: - vdda_qlink1_1p2_ck: - vreg_l6b_1p2: - vreg_l6b: ldo6 { - regulator-min-microvolt = <1120000>; - regulator-max-microvolt = <1408000>; - regulator-initial-mode = ; - }; - - pp2950_l7b: - vreg_l7b: ldo7 { - regulator-min-microvolt = <2960000>; - regulator-max-microvolt = <2960000>; - regulator-initial-mode = ; - }; - - codec_vcc: - pp1800_l18b_s0: - pp1800_ts: - vdd1: - vddpx_0: - vddpx_3: - vddpx_7: - vreg_l18b: ldo18 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <2000000>; - regulator-initial-mode = ; - }; - - pp1800_l19b: - vddpx_ts: - vddpx_wl4otp: - vreg_l19b: ldo19 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-initial-mode = ; - }; - }; - - pm8350c-regulators { - compatible = "qcom,pm8350c-rpmh-regulators"; - qcom,pmic-id = "c"; - - vreg_s1c: smps1 { - regulator-min-microvolt = <2190000>; - regulator-max-microvolt = <2210000>; - }; - - vddpx_1: - vreg_s9c: smps9 { - regulator-min-microvolt = <1010000>; - regulator-max-microvolt = <1170000>; - }; - - pp1800_l1c: - pp1800_pen: - vdd_a_gfx_cs_1p1: - vdd_a_cxo_1p8: - vdd_qfprom: - vdda_apc_cs_1p8: - vdda_qrefs_1p8: - vdda_turing_q6_cs_1p8: - vdda_usb_hs0_1p8: - vreg_l1c: ldo1 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1980000>; - regulator-initial-mode = ; - }; - - dmic_vdd: - pp1800_alc5682: - pp1800_l2c: - pp1800_vreg_alc5682: - vreg_l2c: ldo2 { - regulator-min-microvolt = <1620000>; - regulator-max-microvolt = <1980000>; - regulator-initial-mode = ; - }; - - pp3300_sar: - pp3300_sensor: - vreg_l3c: ldo3 { - regulator-min-microvolt = <2800000>; - regulator-max-microvolt = <3540000>; - regulator-initial-mode = ; - }; - - ppvar_uim1: - vddpx_5: - vreg_l4c: ldo4 { - regulator-min-microvolt = <1620000>; - regulator-max-microvolt = <3300000>; - regulator-initial-mode = ; - }; - - pp2950_l5c: - uim_vcc: - vddpx_6: - vreg_l5c: ldo5 { - regulator-min-microvolt = <1620000>; - regulator-max-microvolt = <3300000>; - regulator-initial-mode = ; - }; - - ppvar_l6c: - vddpx_2: - vreg_l6c: ldo6 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <2950000>; - regulator-initial-mode = ; - }; - - vreg_l7c: ldo7 { - regulator-min-microvolt = <3000000>; - regulator-max-microvolt = <3544000>; - regulator-initial-mode = ; - }; - - pp1800_prox: - pp1800_sar: - vreg_l8c: ldo8 { - regulator-min-microvolt = <1620000>; - regulator-max-microvolt = <2000000>; - regulator-initial-mode = ; - }; - - pp2950_l9c: - vreg_l9c: ldo9 { - regulator-min-microvolt = <2960000>; - regulator-max-microvolt = <2960000>; - regulator-initial-mode = ; - }; - - vdd_a_gnss_0p9: - vdd_ufs_core: - vdd_usb_hs0_core: - vdd_vref_0p9: - vdda_csi01_0p9: - vdda_csi23_0p9: - vdda_csi4_0p9: - vdda_dsi0_pll_0p9: - vdda_dsi0_0p9: - vdda_pcie0_core: - vdda_pcie1_core: - vdda_qlink0_0p9: - vdda_qlink1_0p9: - vdda_qlink0_0p9_ck: - vdda_qlink1_0p9_ck: - vdda_qrefs_0p875: - vreg_l10c_0p8: - vreg_l10c: ldo10 { - regulator-min-microvolt = <720000>; - regulator-max-microvolt = <1050000>; - regulator-initial-mode = ; - }; - - pp2800_l11c: - vreg_l11c: ldo11 { - regulator-min-microvolt = <2800000>; - regulator-max-microvolt = <3544000>; - regulator-initial-mode = ; - }; - - pp1800_l12c: - vreg_l12c: ldo12 { - regulator-min-microvolt = <1650000>; - regulator-max-microvolt = <2000000>; - regulator-initial-mode = ; - }; - - pp3300_l13c: - vreg_l13c: ldo13 { - regulator-min-microvolt = <2700000>; - regulator-max-microvolt = <3544000>; - regulator-initial-mode = ; - }; - - vreg_bob: bob { - regulator-min-microvolt = <3008000>; - regulator-max-microvolt = <3960000>; - regulator-initial-mode = ; - }; - }; -}; - -ap_tp_i2c: &i2c1 { - status = "okay"; - clock-frequency = <400000>; - - trackpad: trackpad@15 { - compatible = "elan,ekth3000"; - reg = <0x15>; - pinctrl-names = "default"; - pinctrl-0 = <&tp_int_odl>; - - interrupt-parent = <&tlmm>; - interrupts = <102 IRQ_TYPE_EDGE_FALLING>; - - vcc-supply = <&pp3300_z1>; - - wakeup-source; - }; -}; - -ap_h1_i2c: &i2c12 { - status = "okay"; - clock-frequency = <400000>; - - tpm@50 { - compatible = "google,cr50"; - reg = <0x50>; - - pinctrl-names = "default"; - pinctrl-0 = <&h1_ap_int_odl>; - - interrupt-parent = <&tlmm>; - interrupts = <54 IRQ_TYPE_EDGE_RISING>; - }; -}; - -ap_ts_pen: &i2c13 { - status = "okay"; - clock-frequency = <400000>; - - ap_ts: touchscreen@10 { - compatible = "hid-over-i2c"; - reg = <0x10>; - pinctrl-names = "default"; - pinctrl-0 = <&ts_int_l>, <&ts_reset_l>; - - interrupt-parent = <&tlmm>; - interrupts = <81 IRQ_TYPE_LEVEL_LOW>; - - post-power-on-delay-ms = <20>; - hid-descr-addr = <0x0001>; - - vdd-supply = <&pp3300_ts>; - }; -}; - -&pm7325_gpios { - status = "disabled"; /* No GPIOs are connected */ -}; - -&pmk8350_gpios { - status = "disabled"; /* No GPIOs are connected */ -}; - -&pmk8350_rtc { - status = "disabled"; -}; - -&pmk8350_vadc { - pmk8350_die_temp { - reg = ; - label = "pmk8350_die_temp"; - qcom,pre-scaling = <1 1>; - }; - - pmr735a_die_temp { - reg = ; - label = "pmr735a_die_temp"; - qcom,pre-scaling = <1 1>; - }; -}; - -&qfprom { - vcc-supply = <&vdd_qfprom>; -}; - -&qupv3_id_0 { - status = "okay"; -}; - -&qupv3_id_1 { - status = "okay"; -}; - -&sdhc_1 { - status = "okay"; - - vmmc-supply = <&pp2950_l7b>; - vqmmc-supply = <&pp1800_l19b>; -}; - -&sdhc_2 { - status = "okay"; - - pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>, <&sd_cd>; - pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>, <&sd_cd>; - vmmc-supply = <&pp2950_l9c>; - vqmmc-supply = <&ppvar_l6c>; - - cd-gpios = <&tlmm 91 GPIO_ACTIVE_LOW>; -}; - -ap_ec_spi: &spi8 { - status = "okay"; - - pinctrl-0 = <&qup_spi8_data_clk>, <&qup_spi8_cs_gpio_init_high>, <&qup_spi8_cs_gpio>; - cs-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; - - cros_ec: ec@0 { - compatible = "google,cros-ec-spi"; - reg = <0>; - interrupt-parent = <&tlmm>; - interrupts = <142 IRQ_TYPE_LEVEL_LOW>; - pinctrl-names = "default"; - pinctrl-0 = <&ap_ec_int_l>; - spi-max-frequency = <3000000>; - - cros_ec_pwm: pwm { - compatible = "google,cros-ec-pwm"; - #pwm-cells = <1>; - }; - - i2c_tunnel: i2c-tunnel { - compatible = "google,cros-ec-i2c-tunnel"; - google,remote-bus = <0>; - #address-cells = <1>; - #size-cells = <0>; - }; - - typec { - compatible = "google,cros-ec-typec"; - #address-cells = <1>; - #size-cells = <0>; - - usb_c0: connector@0 { - compatible = "usb-c-connector"; - reg = <0>; - label = "left"; - power-role = "dual"; - data-role = "host"; - try-power-role = "source"; - }; - - usb_c1: connector@1 { - compatible = "usb-c-connector"; - reg = <1>; - label = "right"; - power-role = "dual"; - data-role = "host"; - try-power-role = "source"; - }; - }; - }; -}; - -#include -#include - -&keyboard_controller { - function-row-physmap = < - MATRIX_KEY(0x00, 0x02, 0) /* T1 */ - MATRIX_KEY(0x03, 0x02, 0) /* T2 */ - MATRIX_KEY(0x02, 0x02, 0) /* T3 */ - MATRIX_KEY(0x01, 0x02, 0) /* T4 */ - MATRIX_KEY(0x03, 0x04, 0) /* T5 */ - MATRIX_KEY(0x02, 0x04, 0) /* T6 */ - MATRIX_KEY(0x01, 0x04, 0) /* T7 */ - MATRIX_KEY(0x02, 0x09, 0) /* T8 */ - MATRIX_KEY(0x01, 0x09, 0) /* T9 */ - MATRIX_KEY(0x00, 0x04, 0) /* T10 */ - >; - linux,keymap = < - MATRIX_KEY(0x00, 0x02, KEY_BACK) - MATRIX_KEY(0x03, 0x02, KEY_REFRESH) - MATRIX_KEY(0x02, 0x02, KEY_ZOOM) - MATRIX_KEY(0x01, 0x02, KEY_SCALE) - MATRIX_KEY(0x03, 0x04, KEY_SYSRQ) - MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN) - MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP) - MATRIX_KEY(0x02, 0x09, KEY_MUTE) - MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN) - MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP) - - CROS_STD_MAIN_KEYMAP - >; -}; - -&uart5 { - compatible = "qcom,geni-debug-uart"; - status = "okay"; -}; - -&uart7 { - status = "okay"; -}; - -&usb_1 { - status = "okay"; -}; - -&usb_1_dwc3 { - dr_mode = "host"; -}; - -&usb_1_hsphy { - status = "okay"; - - vdda-pll-supply = <&vdd_usb_hs0_core>; - vdda33-supply = <&vdda_usb_hs0_3p1>; - vdda18-supply = <&vdda_usb_hs0_1p8>; -}; - -&usb_1_qmpphy { - status = "okay"; - - vdda-phy-supply = <&vdda_usb_ss_dp_1p2>; - vdda-pll-supply = <&vdda_usb_ss_dp_core>; -}; - -&usb_2 { - status = "okay"; -}; - -&usb_2_dwc3 { - dr_mode = "host"; -}; - -&usb_2_hsphy { - status = "okay"; - - vdda-pll-supply = <&vdd_usb_hs0_core>; - vdda33-supply = <&vdda_usb_hs0_3p1>; - vdda18-supply = <&vdda_usb_hs0_1p8>; -}; - -/* PINCTRL - additions to nodes defined in sc7280.dtsi */ - -&dp_hot_plug_det { - bias-disable; -}; - -&pcie1_clkreq_n { - bias-pull-up; - drive-strength = <2>; -}; - -&qspi_cs0 { - bias-disable; -}; - -&qspi_clk { - bias-disable; -}; - -&qspi_data01 { - /* High-Z when no transfers; nice to park the lines */ - bias-pull-up; -}; - -&qup_uart5_rx { - drive-strength = <2>; - bias-pull-up; -}; - -&qup_uart5_tx { - drive-strength = <2>; - bias-disable; -}; - -&qup_uart7_cts { - /* - * Configure a pull-down on CTS to match the pull of - * the Bluetooth module. - */ - bias-pull-down; -}; - -&qup_uart7_rts { - /* We'll drive RTS, so no pull */ - drive-strength = <2>; - bias-disable; -}; - -&qup_uart7_tx { - /* We'll drive TX, so no pull */ - drive-strength = <2>; - bias-disable; -}; - -&qup_uart7_rx { - /* - * Configure a pull-up on RX. This is needed to avoid - * garbage data when the TX pin of the Bluetooth module is - * in tri-state (module powered off or not driving the - * signal yet). - */ - bias-pull-up; -}; - -&sdc1_clk { - bias-disable; - drive-strength = <16>; -}; - -&sdc1_cmd { - bias-pull-up; - drive-strength = <10>; -}; - -&sdc1_data { - bias-pull-up; - drive-strength = <10>; -}; - -&sdc1_rclk { - bias-pull-down; -}; - -&sdc2_clk { - bias-disable; - drive-strength = <16>; -}; - -&sdc2_cmd { - bias-pull-up; - drive-strength = <10>; -}; - -&sdc2_data { - bias-pull-up; - drive-strength = <10>; -}; - -/* PINCTRL - board-specific pinctrl */ - -&pm8350c_gpios { - gpio-line-names = "AP_SUSPEND", - "", - "", - "AP_BL_EN", - "", - "SD_CD_ODL", - "", - "", - "AP_BL_PWM"; - - ap_bl_en: ap-bl-en { - pins = "gpio4"; - function = "normal"; - qcom,drive-strength = ; - bias-disable; - - /* Force backlight to be disabled to match state at boot. */ - output-low; - }; -}; - -&tlmm { - gpio-line-names = "HP_I2C_SDA", /* 0 */ - "HP_I2C_SCL", - "SSD_RST_L", - "PE_WAKE_ODL", - "AP_TP_I2C_SDA", - "AP_TP_I2C_SCL", - "UF_CAM_EN", - "WF_CAM_EN", - "AP_SAR_SENSOR_SDA", - "AP_SAR_SENSOR_SCL", - - "", /* 10 */ - "", - "AP_SPI_MOSI", - "AP_SPI_MISO", - "AP_SPI_CLK", - "AP_SPI_CS0_L", - "", - "", - "EDP_HPD", - "", - - "UF_CAM_RST_L", /* 20 */ - "WF_CAM_RST_L", - "UART_AP_TX_DBG_RX", - "UART_DBG_TX_AP_RX", - "EN_PP3300_HUB", - "", - "HOST2WLAN_SOL", - "WLAN2HOST_SOL", - "BT_UART_CTS", - "BT_UART_RTS", - - "BT_UART_TXD", /* 30 */ - "BT_UART_RXD", - "AP_EC_SPI_MISO", - "AP_EC_SPI_MOSI", - "AP_EC_SPI_CLK", - "AP_EC_SPI_CS_L", - "", - "", - "", - "PEN_PDCT_L", - - "IO_BRD_ID0", /* 40 */ - "IO_BRD_ID1", - "EN_FP_RAILS", - "PEN_IRQ_L", - "AP_SPI_FP_MISO", - "AP_SPI_FP_MOSI", - "AP_SPI_FP_CLK", - "AP_SPI_FP_CS_L", - "AP_H1_SPI_MISO", - "AP_H1_SPI_MOSI", - - "AP_H1_SPI_CLK", /* 50 */ - "AP_H1_SPI_CS_L", - "AP_TS_PEN_I2C_SDA", - "AP_TS_PEN_I2C_SCL", - "H1_AP_INT_ODL", - "", - "LCM_RST_1V8_L", - "AMP_EN", - "", - "DP_HOT_PLUG_DET", - - "HUB_RST_L", /* 60 */ - "FP_TO_AP_IRQ_L", - "", - "", - "UF_CAM_MCLK", - "WF_CAM_MCLK", - "IO_BRD_ID2", - "EN_PP3300_CODEC", - "EC_IN_RW_ODL", - "UF_CAM_SDA", - - "UF_CAM_SCL", /* 70 */ - "WF_CAM_SDA", - "WF_CAM_SCL", - "AP_BRD_ID0", - "AP_BRD_ID1", - "AP_BRD_ID2", - "", - "FPMCU_BOOT0", - "FP_RST_L", - "PE_CLKREQ_ODL", - - "EN_EDP_PP3300", /* 80 */ - "TS_INT_L", - "FORCE_USB_BOOT", - "WCD_RST_L", - "WLAN_EN", - "BT_EN", - "WLAN_SW_CTRL", - "PCIE0_RESET_L", - "PCIE0_CLK_REQ_L", - "PCIE0_WAKE_L", - - "AS_EN", /* 90 */ - "SD_CD_ODL", - "", - /* - * AP_FLASH_WP_L is crossystem ABI. Schematics - * call it BIOS_FLASH_WP_L. - */ - "AP_FLASH_WP_L", - "BT_WLAN_SB_CLK", - "BT_WLAN_SB_DATA", - "HP_MCLK", - "HP_BCLK", - "HP_DOUT", - "HP_DIN", - - "HP_LRCLK", /* 100 */ - "HP_IRQ", - "TP_INT_ODL", - "", - "IO_SKU_ID2", - "TS_RESET_L", - "AMP_BCLK", - "AMP_DIN", - "AMP_LRCLK", - "UIM2_DATA", - - "UIM2_CLK", /* 110 */ - "UIM2_RST", - "UIM2_PRESENT", - "UIM1_DATA", - "UIM1_CLK", - "UIM1_RST", - "", - "RFFE0_CLK", - "RFFE0_DATA/BOOT_CONFIG_0", - "RFFE1_CLK", - - "RFFE1_DATA/BOOT_CONFIG_1", /* 120 */ - "RFFE2_CLK", - "RFFE2_DATA/BOOT_CONFIG_2", - "RFFE3_CLK", - "RFFE3_DATA/BOOT_CONFIG_3", - "RFFE4_CLK", - "RFFE4_DATA", - "WCI2_LTE_COEX_RXD", - "WCI2_LTE_COEX_TXD", - "IO_SKU_ID0", - - "IO_SKU_ID1", /* 130 */ - "", - "", - "QLINK0_REQ", - "QLINK0_EN", - "QLINK0_WMSS_RESET_L", - "QLINK1_REQ", - "QLINK1_EN", - "QLINK1_WMSS_RESET_L", - "FORCED_USB_BOOT_POL", - - "", /* 140 */ - "P_SENSOR_INT_L", - "AP_EC_INT_L", - "", - "WCD_SWR_TX_CLK", - "WCD_SWR_TX_DATA_0", - "WCD_SWR_TX_DATA_1", - "WCD_SWR_RX_CLK", - "WCD_SWR_RX_DATA_0", - "WCD_SWR_RX_DATA_1", - - "", /* 150 */ - "", - "", - "", - "", - "", - "", - "", - "WCD_SWR_TX_DATA_2", - "", - - "", /* 160 */ - "", - "", - "", - "", - "", - "", - "", - "", - "", - - "", /* 170 */ - "SENS_UART_TXD", - "SENS_UART_RXD", - "", - "", - ""; - - /* - * pinctrl settings for pins that have no real owners. - */ - pinctrl-names = "default"; - pinctrl-0 = <&bios_flash_wp_l>; - - amp_en: amp-en { - pins = "gpio57"; - function = "gpio"; - bias-pull-down; - }; - - ap_ec_int_l: ap-ec-int-l { - pins = "gpio142"; - input-enable; - bias-pull-up; - }; - - bios_flash_wp_l: bios-flash-wp-l { - pins = "gpio93"; - function = "gpio"; - input-enable; - bias-disable; - }; - - bt_en: bt-en { - pins = "gpio85"; - function = "gpio"; - drive-strength = <2>; - output-low; - bias-pull-down; - }; - - en_fp_rails: en-fp-rails { - pins = "gpio42"; - drive-strength = <2>; - output-high; - bias-disable; - }; - - en_pp3300_codec: en-pp3300-codec { - pins = "gpio67"; - drive-strength = <2>; - bias-disable; - }; - - en_pp3300_dx_edp: en-pp3300-dx-edp { - pins = "gpio80"; - function = "gpio"; - drive-strength = <2>; - /* Has external pulldown */ - bias-disable; - }; - - en_pp3300_hub: en-pp3300-hub { - pins = "gpio24"; - function = "gpio"; - drive-strength = <2>; - /* Has external pulldown */ - bias-disable; - }; - - fp_to_ap_irq_l: fp-to-ap-irq-l { - pins = "gpio61"; - function = "gpio"; - input-enable; - /* Has external pullup */ - bias-disable; - }; - - h1_ap_int_odl: h1-ap-int-odl { - pins = "gpio54"; - function = "gpio"; - input-enable; - bias-pull-up; - }; - - hp_irq: hp-irq { - pins = "gpio101"; - function = "gpio"; - bias-pull-up; - }; - - p_sensor_int_l: p-sensor-int-l { - pins = "gpio141"; - function = "gpio"; - input-enable; - bias-pull-up; - }; - - pen_irq_l: pen-irq-l { - pins = "gpio43"; - function = "gpio"; - /* Has external pullup */ - bias-disable; - }; - - pen_pdct_l: pen-pdct-l { - pins = "gpio39"; - function = "gpio"; - /* Has external pullup */ - bias-disable; - }; - - qup_spi8_cs_gpio_init_high: qup-spi8-cs-gpio-init-high { - pins = "gpio35"; - output-high; - }; - - qup_spi11_cs_gpio_init_high: qup-spi11-cs-gpio-init-high { - pins = "gpio47"; - output-high; - }; - - qup_spi12_cs_gpio_init_high: qup-spi12-cs-gpio-init-high { - pins = "gpio51"; - output-high; - }; - - qup_uart7_sleep_cts: qup-uart7-sleep-cts { - pins = "gpio28"; - function = "gpio"; - /* - * Configure a pull-down on CTS to match the pull of - * the Bluetooth module. - */ - bias-pull-down; - }; - - qup_uart7_sleep_rts: qup-uart7-sleep-rts { - pins = "gpio29"; - function = "gpio"; - /* - * Configure pull-down on RTS. As RTS is active low - * signal, pull it low to indicate the BT SoC that it - * can wakeup the system anytime from suspend state by - * pulling RX low (by sending wakeup bytes). - */ - bias-pull-down; - }; - - qup_uart7_sleep_rx: qup-uart7-sleep-rx { - pins = "gpio31"; - function = "gpio"; - /* - * Configure a pull-up on RX. This is needed to avoid - * garbage data when the TX pin of the Bluetooth module - * is floating which may cause spurious wakeups. - */ - bias-pull-up; - }; - - qup_uart7_sleep_tx: qup-uart7-sleep-tx { - pins = "gpio30"; - function = "gpio"; - /* - * Configure pull-up on TX when it isn't actively driven - * to prevent BT SoC from receiving garbage during sleep. - */ - bias-pull-up; - }; - - sd_cd: sd-cd { - pins = "gpio91"; - function = "gpio"; - bias-pull-up; - }; - - tp_int_odl: tp-int-odl { - pins = "gpio102"; - function = "gpio"; - /* Has external pullup */ - bias-disable; - }; - - ts_int_l: ts-int-l { - pins = "gpio81"; - function = "gpio"; - /* Has external pullup */ - bias-pull-up; - }; - - ts_reset_l: ts-reset-l { - pins = "gpio105"; - function = "gpio"; - /* Has external pullup */ - bias-disable; - drive-strength = <2>; - }; - - uf_cam_en: uf-cam-en { - pins = "gpio6"; - function = "gpio"; - drive-strength = <2>; - /* Has external pulldown */ - bias-disable; - }; - - wf_cam_en: wf-cam-en { - pins = "gpio7"; - function = "gpio"; - drive-strength = <2>; - /* Has external pulldown */ - bias-disable; - }; -}; --- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r1.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r1.dts @@ -14,6 +14,36 @@ compatible = "google,herobrine", "qcom,sc7280"; }; +/* + * ADDITIONS TO FIXED REGULATORS DEFINED IN PARENT DEVICE TREE FILES + * + * Sort order matches the order in the parent files (parents before children). + */ + +&pp3300_codec { + status = "okay"; +}; + +&pp3300_fp_mcu { + status = "okay"; +}; + +&pp2850_vcm_wf_cam { + status = "okay"; +}; + +&pp2850_wf_cam { + status = "okay"; +}; + +&pp1800_wf_cam { + status = "okay"; +}; + +&pp1200_wf_cam { + status = "okay"; +}; + /* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */ &ap_spi_fp { --- /dev/null +++ a/arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r0.dts @@ -0,0 +1,296 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Google Villager board device tree source + * + * Copyright 2022 Google LLC. + */ + +/dts-v1/; + +#include "sc7280-herobrine.dtsi" + +/ { + model = "Google Villager (rev0+)"; + compatible = "google,villager", "qcom,sc7280"; +}; + +/* + * ADDITIONS TO FIXED REGULATORS DEFINED IN PARENT DEVICE TREE FILES + * + * Sort order matches the order in the parent files (parents before children). + */ + +&pp3300_codec { + status = "okay"; +}; + +/* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */ + +ap_tp_i2c: &i2c0 { + status = "okay"; + clock-frequency = <400000>; + + trackpad: trackpad@2c { + compatible = "hid-over-i2c"; + reg = <0x2c>; + pinctrl-names = "default"; + pinctrl-0 = <&tp_int_odl>; + + interrupt-parent = <&tlmm>; + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; + + hid-descr-addr = <0x20>; + vcc-supply = <&pp3300_z1>; + + wakeup-source; + }; +}; + +&ap_sar_sensor_i2c { + status = "okay"; +}; + +&ap_sar_sensor0 { + status = "okay"; +}; + +&ap_sar_sensor1 { + status = "okay"; +}; + +/* For nvme */ +&pcie1 { + status = "okay"; +}; + +/* For nvme */ +&pcie1_phy { + status = "okay"; +}; + +/* For eMMC */ +&sdhc_1 { + status = "okay"; +}; + +/* PINCTRL - BOARD-SPECIFIC */ + +/* + * Methodology for gpio-line-names: + * - If a pin goes to herobrine board and is named it gets that name. + * - If a pin goes to herobrine board and is not named, it gets no name. + * - If a pin is totally internal to Qcard then it gets Qcard name. + * - If a pin is not hooked up on Qcard, it gets no name. + */ + +&pm8350c_gpios { + gpio-line-names = "FLASH_STROBE_1", /* 1 */ + "AP_SUSPEND", + "PM8008_1_RST_N", + "", + "", + "", + "PMIC_EDP_BL_EN", + "PMIC_EDP_BL_PWM", + ""; +}; + +&tlmm { + gpio-line-names = "AP_TP_I2C_SDA", /* 0 */ + "AP_TP_I2C_SCL", + "SSD_RST_L", + "PE_WAKE_ODL", + "AP_SAR_SDA", + "AP_SAR_SCL", + "PRB_SC_GPIO_6", + "TP_INT_ODL", + "HP_I2C_SDA", + "HP_I2C_SCL", + + "GNSS_L1_EN", /* 10 */ + "GNSS_L5_EN", + "SPI_AP_MOSI", + "SPI_AP_MISO", + "SPI_AP_CLK", + "SPI_AP_CS0_L", + /* + * AP_FLASH_WP is crossystem ABI. Schematics + * call it BIOS_FLASH_WP_OD. + */ + "AP_FLASH_WP", + "", + "AP_EC_INT_L", + "", + + "UF_CAM_RST_L", /* 20 */ + "WF_CAM_RST_L", + "UART_AP_TX_DBG_RX", + "UART_DBG_TX_AP_RX", + "", + "PM8008_IRQ_1", + "HOST2WLAN_SOL", + "WLAN2HOST_SOL", + "MOS_BT_UART_CTS", + "MOS_BT_UART_RFR", + + "MOS_BT_UART_TX", /* 30 */ + "MOS_BT_UART_RX", + "PRB_SC_GPIO_32", + "HUB_RST_L", + "", + "", + "AP_SPI_FP_MISO", + "AP_SPI_FP_MOSI", + "AP_SPI_FP_CLK", + "AP_SPI_FP_CS_L", + + "AP_EC_SPI_MISO", /* 40 */ + "AP_EC_SPI_MOSI", + "AP_EC_SPI_CLK", + "AP_EC_SPI_CS_L", + "LCM_RST_L", + "EARLY_EUD_N", + "", + "DP_HOT_PLUG_DET", + "IO_BRD_MLB_ID0", + "IO_BRD_MLB_ID1", + + "IO_BRD_MLB_ID2", /* 50 */ + "SSD_EN", + "TS_I2C_SDA_CONN", + "TS_I2C_CLK_CONN", + "TS_RST_CONN", + "TS_INT_CONN", + "AP_I2C_TPM_SDA", + "AP_I2C_TPM_SCL", + "PRB_SC_GPIO_58", + "PRB_SC_GPIO_59", + + "EDP_HOT_PLUG_DET_N", /* 60 */ + "FP_TO_AP_IRQ_L", + "", + "AMP_EN", + "CAM0_MCLK_GPIO_64", + "CAM1_MCLK_GPIO_65", + "WF_CAM_MCLK", + "PRB_SC_GPIO_67", + "FPMCU_BOOT0", + "UF_CAM_SDA", + + "UF_CAM_SCL", /* 70 */ + "", + "", + "WF_CAM_SDA", + "WF_CAM_SCL", + "", + "", + "EN_FP_RAILS", + "FP_RST_L", + "PCIE1_CLKREQ_ODL", + + "EN_PP3300_DX_EDP", /* 80 */ + "SC_GPIO_81", + "FORCED_USB_BOOT", + "WCD_RESET_N", + "MOS_WLAN_EN", + "MOS_BT_EN", + "MOS_SW_CTRL", + "MOS_PCIE0_RST", + "MOS_PCIE0_CLKREQ_N", + "MOS_PCIE0_WAKE_N", + + "MOS_LAA_AS_EN", /* 90 */ + "SD_CD_ODL", + "", + "", + "MOS_BT_WLAN_SLIMBUS_CLK", + "MOS_BT_WLAN_SLIMBUS_DAT0", + "HP_MCLK", + "HP_BCLK", + "HP_DOUT", + "HP_DIN", + + "HP_LRCLK", /* 100 */ + "HP_IRQ", + "", + "", + "GSC_AP_INT_ODL", + "EN_PP3300_CODEC", + "AMP_BCLK", + "AMP_DIN", + "AMP_LRCLK", + "UIM1_DATA_GPIO_109", + + "UIM1_CLK_GPIO_110", /* 110 */ + "UIM1_RESET_GPIO_111", + "PRB_SC_GPIO_112", + "UIM0_DATA", + "UIM0_CLK", + "UIM0_RST", + "UIM0_PRESENT_ODL", + "SDM_RFFE0_CLK", + "SDM_RFFE0_DATA", + "WF_CAM_EN", + + "FASTBOOT_SEL_0", /* 120 */ + "SC_GPIO_121", + "FASTBOOT_SEL_1", + "SC_GPIO_123", + "FASTBOOT_SEL_2", + "SM_RFFE4_CLK_GRFC_8", + "SM_RFFE4_DATA_GRFC_9", + "WLAN_COEX_UART1_RX", + "WLAN_COEX_UART1_TX", + "PRB_SC_GPIO_129", + + "LCM_ID0", /* 130 */ + "LCM_ID1", + "", + "SDR_QLINK_REQ", + "SDR_QLINK_EN", + "QLINK0_WMSS_RESET_N", + "SMR526_QLINK1_REQ", + "SMR526_QLINK1_EN", + "SMR526_QLINK1_WMSS_RESET_N", + "PRB_SC_GPIO_139", + + "SAR1_IRQ_ODL", /* 140 */ + "SAR0_IRQ_ODL", + "PRB_SC_GPIO_142", + "", + "WCD_SWR_TX_CLK", + "WCD_SWR_TX_DATA0", + "WCD_SWR_TX_DATA1", + "WCD_SWR_RX_CLK", + "WCD_SWR_RX_DATA0", + "WCD_SWR_RX_DATA1", + + "DMIC01_CLK", /* 150 */ + "DMIC01_DATA", + "DMIC23_CLK", + "DMIC23_DATA", + "", + "", + "EC_IN_RW_ODL", + "HUB_EN", + "WCD_SWR_TX_DATA2", + "", + + "", /* 160 */ + "", + "", + "", + "", + "", + "", + "", + "", + "", + + "", /* 170 */ + "MOS_BLE_UART_TX", + "MOS_BLE_UART_RX", + "", + "", + ""; +}; --- a/arch/arm64/boot/dts/qcom/sc7280-idp.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sc7280-idp.dts @@ -90,7 +90,7 @@ }; &usb_2_dwc3 { - dr_mode = "host"; + dr_mode = "otg"; }; &usb_2_hsphy { --- a/arch/arm64/boot/dts/qcom/sc7280-idp.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sc7280-idp.dtsi @@ -547,3 +547,13 @@ }; }; +&remoteproc_wpss { + status = "okay"; +}; + +&wifi { + status = "okay"; + wifi-firmware { + iommus = <&apps_smmu 0x1c02 0x1>; + }; +}; --- a/arch/arm64/boot/dts/qcom/sdm630.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sdm630.dtsi @@ -1453,7 +1453,7 @@ reg-names = "mdp_phys"; interrupt-parent = <&mdss>; - interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <0>; assigned-clocks = <&mmcc MDSS_MDP_CLK>, <&mmcc MDSS_VSYNC_CLK>; @@ -1530,7 +1530,7 @@ power-domains = <&rpmpd SDM660_VDDCX>; interrupt-parent = <&mdss>; - interrupts = <4 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <4>; assigned-clocks = <&mmcc BYTE0_CLK_SRC>, <&mmcc PCLK0_CLK_SRC>; --- a/arch/arm64/boot/dts/qcom/sdm660.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sdm660.dtsi @@ -163,7 +163,7 @@ power-domains = <&rpmpd SDM660_VDDCX>; interrupt-parent = <&mdss>; - interrupts = <5 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <5>; assigned-clocks = <&mmcc BYTE1_CLK_SRC>, <&mmcc PCLK1_CLK_SRC>; --- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts @@ -1051,6 +1051,7 @@ vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; qcom,snoc-host-cap-8bit-quirk; + qcom,ath10k-calibration-variant = "Thundercomm_DB845C"; }; /* PINCTRL - additions to nodes defined in sdm845.dtsi */ --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sdm845.dtsi @@ -200,8 +200,8 @@ cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1 &CLUSTER_SLEEP_0>; - capacity-dmips-mhz = <607>; - dynamic-power-coefficient = <100>; + capacity-dmips-mhz = <611>; + dynamic-power-coefficient = <290>; qcom,freq-domain = <&cpufreq_hw 0>; operating-points-v2 = <&cpu0_opp_table>; interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, @@ -225,8 +225,8 @@ cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1 &CLUSTER_SLEEP_0>; - capacity-dmips-mhz = <607>; - dynamic-power-coefficient = <100>; + capacity-dmips-mhz = <611>; + dynamic-power-coefficient = <290>; qcom,freq-domain = <&cpufreq_hw 0>; operating-points-v2 = <&cpu0_opp_table>; interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, @@ -247,8 +247,8 @@ cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1 &CLUSTER_SLEEP_0>; - capacity-dmips-mhz = <607>; - dynamic-power-coefficient = <100>; + capacity-dmips-mhz = <611>; + dynamic-power-coefficient = <290>; qcom,freq-domain = <&cpufreq_hw 0>; operating-points-v2 = <&cpu0_opp_table>; interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, @@ -269,8 +269,8 @@ cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1 &CLUSTER_SLEEP_0>; - capacity-dmips-mhz = <607>; - dynamic-power-coefficient = <100>; + capacity-dmips-mhz = <611>; + dynamic-power-coefficient = <290>; qcom,freq-domain = <&cpufreq_hw 0>; operating-points-v2 = <&cpu0_opp_table>; interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, @@ -292,7 +292,7 @@ cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1 &CLUSTER_SLEEP_0>; - dynamic-power-coefficient = <396>; + dynamic-power-coefficient = <442>; qcom,freq-domain = <&cpufreq_hw 1>; operating-points-v2 = <&cpu4_opp_table>; interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, @@ -314,7 +314,7 @@ cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1 &CLUSTER_SLEEP_0>; - dynamic-power-coefficient = <396>; + dynamic-power-coefficient = <442>; qcom,freq-domain = <&cpufreq_hw 1>; operating-points-v2 = <&cpu4_opp_table>; interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, @@ -336,7 +336,7 @@ cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1 &CLUSTER_SLEEP_0>; - dynamic-power-coefficient = <396>; + dynamic-power-coefficient = <442>; qcom,freq-domain = <&cpufreq_hw 1>; operating-points-v2 = <&cpu4_opp_table>; interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, @@ -358,7 +358,7 @@ cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1 &CLUSTER_SLEEP_0>; - dynamic-power-coefficient = <396>; + dynamic-power-coefficient = <442>; qcom,freq-domain = <&cpufreq_hw 1>; operating-points-v2 = <&cpu4_opp_table>; interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, @@ -2027,7 +2027,7 @@ }; pcie0: pci@1c00000 { - compatible = "qcom,pcie-sdm845", "snps,dw-pcie"; + compatible = "qcom,pcie-sdm845"; reg = <0 0x01c00000 0 0x2000>, <0 0x60000000 0 0xf1d>, <0 0x60000f20 0 0xa8>, @@ -2132,7 +2132,7 @@ }; pcie1: pci@1c08000 { - compatible = "qcom,pcie-sdm845", "snps,dw-pcie"; + compatible = "qcom,pcie-sdm845"; reg = <0 0x01c08000 0 0x2000>, <0 0x40000000 0 0xf1d>, <0 0x40000f20 0 0xa8>, @@ -4283,7 +4283,7 @@ power-domains = <&rpmhpd SDM845_CX>; interrupt-parent = <&mdss>; - interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <0>; ports { #address-cells = <1>; @@ -4335,7 +4335,7 @@ 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>, @@ -4407,7 +4407,7 @@ 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>, --- a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts @@ -121,7 +121,7 @@ &adsp_pas { status = "okay"; - firmware-name = "qcom/sdm845/adsp.mdt"; + firmware-name = "qcom/sdm845/beryllium/adsp.mbn"; }; &apps_rsc { @@ -185,6 +185,12 @@ regulator-initial-mode = ; }; + vreg_l23a_3p3: ldo23 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3312000>; + regulator-initial-mode = ; + }; + vreg_l24a_3p075: ldo24 { regulator-min-microvolt = <3088000>; regulator-max-microvolt = <3088000>; @@ -208,7 +214,7 @@ &cdsp_pas { status = "okay"; - firmware-name = "qcom/sdm845/cdsp.mdt"; + firmware-name = "qcom/sdm845/beryllium/cdsp.mbn"; }; &dsi0 { @@ -218,13 +224,14 @@ panel@0 { compatible = "tianma,fhd-video"; reg = <0>; - vddi0-supply = <&vreg_l14a_1p8>; + vddio-supply = <&vreg_l14a_1p8>; vddpos-supply = <&lab>; vddneg-supply = <&ibb>; #address-cells = <1>; #size-cells = <0>; + backlight = <&pmi8998_wled>; reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>; port { @@ -262,7 +269,7 @@ zap-shader { memory-region = <&gpu_mem>; - firmware-name = "qcom/sdm845/a630_zap.mbn"; + firmware-name = "qcom/sdm845/beryllium/a630_zap.mbn"; }; }; @@ -289,7 +296,13 @@ &mss_pil { status = "okay"; - firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mdt"; + firmware-name = "qcom/sdm845/beryllium/mba.mbn", "qcom/sdm845/beryllium/modem.mbn"; +}; + +&ipa { + status = "okay"; + memory-region = <&ipa_fw_mem>; + firmware-name = "qcom/sdm845/beryllium/ipa_fws.mbn"; }; &pm8998_gpio { @@ -302,6 +315,17 @@ }; }; +&pmi8998_wled { + status = "okay"; + qcom,current-boost-limit = <970>; + qcom,ovp-millivolt = <29600>; + qcom,current-limit-microamp = <20000>; + qcom,num-strings = <2>; + qcom,switching-freq = <600>; + qcom,external-pfet; + qcom,cabc; +}; + &pm8998_pon { resin { compatible = "qcom,pm8941-resin"; @@ -541,6 +565,7 @@ vdd-1.8-xo-supply = <&vreg_l7a_1p8>; vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; + vdd-3.3-ch1-supply = <&vreg_l23a_3p3>; }; /* PINCTRL - additions to nodes defined in sdm845.dtsi */ --- a/arch/arm64/boot/dts/qcom/sm6350.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sm6350.dtsi @@ -517,6 +517,45 @@ }; }; + qupv3_id_0: geniqup@8c0000 { + compatible = "qcom,geni-se-qup"; + reg = <0x0 0x8c0000 0x0 0x2000>; + clock-names = "m-ahb", "s-ahb"; + clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>, + <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>; + #address-cells = <2>; + #size-cells = <2>; + iommus = <&apps_smmu 0x43 0x0>; + ranges; + status = "disabled"; + + i2c0: i2c@880000 { + compatible = "qcom,geni-i2c"; + reg = <0 0x00880000 0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c0_default>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c2: i2c@888000 { + compatible = "qcom,geni-i2c"; + reg = <0 0x00888000 0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c2_default>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + }; + qupv3_id_1: geniqup@9c0000 { compatible = "qcom,geni-se-qup"; reg = <0x0 0x9c0000 0x0 0x2000>; @@ -529,16 +568,146 @@ ranges; status = "disabled"; - uart2: serial@98c000 { + i2c6: i2c@980000 { + compatible = "qcom,geni-i2c"; + reg = <0 0x00980000 0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c6_default>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c7: i2c@984000 { + compatible = "qcom,geni-i2c"; + reg = <0 0x00984000 0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c7_default>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c8: i2c@988000 { + compatible = "qcom,geni-i2c"; + reg = <0 0x00988000 0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c8_default>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + uart9: serial@98c000 { compatible = "qcom,geni-debug-uart"; reg = <0 0x98c000 0 0x4000>; clock-names = "se"; clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>; pinctrl-names = "default"; - pinctrl-0 = <&qup_uart2_default>; + pinctrl-0 = <&qup_uart9_default>; interrupts = ; status = "disabled"; }; + + i2c10: i2c@990000 { + compatible = "qcom,geni-i2c"; + reg = <0 0x00990000 0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c10_default>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + }; + + ufs_mem_hc: ufs@1d84000 { + compatible = "qcom,sm6350-ufshc", "qcom,ufshc", + "jedec,ufs-2.0"; + reg = <0 0x01d84000 0 0x3000>, + <0 0x01d90000 0 0x8000>; + reg-names = "std", "ice"; + interrupts = ; + phys = <&ufs_mem_phy_lanes>; + phy-names = "ufsphy"; + lanes-per-direction = <2>; + #reset-cells = <1>; + resets = <&gcc GCC_UFS_PHY_BCR>; + reset-names = "rst"; + + power-domains = <&gcc UFS_PHY_GDSC>; + + iommus = <&apps_smmu 0x80 0x0>; + + clock-names = "core_clk", + "bus_aggr_clk", + "iface_clk", + "core_clk_unipro", + "ref_clk", + "tx_lane0_sync_clk", + "rx_lane0_sync_clk", + "rx_lane1_sync_clk", + "ice_core_clk"; + clocks = <&gcc GCC_UFS_PHY_AXI_CLK>, + <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>, + <&gcc GCC_UFS_PHY_AHB_CLK>, + <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>, + <&rpmhcc RPMH_QLINK_CLK>, + <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>, + <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>, + <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>, + <&gcc GCC_UFS_PHY_ICE_CORE_CLK>; + freq-table-hz = + <50000000 200000000>, + <0 0>, + <0 0>, + <37500000 150000000>, + <75000000 300000000>, + <0 0>, + <0 0>, + <0 0>, + <0 0>; + + status = "disabled"; + }; + + ufs_mem_phy: phy@1d87000 { + compatible = "qcom,sm6350-qmp-ufs-phy"; + reg = <0 0x01d87000 0 0x18c>; + #address-cells = <2>; + #size-cells = <2>; + ranges; + + clock-names = "ref", + "ref_aux"; + clocks = <&gcc GCC_UFS_MEM_CLKREF_CLK>, + <&gcc GCC_UFS_PHY_PHY_AUX_CLK>; + + resets = <&ufs_mem_hc 0>; + reset-names = "ufsphy"; + + status = "disabled"; + + ufs_mem_phy_lanes: phy@1d87400 { + reg = <0 0x01d87400 0 0x128>, + <0 0x01d87600 0 0x1fc>, + <0 0x01d87c00 0 0x1dc>, + <0 0x01d87800 0 0x128>, + <0 0x01d87a00 0 0x1fc>; + #phy-cells = <0>; + }; }; tcsr_mutex: hwlock@1f40000 { @@ -974,12 +1143,54 @@ #interrupt-cells = <2>; gpio-ranges = <&tlmm 0 0 157>; - qup_uart2_default: qup-uart2-default { + qup_uart9_default: qup-uart9-default { pins = "gpio25", "gpio26"; function = "qup13_f2"; drive-strength = <2>; bias-disable; }; + + qup_i2c0_default: qup-i2c0-default { + pins = "gpio0", "gpio1"; + function = "qup00"; + drive-strength = <2>; + bias-pull-up; + }; + + qup_i2c2_default: qup-i2c2-default { + pins = "gpio45", "gpio46"; + function = "qup02"; + drive-strength = <2>; + bias-pull-up; + }; + + qup_i2c6_default: qup-i2c6-default { + pins = "gpio13", "gpio14"; + function = "qup10"; + drive-strength = <2>; + bias-pull-up; + }; + + qup_i2c7_default: qup-i2c7-default { + pins = "gpio27", "gpio28"; + function = "qup11"; + drive-strength = <2>; + bias-pull-up; + }; + + qup_i2c8_default: qup-i2c8-default { + pins = "gpio19", "gpio20"; + function = "qup12"; + drive-strength = <2>; + bias-pull-up; + }; + + qup_i2c10_default: qup-i2c10-default { + pins = "gpio4", "gpio5"; + function = "qup14"; + drive-strength = <2>; + bias-pull-up; + }; }; apps_smmu: iommu@15000000 { @@ -1145,6 +1356,28 @@ }; }; + wifi: wifi@18800000 { + compatible = "qcom,wcn3990-wifi"; + reg = <0 0x18800000 0 0x800000>; + reg-names = "membase"; + memory-region = <&wlan_fw_mem>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + ; + iommus = <&apps_smmu 0x20 0x1>; + qcom,msa-fixed-perm; + status = "disabled"; + }; + apps_rsc: rsc@18200000 { compatible = "qcom,rpmh-rsc"; label = "apps_rsc"; @@ -1217,7 +1450,7 @@ }; }; - apps_bcm_voter: bcm_voter { + apps_bcm_voter: bcm-voter { compatible = "qcom,bcm-voter"; }; }; --- a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts @@ -23,7 +23,7 @@ qcom,board-id = <8 32>; aliases { - serial0 = &uart2; + serial0 = &uart9; }; chosen { @@ -296,6 +296,35 @@ firmware-name = "qcom/sm7225/fairphone4/cdsp.mdt"; }; +&i2c10 { + status = "okay"; + clock-frequency = <400000>; + + haptics@5a { + compatible = "awinic,aw8695"; + reg = <0x5a>; + interrupts-extended = <&tlmm 85 IRQ_TYPE_EDGE_FALLING>; + reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>; + + awinic,f0-preset = <2350>; + awinic,f0-coefficient = <260>; + awinic,f0-calibration-percent = <7>; + awinic,drive-level = <125>; + + awinic,f0-detection-play-time = <5>; + awinic,f0-detection-wait-time = <3>; + awinic,f0-detection-repeat = <2>; + awinic,f0-detection-trace = <15>; + + awinic,boost-debug = /bits/ 8 <0x30 0xeb 0xd4>; + awinic,tset = /bits/ 8 <0x12>; + awinic,r-spare = /bits/ 8 <0x68>; + + awinic,bemf-upper-threshold = <4104>; + awinic,bemf-lower-threshold = <1016>; + }; +}; + &mpss { status = "okay"; firmware-name = "qcom/sm7225/fairphone4/modem.mdt"; @@ -332,10 +361,28 @@ gpio-reserved-ranges = <13 4>, <56 2>; }; -&uart2 { +&uart9 { status = "okay"; }; +&ufs_mem_hc { + status = "okay"; + + reset-gpios = <&tlmm 156 GPIO_ACTIVE_LOW>; + + vcc-supply = <&vreg_l7e>; + vcc-max-microamp = <800000>; + vccq2-supply = <&vreg_l12a>; + vccq2-max-microamp = <800000>; +}; + +&ufs_mem_phy { + status = "okay"; + + vdda-phy-supply = <&vreg_l18a>; + vdda-pll-supply = <&vreg_l22a>; +}; + &usb_1 { status = "okay"; }; @@ -359,3 +406,13 @@ vdda-phy-supply = <&vreg_l22a>; vdda-pll-supply = <&vreg_l16a>; }; + +&wifi { + status = "okay"; + + vdd-0.8-cx-mx-supply = <&vreg_l4a>; + vdd-1.8-xo-supply = <&vreg_l7a>; + vdd-1.3-rfa-supply = <&vreg_l2e>; + vdd-3.3-ch0-supply = <&vreg_l10e>; + vdd-3.3-ch1-supply = <&vreg_l11e>; +}; --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sm8150.dtsi @@ -915,6 +915,33 @@ status = "disabled"; }; + ethernet: ethernet@20000 { + compatible = "qcom,sm8150-ethqos"; + reg = <0x0 0x00020000 0x0 0x10000>, + <0x0 0x00036000 0x0 0x100>; + reg-names = "stmmaceth", "rgmii"; + clock-names = "stmmaceth", "pclk", "ptp_ref", "rgmii"; + clocks = <&gcc GCC_EMAC_AXI_CLK>, + <&gcc GCC_EMAC_SLV_AHB_CLK>, + <&gcc GCC_EMAC_PTP_CLK>, + <&gcc GCC_EMAC_RGMII_CLK>; + interrupts = , + ; + interrupt-names = "macirq", "eth_lpi"; + + power-domains = <&gcc EMAC_GDSC>; + resets = <&gcc GCC_EMAC_BCR>; + + iommus = <&apps_smmu 0x3C0 0x0>; + + snps,tso; + rx-fifo-depth = <4096>; + tx-fifo-depth = <4096>; + + status = "disabled"; + }; + + qupv3_id_0: geniqup@8c0000 { compatible = "qcom,geni-se-qup"; reg = <0x0 0x008c0000 0x0 0x6000>; @@ -1746,6 +1773,203 @@ interrupts = ; }; + pcie0: pci@1c00000 { + compatible = "qcom,pcie-sm8150", "snps,dw-pcie"; + reg = <0 0x01c00000 0 0x3000>, + <0 0x60000000 0 0xf1d>, + <0 0x60000f20 0 0xa8>, + <0 0x60001000 0 0x1000>, + <0 0x60100000 0 0x100000>; + reg-names = "parf", "dbi", "elbi", "atu", "config"; + device_type = "pci"; + linux,pci-domain = <0>; + bus-range = <0x00 0xff>; + num-lanes = <1>; + + #address-cells = <3>; + #size-cells = <2>; + + ranges = <0x01000000 0x0 0x60200000 0 0x60200000 0x0 0x100000>, + <0x02000000 0x0 0x60300000 0 0x60300000 0x0 0x3d00000>; + + interrupts = ; + interrupt-names = "msi"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ + <0 0 0 2 &intc 0 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ + <0 0 0 3 &intc 0 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ + <0 0 0 4 &intc 0 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ + + clocks = <&gcc GCC_PCIE_0_PIPE_CLK>, + <&gcc GCC_PCIE_0_AUX_CLK>, + <&gcc GCC_PCIE_0_CFG_AHB_CLK>, + <&gcc GCC_PCIE_0_MSTR_AXI_CLK>, + <&gcc GCC_PCIE_0_SLV_AXI_CLK>, + <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>, + <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>; + clock-names = "pipe", + "aux", + "cfg", + "bus_master", + "bus_slave", + "slave_q2a", + "tbu"; + + iommus = <&apps_smmu 0x1d80 0x7f>; + iommu-map = <0x0 &apps_smmu 0x1d80 0x1>, + <0x100 &apps_smmu 0x1d81 0x1>; + + resets = <&gcc GCC_PCIE_0_BCR>; + reset-names = "pci"; + + power-domains = <&gcc PCIE_0_GDSC>; + + phys = <&pcie0_lane>; + phy-names = "pciephy"; + + perst-gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>; + enable-gpio = <&tlmm 37 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&pcie0_default_state>; + + status = "disabled"; + }; + + pcie0_phy: phy@1c06000 { + compatible = "qcom,sm8150-qmp-gen3x1-pcie-phy"; + reg = <0 0x01c06000 0 0x1c0>; + #address-cells = <2>; + #size-cells = <2>; + ranges; + clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>, + <&gcc GCC_PCIE_0_CFG_AHB_CLK>, + <&gcc GCC_PCIE0_PHY_REFGEN_CLK>; + clock-names = "aux", "cfg_ahb", "refgen"; + + resets = <&gcc GCC_PCIE_0_PHY_BCR>; + reset-names = "phy"; + + assigned-clocks = <&gcc GCC_PCIE0_PHY_REFGEN_CLK>; + assigned-clock-rates = <100000000>; + + status = "disabled"; + + pcie0_lane: phy@1c06200 { + reg = <0 0x1c06200 0 0x170>, /* tx */ + <0 0x1c06400 0 0x200>, /* rx */ + <0 0x1c06800 0 0x1f0>, /* pcs */ + <0 0x1c06c00 0 0xf4>; /* "pcs_lane" same as pcs_misc? */ + clocks = <&gcc GCC_PCIE_0_PIPE_CLK>; + clock-names = "pipe0"; + + #phy-cells = <0>; + clock-output-names = "pcie_0_pipe_clk"; + }; + }; + + pcie1: pci@1c08000 { + compatible = "qcom,pcie-sm8150", "snps,dw-pcie"; + reg = <0 0x01c08000 0 0x3000>, + <0 0x40000000 0 0xf1d>, + <0 0x40000f20 0 0xa8>, + <0 0x40001000 0 0x1000>, + <0 0x40100000 0 0x100000>; + reg-names = "parf", "dbi", "elbi", "atu", "config"; + device_type = "pci"; + linux,pci-domain = <1>; + bus-range = <0x00 0xff>; + num-lanes = <2>; + + #address-cells = <3>; + #size-cells = <2>; + + ranges = <0x01000000 0x0 0x40200000 0x0 0x40200000 0x0 0x100000>, + <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>; + + interrupts = ; + interrupt-names = "msi"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 434 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ + <0 0 0 2 &intc 0 435 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ + <0 0 0 3 &intc 0 438 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ + <0 0 0 4 &intc 0 439 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ + + clocks = <&gcc GCC_PCIE_1_PIPE_CLK>, + <&gcc GCC_PCIE_1_AUX_CLK>, + <&gcc GCC_PCIE_1_CFG_AHB_CLK>, + <&gcc GCC_PCIE_1_MSTR_AXI_CLK>, + <&gcc GCC_PCIE_1_SLV_AXI_CLK>, + <&gcc GCC_PCIE_1_SLV_Q2A_AXI_CLK>, + <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>; + clock-names = "pipe", + "aux", + "cfg", + "bus_master", + "bus_slave", + "slave_q2a", + "tbu"; + + assigned-clocks = <&gcc GCC_PCIE_1_AUX_CLK>; + assigned-clock-rates = <19200000>; + + iommus = <&apps_smmu 0x1e00 0x7f>; + iommu-map = <0x0 &apps_smmu 0x1e00 0x1>, + <0x100 &apps_smmu 0x1e01 0x1>; + + resets = <&gcc GCC_PCIE_1_BCR>; + reset-names = "pci"; + + power-domains = <&gcc PCIE_1_GDSC>; + + phys = <&pcie1_lane>; + phy-names = "pciephy"; + + perst-gpio = <&tlmm 102 GPIO_ACTIVE_HIGH>; + enable-gpio = <&tlmm 104 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&pcie1_default_state>; + + status = "disabled"; + }; + + pcie1_phy: phy@1c0e000 { + compatible = "qcom,sm8150-qmp-gen3x2-pcie-phy"; + reg = <0 0x01c0e000 0 0x1c0>; + #address-cells = <2>; + #size-cells = <2>; + ranges; + clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>, + <&gcc GCC_PCIE_1_CFG_AHB_CLK>, + <&gcc GCC_PCIE1_PHY_REFGEN_CLK>; + clock-names = "aux", "cfg_ahb", "refgen"; + + resets = <&gcc GCC_PCIE_1_PHY_BCR>; + reset-names = "phy"; + + assigned-clocks = <&gcc GCC_PCIE1_PHY_REFGEN_CLK>; + assigned-clock-rates = <100000000>; + + status = "disabled"; + + pcie1_lane: phy@1c0e200 { + reg = <0 0x1c0e200 0 0x170>, /* tx0 */ + <0 0x1c0e400 0 0x200>, /* rx0 */ + <0 0x1c0ea00 0 0x1f0>, /* pcs */ + <0 0x1c0e600 0 0x170>, /* tx1 */ + <0 0x1c0e800 0 0x200>, /* rx1 */ + <0 0x1c0ee00 0 0xf4>; /* "pcs_com" same as pcs_misc? */ + clocks = <&gcc GCC_PCIE_1_PIPE_CLK>; + clock-names = "pipe0"; + + #phy-cells = <0>; + clock-output-names = "pcie_1_pipe_clk"; + }; + }; + ufs_mem_hc: ufshc@1d84000 { compatible = "qcom,sm8150-ufshc", "qcom,ufshc", "jedec,ufs-2.0"; @@ -1807,6 +2031,8 @@ clocks = <&gcc GCC_UFS_MEM_CLKREF_CLK>, <&gcc GCC_UFS_PHY_PHY_AUX_CLK>; + power-domains = <&gcc UFS_PHY_GDSC>; + resets = <&ufs_mem_hc 0>; reset-names = "ufsphy"; status = "disabled"; @@ -2048,6 +2274,7 @@ #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; + wakeup-parent = <&pdc>; qup_i2c0_default: qup-i2c0-default { mux { @@ -2448,6 +2675,52 @@ drive-strength = <6>; bias-disable; }; + + pcie0_default_state: pcie0-default { + perst { + pins = "gpio35"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + clkreq { + pins = "gpio36"; + function = "pci_e0"; + drive-strength = <2>; + bias-pull-up; + }; + + wake { + pins = "gpio37"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + pcie1_default_state: pcie1-default { + perst { + pins = "gpio102"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + clkreq { + pins = "gpio103"; + function = "pci_e1"; + drive-strength = <2>; + bias-pull-up; + }; + + wake { + pins = "gpio104"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; }; remoteproc_mpss: remoteproc@4080000 { @@ -3270,6 +3543,51 @@ }; }; + sdhc_2: sdhci@8804000 { + compatible = "qcom,sm8150-sdhci", "qcom,sdhci-msm-v5"; + reg = <0 0x08804000 0 0x1000>; + + interrupts = , + ; + interrupt-names = "hc_irq", "pwr_irq"; + + clocks = <&gcc GCC_SDCC2_AHB_CLK>, + <&gcc GCC_SDCC2_APPS_CLK>, + <&rpmhcc RPMH_CXO_CLK>; + clock-names = "iface", "core", "xo"; + iommus = <&apps_smmu 0x4a0 0x0>; + qcom,dll-config = <0x0007642c>; + qcom,ddr-config = <0x80040868>; + power-domains = <&rpmhpd 0>; + operating-points-v2 = <&sdhc2_opp_table>; + + status = "disabled"; + + sdhc2_opp_table: sdhc2-opp-table { + compatible = "operating-points-v2"; + + opp-19200000 { + opp-hz = /bits/ 64 <19200000>; + required-opps = <&rpmhpd_opp_min_svs>; + }; + + opp-50000000 { + opp-hz = /bits/ 64 <50000000>; + required-opps = <&rpmhpd_opp_low_svs>; + }; + + opp-100000000 { + opp-hz = /bits/ 64 <100000000>; + required-opps = <&rpmhpd_opp_svs>; + }; + + opp-202000000 { + opp-hz = /bits/ 64 <202000000>; + required-opps = <&rpmhpd_opp_svs_l1>; + }; + }; + }; + dc_noc: interconnect@9160000 { compatible = "qcom,sm8150-dc-noc"; reg = <0 0x09160000 0 0x3200>; @@ -3381,6 +3699,16 @@ qcom,bcm-voters = <&apps_bcm_voter>; }; + pdc: interrupt-controller@b220000 { + compatible = "qcom,sm8150-pdc", "qcom,pdc"; + reg = <0 0x0b220000 0 0x400>; + qcom,pdc-ranges = <0 480 94>, <94 609 31>, + <125 63 1>; + #interrupt-cells = <2>; + interrupt-parent = <&intc>; + interrupt-controller; + }; + aoss_qmp: power-controller@c300000 { compatible = "qcom,sm8150-aoss-qmp"; reg = <0x0 0x0c300000 0x0 0x400>; @@ -3744,7 +4072,7 @@ }; }; - apps_bcm_voter: bcm_voter { + apps_bcm_voter: bcm-voter { compatible = "qcom,bcm-voter"; }; }; --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sm8250.dtsi @@ -18,6 +18,7 @@ #include #include #include +#include #include / { @@ -2255,6 +2256,7 @@ pinctrl-0 = <&rx_swr_active>; compatible = "qcom,sm8250-lpass-rx-macro"; reg = <0 0x3200000 0 0x1000>; + status = "disabled"; clocks = <&q6afecc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>, <&q6afecc LPASS_CLK_ID_TX_CORE_NPL_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>, @@ -2273,6 +2275,7 @@ swr1: soundwire-controller@3210000 { reg = <0 0x3210000 0 0x2000>; compatible = "qcom,soundwire-v1.5.1"; + status = "disabled"; interrupts = ; clocks = <&rxmacro>; clock-names = "iface"; @@ -2300,6 +2303,7 @@ pinctrl-0 = <&tx_swr_active>; compatible = "qcom,sm8250-lpass-tx-macro"; reg = <0 0x3220000 0 0x1000>; + status = "disabled"; clocks = <&q6afecc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>, <&q6afecc LPASS_CLK_ID_TX_CORE_NPL_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>, @@ -2323,6 +2327,7 @@ compatible = "qcom,soundwire-v1.5.1"; interrupts-extended = <&intc GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "core"; + status = "disabled"; clocks = <&txmacro>; clock-names = "iface"; @@ -3149,6 +3154,256 @@ #power-domain-cells = <1>; }; + cci0: cci@ac4f000 { + compatible = "qcom,sm8250-cci"; + #address-cells = <1>; + #size-cells = <0>; + + reg = <0 0x0ac4f000 0 0x1000>; + interrupts = ; + power-domains = <&camcc TITAN_TOP_GDSC>; + + clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>, + <&camcc CAM_CC_SLOW_AHB_CLK_SRC>, + <&camcc CAM_CC_CPAS_AHB_CLK>, + <&camcc CAM_CC_CCI_0_CLK>, + <&camcc CAM_CC_CCI_0_CLK_SRC>; + clock-names = "camnoc_axi", + "slow_ahb_src", + "cpas_ahb", + "cci", + "cci_src"; + + pinctrl-0 = <&cci0_default>; + pinctrl-1 = <&cci0_sleep>; + pinctrl-names = "default", "sleep"; + + status = "disabled"; + + cci0_i2c0: i2c-bus@0 { + reg = <0>; + clock-frequency = <1000000>; + #address-cells = <1>; + #size-cells = <0>; + }; + + cci0_i2c1: i2c-bus@1 { + reg = <1>; + clock-frequency = <1000000>; + #address-cells = <1>; + #size-cells = <0>; + }; + }; + + cci1: cci@ac50000 { + compatible = "qcom,sm8250-cci"; + #address-cells = <1>; + #size-cells = <0>; + + reg = <0 0x0ac50000 0 0x1000>; + interrupts = ; + power-domains = <&camcc TITAN_TOP_GDSC>; + + clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>, + <&camcc CAM_CC_SLOW_AHB_CLK_SRC>, + <&camcc CAM_CC_CPAS_AHB_CLK>, + <&camcc CAM_CC_CCI_1_CLK>, + <&camcc CAM_CC_CCI_1_CLK_SRC>; + clock-names = "camnoc_axi", + "slow_ahb_src", + "cpas_ahb", + "cci", + "cci_src"; + + pinctrl-0 = <&cci1_default>; + pinctrl-1 = <&cci1_sleep>; + pinctrl-names = "default", "sleep"; + + status = "disabled"; + + cci1_i2c0: i2c-bus@0 { + reg = <0>; + clock-frequency = <1000000>; + #address-cells = <1>; + #size-cells = <0>; + }; + + cci1_i2c1: i2c-bus@1 { + reg = <1>; + clock-frequency = <1000000>; + #address-cells = <1>; + #size-cells = <0>; + }; + }; + + camss: camss@ac6a000 { + compatible = "qcom,sm8250-camss"; + status = "disabled"; + + reg = <0 0xac6a000 0 0x2000>, + <0 0xac6c000 0 0x2000>, + <0 0xac6e000 0 0x1000>, + <0 0xac70000 0 0x1000>, + <0 0xac72000 0 0x1000>, + <0 0xac74000 0 0x1000>, + <0 0xacb4000 0 0xd000>, + <0 0xacc3000 0 0xd000>, + <0 0xacd9000 0 0x2200>, + <0 0xacdb200 0 0x2200>; + reg-names = "csiphy0", + "csiphy1", + "csiphy2", + "csiphy3", + "csiphy4", + "csiphy5", + "vfe0", + "vfe1", + "vfe_lite0", + "vfe_lite1"; + + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + ; + interrupt-names = "csiphy0", + "csiphy1", + "csiphy2", + "csiphy3", + "csiphy4", + "csiphy5", + "csid0", + "csid1", + "csid2", + "csid3", + "vfe0", + "vfe1", + "vfe_lite0", + "vfe_lite1"; + + power-domains = <&camcc IFE_0_GDSC>, + <&camcc IFE_1_GDSC>, + <&camcc TITAN_TOP_GDSC>; + + clocks = <&gcc GCC_CAMERA_AHB_CLK>, + <&gcc GCC_CAMERA_HF_AXI_CLK>, + <&gcc GCC_CAMERA_SF_AXI_CLK>, + <&camcc CAM_CC_CAMNOC_AXI_CLK>, + <&camcc CAM_CC_CAMNOC_AXI_CLK_SRC>, + <&camcc CAM_CC_CORE_AHB_CLK>, + <&camcc CAM_CC_CPAS_AHB_CLK>, + <&camcc CAM_CC_CSIPHY0_CLK>, + <&camcc CAM_CC_CSI0PHYTIMER_CLK>, + <&camcc CAM_CC_CSIPHY1_CLK>, + <&camcc CAM_CC_CSI1PHYTIMER_CLK>, + <&camcc CAM_CC_CSIPHY2_CLK>, + <&camcc CAM_CC_CSI2PHYTIMER_CLK>, + <&camcc CAM_CC_CSIPHY3_CLK>, + <&camcc CAM_CC_CSI3PHYTIMER_CLK>, + <&camcc CAM_CC_CSIPHY4_CLK>, + <&camcc CAM_CC_CSI4PHYTIMER_CLK>, + <&camcc CAM_CC_CSIPHY5_CLK>, + <&camcc CAM_CC_CSI5PHYTIMER_CLK>, + <&camcc CAM_CC_SLOW_AHB_CLK_SRC>, + <&camcc CAM_CC_IFE_0_AHB_CLK>, + <&camcc CAM_CC_IFE_0_AXI_CLK>, + <&camcc CAM_CC_IFE_0_CLK>, + <&camcc CAM_CC_IFE_0_CPHY_RX_CLK>, + <&camcc CAM_CC_IFE_0_CSID_CLK>, + <&camcc CAM_CC_IFE_0_AREG_CLK>, + <&camcc CAM_CC_IFE_1_AHB_CLK>, + <&camcc CAM_CC_IFE_1_AXI_CLK>, + <&camcc CAM_CC_IFE_1_CLK>, + <&camcc CAM_CC_IFE_1_CPHY_RX_CLK>, + <&camcc CAM_CC_IFE_1_CSID_CLK>, + <&camcc CAM_CC_IFE_1_AREG_CLK>, + <&camcc CAM_CC_IFE_LITE_AHB_CLK>, + <&camcc CAM_CC_IFE_LITE_AXI_CLK>, + <&camcc CAM_CC_IFE_LITE_CLK>, + <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>, + <&camcc CAM_CC_IFE_LITE_CSID_CLK>; + + clock-names = "cam_ahb_clk", + "cam_hf_axi", + "cam_sf_axi", + "camnoc_axi", + "camnoc_axi_src", + "core_ahb", + "cpas_ahb", + "csiphy0", + "csiphy0_timer", + "csiphy1", + "csiphy1_timer", + "csiphy2", + "csiphy2_timer", + "csiphy3", + "csiphy3_timer", + "csiphy4", + "csiphy4_timer", + "csiphy5", + "csiphy5_timer", + "slow_ahb_src", + "vfe0_ahb", + "vfe0_axi", + "vfe0", + "vfe0_cphy_rx", + "vfe0_csid", + "vfe0_areg", + "vfe1_ahb", + "vfe1_axi", + "vfe1", + "vfe1_cphy_rx", + "vfe1_csid", + "vfe1_areg", + "vfe_lite_ahb", + "vfe_lite_axi", + "vfe_lite", + "vfe_lite_cphy_rx", + "vfe_lite_csid"; + + iommus = <&apps_smmu 0x800 0x400>, + <&apps_smmu 0x801 0x400>, + <&apps_smmu 0x840 0x400>, + <&apps_smmu 0x841 0x400>, + <&apps_smmu 0xc00 0x400>, + <&apps_smmu 0xc01 0x400>, + <&apps_smmu 0xc40 0x400>, + <&apps_smmu 0xc41 0x400>; + + interconnects = <&gem_noc MASTER_AMPSS_M0 &config_noc SLAVE_CAMERA_CFG>, + <&mmss_noc MASTER_CAMNOC_HF &mc_virt SLAVE_EBI_CH0>, + <&mmss_noc MASTER_CAMNOC_SF &mc_virt SLAVE_EBI_CH0>, + <&mmss_noc MASTER_CAMNOC_ICP &mc_virt SLAVE_EBI_CH0>; + interconnect-names = "cam_ahb", + "cam_hf_0_mnoc", + "cam_sf_0_mnoc", + "cam_sf_icp_mnoc"; + }; + + camcc: clock-controller@ad00000 { + compatible = "qcom,sm8250-camcc"; + reg = <0 0x0ad00000 0 0x10000>; + clocks = <&gcc GCC_CAMERA_AHB_CLK>, + <&rpmhcc RPMH_CXO_CLK>, + <&rpmhcc RPMH_CXO_CLK_A>, + <&sleep_clk>; + clock-names = "iface", "bi_tcxo", "bi_tcxo_ao", "sleep_clk"; + power-domains = <&rpmhpd SM8250_MMCX>; + required-opps = <&rpmhpd_opp_low_svs>; + #clock-cells = <1>; + #reset-cells = <1>; + #power-domain-cells = <1>; + }; + mdss: mdss@ae00000 { compatible = "qcom,sm8250-mdss"; reg = <0 0x0ae00000 0 0x1000>; @@ -3202,7 +3457,7 @@ power-domains = <&rpmhpd SM8250_MMCX>; interrupt-parent = <&mdss>; - interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; + interrupts = <0>; ports { #address-cells = <1>; @@ -3254,7 +3509,7 @@ 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>, @@ -3327,7 +3582,7 @@ 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>, @@ -3519,6 +3774,86 @@ gpio-ranges = <&tlmm 0 0 181>; wakeup-parent = <&pdc>; + cci0_default: cci0-default { + cci0_i2c0_default: cci0-i2c0-default { + /* SDA, SCL */ + pins = "gpio101", "gpio102"; + function = "cci_i2c"; + + bias-pull-up; + drive-strength = <2>; /* 2 mA */ + }; + + cci0_i2c1_default: cci0-i2c1-default { + /* SDA, SCL */ + pins = "gpio103", "gpio104"; + function = "cci_i2c"; + + bias-pull-up; + drive-strength = <2>; /* 2 mA */ + }; + }; + + cci0_sleep: cci0-sleep { + cci0_i2c0_sleep: cci0-i2c0-sleep { + /* SDA, SCL */ + pins = "gpio101", "gpio102"; + function = "cci_i2c"; + + drive-strength = <2>; /* 2 mA */ + bias-pull-down; + }; + + cci0_i2c1_sleep: cci0-i2c1-sleep { + /* SDA, SCL */ + pins = "gpio103", "gpio104"; + function = "cci_i2c"; + + drive-strength = <2>; /* 2 mA */ + bias-pull-down; + }; + }; + + cci1_default: cci1-default { + cci1_i2c0_default: cci1-i2c0-default { + /* SDA, SCL */ + pins = "gpio105","gpio106"; + function = "cci_i2c"; + + bias-pull-up; + drive-strength = <2>; /* 2 mA */ + }; + + cci1_i2c1_default: cci1-i2c1-default { + /* SDA, SCL */ + pins = "gpio107","gpio108"; + function = "cci_i2c"; + + bias-pull-up; + drive-strength = <2>; /* 2 mA */ + }; + }; + + cci1_sleep: cci1-sleep { + cci1_i2c0_sleep: cci1-i2c0-sleep { + /* SDA, SCL */ + pins = "gpio105","gpio106"; + function = "cci_i2c"; + + bias-pull-down; + drive-strength = <2>; /* 2 mA */ + }; + + cci1_i2c1_sleep: cci1-i2c1-sleep { + /* SDA, SCL */ + pins = "gpio107","gpio108"; + function = "cci_i2c"; + + bias-pull-down; + drive-strength = <2>; /* 2 mA */ + }; + }; + pri_mi2s_active: pri-mi2s-active { sclk { pins = "gpio138"; @@ -4654,7 +4989,7 @@ }; }; - apps_bcm_voter: bcm_voter { + apps_bcm_voter: bcm-voter { compatible = "qcom,bcm-voter"; }; }; --- a/arch/arm64/boot/dts/qcom/sm8250-mtp.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sm8250-mtp.dts @@ -622,6 +622,10 @@ status = "okay"; }; +&rxmacro { + status = "okay"; +}; + &slpi { status = "okay"; firmware-name = "qcom/sm8250/slpi.mbn"; @@ -773,6 +777,8 @@ }; &swr1 { + status = "okay"; + wcd_rx: wcd9380-rx@0,4 { compatible = "sdw20217010d00"; reg = <0 4>; @@ -781,6 +787,8 @@ }; &swr2 { + status = "okay"; + wcd_tx: wcd9380-tx@0,3 { compatible = "sdw20217010d00"; reg = <0 3>; @@ -819,6 +827,10 @@ }; }; +&txmacro { + status = "okay"; +}; + &uart12 { status = "okay"; }; --- a/arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi @@ -441,7 +441,35 @@ status = "okay"; clock-frequency = <1000000>; - /* Dual Cirrus Logic CS35L41 amps @ 40, 41 */ + cs35l41_l: cs35l41@40 { + compatible = "cirrus,cs35l41"; + reg = <0x40>; + interrupt-parent = <&tlmm>; + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; + reset-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>; + cirrus,boost-peak-milliamp = <4000>; + cirrus,boost-ind-nanohenry = <1000>; + cirrus,boost-cap-microfarad = <15>; + cirrus,asp-sdout-hiz = <3>; + cirrus,gpio2-src-select = <2>; + cirrus,gpio2-output-enable; + #sound-dai-cells = <1>; + }; + + cs35l41_r: cs35l41@41 { + compatible = "cirrus,cs35l41"; + reg = <0x41>; + interrupt-parent = <&tlmm>; + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; + reset-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>; + cirrus,boost-peak-milliamp = <4000>; + cirrus,boost-ind-nanohenry = <1000>; + cirrus,boost-cap-microfarad = <15>; + cirrus,asp-sdout-hiz = <3>; + cirrus,gpio2-src-select = <2>; + cirrus,gpio2-output-enable; + #sound-dai-cells = <1>; + }; }; &i2c5 { --- a/arch/arm64/boot/dts/qcom/sm8350.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sm8350.dtsi @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -675,6 +676,28 @@ }; }; + gpi_dma2: dma-controller@800000 { + compatible = "qcom,sm8350-gpi-dma"; + reg = <0 0x00800000 0 0x60000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + ; + dma-channels = <12>; + dma-channel-mask = <0xff>; + iommus = <&apps_smmu 0x5f6 0x0>; + #dma-cells = <3>; + status = "disabled"; + }; + qupv3_id_2: geniqup@8c0000 { compatible = "qcom,geni-se-qup"; reg = <0x0 0x008c0000 0x0 0x6000>; @@ -695,6 +718,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c14_default>; interrupts = ; + dmas = <&gpi_dma2 0 0 QCOM_GPI_I2C>, + <&gpi_dma2 1 0 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -708,6 +734,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_120mhz>; + dmas = <&gpi_dma2 0 0 QCOM_GPI_SPI>, + <&gpi_dma2 1 0 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -721,6 +750,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c15_default>; interrupts = ; + dmas = <&gpi_dma2 0 1 QCOM_GPI_I2C>, + <&gpi_dma2 1 1 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -734,6 +766,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_120mhz>; + dmas = <&gpi_dma2 0 1 QCOM_GPI_SPI>, + <&gpi_dma2 1 1 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -747,6 +782,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c16_default>; interrupts = ; + dmas = <&gpi_dma2 0 2 QCOM_GPI_I2C>, + <&gpi_dma2 1 2 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -760,6 +798,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma2 0 2 QCOM_GPI_SPI>, + <&gpi_dma2 1 2 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -773,6 +814,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c17_default>; interrupts = ; + dmas = <&gpi_dma2 0 3 QCOM_GPI_I2C>, + <&gpi_dma2 1 3 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -786,6 +830,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma2 0 3 QCOM_GPI_SPI>, + <&gpi_dma2 1 3 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -801,6 +848,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma2 0 4 QCOM_GPI_SPI>, + <&gpi_dma2 1 4 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -827,6 +877,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c19_default>; interrupts = ; + dmas = <&gpi_dma2 0 5 QCOM_GPI_I2C>, + <&gpi_dma2 1 5 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -840,12 +893,37 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma2 0 5 QCOM_GPI_SPI>, + <&gpi_dma2 1 5 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; }; + gpi_dma0: dma-controller@900000 { + compatible = "qcom,sm8350-gpi-dma"; + reg = <0 0x09800000 0 0x60000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + ; + dma-channels = <12>; + dma-channel-mask = <0x7e>; + iommus = <&apps_smmu 0x5b6 0x0>; + #dma-cells = <3>; + status = "disabled"; + }; + qupv3_id_0: geniqup@9c0000 { compatible = "qcom,geni-se-qup"; reg = <0x0 0x009c0000 0x0 0x6000>; @@ -866,6 +944,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c0_default>; interrupts = ; + dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>, + <&gpi_dma0 1 0 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -879,6 +960,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>, + <&gpi_dma0 1 0 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -892,6 +976,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c1_default>; interrupts = ; + dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>, + <&gpi_dma0 1 1 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -905,6 +992,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>, + <&gpi_dma0 1 1 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -918,6 +1008,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c2_default>; interrupts = ; + dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>, + <&gpi_dma0 1 2 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -931,6 +1024,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>, + <&gpi_dma0 1 2 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -961,6 +1057,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>, + <&gpi_dma0 1 3 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -974,6 +1073,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c4_default>; interrupts = ; + dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>, + <&gpi_dma0 1 4 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -987,6 +1089,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>, + <&gpi_dma0 1 4 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1000,6 +1105,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c5_default>; interrupts = ; + dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>, + <&gpi_dma0 1 5 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1013,6 +1121,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>, + <&gpi_dma0 1 5 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1026,6 +1137,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c6_default>; interrupts = ; + dmas = <&gpi_dma0 0 6 QCOM_GPI_I2C>, + <&gpi_dma0 1 6 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1039,6 +1153,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma0 0 6 QCOM_GPI_SPI>, + <&gpi_dma0 1 6 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1065,6 +1182,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c7_default>; interrupts = ; + dmas = <&gpi_dma0 0 7 QCOM_GPI_I2C>, + <&gpi_dma0 1 7 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1078,12 +1198,37 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma0 0 7 QCOM_GPI_SPI>, + <&gpi_dma0 1 7 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; }; + gpi_dma1: dma-controller@a00000 { + compatible = "qcom,sm8350-gpi-dma"; + reg = <0 0x00a00000 0 0x60000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + ; + dma-channels = <12>; + dma-channel-mask = <0xff>; + iommus = <&apps_smmu 0x56 0x0>; + #dma-cells = <3>; + status = "disabled"; + }; + qupv3_id_1: geniqup@ac0000 { compatible = "qcom,geni-se-qup"; reg = <0x0 0x00ac0000 0x0 0x6000>; @@ -1104,6 +1249,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c8_default>; interrupts = ; + dmas = <&gpi_dma1 0 0 QCOM_GPI_I2C>, + <&gpi_dma1 1 0 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1117,6 +1265,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_120mhz>; + dmas = <&gpi_dma1 0 0 QCOM_GPI_SPI>, + <&gpi_dma1 1 0 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1130,6 +1281,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c9_default>; interrupts = ; + dmas = <&gpi_dma1 0 1 QCOM_GPI_I2C>, + <&gpi_dma1 1 1 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1143,6 +1297,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma1 0 1 QCOM_GPI_SPI>, + <&gpi_dma1 1 1 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1156,6 +1313,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c10_default>; interrupts = ; + dmas = <&gpi_dma1 0 2 QCOM_GPI_I2C>, + <&gpi_dma1 1 2 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1169,6 +1329,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma1 0 2 QCOM_GPI_SPI>, + <&gpi_dma1 1 2 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1182,6 +1345,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c11_default>; interrupts = ; + dmas = <&gpi_dma1 0 3 QCOM_GPI_I2C>, + <&gpi_dma1 1 3 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1195,6 +1361,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma1 0 3 QCOM_GPI_SPI>, + <&gpi_dma1 1 3 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1208,6 +1377,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c12_default>; interrupts = ; + dmas = <&gpi_dma1 0 4 QCOM_GPI_I2C>, + <&gpi_dma1 1 4 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1221,6 +1393,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma1 0 4 QCOM_GPI_SPI>, + <&gpi_dma1 1 4 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1234,6 +1409,9 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c13_default>; interrupts = ; + dmas = <&gpi_dma1 0 5 QCOM_GPI_I2C>, + <&gpi_dma1 1 5 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1247,6 +1425,9 @@ interrupts = ; power-domains = <&rpmhpd SM8350_CX>; operating-points-v2 = <&qup_opp_table_100mhz>; + dmas = <&gpi_dma1 0 5 QCOM_GPI_SPI>, + <&gpi_dma1 1 5 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -1881,7 +2062,7 @@ }; }; - apps_bcm_voter: bcm_voter { + apps_bcm_voter: bcm-voter { compatible = "qcom,bcm-voter"; }; }; @@ -1916,7 +2097,6 @@ iommus = <&apps_smmu 0xe0 0x0>; clock-names = - "ref_clk", "core_clk", "bus_aggr_clk", "iface_clk", @@ -1926,7 +2106,6 @@ "rx_lane0_sync_clk", "rx_lane1_sync_clk"; clocks = - <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_UFS_PHY_AXI_CLK>, <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>, <&gcc GCC_UFS_PHY_AHB_CLK>, @@ -1937,7 +2116,6 @@ <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>; freq-table-hz = <75000000 300000000>, - <75000000 300000000>, <0 0>, <0 0>, <75000000 300000000>, --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts @@ -213,6 +213,10 @@ firmware-name = "qcom/sm8350/cdsp.mbn"; }; +&gpi_dma1 { + status = "okay"; +}; + &mpss { status = "okay"; firmware-name = "qcom/sm8350/modem.mbn"; --- a/arch/arm64/boot/dts/qcom/sm8450.dtsi~linux-next +++ a/arch/arm64/boot/dts/qcom/sm8450.dtsi @@ -6,11 +6,13 @@ #include #include #include +#include #include #include #include #include #include +#include / { interrupt-parent = <&intc>; @@ -47,6 +49,7 @@ power-domains = <&CPU_PD0>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 0>; + #cooling-cells = <2>; L2_0: l2-cache { compatible = "cache"; next-level-cache = <&L3_0>; @@ -65,6 +68,7 @@ power-domains = <&CPU_PD1>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 0>; + #cooling-cells = <2>; L2_100: l2-cache { compatible = "cache"; next-level-cache = <&L3_0>; @@ -80,6 +84,7 @@ power-domains = <&CPU_PD2>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 0>; + #cooling-cells = <2>; L2_200: l2-cache { compatible = "cache"; next-level-cache = <&L3_0>; @@ -95,6 +100,7 @@ power-domains = <&CPU_PD3>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 0>; + #cooling-cells = <2>; L2_300: l2-cache { compatible = "cache"; next-level-cache = <&L3_0>; @@ -110,6 +116,7 @@ power-domains = <&CPU_PD4>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 1>; + #cooling-cells = <2>; L2_400: l2-cache { compatible = "cache"; next-level-cache = <&L3_0>; @@ -125,6 +132,7 @@ power-domains = <&CPU_PD5>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 1>; + #cooling-cells = <2>; L2_500: l2-cache { compatible = "cache"; next-level-cache = <&L3_0>; @@ -141,6 +149,7 @@ power-domains = <&CPU_PD6>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 1>; + #cooling-cells = <2>; L2_600: l2-cache { compatible = "cache"; next-level-cache = <&L3_0>; @@ -156,6 +165,7 @@ power-domains = <&CPU_PD7>; power-domain-names = "psci"; qcom,freq-domain = <&cpufreq_hw 2>; + #cooling-cells = <2>; L2_700: l2-cache { compatible = "cache"; next-level-cache = <&L3_0>; @@ -333,6 +343,25 @@ }; }; + qup_opp_table_100mhz: qup-100mhz-opp-table { + compatible = "operating-points-v2"; + + opp-50000000 { + opp-hz = /bits/ 64 <50000000>; + required-opps = <&rpmhpd_opp_min_svs>; + }; + + opp-75000000 { + opp-hz = /bits/ 64 <75000000>; + required-opps = <&rpmhpd_opp_low_svs>; + }; + + opp-100000000 { + opp-hz = /bits/ 64 <100000000>; + required-opps = <&rpmhpd_opp_svs>; + }; + }; + reserved_memory: reserved-memory { #address-cells = <2>; #size-cells = <2>; @@ -683,8 +712,351 @@ #clock-cells = <1>; #reset-cells = <1>; #power-domain-cells = <1>; - clock-names = "bi_tcxo", "sleep_clk"; - clocks = <&rpmhcc RPMH_CXO_CLK>, <&sleep_clk>; + clocks = <&rpmhcc RPMH_CXO_CLK>, + <&pcie0_lane>, + <&pcie1_lane>, + <&sleep_clk>; + clock-names = "bi_tcxo", + "pcie_0_pipe_clk", + "pcie_1_pipe_clk", + "sleep_clk"; + }; + + gpi_dma2: dma-controller@800000 { + compatible = "qcom,sm8450-gpi-dma"; + #dma-cells = <3>; + reg = <0 0x800000 0 0x60000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + ; + dma-channels = <12>; + dma-channel-mask = <0x7e>; + iommus = <&apps_smmu 0x496 0x0>; + status = "disabled"; + }; + + qupv3_id_2: geniqup@8c0000 { + compatible = "qcom,geni-se-qup"; + reg = <0x0 0x008c0000 0x0 0x2000>; + clock-names = "m-ahb", "s-ahb"; + clocks = <&gcc GCC_QUPV3_WRAP_2_M_AHB_CLK>, + <&gcc GCC_QUPV3_WRAP_2_S_AHB_CLK>; + iommus = <&apps_smmu 0x483 0x0>; + #address-cells = <2>; + #size-cells = <2>; + ranges; + status = "disabled"; + + i2c15: i2c@880000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00880000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c15_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma2 0 0 QCOM_GPI_I2C>, + <&gpi_dma2 1 0 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi15: spi@880000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00880000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi15_data_clk>, <&qup_spi15_cs>; + spi-max-frequency = <50000000>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>; + interconnect-names = "qup-core", "qup-config"; + dmas = <&gpi_dma2 0 0 QCOM_GPI_SPI>, + <&gpi_dma2 1 0 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c16: i2c@884000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00884000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c16_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma2 0 1 QCOM_GPI_I2C>, + <&gpi_dma2 1 1 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi16: spi@884000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00884000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi16_data_clk>, <&qup_spi16_cs>; + spi-max-frequency = <50000000>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>; + interconnect-names = "qup-core", "qup-config"; + dmas = <&gpi_dma2 0 1 QCOM_GPI_SPI>, + <&gpi_dma2 1 1 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c17: i2c@888000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00888000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c17_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma2 0 2 QCOM_GPI_I2C>, + <&gpi_dma2 1 2 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi17: spi@888000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00888000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi17_data_clk>, <&qup_spi17_cs>; + spi-max-frequency = <50000000>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>; + interconnect-names = "qup-core", "qup-config"; + dmas = <&gpi_dma2 0 2 QCOM_GPI_SPI>, + <&gpi_dma2 1 2 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c18: i2c@88c000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x0088c000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c18_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma2 0 3 QCOM_GPI_I2C>, + <&gpi_dma2 1 3 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi18: spi@88c000 { + compatible = "qcom,geni-spi"; + reg = <0 0x0088c000 0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi18_data_clk>, <&qup_spi18_cs>; + spi-max-frequency = <50000000>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>; + interconnect-names = "qup-core", "qup-config"; + dmas = <&gpi_dma2 0 3 QCOM_GPI_I2C>, + <&gpi_dma2 1 3 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c19: i2c@890000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00890000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c19_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma2 0 4 QCOM_GPI_I2C>, + <&gpi_dma2 1 4 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi19: spi@890000 { + compatible = "qcom,geni-spi"; + reg = <0 0x00890000 0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi19_data_clk>, <&qup_spi19_cs>; + spi-max-frequency = <50000000>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>; + interconnect-names = "qup-core", "qup-config"; + dmas = <&gpi_dma2 0 4 QCOM_GPI_I2C>, + <&gpi_dma2 1 4 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c20: i2c@894000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00894000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c20_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma2 0 5 QCOM_GPI_I2C>, + <&gpi_dma2 1 5 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi20: spi@894000 { + compatible = "qcom,geni-spi"; + reg = <0 0x00894000 0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi20_data_clk>, <&qup_spi20_cs>; + spi-max-frequency = <50000000>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>; + interconnect-names = "qup-core", "qup-config"; + dmas = <&gpi_dma2 0 5 QCOM_GPI_SPI>, + <&gpi_dma2 1 5 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c21: i2c@898000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00898000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S6_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c21_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma2 0 6 QCOM_GPI_I2C>, + <&gpi_dma2 1 6 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi21: spi@898000 { + compatible = "qcom,geni-spi"; + reg = <0 0x00898000 0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP2_S6_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi21_data_clk>, <&qup_spi21_cs>; + spi-max-frequency = <50000000>; + interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>; + interconnect-names = "qup-core", "qup-config"; + dmas = <&gpi_dma2 0 6 QCOM_GPI_SPI>, + <&gpi_dma2 1 6 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + }; + + gpi_dma0: dma-controller@900000 { + compatible = "qcom,sm8450-gpi-dma"; + #dma-cells = <3>; + reg = <0 0x900000 0 0x60000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + ; + dma-channels = <12>; + dma-channel-mask = <0x7e>; + iommus = <&apps_smmu 0x5b6 0x0>; + status = "disabled"; }; qupv3_id_0: geniqup@9c0000 { @@ -693,11 +1065,300 @@ clock-names = "m-ahb", "s-ahb"; clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>, <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>; + iommus = <&apps_smmu 0x5a3 0x0>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>; + interconnect-names = "qup-core"; #address-cells = <2>; #size-cells = <2>; ranges; status = "disabled"; + i2c0: i2c@980000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00980000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c0_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>, + <&gpi_dma0 1 0 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi0: spi@980000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00980000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi0_data_clk>, <&qup_spi0_cs>; + power-domains = <&rpmhpd SM8450_CX>; + operating-points-v2 = <&qup_opp_table_100mhz>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>, + <&gpi_dma0 1 0 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c1: i2c@984000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00984000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c1_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>, + <&gpi_dma0 1 1 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi1: spi@984000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00984000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi1_data_clk>, <&qup_spi1_cs>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>, + <&gpi_dma0 1 1 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c2: i2c@988000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00988000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c2_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>, + <&gpi_dma0 1 2 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi2: spi@988000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00988000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi2_data_clk>, <&qup_spi2_cs>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>, + <&gpi_dma0 1 2 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + + i2c3: i2c@98c000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x0098c000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c3_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>, + <&gpi_dma0 1 3 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi3: spi@98c000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x0098c000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi3_data_clk>, <&qup_spi3_cs>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>, + <&gpi_dma0 1 3 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c4: i2c@990000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00990000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c4_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>, + <&gpi_dma0 1 4 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi4: spi@990000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00990000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi4_data_clk>, <&qup_spi4_cs>; + power-domains = <&rpmhpd SM8450_CX>; + operating-points-v2 = <&qup_opp_table_100mhz>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>, + <&gpi_dma0 1 4 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c5: i2c@994000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00994000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c5_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>, + <&gpi_dma0 1 5 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi5: spi@994000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00994000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi5_data_clk>, <&qup_spi5_cs>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>, + <&gpi_dma0 1 5 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + + i2c6: i2c@998000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x998000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c6_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 6 QCOM_GPI_I2C>, + <&gpi_dma0 1 6 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi6: spi@998000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x998000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi6_data_clk>, <&qup_spi6_cs>; + interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma0 0 6 QCOM_GPI_SPI>, + <&gpi_dma0 1 6 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + uart7: serial@99c000 { compatible = "qcom,geni-debug-uart"; reg = <0 0x0099c000 0 0x4000>; @@ -712,17 +1373,242 @@ }; }; + gpi_dma1: dma-controller@a00000 { + compatible = "qcom,sm8450-gpi-dma"; + #dma-cells = <3>; + reg = <0 0xa00000 0 0x60000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + ; + dma-channels = <12>; + dma-channel-mask = <0x7e>; + iommus = <&apps_smmu 0x56 0x0>; + status = "disabled"; + }; + qupv3_id_1: geniqup@ac0000 { compatible = "qcom,geni-se-qup"; reg = <0x0 0x00ac0000 0x0 0x6000>; clock-names = "m-ahb", "s-ahb"; clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>, <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>; + iommus = <&apps_smmu 0x43 0x0>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>; + interconnect-names = "qup-core"; #address-cells = <2>; #size-cells = <2>; ranges; status = "disabled"; + i2c8: i2c@a80000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00a80000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c8_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 0 QCOM_GPI_I2C>, + <&gpi_dma1 1 0 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi8: spi@a80000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00a80000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi8_data_clk>, <&qup_spi8_cs>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 0 QCOM_GPI_SPI>, + <&gpi_dma1 1 0 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c9: i2c@a84000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00a84000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c9_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 1 QCOM_GPI_I2C>, + <&gpi_dma1 1 1 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi9: spi@a84000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00a84000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi9_data_clk>, <&qup_spi9_cs>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 1 QCOM_GPI_SPI>, + <&gpi_dma1 1 1 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c10: i2c@a88000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00a88000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c10_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 2 QCOM_GPI_I2C>, + <&gpi_dma1 1 2 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi10: spi@a88000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00a88000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi10_data_clk>, <&qup_spi10_cs>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 2 QCOM_GPI_SPI>, + <&gpi_dma1 1 2 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c11: i2c@a8c000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00a8c000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c11_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 3 QCOM_GPI_I2C>, + <&gpi_dma1 1 3 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi11: spi@a8c000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00a8c000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi11_data_clk>, <&qup_spi11_cs>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 3 QCOM_GPI_SPI>, + <&gpi_dma1 1 3 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c12: i2c@a90000 { + compatible = "qcom,geni-i2c"; + reg = <0x0 0x00a90000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>; + pinctrl-names = "default"; + pinctrl-0 = <&qup_i2c12_data_clk>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 4 QCOM_GPI_I2C>, + <&gpi_dma1 1 4 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + spi12: spi@a90000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00a90000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi12_data_clk>, <&qup_spi12_cs>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 4 QCOM_GPI_SPI>, + <&gpi_dma1 1 4 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + i2c13: i2c@a94000 { compatible = "qcom,geni-i2c"; reg = <0 0x00a94000 0 0x4000>; @@ -731,6 +1617,33 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c13_data_clk>; interrupts = ; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 5 QCOM_GPI_I2C>, + <&gpi_dma1 1 5 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + spi13: spi@a94000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00a94000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi13_data_clk>, <&qup_spi13_cs>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 5 QCOM_GPI_SPI>, + <&gpi_dma1 1 5 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -744,12 +1657,257 @@ pinctrl-names = "default"; pinctrl-0 = <&qup_i2c14_data_clk>; interrupts = ; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 6 QCOM_GPI_I2C>, + <&gpi_dma1 1 6 QCOM_GPI_I2C>; + dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + spi14: spi@a98000 { + compatible = "qcom,geni-spi"; + reg = <0x0 0x00a98000 0x0 0x4000>; + clock-names = "se"; + clocks = <&gcc GCC_QUPV3_WRAP1_S6_CLK>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&qup_spi14_data_clk>, <&qup_spi14_cs>; + interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>, + <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>, + <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "qup-core", "qup-config", "qup-memory"; + dmas = <&gpi_dma1 0 6 QCOM_GPI_SPI>, + <&gpi_dma1 1 6 QCOM_GPI_SPI>; + dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; }; + pcie0: pci@1c00000 { + compatible = "qcom,pcie-sm8450-pcie0"; + reg = <0 0x01c00000 0 0x3000>, + <0 0x60000000 0 0xf1d>, + <0 0x60000f20 0 0xa8>, + <0 0x60001000 0 0x1000>, + <0 0x60100000 0 0x100000>; + reg-names = "parf", "dbi", "elbi", "atu", "config"; + device_type = "pci"; + linux,pci-domain = <0>; + bus-range = <0x00 0xff>; + num-lanes = <1>; + + #address-cells = <3>; + #size-cells = <2>; + + ranges = <0x01000000 0x0 0x60200000 0 0x60200000 0x0 0x100000>, + <0x02000000 0x0 0x60300000 0 0x60300000 0x0 0x3d00000>; + + interrupts = ; + interrupt-names = "msi"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 0 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ + <0 0 0 2 &intc 0 0 0 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ + <0 0 0 3 &intc 0 0 0 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ + <0 0 0 4 &intc 0 0 0 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ + + clocks = <&gcc GCC_PCIE_0_PIPE_CLK>, + <&gcc GCC_PCIE_0_PIPE_CLK_SRC>, + <&pcie0_lane>, + <&rpmhcc RPMH_CXO_CLK>, + <&gcc GCC_PCIE_0_AUX_CLK>, + <&gcc GCC_PCIE_0_CFG_AHB_CLK>, + <&gcc GCC_PCIE_0_MSTR_AXI_CLK>, + <&gcc GCC_PCIE_0_SLV_AXI_CLK>, + <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>, + <&gcc GCC_DDRSS_PCIE_SF_TBU_CLK>, + <&gcc GCC_AGGRE_NOC_PCIE_0_AXI_CLK>, + <&gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>; + clock-names = "pipe", + "pipe_mux", + "phy_pipe", + "ref", + "aux", + "cfg", + "bus_master", + "bus_slave", + "slave_q2a", + "ddrss_sf_tbu", + "aggre0", + "aggre1"; + + iommus = <&apps_smmu 0x1c00 0x7f>; + iommu-map = <0x0 &apps_smmu 0x1c00 0x1>, + <0x100 &apps_smmu 0x1c01 0x1>; + + resets = <&gcc GCC_PCIE_0_BCR>; + reset-names = "pci"; + + power-domains = <&gcc PCIE_0_GDSC>; + power-domain-names = "gdsc"; + + phys = <&pcie0_lane>; + phy-names = "pciephy"; + + perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>; + wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&pcie0_default_state>; + + status = "disabled"; + }; + + pcie0_phy: phy@1c06000 { + compatible = "qcom,sm8450-qmp-gen3x1-pcie-phy"; + reg = <0 0x01c06000 0 0x200>; + #address-cells = <2>; + #size-cells = <2>; + ranges; + clocks = <&gcc GCC_PCIE_0_AUX_CLK>, + <&gcc GCC_PCIE_0_CFG_AHB_CLK>, + <&gcc GCC_PCIE_0_CLKREF_EN>, + <&gcc GCC_PCIE_0_PHY_RCHNG_CLK>; + clock-names = "aux", "cfg_ahb", "ref", "refgen"; + + resets = <&gcc GCC_PCIE_0_PHY_BCR>; + reset-names = "phy"; + + assigned-clocks = <&gcc GCC_PCIE_0_PHY_RCHNG_CLK>; + assigned-clock-rates = <100000000>; + + status = "disabled"; + + pcie0_lane: lanes@1c06200 { + reg = <0 0x1c06e00 0 0x200>, /* tx */ + <0 0x1c07000 0 0x200>, /* rx */ + <0 0x1c06200 0 0x200>, /* pcs */ + <0 0x1c06600 0 0x200>; /* pcs_pcie */ + clocks = <&gcc GCC_PCIE_0_PIPE_CLK>; + clock-names = "pipe0"; + + #clock-cells = <0>; + #phy-cells = <0>; + clock-output-names = "pcie_0_pipe_clk"; + }; + }; + + pcie1: pci@1c08000 { + compatible = "qcom,pcie-sm8450-pcie1"; + reg = <0 0x01c08000 0 0x3000>, + <0 0x40000000 0 0xf1d>, + <0 0x40000f20 0 0xa8>, + <0 0x40001000 0 0x1000>, + <0 0x40100000 0 0x100000>; + reg-names = "parf", "dbi", "elbi", "atu", "config"; + device_type = "pci"; + linux,pci-domain = <1>; + bus-range = <0x00 0xff>; + num-lanes = <2>; + + #address-cells = <3>; + #size-cells = <2>; + + ranges = <0x01000000 0x0 0x40200000 0 0x40200000 0x0 0x100000>, + <0x02000000 0x0 0x40300000 0 0x40300000 0x0 0x1fd00000>; + + interrupts = ; + interrupt-names = "msi"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 0 0 434 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ + <0 0 0 2 &intc 0 0 0 435 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ + <0 0 0 3 &intc 0 0 0 438 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ + <0 0 0 4 &intc 0 0 0 439 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ + + clocks = <&gcc GCC_PCIE_1_PIPE_CLK>, + <&gcc GCC_PCIE_1_PIPE_CLK_SRC>, + <&pcie1_lane>, + <&rpmhcc RPMH_CXO_CLK>, + <&gcc GCC_PCIE_1_AUX_CLK>, + <&gcc GCC_PCIE_1_CFG_AHB_CLK>, + <&gcc GCC_PCIE_1_MSTR_AXI_CLK>, + <&gcc GCC_PCIE_1_SLV_AXI_CLK>, + <&gcc GCC_PCIE_1_SLV_Q2A_AXI_CLK>, + <&gcc GCC_DDRSS_PCIE_SF_TBU_CLK>, + <&gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>; + clock-names = "pipe", + "pipe_mux", + "phy_pipe", + "ref", + "aux", + "cfg", + "bus_master", + "bus_slave", + "slave_q2a", + "ddrss_sf_tbu", + "aggre1"; + + iommus = <&apps_smmu 0x1c80 0x7f>; + iommu-map = <0x0 &apps_smmu 0x1c80 0x1>, + <0x100 &apps_smmu 0x1c81 0x1>; + + resets = <&gcc GCC_PCIE_1_BCR>; + reset-names = "pci"; + + power-domains = <&gcc PCIE_1_GDSC>; + power-domain-names = "gdsc"; + + phys = <&pcie1_lane>; + phy-names = "pciephy"; + + perst-gpio = <&tlmm 97 GPIO_ACTIVE_LOW>; + enable-gpio = <&tlmm 99 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&pcie1_default_state>; + + status = "disabled"; + }; + + pcie1_phy: phy@1c0f000 { + compatible = "qcom,sm8450-qmp-gen4x2-pcie-phy"; + reg = <0 0x01c0f000 0 0x200>; + #address-cells = <2>; + #size-cells = <2>; + ranges; + clocks = <&gcc GCC_PCIE_1_PHY_AUX_CLK>, + <&gcc GCC_PCIE_1_CFG_AHB_CLK>, + <&gcc GCC_PCIE_1_CLKREF_EN>, + <&gcc GCC_PCIE_1_PHY_RCHNG_CLK>; + clock-names = "aux", "cfg_ahb", "ref", "refgen"; + + resets = <&gcc GCC_PCIE_1_PHY_BCR>; + reset-names = "phy"; + + assigned-clocks = <&gcc GCC_PCIE_1_PHY_RCHNG_CLK>; + assigned-clock-rates = <100000000>; + + status = "disabled"; + + pcie1_lane: lanes@1c0e000 { + reg = <0 0x1c0e000 0 0x200>, /* tx */ + <0 0x1c0e200 0 0x300>, /* rx */ + <0 0x1c0f200 0 0x200>, /* pcs */ + <0 0x1c0e800 0 0x200>, /* tx */ + <0 0x1c0ea00 0 0x300>, /* rx */ + <0 0x1c0f400 0 0xc00>; /* pcs_pcie */ + clocks = <&gcc GCC_PCIE_1_PIPE_CLK>; + clock-names = "pipe0"; + + #clock-cells = <0>; + #phy-cells = <0>; + clock-output-names = "pcie_1_pipe_clk"; + }; + }; + config_noc: interconnect@1500000 { compatible = "qcom,sm8450-config-noc"; reg = <0 0x01500000 0 0x1c000>; @@ -887,6 +2045,33 @@ label = "slpi"; qcom,remote-pid = <3>; + + fastrpc { + compatible = "qcom,fastrpc"; + qcom,glink-channels = "fastrpcglink-apps-dsp"; + label = "sdsp"; + #address-cells = <1>; + #size-cells = <0>; + + compute-cb@1 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <1>; + iommus = <&apps_smmu 0x0541 0x0>; + }; + + compute-cb@2 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <2>; + iommus = <&apps_smmu 0x0542 0x0>; + }; + + compute-cb@3 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <3>; + iommus = <&apps_smmu 0x0543 0x0>; + /* note: shared-cb = <4> in downstream */ + }; + }; }; }; @@ -927,6 +2112,32 @@ label = "lpass"; qcom,remote-pid = <2>; + + fastrpc { + compatible = "qcom,fastrpc"; + qcom,glink-channels = "fastrpcglink-apps-dsp"; + label = "adsp"; + #address-cells = <1>; + #size-cells = <0>; + + compute-cb@3 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <3>; + iommus = <&apps_smmu 0x1803 0x0>; + }; + + compute-cb@4 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <4>; + iommus = <&apps_smmu 0x1804 0x0>; + }; + + compute-cb@5 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <5>; + iommus = <&apps_smmu 0x1805 0x0>; + }; + }; }; }; @@ -967,6 +2178,72 @@ label = "cdsp"; qcom,remote-pid = <5>; + + fastrpc { + compatible = "qcom,fastrpc"; + qcom,glink-channels = "fastrpcglink-apps-dsp"; + label = "cdsp"; + #address-cells = <1>; + #size-cells = <0>; + + compute-cb@1 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <1>; + iommus = <&apps_smmu 0x2161 0x0400>, + <&apps_smmu 0x1021 0x1420>; + }; + + compute-cb@2 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <2>; + iommus = <&apps_smmu 0x2162 0x0400>, + <&apps_smmu 0x1022 0x1420>; + }; + + compute-cb@3 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <3>; + iommus = <&apps_smmu 0x2163 0x0400>, + <&apps_smmu 0x1023 0x1420>; + }; + + compute-cb@4 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <4>; + iommus = <&apps_smmu 0x2164 0x0400>, + <&apps_smmu 0x1024 0x1420>; + }; + + compute-cb@5 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <5>; + iommus = <&apps_smmu 0x2165 0x0400>, + <&apps_smmu 0x1025 0x1420>; + }; + + compute-cb@6 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <6>; + iommus = <&apps_smmu 0x2166 0x0400>, + <&apps_smmu 0x1026 0x1420>; + }; + + compute-cb@7 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <7>; + iommus = <&apps_smmu 0x2167 0x0400>, + <&apps_smmu 0x1027 0x1420>; + }; + + compute-cb@8 { + compatible = "qcom,fastrpc-compute-cb"; + reg = <8>; + iommus = <&apps_smmu 0x2168 0x0400>, + <&apps_smmu 0x1028 0x1420>; + }; + + /* note: secure cb9 in downstream */ + }; }; }; @@ -1021,6 +2298,28 @@ interrupt-controller; }; + tsens0: thermal-sensor@c263000 { + compatible = "qcom,sm8450-tsens", "qcom,tsens-v2"; + reg = <0 0x0c263000 0 0x1000>, /* TM */ + <0 0x0c222000 0 0x1000>; /* SROT */ + #qcom,sensors = <16>; + interrupts = , + ; + interrupt-names = "uplow", "critical"; + #thermal-sensor-cells = <1>; + }; + + tsens1: thermal-sensor@c265000 { + compatible = "qcom,sm8450-tsens", "qcom,tsens-v2"; + reg = <0 0x0c265000 0 0x1000>, /* TM */ + <0 0x0c223000 0 0x1000>; /* SROT */ + #qcom,sensors = <16>; + interrupts = , + ; + interrupt-names = "uplow", "critical"; + #thermal-sensor-cells = <1>; + }; + aoss_qmp: power-controller@c300000 { compatible = "qcom,sm8450-aoss-qmp", "qcom,aoss-qmp"; reg = <0 0x0c300000 0 0x400>; @@ -1051,6 +2350,112 @@ gpio-ranges = <&tlmm 0 0 211>; wakeup-parent = <&pdc>; + pcie0_default_state: pcie0-default-state { + perst { + pins = "gpio94"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + clkreq { + pins = "gpio95"; + function = "pcie0_clkreqn"; + drive-strength = <2>; + bias-pull-up; + }; + + wake { + pins = "gpio96"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + pcie1_default_state: pcie1-default-state { + perst { + pins = "gpio97"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + clkreq { + pins = "gpio98"; + function = "pcie1_clkreqn"; + drive-strength = <2>; + bias-pull-up; + }; + + wake { + pins = "gpio99"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + qup_i2c0_data_clk: qup-i2c0-data-clk { + pins = "gpio0", "gpio1"; + function = "qup0"; + }; + + qup_i2c1_data_clk: qup-i2c1-data-clk { + pins = "gpio4", "gpio5"; + function = "qup1"; + }; + + qup_i2c2_data_clk: qup-i2c2-data-clk { + pins = "gpio8", "gpio9"; + function = "qup2"; + }; + + qup_i2c3_data_clk: qup-i2c3-data-clk { + pins = "gpio12", "gpio13"; + function = "qup3"; + }; + + qup_i2c4_data_clk: qup-i2c4-data-clk { + pins = "gpio16", "gpio17"; + function = "qup4"; + }; + + qup_i2c5_data_clk: qup-i2c5-data-clk { + pins = "gpio206", "gpio207"; + function = "qup5"; + }; + + qup_i2c6_data_clk: qup-i2c6-data-clk { + pins = "gpio20", "gpio21"; + function = "qup6"; + }; + + qup_i2c8_data_clk: qup-i2c8-data-clk { + pins = "gpio28", "gpio29"; + function = "qup8"; + }; + + qup_i2c9_data_clk: qup-i2c9-data-clk { + pins = "gpio32", "gpio33"; + function = "qup9"; + }; + + qup_i2c10_data_clk: qup-i2c10-data-clk { + pins = "gpio36", "gpio37"; + function = "qup10"; + }; + + qup_i2c11_data_clk: qup-i2c11-data-clk { + pins = "gpio40", "gpio41"; + function = "qup11"; + }; + + qup_i2c12_data_clk: qup-i2c12-data-clk { + pins = "gpio44", "gpio45"; + function = "qup12"; + }; + qup_i2c13_data_clk: qup-i2c13-data-clk { pins = "gpio48", "gpio49"; function = "qup13"; @@ -1065,6 +2470,261 @@ bias-pull-up; }; + qup_i2c15_data_clk: qup-i2c15-data-clk { + pins = "gpio56", "gpio57"; + function = "qup15"; + }; + + qup_i2c16_data_clk: qup-i2c16-data-clk { + pins = "gpio60", "gpio61"; + function = "qup16"; + }; + + qup_i2c17_data_clk: qup-i2c17-data-clk { + pins = "gpio64", "gpio65"; + function = "qup17"; + }; + + qup_i2c18_data_clk: qup-i2c18-data-clk { + pins = "gpio68", "gpio69"; + function = "qup18"; + }; + + qup_i2c19_data_clk: qup-i2c19-data-clk { + pins = "gpio72", "gpio73"; + function = "qup19"; + }; + + qup_i2c20_data_clk: qup-i2c20-data-clk { + pins = "gpio76", "gpio77"; + function = "qup20"; + }; + + qup_i2c21_data_clk: qup-i2c21-data-clk { + pins = "gpio80", "gpio81"; + function = "qup21"; + }; + + qup_spi0_cs: qup-spi0-cs { + pins = "gpio3"; + function = "qup0"; + }; + + qup_spi0_data_clk: qup-spi0-data-clk { + pins = "gpio0", "gpio1", "gpio2"; + function = "qup0"; + }; + + qup_spi1_cs: qup-spi1-cs { + pins = "gpio7"; + function = "qup1"; + }; + + qup_spi1_data_clk: qup-spi1-data-clk { + pins = "gpio4", "gpio5", "gpio6"; + function = "qup1"; + }; + + qup_spi2_cs: qup-spi2-cs { + pins = "gpio11"; + function = "qup2"; + }; + + qup_spi2_data_clk: qup-spi2-data-clk { + pins = "gpio8", "gpio9", "gpio10"; + function = "qup2"; + }; + + qup_spi3_cs: qup-spi3-cs { + pins = "gpio15"; + function = "qup3"; + }; + + qup_spi3_data_clk: qup-spi3-data-clk { + pins = "gpio12", "gpio13", "gpio14"; + function = "qup3"; + }; + + qup_spi4_cs: qup-spi4-cs { + pins = "gpio19"; + function = "qup4"; + drive-strength = <6>; + bias-disable; + }; + + qup_spi4_data_clk: qup-spi4-data-clk { + pins = "gpio16", "gpio17", "gpio18"; + function = "qup4"; + }; + + qup_spi5_cs: qup-spi5-cs { + pins = "gpio85"; + function = "qup5"; + }; + + qup_spi5_data_clk: qup-spi5-data-clk { + pins = "gpio206", "gpio207", "gpio84"; + function = "qup5"; + }; + + qup_spi6_cs: qup-spi6-cs { + pins = "gpio23"; + function = "qup6"; + }; + + qup_spi6_data_clk: qup-spi6-data-clk { + pins = "gpio20", "gpio21", "gpio22"; + function = "qup6"; + }; + + qup_spi8_cs: qup-spi8-cs { + pins = "gpio31"; + function = "qup8"; + }; + + qup_spi8_data_clk: qup-spi8-data-clk { + pins = "gpio28", "gpio29", "gpio30"; + function = "qup8"; + }; + + qup_spi9_cs: qup-spi9-cs { + pins = "gpio35"; + function = "qup9"; + }; + + qup_spi9_data_clk: qup-spi9-data-clk { + pins = "gpio32", "gpio33", "gpio34"; + function = "qup9"; + }; + + qup_spi10_cs: qup-spi10-cs { + pins = "gpio39"; + function = "qup10"; + }; + + qup_spi10_data_clk: qup-spi10-data-clk { + pins = "gpio36", "gpio37", "gpio38"; + function = "qup10"; + }; + + qup_spi11_cs: qup-spi11-cs { + pins = "gpio43"; + function = "qup11"; + }; + + qup_spi11_data_clk: qup-spi11-data-clk { + pins = "gpio40", "gpio41", "gpio42"; + function = "qup11"; + }; + + qup_spi12_cs: qup-spi12-cs { + pins = "gpio47"; + function = "qup12"; + }; + + qup_spi12_data_clk: qup-spi12-data-clk { + pins = "gpio44", "gpio45", "gpio46"; + function = "qup12"; + }; + + qup_spi13_cs: qup-spi13-cs { + pins = "gpio51"; + function = "qup13"; + }; + + qup_spi13_data_clk: qup-spi13-data-clk { + pins = "gpio48", "gpio49", "gpio50"; + function = "qup13"; + }; + + qup_spi14_cs: qup-spi14-cs { + pins = "gpio55"; + function = "qup14"; + }; + + qup_spi14_data_clk: qup-spi14-data-clk { + pins = "gpio52", "gpio53", "gpio54"; + function = "qup14"; + }; + + qup_spi15_cs: qup-spi15-cs { + pins = "gpio59"; + function = "qup15"; + }; + + qup_spi15_data_clk: qup-spi15-data-clk { + pins = "gpio56", "gpio57", "gpio58"; + function = "qup15"; + }; + + qup_spi16_cs: qup-spi16-cs { + pins = "gpio63"; + function = "qup16"; + }; + + qup_spi16_data_clk: qup-spi16-data-clk { + pins = "gpio60", "gpio61", "gpio62"; + function = "qup16"; + }; + + qup_spi17_cs: qup-spi17-cs { + pins = "gpio67"; + function = "qup17"; + }; + + qup_spi17_data_clk: qup-spi17-data-clk { + pins = "gpio64", "gpio65", "gpio66"; + function = "qup17"; + }; + + qup_spi18_cs: qup-spi18-cs { + pins = "gpio71"; + function = "qup18"; + drive-strength = <6>; + bias-disable; + }; + + qup_spi18_data_clk: qup-spi18-data-clk { + pins = "gpio68", "gpio69", "gpio70"; + function = "qup18"; + drive-strength = <6>; + bias-disable; + }; + + qup_spi19_cs: qup-spi19-cs { + pins = "gpio75"; + function = "qup19"; + drive-strength = <6>; + bias-disable; + }; + + qup_spi19_data_clk: qup-spi19-data-clk { + pins = "gpio72", "gpio73", "gpio74"; + function = "qup19"; + drive-strength = <6>; + bias-disable; + }; + + qup_spi20_cs: qup-spi20-cs { + pins = "gpio79"; + function = "qup20"; + }; + + qup_spi20_data_clk: qup-spi20-data-clk { + pins = "gpio76", "gpio77", "gpio78"; + function = "qup20"; + }; + + qup_spi21_cs: qup-spi21-cs { + pins = "gpio83"; + function = "qup21"; + }; + + qup_spi21_data_clk: qup-spi21-data-clk { + pins = "gpio80", "gpio81", "gpio82"; + function = "qup21"; + }; + qup_uart7_rx: qup-uart7-rx { pins = "gpio26"; function = "qup7"; @@ -1425,7 +3085,7 @@ reset-names = "ufsphy"; status = "disabled"; - ufs_mem_phy_lanes: lanes@1d87400 { + ufs_mem_phy_lanes: phy@1d87400 { reg = <0 0x01d87400 0 0x108>, <0 0x01d87600 0 0x1e0>, <0 0x01d87c00 0 0x1dc>, @@ -1495,6 +3155,840 @@ }; }; + thermal-zones { + aoss0-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 0>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + cpuss0-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 1>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + cpuss1-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 2>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + cpuss3-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 3>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + cpuss4-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 4>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + cpu4-top-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 5>; + + trips { + cpu4_top_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu4_top_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu4_top_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + cpu4-bottom-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 6>; + + trips { + cpu4_bottom_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu4_bottom_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu4_bottom_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + cpu5-top-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 7>; + + trips { + cpu5_top_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu5_top_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu5_top_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + cpu5-bottom-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 8>; + + trips { + cpu5_bottom_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu5_bottom_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu5_bottom_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + cpu6-top-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 9>; + + trips { + cpu6_top_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu6_top_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu6_top_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + cpu6-bottom-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 10>; + + trips { + cpu6_bottom_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu6_bottom_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu6_bottom_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + cpu7-top-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 11>; + + trips { + cpu7_top_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu7_top_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu7_top_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + cpu7-middle-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 12>; + + trips { + cpu7_middle_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu7_middle_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu7_middle_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + cpu7-bottom-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens0 13>; + + trips { + cpu7_bottom_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu7_bottom_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu7_bottom_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + gpu-top-thermal { + polling-delay-passive = <10>; + polling-delay = <0>; + thermal-sensors = <&tsens0 14>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + thermal-hal-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + + gpu0_tj_cfg: tj_cfg { + temperature = <95000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + gpu-bottom-thermal { + polling-delay-passive = <10>; + polling-delay = <0>; + thermal-sensors = <&tsens0 15>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + thermal-hal-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + + gpu1_tj_cfg: tj_cfg { + temperature = <95000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + aoss1-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens1 0>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + cpu0-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens1 1>; + + trips { + cpu0_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu0_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu0_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + cpu1-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens1 2>; + + trips { + cpu1_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu1_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu1_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + cpu2-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens1 3>; + + trips { + cpu2_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu2_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu2_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + cpu3-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens1 4>; + + trips { + cpu3_alert0: trip-point0 { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu3_alert1: trip-point1 { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu3_crit: cpu_crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; + + cdsp0-thermal { + polling-delay-passive = <10>; + polling-delay = <0>; + thermal-sensors = <&tsens1 5>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + thermal-hal-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + + cdsp_0_config: junction-config { + temperature = <95000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + cdsp1-thermal { + polling-delay-passive = <10>; + polling-delay = <0>; + thermal-sensors = <&tsens1 6>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + thermal-hal-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + + cdsp_1_config: junction-config { + temperature = <95000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + cdsp2-thermal { + polling-delay-passive = <10>; + polling-delay = <0>; + thermal-sensors = <&tsens1 7>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + thermal-hal-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + + cdsp_2_config: junction-config { + temperature = <95000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + video-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens1 8>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + mem-thermal { + polling-delay-passive = <10>; + polling-delay = <0>; + thermal-sensors = <&tsens1 9>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + ddr_config0: ddr0-config { + temperature = <90000>; + hysteresis = <5000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + modem0-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens1 10>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + mdmss0_config0: mdmss0-config0 { + temperature = <102000>; + hysteresis = <3000>; + type = "passive"; + }; + + mdmss0_config1: mdmss0-config1 { + temperature = <105000>; + hysteresis = <3000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + modem1-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens1 11>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + mdmss1_config0: mdmss1-config0 { + temperature = <102000>; + hysteresis = <3000>; + type = "passive"; + }; + + mdmss1_config1: mdmss1-config1 { + temperature = <105000>; + hysteresis = <3000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + modem2-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens1 12>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + mdmss2_config0: mdmss2-config0 { + temperature = <102000>; + hysteresis = <3000>; + type = "passive"; + }; + + mdmss2_config1: mdmss2-config1 { + temperature = <105000>; + hysteresis = <3000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + modem3-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens1 13>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + mdmss3_config0: mdmss3-config0 { + temperature = <102000>; + hysteresis = <3000>; + type = "passive"; + }; + + mdmss3_config1: mdmss3-config1 { + temperature = <105000>; + hysteresis = <3000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + camera0-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens1 14>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + + camera1-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&tsens1 15>; + + trips { + thermal-engine-config { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + reset-mon-cfg { + temperature = <115000>; + hysteresis = <5000>; + type = "passive"; + }; + }; + }; + }; + timer { compatible = "arm,armv8-timer"; interrupts = , --- a/arch/arm64/boot/dts/qcom/sm8450-hdk.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sm8450-hdk.dts @@ -349,6 +349,47 @@ }; }; +&pcie0 { + status = "okay"; + max-link-speed = <2>; +}; + +&pcie0_phy { + status = "okay"; + vdda-phy-supply = <&vreg_l5b_0p88>; + vdda-pll-supply = <&vreg_l6b_1p2>; +}; + +&pcie1 { + status = "okay"; +}; + +&pcie1_phy { + status = "okay"; + vdda-phy-supply = <&vreg_l2h_0p91>; + vdda-pll-supply = <&vreg_l6b_1p2>; +}; + +&remoteproc_adsp { + status = "okay"; + firmware-name = "qcom/sm8450/adsp.mbn"; +}; + +&remoteproc_cdsp { + status = "okay"; + firmware-name = "qcom/sm8450/cdsp.mbn"; +}; + +&remoteproc_mpss { + status = "okay"; + firmware-name = "qcom/sm8450/modem.mbn"; +}; + +&remoteproc_slpi { + status = "okay"; + firmware-name = "qcom/sm8450/slpi.mbn"; +}; + &qupv3_id_0 { status = "okay"; }; --- a/arch/arm64/boot/dts/qcom/sm8450-qrd.dts~linux-next +++ a/arch/arm64/boot/dts/qcom/sm8450-qrd.dts @@ -342,10 +342,32 @@ }; }; +&pcie0 { + status = "okay"; +}; + +&pcie0_phy { + status = "okay"; + vdda-phy-supply = <&vreg_l5b_0p88>; + vdda-pll-supply = <&vreg_l6b_1p2>; +}; + +&gpi_dma0 { + status = "okay"; +}; + +&i2c5 { + status = "okay"; +}; + &qupv3_id_0 { status = "okay"; }; +&qupv3_id_2 { + status = "okay"; +}; + &remoteproc_adsp { status = "okay"; firmware-name = "qcom/sm8450/adsp.mbn"; @@ -366,6 +388,18 @@ firmware-name = "qcom/sm8450/slpi.mbn"; }; +&spi4 { + status = "okay"; +}; + +&spi18 { + status = "okay"; +}; + +&spi19 { + status = "okay"; +}; + &tlmm { gpio-reserved-ranges = <28 4>, <36 4>; }; --- a/arch/arm64/boot/dts/renesas/draak.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/draak.dtsi @@ -541,6 +541,12 @@ function = "pwm1"; }; + rpc_pins: rpc { + groups = "rpc_clk2", "rpc_ctrl", "rpc_data", "rpc_reset", + "rpc_int"; + function = "rpc"; + }; + scif2_pins: scif2 { groups = "scif2_data"; function = "scif2"; @@ -628,6 +634,58 @@ }; }; }; +}; + +&rpc { + pinctrl-0 = <&rpc_pins>; + pinctrl-names = "default"; + + /* Left disabled. To be enabled by firmware when unlocked. */ + + flash@0 { + compatible = "cypress,hyperflash", "cfi-flash"; + reg = <0>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + bootparam@0 { + reg = <0x00000000 0x040000>; + read-only; + }; + bl2@40000 { + reg = <0x00040000 0x140000>; + read-only; + }; + cert_header_sa6@180000 { + reg = <0x00180000 0x040000>; + read-only; + }; + bl31@1c0000 { + reg = <0x001c0000 0x040000>; + read-only; + }; + tee@200000 { + reg = <0x00200000 0x440000>; + read-only; + }; + uboot@640000 { + reg = <0x00640000 0x100000>; + read-only; + }; + dtb@740000 { + reg = <0x00740000 0x080000>; + }; + kernel@7c0000 { + reg = <0x007c0000 0x1400000>; + }; + user@1bc0000 { + reg = <0x01bc0000 0x2440000>; + }; + }; + }; }; &rwdt { --- a/arch/arm64/boot/dts/renesas/ebisu.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/ebisu.dtsi @@ -600,6 +600,12 @@ function = "pwm5"; }; + rpc_pins: rpc { + groups = "rpc_clk2", "rpc_ctrl", "rpc_data", "rpc_reset", + "rpc_int"; + function = "rpc"; + }; + scif2_pins: scif2 { groups = "scif2_data_a"; function = "scif2"; @@ -711,6 +717,58 @@ }; +&rpc { + pinctrl-0 = <&rpc_pins>; + pinctrl-names = "default"; + + /* Left disabled. To be enabled by firmware when unlocked. */ + + flash@0 { + compatible = "cypress,hyperflash", "cfi-flash"; + reg = <0>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + bootparam@0 { + reg = <0x00000000 0x040000>; + read-only; + }; + bl2@40000 { + reg = <0x00040000 0x140000>; + read-only; + }; + cert_header_sa6@180000 { + reg = <0x00180000 0x040000>; + read-only; + }; + bl31@1c0000 { + reg = <0x001c0000 0x040000>; + read-only; + }; + tee@200000 { + reg = <0x00200000 0x440000>; + read-only; + }; + uboot@640000 { + reg = <0x00640000 0x100000>; + read-only; + }; + dtb@740000 { + reg = <0x00740000 0x080000>; + }; + kernel@7c0000 { + reg = <0x007c0000 0x1400000>; + }; + user@1bc0000 { + reg = <0x01bc0000 0x2440000>; + }; + }; + }; +}; + &rwdt { timeout-sec = <60>; status = "okay"; --- a/arch/arm64/boot/dts/renesas/Makefile~linux-next +++ a/arch/arm64/boot/dts/renesas/Makefile @@ -75,6 +75,8 @@ dtb-$(CONFIG_ARCH_R8A77961) += r8a779m3- dtb-$(CONFIG_ARCH_R8A77965) += r8a779m5-salvator-xs.dtb +dtb-$(CONFIG_ARCH_R9A07G043) += r9a07g043u11-smarc.dtb + dtb-$(CONFIG_ARCH_R9A07G044) += r9a07g044c2-smarc.dtb dtb-$(CONFIG_ARCH_R9A07G044) += r9a07g044l2-smarc.dtb --- a/arch/arm64/boot/dts/renesas/r8a774a1.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a774a1.dtsi @@ -283,6 +283,7 @@ compatible = "renesas,r8a774a1-wdt", "renesas,rcar-gen3-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 402>; power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>; resets = <&cpg 402>; --- a/arch/arm64/boot/dts/renesas/r8a774b1.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a774b1.dtsi @@ -156,6 +156,7 @@ compatible = "renesas,r8a774b1-wdt", "renesas,rcar-gen3-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 402>; power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>; resets = <&cpg 402>; --- a/arch/arm64/boot/dts/renesas/r8a774c0.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a774c0.dtsi @@ -145,6 +145,7 @@ compatible = "renesas,r8a774c0-wdt", "renesas,rcar-gen3-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 402>; power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>; resets = <&cpg 402>; --- a/arch/arm64/boot/dts/renesas/r8a77951.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a77951.dtsi @@ -369,6 +369,7 @@ rwdt: watchdog@e6020000 { compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 402>; power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; resets = <&cpg 402>; @@ -2731,6 +2732,22 @@ status = "disabled"; }; + rpc: spi@ee200000 { + compatible = "renesas,r8a7795-rpc-if", + "renesas,rcar-gen3-rpc-if"; + reg = <0 0xee200000 0 0x200>, + <0 0x08000000 0 0x04000000>, + <0 0xee208000 0 0x100>; + reg-names = "regs", "dirmap", "wbuf"; + interrupts = ; + clocks = <&cpg CPG_MOD 917>; + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; + resets = <&cpg 917>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + sata: sata@ee300000 { compatible = "renesas,sata-r8a7795", "renesas,rcar-gen3-sata"; --- a/arch/arm64/boot/dts/renesas/r8a77960.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a77960.dtsi @@ -334,6 +334,7 @@ compatible = "renesas,r8a7796-wdt", "renesas,rcar-gen3-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 402>; power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; resets = <&cpg 402>; @@ -2531,6 +2532,22 @@ status = "disabled"; }; + rpc: spi@ee200000 { + compatible = "renesas,r8a7796-rpc-if", + "renesas,rcar-gen3-rpc-if"; + reg = <0 0xee200000 0 0x200>, + <0 0x08000000 0 0x04000000>, + <0 0xee208000 0 0x100>; + reg-names = "regs", "dirmap", "wbuf"; + interrupts = ; + clocks = <&cpg CPG_MOD 917>; + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; + resets = <&cpg 917>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + gic: interrupt-controller@f1010000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; --- a/arch/arm64/boot/dts/renesas/r8a77961.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a77961.dtsi @@ -323,6 +323,7 @@ compatible = "renesas,r8a77961-wdt", "renesas,rcar-gen3-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 402>; power-domains = <&sysc R8A77961_PD_ALWAYS_ON>; resets = <&cpg 402>; @@ -1222,6 +1223,31 @@ status = "disabled"; }; + canfd: can@e66c0000 { + compatible = "renesas,r8a77961-canfd", + "renesas,rcar-gen3-canfd"; + reg = <0 0xe66c0000 0 0x8000>; + interrupts = , + ; + clocks = <&cpg CPG_MOD 914>, + <&cpg CPG_CORE R8A77961_CLK_CANFD>, + <&can_clk>; + clock-names = "fck", "canfd", "can_clk"; + assigned-clocks = <&cpg CPG_CORE R8A77961_CLK_CANFD>; + assigned-clock-rates = <40000000>; + power-domains = <&sysc R8A77961_PD_ALWAYS_ON>; + resets = <&cpg 914>; + status = "disabled"; + + channel0 { + status = "disabled"; + }; + + channel1 { + status = "disabled"; + }; + }; + pwm0: pwm@e6e30000 { compatible = "renesas,pwm-r8a77961", "renesas,pwm-rcar"; reg = <0 0xe6e30000 0 8>; @@ -2375,6 +2401,22 @@ status = "disabled"; }; + rpc: spi@ee200000 { + compatible = "renesas,r8a77961-rpc-if", + "renesas,rcar-gen3-rpc-if"; + reg = <0 0xee200000 0 0x200>, + <0 0x08000000 0 0x04000000>, + <0 0xee208000 0 0x100>; + reg-names = "regs", "dirmap", "wbuf"; + interrupts = ; + clocks = <&cpg CPG_MOD 917>; + power-domains = <&sysc R8A77961_PD_ALWAYS_ON>; + resets = <&cpg 917>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + gic: interrupt-controller@f1010000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; --- a/arch/arm64/boot/dts/renesas/r8a77965.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a77965.dtsi @@ -205,6 +205,7 @@ compatible = "renesas,r8a77965-wdt", "renesas,rcar-gen3-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 402>; power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; resets = <&cpg 402>; @@ -2378,6 +2379,22 @@ status = "disabled"; }; + rpc: spi@ee200000 { + compatible = "renesas,r8a77965-rpc-if", + "renesas,rcar-gen3-rpc-if"; + reg = <0 0xee200000 0 0x200>, + <0 0x08000000 0 0x04000000>, + <0 0xee208000 0 0x100>; + reg-names = "regs", "dirmap", "wbuf"; + interrupts = ; + clocks = <&cpg CPG_MOD 917>; + power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; + resets = <&cpg 917>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + sata: sata@ee300000 { compatible = "renesas,sata-r8a77965", "renesas,rcar-gen3-sata"; --- a/arch/arm64/boot/dts/renesas/r8a77970.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a77970.dtsi @@ -108,6 +108,7 @@ compatible = "renesas,r8a77970-wdt", "renesas,rcar-gen3-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 402>; power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; resets = <&cpg 402>; --- a/arch/arm64/boot/dts/renesas/r8a77980.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a77980.dtsi @@ -138,6 +138,7 @@ compatible = "renesas,r8a77980-wdt", "renesas,rcar-gen3-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 402>; power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; resets = <&cpg 402>; --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a77990.dtsi @@ -171,6 +171,7 @@ compatible = "renesas,r8a77990-wdt", "renesas,rcar-gen3-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 402>; power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; resets = <&cpg 402>; @@ -1837,6 +1838,22 @@ status = "disabled"; }; + rpc: spi@ee200000 { + compatible = "renesas,r8a77990-rpc-if", + "renesas,rcar-gen3-rpc-if"; + reg = <0 0xee200000 0 0x200>, + <0 0x08000000 0 0x04000000>, + <0 0xee208000 0 0x100>; + reg-names = "regs", "dirmap", "wbuf"; + interrupts = ; + clocks = <&cpg CPG_MOD 917>; + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; + resets = <&cpg 917>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + gic: interrupt-controller@f1010000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; --- a/arch/arm64/boot/dts/renesas/r8a77995.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a77995.dtsi @@ -94,6 +94,7 @@ compatible = "renesas,r8a77995-wdt", "renesas,rcar-gen3-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 402>; power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; resets = <&cpg 402>; @@ -1237,6 +1238,22 @@ status = "disabled"; }; + rpc: spi@ee200000 { + compatible = "renesas,r8a77995-rpc-if", + "renesas,rcar-gen3-rpc-if"; + reg = <0 0xee200000 0 0x200>, + <0 0x08000000 0 0x04000000>, + <0 0xee208000 0 0x100>; + reg-names = "regs", "dirmap", "wbuf"; + interrupts = ; + clocks = <&cpg CPG_MOD 917>; + power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; + resets = <&cpg 917>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + gic: interrupt-controller@f1010000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; --- a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi @@ -24,6 +24,13 @@ i2c6 = &i2c6; }; + /* External CAN clock - to be overridden by boards that provide it */ + can_clk: can { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + cpus { #address-cells = <1>; #size-cells = <0>; @@ -81,6 +88,7 @@ compatible = "renesas,r8a779a0-wdt", "renesas,rcar-gen3-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 907>; power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>; resets = <&cpg 907>; @@ -596,6 +604,55 @@ status = "disabled"; }; + canfd: can@e6660000 { + compatible = "renesas,r8a779a0-canfd"; + reg = <0 0xe6660000 0 0x8000>; + interrupts = , + ; + interrupt-names = "ch_int", "g_int"; + clocks = <&cpg CPG_MOD 328>, + <&cpg CPG_CORE R8A779A0_CLK_CANFD>, + <&can_clk>; + clock-names = "fck", "canfd", "can_clk"; + assigned-clocks = <&cpg CPG_CORE R8A779A0_CLK_CANFD>; + assigned-clock-rates = <80000000>; + power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>; + resets = <&cpg 328>; + status = "disabled"; + + channel0 { + status = "disabled"; + }; + + channel1 { + status = "disabled"; + }; + + channel2 { + status = "disabled"; + }; + + channel3 { + status = "disabled"; + }; + + channel4 { + status = "disabled"; + }; + + channel5 { + status = "disabled"; + }; + + channel6 { + status = "disabled"; + }; + + channel7 { + status = "disabled"; + }; + }; + avb0: ethernet@e6800000 { compatible = "renesas,etheravb-r8a779a0", "renesas,etheravb-rcar-gen3"; --- a/arch/arm64/boot/dts/renesas/r8a779a0-falcon-cpu.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a779a0-falcon-cpu.dtsi @@ -192,14 +192,17 @@ clock-frequency = <400000>; bridge@2c { + pinctrl-0 = <&irq0_pins>; + pinctrl-names = "default"; + compatible = "ti,sn65dsi86"; reg = <0x2c>; clocks = <&sn65dsi86_refclk>; clock-names = "refclk"; - interrupt-parent = <&gpio1>; - interrupts = <24 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&intc_ex>; + interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; vccio-supply = <®_1p8v>; vpll-supply = <®_1p8v>; @@ -271,6 +274,11 @@ function = "i2c6"; }; + irq0_pins: irq0 { + groups = "intc_ex_irq0"; + function = "intc_ex"; + }; + keys_pins: keys { pins = "GP_6_18", "GP_6_19", "GP_6_20"; bias-pull-up; --- a/arch/arm64/boot/dts/renesas/r8a779a0-falcon.dts~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a779a0-falcon.dts @@ -37,6 +37,20 @@ }; }; +&canfd { + pinctrl-0 = <&canfd0_pins>, <&canfd1_pins>; + pinctrl-names = "default"; + status = "okay"; + + channel0 { + status = "okay"; + }; + + channel1 { + status = "okay"; + }; +}; + &i2c0 { eeprom@51 { compatible = "rohm,br24g01", "atmel,24c01"; @@ -65,4 +79,14 @@ }; }; + + canfd0_pins: canfd0 { + groups = "canfd0_data"; + function = "canfd0"; + }; + + canfd1_pins: canfd1 { + groups = "canfd1_data"; + function = "canfd1"; + }; }; --- a/arch/arm64/boot/dts/renesas/r8a779f0.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a779f0.dtsi @@ -63,6 +63,7 @@ compatible = "renesas,r8a779f0-wdt", "renesas,rcar-gen4-wdt"; reg = <0 0xe6020000 0 0x0c>; + interrupts = ; clocks = <&cpg CPG_MOD 907>; power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; resets = <&cpg 907>; @@ -75,6 +76,66 @@ <0 0xe6051000 0 0x16c>, <0 0xe6051800 0 0x16c>; }; + gpio0: gpio@e6050180 { + compatible = "renesas,gpio-r8a779f0", + "renesas,rcar-gen4-gpio"; + reg = <0 0xe6050180 0 0x54>; + interrupts = ; + clocks = <&cpg CPG_MOD 915>; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 915>; + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pfc 0 0 21>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpio1: gpio@e6050980 { + compatible = "renesas,gpio-r8a779f0", + "renesas,rcar-gen4-gpio"; + reg = <0 0xe6050980 0 0x54>; + interrupts = ; + clocks = <&cpg CPG_MOD 915>; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 915>; + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pfc 0 32 25>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpio2: gpio@e6051180 { + compatible = "renesas,gpio-r8a779f0", + "renesas,rcar-gen4-gpio"; + reg = <0 0xe6051180 0 0x54>; + interrupts = ; + clocks = <&cpg CPG_MOD 915>; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 915>; + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pfc 0 64 17>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpio3: gpio@e6051980 { + compatible = "renesas,gpio-r8a779f0", + "renesas,rcar-gen4-gpio"; + reg = <0 0xe6051980 0 0x54>; + interrupts = ; + clocks = <&cpg CPG_MOD 915>; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 915>; + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pfc 0 96 19>; + interrupt-controller; + #interrupt-cells = <2>; + }; + cpg: clock-controller@e6150000 { compatible = "renesas,r8a779f0-cpg-mssr"; reg = <0 0xe6150000 0 0x4000>; @@ -96,6 +157,108 @@ #power-domain-cells = <1>; }; + i2c0: i2c@e6500000 { + compatible = "renesas,i2c-r8a779f0", + "renesas,rcar-gen4-i2c"; + reg = <0 0xe6500000 0 0x40>; + interrupts = ; + clocks = <&cpg CPG_MOD 518>; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 518>; + dmas = <&dmac0 0x91>, <&dmac0 0x90>, + <&dmac1 0x91>, <&dmac1 0x90>; + dma-names = "tx", "rx", "tx", "rx"; + i2c-scl-internal-delay-ns = <110>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c1: i2c@e6508000 { + compatible = "renesas,i2c-r8a779f0", + "renesas,rcar-gen4-i2c"; + reg = <0 0xe6508000 0 0x40>; + interrupts = ; + clocks = <&cpg CPG_MOD 519>; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 519>; + dmas = <&dmac0 0x93>, <&dmac0 0x92>, + <&dmac1 0x93>, <&dmac1 0x92>; + dma-names = "tx", "rx", "tx", "rx"; + i2c-scl-internal-delay-ns = <110>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c2: i2c@e6510000 { + compatible = "renesas,i2c-r8a779f0", + "renesas,rcar-gen4-i2c"; + reg = <0 0xe6510000 0 0x40>; + interrupts = <0 240 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cpg CPG_MOD 520>; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 520>; + dmas = <&dmac0 0x95>, <&dmac0 0x94>, + <&dmac1 0x95>, <&dmac1 0x94>; + dma-names = "tx", "rx", "tx", "rx"; + i2c-scl-internal-delay-ns = <110>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c3: i2c@e66d0000 { + compatible = "renesas,i2c-r8a779f0", + "renesas,rcar-gen4-i2c"; + reg = <0 0xe66d0000 0 0x40>; + interrupts = ; + clocks = <&cpg CPG_MOD 521>; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 521>; + dmas = <&dmac0 0x97>, <&dmac0 0x96>, + <&dmac1 0x97>, <&dmac1 0x96>; + dma-names = "tx", "rx", "tx", "rx"; + i2c-scl-internal-delay-ns = <110>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c4: i2c@e66d8000 { + compatible = "renesas,i2c-r8a779f0", + "renesas,rcar-gen4-i2c"; + reg = <0 0xe66d8000 0 0x40>; + interrupts = ; + clocks = <&cpg CPG_MOD 522>; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 522>; + dmas = <&dmac0 0x99>, <&dmac0 0x98>, + <&dmac1 0x99>, <&dmac1 0x98>; + dma-names = "tx", "rx", "tx", "rx"; + i2c-scl-internal-delay-ns = <110>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c5: i2c@e66e0000 { + compatible = "renesas,i2c-r8a779f0", + "renesas,rcar-gen4-i2c"; + reg = <0 0xe66e0000 0 0x40>; + interrupts = ; + clocks = <&cpg CPG_MOD 523>; + power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>; + resets = <&cpg 523>; + dmas = <&dmac0 0x9b>, <&dmac0 0x9a>, + <&dmac1 0x9b>, <&dmac1 0x9a>; + dma-names = "tx", "rx", "tx", "rx"; + i2c-scl-internal-delay-ns = <110>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + scif3: serial@e6c50000 { compatible = "renesas,scif-r8a779f0", "renesas,rcar-gen4-scif", "renesas,scif"; --- a/arch/arm64/boot/dts/renesas/r8a779f0-spider-cpu.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a779f0-spider-cpu.dtsi @@ -31,10 +31,30 @@ clock-frequency = <32768>; }; +&i2c4 { + pinctrl-0 = <&i2c4_pins>; + pinctrl-names = "default"; + + status = "okay"; + clock-frequency = <400000>; + + eeprom@50 { + compatible = "rohm,br24g01", "atmel,24c01"; + label = "cpu-board"; + reg = <0x50>; + pagesize = <8>; + }; +}; + &pfc { pinctrl-0 = <&scif_clk_pins>; pinctrl-names = "default"; + i2c4_pins: i2c4 { + groups = "i2c4"; + function = "i2c4"; + }; + scif3_pins: scif3 { groups = "scif3_data", "scif3_ctrl"; function = "scif3"; --- a/arch/arm64/boot/dts/renesas/r8a779f0-spider.dts~linux-next +++ a/arch/arm64/boot/dts/renesas/r8a779f0-spider.dts @@ -7,6 +7,7 @@ /dts-v1/; #include "r8a779f0-spider-cpu.dtsi" +#include "r8a779f0-spider-ethernet.dtsi" / { model = "Renesas Spider CPU and Breakout boards based on r8a779f0"; @@ -20,3 +21,12 @@ stdout-path = "serial0:115200n8"; }; }; + +&i2c4 { + eeprom@51 { + compatible = "rohm,br24g01", "atmel,24c01"; + label = "breakout-board"; + reg = <0x51>; + pagesize = <8>; + }; +}; --- /dev/null +++ a/arch/arm64/boot/dts/renesas/r8a779f0-spider-ethernet.dtsi @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree Source for the Spider Ethernet sub-board + * + * Copyright (C) 2021 Renesas Electronics Corp. + */ + +&i2c4 { + eeprom@52 { + compatible = "rohm,br24g01", "atmel,24c01"; + label = "ethernet-sub-board"; + reg = <0x52>; + pagesize = <8>; + }; +}; --- /dev/null +++ a/arch/arm64/boot/dts/renesas/r9a07g043.dtsi @@ -0,0 +1,481 @@ +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +/* + * Device Tree Source for the RZ/G2UL SoC + * + * Copyright (C) 2022 Renesas Electronics Corp. + */ + +#include +#include + +/ { + compatible = "renesas,r9a07g043"; + #address-cells = <2>; + #size-cells = <2>; + + audio_clk1: audio-clk1 { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by boards that provide it */ + clock-frequency = <0>; + }; + + audio_clk2: audio-clk2 { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by boards that provide it */ + clock-frequency = <0>; + }; + + /* External CAN clock - to be overridden by boards that provide it */ + can_clk: can-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <0>; + }; + + /* clock can be either from exclk or crystal oscillator (XIN/XOUT) */ + extal_clk: extal-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + /* This value must be overridden by the board */ + clock-frequency = <0>; + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu0: cpu@0 { + compatible = "arm,cortex-a55"; + reg = <0>; + device_type = "cpu"; + next-level-cache = <&L3_CA55>; + enable-method = "psci"; + clocks = <&cpg CPG_CORE R9A07G043_CLK_I>; + }; + + L3_CA55: cache-controller-0 { + compatible = "cache"; + cache-unified; + cache-size = <0x40000>; + }; + }; + + psci { + compatible = "arm,psci-1.0", "arm,psci-0.2"; + method = "smc"; + }; + + soc: soc { + compatible = "simple-bus"; + interrupt-parent = <&gic>; + #address-cells = <2>; + #size-cells = <2>; + ranges; + + ssi0: ssi@10049c00 { + reg = <0 0x10049c00 0 0x400>; + #sound-dai-cells = <0>; + /* place holder */ + }; + + spi1: spi@1004b000 { + reg = <0 0x1004b000 0 0x400>; + #address-cells = <1>; + #size-cells = <0>; + /* place holder */ + }; + + scif0: serial@1004b800 { + compatible = "renesas,scif-r9a07g043", + "renesas,scif-r9a07g044"; + reg = <0 0x1004b800 0 0x400>; + interrupts = , + , + , + , + , + ; + interrupt-names = "eri", "rxi", "txi", + "bri", "dri", "tei"; + clocks = <&cpg CPG_MOD R9A07G043_SCIF0_CLK_PCK>; + clock-names = "fck"; + power-domains = <&cpg>; + resets = <&cpg R9A07G043_SCIF0_RST_SYSTEM_N>; + status = "disabled"; + }; + + scif1: serial@1004bc00 { + compatible = "renesas,scif-r9a07g043", + "renesas,scif-r9a07g044"; + reg = <0 0x1004bc00 0 0x400>; + interrupts = , + , + , + , + , + ; + interrupt-names = "eri", "rxi", "txi", + "bri", "dri", "tei"; + clocks = <&cpg CPG_MOD R9A07G043_SCIF1_CLK_PCK>; + clock-names = "fck"; + power-domains = <&cpg>; + resets = <&cpg R9A07G043_SCIF1_RST_SYSTEM_N>; + status = "disabled"; + }; + + scif2: serial@1004c000 { + compatible = "renesas,scif-r9a07g043", + "renesas,scif-r9a07g044"; + reg = <0 0x1004c000 0 0x400>; + interrupts = , + , + , + , + , + ; + interrupt-names = "eri", "rxi", "txi", + "bri", "dri", "tei"; + clocks = <&cpg CPG_MOD R9A07G043_SCIF2_CLK_PCK>; + clock-names = "fck"; + power-domains = <&cpg>; + resets = <&cpg R9A07G043_SCIF2_RST_SYSTEM_N>; + status = "disabled"; + }; + + scif3: serial@1004c400 { + compatible = "renesas,scif-r9a07g043", + "renesas,scif-r9a07g044"; + reg = <0 0x1004c400 0 0x400>; + interrupts = , + , + , + , + , + ; + interrupt-names = "eri", "rxi", "txi", + "bri", "dri", "tei"; + clocks = <&cpg CPG_MOD R9A07G043_SCIF3_CLK_PCK>; + clock-names = "fck"; + power-domains = <&cpg>; + resets = <&cpg R9A07G043_SCIF3_RST_SYSTEM_N>; + status = "disabled"; + }; + + scif4: serial@1004c800 { + compatible = "renesas,scif-r9a07g043", + "renesas,scif-r9a07g044"; + reg = <0 0x1004c800 0 0x400>; + interrupts = , + , + , + , + , + ; + interrupt-names = "eri", "rxi", "txi", + "bri", "dri", "tei"; + clocks = <&cpg CPG_MOD R9A07G043_SCIF4_CLK_PCK>; + clock-names = "fck"; + power-domains = <&cpg>; + resets = <&cpg R9A07G043_SCIF4_RST_SYSTEM_N>; + status = "disabled"; + }; + + sci0: serial@1004d000 { + compatible = "renesas,r9a07g043-sci", "renesas,sci"; + reg = <0 0x1004d000 0 0x400>; + interrupts = , + , + , + ; + interrupt-names = "eri", "rxi", "txi", "tei"; + clocks = <&cpg CPG_MOD R9A07G043_SCI0_CLKP>; + clock-names = "fck"; + power-domains = <&cpg>; + resets = <&cpg R9A07G043_SCI0_RST>; + status = "disabled"; + }; + + sci1: serial@1004d400 { + compatible = "renesas,r9a07g043-sci", "renesas,sci"; + reg = <0 0x1004d400 0 0x400>; + interrupts = , + , + , + ; + interrupt-names = "eri", "rxi", "txi", "tei"; + clocks = <&cpg CPG_MOD R9A07G043_SCI1_CLKP>; + clock-names = "fck"; + power-domains = <&cpg>; + resets = <&cpg R9A07G043_SCI1_RST>; + status = "disabled"; + }; + + canfd: can@10050000 { + reg = <0 0x10050000 0 0x8000>; + /* place holder */ + }; + + i2c0: i2c@10058000 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0 0x10058000 0 0x400>; + /* place holder */ + }; + + i2c1: i2c@10058400 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0 0x10058400 0 0x400>; + /* place holder */ + }; + + i2c3: i2c@10058c00 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0 0x10058c00 0 0x400>; + /* place holder */ + }; + + adc: adc@10059000 { + reg = <0 0x10059000 0 0x400>; + /* place holder */ + }; + + sbc: spi@10060000 { + reg = <0 0x10060000 0 0x10000>, + <0 0x20000000 0 0x10000000>, + <0 0x10070000 0 0x10000>; + #address-cells = <1>; + #size-cells = <0>; + /* place holder */ + }; + + cpg: clock-controller@11010000 { + compatible = "renesas,r9a07g043-cpg"; + reg = <0 0x11010000 0 0x10000>; + clocks = <&extal_clk>; + clock-names = "extal"; + #clock-cells = <2>; + #reset-cells = <1>; + #power-domain-cells = <0>; + }; + + sysc: system-controller@11020000 { + compatible = "renesas,r9a07g043-sysc"; + reg = <0 0x11020000 0 0x10000>; + interrupts = , + , + , + ; + interrupt-names = "lpm_int", "ca55stbydone_int", + "cm33stbyr_int", "ca55_deny"; + status = "disabled"; + }; + + pinctrl: pinctrl@11030000 { + compatible = "renesas,r9a07g043-pinctrl"; + reg = <0 0x11030000 0 0x10000>; + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pinctrl 0 0 152>; + clocks = <&cpg CPG_MOD R9A07G043_GPIO_HCLK>; + power-domains = <&cpg>; + resets = <&cpg R9A07G043_GPIO_RSTN>, + <&cpg R9A07G043_GPIO_PORT_RESETN>, + <&cpg R9A07G043_GPIO_SPARE_RESETN>; + }; + + dmac: dma-controller@11820000 { + compatible = "renesas,r9a07g043-dmac", + "renesas,rz-dmac"; + reg = <0 0x11820000 0 0x10000>, + <0 0x11830000 0 0x10000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + interrupt-names = "error", + "ch0", "ch1", "ch2", "ch3", + "ch4", "ch5", "ch6", "ch7", + "ch8", "ch9", "ch10", "ch11", + "ch12", "ch13", "ch14", "ch15"; + clocks = <&cpg CPG_MOD R9A07G043_DMAC_ACLK>, + <&cpg CPG_MOD R9A07G043_DMAC_PCLK>; + power-domains = <&cpg>; + resets = <&cpg R9A07G043_DMAC_ARESETN>, + <&cpg R9A07G043_DMAC_RST_ASYNC>; + #dma-cells = <1>; + dma-channels = <16>; + }; + + gic: interrupt-controller@11900000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <3>; + #address-cells = <0>; + interrupt-controller; + reg = <0x0 0x11900000 0 0x40000>, + <0x0 0x11940000 0 0x60000>; + interrupts = ; + }; + + sdhi0: mmc@11c00000 { + compatible = "renesas,sdhi-r9a07g043", + "renesas,rcar-gen3-sdhi"; + reg = <0x0 0x11c00000 0 0x10000>; + interrupts = , + ; + clocks = <&cpg CPG_MOD R9A07G043_SDHI0_IMCLK>, + <&cpg CPG_MOD R9A07G043_SDHI0_CLK_HS>, + <&cpg CPG_MOD R9A07G043_SDHI0_IMCLK2>, + <&cpg CPG_MOD R9A07G043_SDHI0_ACLK>; + clock-names = "core", "clkh", "cd", "aclk"; + resets = <&cpg R9A07G043_SDHI0_IXRST>; + power-domains = <&cpg>; + status = "disabled"; + }; + + sdhi1: mmc@11c10000 { + compatible = "renesas,sdhi-r9a07g043", + "renesas,rcar-gen3-sdhi"; + reg = <0x0 0x11c10000 0 0x10000>; + interrupts = , + ; + clocks = <&cpg CPG_MOD R9A07G043_SDHI1_IMCLK>, + <&cpg CPG_MOD R9A07G043_SDHI1_CLK_HS>, + <&cpg CPG_MOD R9A07G043_SDHI1_IMCLK2>, + <&cpg CPG_MOD R9A07G043_SDHI1_ACLK>; + clock-names = "core", "clkh", "cd", "aclk"; + resets = <&cpg R9A07G043_SDHI1_IXRST>; + power-domains = <&cpg>; + status = "disabled"; + }; + + eth0: ethernet@11c20000 { + compatible = "renesas,r9a07g043-gbeth", + "renesas,rzg2l-gbeth"; + reg = <0 0x11c20000 0 0x10000>; + interrupts = , + , + ; + interrupt-names = "mux", "fil", "arp_ns"; + phy-mode = "rgmii"; + clocks = <&cpg CPG_MOD R9A07G043_ETH0_CLK_AXI>, + <&cpg CPG_MOD R9A07G043_ETH0_CLK_CHI>, + <&cpg CPG_CORE R9A07G043_CLK_HP>; + clock-names = "axi", "chi", "refclk"; + resets = <&cpg R9A07G043_ETH0_RST_HW_N>; + power-domains = <&cpg>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + eth1: ethernet@11c30000 { + compatible = "renesas,r9a07g043-gbeth", + "renesas,rzg2l-gbeth"; + reg = <0 0x11c30000 0 0x10000>; + interrupts = , + , + ; + interrupt-names = "mux", "fil", "arp_ns"; + phy-mode = "rgmii"; + clocks = <&cpg CPG_MOD R9A07G043_ETH1_CLK_AXI>, + <&cpg CPG_MOD R9A07G043_ETH1_CLK_CHI>, + <&cpg CPG_CORE R9A07G043_CLK_HP>; + clock-names = "axi", "chi", "refclk"; + resets = <&cpg R9A07G043_ETH1_RST_HW_N>; + power-domains = <&cpg>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + phyrst: usbphy-ctrl@11c40000 { + reg = <0 0x11c40000 0 0x10000>; + /* place holder */ + }; + + ohci0: usb@11c50000 { + reg = <0 0x11c50000 0 0x100>; + /* place holder */ + }; + + ohci1: usb@11c70000 { + reg = <0 0x11c70000 0 0x100>; + /* place holder */ + }; + + ehci0: usb@11c50100 { + reg = <0 0x11c50100 0 0x100>; + /* place holder */ + }; + + ehci1: usb@11c70100 { + reg = <0 0x11c70100 0 0x100>; + /* place holder */ + }; + + usb2_phy0: usb-phy@11c50200 { + reg = <0 0x11c50200 0 0x700>; + /* place holder */ + }; + + usb2_phy1: usb-phy@11c70200 { + reg = <0 0x11c70200 0 0x700>; + /* place holder */ + }; + + hsusb: usb@11c60000 { + reg = <0 0x11c60000 0 0x10000>; + /* place holder */ + }; + + wdt0: watchdog@12800800 { + reg = <0 0x12800800 0 0x400>; + /* place holder */ + }; + + wdt2: watchdog@12800400 { + reg = <0 0x12800400 0 0x400>; + /* place holder */ + }; + + ostm0: timer@12801000 { + reg = <0x0 0x12801000 0x0 0x400>; + /* place holder */ + }; + + ostm1: timer@12801400 { + reg = <0x0 0x12801400 0x0 0x400>; + /* place holder */ + }; + + ostm2: timer@12801800 { + reg = <0x0 0x12801800 0x0 0x400>; + /* place holder */ + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>, + <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>; + }; +}; --- /dev/null +++ a/arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +/* + * Device Tree Source for the RZ/G2UL Type-1 SMARC EVK board + * + * Copyright (C) 2022 Renesas Electronics Corp. + */ + +/dts-v1/; +#include "r9a07g043.dtsi" +#include "rzg2ul-smarc.dtsi" + +/ { + model = "Renesas SMARC EVK based on r9a07g043u11"; + compatible = "renesas,smarc-evk", "renesas,r9a07g043u11", "renesas,r9a07g043"; +}; + +&canfd { + /delete-property/ pinctrl-0; + /delete-property/ pinctrl-names; + status = "disabled"; +}; + +&ehci0 { + /delete-property/ pinctrl-0; + /delete-property/ pinctrl-names; + status = "disabled"; +}; + +&ehci1 { + /delete-property/ pinctrl-0; + /delete-property/ pinctrl-names; + status = "disabled"; +}; + +&hsusb { + /delete-property/ pinctrl-0; + /delete-property/ pinctrl-names; + status = "disabled"; +}; + +&i2c0 { + /delete-property/ pinctrl-0; + /delete-property/ pinctrl-names; + status = "disabled"; +}; + +&i2c1 { + /delete-property/ pinctrl-0; + /delete-property/ pinctrl-names; + status = "disabled"; + + wm8978: codec@1a { + compatible = "wlf,wm8978"; + #sound-dai-cells = <0>; + reg = <0x1a>; + }; +}; + +&ohci0 { + /delete-property/ pinctrl-0; + /delete-property/ pinctrl-names; + status = "disabled"; +}; + +&ohci1 { + /delete-property/ pinctrl-0; + /delete-property/ pinctrl-names; + status = "disabled"; +}; + +&phyrst { + status = "disabled"; +}; + +&spi1 { + /delete-property/ pinctrl-0; + /delete-property/ pinctrl-names; + status = "disabled"; +}; + +&ssi0 { + /delete-property/ pinctrl-0; + /delete-property/ pinctrl-names; + status = "disabled"; +}; + +&usb2_phy0 { + /delete-property/ pinctrl-0; + /delete-property/ pinctrl-names; + status = "disabled"; +}; + +&usb2_phy1 { + /delete-property/ pinctrl-0; + /delete-property/ pinctrl-names; + status = "disabled"; +}; --- a/arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dts~linux-next +++ a/arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dts @@ -13,79 +13,3 @@ model = "Renesas SMARC EVK based on r9a07g044c2"; compatible = "renesas,smarc-evk", "renesas,r9a07g044c2", "renesas,r9a07g044"; }; - -&ehci0 { - /delete-property/ pinctrl-0; - /delete-property/ pinctrl-names; - status = "disabled"; -}; - -&ehci1 { - /delete-property/ pinctrl-0; - /delete-property/ pinctrl-names; - status = "disabled"; -}; - -&hsusb { - /delete-property/ pinctrl-0; - /delete-property/ pinctrl-names; - status = "disabled"; -}; - -&i2c0 { - /delete-property/ pinctrl-0; - /delete-property/ pinctrl-names; - status = "disabled"; -}; - -&i2c1 { - /delete-property/ pinctrl-0; - /delete-property/ pinctrl-names; - status = "disabled"; -}; - -&i2c3 { - /delete-property/ pinctrl-0; - /delete-property/ pinctrl-names; - status = "disabled"; -}; - -&ohci0 { - /delete-property/ pinctrl-0; - /delete-property/ pinctrl-names; - status = "disabled"; -}; - -&ohci1 { - /delete-property/ pinctrl-0; - /delete-property/ pinctrl-names; - status = "disabled"; -}; - -&phyrst { - status = "disabled"; -}; - -&spi1 { - /delete-property/ pinctrl-0; - /delete-property/ pinctrl-names; - status = "disabled"; -}; - -&ssi0 { - /delete-property/ pinctrl-0; - /delete-property/ pinctrl-names; - status = "disabled"; -}; - -&usb2_phy0 { - /delete-property/ pinctrl-0; - /delete-property/ pinctrl-names; - status = "disabled"; -}; - -&usb2_phy1 { - /delete-property/ pinctrl-0; - /delete-property/ pinctrl-names; - status = "disabled"; -}; --- a/arch/arm64/boot/dts/renesas/r9a07g054.dtsi~linux-next +++ a/arch/arm64/boot/dts/renesas/r9a07g054.dtsi @@ -42,6 +42,33 @@ clock-frequency = <0>; }; + cluster0_opp: opp-table-0 { + compatible = "operating-points-v2"; + opp-shared; + + opp-150000000 { + opp-hz = /bits/ 64 <150000000>; + opp-microvolt = <1100000>; + clock-latency-ns = <300000>; + }; + opp-300000000 { + opp-hz = /bits/ 64 <300000000>; + opp-microvolt = <1100000>; + clock-latency-ns = <300000>; + }; + opp-600000000 { + opp-hz = /bits/ 64 <600000000>; + opp-microvolt = <1100000>; + clock-latency-ns = <300000>; + }; + opp-1200000000 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <1100000>; + clock-latency-ns = <300000>; + opp-suspend; + }; + }; + cpus { #address-cells = <1>; #size-cells = <0>; @@ -65,6 +92,7 @@ next-level-cache = <&L3_CA55>; enable-method = "psci"; clocks = <&cpg CPG_CORE R9A07G054_CLK_I>; + operating-points-v2 = <&cluster0_opp>; }; cpu1: cpu@100 { @@ -74,6 +102,7 @@ next-level-cache = <&L3_CA55>; enable-method = "psci"; clocks = <&cpg CPG_CORE R9A07G054_CLK_I>; + operating-points-v2 = <&cluster0_opp>; }; L3_CA55: cache-controller-0 { @@ -83,6 +112,50 @@ }; }; + gpu_opp_table: opp-table-1 { + compatible = "operating-points-v2"; + + opp-500000000 { + opp-hz = /bits/ 64 <500000000>; + opp-microvolt = <1100000>; + }; + + opp-400000000 { + opp-hz = /bits/ 64 <400000000>; + opp-microvolt = <1100000>; + }; + + opp-250000000 { + opp-hz = /bits/ 64 <250000000>; + opp-microvolt = <1100000>; + }; + + opp-200000000 { + opp-hz = /bits/ 64 <200000000>; + opp-microvolt = <1100000>; + }; + + opp-125000000 { + opp-hz = /bits/ 64 <125000000>; + opp-microvolt = <1100000>; + }; + + opp-100000000 { + opp-hz = /bits/ 64 <100000000>; + opp-microvolt = <1100000>; + }; + + opp-62500000 { + opp-hz = /bits/ 64 <62500000>; + opp-microvolt = <1100000>; + }; + + opp-50000000 { + opp-hz = /bits/ 64 <50000000>; + opp-microvolt = <1100000>; + }; + }; + psci { compatible = "arm,psci-1.0", "arm,psci-0.2"; method = "smc"; @@ -96,16 +169,135 @@ ranges; ssi0: ssi@10049c00 { + compatible = "renesas,r9a07g054-ssi", + "renesas,rz-ssi"; reg = <0 0x10049c00 0 0x400>; + interrupts = , + , + , + ; + interrupt-names = "int_req", "dma_rx", "dma_tx", "dma_rt"; + clocks = <&cpg CPG_MOD R9A07G054_SSI0_PCLK2>, + <&cpg CPG_MOD R9A07G054_SSI0_PCLK_SFR>, + <&audio_clk1>, <&audio_clk2>; + clock-names = "ssi", "ssi_sfr", "audio_clk1", "audio_clk2"; + resets = <&cpg R9A07G054_SSI0_RST_M2_REG>; + dmas = <&dmac 0x2655>, <&dmac 0x2656>; + dma-names = "tx", "rx"; + power-domains = <&cpg>; + #sound-dai-cells = <0>; + status = "disabled"; + }; + + ssi1: ssi@1004a000 { + compatible = "renesas,r9a07g054-ssi", + "renesas,rz-ssi"; + reg = <0 0x1004a000 0 0x400>; + interrupts = , + , + , + ; + interrupt-names = "int_req", "dma_rx", "dma_tx", "dma_rt"; + clocks = <&cpg CPG_MOD R9A07G054_SSI1_PCLK2>, + <&cpg CPG_MOD R9A07G054_SSI1_PCLK_SFR>, + <&audio_clk1>, <&audio_clk2>; + clock-names = "ssi", "ssi_sfr", "audio_clk1", "audio_clk2"; + resets = <&cpg R9A07G054_SSI1_RST_M2_REG>; + dmas = <&dmac 0x2659>, <&dmac 0x265a>; + dma-names = "tx", "rx"; + power-domains = <&cpg>; + #sound-dai-cells = <0>; + status = "disabled"; + }; + + ssi2: ssi@1004a400 { + compatible = "renesas,r9a07g054-ssi", + "renesas,rz-ssi"; + reg = <0 0x1004a400 0 0x400>; + interrupts = , + , + , + ; + interrupt-names = "int_req", "dma_rx", "dma_tx", "dma_rt"; + clocks = <&cpg CPG_MOD R9A07G054_SSI2_PCLK2>, + <&cpg CPG_MOD R9A07G054_SSI2_PCLK_SFR>, + <&audio_clk1>, <&audio_clk2>; + clock-names = "ssi", "ssi_sfr", "audio_clk1", "audio_clk2"; + resets = <&cpg R9A07G054_SSI2_RST_M2_REG>; + dmas = <&dmac 0x265f>; + dma-names = "rt"; + power-domains = <&cpg>; + #sound-dai-cells = <0>; + status = "disabled"; + }; + + ssi3: ssi@1004a800 { + compatible = "renesas,r9a07g054-ssi", + "renesas,rz-ssi"; + reg = <0 0x1004a800 0 0x400>; + interrupts = , + , + , + ; + interrupt-names = "int_req", "dma_rx", "dma_tx", "dma_rt"; + clocks = <&cpg CPG_MOD R9A07G054_SSI3_PCLK2>, + <&cpg CPG_MOD R9A07G054_SSI3_PCLK_SFR>, + <&audio_clk1>, <&audio_clk2>; + clock-names = "ssi", "ssi_sfr", "audio_clk1", "audio_clk2"; + resets = <&cpg R9A07G054_SSI3_RST_M2_REG>; + dmas = <&dmac 0x2661>, <&dmac 0x2662>; + dma-names = "tx", "rx"; + power-domains = <&cpg>; #sound-dai-cells = <0>; - /* place holder */ + status = "disabled"; + }; + + spi0: spi@1004ac00 { + compatible = "renesas,r9a07g054-rspi", "renesas,rspi-rz"; + reg = <0 0x1004ac00 0 0x400>; + interrupts = , + , + ; + interrupt-names = "error", "rx", "tx"; + clocks = <&cpg CPG_MOD R9A07G054_RSPI0_CLKB>; + resets = <&cpg R9A07G054_RSPI0_RST>; + power-domains = <&cpg>; + num-cs = <1>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; }; spi1: spi@1004b000 { + compatible = "renesas,r9a07g054-rspi", "renesas,rspi-rz"; reg = <0 0x1004b000 0 0x400>; + interrupts = , + , + ; + interrupt-names = "error", "rx", "tx"; + clocks = <&cpg CPG_MOD R9A07G054_RSPI1_CLKB>; + resets = <&cpg R9A07G054_RSPI1_RST>; + power-domains = <&cpg>; + num-cs = <1>; #address-cells = <1>; #size-cells = <0>; - /* place holder */ + status = "disabled"; + }; + + spi2: spi@1004b400 { + compatible = "renesas,r9a07g054-rspi", "renesas,rspi-rz"; + reg = <0 0x1004b400 0 0x400>; + interrupts = , + , + ; + interrupt-names = "error", "rx", "tx"; + clocks = <&cpg CPG_MOD R9A07G054_RSPI2_CLKB>; + resets = <&cpg R9A07G054_RSPI2_RST>; + power-domains = <&cpg>; + num-cs = <1>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; }; scif0: serial@1004b800 { @@ -234,43 +426,194 @@ }; canfd: can@10050000 { + compatible = "renesas,r9a07g054-canfd", "renesas,rzg2l-canfd"; reg = <0 0x10050000 0 0x8000>; - /* place holder */ + interrupts = , + , + , + , + , + , + , + ; + interrupt-names = "g_err", "g_recc", + "ch0_err", "ch0_rec", "ch0_trx", + "ch1_err", "ch1_rec", "ch1_trx"; + clocks = <&cpg CPG_MOD R9A07G054_CANFD_PCLK>, + <&cpg CPG_CORE R9A07G054_CLK_P0_DIV2>, + <&can_clk>; + clock-names = "fck", "canfd", "can_clk"; + assigned-clocks = <&cpg CPG_CORE R9A07G054_CLK_P0_DIV2>; + assigned-clock-rates = <50000000>; + resets = <&cpg R9A07G054_CANFD_RSTP_N>, + <&cpg R9A07G054_CANFD_RSTC_N>; + reset-names = "rstp_n", "rstc_n"; + power-domains = <&cpg>; + status = "disabled"; + + channel0 { + status = "disabled"; + }; + channel1 { + status = "disabled"; + }; }; i2c0: i2c@10058000 { #address-cells = <1>; #size-cells = <0>; + compatible = "renesas,riic-r9a07g054", "renesas,riic-rz"; reg = <0 0x10058000 0 0x400>; - /* place holder */ + interrupts = , + , + , + , + , + , + , + ; + interrupt-names = "tei", "ri", "ti", "spi", "sti", + "naki", "ali", "tmoi"; + clocks = <&cpg CPG_MOD R9A07G054_I2C0_PCLK>; + clock-frequency = <100000>; + resets = <&cpg R9A07G054_I2C0_MRST>; + power-domains = <&cpg>; + status = "disabled"; }; i2c1: i2c@10058400 { #address-cells = <1>; #size-cells = <0>; + compatible = "renesas,riic-r9a07g054", "renesas,riic-rz"; reg = <0 0x10058400 0 0x400>; - /* place holder */ + interrupts = , + , + , + , + , + , + , + ; + interrupt-names = "tei", "ri", "ti", "spi", "sti", + "naki", "ali", "tmoi"; + clocks = <&cpg CPG_MOD R9A07G054_I2C1_PCLK>; + clock-frequency = <100000>; + resets = <&cpg R9A07G054_I2C1_MRST>; + power-domains = <&cpg>; + status = "disabled"; + }; + + i2c2: i2c@10058800 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "renesas,riic-r9a07g054", "renesas,riic-rz"; + reg = <0 0x10058800 0 0x400>; + interrupts = , + , + , + , + , + , + , + ; + interrupt-names = "tei", "ri", "ti", "spi", "sti", + "naki", "ali", "tmoi"; + clocks = <&cpg CPG_MOD R9A07G054_I2C2_PCLK>; + clock-frequency = <100000>; + resets = <&cpg R9A07G054_I2C2_MRST>; + power-domains = <&cpg>; + status = "disabled"; }; i2c3: i2c@10058c00 { #address-cells = <1>; #size-cells = <0>; + compatible = "renesas,riic-r9a07g054", "renesas,riic-rz"; reg = <0 0x10058c00 0 0x400>; - /* place holder */ + interrupts = , + , + , + , + , + , + , + ; + interrupt-names = "tei", "ri", "ti", "spi", "sti", + "naki", "ali", "tmoi"; + clocks = <&cpg CPG_MOD R9A07G054_I2C3_PCLK>; + clock-frequency = <100000>; + resets = <&cpg R9A07G054_I2C3_MRST>; + power-domains = <&cpg>; + status = "disabled"; }; adc: adc@10059000 { + compatible = "renesas,r9a07g054-adc", "renesas,rzg2l-adc"; reg = <0 0x10059000 0 0x400>; - /* place holder */ + interrupts = ; + clocks = <&cpg CPG_MOD R9A07G054_ADC_ADCLK>, + <&cpg CPG_MOD R9A07G054_ADC_PCLK>; + clock-names = "adclk", "pclk"; + resets = <&cpg R9A07G054_ADC_PRESETN>, + <&cpg R9A07G054_ADC_ADRST_N>; + reset-names = "presetn", "adrst-n"; + power-domains = <&cpg>; + status = "disabled"; + + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + }; + channel@1 { + reg = <1>; + }; + channel@2 { + reg = <2>; + }; + channel@3 { + reg = <3>; + }; + channel@4 { + reg = <4>; + }; + channel@5 { + reg = <5>; + }; + channel@6 { + reg = <6>; + }; + channel@7 { + reg = <7>; + }; + }; + + tsu: thermal@10059400 { + compatible = "renesas,r9a07g054-tsu", + "renesas,rzg2l-tsu"; + reg = <0 0x10059400 0 0x400>; + clocks = <&cpg CPG_MOD R9A07G054_TSU_PCLK>; + resets = <&cpg R9A07G054_TSU_PRESETN>; + power-domains = <&cpg>;