mirror-linux/include/linux/mfd
Linus Torvalds 24e5c3241a MFD for v6.17
- New Support & Features
   * Add extensive support for the Analog Devices ADP5589 I/O expander, including
     core MFD, GPIO, PWM, and a new keypad matrix input driver. This also adds
     support for handling various events including GPI, keypad, reset and unlock
     ev ents.
   * Add support for the TI TPS652G1 PMIC, a stripped-down version of the TPS65224,
     including core MFD, PFSM, pinctrl, and GPIO support.
   * Add support for the Apple Silicon System Management Controller (SMC), including
     the core MFD driver which handles the RTKit-based protocol, a new GPIO driver
     for PMU GPIOs, and a new reboot/power-off driver.
 
 - Improvements & Fixes
   * Dynamically add ADP5585 sub-devices based on device tree properties.
   * Move ADP5585 oscillator control from the child PWM driver to the main MFD
     driver to better handle shared resources.
   * Add support for a hardware reset pin and VDD regulator to the ADP5585 driver.
   * Update the TPS65219 MFD cell's GPIO compatible string for the TPS65214 to
     reflect hardware capabilities correctly.
   * Separate the ChromeOS EC charge-control probing from the USB-PD subsystem,
     allowing it to probe independently based on the dedicated EC_FEATURE_CHARGER.
   * Fix an interrupt naming typo in the MT6370 driver.
   * Fix RK806 PMIC reset behavior by allowing the reset mode to be customized via a
     new device tree property.
   * Fix AXP20X regulator cell ID conflicts for secondary PMICs on boards without an
     IRQ line connected.
   * Fix MT6397 keypad sub-device creation to use specific names instead of a
     generic one, ensuring correct driver binding.
   * Fix a build warning in the stm32-timers driver by adding a missing include for
     export.h.
 
 - Cleanups & Refactoring
   * Refactor the ADP5585 driver to simplify how regmap defaults are handled, making
     it easier to add new chip variants.
   * Introduce per-chip register map structures for the ADP5585/ADP5589 family to
     handle differences between the devices.
   * Convert several drivers to use dev_fwnode() instead of of_fwnode_handle().
   * Make various static structures const in the cs40l50, rohm-bd71828, tps65219,
     and twl6040 drivers.
   * Remove redundant pm_runtime_mark_last_busy() calls from several drivers.
   * Alphabetize Kconfig entries for Cirrus Logic and Maxim drivers.
   * Remove unused fields from the 'tps65219' struct.
   * Update several MFD-related headers to follow the 'Include What You Use' (IWYU)
     principle.
 
 - Removals
   * Remove the old, platform-data-based adp5589-keys input driver, which is now
     superseded by the new MFD-based adp5585-keys driver.
   * Remove the unused twl6030_mmc_card_detect() functions and associated header
     declarations.
   * Remove the now unused pcf50633/core.h header file.
   * Remove the fsl,imx8qxp-csr device tree binding, which was being used
     incorrectly.
 
 - Device Tree Bindings Updates
   * Add support for the Analog Devices ADP5589 I/O expander to the adi,adp5585.yaml
     binding.
   * Add new properties to the adi,adp5585.yaml binding for input events, including
     keypad pins, unlock events, and reset events.
   * Add a reset-gpios property to the adi,adp5585.yaml binding.
   * Add the TI TPS652G1 PMIC to the ti,tps6594.yaml binding.
   * Add new bindings for the Apple Mac System Management Controller (SMC) and its
     sub-devices: apple,smc.yaml, apple,smc-gpio.yaml, and apple,smc-reboot.yaml.
   * Convert the Freescale MXS LRADC binding (mxs-lradc) to YAML schema format.
   * Convert and combine the NXP LPC1850 CREG, DMAMUX, and USB OTG PHY bindings into
     a single YAML schema file.
   * Convert the TI TPS65910 binding to YAML schema format.
   * Add a comment to the samsung,s2mps11.yaml binding to clarify the use of 'oneOf'
     for interrupt properties.
   * Add the rockchip,reset-mode property to the rockchip,rk806.yaml binding to
     allow customization of the PMIC's reset behavior.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEdrbJNaO+IJqU8IdIUa+KL4f8d2EFAmiKNQgACgkQUa+KL4f8
 d2HXOw//bquorwKRgOmi85ZMFNVowywRiUfEYUmKKkjlaK/mfUwmiPxlzREWmR0p
 paAvlL2bKHYsEt/3gh8l8Q8cIo3ELlhSHmECG22Pz8+msq06n7vZ/fpzXhjqdHLR
 PIyA7oJv2kBE+glmRiDL2yRGQU42i/Mmq5vo9eJD49aOL8nOzNk17N7fFp9aDGQ6
 C+MDrvaFV4jYjMH8/A/pBh9KaPwzvuIvNvMFeC4F5Zjpym6X1gClDEVgQvSHsyz0
 NyT2qpHG6KkUVNhm8dBcYUxdAbpZLjWiPpqfe4KzWflZ9kUjAow5z2NhiwtDxZuG
 DVICs64O1YvoqZXIazptYEIHLmDks1URdADd/efJDbBKm12G2DgRJtbLVFW/hWUz
 g7itYgJk3cpRoFUVjiniLvy+Nlp67XfN5qADNiHnRJpk4DCW5sNqPp5AHFhhD8hC
 5t6EyOYaO7U1I+0ZgWvsSaCv+D/r4pjcUBalUB1Wh7QcEWOXVJgFmkggbXEPEzob
 FtM6GCFcIr+yrrqGL3o6DNgQmuiAenuIjGs9jk6on+0zUmDvgvwbERpktweEofki
 anW4jtm0tDKSP9qBFEhGC8dOygFU/jnXqaHGsXeEHOv5zb5mSk/dL+W/QHqmG2QO
 08UEh02sfWiUE8hwL3vZ/cXvR7SfgK00nBC3g8QfEWF1AHplGE0=
 =YYgL
 -----END PGP SIGNATURE-----

