mirror-linux/include/linux/mfd
Linus Torvalds 4668c4831f MFD for v6.20
- New Support & Features
   * Add comprehensive support for the ROHM BD72720 PMIC, including core MFD, regulator, GPIO,
     clock gate, RTC, and power-supply drivers.
   * Add support for the Rockchip RK801 PMIC, including core MFD and regulator drivers.
   * Add support for the ROHM BD73900 PMIC by leveraging existing common drivers.
   * Wire up RTC, hwmon, and input sub-devices for the Apple SMC (macsmc) driver.
   * Add support for the Delta Networks TN48M switch CPLD via the simple-mfd-i2c driver.
   * Add support for the TS133 variant to the QNAP MCU driver.
   * Provide support for the sama7d65 XLCD controller in the Atmel HLCDC driver.
   * Add backlight sub-device support to the Congatec Board Controller (cgbc).
   * Add Intel Nova Lake-S (NVL-S) PCI IDs to the Intel LPSS driver.
 
 - Improvements & Fixes
   * Implement a "wrapper regmap" for the ROHM BD72720 to handle dual I2C slave addresses (0x4b and
     0x4c) transparently for child devices.
   * Introduce mutex locking around 'mfd_of_node_list' in the MFD core to ensure safe concurrent
     access.
   * Fix a potential regulator resource leak in the Arizona core driver during boot sequence
     failures.
   * Resolve child device duplication issues on driver rebind for Qualcomm PM8xxx and OMAP USB host
     drivers by using of_platform_depopulate().
   * Fix IRQ domain name duplication for the Samsung S2MPG10 by adding a unique domain suffix.
   * Implement LOCK register handling for the TI TPS65214 variant to unlock registers at probe
     time.
   * Fully convert the Loongson-2K BMC driver to use managed resources (pcim) and the standard PCI
     resource API.
   * Ensure the Apple SMC mutex is correctly initialized during probe to prevent NULL pointer
     dereferences.
   * Expand the ROHM BD71828 power-supply driver to support 9-bit register addresses.
   * Simplify the Samsung S5M RTC driver by querying platform device IRQ resources directly.
   * Revert an incorrect read-to-write mask change in the DA9052 SPI driver to restore default OTP
     behavior.
   * Fix kernel-doc warnings in the TI TPS6105x driver.
 
 - Cleanups & Refactoring
   * Simplify the MFD core by utilizing the scoped for_each_child_of_node_scoped() macro and
     streamlining device_node storage.
   * Rename ROHM BD71828 IC-specific entities to use consistent prefixes for better extensibility.
   * Refactor ROHM BD71828 regmap definitions using the regmap_reg_range() macro.
   * Update the ROHM BD71828 driver to use standard C-style comment headers.
   * Remove the now unused 'irq_data' field from the Samsung SEC core structure.
   * Drop unnecessary use of irqd_get_trigger_type() in the Maxim MAX77759 driver.
   * Default MFD_SPACEMIT_P1 to 'm' if ARCH_SPACEMIT is selected.
   * Add missing charger-related registers to the ROHM BD71828 core header and Type-C CC registers
     to the AXP717.
 
 - Device Tree Binding Updates
   * Add new bindings for the ROHM BD72720 PMIC, Rockchip RK801 PMIC, Bitmain BM1880 System
     Controller, and NXP LPC32xx System Control Block.
   * Clarify trickle-charge terminology and add properties for voltage drop (VDR) correction and
     upper charge limits to the generic battery binding.
   * Document GPR syscon for NXP S32 SoCs and the smp-memram subnode for Aspeed SCU.
   * Document numerous new Qualcomm SPMI PMIC compatibles (pmcx0102, pmh0101, pmk8850, etc.).
   * Add compatibles for the sama7d65 XLCD (Atmel), LAN9691 Flexcom (Microchip), and various
     MediaTek SCPSYS and regulator components.
   * Fix a dead link to the audio codec binding in the DA9055 documentation.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEdrbJNaO+IJqU8IdIUa+KL4f8d2EFAmmN1SgACgkQUa+KL4f8
 d2FmCg//dSaWBfdNSIibUQg08g/hUUx+TTZ3RsRdBqGym0/+n6cTRqxSRM9LwWmC
 4jAq+fdqBhWEdTvB28aJT/UxFkDuKTsXtoycwLVvX0Vfb5zvE8SjAIycS4/PMRqZ
 qYyZ3fblfwx/bm+/1+0yVsi4TVtjLZdiRQEpKAXN/FNd9/6mHD8x4VNjtB5jj0nR
 tcCXKevmgRcCqXi2OfAWQ20VO/N04rkRj0r07UI4+u+lC3iet5XMmWaPc+QbQ0Be
 EkTCHBvfqtC6+C6aZtGjCOx8OA08I3MZAmS5eNly4T3GuVTHVtzobZEM7lEk4ScQ
 mzdXnhNBxxJzLXcv5B7FuDlaEcBya1tf5fe2lPgyD5Mp4khPynBZWQdDQe5Zv0TV
 9EhdGazltNdYXUcTX5yhgQOpFgdGBb59AczRG5j/EMpLVJSwyUJQC7HMf3OyirCo
 d4ZtCVXAp9KlUuEAvkLIgq6ZU/8fY5LVWK07tO0QJDHz7vEhEzZ7us5kvHQ9gFzu
 ihE3EKMBrAnjx/ZJ6pHFcfiEpPxO1rRhIFMCg5SGFVeJWKhvBycz5CjFs26GQzX6
 OTREzRbcOtuIAwBow4yafozUh0z2HWlpMNPbeuyz1h4jg5RbcYWmKG+eO5dKQXU0
 8UGTJelPzMvfx3NJ/LC9pImLrGh+twz42aqwv8LakH0y/zuT1dw=
 =BxGL
 -----END PGP SIGNATURE-----

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

