linux/drivers/mfd
Linus Torvalds d701782152 gpio updates for v7.0-rc1
GPIOLIB core:
 - shrink the GPIO bus driver stub code
 - rework software node support for "undefined" software nodes
 - provide and use devm_fwnode_gpiod_get_optional()
 - only compile the OF quirk for MT2701 when needed
 
 New drivers:
 - add the GPIO driver for ROHM bd72720
 - add the gpio-line-mux driver providing 1-to-many mapping for a single
   real GPIO
 
 Driver changes:
 - refactor gpio-pca9570: use lock guard, add missing headers, use devres
   consistently
 - add support for a new model (G7 Aspeed sgpiom) to the aspeed-sgpio driver
   along with some prerequisite refactoring
 - use device_get_match_data() where applicable and save some lines
 - add support for more models to gpio-cadence
 - add the compatible property to reset-gpio and use it in shared GPIO
   management
 - drop unnecessary use of irqd_get_trigger_type() in gpio-max77759
 - add support for a new variant to gpio-pca953x
 - extend build coverage with COMPILE_TEST for more drivers
 - constify configfs structures in gpio-sim and gpio-virtuser
 - add support for the K3 SoC to gpio-spacemit
 - implement the missing .get_direction() callback in gpio-max77620
 - add support for Tegra264 to gpio-tegra186
 - drop unneeded MODULE_ALIAS() from gpio-menz127
 
 DT bindings:
 - document support for the opencores GPIO controller in gpio-mmio
 - document new variants for gpio-pca953x
 
 Documentation:
 - extensively describe interrupt source detection for gpio-pca953x and
   add more models to the list of supported variants
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEkeUTLeW1Rh17omX8BZ0uy/82hMMFAmmK9bwACgkQBZ0uy/82
 hMM3rQ/7BTRmMgGiJXlDpqkUoA9fQusiEcokwgmpvlJFM3cb2ANzrjxqZDGnUVLS
 OFaVCPjgUTDrmWNgSSy5SBfyfVkvbXmT7X5+e38qotlNun6BKCPhF1H5HxBgJv9P
 ObHXZ6ACrg4Ia+jl0QkpIXUDC/vAzaBUml5LUATGHpwf/pa4ZcBDXXbLIEtEfSpb
 kNDDQVeWJlWxDYNuJudR8BL2saZFEoD9RaX8F4jLya8ogecoKXElK8Nj0G0Gua8D
 UkH9aKMlNTIrk/iE6MiohaLWWqBgRV6+wO6vd2IRek5iItTbPffk4iT2/dOiX8H4
 HcOxXBxACH/+wicXGwY360r5M5BCYaMcUvLQaCxLuac2T4302aFLcrWH7be+Ju6f
 F+rPBRK1LTYwn0LNlu1I7hYBbwNWHCXfWejXXTH4pMO4uyiwCPpkBHXWCyjWSTuV
 YhIbWVYuQjVgxvPCoJ0+67ju++I2ShlXtiT6NorQrxGt9CCBzMN4KU/uMPkN5j+Z
 RgurHuEEB1hZ8h5Tzs058L6Pxfyp4eY6Qy8BKLPcrGZaKvvX/EZeI/JkeQOOItKe
 VoVq4NIeeqYmqzFa5xrsRYnGUw6lKVj2M5SrjRfbGRz4xVX+rSgrBZMrz1gJyisP
 1M5LiGj+c91oo41tysJdPjkc8dkN47hFbNLzB27kXDfm77qlbUE=
 =Zhuy
 -----END PGP SIGNATURE-----

Merge tag 'gpio-updates-for-v7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux

Pull gpio updates from Bartosz Golaszewski:
 "There are two new drivers and some changes to GPIO core but mostly
  just GPIO driver updates across a wide array of files, adding support
  for new models as well as various refactoring changes. Nothing
  controversial and everything has spent a good measure of time in
  linux-next.

  GPIOLIB core:
   - shrink the GPIO bus driver stub code
   - rework software node support for "undefined" software nodes
   - provide and use devm_fwnode_gpiod_get_optional()
   - only compile the OF quirk for MT2701 when needed

  New drivers:
   - add the GPIO driver for ROHM bd72720
   - add the gpio-line-mux driver providing 1-to-many mapping for a
     single real GPIO

  Driver changes:
   - refactor gpio-pca9570: use lock guard, add missing headers, use
     devres consistently
   - add support for a new model (G7 Aspeed sgpiom) to the aspeed-sgpio
     driver along with some prerequisite refactoring
   - use device_get_match_data() where applicable and save some lines
   - add support for more models to gpio-cadence
   - add the compatible property to reset-gpio and use it in shared GPIO
     management
   - drop unnecessary use of irqd_get_trigger_type() in gpio-max77759
   - add support for a new variant to gpio-pca953x
   - extend build coverage with COMPILE_TEST for more drivers
   - constify configfs structures in gpio-sim and gpio-virtuser
   - add support for the K3 SoC to gpio-spacemit
   - implement the missing .get_direction() callback in gpio-max77620
   - add support for Tegra264 to gpio-tegra186
   - drop unneeded MODULE_ALIAS() from gpio-menz127

  DT bindings:
   - document support for the opencores GPIO controller in gpio-mmio
   - document new variants for gpio-pca953x

  Documentation:
   - extensively describe interrupt source detection for gpio-pca953x
     and add more models to the list of supported variants"

* tag 'gpio-updates-for-v7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (59 commits)
  gpio: tegra186: Add support for Tegra264
  dt-bindings: gpio: Add Tegra264 support
  gpio: spacemit-k1: Use PDR for pin direction, not SDR/CDR
  gpio: max77620: Implement .get_direction() callback
  gpio: aspeed-sgpio: Support G7 Aspeed sgpiom controller
  dt-bindings: gpio: aspeed,sgpio: Support ast2700
  gpio: aspeed-sgpio: Convert IRQ functions to use llops callbacks
  gpio: aspeed-sgpio: Create llops to handle hardware access
  gpio: aspeed-sgpio: Remove unused bank name field
  gpio: aspeed-sgpio: Change the macro to support deferred probe
  regulator: bd71815: switch to devm_fwnode_gpiod_get_optional
  gpiolib: introduce devm_fwnode_gpiod_get_optional() wrapper
  gpio: mmio: Add compatible for opencores GPIO
  dt-bindings: gpio-mmio: Correct opencores GPIO
  gpio: pca9570: use lock guards
  gpio: pca9570: Don't use "proxy" headers
  gpio: pca9570: Use devm_mutex_init() for mutex initialization
  MAINTAINERS: Add ROHM BD72720 PMIC
  power: supply: bd71828-power: Support ROHM BD72720
  power: supply: bd71828: Support wider register addresses
  ...