Merge tag 'mfd-next-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd

Pull MFD updates from Lee Jones:
 "New Support & Features:

   - Add extensive support for the Analog Devices ADP5589 I/O expander,
     including core MFD, GPIO, PWM, and a new keypad matrix input
     driver. This also adds support for handling various events
     including GPI, keypad, reset and unlock ev ents

   - Add support for the TI TPS652G1 PMIC, a stripped-down version of
     the TPS65224, including core MFD, PFSM, pinctrl, and GPIO support

   - Add support for the Apple Silicon System Management Controller
     (SMC), including the core MFD driver which handles the RTKit-based
     protocol, a new GPIO driver for PMU GPIOs, and a new
     reboot/power-off driver.

  Improvements & Fixes:

   - Dynamically add ADP5585 sub-devices based on device tree properties

   - Move ADP5585 oscillator control from the child PWM driver to the
     main MFD driver to better handle shared resources

   - Add support for a hardware reset pin and VDD regulator to the
     ADP5585 driver

   - Update the TPS65219 MFD cell's GPIO compatible string for the
     TPS65214 to reflect hardware capabilities correctly

   - Separate the ChromeOS EC charge-control probing from the USB-PD
     subsystem, allowing it to probe independently based on the
     dedicated EC_FEATURE_CHARGER

   - Fix an interrupt naming typo in the MT6370 driver

   - Fix RK806 PMIC reset behavior by allowing the reset mode to be
     customized via a new device tree property

   - Fix AXP20X regulator cell ID conflicts for secondary PMICs on
     boards without an IRQ line connected

   - Fix MT6397 keypad sub-device creation to use specific names instead
     of a generic one, ensuring correct driver binding

   - Fix a build warning in the stm32-timers driver by adding a missing
     include for export.h.

  Cleanups & Refactoring:

   - Refactor the ADP5585 driver to simplify how regmap defaults are
     handled, making it easier to add new chip variants

   - Introduce per-chip register map structures for the ADP5585/ADP5589
     family to handle differences between the devices

   - Convert several drivers to use dev_fwnode() instead of
     of_fwnode_handle()

   - Make various static structures const in the cs40l50, rohm-bd71828,
     tps65219, and twl6040 drivers

   - Remove redundant pm_runtime_mark_last_busy() calls from several
     drivers

   - Alphabetize Kconfig entries for Cirrus Logic and Maxim drivers

   - Remove unused fields from the 'tps65219' struct

   - Update several MFD-related headers to follow the 'Include What You
     Use' (IWYU) principle.

  Removals:

   - Remove the old, platform-data-based adp5589-keys input driver,
     which is now superseded by the new MFD-based adp5585-keys driver

   - Remove the unused twl6030_mmc_card_detect() functions and
     associated header declarations

   - Remove the now unused pcf50633/core.h header file

   - Remove the fsl,imx8qxp-csr device tree binding, which was being
     used incorrectly.

  Device Tree Bindings Updates:

   - Add support for the Analog Devices ADP5589 I/O expander to the
     adi,adp5585.yaml binding

   - Add new properties to the adi,adp5585.yaml binding for input
     events, including keypad pins, unlock events, and reset events

   - Add a reset-gpios property to the adi,adp5585.yaml binding

   - Add the TI TPS652G1 PMIC to the ti,tps6594.yaml binding

   - Add new bindings for the Apple Mac System Management Controller
     (SMC) and its sub-devices: apple,smc.yaml, apple,smc-gpio.yaml, and
     apple,smc-reboot.yaml

   - Convert the Freescale MXS LRADC binding (mxs-lradc) to YAML schema
     format

   - Convert and combine the NXP LPC1850 CREG, DMAMUX, and USB OTG PHY
     bindings into a single YAML schema file

   - Convert the TI TPS65910 binding to YAML schema format

   - Add a comment to the samsung,s2mps11.yaml binding to clarify the
     use of 'oneOf' for interrupt properties

   - Add the rockchip,reset-mode property to the rockchip,rk806.yaml
     binding to allow customization of the PMIC's reset behavior"