Pull MFD updates from Lee Jones:
 "New Support & Features:
   - Add comprehensive support for the ROHM BD72720 PMIC, including core
     MFD, regulator, GPIO, clock gate, RTC, and power-supply drivers
   - Add support for the Rockchip RK801 PMIC, including core MFD and
     regulator drivers
   - Add support for the ROHM BD73900 PMIC by leveraging existing common
     drivers
   - Wire up RTC, hwmon, and input sub-devices for the Apple SMC
     (macsmc) driver
   - Add support for the Delta Networks TN48M switch CPLD via the
     simple-mfd-i2c driver
   - Add support for the TS133 variant to the QNAP MCU driver
   - Provide support for the sama7d65 XLCD controller in the Atmel HLCDC
     driver
   - Add backlight sub-device support to the Congatec Board Controller
     (cgbc)
   - Add Intel Nova Lake-S (NVL-S) PCI IDs to the Intel LPSS driver

  Improvements & Fixes:
   - Implement a "wrapper regmap" for the ROHM BD72720 to handle dual
     I2C slave addresses (0x4b and 0x4c) transparently for child devices
   - Introduce mutex locking around 'mfd_of_node_list' in the MFD core
     to ensure safe concurrent access
   - Fix a potential regulator resource leak in the Arizona core driver
     during boot sequence failures
   - Resolve child device duplication issues on driver rebind for
     Qualcomm PM8xxx and OMAP USB host drivers by using
     of_platform_depopulate()
   - Fix IRQ domain name duplication for the Samsung S2MPG10 by adding a
     unique domain suffix
   - Implement LOCK register handling for the TI TPS65214 variant to
     unlock registers at probe time
   - Fully convert the Loongson-2K BMC driver to use managed resources
     (pcim) and the standard PCI resource API
   - Ensure the Apple SMC mutex is correctly initialized during probe to
     prevent NULL pointer dereferences
   - Expand the ROHM BD71828 power-supply driver to support 9-bit
     register addresses
   - Simplify the Samsung S5M RTC driver by querying platform device IRQ
     resources directly
   - Revert an incorrect read-to-write mask change in the DA9052 SPI
     driver to restore default OTP behavior
   - Fix kernel-doc warnings in the TI TPS6105x driver

