From 4e0541e207a306a8a61448c01eacf02c859f35fa Mon Sep 17 00:00:00 2001 From: Vincent Haudiquet Date: Tue, 1 Sep 2026 00:24:31 +0200 Subject: [PATCH] gpio: add MediaTek MT8183 GPIO driver Add a GPIO driver for the MT8183 GPIO controller at 0x10005000, covering the 192 pins in six 32-pin groups. Each group owns a 16-byte window (value at +0, set at +4, reset at +8) for the DIR, DOUT and DIN registers, so output values and direction changes are performed atomically by writing the target bit to the set or reset register. The register layout was ported from the ChromeOS depthcharge driver src/drivers/gpio/mt8183.h (GpioRegs/GpioValRegs). Only the plain GPIO function is implemented. The MT8183 multiplexes pads between several functions through per-pin mode registers which this driver does not touch; on the kukui family of boards every pad used as a GPIO at boot time (panel reset, panel power enables, the two display backlight controls) is already muxed to GPIO mode by the boot firmware before U-Boot runs. This is needed so that display drivers can drive the panel reset and panel power enable pads described in the device tree. Signed-off-by: Vincent Haudiquet --- MAINTAINERS | 1988 +----------------------------------- drivers/gpio/Kconfig | 8 + drivers/gpio/Makefile | 1 + drivers/gpio/mt8183_gpio.c | 154 +++ 4 files changed, 165 insertions(+), 1986 deletions(-) create mode 100644 drivers/gpio/mt8183_gpio.c diff --git a/MAINTAINERS b/MAINTAINERS index eb48eea55c5..362908f9667 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1,1991 +1,7 @@ -Descriptions of section entries: - - P: Person (obsolete) - M: Mail patches to: FullName - R: Designated reviewer: FullName - These reviewers should be CCed on patches. - L: Mailing list that is relevant to this area - W: Web-page with status/info - Q: Patchwork web based patch tracking system site - T: SCM tree type and location. - Type is one of: git, hg, quilt, stgit, topgit - S: Status, one of the following: - Supported: Someone is actually paid to look after this. - Maintained: Someone actually looks after it. - Orphan: No current maintainer [but maybe you could take the - role as you write your new code]. - F: Files and directories with wildcard patterns. - A trailing slash includes all files and subdirectory files. - F: drivers/net/ all files in and below drivers/net - F: drivers/net/* all files in drivers/net, but not below - F: */net/* all files in "any top level directory"/net - One pattern per line. Multiple F: lines acceptable. - N: Files and directories with regex patterns. - N: [^a-z]tegra all files whose path contains the word tegra - One pattern per line. Multiple N: lines acceptable. - scripts/get_maintainer.pl has different behavior for files that - match F: pattern and matches of N: patterns. By default, - get_maintainer will not look at git log history when an F: pattern - match occurs. When an N: match occurs, git log history is used - to also notify the people that have git commit signatures. - X: Files and directories that are NOT maintained, same rules as F: - Files exclusions are tested before file matches. - Can be useful for excluding a specific subdirectory, for instance: - F: net/ - X: net/ipv6/ - matches all files in and below net excluding net/ipv6/ - K: Keyword perl extended regex pattern to match content in a - patch or file. For instance: - K: of_get_profile - matches patches or files that contain "of_get_profile" - K: \b(printk|pr_(info|err))\b - matches patches or files that contain one or more of the words - printk, pr_info or pr_err - One regex pattern per line. Multiple K: lines acceptable. - -Note: For the hard of thinking, this list is meant to remain in alphabetical -order. If you could add yourselves to it in alphabetical order that would be -so much easier [Ed] - -Maintainers List (try to look for most precise areas first) - - ----------------------------------- -ACPI -M: Simon Glass -S: Maintained -F: board/emulation/configs/acpi.config -F: cmd/acpi.c -F: include/acpi/ -F: lib/acpi/ - -AIROHA PHY -M: Tommy Shih -M: Kevin-KW Huang -S: Maintained -F: drivers/net/phy/airoha/ - -ALIST -M: Simon Glass -S: Maintained -F: include/alist.h -F: lib/alist.c -F: test/lib/alist.c - -AMD VERSAL2 PCIE DRIVER -M: Pranav Sanwal -S: Maintained -F: drivers/pci/pcie_dw_amd.c - -ANDROID AB -M: Mattijs Korpershoek -R: Igor Opaniuk -R: Sam Protsenko -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-dfu.git -F: boot/android_ab.c -F: doc/android/ab.rst -F: include/android_ab.h -F: test/py/tests/test_android/test_ab.py - -ANDROID AVB -M: Mattijs Korpershoek -R: Igor Opaniuk -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-dfu.git -F: cmd/avb.c -F: common/avb_verify.c -F: doc/android/avb2.rst -F: include/avb_verify.h -F: lib/libavb/ -F: test/py/tests/test_android/test_avb.py - -ARC -M: Alexey Brodkin -M: Eugeniy Paltsev -S: Maintained -L: uboot-snps-arc@synopsys.com -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-arc.git -F: arch/arc/ -F: board/synopsys/ - -ARC HSDK CGU CLOCK -M: Eugeniy Paltsev -S: Maintained -L: uboot-snps-arc@synopsys.com -F: drivers/clk/clk-hsdk-cgu.c -F: include/dt-bindings/clock/snps,hsdk-cgu.h -F: doc/device-tree-bindings/clock/snps,hsdk-cgu.txt - -ARC HSDK CREG GPIO -M: Eugeniy Paltsev -S: Maintained -L: uboot-snps-arc@synopsys.com -F: doc/device-tree-bindings/gpio/snps,creg-gpio.txt -F: drivers/gpio/hsdk-creg-gpio.c - -ARC HSDK RESET -M: Eugeniy Paltsev -S: Maintained -L: uboot-snps-arc@synopsys.com -F: include/dt-bindings/reset/snps,hsdk-reset.h -F: drivers/reset/reset-hsdk.c - -ARC SYNOPSYS DW MMC EXTENSIONS -M: Eugeniy Paltsev -S: Maintained -L: uboot-snps-arc@synopsys.com -F: doc/device-tree-bindings/mmc/snps,dw-mmc.txt -F: drivers/mmc/snps_dw_mmc.c - -APPLE M1 SOC SUPPORT -M: Mark Kettenis -R: Janne Grunau -S: Maintained -F: arch/arm/include/asm/arch-apple/ -F: arch/arm/mach-apple/ -F: board/apple/ -F: configs/apple_m1_defconfig -F: doc/board/apple/ -F: drivers/input/apple_spi_kbd.c -F: drivers/iommu/apple_dart.c -F: drivers/mailbox/apple-mbox.c -F: drivers/nvme/nvme_apple.c -F: drivers/pci/pcie_apple.c -F: drivers/phy/phy-apple-atc.c -F: drivers/pinctrl/pinctrl-apple.c -F: drivers/power/domain/apple-pmgr.c -F: drivers/spi/apple_spi.c -F: drivers/watchdog/apple_wdt.c -F: include/configs/apple.h - -ARM -M: Tom Rini -M: Ilias Apalodimas -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-arm.git -F: arch/arm/ -F: arch/arm/dts/Makefile -F: cmd/arm/ - -ARM ALTERA SOCFPGA -M: Marek Vasut -M: Simon Goldschmidt -M: Tien Fong Chee -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-socfpga.git -F: arch/arm/dts/socfpga_* -F: arch/arm/mach-socfpga/ -F: board/intel/agilex-socdk/ -F: configs/socfpga_* -F: drivers/ddr/altera/ -F: drivers/power/domain/altr-pmgr-agilex5.c -F: drivers/sysreset/sysreset_socfpga* - -ARM AMLOGIC SOC SUPPORT -M: Neil Armstrong -S: Maintained -L: u-boot-amlogic@groups.io -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-amlogic.git -F: arch/arm/mach-meson/ -F: arch/arm/include/asm/arch-meson/ -F: cmd/meson/ -F: drivers/clk/meson/ -F: drivers/serial/serial_meson.c -F: drivers/reset/reset-meson.c -F: drivers/i2c/meson_i2c.c -F: drivers/net/phy/meson-gxl.c -F: drivers/adc/meson-saradc.c -F: drivers/phy/meson* -F: drivers/mmc/meson_gx_mmc.c -F: drivers/sm/meson-sm.c -F: drivers/spi/meson_spifc.c -F: drivers/pinctrl/meson/ -F: drivers/power/domain/meson-gx-pwrc-vpu.c -F: drivers/video/meson/ -F: drivers/watchdog/meson_gxbb_wdt.c -F: include/configs/meson64.h -F: include/configs/meson64_android.h -F: tools/amlimage* -F: doc/board/amlogic/ -N: meson - -ARM ASPEED -M: Ryan Chen -M: Chia-Wei Wang -R: Aspeed BMC SW team -R: Joel Stanley -S: Maintained -F: arch/arm/dts/ast* -F: drivers/i2c/ast_i2c.[ch] -F: drivers/net/ftgmac100.[ch] -F: drivers/watchdog/ast_wdt.c -N: aspeed -N: ast2500 -N: ast2700 - -ARM AXIADO AX3005 SCM3005 -M: Siu Ming Tong -M: Karthikeyan Mitran -M: Prasad Bolisetty -S: Maintained -F: arch/arm/dts/ax3005* -F: arch/arm/mach-axiado/ -F: board/axiado/scm3005/ -F: configs/ax3005_scm3005_defconfig -F: include/configs/ax3005-scm3005.h - -ARM BROADCOM BCM283X / BCM27XX -M: Matthias Brugger -M: Peter Robinson -S: Maintained -F: arch/arm/dts/bcm283* -F: arch/arm/mach-bcm283x/ -F: board/raspberrypi/ -F: drivers/gpio/bcm2835_gpio.c -F: drivers/mmc/bcm2835_sdhci.c -F: drivers/mmc/bcm2835_sdhost.c -F: drivers/serial/serial_bcm283x_mu.c -F: drivers/serial/serial_bcm283x_pl011.c -F: drivers/video/bcm2835.c -F: include/dm/platform_data/serial_bcm283x_mu.h -F: include/dt-bindings/pinctrl/bcm2835.h -F: drivers/pinctrl/broadcom/ -F: configs/rpi_* -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-arm.git - -ARM BROADCOM BCMBCA -M: Anand Gore -M: William Zhang -M: Kursad Oney -M: Philippe Reynes -S: Maintained -F: arch/arm/mach-bcmbca/ -F: board/broadcom/bcmbca/ -N: bcmbca -N: bcm[9]?47622 -N: bcm[9]?4908 -N: bcm[9]?4912 -N: bcm[9]?63138 -N: bcm[9]?63146 -N: bcm[9]?63148 -N: bcm[9]?63158 -N: bcm[9]?63178 -N: bcm[9]?6756 -N: bcm[9]?6813 -N: bcm[9]?6846 -N: bcm[9]?6855 -N: bcm[9]?6856 -N: bcm[9]?6858 -N: bcm[9]?6878 - -ARM BROADCOM BCMSTB -M: Thomas Fitzsimmons -S: Maintained -F: arch/arm/mach-bcmstb/ -F: board/broadcom/bcmstb/ -F: configs/bcm7*_defconfig -F: doc/README.bcm7xxx -F: drivers/mmc/bcmstb_sdhci.c -F: drivers/spi/bcmstb_spi.c - -ARM CORTINA ACCESS CAxxxx -M: Alex Nemirovsky -S: Supported -N: cortina -F: drivers/mmc/ca_dw_mmc.c -F: drivers/spi/ca_sflash.c -F: drivers/net/phy/ca_phy.c - -ARM FF-A -M: Abdellatif El Khlifi -S: Maintained -F: arch/sandbox/include/asm/sandbox_arm_ffa.h -F: arch/sandbox/include/asm/sandbox_arm_ffa_priv.h -F: cmd/armffa.c -F: doc/arch/arm64.ffa.rst -F: doc/usage/cmd/armffa.rst -F: drivers/firmware/arm-ffa/ -F: include/arm_ffa.h -F: test/cmd/armffa.c -F: test/dm/ffa.c - -ARM FREESCALE IMX -M: Stefano Babic -M: Fabio Estevam -R: NXP i.MX U-Boot Team -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-imx.git -N: imx -N: mxc -N: nxp -N: vf610 -F: arch/arm/cpu/arm1136/mx*/ -F: arch/arm/cpu/arm926ejs/mx*/ -F: arch/arm/include/asm/arch-mx*/ - -ARM HISILICON -M: Peter Griffin -M: Manivannan Sadhasivam -S: Maintained -F: arch/arm/cpu/armv8/hisilicon -F: arch/arm/include/asm/arch-hi6220/ -F: arch/arm/include/asm/arch-hi3660/ -F: arch/arm/mach-histb - -ARM HPE GXP ARCHITECTURE -M: Jean-Marie Verdun -M: Nick Hawkins -S: Maintained -F: arch/arm/dts/hpe-bmc* -F: arch/arm/dts/hpe-gxp* -F: arch/arm/mach-hpe/ -F: board/hpe/ -F: configs/gxp_defconfig -F: doc/device-tree-bindings/spi/hpe,gxp-spi.yaml -F: drivers/timer/gxp-timer.c -F: drivers/spi/gxp_spi.c - -ARM IPQ40XX -M: Robert Marko -S: Maintained -F: arch/arm/mach-ipq40xx/ -F: include/dt-bindings/clock/qcom,gcc-ipq4019.h -F: drivers/clk/qcom/clock-ipq4019.c -F: drivers/phy/phy-qcom-ipq4019-usb.c -F: drivers/spi/spi-qup.c -F: drivers/net/mdio-ipq4019.c -F: drivers/rng/msm_rng.c -F: drivers/pinctrl/qcom/pinctrl-ipq4019.c - -ARM LAYERSCAPE SFP -M: Sean Anderson -S: Maintained -F: drivers/misc/ls2_sfp.c - -ARM MARVELL KIRKWOOD ARMADA-XP ARMADA-38X ARMADA-37XX ARMADA-7K/8K -M: Stefan Roese -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-marvell.git -F: arch/arm/mach-kirkwood/ -F: arch/arm/mach-mvebu/ -F: drivers/ata/ahci_generic.c -F: drivers/clk/mvebu/ -F: drivers/ddr/marvell/ -F: drivers/gpio/mvebu_gpio.c -F: drivers/i2c/mvtwsi.c -F: drivers/mmc/xenon_sdhci.c -F: drivers/phy/marvell/ -F: drivers/pinctrl/mvebu/ -F: drivers/rtc/armada38x.c -F: drivers/spi/kirkwood_spi.c -F: drivers/spi/mvebu_a3700_spi.c -F: drivers/pci/pcie_dw_mvebu.c -F: drivers/pci/pcie-xilinx-nwl.c -F: drivers/watchdog/armada-37xx-wdt.c -F: drivers/watchdog/orion_wdt.c -F: include/configs/mv-common.h - -ARM MARVELL PCIE CONTROLLER DRIVERS -M: Stefan Roese -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-marvell.git -F: drivers/pci/pci-aardvark.c -F: drivers/pci/pci_mvebu.c - -ARM MARVELL PXA1908 -M: Duje Mihanović -S: Maintained -T: git git://git.dujemihanovic.xyz/u-boot.git -F: arch/arm/dts/pxa1908* -F: arch/arm/mach-mmp/ -F: include/configs/pxa1908.h - -ARM MARVELL SERIAL DRIVERS -M: Pali Rohár -M: Stefan Roese -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-marvell.git -F: drivers/serial/serial_mvebu_a3700.c - -ARM MEDIATEK -M: Ryder Lee -M: Weijie Gao -M: Chunfeng Yun -M: Igor Belwon -M: David Lechner -M: Julien Stephan -R: GSS_MTK_Uboot_upstream -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-mediatek.git -S: Maintained F: arch/arm/dts/mt* +F: drivers/gpio/mt8183_gpio.c F: drivers/power/domain/mt* F: drivers/power/regulator/mt*.c F: drivers/usb/mtu3/ +F: drivers/video/panel_boe_tv101wum.c F: include/power/mt*.h -N: mediatek -N: mtk - -ARM METHODE SUPPORT -M: Robert Marko -S: Maintained -F: arch/arm/dts/armada-3720-eDPU* -F: arch/arm/dts/armada-3720-uDPU* -F: configs/eDPU_defconfig -F: configs/uDPU_defconfig - -ARM MICROCHIP/ATMEL AT91 -M: Eugen Hristev -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-at91.git -F: arch/arm/dts/sam* -F: drivers/misc/microchip_flexcom.c -F: include/dt-bindings/sound/microchip,pdmc.h -F: drivers/timer/mchp-pit64b-timer.c -N: at91 -N: atmel - -ARM MSC SM2S IMX8MP SOM -M: Martyn Welch -M: Ian Ray -S: Maintained -F: arch/arm/dts/imx8mp-msc-sm2s* -F: board/msc/sm2s_imx8mp/ -F: configs/msc_sm2s_imx8mp_defconfig -F: include/configs/msc_sm2s_imx8mp.h - -ARM NEXELL S5P4418 -M: Stefan Bosch -S: Maintained -F: arch/arm/cpu/armv7/s5p4418/ -F: arch/arm/dts/s5p4418* -F: arch/arm/mach-nexell/ -F: board/friendlyarm/ -F: configs/s5p4418_nanopi2_defconfig -F: doc/README.s5p4418 -F: drivers/gpio/nx_gpio.c -F: drivers/i2c/nx_i2c.c -F: drivers/mmc/nexell_dw_mmc_dm.c -F: drivers/pinctrl/nexell/ -F: drivers/serial/serial_s5p4418_pl011.c -F: drivers/video/nexell/ -F: drivers/video/nexell_display.c -F: include/configs/s5p4418_nanopi2.h - -ARM OWL -M: Manivannan Sadhasivam -S: Maintained -F: arch/arm/include/asm/arch-owl/ -F: arch/arm/mach-owl/ -F: doc/board/actions/ -F: drivers/clk/owl/ -F: drivers/serial/serial_owl.c -F: include/configs/owl-common.h -F: configs/bubblegum_96_defconfig -F: configs/cubieboard7_defconfig - -ARM RENESAS RMOBILE/R-CAR -M: Nobuhiro Iwamatsu -M: Marek Vasut -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-sh.git -F: arch/arm/mach-renesas/ -F: drivers/clk/renesas/ -F: drivers/gpio/gpio-rcar.c -F: drivers/i2c/rcar_* -F: drivers/i2c/sh_i2c.c -F: drivers/mmc/renesas-sdhi.c -F: drivers/mmc/sh_mmcif* -F: drivers/mmc/tmio-common* -F: drivers/mtd/renesas_rpc_hf.c -F: drivers/net/ravb.c -F: drivers/net/rswitch.c -F: drivers/net/sh_eth* -F: drivers/pci/pci-rcar-* -F: drivers/phy/phy-rcar-* -F: drivers/phy/renesas/ -F: drivers/pinctrl/renesas/ -F: drivers/serial/serial_sh* -F: drivers/spi/renesas_rpc_spi.c -F: drivers/spi/sh_qspi.c -F: drivers/sysinfo/rcar3.c -F: drivers/usb/host/xhci-rcar* - -ARM ROCKCHIP -M: Quentin Schulz -M: Kever Yang -R: Simon Glass -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-rockchip.git -# Exclude from N: px5 matches -X: configs/kmsupx5_defconfig -N: px30 -N: px5 -# RK3xxx SoC family -N: rk3 -# RK8xx PMIC/regulator family -N: rk8 -N: rkmtd -N: rockchip -N: rockusb -# RV11xx SoC family -N: rv11 -F: board/radxa/ -F: board/theobroma-systems -F: drivers/gpio/rk_gpio.c -F: drivers/i2c/rk_i2c.c -F: drivers/pwm/rk_pwm.c -F: drivers/spi/rk_spi.[ch] -F: tools/rkcommon.c -F: tools/rkcommon.h -F: tools/rkimage.c -F: tools/rkmux.py -F: tools/rksd.c -F: tools/rkspi.c - -ARM SAMSUNG -M: Minkyu Kang -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-samsung.git -F: arch/arm/mach-exynos/ -F: arch/arm/mach-s5pc1xx/ -F: arch/arm/cpu/armv7/s5p-common/ - -ARM SAMSUNG CLOCK -M: Sam Protsenko -S: Maintained -F: drivers/clk/exynos/clk-pll.c -F: drivers/clk/exynos/clk-pll.h -F: drivers/clk/exynos/clk.c -F: drivers/clk/exynos/clk.h - -ARM SAMSUNG EXYNOS850 SOC -M: Sam Protsenko -S: Maintained -F: drivers/clk/exynos/clk-exynos850.c -F: drivers/phy/phy-exynos-usbdrd.c -F: drivers/pinctrl/exynos/pinctrl-exynos850.c - -ARM SAMSUNG SOC DRIVERS -M: Sam Protsenko -S: Maintained -F: doc/device-tree-bindings/soc/samsung/exynos-pmu.yaml -F: drivers/soc/samsung/* - -ARM SANCLOUD -M: Paul Barker -R: Marc Murphy -S: Supported -F: arch/arm/dts/am335x-sancloud* - -ARM SC5XX -M: Greg Malysa -M: Vasileios Bimpikas -M: Arturs Artamonovs -L: linux@analog.com -S: Supported -T: git https://github.com/analogdevicesinc/u-boot -F: arch/arm/dts/sc5* -F: arch/arm/include/asm/arch-sc5xx/ -F: arch/arm/mach-sc5xx/ -F: board/adi/ -F: configs/sc5* -F: doc/device-tree-bindings/arm/adi/adi,sc5xx.yaml -F: doc/device-tree-bindings/clock/adi,sc5xx-clocks.yaml -F: doc/device-tree-bindings/pinctrl/adi,adsp-pinctrl.yaml -F: doc/device-tree-bindings/timer/adi,sc5xx-gptimer.yaml -F: drivers/clk/adi/ -F: drivers/dma/adi_dma.c -F: drivers/gpio/adp5588_gpio.c -F: drivers/gpio/gpio-adi-adsp.c -F: drivers/i2c/adi_i2c.c -F: drivers/mmc/adi_sdhci.c -F: drivers/net/dwc_eth_qos_adi.c -F: drivers/pinctrl/pinctrl-adi-adsp.c -F: drivers/remoteproc/adi_sc5xx_rproc.c -F: drivers/serial/serial_adi_uart4.c -F: drivers/spi/adi_spi3.c -F: drivers/timer/adi_sc5xx_timer.c -F: drivers/usb/musb-new/sc5xx.c -F: drivers/watchdog/adi_wdt.c -F: include/configs/sc5* -F: include/dt-bindings/clock/adi-sc5xx-clock.h -F: include/dt-bindings/pinctrl/adi-adsp.h -F: include/env/adi/ - -ARM SNAPDRAGON -M: Casey Connolly -M: Neil Armstrong -R: Sumit Garg -L: u-boot-qcom@groups.io -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-snapdragon.git -F: configs/qcm6490_defconfig -F: configs/qcs9100_defconfig -F: drivers/*/*/pm8???-* -F: drivers/gpio/msm_gpio.c -F: drivers/mmc/msm_sdhci.c -F: drivers/phy/msm8916-usbh-phy.c -F: drivers/phy/qcom/ -F: drivers/serial/serial_msm.c -F: drivers/serial/serial_msm_geni.c -F: drivers/smem/msm_smem.c -F: drivers/spmi/spmi-msm.c -F: drivers/usb/host/ehci-msm.c -N: qcom -N: snapdragon -N: qualcomm - -ARM STI -M: Patrice Chotard -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-stm.git -F: arch/arm/mach-sti/ -F: arch/arm/include/asm/arch-sti*/ -F: drivers/phy/sti_usb_phy.c -F: drivers/pinctrl/pinctrl-sti.c -F: drivers/mmc/sti_sdhci.c -F: drivers/reset/sti-reset.c -F: drivers/serial/serial_sti_asc.c -F: drivers/sysreset/sysreset_sti.c -F: drivers/timer/arm_global_timer.c -F: drivers/usb/host/dwc3-sti.c -F: include/dt-bindings/clock/stih407-clks.h -F: include/dt-bindings/clock/stih410-clks.h -F: include/dt-bindings/reset/stih407-resets.h - -ARM STM STM32MP -M: Patrick Delaunay -M: Patrice Chotard -L: uboot-stm32@st-md-mailman.stormreply.com (moderated for non-subscribers) -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-stm.git -S: Maintained -F: arch/arm/mach-stm32mp/ -F: doc/board/st/ -F: drivers/adc/stm32-adc* -F: drivers/clk/stm32/ -F: drivers/gpio/stm32_gpio.c -F: drivers/hwspinlock/stm32_hwspinlock.c -F: drivers/i2c/stm32f7_i2c.c -F: drivers/mailbox/stm32-ipcc.c -F: drivers/memory/stm32-omm.c -F: drivers/misc/stm32mp_fuse.c -F: drivers/misc/stm32_rcc.c -F: drivers/mmc/stm32_sdmmc2.c -F: drivers/mtd/nand/raw/stm32_fmc2_nand.c -F: drivers/phy/phy-stm32-usbphyc.c -F: drivers/pinctrl/pinctrl_stm32.c -F: drivers/power/pmic/stpmic1.c -F: drivers/power/regulator/stm32-vrefbuf.c -F: drivers/power/regulator/stpmic1.c -F: drivers/ram/stm32mp1/ -F: drivers/remoteproc/stm32_copro.c -F: drivers/reset/stm32/ -F: drivers/rng/optee_rng.c -F: drivers/rng/stm32_rng.c -F: drivers/rtc/stm32_rtc.c -F: drivers/serial/serial_stm32.* -F: drivers/spi/stm32_ospi.c -F: drivers/spi/stm32_qspi.c -F: drivers/spi/stm32_spi.c -F: drivers/video/stm32/stm32_ltdc.c -F: drivers/video/stm32/stm32_lvds.c -F: drivers/watchdog/stm32mp_wdt.c -F: include/dt-bindings/clock/stm32fx-clock.h -F: include/dt-bindings/clock/stm32mp* -F: include/dt-bindings/pinctrl/stm32-pinfunc.h -F: include/dt-bindings/reset/stm32mp* -F: include/stm32_rcc.h -F: tools/logos/st.bmp -F: tools/stm32image.c -N: stm -N: stm32 - -ARM SUNXI -M: Andre Przywara -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-sunxi.git -F: arch/arm/cpu/armv7/sunxi/ -F: arch/arm/include/asm/arch-sunxi/ -F: arch/arm/mach-sunxi/ -F: board/sunxi/ -F: drivers/clk/sunxi/ -F: drivers/phy/allwinner/ -F: drivers/pinctrl/sunxi/ -F: drivers/video/sunxi/ -F: tools/sunxi* - -ARM TEGRA -M: Thierry Reding -M: Svyatoslav Ryhel -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-tegra.git -F: arch/arm/dts/tegra* -F: arch/arm/include/asm/arch-tegra*/ -F: arch/arm/mach-tegra/ -F: drivers/*/tegra* -F: drivers/*/tegra*/ - -ARM TI -M: Tom Rini -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-ti.git -F: arch/arm/dts/am57xx* -F: arch/arm/dts/dra7* -F: arch/arm/mach-davinci/ -F: arch/arm/mach-k3/ -F: arch/arm/mach-keystone/ -F: arch/arm/mach-omap2/ -F: arch/arm/include/asm/arch-omap*/ -F: arch/arm/include/asm/ti-common/ -F: board/ti/ -F: doc/board/ti/ -F: drivers/dma/ti* -F: drivers/dma/ti*/ -F: drivers/firmware/ti_sci.* -F: drivers/gpio/omap_gpio.c -F: drivers/memory/ti-aemif.c -F: drivers/misc/k3_avs.c -F: drivers/mailbox/k3-sec-procy.c -F: drivers/pci/pcie_cdns_ti.c -F: drivers/pci/pcie_dw_ti.c -F: drivers/phy/keystone-usb-phy.c -F: drivers/phy/omap-usb2-phy.c -F: drivers/phy/phy-ti-am654.c -F: drivers/phy/ti-pipe3-phy.c -F: drivers/ram/k3* -F: drivers/ram/k3*/ -F: drivers/remoteproc/ipu_rproc.c -F: drivers/remoteproc/k3_system_controller.c -F: drivers/remoteproc/pruc_rpoc.c -F: drivers/remoteproc/ti* -F: drivers/reset/reset-dra7.c -F: drivers/reset/reset-ti-sci.c -F: drivers/rtc/davinci.c -F: drivers/serial/serial_omap.c -F: drivers/soc/ti/ -F: drivers/sysreset/sysreset-ti-sci.c -F: drivers/thermal/ti-bandgap.c -F: drivers/timer/omap-timer.c -F: drivers/video/tidss/ -F: drivers/watchdog/omap_wdt.c -F: include/linux/pruss_driver.h -F: include/linux/soc/ti/ - -ARM TI OMAP4 -M: Bastien Curutchet -S: Maintained -F: arch/arm/dts/omap4* -F: arch/arm/include/asm/arch-omap4/ -F: arch/arm/mach-omap2/omap4/ -F: include/configs/ti_omap4_common.h -N: omap4_var_som - -ARM U8500 -M: Stephan Gerhold -R: Linus Walleij -S: Maintained -F: arch/arm/dts/ste-* -F: arch/arm/mach-u8500/ -F: drivers/gpio/nmk_gpio.c -F: drivers/phy/phy-ab8500-usb.c -F: drivers/power/pmic/ab8500.c -F: drivers/timer/nomadik-mtu-timer.c -F: drivers/usb/musb-new/ux500.c -F: drivers/video/mcde_simple.c - -ARM UNIPHIER -M: Kunihiko Hayashi -R: Dai Okamura -S: Maintained -F: arch/arm/dts/uniphier-* -F: arch/arm/mach-uniphier/ -F: configs/uniphier_*_defconfig -N: uniphier - -ARM VERSAL NET -M: Michal Simek -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-microblaze.git -F: arch/arm/mach-versal-net/ -F: drivers/soc/soc_xilinx_versal_net.c -N: (? -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-microblaze.git -F: arch/arm/mach-versal/ -F: drivers/net/xilinx_axi_mrmac.* -F: drivers/soc/soc_xilinx_versal.c -F: drivers/spi/cadence_ospi_versal.c -F: drivers/watchdog/xilinx_wwdt.c -N: (? -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-microblaze.git -F: arch/arm/mach-versal2/ - -ARM VERSATILE EXPRESS DRIVERS -M: Liviu Dudau -S: Maintained -T: git git://github.com/ARM-software/u-boot.git -F: drivers/misc/vexpress_config.c -N: vexpress - -ARM ZYNQ and ZYNQMP -M: Michal Simek -M: Michal Simek -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-microblaze.git -F: doc/board/xilinx/ -F: doc/device-tree-bindings/video/syncoam,seps525.txt -F: drivers/gpio/gpio_slg7xl45106.c -F: drivers/i2c/i2c-cdns.c -F: drivers/i2c/muxes/pca954x.c -F: drivers/net/phy/ethernet_id.c -F: drivers/net/phy/xilinx_phy.c -F: drivers/pwm/pwm-cadence-ttc.c -F: drivers/timer/cadence-ttc.c -F: drivers/video/seps525.c -F: drivers/watchdog/cdns_wdt.c -N: ultra96 -N: zynq - -ARM ZYNQMP R5 -M: Michal Simek -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-microblaze.git -F: arch/arm/mach-zynqmp-r5/ - -ARM PHYTIUM -M: liuhao -M: shuyiqi -S: Maintained -F: drivers/pci/pcie_phytium.c -F: arch/arm/dts/phytium-durian.dts - -ASPEED AST2600 I2C DRIVER -M: Ryan Chen -R: Aspeed BMC SW team -S: Maintained -F: drivers/i2c/ast2600_i2c.c - -ASPEED FMC SPI DRIVER -M: Chin-Ting Kuo -M: Cédric Le Goater -R: Aspeed BMC SW team -S: Maintained -F: drivers/spi/spi-aspeed-smc.c - -BINMAN -M: Simon Glass -M: Alper Nebi Yasak -S: Maintained -F: doc/develop/binman_tests.rst -F: tools/binman/ - -BLKMAP -M: Tobias Waldekranz -S: Maintained -F: cmd/blkmap.c -F: doc/usage/blkmap.rst -F: drivers/block/blkmap.c -F: include/blkmap.h -F: test/dm/blkmap.c - -BOOTSTD -M: Simon Glass -S: Maintained -F: boot/bootdev*.c -F: boot/bootflow.c -F: boot/bootmeth*.c -F: boot/bootstd.c -F: cmd/bootdev.c -F: cmd/bootflow.c -F: doc/develop/bootstd/ -F: doc/usage/bootdev.rst -F: doc/usage/bootflow.rst -F: doc/usage/bootmeth.rst -F: drivers/mmc/mmc_bootdev.c -F: include/bootdev.h -F: include/bootflow.h -F: include/bootmeth.h -F: include/bootstd.h -F: net/eth_bootdevice.c -F: test/boot/ - -BOOTMETH_ANDROID -M: Mattijs Korpershoek -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-dfu.git -F: boot/bootmeth_android.c -F: boot/bootmeth_android.h -F: doc/develop/bootstd/android.rst - -BTRFS -M: Marek Behún -R: Qu Wenruo -L: linux-btrfs@vger.kernel.org -S: Maintained -F: cmd/btrfs.c -F: fs/btrfs/ -F: include/btrfs.h - -BUILDMAN -M: Simon Glass -S: Maintained -F: tools/buildman/ - -CAAM -M: Gaurav Jain -S: Maintained -F: arch/arm/dts/ls1021a-twr-u-boot.dtsi -F: drivers/crypto/fsl/ -F: include/fsl_sec.h - -CAT -M: Roger Knecht -S: Maintained -F: cmd/cat.c - -CFI FLASH -M: Stefan Roese -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-cfi-flash.git -F: drivers/mtd/cfi_flash.c -F: drivers/mtd/jedec_flash.c - -CLOCK -M: Lukasz Majewski -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-clk.git -F: drivers/clk/ -F: drivers/clk/imx/ - -CPU -M: Simon Glass -M: Hou Zhiqiang -S: Maintained -F: cmd/cpu.c -F: doc/usage/cpu.rst - -CYCLIC -M: Stefan Roese -S: Maintained -F: cmd/cyclic.c -F: common/cyclic.c -F: include/cyclic.h - -DEVICETREE REBASING SUBTREE -M: Sumit Garg -S: Maintained -F: dts/upstream/ -N: OF_UPSTREAM - -DFU -M: Lukasz Majewski -M: Mattijs Korpershoek -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-dfu.git -F: cmd/dfu.c -F: cmd/usb_*.c -F: common/dfu.c -F: common/spl/spl_dfu.c -F: common/update.c -F: doc/api/dfu.rst -F: doc/usage/dfu.rst -F: drivers/dfu/ -F: drivers/usb/*/*gadget* -F: drivers/usb/gadget/ -F: include/dfu.h -F: include/linux/usb/ch9.h -F: include/linux/usb/gadget.h - -DRIVER MODEL -M: Simon Glass -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-dm.git -F: doc/driver-model/ -F: drivers/core/ -F: include/dm/ -F: test/dm/ - -EFI CLIENT -M: Simon Glass -M: Heinrich Schuchardt -S: Maintained -W: https://docs.u-boot-project.org/en/latest/develop/uefi/u-boot_on_efi.html -F: board/efi/efi-x86_app -F: configs/efi-x86_app* -F: doc/develop/uefi/u-boot_on_efi.rst -F: drivers/block/efi-media-uclass.c -F: drivers/block/sb_efi_media.c -F: lib/efi_client/ -F: scripts/build-efi.sh -F: test/dm/efi_media.c - -EFI LOADER -M: Heinrich Schuchardt -M: Ilias Apalodimas -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-efi.git -F: arch/arm/lib/*_efi.* -F: cmd/bootefi.c -F: cmd/eficonfig.c -F: cmd/efidebug.c -F: cmd/nvedit_efi.c -F: doc/api/efi.rst -F: doc/develop/uefi/* -F: doc/mkeficapsule.1 -F: doc/usage/bootefi.rst -F: drivers/rtc/emul_rtc.c -F: include/capitalization.h -F: include/charset.h -F: include/cp1250.h -F: include/cp437.h -F: include/efi* -F: include/pe.h -F: include/asm-generic/pe.h -F: include/mm_communication.h -F: lib/charset.c -F: lib/efi*/ -F: test/lib/efi_* -F: test/py/tests/test_efi* -F: test/py/tests/test_efi*/ -F: test/unicode_ut.c -F: cmd/bootefi.c -F: cmd/efidebug.c -F: cmd/nvedit_efi.c -F: tools/efivar.py -F: tools/file2include.c -F: tools/mkeficapsule.c - -ENVIRONMENT -S: Orphaned -F: env/ -F: include/env/ -F: include/env* -F: test/env/ -F: tools/env/ -F: tools/env* -F: tools/mkenvimage.c - -ENVIRONMENT AS TEXT -M: Simon Glass -S: Maintained -F: doc/usage/environment.rst -F: scripts/env2string.awk - -EROFS -M: Huang Jianan -L: linux-erofs@lists.ozlabs.org -S: Maintained -F: cmd/erofs.c -F: fs/erofs/ -F: include/erofs.h -F: test/py/tests/test_fs/test_erofs.py - -EVENTS -M: Simon Glass -S: Maintained -F: cmd/event.c -F: common/event.c -F: include/event.h -F: scripts/event_dump.py -F: test/common/event.c -F: test/py/tests/test_event_dump.py - -EXTENSION -M: Kory Maincent -S: Maintained -F: board/sunxi/chip.c -F: board/ti/common/cape_detect.c -F: boot/extension-uclass.c -F: cmd/extension_board.c -F: include/extension_board.h - -FASTBOOT -M: Mattijs Korpershoek -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-dfu.git -F: cmd/fastboot.c -F: doc/android/fastboot*.rst -F: include/fastboot.h -F: include/fastboot-internal.h -F: include/net/fastboot_tcp.h -F: include/net/fastboot_udp.h -F: drivers/fastboot/ -F: drivers/usb/gadget/f_fastboot.c -F: net/fastboot_tcp.c -F: net/fastboot_udp.c -F: test/dm/fastboot.c - -FPGA -M: Michal Simek -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-microblaze.git -F: drivers/fpga/ -F: cmd/fpga.c -F: include/fpga.h -F: test/dm/fpga.c - -FLATTENED DEVICE TREE -M: Simon Glass -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-fdt.git -F: lib/fdtdec* -F: lib/libfdt/ -F: include/fdt* -F: include/linux/libfdt* -F: cmd/fdt.c -F: common/fdt_support.c -F: scripts/dtc-version.sh - -FREEBSD -M: Rafal Jaworowski -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-freebsd.git - -FREESCALE QORIQ -M: Peng Fan -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-fsl-qoriq.git -F: drivers/watchdog/sp805_wdt.c -F: drivers/watchdog/sbsa_gwdt.c - -FWU Multi Bank Update -M: Sughosh Ganu -M: Kory Maincent -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-efi.git -F: doc/fwumdata.1 -F: doc/mkfwumdata.1 -F: lib/fwu_updates/* -F: drivers/fwu-mdata/* -F: tools/fwumdata_src/fwumdata.c -F: tools/fwumdata_src/fwumdata.h -F: tools/fwumdata_src/mkfwumdata.c - -GATEWORKS_SC -M: Tim Harvey -S: Maintained -F: drivers/misc/gsc.c -F: include/gsc.h - -GOLDFISH SERIAL DRIVER -M: Kuan-Wei Chiu -S: Maintained -F: drivers/serial/serial_goldfish.c -F: include/goldfish_tty.h - -GOLDFISH TIMER DRIVER -M: Kuan-Wei Chiu -S: Maintained -F: drivers/timer/goldfish_timer.c -F: include/goldfish_timer.h - -INTERCONNECT -M: Neil Armstrong -S: Maintained -T: git https://git.u-boot-project.org/u-boot/u-boot.git -F: arch/sandbox/include/asm/interconnect.h -F: doc/api/interconnect.rst -F: drivers/interconnect/ -F: include/interconnect-uclass.h -F: include/interconnect.h -F: test/dm/interconnect.c - -I2C -M: Heiko Schocher -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-i2c.git -F: drivers/i2c/ - -I3C -M: Dinesh -S: Maintained -T: git https://git.u-boot-project.org/u-boot/u-boot.git -F: cmd/i3c.c -F: drivers/i3c/ - -JEDEC JC-42.4 / TSE2004av TEMPERATURE SENSOR -M: Vincent Jardin -S: Maintained -F: drivers/thermal/jc42.c - -KWBIMAGE / KWBOOT TOOLS -M: Pali Rohár -M: Marek Behún -M: Stefan Roese -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-marvell.git -F: doc/README.kwbimage -F: doc/kwboot.1 -F: tools/kwb* - -LOGGING -M: Simon Glass -S: Maintained -T: git https://git.u-boot-project.org/u-boot/u-boot.git -F: common/log* -F: cmd/log.c -F: doc/develop/logging.rst -F: include/log.h -F: lib/getopt.c -F: test/log/ -F: test/py/tests/test_log.py - -M680X0 ARCHITECTURE -M: Kuan-Wei Chiu -S: Maintained -F: arch/m68k/cpu/m680x0/ -F: arch/m68k/include/asm/bootinfo.h - -M68K -M: Angelo Dureghello -M: Kuan-Wei Chiu -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-coldfire.git -F: arch/m68k/ -F: doc/arch/m68k.rst -F: drivers/watchdog/mcf_wdt.c - -MALI DISPLAY PROCESSORS -M: Liviu Dudau -S: Supported -T: git git://github.com/ARM-software/u-boot.git -F: drivers/video/mali_dp.c -F: drivers/i2c/i2c-versatile.c - -MBEDTLS -M: Raymond Mao -S: Maintained -F: lib/mbedtls/ - -MEMBUF -M: Simon Glass -S: Maintained -T: git https://git.u-boot-project.org/u-boot/u-boot.git -F: include/membuf.h -F: lib/membuf.c - -MICROBLAZE -M: Michal Simek -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-microblaze.git -F: arch/microblaze/ -F: cmd/mfsl.c -F: drivers/gpio/xilinx_gpio.c -F: drivers/net/xilinx_axi_emac.c -F: drivers/net/xilinx_emaclite.c -F: drivers/serial/serial_xuartlite.c -F: drivers/spi/xilinx_spi.c -F: drivers/sysreset/sysreset_gpio.c -F: drivers/timer/xilinx-timer.c -F: drivers/watchdog/xilinx_tb_wdt.c -N: xilinx - -MIPS -M: Daniel Schwierzeck -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-mips.git -F: arch/mips/ - -MIPS CORTINA ACCESS CAxxxx -M: Alex Nemirovsky -S: Supported -F: board/cortina/common/ -F: drivers/gpio/cortina_gpio.c -F: drivers/watchdog/cortina_wdt.c -F: drivers/serial/serial_cortina.c -F: drivers/led/led_cortina.c -F: drivers/mmc/ca_dw_mmc.c -F: drivers/spi/ca_sflash.c -F: drivers/i2c/i2c-cortina.c -F: drivers/i2c/i2c-cortina.h -F: drivers/net/cortina_ni.c -F: drivers/net/cortina_ni.h -F: drivers/net/phy/ca_phy.c - -MIPS MEDIATEK -M: Weijie Gao -M: David Lechner -M: Julien Stephan -R: GSS_MTK_Uboot_upstream -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-mediatek.git -S: Maintained -F: arch/mips/mach-mtmips/ -F: arch/mips/dts/mt7620.dtsi -F: arch/mips/dts/mt7621.dtsi -F: arch/mips/dts/mt7620-u-boot.dtsi -F: arch/mips/dts/mt7621-u-boot.dtsi -F: include/configs/mt7620.h -F: include/configs/mt7621.h -F: include/dt-bindings/clock/mt7620-clk.h -F: include/dt-bindings/clock/mt7621-clk.h -F: include/dt-bindings/clock/mt7628-clk.h -F: include/dt-bindings/reset/mt7620-reset.h -F: include/dt-bindings/reset/mt7621-reset.h -F: include/dt-bindings/reset/mt7628-reset.h -F: drivers/clk/mtmips/ -F: drivers/pinctrl/mtmips/ -F: drivers/gpio/mt7620_gpio.c -F: drivers/mtd/nand/raw/mt7621_nand.c -F: drivers/mtd/nand/raw/mt7621_nand.h -F: drivers/mtd/nand/raw/mt7621_nand_spl.c -F: drivers/net/mt7620-eth.c -F: drivers/phy/mt7620-usb-phy.c -F: drivers/reset/reset-mtmips.c -F: drivers/serial/serial_mt7620.c -F: drivers/spi/mt7620_spi.c -F: drivers/sysreset/sysreset_resetctl.c -F: drivers/watchdog/mt7620_wdt.c - -MIPS MSCC -M: Gregory CLEMENT -M: Lars Povlsen -M: Horatiu Vultur -S: Maintained -F: arch/mips/mach-mscc/ -F: arch/mips/dts/luton* -F: arch/mips/dts/mscc* -F: arch/mips/dts/ocelot* -F: arch/mips/dts/jr2* -F: arch/mips/dts/serval* -F: board/mscc/ -F: configs/mscc* -F: drivers/gpio/mscc_sgpio.c -F: drivers/spi/mscc_bb_spi.c -F: include/configs/vcoreiii.h -F: include/dt-bindings/mscc/ -F: drivers/pinctrl/mscc/ -F: drivers/net/mscc_eswitch/ - -MIPS JZ4780 -M: Ezequiel Garcia -S: Maintained -F: arch/mips/mach-jz47xx/ - -MIPS Octeon -M: Aaron Williams -S: Maintained -F: arch/mips/mach-octeon/ -F: arch/mips/include/asm/arch-octeon/ -F: arch/mips/dts/mrvl,cn73xx.dtsi - -MMC -M: Peng Fan -M: Jaehoon Chung -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-mmc.git -F: drivers/mmc/ -N: mmc - -NETWORK -M: Jerome Forissier -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-net.git -F: drivers/net/ -F: include/net.h -F: net/ - -NETWORK (LWIP) -M: Jerome Forissier -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-net.git -F: cmd/lwip/ -F: cmd/net-lwip.c -F: configs/qemu_arm64_lwip_defconfig -F: drivers/net/sandbox-lwip.c -F: include/net-lwip.h -F: lib/lwip/Makefile -F: lib/lwip/u-boot/ -F: net/lwip/ - -NIOS -M: Thomas Chou -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-nios.git -F: arch/nios2/ - -NVMe -M: Neil Armstrong -M: Bin Meng -S: Maintained -F: drivers/nvme/ -F: cmd/nvme.c -F: include/nvme.h -F: doc/develop/driver-model/nvme.rst - -NVMXIP -M: Abdellatif El Khlifi -S: Maintained -F: doc/develop/driver-model/nvmxip.rst -F: doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt -F: drivers/mtd/nvmxip/ -F: test/dm/nvmxip.c - -NVMEM -M: Sean Anderson -S: Maintained -F: doc/api/nvmem.rst -F: drivers/misc/nvmem.c -F: drivers/reboot-mode/reboot-mode-nvmem.c -F: include/nvmem.h - -NXP C45 TJA11XX PHY DRIVER -M: Radu Pirea -S: Maintained -F: drivers/net/phy/nxp-c45-tja11xx.c - -ONENAND -#M: Lukasz Majewski -S: Orphaned (Since 2017-01) -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-onenand.git -F: drivers/mtd/onenand/ - -OUT4-IMX6ULL-NANO BOARD -M: Oleh Kravchenko -S: Maintained -T: git https://github.com/Oleh-Kravchenko/u-boot-out4.git -F: arch/arm/dts/ev-imx280-nano-x-mb.dts -F: arch/arm/dts/o4-imx-nano.dts -F: arch/arm/dts/o4-imx6ull-nano.dtsi -F: board/out4 -F: configs/ev-imx280-nano-x-mb_defconfig -F: configs/o4-imx6ull-nano_defconfig -F: include/configs/o4-imx6ull-nano.h - -PATMAN -M: Simon Glass -S: Maintained -F: tools/patman/ - -PCI -M: Neil Armstrong -S: Maintained -F: cmd/pci.c -F: drivers/pci -F: include/pci.h -F: include/pci_ids.h -F: test/dm/pci.c -N: pci - -PCIe DWC IMX -M: Sumit Garg -S: Maintained -F: drivers/pci/pcie_dw_imx.c -F: drivers/phy/phy-imx8m-pcie.c - -PCI Endpoint -S: Orphaned -F: drivers/pci_endpoint/ -F: include/pci_ep.h - -PCI MPC85xx -M: Heiko Schocher -S: Maintained -F: drivers/pci/pci_mpc85xx.c - -PCI MPS -M: Stephen Carlson -S: Maintained -F: cmd/pci_mps.c -F: test/cmd/pci_mps.c - -PMBUS -M: Vincent Jardin -S: Maintained -F: cmd/pmbus.c -F: doc/develop/pmbus.rst -F: drivers/power/regulator/mpq8785.c -F: drivers/power/regulator/pmbus_generic.c -F: drivers/power/regulator/pmbus_helper.c -F: drivers/power/regulator/pmbus_helper.h -F: drivers/power/regulator/sandbox_pmbus.c -F: drivers/thermal/pmbus_thermal.c -F: include/pmbus.h -F: lib/pmbus.c -F: test/dm/pmbus.c - -POWER -M: Jaehoon Chung -M: Peng Fan -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-pmic.git -F: drivers/power/ -F: include/power/ - -POWERPC -S: Orphan (Since 2022-10-21) -F: arch/powerpc/ - -POWERPC MPC8XX -M: Christophe Leroy -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-mpc8xx.git -F: arch/powerpc/cpu/mpc8xx/ - -POWERPC MPC83XX -M: Mario Six -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-mpc83xx.git -F: drivers/ram/mpc83xx_sdram.c -F: include/dt-bindings/memory/mpc83xx-sdram.h -F: drivers/sysreset/sysreset_mpc83xx.c -F: drivers/sysreset/sysreset_mpc83xx.h -F: drivers/clk/mpc83xx_clk.c -F: drivers/clk/mpc83xx_clk.h -F: include/dt-bindings/clk/mpc83xx-clk.h -F: drivers/timer/mpc83xx_timer.c -F: drivers/cpu/mpc83xx_cpu.c -F: drivers/cpu/mpc83xx_cpu.h -F: drivers/misc/mpc83xx_serdes.c -F: arch/powerpc/cpu/mpc83xx/ -F: arch/powerpc/include/asm/arch-mpc83xx/ - -POWERPC MPC85XX -M: Marek Behún -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-mpc85xx.git -F: arch/powerpc/cpu/mpc85xx/ - -PWM LED -S: Orphan -F: doc/device-tree-bindings/leds/leds-pwm.txt -F: drivers/led/led_pwm.c - -QEMU VIRTUAL SYSTEM CONTROLLER -M: Kuan-Wei Chiu -S: Maintained -F: drivers/sysreset/sysreset_qemu_virt_ctrl.c -F: include/qemu_virt_ctrl.h - -RAW NAND -M: Dario Binacchi -M: Michael Trimarchi -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-nand-flash.git -F: drivers/mtd/nand/raw/ - -RISC-V -M: Tim Ouyang -M: Leo Liang -R: Yao Zi -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-riscv.git -F: arch/riscv/ -F: cmd/riscv/ -F: doc/arch/riscv.rst -F: doc/usage/sbi.rst -F: drivers/sysreset/sysreset_sbi.c -F: drivers/timer/andes_plmt_timer.c -F: drivers/timer/riscv_aclint_timer.c -F: tools/prelink-riscv.c - -RISC-V CANAAN KENDRYTE K210 -M: Sean Anderson -S: Maintained -F: doc/device-tree-bindings/mfd/canaan,k210-sysctl.txt -F: doc/device-tree-bindings/pinctrl/canaan,k210-fpioa.txt -F: drivers/clk/clk_k210.c -F: drivers/pinctrl/pinctrl-k210.c -F: include/k210/ - -RISC-V T-HEAD TH1520 -M: Yao Zi -S: Maintained -F: arch/riscv/cpu/th1520/ -F: drivers/clk/thead/clk-th1520-ap.c -F: drivers/net/dwmac_thead.c -F: drivers/pinctrl/pinctrl-th1520.c -F: drivers/ram/thead/th1520_ddr.c - -RNG -M: Sughosh Ganu -R: Heinrich Schuchardt -S: Maintained -F: cmd/rng.c -F: doc/api/rng.rst -F: drivers/rng/ -F: drivers/virtio/virtio_rng.c -F: include/rng.h - -ROCKUSB -M: Eddie Cai -S: Maintained -F: drivers/usb/gadget/f_rockusb.c -F: cmd/rockusb.c -F: doc/README.rockusb - -SANDBOX -M: Simon Glass -S: Maintained -F: arch/sandbox/ -F: configs/sandbox* -F: doc/arch/sandbox.rst -F: drivers/*/*sandbox*.c -F: include/dt-bindings/*/sandbox*.h -F: include/os.h - -SCMI -M: Peng Fan -S: Maintained -F: drivers/firmware/scmi/ -F: include/scmi* -N: scmi - -SDHCI CADENCE -M: Tanmay Kathpalia -S: Maintained -F: drivers/mmc/sdhci-cadence* - -SEAMA -M: Linus Walleij -S: Maintained -F: cmd/seama.c -F: doc/usage/cmd/seama.rst -F: test/cmd/seama.c - -SEMIHOSTING -R: Sean Anderson -S: Orphaned -N: semihosting - -SETEXPR -M: Roland Gaudig -S: Maintained -F: cmd/printf.c -F: doc/usage/setexpr.rst - -SH -M: Marek Vasut -M: Nobuhiro Iwamatsu -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-sh.git -F: arch/sh/ - -SL28CLPD -M: Michael Walle -S: Maintained -F: drivers/gpio/sl28cpld-gpio.c -F: drivers/misc/sl28cpld.c -F: drivers/watchdog/sl28cpld-wdt.c - -SLRE -M: Rasmus Villemoes -S: Maintained -F: include/slre.h -F: lib/slre.c -F: test/lib/slre.c - -SM3 -M: Heiko Schocher -S: Maintained -F: cmd/sm3sum.c -F: include/u-boot/sm3.h -F: lib/sm3.c - -SMBIOS -M: Raymond Mao -S: Maintained -F: arch/arm/dts/smbios_generic.dtsi -F: cmd/smbios.c -F: drivers/sysinfo/smbios.c -F: include/smbios* -F: lib/smbios.c - -SMCCC TRNG -M: Etienne Carriere -S: Maintained -F: drivers/rng/smccc_trng.c - -SPI -S: Orphaned -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-spi.git -F: drivers/spi/ -F: include/spi* - -SPI NAND -M: Dario Binacchi -M: Michael Trimarchi -R: Frieder Schrempf -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-nand-flash.git -F: drivers/mtd/nand/spi/ - -SPI-NOR -M: Vignesh R -R: Takahiro Kuwano -S: Maintained -F: drivers/mtd/spi/ -F: include/spi_flash.h -F: include/linux/mtd/cfi.h -F: include/linux/mtd/spi-nor.h - -SPMI -M: Mateusz Kulikowski -S: Maintained -F: drivers/spmi/ -F: include/spmi/ - -SQUASHFS -M: Joao Marcos Costa -M: Richard Genoud -R: Thomas Petazzoni -R: Miquel Raynal -S: Maintained -F: cmd/sqfs.c -F: common/spl/spl_squashfs.c -F: fs/squashfs/ -F: include/sqfs.h -F: test/py/tests/test_fs/test_squashfs/ - -STACKPROTECTOR -M: William Zhang -S: Maintained -F: common/stackprot.c -F: cmd/stackprot_test.c -F: test/py/tests/test_stackprotector.py - -TARGET_BCMNS3 -M: Rayagonda Kokatanur -S: Maintained -F: board/broadcom/bcmns3/ -F: doc/README.bcmns3 -F: configs/bcm_ns3_defconfig -F: include/configs/bcm_ns3.h -F: include/dt-bindings/memory/bcm-ns3-mc.h -F: arch/arm/Kconfig -F: arch/arm/dts/ns3-board.dts -F: arch/arm/dts/ns3.dtsi -F: arch/arm/cpu/armv8/bcmns3 -F: arch/arm/include/asm/arch-bcmns3/ -F: cmd/broadcom/Makefile -F: cmd/broadcom/chimp_boot.c -F: cmd/broadcom/nitro_image_load.c -F: cmd/broadcom/chimp_handshake.c - -TDA19988 HDMI ENCODER -M: Liviu Dudau -S: Maintained -F: drivers/video/tda19988.c - -TI LP5562 LED DRIVER -M: Rasmus Villemoes -S: Supported -F: drivers/led/led_lp5562.c - -TI SYSTEM SECURITY -M: Andrew F. Davis -S: Supported -F: arch/arm/mach-omap2/omap5/sec_entry_cpu1.S -F: arch/arm/mach-omap2/sec-common.c -F: arch/arm/mach-omap2/config_secure.mk -F: arch/arm/mach-k3/security.c -F: configs/am335x_hs_evm_defconfig -F: configs/am335x_hs_evm_spi_defconfig -F: configs/am335x_hs_evm_uart_defconfig -F: configs/am43xx_hs_evm_defconfig -F: configs/am43xx_hs_evm_qspi_defconfig -F: configs/am57xx_hs_evm_defconfig -F: configs/am57xx_hs_evm_usb_defconfig -F: configs/dra7xx_hs_evm_defconfig -F: configs/dra7xx_hs_evm_usb_defconfig -F: configs/k2hk_hs_evm_defconfig -F: configs/k2e_hs_evm_defconfig -F: configs/k2g_hs_evm_defconfig -F: configs/k2l_hs_evm_defconfig - -TPM DRIVERS -M: Ilias Apalodimas -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-tpm.git -F: cmd/tpm* -F: drivers/tpm/ -F: include/tpm* -F: lib/tpm* - -TQ-SYSTEMS -L: u-boot@ew.tq-group.com -S: Maintained -W: https://www.tq-group.com/en/products/tq-embedded/ -F: board/tq/* -F: doc/board/tq/* -F: drivers/sysinfo/tq_eeprom.c -F: include/configs/tq*.h -F: include/env/tq/* - -TEE -M: Jens Wiklander -M: Ilias Apalodimas -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-tpm.git -S: Maintained -F: cmd/optee* -F: doc/README.tee -F: doc/device-tree-bindings/firmware/linaro,optee-tz.txt -F: drivers/firmware/scmi/optee_agent.c -F: drivers/tee/ -F: include/sandboxtee.h -F: include/tee.h -F: include/tee/ -F: include/test/optee.h -F: test/dm/tee.c -F: test/optee/ -F: test/py/tests/test_optee_rpmb.py - -TEE-lib -M: Bryan O'Donoghue -S: Maintained -F: lib/optee - -UBI -M: Kyungmin Park -M: Heiko Schocher -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-ubi.git -F: drivers/mtd/ubi/ - -UFETCH -M: Casey Connolly -S: Maintained -F: cmd/ufetch.c - -UFS -M: Neil Armstrong -M: Bhupesh Sharma -M: Neha Malcom Francis -S: Maintained -F: common/spl/spl_ufs.c -F: drivers/ufs/ - -UPL -M: Simon Glass -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-dm.git -F: boot/upl* -F: cmd/upl.c -F: common/spl/spl_upl.c -F: doc/usage/upl.rst -F: doc/usage/cmd/upl.rst -F: include/upl.h -F: test/boot/upl.c -F: test/py/tests/test_upl.py - -USB -M: Marek Vasut -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-usb.git -N: usb - -USB TCPM -M: Sebastian Reichel -S: Maintained -F: cmd/tcpm.c -F: doc/usage/cmd/tcpm.rst -F: drivers/usb/tcpm/ -F: include/usb/pd.h -F: include/usb/tcpm.h - -USB xHCI -M: Bin Meng -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-usb.git topic-xhci -F: drivers/usb/host/xhci* -F: include/usb/xhci.h - -UTHREAD -M: Jerome Forissier -S: Maintained -F: cmd/spawn.c -F: include/uthread.h -F: lib/uthread.c -F: test/cmd/spawn.c -F: test/lib/uthread.c - -UUID testing -M: Abdellatif El Khlifi -S: Maintained -F: test/lib/uuid.c - -VBE -M: Simon Glass -S: Maintained -F: boot/vbe* -F: common/spl_reloc.c -F: include/vbe.h - -VIDEO -M: Anatolij Gustschin -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-video.git -F: drivers/video/ -F: include/video*.h - -VirtIO -M: Bin Meng -S: Maintained -F: drivers/virtio/ -F: cmd/virtio.c -F: include/config/virtio/ -F: include/config/virtio.h -F: include/config/cmd/virtio.h -F: include/virtio*.h -F: test/dm/virtio.c -F: doc/develop/driver-model/virtio.rst - -WATCHDOG -M: Stefan Roese -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-watchdog.git -F: cmd/wdt.c -F: drivers/watchdog/ -F: include/watchdog*.h - -X86 -M: Simon Glass -M: Bin Meng -S: Maintained -T: git https://git.u-boot-project.org/u-boot/custodians/u-boot-x86.git -F: arch/x86/ -F: cmd/x86/ - -XEN -M: Anastasiia Lukianenko -M: Oleksandr Andrushchenko -S: Maintained -F: arch/arm/cpu/armv8/xen/ -F: arch/arm/include/asm/xen.h -F: arch/arm/include/asm/xen/ -F: cmd/pvblock.c -F: drivers/serial/serial_xen.c -F: drivers/xen/ -F: include/pvblock.h -F: include/xen/ -F: include/xen.h -F: lib/sscanf.c -F: test/lib/sscanf.c - -XTENSA -M: Max Filippov -S: Maintained -F: arch/xtensa/ - -XXD -M: Roger Knecht -S: Maintained -F: cmd/xxd.c -F: doc/usage/cmd/xxd.rst -F: test/py/tests/test_xxd/ - -THE REST -M: Tom Rini -L: u-boot@lists.u-boot-project.org -Q: http://patchwork.ozlabs.org/project/uboot/list/ -S: Maintained -T: git https://git.u-boot-project.org/u-boot/u-boot.git -F: configs/tools-only_defconfig -F: * -F: */ diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index a11f3043670..17a1f408413 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -772,3 +772,11 @@ config MPFS_GPIO Enable to support the GPIO driver on Polarfire SoC endif + +config MT8183_GPIO + bool "MediaTek MT8183 GPIO driver" + depends on DM_GPIO && ARCH_MEDIATEK + help + Say yes here to support the MediaTek MT8183 GPIO controller. Only + the plain GPIO function is provided: pin mode multiplexing is the + responsibility of the boot firmware. diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index 020e23c7252..fb7bc5dbd31 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -83,3 +83,4 @@ obj-$(CONFIG_GPIO_SCMI) += gpio_scmi.o obj-$(CONFIG_$(PHASE_)ADP5585_GPIO) += adp5585_gpio.o obj-$(CONFIG_RZG2L_GPIO) += rzg2l-gpio.o obj-$(CONFIG_MPFS_GPIO) += mpfs_gpio.o +obj-$(CONFIG_MT8183_GPIO) += mt8183_gpio.o diff --git a/drivers/gpio/mt8183_gpio.c b/drivers/gpio/mt8183_gpio.c new file mode 100644 index 00000000000..d58d8026349 --- /dev/null +++ b/drivers/gpio/mt8183_gpio.c @@ -0,0 +1,154 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * MediaTek MT8183 GPIO driver. + * + * Copyright (C) 2026 Vincent Haudiquet + * + * Ported from the register layout of the ChromeOS depthcharge driver + * src/drivers/gpio/mt8183.h (GpioRegs/GpioValRegs), which is the same + * hardware the Linux pinctrl driver drivers/pinctrl/mediatek/ + * pinctrl-mtk-mt8183.c drives through its common code. + * + * Only the plain GPIO function is supported: pin direction (DIR), output + * value (DOUT) and input value (DIN). The MT8183 multiplexes most pads + * between several functions through per-pin mode registers which this + * driver does not touch; the boot firmware is expected to have put the + * requested pads into GPIO mode already, which holds for every pad this + * platform uses as a GPIO at boot time. + * + * Each of the 192 pins lives in one of six 32-pin groups. Every group + * owns a 16-byte GpioValRegs window (value at +0, set at +4, reset at + * +8) for each of dir/dout/din, so bits are set or cleared atomically + * by writing the target bit to the set/reset register. + */ + +#include +#include +#include +#include +#include + +#define GPIO_VAL_BITS 32 +#define GPIO_NUM_GROUPS 6 +#define GPIO_VAL_REGS_SIZE 16 + +/* Offsets of the per-group GpioValRegs blocks within the controller. */ +#define GPIO_DIR_OFFSET 0x000 +#define GPIO_DOUT_OFFSET 0x100 +#define GPIO_DIN_OFFSET 0x200 + +struct mt8183_gpio_priv { + void __iomem *base; +}; + +static void __iomem *mt8183_gpio_val_reg(struct mt8183_gpio_priv *priv, + u32 offset, unsigned int pin, int val) +{ + unsigned int group = pin / GPIO_VAL_BITS; + + return priv->base + offset + group * GPIO_VAL_REGS_SIZE + val * 4; +} + +static int mt8183_gpio_direction_input(struct udevice *dev, unsigned int pin) +{ + struct mt8183_gpio_priv *priv = dev_get_priv(dev); + + if (pin >= GPIO_VAL_BITS * GPIO_NUM_GROUPS) + return -EINVAL; + + /* dir.reset clears the bit: the pad becomes an input. */ + writel(BIT(pin % GPIO_VAL_BITS), + mt8183_gpio_val_reg(priv, GPIO_DIR_OFFSET, pin, 2)); + + return 0; +} + +static int mt8183_gpio_direction_output(struct udevice *dev, unsigned int pin, + int value) +{ + struct mt8183_gpio_priv *priv = dev_get_priv(dev); + + if (pin >= GPIO_VAL_BITS * GPIO_NUM_GROUPS) + return -EINVAL; + + /* dir.set sets the bit: the pad becomes an output. */ + writel(BIT(pin % GPIO_VAL_BITS), + mt8183_gpio_val_reg(priv, GPIO_DIR_OFFSET, pin, 1)); + writel(BIT(pin % GPIO_VAL_BITS), + mt8183_gpio_val_reg(priv, GPIO_DOUT_OFFSET, pin, + value ? 1 : 2)); + + return 0; +} + +static int mt8183_gpio_get_value(struct udevice *dev, unsigned int pin) +{ + struct mt8183_gpio_priv *priv = dev_get_priv(dev); + + return !!(readl(mt8183_gpio_val_reg(priv, GPIO_DIN_OFFSET, pin, 0)) & + BIT(pin % GPIO_VAL_BITS)); +} + +static int mt8183_gpio_set_value(struct udevice *dev, unsigned int pin, + int value) +{ + struct mt8183_gpio_priv *priv = dev_get_priv(dev); + + /* dout.set (val = 1) or dout.reset (val = 2) drives the pin. */ + writel(BIT(pin % GPIO_VAL_BITS), + mt8183_gpio_val_reg(priv, GPIO_DOUT_OFFSET, pin, + value ? 1 : 2)); + + return 0; +} + +static int mt8183_gpio_get_function(struct udevice *dev, unsigned int pin) +{ + struct mt8183_gpio_priv *priv = dev_get_priv(dev); + + if (pin >= GPIO_VAL_BITS * GPIO_NUM_GROUPS) + return GPIOF_UNUSED; + + if (readl(mt8183_gpio_val_reg(priv, GPIO_DIR_OFFSET, pin, 0)) & + BIT(pin % GPIO_VAL_BITS)) + return GPIOF_OUTPUT; + + return GPIOF_INPUT; +} + +static const struct dm_gpio_ops mt8183_gpio_ops = { + .direction_input = mt8183_gpio_direction_input, + .direction_output = mt8183_gpio_direction_output, + .get_value = mt8183_gpio_get_value, + .set_value = mt8183_gpio_set_value, + .get_function = mt8183_gpio_get_function, +}; + +static int mt8183_gpio_probe(struct udevice *dev) +{ + struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev); + struct mt8183_gpio_priv *priv = dev_get_priv(dev); + + priv->base = dev_read_addr_ptr(dev); + if (!priv->base) + return -EINVAL; + + uc_priv->gpio_count = GPIO_VAL_BITS * GPIO_NUM_GROUPS; + uc_priv->bank_name = "pio"; + + return 0; +} + +static const struct udevice_id mt8183_gpio_ids[] = { + { .compatible = "mediatek,mt8183-pinctrl" }, + { } +}; + +U_BOOT_DRIVER(mt8183_gpio) = { + .name = "mt8183_gpio", + .id = UCLASS_GPIO, + .of_match = mt8183_gpio_ids, + .probe = mt8183_gpio_probe, + .ops = &mt8183_gpio_ops, + .priv_auto = sizeof(struct mt8183_gpio_priv), +};