* tag 'mfd-next-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (28 commits)
  mfd: dt-bindings: Convert TPS65910 to DT schema
  mfd: Minor Cirrus/Maxim Kconfig order fixes
  mfd: Remove redundant pm_runtime_mark_last_busy() calls
  mfd: mt6397: Do not use generic name for keypad sub-devices
  mfd: axp20x: Set explicit ID for regulator cell if no IRQ line is present
  mfd: mt6370: Fix the interrupt naming typo
  mfd: rk8xx-core: Allow to customize RK806 reset mode
  dt-bindings: mfd: rk806: Allow to customize PMIC reset mode
  mfd: syscon: atmel-smc: Don't use "proxy" headers
  mfd: madera: Don't use "proxy" headers
  mfd: wm8350-core: Don't use "proxy" headers
  dt-bindings: mfd: samsung,s2mps11: Add comment about interrupts properties
  mfd: davinci_voicecodec: Don't use "proxy" headers
  mfd: pcf50633: Remove the header file core.h
  mfd: tps65219: Remove another unused field from 'struct tps65219'
  mfd: tps65219: Remove an unused field from 'struct tps65219'
  mfd: tps65219: Constify struct regmap_irq_sub_irq_map and tps65219_chip_data
  mfd: rohm-bd71828: Constify some structures
  dt-bindings: mfd: fsl,imx8qxp-csr: Remove binding documentation
  mfd: axp20x: Set explicit ID for AXP313 regulator
  ...