- Cleanups & Refactoring
   - Simplify the MFD core by utilizing the scoped
     for_each_child_of_node_scoped() macro and streamlining device_node
     storage
   - Rename ROHM BD71828 IC-specific entities to use consistent prefixes
     for better extensibility
   - Refactor ROHM BD71828 regmap definitions using the
     regmap_reg_range() macro
   - Update the ROHM BD71828 driver to use standard C-style comment
     headers
   - Remove the now unused 'irq_data' field from the Samsung SEC core
     structure
   - Drop unnecessary use of irqd_get_trigger_type() in the Maxim
     MAX77759 driver
   - Default MFD_SPACEMIT_P1 to 'm' if ARCH_SPACEMIT is selected
   - Add missing charger-related registers to the ROHM BD71828 core
     header and Type-C CC registers to the AXP717

  Device Tree Binding Updates:
   - Add new bindings for the ROHM BD72720 PMIC, Rockchip RK801 PMIC,
     Bitmain BM1880 System Controller, and NXP LPC32xx System Control
     Block
   - Clarify trickle-charge terminology and add properties for voltage
     drop (VDR) correction and upper charge limits to the generic
     battery binding
   - Document GPR syscon for NXP S32 SoCs and the smp-memram subnode for
     Aspeed SCU
   - Document numerous new Qualcomm SPMI PMIC compatibles (pmcx0102,
     pmh0101, pmk8850, etc)
   - Add compatibles for the sama7d65 XLCD (Atmel), LAN9691 Flexcom
     (Microchip), and various MediaTek SCPSYS and regulator components
   - Fix a dead link to the audio codec binding in the DA9055
     documentation"

* tag 'mfd-next-6.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (41 commits)
  dt-bindings: mfd: da9055: Fix dead link to codec binding
  mfd: cgbc: Add support for backlight
  dt-bindings: mfd: qcom,spmi-pmic: Document PMICs present on Glymur and Kaanapali
  dt-bindings: mfd: Document smp-memram subnode for aspeed,ast2x00-scu
  mfd: intel-lpss: Add Intel Nova Lake-S PCI IDs
  mfd: ls2kbmc: Use PCI API instead of direct accesses
  mfd: ls2kbmc: Fully convert to use managed resources
  dt-bindings: mfd: mediatek: mt6397: Add missing MT6331 regulator compat
  dt-bindings: mfd: mediatek,mt8195-scpsys: Add mediatek,mt6795-scpsys
  dt-bindings: mfd: atmel,sama5d2-flexcom: Add microchip,lan9691-flexcom
  mfd: omap-usb-host: Fix OF populate on driver rebind
  mfd: qcom-pm8xxx: Fix OF populate on driver rebind
  dt-bindings: mfd: syscon: Allow syscon compatible for mediatek,mt7981-topmisc
  mfd: qnap-mcu: Add driver data for TS133 variant
  dt-bindings: mfd: qnap,ts433-mcu: Add qnap,ts133-mcu compatible
  mfd: sec: Fix IRQ domain names duplication
  mfd: simple-mfd-i2c: Add Delta TN48M CPLD support
  mfd: macsmc: Initialize mutex
  dt-bindings: mfd: nxp: Add NXP LPC32xx System Control Block
  mfd: Kconfig: Default MFD_SPACEMIT_P1 to 'm' if ARCH_SPACEMIT
  ...