2026-02-11 10:53:39 -08:00
..
88pm80x.c
88pm800.c
88pm805.c
88pm860x-core.c mfd: Fix building without CONFIG_OF 2025-06-19 11:05:30 +01:00
88pm860x-i2c.c
88pm886.c mfd: 88pm886: Add GPADC cell 2025-10-01 10:29:00 +01:00
Kconfig mfd: rohm-bd71828: Support ROHM BD72720 2026-01-13 12:47:28 +00:00
Makefile mfd: wl1273-core: Remove unused driver 2025-11-06 14:03:37 +00:00
aat2870-core.c mfd: aat2870: Use per-client debugfs directory 2025-05-22 15:49:58 +01:00
ab8500-core.c mfd: Use dev_fwnode() instead of of_fwnode_handle() 2025-07-24 11:27:02 +01:00
ab8500-sysctrl.c
abx500-core.c
ac100.c
acer-ec-a500.c
act8945a.c
adp5520.c
adp5585.c mfd: adp5585: Drop useless return statement 2025-10-01 10:28:03 +01:00
altera-a10sr.c
altera-sysmgr.c mfd: altera-sysmgr: Fix device leak on sysmgr regmap lookup 2025-11-06 14:03:32 +00:00
arizona-core.c
arizona-i2c.c
arizona-irq.c mfd: arizona: Make legacy gpiolib interface optional 2025-10-01 10:28:24 +01:00
arizona-spi.c
arizona.h
as3711.c
as3722.c mfd: as3722: Fix wakeup source leaks on device unbind 2025-05-23 08:49:07 +01:00
at91-usart.c
atc260x-core.c
atc260x-i2c.c
atmel-flexcom.c
atmel-hlcdc.c
atmel-smc.c mfd: syscon: atmel-smc: Don't use "proxy" headers 2025-07-24 11:27:15 +01:00
axp20x-i2c.c
axp20x-rsb.c
axp20x.c mfd: axp20x: Set explicit ID for regulator cell if no IRQ line is present 2025-07-24 11:27:19 +01:00
bcm590xx.c mfd: bcm590xx: Add PMU ID/revision parsing function 2025-05-22 10:57:00 +01:00
bcm2835-pm.c mfd: bcm2835-pm: Add support for BCM2712 2025-11-06 17:01:05 +00:00
bd9571mwv.c
bq257xx.c mfd: bq257xx: Add support for BQ25703A core driver 2025-09-11 15:54:43 +01:00
cgbc-core.c mfd: cgbc-core: Add support for conga-SA8 2025-03-21 11:34:08 +00:00
cros_ec_dev.c mfd: cros_ec: Separate charge-control probing from USB-PD 2025-07-24 11:26:54 +01:00
cs40l50-core.c mfd: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-30 08:16:43 +01:00
cs40l50-i2c.c
cs40l50-spi.c
cs42l43-i2c.c
cs42l43-sdw.c
cs42l43.c mfd: cs42l43: Remove IRQ masking in suspend 2025-10-01 10:28:56 +01:00
cs42l43.h
cs47l15-tables.c
cs47l24-tables.c
cs47l35-tables.c
cs47l85-tables.c
cs47l90-tables.c
cs47l92-tables.c
cs5535-mfd.c
da903x.c
da9052-core.c
da9052-i2c.c
da9052-irq.c
da9052-spi.c
da9055-core.c mfd: da9055: Simplify the error handling path in da9055_device_init() 2025-11-06 14:05:02 +00:00
da9055-i2c.c
da9062-core.c
da9063-core.c
da9063-i2c.c mfd: da9063: Occupy second I2C address 2025-11-06 14:03:46 +00:00
da9063-irq.c
da9150-core.c
db8500-prcmu-regs.h
db8500-prcmu.c mfd: Switch to irq_domain_create_*() 2025-05-16 21:06:10 +02:00
dln2.c
ene-kb3930.c mfd: ene-kb3930: Fix a potential NULL pointer dereference 2025-03-14 08:59:07 +00:00
exynos-lpass.c mfd: Remove unneeded 'fast_io' parameter in regmap_config 2025-10-01 10:28:26 +01:00
ezx-pcap.c mfd: ezx-pcap: Remove unused pcap_adc_sync 2025-03-14 08:59:07 +00:00
fsl-imx25-tsadc.c mfd: Remove unneeded 'fast_io' parameter in regmap_config 2025-10-01 10:28:26 +01:00
gateworks-gsc.c
hi655x-pmic.c
hi6421-pmic-core.c
hi6421-spmi-pmic.c
intel-lpss-acpi.c
intel-lpss-pci.c mfd: intel-lpss: Add Intel Wildcat Lake LPSS PCI IDs 2025-10-01 10:29:01 +01:00
intel-lpss.c
intel-lpss.h
intel-m10-bmc-core.c
intel-m10-bmc-pmci.c
intel-m10-bmc-spi.c
intel_pmc_bxt.c
intel_quark_i2c_gpio.c
intel_soc_pmic_bxtwc.c
intel_soc_pmic_chtdc_ti.c mfd: intel_soc_pmic_chtdc_ti: Set use_single_read regmap_config flag 2025-10-01 10:28:17 +01:00
intel_soc_pmic_chtwc.c
intel_soc_pmic_crc.c mfd: intel_soc_pmic_crc: Drop unneeded assignment for cache_type 2025-03-14 08:59:05 +00:00
intel_soc_pmic_mrfld.c
ioc3.c MIPS: Update Joshua Kinard's e-mail address 2025-07-28 09:57:24 +02:00
ipaq-micro.c mfd: ipaq-micro/tps65010: Use str_enable_disable-like helpers 2025-03-14 08:59:05 +00:00
iqs62x.c
janz-cmodio.c
kempld-core.c mfd: kempld: Use PTR_ERR_OR_ZERO() to simplify code 2025-10-01 10:28:22 +01:00
khadas-mcu.c
lm3533-core.c
lm3533-ctrlbank.c
lochnagar-i2c.c
loongson-se.c mfd: Add support for Loongson Security Engine chip controller 2025-09-02 12:29:57 +01:00
lp873x.c
lp3943.c
lp8788-irq.c mfd: Use dev_fwnode() instead of of_fwnode_handle() 2025-07-24 11:27:02 +01:00
lp8788.c
lp87565.c
lpc_ich.c
lpc_sch.c
ls2k-bmc-core.c MFD for v6.19 2025-12-04 15:18:33 -08:00
macsmc.c mfd: macsmc: Make SMC write buffers const 2025-11-06 14:03:28 +00:00
madera-core.c mfd: madera: Work around false-positive -Wininitialized warning 2025-10-01 10:28:20 +01:00
madera-i2c.c
madera-spi.c
madera.h
max7360.c mfd: Add max7360 support 2025-09-16 15:24:48 +01:00
max8907.c
max8925-core.c mfd: Fix building without CONFIG_OF 2025-06-19 11:05:30 +01:00
max8925-i2c.c mfd: max8925: Fix wakeup source leaks on device unbind 2025-05-23 08:49:11 +01:00
max8997-irq.c mfd: Switch to irq_domain_create_*() 2025-05-16 21:06:10 +02:00
max8997.c mfd: max899x: Use dedicated interrupt wake setters 2025-10-01 10:28:23 +01:00
max8998-irq.c mfd: Switch to irq_domain_create_*() 2025-05-16 21:06:10 +02:00
max8998.c mfd: max899x: Use dedicated interrupt wake setters 2025-10-01 10:28:23 +01:00
max14577.c mfd: max14577: Fix wakeup source leaks on device unbind 2025-05-23 08:49:08 +01:00
max77541.c mfd: max77541: Fix wakeup source leaks on device unbind 2025-05-23 08:49:09 +01:00
max77620.c mfd: max77620: Fix potential IRQ chip conflict when probing two devices 2025-11-06 14:04:02 +00:00
max77650.c
max77686.c
max77693.c
max77705.c power supply and reset changes for the 6.18 series 2025-10-01 13:02:59 -07:00
max77714.c
max77759.c mfd: max77759: Add Maxim MAX77759 core driver 2025-05-09 15:22:30 +01:00
max77843.c
mc13xxx-core.c
mc13xxx-i2c.c
mc13xxx-spi.c
mc13xxx.h
mcp-core.c
mcp-sa11x0.c
menelaus.c
menf21bmc.c
mfd-core.c mfd: core: Increment of_node's refcount before linking it to the platform device 2025-10-01 10:28:37 +01:00
motorola-cpcap.c
mp2629.c
mt6358-irq.c mfd: mt6358-irq: Fix missing irq_domain_remove() in error path 2025-11-20 14:24:03 +00:00
mt6360-core.c
mt6370.c mfd: mt6370: Fix the interrupt naming typo 2025-07-24 11:27:18 +01:00
mt6370.h mfd: mt6370: Fix the interrupt naming typo 2025-07-24 11:27:18 +01:00
mt6397-core.c mfd: mt6397: Do not use generic name for keypad sub-devices 2025-07-24 11:27:20 +01:00
mt6397-irq.c mfd: mt6397-irq: Fix missing irq_domain_remove() in error path 2025-11-20 14:22:36 +00:00
mxs-lradc.c
nct6694.c mfd: Add core driver for Nuvoton NCT6694 2025-09-16 14:41:57 +01:00
ntxec.c
ocelot-core.c
ocelot-spi.c
ocelot.h
omap-usb-host.c
omap-usb-tll.c
omap-usb.h
palmas.c
pf1550.c mfd: pf1550: Add core driver for the PF1550 PMIC 2025-10-21 16:43:32 +01:00
qcom-pm8xxx.c mfd: Use dev_fwnode() instead of of_fwnode_handle() 2025-07-24 11:27:02 +01:00
qcom-pm8008.c
qcom-spmi-pmic.c
qcom_rpm.c
qnap-mcu.c mfd: qnap-mcu: Hook up the EEPROM sub-device 2025-11-21 12:08:25 +00:00
rave-sp.c
rc5t583-irq.c
rc5t583.c
rdc321x-southbridge.c
retu-mfd.c
rk8xx-core.c mfd: rk8xx-core: Allow to customize RK806 reset mode 2025-07-24 11:27:17 +01:00
rk8xx-i2c.c
rk8xx-spi.c
rn5t618.c
rohm-bd718x7.c mfd: bd718x7: Use regmap_reg_range() for pmic_status_range 2025-11-06 16:02:11 +00:00
rohm-bd9576.c
rohm-bd71828.c mfd: rohm-bd71828: Support ROHM BD72720 2026-01-13 12:47:28 +00:00
rohm-bd96801.c mfd: bd96801: Support ROHM BD96806 2025-04-24 14:53:13 +01:00
rsmu.h
rsmu_core.c
rsmu_i2c.c
rsmu_spi.c
rt4831.c
rt5033.c mfd: rt5033: Fix wakeup source leaks on device unbind 2025-05-23 08:49:12 +01:00
rt5120.c
rz-mtu3.c mfd: rz-mtu3: Fix MTU5 NFCR register offset 2025-10-01 10:28:58 +01:00
rz-mtu3.h
sec-acpm.c mfd: sec: Add support for S2MPG11 PMIC via ACPM 2026-02-04 10:37:29 +00:00
sec-common.c mfd: sec: Add support for S2MPG11 PMIC via ACPM 2026-02-04 10:37:29 +00:00
sec-core.h mfd: sec: Drop now unused struct sec_pmic_dev::irq_data 2026-01-20 15:37:48 +00:00
sec-i2c.c mfd: sec: Add myself as module author 2025-05-23 08:48:50 +01:00
sec-irq.c mfd: sec: Add support for S2MPG11 PMIC via ACPM 2026-02-04 10:37:29 +00:00
si476x-cmd.c
si476x-i2c.c
si476x-prop.c
simple-mfd-i2c.c mfd: simple-mfd-i2c: Don't use "proxy" headers 2025-11-19 16:05:16 +00:00
simple-mfd-i2c.h
sky81452.c
sm501.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
smpro-core.c
sprd-sc27xx-spi.c mfd: sprd-sc27xx: Fix wakeup source leaks on device unbind 2025-05-23 08:49:13 +01:00
ssbi.c
stm32-lptimer.c mfd: Remove unneeded 'fast_io' parameter in regmap_config 2025-10-01 10:28:26 +01:00
stm32-timers.c mfd: stm32-timers: Fix build warnings about export.h 2025-07-24 11:27:01 +01:00
stmfx.c mfd: Use dev_fwnode() instead of of_fwnode_handle() 2025-07-24 11:27:02 +01:00
stmpe-i2c.c gpio updates for v6.18-rc1 2025-10-01 11:34:12 -07:00
stmpe-spi.c gpio updates for v6.18-rc1 2025-10-01 11:34:12 -07:00
stmpe.c MFD for v6.18 2025-10-01 12:04:12 -07:00
stmpe.h
stpmic1.c
stw481x.c
sun4i-gpadc.c mfd: Remove unneeded 'fast_io' parameter in regmap_config 2025-10-01 10:28:26 +01:00
sun6i-prcm.c
syscon.c mfd: syscon: Return -EPROBE_DEFER if the syscon is not found 2025-11-13 14:32:39 +00:00
tc3589x.c mfd: Switch to irq_domain_create_*() 2025-05-16 21:06:10 +02:00
ti-lmu.c
ti_am335x_tscadc.c
timberdale.c
timberdale.h
tps6105x.c
tps6507x.c
tps6586x.c mfd: Use dev_fwnode() instead of of_fwnode_handle() 2025-07-24 11:27:02 +01:00
tps6594-core.c mfd: tps6594: Explicitly include bitfield.h 2025-09-11 16:06:02 +01:00
tps6594-i2c.c mfd: tps6594: Add TI TPS652G1 support 2025-07-10 09:58:01 +01:00
tps6594-spi.c mfd: tps6594: Add TI TPS652G1 support 2025-07-10 09:58:01 +01:00
tps65010.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
tps65086.c
tps65090.c
tps65217.c mfd: Use dev_fwnode() instead of of_fwnode_handle() 2025-07-24 11:27:02 +01:00
tps65218.c
tps65219.c mfd: tps65219: Remove another unused field from 'struct tps65219' 2025-07-24 11:27:09 +01:00
tps65910.c
tps65911-comparator.c
tps65912-core.c
tps65912-i2c.c
tps65912-spi.c
tqmx86.c mfd: tqmx86: Add board definitions for TQMxCU1-HPCM and TQMxCU2-HPCM 2025-11-06 14:03:43 +00:00
twl-core.c
twl-core.h
twl4030-audio.c
twl4030-irq.c mfd: Fix building without CONFIG_OF 2025-06-19 11:05:30 +01:00
twl4030-power.c
twl6030-irq.c mfd: Use dev_fwnode() instead of of_fwnode_handle() 2025-07-24 11:27:02 +01:00
twl6040.c mfd: Constify reg_sequence and regmap_irq 2025-07-24 11:26:55 +01:00
ucb1x00-assabet.c
ucb1x00-core.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
ucb1x00-ts.c
upboard-fpga.c mfd: upboard-fpga: Remove ACPI_PTR() annotation 2025-03-14 08:59:06 +00:00
vexpress-sysreg.c mfd: vexpress-sysreg: Use more common syntax for compound literals 2025-10-01 10:28:59 +01:00
viperboard.c
vx855.c
wcd934x.c
wm97xx-core.c
wm831x-auxadc.c
wm831x-core.c
wm831x-i2c.c
wm831x-irq.c mfd: Use dev_fwnode() instead of of_fwnode_handle() 2025-07-24 11:27:02 +01:00
wm831x-otp.c
wm831x-spi.c
wm5102-tables.c
wm5110-tables.c
wm8350-core.c
wm8350-gpio.c
wm8350-i2c.c
wm8350-irq.c
wm8350-regmap.c
wm8400-core.c
wm8994-core.c
wm8994-irq.c mfd: Switch to irq_domain_create_*() 2025-05-16 21:06:10 +02:00
wm8994-regmap.c
wm8994.h
wm8997-tables.c
wm8998-tables.c