2025-07-31 11:50:25 -07:00
..
abx500
arizona
atc260x
da9052
da9055
da9062
da9063
da9150
madera mfd: madera: Don't use "proxy" headers 2025-07-24 11:27:14 +01:00
mt6323
mt6328
mt6331
mt6332
mt6357
mt6358
mt6359
mt6359p
mt6397
samsung
syscon mfd: syscon: atmel-smc: Don't use "proxy" headers 2025-07-24 11:27:15 +01:00
wcd934x
wm831x
wm8350 mfd: wm8350-core: Don't use "proxy" headers 2025-07-24 11:27:13 +01:00
wm8994
88pm80x.h
88pm860x.h
88pm886.h
aat2870.h
abx500.h
ac100.h
adp5520.h
adp5585.h gpio: adp5585: support gpi events 2025-07-01 21:50:51 +01:00
altera-a10sr.h
altera-sysmgr.h
as3711.h
as3722.h
atmel-hlcdc.h
axp20x.h
bcm590xx.h
bcm2835-pm.h
bd9571mwv.h
cgbc.h
core.h
cs40l50.h
cs42l43-regs.h
cs42l43.h
da8xx-cfgchip.h
da903x.h
davinci_voicecodec.h mfd: davinci_voicecodec: Don't use "proxy" headers 2025-07-24 11:27:11 +01:00
db8500-prcmu.h
dbx500-prcmu.h arm: Handle KCOV __init vs inline mismatches 2025-07-21 21:43:39 -07:00
dln2.h
ezx-pcap.h
gsc.h
hi655x-pmic.h
hi6421-pmic.h
idt8a340_reg.h
idt82p33_reg.h
idtRC38xxx_reg.h
imx25-tsadc.h
ingenic-tcu.h
intel-m10-bmc.h
intel_pmc_bxt.h
intel_soc_pmic.h
intel_soc_pmic_bxtwc.h
intel_soc_pmic_mrfld.h
ipaq-micro.h
iqs62x.h
janz.h
kempld.h
khadas-mcu.h
lm3533.h
lochnagar.h
lochnagar1_regs.h
lochnagar2_regs.h
lp873x.h
lp3943.h
lp8788-isink.h
lp8788.h
lp87565.h
lpc_ich.h
macsmc.h mfd: Add Apple Silicon System Management Controller 2025-07-24 09:47:33 +01:00
max5970.h
max8907.h
max8925.h
max8997-private.h
max8997.h mfd: maxim: Correct Samsung "Electronics" spelling in copyright headers 2025-06-03 09:46:41 +01:00
max8998-private.h
max8998.h
max14577-private.h mfd: maxim: Correct Samsung "Electronics" spelling in copyright headers 2025-06-03 09:46:41 +01:00
max14577.h mfd: maxim: Correct Samsung "Electronics" spelling in copyright headers 2025-06-03 09:46:41 +01:00
max77541.h
max77620.h
max77650.h
max77686-private.h mfd: maxim: Correct Samsung "Electronics" spelling in copyright headers 2025-06-03 09:46:41 +01:00
max77686.h mfd: maxim: Correct Samsung "Electronics" spelling in copyright headers 2025-06-03 09:46:41 +01:00
max77693-common.h
max77693-private.h mfd: maxim: Correct Samsung "Electronics" spelling in copyright headers 2025-06-03 09:46:41 +01:00
max77693.h mfd: maxim: Correct Samsung "Electronics" spelling in copyright headers 2025-06-03 09:46:41 +01:00
max77705-private.h
max77714.h
max77759.h
max77843-private.h
mc13xxx.h
mc13783.h
mc13892.h
mcp.h
menelaus.h
motorola-cpcap.h
mp2629.h
mxs-lradc.h
ntxec.h
ocelot.h
palmas.h
qcom_rpm.h
qnap-mcu.h
rave-sp.h
rc5t583.h
rdc321x.h
retu.h
rk808.h mfd: rk8xx-core: Allow to customize RK806 reset mode 2025-07-24 11:27:17 +01:00
rn5t618.h
rohm-bd718x7.h
rohm-bd957x.h
rohm-bd71815.h
rohm-bd71828.h
rohm-bd96801.h
rohm-bd96802.h
rohm-generic.h
rohm-shared.h
rsmu.h
rt5033-private.h
rt5033.h
rz-mtu3.h
sc27xx-pmic.h
si476x-core.h
si476x-platform.h
si476x-reports.h
sky81452.h
stm32-lptimer.h
stm32-timers.h
stmfx.h
stmpe.h
stpmic1.h
stw481x.h
sun4i-gpadc.h
sy7636a.h
syscon.h
tc3589x.h
ti-lmu-register.h
ti-lmu.h
ti_am335x_tscadc.h
tps6105x.h
tps6507x.h
tps6586x.h
tps6594.h mfd: tps6594: Add TI TPS652G1 support 2025-07-10 09:58:01 +01:00
tps65010.h
tps65086.h
tps65090.h
tps65217.h
tps65218.h
tps65219.h mfd: tps65219: Remove another unused field from 'struct tps65219' 2025-07-24 11:27:09 +01:00
tps65910.h
tps65912.h
tps68470.h
twl.h mfd: twl6030-irq: Remove unused twl6030_mmc_card_detect* 2025-07-24 11:27:00 +01:00
twl4030-audio.h
twl6040.h
ucb1x00.h
upboard-fpga.h
viperboard.h
wl1273-core.h
wm97xx.h
wm8400-audio.h
wm8400-private.h
wm8400.h