2026-02-16 11:05:44 -08:00
..
abx500 mfd: ab8500: Remove non-existent configuration "#ifdef CONFIG_AB8500_DEBUG" 2023-11-01 10:02:11 +00:00
arizona mfd: arizona: Make legacy gpiolib interface optional 2025-10-01 10:28:24 +01:00
atc260x
da9052 mfd: da9052: Store result from fault_log 2024-12-17 13:17:25 +00:00
da9055 regulator: da9055: Fully convert to GPIO descriptors 2024-02-26 13:46:34 +00:00
da9062
da9063 watchdog: da9063: Do not use a global variable 2024-11-05 10:04:40 +01:00
da9150
madera mfd: madera: Don't use "proxy" headers 2025-07-24 11:27:14 +01:00
mt6323
mt6328 mfd: mt6397: Add initial support for MT6328 2024-10-31 16:25:03 +00:00
mt6331
mt6332
mt6357
mt6358 regulator: mt6358: Add missing regulators for MT6366 2023-10-02 19:43:49 +01:00
mt6359
mt6359p
mt6397 rtc: mt6397: drop unused defines 2025-04-01 12:03:39 +02:00
samsung regulator: s2mps11: add S2MPG10 regulator 2026-02-04 13:35:37 +00:00
syscon mfd: syscon: atmel-smc: Don't use "proxy" headers 2025-07-24 11:27:15 +01:00
wcd934x
wm831x
wm8350 mfd: wm8350-core: Use IRQF_ONESHOT 2026-02-01 17:37:16 +01:00
wm8994
88pm80x.h mfd: 88pm80x: Constify read-only regmap structs 2024-08-30 09:40:11 +01:00
88pm860x.h mfd: 88pm860x: Remove unused extern declarations 2023-08-18 21:48:05 +01:00
88pm886.h iio: adc: Add driver for Marvell 88PM886 PMIC ADC 2025-09-13 14:47:14 +01:00
aat2870.h mfd: aat2870: Use per-client debugfs directory 2025-05-22 15:49:58 +01:00
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 drm: atmel-hlcdc: Define XLCDC specific registers 2024-05-30 15:44:05 +02:00
axp20x.h mfd: axp20x: AXP717: Add type-C CC registers 2026-01-22 14:23:10 +00:00
bcm590xx.h mfd: bcm590xx: Drop unused "id" member of bcm590xx struct 2025-05-23 08:48:08 +01:00
bcm2835-pm.h
bd9571mwv.h
bq257xx.h mfd: bq257xx: Add support for BQ25703A core driver 2025-09-11 15:54:43 +01:00
cgbc.h mfd: Add Congatec Board Controller driver 2024-10-09 16:31:48 +01:00
core.h mfd: core: Make platform_data pointer const in struct mfd_cell 2024-12-17 13:14:21 +00:00
cs40l50.h mfd: cs40l50: Add support for CS40L50 core driver 2024-06-28 15:36:05 +01:00
cs42l43-regs.h mfd: cs42l43: Add support for cs42l43 core driver 2023-08-17 12:06:11 +01:00
cs42l43.h mfd: cs42l43: Tidy up header includes 2024-02-23 14:58:01 +00:00
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 mfd: ezx-pcap: Remove unused pcap_adc_sync 2025-03-14 08:59:07 +00:00
gsc.h
hi655x-pmic.h mfd: hi655x-pmic: Convert to devm_platform_ioremap_resource() 2023-08-18 21:48:00 +01:00
hi6421-pmic.h
idt8a340_reg.h mfd: idt8a340_reg: Start comments with '/*' 2024-07-04 17:08:01 +01:00
idt82p33_reg.h
idtRC38xxx_reg.h ptp: add FemtoClock3 Wireless as ptp hardware clock 2024-01-29 13:00:23 +00:00
imx25-tsadc.h
ingenic-tcu.h
intel-m10-bmc.h mfd: intel-m10-bmc: Change staging size to a variable 2024-05-10 15:39:16 +01:00
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 mfd: lm3533: Move to new GPIO descriptor-based APIs 2024-07-04 17:38:40 +01:00
lochnagar.h
lochnagar1_regs.h
lochnagar2_regs.h
loongson-se.h mfd: Add support for Loongson Security Engine chip controller 2025-09-02 12:29:57 +01:00
lp873x.h
lp3943.h mfd: lp3943: Drop #include <linux/pwm.h> from header 2025-03-14 08:59:06 +00:00
lp8788-isink.h
lp8788.h backlight: lp8788: Drop support for platform data 2024-05-10 15:44:28 +01:00
lp87565.h
lpc_ich.h mfd: lpc_ich: Move APL GPIO resources to a custom structure 2023-11-01 10:02:13 +00:00
macsmc.h mfd: macsmc: Make SMC write buffers const 2025-11-06 14:03:28 +00:00
max5970.h regulator: max5970: Drop unused structs 2024-10-10 12:16:58 +01:00
max7360.h mfd: Add max7360 support 2025-09-16 15:24:48 +01:00
max8907.h
max8925.h
max8997-private.h mfd: maxim: Correct Samsung "Electronics" spelling in headers 2025-06-03 09:46:40 +01:00
max8997.h mfd: maxim: Correct Samsung "Electronics" spelling in copyright headers 2025-06-03 09:46:41 +01:00
max8998-private.h mfd: maxim: Correct Samsung "Electronics" spelling in headers 2025-06-03 09:46:40 +01:00
max8998.h mfd: maxim: Correct Samsung "Electronics" spelling in headers 2025-06-03 09:46:40 +01:00
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 mfd: max77541: Add ADI MAX77541/MAX77540 PMIC Support 2023-06-21 18:16:18 +01:00
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 mfd: Add new driver for MAX77705 PMIC 2025-02-20 16:37:40 +00:00
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 leds: max77705: Add LEDs support 2025-02-20 16:38:37 +00:00
max77714.h
max77759.h mfd: max77759: Add Maxim MAX77759 core driver 2025-05-09 15:22:30 +01:00
max77843-private.h mfd: Fix a few spelling mistakes in PMIC header file comments 2023-12-07 13:50:30 +00:00
mc13xxx.h mfd: input: rtc: mc13783: Remove deprecated mc13xxx_irq_ack() 2025-09-11 11:39:31 +01:00
mc13783.h
mc13892.h
mcp.h
menelaus.h
motorola-cpcap.h
mp2629.h
mxs-lradc.h
nct6694.h mfd: Add core driver for Nuvoton NCT6694 2025-09-16 14:41:57 +01:00
ntxec.h
ocelot.h
palmas.h mfd: palmas: Constify strings with regulator names 2024-10-16 09:04:09 +01:00
pf1550.h mfd: pf1550: Add core driver for the PF1550 PMIC 2025-10-21 16:43:32 +01:00
qcom_rpm.h
qnap-mcu.h mfd: qnap-mcu: Include linux/types.h in qnap-mcu.h shared header 2025-10-01 10:28:13 +01:00
rave-sp.h
rc5t583.h
rdc321x.h
retu.h
rk808.h mfd: rk8xx: Add RK801 support 2026-01-20 14:57:41 +00:00
rn5t618.h
rohm-bd718x7.h
rohm-bd957x.h
rohm-bd71815.h
rohm-bd71828.h mfd: bd71828: Add some missing charger related registers 2026-01-22 14:22:20 +00:00
rohm-bd72720.h mfd: rohm-bd71828: Support ROHM BD72720 2026-01-13 12:47:28 +00:00
rohm-bd96801.h mfd: rohm-bd96801: Support ROHM BD96802 2025-04-24 14:52:57 +01:00
rohm-bd96802.h mfd: rohm-bd96801: Support ROHM BD96802 2025-04-24 14:52:57 +01:00
rohm-generic.h mfd: rohm-bd71828: Support ROHM BD72720 2026-01-13 12:47:28 +00:00
rohm-shared.h
rsmu.h
rt5033-private.h mfd: rt5033: Apply preparatory changes before adding rt5033-charger driver 2023-06-08 18:16:57 +01:00
rt5033.h power: supply: rt5033_battery: Move struct rt5033_battery to battery driver 2023-06-08 18:17:38 +01:00
rz-mtu3.h mfd: rz-mtu3: Link time dependencies 2023-08-18 21:48:04 +01:00
sc27xx-pmic.h
si476x-core.h
si476x-platform.h mfd: Fix a few spelling mistakes in PMIC header file comments 2023-12-07 13:50:30 +00:00
si476x-reports.h
sky81452.h
stm32-lptimer.h mfd: stm32-lptimer: Add support for stm32mp25 2025-05-13 11:12:52 +01:00
stm32-timers.h mfd: stm32-timers: Add support for stm32mp25 2025-03-14 08:59:05 +00:00
stmfx.h
stmpe.h
stpmic1.h mfd: stpmic1: Fixup main control register and bits naming 2023-06-15 09:19:39 +01:00
stw481x.h
sun4i-gpadc.h mfd: sun4i-gpadc: Correct specified GPADC interrupt numbers 2024-02-23 14:58:00 +00:00
sy7636a.h
syscon.h mfd: syscon: Add of_syscon_register_regmap() API 2024-06-26 16:46:50 +01:00
tc3589x.h
ti-lmu-register.h
ti-lmu.h
ti_am335x_tscadc.h
tps6105x.h mfd: tps6105x: Fix kernel-doc warnings relating to the core struct and tps6105x_mode 2026-01-22 14:22:14 +00:00
tps6507x.h
tps6586x.h
tps6594.h mfd: tps6594: Add TI TPS652G1 support 2025-07-10 09:58:01 +01:00
tps65010.h ARM/mfd/gpio: Fixup TPS65010 regression on OMAP1 OSK1 2023-05-24 15:01:22 +02:00
tps65086.h regulator: tps65086: Select dedicated regulator config for chip variant 2023-08-18 22:06:52 +01:00
tps65090.h
tps65217.h
tps65218.h
tps65219.h mfd: tps65219: Implement LOCK register handling for TPS65214 2026-01-22 14:22:54 +00:00
tps65910.h mfd: Fix a few spelling mistakes in PMIC header file comments 2023-12-07 13:50:30 +00:00
tps65912.h mfd: tps65912: Use devm helper functions to simplify probe 2024-07-04 17:38:40 +01:00
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 mfd: Add support for AAEON UP board FPGA 2024-12-17 13:17:26 +00:00
viperboard.h
wm97xx.h
wm8400-audio.h
wm8400-private.h
wm8400.h