ebe363197e
There are quite a lot simple GPIO controller which are using regmap to access the hardware. This driver tries to be a base to unify existing code into one place. This won't cover everything but it should be a good starting point. It does not implement its own irq_chip because there is already a generic one for regmap based devices. Instead, the irq_chip will be instantiated in the parent driver and its irq domain will be associate to this driver. For now it consists of the usual registers, like set (and an optional clear) data register, an input register and direction registers. Out-of-the-box, it supports consecutive register mappings and mappings where the registers have gaps between them with a linear mapping between GPIO offset and bit position. For weirder mappings the user can register its own .xlate(). Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Link: https://lore.kernel.org/r/20200528145845.31436-3-michael@walle.cc Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
181 lines
7.8 KiB
Makefile
181 lines
7.8 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
# generic gpio support: platform drivers, dedicated expander chips, etc
|
|
|
|
ccflags-$(CONFIG_DEBUG_GPIO) += -DDEBUG
|
|
|
|
obj-$(CONFIG_GPIOLIB) += gpiolib.o
|
|
obj-$(CONFIG_GPIOLIB) += gpiolib-devres.o
|
|
obj-$(CONFIG_GPIOLIB) += gpiolib-legacy.o
|
|
obj-$(CONFIG_GPIOLIB) += gpiolib-devprop.o
|
|
obj-$(CONFIG_OF_GPIO) += gpiolib-of.o
|
|
obj-$(CONFIG_GPIO_SYSFS) += gpiolib-sysfs.o
|
|
obj-$(CONFIG_GPIO_ACPI) += gpiolib-acpi.o
|
|
|
|
# Device drivers. Generally keep list sorted alphabetically
|
|
obj-$(CONFIG_GPIO_REGMAP) += gpio-regmap.o
|
|
obj-$(CONFIG_GPIO_GENERIC) += gpio-generic.o
|
|
|
|
# directly supported by gpio-generic
|
|
gpio-generic-$(CONFIG_GPIO_GENERIC) += gpio-mmio.o
|
|
|
|
obj-$(CONFIG_GPIO_104_DIO_48E) += gpio-104-dio-48e.o
|
|
obj-$(CONFIG_GPIO_104_IDI_48) += gpio-104-idi-48.o
|
|
obj-$(CONFIG_GPIO_104_IDIO_16) += gpio-104-idio-16.o
|
|
obj-$(CONFIG_GPIO_74X164) += gpio-74x164.o
|
|
obj-$(CONFIG_GPIO_74XX_MMIO) += gpio-74xx-mmio.o
|
|
obj-$(CONFIG_GPIO_ADNP) += gpio-adnp.o
|
|
obj-$(CONFIG_GPIO_ADP5520) += gpio-adp5520.o
|
|
obj-$(CONFIG_GPIO_ADP5588) += gpio-adp5588.o
|
|
obj-$(CONFIG_GPIO_AGGREGATOR) += gpio-aggregator.o
|
|
obj-$(CONFIG_GPIO_ALTERA_A10SR) += gpio-altera-a10sr.o
|
|
obj-$(CONFIG_GPIO_ALTERA) += gpio-altera.o
|
|
obj-$(CONFIG_GPIO_AMD8111) += gpio-amd8111.o
|
|
obj-$(CONFIG_GPIO_AMD_FCH) += gpio-amd-fch.o
|
|
obj-$(CONFIG_GPIO_AMDPT) += gpio-amdpt.o
|
|
obj-$(CONFIG_GPIO_ARIZONA) += gpio-arizona.o
|
|
obj-$(CONFIG_GPIO_ASPEED) += gpio-aspeed.o
|
|
obj-$(CONFIG_GPIO_ASPEED_SGPIO) += gpio-aspeed-sgpio.o
|
|
obj-$(CONFIG_GPIO_ATH79) += gpio-ath79.o
|
|
obj-$(CONFIG_GPIO_BCM_KONA) += gpio-bcm-kona.o
|
|
obj-$(CONFIG_GPIO_BCM_XGS_IPROC) += gpio-xgs-iproc.o
|
|
obj-$(CONFIG_GPIO_BD70528) += gpio-bd70528.o
|
|
obj-$(CONFIG_GPIO_BD71828) += gpio-bd71828.o
|
|
obj-$(CONFIG_GPIO_BD9571MWV) += gpio-bd9571mwv.o
|
|
obj-$(CONFIG_GPIO_BRCMSTB) += gpio-brcmstb.o
|
|
obj-$(CONFIG_GPIO_BT8XX) += gpio-bt8xx.o
|
|
obj-$(CONFIG_GPIO_CADENCE) += gpio-cadence.o
|
|
obj-$(CONFIG_GPIO_CLPS711X) += gpio-clps711x.o
|
|
obj-$(CONFIG_GPIO_SNPS_CREG) += gpio-creg-snps.o
|
|
obj-$(CONFIG_GPIO_CRYSTAL_COVE) += gpio-crystalcove.o
|
|
obj-$(CONFIG_GPIO_CS5535) += gpio-cs5535.o
|
|
obj-$(CONFIG_GPIO_DA9052) += gpio-da9052.o
|
|
obj-$(CONFIG_GPIO_DA9055) += gpio-da9055.o
|
|
obj-$(CONFIG_GPIO_DAVINCI) += gpio-davinci.o
|
|
obj-$(CONFIG_GPIO_DLN2) += gpio-dln2.o
|
|
obj-$(CONFIG_GPIO_DWAPB) += gpio-dwapb.o
|
|
obj-$(CONFIG_GPIO_EIC_SPRD) += gpio-eic-sprd.o
|
|
obj-$(CONFIG_GPIO_EM) += gpio-em.o
|
|
obj-$(CONFIG_GPIO_EP93XX) += gpio-ep93xx.o
|
|
obj-$(CONFIG_GPIO_EXAR) += gpio-exar.o
|
|
obj-$(CONFIG_GPIO_F7188X) += gpio-f7188x.o
|
|
obj-$(CONFIG_GPIO_FTGPIO010) += gpio-ftgpio010.o
|
|
obj-$(CONFIG_GPIO_GE_FPGA) += gpio-ge.o
|
|
obj-$(CONFIG_GPIO_GPIO_MM) += gpio-gpio-mm.o
|
|
obj-$(CONFIG_GPIO_GRGPIO) += gpio-grgpio.o
|
|
obj-$(CONFIG_GPIO_GW_PLD) += gpio-gw-pld.o
|
|
obj-$(CONFIG_GPIO_HLWD) += gpio-hlwd.o
|
|
obj-$(CONFIG_HTC_EGPIO) += gpio-htc-egpio.o
|
|
obj-$(CONFIG_GPIO_ICH) += gpio-ich.o
|
|
obj-$(CONFIG_GPIO_INTEL_MID) += gpio-intel-mid.o
|
|
obj-$(CONFIG_GPIO_IOP) += gpio-iop.o
|
|
obj-$(CONFIG_GPIO_IT87) += gpio-it87.o
|
|
obj-$(CONFIG_GPIO_IXP4XX) += gpio-ixp4xx.o
|
|
obj-$(CONFIG_GPIO_JANZ_TTL) += gpio-janz-ttl.o
|
|
obj-$(CONFIG_GPIO_KEMPLD) += gpio-kempld.o
|
|
obj-$(CONFIG_GPIO_LOGICVC) += gpio-logicvc.o
|
|
obj-$(CONFIG_GPIO_LOONGSON1) += gpio-loongson1.o
|
|
obj-$(CONFIG_GPIO_LOONGSON) += gpio-loongson.o
|
|
obj-$(CONFIG_GPIO_LP3943) += gpio-lp3943.o
|
|
obj-$(CONFIG_GPIO_LP873X) += gpio-lp873x.o
|
|
obj-$(CONFIG_GPIO_LP87565) += gpio-lp87565.o
|
|
obj-$(CONFIG_GPIO_LPC18XX) += gpio-lpc18xx.o
|
|
obj-$(CONFIG_GPIO_LPC32XX) += gpio-lpc32xx.o
|
|
obj-$(CONFIG_GPIO_MADERA) += gpio-madera.o
|
|
obj-$(CONFIG_GPIO_MAX3191X) += gpio-max3191x.o
|
|
obj-$(CONFIG_GPIO_MAX7300) += gpio-max7300.o
|
|
obj-$(CONFIG_GPIO_MAX7301) += gpio-max7301.o
|
|
obj-$(CONFIG_GPIO_MAX730X) += gpio-max730x.o
|
|
obj-$(CONFIG_GPIO_MAX732X) += gpio-max732x.o
|
|
obj-$(CONFIG_GPIO_MAX77620) += gpio-max77620.o
|
|
obj-$(CONFIG_GPIO_MAX77650) += gpio-max77650.o
|
|
obj-$(CONFIG_GPIO_MB86S7X) += gpio-mb86s7x.o
|
|
obj-$(CONFIG_GPIO_MC33880) += gpio-mc33880.o
|
|
obj-$(CONFIG_GPIO_MC9S08DZ60) += gpio-mc9s08dz60.o
|
|
obj-$(CONFIG_GPIO_MENZ127) += gpio-menz127.o
|
|
obj-$(CONFIG_GPIO_MERRIFIELD) += gpio-merrifield.o
|
|
obj-$(CONFIG_GPIO_ML_IOH) += gpio-ml-ioh.o
|
|
obj-$(CONFIG_GPIO_MLXBF) += gpio-mlxbf.o
|
|
obj-$(CONFIG_GPIO_MLXBF2) += gpio-mlxbf2.o
|
|
obj-$(CONFIG_GPIO_MM_LANTIQ) += gpio-mm-lantiq.o
|
|
obj-$(CONFIG_GPIO_MOCKUP) += gpio-mockup.o
|
|
obj-$(CONFIG_GPIO_MOXTET) += gpio-moxtet.o
|
|
obj-$(CONFIG_GPIO_MPC5200) += gpio-mpc5200.o
|
|
obj-$(CONFIG_GPIO_MPC8XXX) += gpio-mpc8xxx.o
|
|
obj-$(CONFIG_GPIO_MSIC) += gpio-msic.o
|
|
obj-$(CONFIG_GPIO_MT7621) += gpio-mt7621.o
|
|
obj-$(CONFIG_GPIO_MVEBU) += gpio-mvebu.o
|
|
obj-$(CONFIG_GPIO_MXC) += gpio-mxc.o
|
|
obj-$(CONFIG_GPIO_MXS) += gpio-mxs.o
|
|
obj-$(CONFIG_GPIO_OCTEON) += gpio-octeon.o
|
|
obj-$(CONFIG_GPIO_OMAP) += gpio-omap.o
|
|
obj-$(CONFIG_GPIO_PALMAS) += gpio-palmas.o
|
|
obj-$(CONFIG_GPIO_PCA953X) += gpio-pca953x.o
|
|
obj-$(CONFIG_GPIO_PCF857X) += gpio-pcf857x.o
|
|
obj-$(CONFIG_GPIO_PCH) += gpio-pch.o
|
|
obj-$(CONFIG_GPIO_PCIE_IDIO_24) += gpio-pcie-idio-24.o
|
|
obj-$(CONFIG_GPIO_PCI_IDIO_16) += gpio-pci-idio-16.o
|
|
obj-$(CONFIG_GPIO_PISOSR) += gpio-pisosr.o
|
|
obj-$(CONFIG_GPIO_PL061) += gpio-pl061.o
|
|
obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio-pmic-eic-sprd.o
|
|
obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o
|
|
obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o
|
|
obj-$(CONFIG_GPIO_RC5T583) += gpio-rc5t583.o
|
|
obj-$(CONFIG_GPIO_RCAR) += gpio-rcar.o
|
|
obj-$(CONFIG_GPIO_RDA) += gpio-rda.o
|
|
obj-$(CONFIG_GPIO_RDC321X) += gpio-rdc321x.o
|
|
obj-$(CONFIG_GPIO_REG) += gpio-reg.o
|
|
obj-$(CONFIG_ARCH_SA1100) += gpio-sa1100.o
|
|
obj-$(CONFIG_GPIO_SAMA5D2_PIOBU) += gpio-sama5d2-piobu.o
|
|
obj-$(CONFIG_GPIO_SCH311X) += gpio-sch311x.o
|
|
obj-$(CONFIG_GPIO_SCH) += gpio-sch.o
|
|
obj-$(CONFIG_GPIO_SIFIVE) += gpio-sifive.o
|
|
obj-$(CONFIG_GPIO_SIOX) += gpio-siox.o
|
|
obj-$(CONFIG_GPIO_SODAVILLE) += gpio-sodaville.o
|
|
obj-$(CONFIG_GPIO_SPEAR_SPICS) += gpio-spear-spics.o
|
|
obj-$(CONFIG_GPIO_SPRD) += gpio-sprd.o
|
|
obj-$(CONFIG_GPIO_STA2X11) += gpio-sta2x11.o
|
|
obj-$(CONFIG_GPIO_STMPE) += gpio-stmpe.o
|
|
obj-$(CONFIG_GPIO_STP_XWAY) += gpio-stp-xway.o
|
|
obj-$(CONFIG_GPIO_SYSCON) += gpio-syscon.o
|
|
obj-$(CONFIG_GPIO_TB10X) += gpio-tb10x.o
|
|
obj-$(CONFIG_GPIO_TC3589X) += gpio-tc3589x.o
|
|
obj-$(CONFIG_GPIO_TEGRA186) += gpio-tegra186.o
|
|
obj-$(CONFIG_GPIO_TEGRA) += gpio-tegra.o
|
|
obj-$(CONFIG_GPIO_THUNDERX) += gpio-thunderx.o
|
|
obj-$(CONFIG_GPIO_TIMBERDALE) += gpio-timberdale.o
|
|
obj-$(CONFIG_GPIO_TPIC2810) += gpio-tpic2810.o
|
|
obj-$(CONFIG_GPIO_TPS65086) += gpio-tps65086.o
|
|
obj-$(CONFIG_GPIO_TPS65218) += gpio-tps65218.o
|
|
obj-$(CONFIG_GPIO_TPS6586X) += gpio-tps6586x.o
|
|
obj-$(CONFIG_GPIO_TPS65910) += gpio-tps65910.o
|
|
obj-$(CONFIG_GPIO_TPS65912) += gpio-tps65912.o
|
|
obj-$(CONFIG_GPIO_TPS68470) += gpio-tps68470.o
|
|
obj-$(CONFIG_GPIO_TQMX86) += gpio-tqmx86.o
|
|
obj-$(CONFIG_GPIO_TS4800) += gpio-ts4800.o
|
|
obj-$(CONFIG_GPIO_TS4900) += gpio-ts4900.o
|
|
obj-$(CONFIG_GPIO_TS5500) += gpio-ts5500.o
|
|
obj-$(CONFIG_GPIO_TWL4030) += gpio-twl4030.o
|
|
obj-$(CONFIG_GPIO_TWL6040) += gpio-twl6040.o
|
|
obj-$(CONFIG_GPIO_UCB1400) += gpio-ucb1400.o
|
|
obj-$(CONFIG_GPIO_UNIPHIER) += gpio-uniphier.o
|
|
obj-$(CONFIG_GPIO_VF610) += gpio-vf610.o
|
|
obj-$(CONFIG_GPIO_VIPERBOARD) += gpio-viperboard.o
|
|
obj-$(CONFIG_GPIO_VR41XX) += gpio-vr41xx.o
|
|
obj-$(CONFIG_GPIO_VX855) += gpio-vx855.o
|
|
obj-$(CONFIG_GPIO_WCD934X) += gpio-wcd934x.o
|
|
obj-$(CONFIG_GPIO_WHISKEY_COVE) += gpio-wcove.o
|
|
obj-$(CONFIG_GPIO_WINBOND) += gpio-winbond.o
|
|
obj-$(CONFIG_GPIO_WM831X) += gpio-wm831x.o
|
|
obj-$(CONFIG_GPIO_WM8350) += gpio-wm8350.o
|
|
obj-$(CONFIG_GPIO_WM8994) += gpio-wm8994.o
|
|
obj-$(CONFIG_GPIO_WS16C48) += gpio-ws16c48.o
|
|
obj-$(CONFIG_GPIO_XGENE) += gpio-xgene.o
|
|
obj-$(CONFIG_GPIO_XGENE_SB) += gpio-xgene-sb.o
|
|
obj-$(CONFIG_GPIO_XILINX) += gpio-xilinx.o
|
|
obj-$(CONFIG_GPIO_XLP) += gpio-xlp.o
|
|
obj-$(CONFIG_GPIO_XRA1403) += gpio-xra1403.o
|
|
obj-$(CONFIG_GPIO_XTENSA) += gpio-xtensa.o
|
|
obj-$(CONFIG_GPIO_ZEVIO) += gpio-zevio.o
|
|
obj-$(CONFIG_GPIO_ZX) += gpio-zx.o
|
|
obj-$(CONFIG_GPIO_ZYNQ) += gpio-zynq.o
|