linux/drivers/mfd
Linus Torvalds 59e6295fac Driver core changes for 7.3-rc1
- container_of:
 
   - Apply typeof_member(), remove the local __mptr variable to eliminate
     variable shadowing warnings on nested container_of() calls, and remove
     unnecessary parentheses.
 
 - core:
 
   - Add driver name to probe debug print for initcall_debug.
 
   - Avoid repeatedly printing the same 'Fixed dependency cycle' log.
 
   - Unwind device_add() on attribute creation failure in
     attribute_container_add_class_device().
 
   - Remove statistics group if encryption group creation fails in
     transport_add_class_device().
 
 - debugfs:
 
   - Fix lockdown check for mmap_prepare().
 
   - Warn if file creation failed due to uninitialized debugfs.
 
 - device property:
 
   - Implement fw_devlink support for software nodes by adding
     software_node_add_links(), which creates fwnode links from DEV_PROP_REF
     properties to enable automatic probe ordering. Add kunit-managed fwnode
     helpers and test coverage.
 
   - Fix infinite loop in fwnode_for_each_child_node() when the secondary fwnode
     has more than one child. Add test cases.
 
   - Fix out-of-bounds access in software_node_get_reference_args() when called
     with index -1 (UINT_MAX).
 
   - Refactor to use RAII approach with __free().
 
   - Add Bartosz Golaszewski as software node reviewer.
 
 - firmware loader:
 
   - Fix race where a sysfs fallback request can complete before being queued as
     pending, leading to a use-after-free on the next fallback request.
 
   - Reject 0-size built-in firmware and fail the build on empty firmware files
     in CONFIG_EXTRA_FIRMWARE.
 
 - kobject:
 
   - Provide __KOBJ_ATTR() and __KOBJ_ATTR_RO/WO() initialization macros and
     allow the constification of kobject attributes, enabling them to reside in
     read-only memory.
 
 - platform:
 
   - Provide platform_device_set_of_node(), platform_device_set_fwnode(), and
     platform_device_set_of_node_from_dev() helpers that encapsulate firmware
     node reference counting for dynamically allocated platform devices. Convert
     all in-tree users that manually assigned dev.of_node or dev.fwnode, fixing a
     pre-existing refcount bug in powermac.  Switch to counting references of all
     firmware node types, not only OF nodes.
 
   - Unify the release path for dynamically allocated platform devices by
     removing platform_device_release_full(). Amend the fwnode setter API
     contract to warn if a primary software node is overwritten. Add KUnit tests
     for correct software node removal on device unregistration.
 
 - Rust:
 
   - Auxiliary:
 
     - Add registration_data_with() closure-based API for invariant ForLt types.
 
   - Debugfs:
 
     - Migrate BinaryWriter and BinaryReaderMut trait requirements from
       kernel::transmute traits to zerocopy traits.
 
   - Device:
 
     - Add BoundInternal device context and InternalBoundContext trait for bus
       abstractions that need internal access to a bound device.
 
     - Make the lifetime on Core and CoreInternal invariant to prevent coercion
       to shorter lifetimes.
 
   - Devres:
 
     - Fix race between concurrent revokers where the losing revoker could return
       before the winning revoker finished dropping the inner data, causing
       use-after-free.
 
     - Ensure revocation is complete before the device finishes unbinding by
       making the synchronization bidirectional.
 
     - Add DevresLt<F: ForLt>, a wrapper around Devres that shortens 'static back
       to the caller's borrow scope. Implement ForLt and CovariantForLt for Bar,
       IoMem, and ExclusiveIoMem.
 
   - Driver:
 
     - Switch from index-based to pointer-based device ID info lookup, storing
       static references in driver_data. Centralize device ID handling in
       device_id.rs, removing the open-coded ACPI/OF matching logic and duplicate
       ID table from driver.rs.
 
   - I/O:
 
     - Make I/O regions typed (with a dynamically-sized Region type for the
       existing untyped case), create view types representing subregions of a
       mapped I/O region, and add io_project!() for safely creating subviews.
 
     - Split Io into a base trait (IoBase) and an extension trait (Io) with a
       blanket implementation, preventing implementers from overriding provided
       methods that unsafe code relies on.
 
     - Add a SysMem backend for shared system memory with volatile access, and
       make Coherent implement Io via an I/O view type.  Add IoSysMap as sum type
       of Mmio and SysMem. Add copying methods (memcpy_{from,to}io()) and
       read_val()/write_val() for typed access.
 
     - Replace dma_read!()/dma_write!() with io_read!()/io_write!() for
       primitives and copying methods for aggregates; drop the old macros.
       Convert nova-core to use I/O projection.
 
     - Fix internal shortcut rule dispatch in the register!() macro, remove
       unused rule arguments, and use path fragments for alias destinations.
 
   - IRQ:
 
     - Make irq::Registration compatible with lifetime-bound drivers by
       removing the 'static bound on Handler/ThreadedHandler and
       replacing Devres<RegistrationInner> with direct
       request_irq()/free_irq() calls.  Handlers can now directly own
       lifetime-bound device resources.
 
   - PCI:
 
     - Convert IrqVectorRegistration to a lifetime-annotated owning type,
       giving drivers explicit control over the allocation lifetime.
       IrqVector embeds a resolved IrqRequest, making the conversion
       infallible. Remove the redundant
       request_irq()/request_threaded_irq() wrappers from pci::Device.
 
     - Add pci_irq_type() C helper and expose it via irq_type() on
       IrqVectorRegistration and IrqVector, returning PCI_IRQ_MSIX, PCI_IRQ_MSI,
       or PCI_IRQ_INTX.
 
     - Mark pci::Device refcount methods inline.
 
   - Serdev:
 
     - Add Rust abstractions for the serial device bus, including serdev::Driver
       trait, serdev::Device wrapping struct serdev_device, and serdev::Adapter
       implementing RegistrationOps.  Includes a sample driver. Markus Probst
       takes over as serdev maintainer for both C and Rust code.
 
   - Misc:
 
     - Split ForLt into a base trait (providing the Of<'a> GAT) and an unsafe
       CovariantForLt subtrait guaranteeing covariance, enabling invariant types
       (e.g. those containing Mutex<&'bound T>) to participate in the ForLt
       abstraction.
 
     - Fix Coherent read past EOF returning -ERANGE instead of zero.
 
     - Fix firmware example UB by avoiding null-pointer ARef.
 
 - misc:
 
   - Avoid iattr allocation in kernfs listxattr by using kernfs_iattrs_noalloc().
   - Unregister SoC bus on early device registration failure.
   - Remove unused DMA_FENCE_TRACE Kconfig symbol.
   - Fix /sys/module path in comment.
   - Refactor ISA bus init to remove nested blocks.
   - Remove redundant nodemask clears in numa_init().
   - Add kernel-doc for fwnode_operations and sys_soc.h, mark internal property
     data as private for kernel-doc, and add property.h/fwnode.h to driver-api
     infrastructure docs.
   - Add MAINTAINERS entry for sys_soc.h.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS2q/xV6QjXAdC7k+1FlHeO1qrKLgUCaoSPugAKCRBFlHeO1qrK
 LlBrAP958EaYZVyfAsqq0EyHv86ahXKWoDDvkwbRUZA5CfV9tAD/bMWVtPLRYaaq
 eNEZT7p5w3Haezh61H3c5zpuwFNMTA0=
 =VRIa
 -----END PGP SIGNATURE-----

Merge tag 'driver-core-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core

Pull driver core updates from Danilo Krummrich:
 "container_of:

   - Apply typeof_member(), remove the local __mptr variable to
     eliminate variable shadowing warnings on nested container_of()
     calls, and remove unnecessary parentheses

  core:

   - Add driver name to probe debug print for initcall_debug

   - Avoid repeatedly printing the same 'Fixed dependency cycle' log

   - Unwind device_add() on attribute creation failure in
     attribute_container_add_class_device()

   - Remove statistics group if encryption group creation fails in
     transport_add_class_device()

  debugfs:

   - Fix lockdown check for mmap_prepare()

   - Warn if file creation failed due to uninitialized debugfs

  device property:

   - Implement fw_devlink support for software nodes by adding
     software_node_add_links(), which creates fwnode links from
     DEV_PROP_REF properties to enable automatic probe ordering. Add
     kunit-managed fwnode helpers and test coverage

   - Fix infinite loop in fwnode_for_each_child_node() when the
     secondary fwnode has more than one child. Add test cases

   - Fix out-of-bounds access in software_node_get_reference_args() when
     called with index -1 (UINT_MAX)

   - Refactor to use RAII approach with __free()

   - Add Bartosz Golaszewski as software node reviewer

  firmware loader:

   - Fix race where a sysfs fallback request can complete before being
     queued as pending, leading to a use-after-free on the next fallback
     request

   - Reject 0-size built-in firmware and fail the build on empty
     firmware files in CONFIG_EXTRA_FIRMWARE

  kobject:

   - Provide __KOBJ_ATTR() and __KOBJ_ATTR_RO/WO() initialization macros
     and allow the constification of kobject attributes, enabling them
     to reside in read-only memory

  platform:

   - Provide platform_device_set_of_node(), platform_device_set_fwnode(),
     and platform_device_set_of_node_from_dev() helpers that encapsulate
     firmware node reference counting for dynamically allocated platform
     devices

     Convert all in-tree users that manually assigned dev.of_node or
     dev.fwnode, fixing a pre-existing refcount bug in powermac. Switch
     to counting references of all firmware node types, not only OF
     nodes

   - Unify the release path for dynamically allocated platform devices
     by removing platform_device_release_full(). Amend the fwnode setter
     API contract to warn if a primary software node is overwritten. Add
     KUnit tests for correct software node removal on device
     unregistration

  Rust:

   - Auxiliary:
       - Add registration_data_with() closure-based API for invariant
         ForLt types

   - Debugfs:
       - Migrate BinaryWriter and BinaryReaderMut trait requirements
         from kernel::transmute traits to zerocopy traits

   - Device:
       - Add BoundInternal device context and InternalBoundContext trait
         for bus abstractions that need internal access to a bound
         device.
       - Make the lifetime on Core and CoreInternal invariant to prevent
         coercion to shorter lifetimes

   - Devres:
       - Fix race between concurrent revokers where the losing revoker
         could return before the winning revoker finished dropping the
         inner data, causing use-after-free.
       - Ensure revocation is complete before the device finishes
         unbinding by making the synchronization bidirectional.
       - Add DevresLt<F: ForLt>, a wrapper around Devres that shortens
         'static back to the caller's borrow scope. Implement ForLt and
         CovariantForLt for Bar, IoMem, and ExclusiveIoMem

   - Driver:
       - Switch from index-based to pointer-based device ID info lookup,
         storing static references in driver_data. Centralize device ID
         handling in device_id.rs, removing the open-coded ACPI/OF
         matching logic and duplicate ID table from driver.rs

   - I/O:
       - Make I/O regions typed (with a dynamically-sized Region type
         for the existing untyped case), create view types representing
         subregions of a mapped I/O region, and add io_project!() for
         safely creating subviews.
       - Split Io into a base trait (IoBase) and an extension trait (Io)
         with a blanket implementation, preventing implementers from
         overriding provided methods that unsafe code relies on.
       - Add a SysMem backend for shared system memory with volatile
         access, and make Coherent implement Io via an I/O view type.
         Add IoSysMap as sum type of Mmio and SysMem. Add copying
         methods (memcpy_{from,to}io()) and read_val()/write_val() for
         typed access.
       - Replace dma_read!()/dma_write!() with io_read!()/io_write!()
         for primitives and copying methods for aggregates; drop the old
         macros. Convert nova-core to use I/O projection.
       - Fix internal shortcut rule dispatch in the register!() macro,
         remove unused rule arguments, and use path fragments for alias
         destinations

   - IRQ:
       - Make irq::Registration compatible with lifetime-bound drivers
         by removing the 'static bound on Handler/ThreadedHandler and
         replacing Devres<RegistrationInner> with direct
         request_irq()/free_irq() calls. Handlers can now directly own
         lifetime-bound device resources

   - PCI:
       - Convert IrqVectorRegistration to a lifetime-annotated owning
         type, giving drivers explicit control over the allocation
         lifetime. IrqVector embeds a resolved IrqRequest, making the
         conversion infallible. Remove the redundant
         request_irq()/request_threaded_irq() wrappers from pci::Device.
       - Add pci_irq_type() C helper and expose it via irq_type() on
         IrqVectorRegistration and IrqVector, returning PCI_IRQ_MSIX,
         PCI_IRQ_MSI, or PCI_IRQ_INTX.
       - Mark pci::Device refcount methods inline

   - Serdev:
       - Add Rust abstractions for the serial device bus, including
         serdev::Driver trait, serdev::Device wrapping struct
         serdev_device, and serdev::Adapter implementing
         RegistrationOps. Includes a sample driver. Markus Probst takes
         over as serdev maintainer for both C and Rust code

   - Misc:
       - Split ForLt into a base trait (providing the Of<'a> GAT) and an
         unsafe CovariantForLt subtrait guaranteeing covariance,
         enabling invariant types (e.g. those containing Mutex<&'bound T>)
         to participate in the ForLt abstraction.
       - Fix Coherent read past EOF returning -ERANGE instead of zero.
       - Fix firmware example UB by avoiding null-pointer ARef

  misc:
   - Avoid iattr allocation in kernfs listxattr by using
     kernfs_iattrs_noalloc().
   - Unregister SoC bus on early device registration failure.
   - Remove unused DMA_FENCE_TRACE Kconfig symbol.
   - Fix /sys/module path in comment.
   - Refactor ISA bus init to remove nested blocks.
   - Remove redundant nodemask clears in numa_init().
   - Add kernel-doc for fwnode_operations and sys_soc.h, mark
     internal property data as private for kernel-doc, and add
     property.h/fwnode.h to driver-api infrastructure docs.
   - Add MAINTAINERS entry for sys_soc.h"

* tag 'driver-core-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core: (129 commits)
  rust: pci: expose the allocated interrupt type
  PCI: Add pci_irq_type() to query the allocated interrupt type
  rust: pci: remove request_irq() and request_threaded_irq() from Device
  rust: pci: resolve IRQ in index() and embed IrqRequest in IrqVector
  rust: pci: convert IrqVectorRegistration to a lifetime-managed owning type
  kernfs: avoid iattr allocation in listxattr
  rust: serdev: use ThisModule::as_ptr() instead of field access
  ACPI/IORT: use platform_device_set_fwnode()
  ACPI/APMT: use platform_device_set_fwnode()
  firmware_loader: do not queue completed sysfs fallback requests
  rust: pci: Mark Device refcount methods inline
  rust: irq: make Registration compatible with lifetime-bound drivers
  rust: net/phy: remove expansion from doc
  rust: dma: return zero for Coherent reads past EOF
  rust: io: register: use path fragment for alias destination
  rust: io: register: remove unused rule arguments
  rust: io: register: dispatch shortcut rules internally
  MAINTAINERS: add sys_soc.h to DRIVER CORE
  rust: debugfs: remove unsafe blocks from traits impl for Vec
  rust: debugfs: migrate debugfs traits requirements to zerocopy
  ...
2026-08-19 10:42:18 -07:00
..
88pm80x.c mfd: Remove redundant dev_set_drvdata() from I2C drivers 2023-06-15 09:19:37 +01:00
88pm800.c mfd: 88pm80x: Constify read-only regmap structs 2024-08-30 09:40:11 +01:00
88pm805.c mfd: 88pm80x: Constify read-only regmap structs 2024-08-30 09:40:11 +01:00
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
aat2870-core.c mfd: replace linux/gpio.h inclusions 2026-07-24 20:12:48 +02:00
ab8500-core.c mfd: Use dev_fwnode() instead of of_fwnode_handle() 2025-07-24 11:27:02 +01:00
ab8500-sysctrl.c mfd: Switch back to struct platform_driver::remove() 2024-11-01 15:56:58 +00:00
abx500-core.c
ac100.c mfd: ac100: Convert to use maple tree register cache 2024-02-23 14:58:03 +00:00
acer-ec-a500.c mfd: Explicitly include correct DT includes 2023-08-18 21:48:03 +01:00
act8945a.c mfd: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-07-04 17:08:02 +01:00
adp5520.c mfd: Switch i2c drivers back to use .probe() 2023-06-15 09:19:37 +01:00
adp5585.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
altera-a10sr.c mfd: altera-a10sr: Remove redundant of_match_ptr() 2023-08-22 08:07:50 +01:00
altera-sysmgr.c mfd: altera-sysmgr: Fix device leak on sysmgr regmap lookup 2025-11-06 14:03:32 +00:00
arizona-core.c mfd: arizona: Fix regulator resource leak on wm5102_clear_write_sequencer() failure 2026-01-22 14:22:26 +00:00
arizona-i2c.c mfd: arizona-i2c: Simplify obtaining I2C match data 2023-11-01 10:02:12 +00:00
arizona-irq.c mfd: replace linux/gpio.h inclusions 2026-07-24 20:12:48 +02:00
arizona-spi.c mfd: arizona: Simplify with spi_get_device_match_data() 2024-07-04 17:38:40 +01:00
arizona.h mfd: arizona: Split of_match table into I2C and SPI versions 2021-11-05 14:40:26 +00:00
as3711.c mfd: as3711: Convert to use maple tree register cache 2024-02-23 14:58:03 +00:00
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 mfd: atc260x: Convert a bunch of commas to semicolons 2024-09-23 16:20:55 +01:00
atc260x-i2c.c mfd: Switch i2c drivers back to use .probe() 2023-06-15 09:19:37 +01:00
atmel-flexcom.c mfd: atmel-flexcom/rk8xx-core: Convert comma to semicolon 2024-10-16 09:04:09 +01:00
atmel-hlcdc.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
atmel-smc.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
axp20x-i2c.c mfd: axp20x: Add support for AXP323 2024-10-31 15:51:29 +00:00
axp20x-rsb.c mfd: axp20x: Add support for AXP717 PMIC 2024-03-28 09:50:59 +00:00
axp20x.c mfd: axp20x: AXP717: Add type-C CC registers 2026-01-22 14:23:10 +00: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 BCM2712 PM device support 2026-03-25 12:45:49 +00:00
bd9571mwv.c mfd: bd9571mwv: Constify struct regmap_irq_chip 2024-08-30 09:40:11 +01:00
bq257xx.c mfd: bq257xx: Add BQ25792 support 2026-06-17 11:30:35 +01:00
cgbc-core.c mfd: cgbc: Add support for backlight 2026-02-04 11:07:20 +00:00
cros_ec_dev.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
cs40l50-core.c mfd: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-30 08:16:43 +01:00
cs40l50-i2c.c mfd: cs40l50: Add support for CS40L50 core driver 2024-06-28 15:36:05 +01:00
cs40l50-spi.c mfd: cs40l50: Add support for CS40L50 core driver 2024-06-28 15:36:05 +01:00
cs42l43-i2c.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
cs42l43-sdw.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
cs42l43.c mfd: cs42l43: Sanity check firmware size 2026-06-17 11:32:30 +01:00
cs42l43.h mfd: cs42l43: Add support for the B variant 2026-03-09 10:29:32 +00:00
cs47l15-tables.c mfd: cs47l15: Update to use maple tree register cache 2023-08-18 21:48:01 +01:00
cs47l24-tables.c mfd: cs47l24: Update to use maple tree register cache 2023-08-18 21:48:02 +01:00
cs47l35-tables.c mfd: cs47l35: Update to use maple tree register cache 2023-08-18 21:48:02 +01:00
cs47l85-tables.c mfd: cs47l85: Update to use maple tree register cache 2023-08-18 21:48:02 +01:00
cs47l90-tables.c mfd: cs47l90: Update to use maple tree register cache 2023-08-18 21:48:02 +01:00
cs47l92-tables.c mfd: cs47l92: Update to use maple tree register cache 2023-08-18 21:48:02 +01:00
cs5535-mfd.c mfd: cs5535: Add, assign and expose the software node for the GPIO cell 2026-06-17 11:31:55 +01:00
da903x.c mfd: Switch i2c drivers back to use .probe() 2023-06-15 09:19:37 +01:00
da9052-core.c mfd: da9052: Store result from fault_log 2024-12-17 13:17:25 +00:00
da9052-i2c.c mfd: Explicitly include correct DT includes 2023-08-18 21:48:03 +01:00
da9052-irq.c
da9052-spi.c Revert "mfd: da9052-spi: Change read-mask to write-mask" 2026-01-22 14:22:11 +00:00
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 mfd: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-07-04 17:08:02 +01:00
da9062-core.c mfd: da9062-core: Constify read-only regmap structs 2024-08-30 09:40:11 +01:00
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 mfd: dialog: Convert to use maple tree register cache 2024-02-23 14:58:04 +00:00
db8500-prcmu-regs.h mfd: db8500-prcmu: Rename register header 2021-08-05 14:19:59 +01:00
db8500-prcmu.c mfd: Switch to irq_domain_create_*() 2025-05-16 21:06:10 +02:00
dln2.c mfd: dln2: Switch to managed resources and fix bare unsigned types 2026-03-25 12:45:15 +00:00
ene-kb3930.c mfd: ene-kb3930: Use of_device_is_system_power_controller() wrapper 2026-03-31 10:48:30 +01:00
exynos-lpass.c mfd: Remove unneeded 'fast_io' parameter in regmap_config 2025-10-01 10:28:26 +01: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 move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hi655x-pmic.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
hi6421-pmic-core.c mfd: Use device_get_match_data() in a bunch of drivers 2023-11-01 10:02:17 +00:00
hi6421-spmi-pmic.c mfd: hi6421-spmi-pmic: Cleanup drvdata to only include regmap 2021-10-05 08:56:08 +01:00
intel_pmc_bxt.c platform/x86: intel_scu_ipc: Move intel_scu_ipc.h out of arch/x86/include/asm 2024-09-11 14:26:03 +02:00
intel_quark_i2c_gpio.c mfd: intel_quark_i2c_gpio: Convert GPIO to use software nodes 2021-08-11 16:00:53 +03:00
intel_soc_pmic_bxtwc.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
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 mfd: intel_soc_pmic_*: Consistently use filename as driver name 2024-11-12 12:15:42 +00:00
intel_soc_pmic_crc.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
intel_soc_pmic_mrfld.c platform/x86: intel_scu_ipc: Move intel_scu_ipc.h out of arch/x86/include/asm 2024-09-11 14:26:03 +02:00
intel-lpss-acpi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
intel-lpss-pci.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
intel-lpss.c PM: sleep: Use DPM_FLAG_SMART_SUSPEND conditionally 2025-02-19 13:22:12 +01:00
intel-lpss.h mfd: intel-lpss: Introduce QUIRK_CLOCK_DIVIDER_UNITY for XPS 9530 2024-02-23 14:58:00 +00:00
intel-m10-bmc-core.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
intel-m10-bmc-pmci.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
intel-m10-bmc-spi.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
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 move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
janz-cmodio.c mfd: janz-cmoio: Replace snprintf in show functions with sysfs_emit 2021-11-05 14:40:27 +00:00
Kconfig mfd: qcom: Unify user-visible "Qualcomm" name 2026-06-17 11:32:27 +01:00
kempld-core.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
khadas-mcu.c mfd: khadas-mcu: Convert to use maple tree register cache 2024-02-23 14:58:04 +00:00
lm3533-core.c mfd: lm3533: Move to new GPIO descriptor-based APIs 2024-07-04 17:38:40 +01:00
lm3533-ctrlbank.c
lochnagar-i2c.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
loongson-se.c mfd: Add support for Loongson Security Engine chip controller 2025-09-02 12:29:57 +01:00
lp873x.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
lp3943.c mfd: replace linux/gpio.h inclusions 2026-07-24 20:12:48 +02:00
lp8788-irq.c mfd: Use dev_fwnode() instead of of_fwnode_handle() 2025-07-24 11:27:02 +01:00
lp8788.c mfd: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-07-04 17:08:02 +01:00
lp87565.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
lpc_ich.c mfd: Consistently define pci_device_ids using named initializers 2026-06-17 11:31:17 +01:00
lpc_sch.c mfd: Consistently define pci_device_ids using named initializers 2026-06-17 11:31:17 +01:00
ls2k-bmc-core.c mfd: ls2kbmc: Use PCI API instead of direct accesses 2026-01-22 14:23:53 +00:00
macsmc.c mfd: macsmc: Wire up Apple SMC power driver 2026-03-25 12:45:13 +00:00
madera-core.c mfd: madera: Work around false-positive -Wininitialized warning 2025-10-01 10:28:20 +01:00
madera-i2c.c mfd: madera-i2c: Simplify obtaining I2C match data 2023-11-01 10:02:12 +00:00
madera-spi.c mfd: madera: Simplify with spi_get_device_match_data() 2024-07-04 17:38:40 +01:00
madera.h
Makefile mfd: ezx-pcap: Remove unused driver 2026-06-17 11:32:14 +01:00
max7360.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
max8907.c mfd: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-07-04 17:08:02 +01:00
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 Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
max77541.c mfd: max77541: Fix wakeup source leaks on device unbind 2025-05-23 08:49:09 +01:00
max77620.c mfd: max77620: Convert poweroff support to sys-off API 2026-06-17 11:32:41 +01:00
max77650.c mfd: Switch i2c drivers back to use .probe() 2023-06-15 09:19:37 +01:00
max77686.c mfd: max77686: Convert to use maple tree register cache 2023-11-01 10:02:15 +00:00
max77693.c mfd: Switch i2c drivers back to use .probe() 2023-06-15 09:19:37 +01:00
max77705.c mfd: max77705: Make max77705_pm_ops variable static 2026-03-25 12:44:51 +00:00
max77714.c mfd: Switch i2c drivers back to use .probe() 2023-06-15 09:19:37 +01:00
max77759.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
max77843.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
mc13xxx-core.c mfd: mc13xxx-core: Fix memory leak in mc13xxx_add_subdevice_pdata() 2026-03-25 12:44:43 +00:00
mc13xxx-i2c.c mfd: mc13xxx: Simplify device data fetching in probe() 2023-08-22 08:07:52 +01:00
mc13xxx-spi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
mc13xxx.h mfd: mc13xxx: Make mc13xxx_common_exit() return void 2021-11-05 14:40:26 +00:00
mcp-core.c driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
mcp-sa11x0.c mfd: Switch back to struct platform_driver::remove() 2024-11-01 15:56:58 +00:00
menelaus.c mfd: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-07-04 17:08:02 +01:00
menf21bmc.c mfd: menf21bmc: Inline i2c_check_functionality check 2026-06-17 11:32:09 +01:00
mfd-core.c mfd: core: Preserve OF node when ACPI handle is present 2026-03-31 13:38:25 +01:00
motorola-cpcap.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
mp2629.c mfd: Switch i2c drivers back to use .probe() 2023-06-15 09:19:37 +01:00
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 mfd: mt6360: Use scoped variables with memory allocators to simplify error paths 2024-08-30 09:40:13 +01:00
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: Properly fix CID of MT6328, MT6331 and MT6332 2026-03-25 12:45:09 +00: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 mfd: Switch back to struct platform_driver::remove() 2024-11-01 15:56:58 +00:00
nct6694.c mfd: Add core driver for Nuvoton NCT6694 2025-09-16 14:41:57 +01:00
ntxec.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ocelot-core.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
ocelot-spi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
ocelot.h mfd: ocelot: Add support for the vsc7512 chip via spi 2022-09-09 07:54:47 +01:00
omap-usb-host.c mfd: omap-usb-host: Fix OF populate on driver rebind 2026-01-22 14:23:40 +00:00
omap-usb-tll.c mfd: Switch back to struct platform_driver::remove() 2024-11-01 15:56:58 +00:00
omap-usb.h
palmas.c mfd: palmas: Make similar OF and ID table 2023-11-01 10:02:10 +00:00
pf1550.c mfd: pf1550: Add core driver for the PF1550 PMIC 2025-10-21 16:43:32 +01:00
qcom_rpm.c mfd: qcom_rpm: Add msm8960 QDSS clock resource 2026-06-17 11:32:46 +01:00
qcom-pm8xxx.c mfd: qcom-pm8xxx: Fix OF populate on driver rebind 2026-01-22 14:23:38 +00:00
qcom-pm8008.c mfd: qcom-pm8008: Add missing MODULE_DESCRIPTION() macro 2024-07-04 17:38:40 +01:00
qcom-spmi-pmic.c mfd: qcom-spmi-pmic: Use for_each_child_of_node_scoped() 2024-09-23 16:20:54 +01:00
qnap-mcu.c mfd: qnap-mcu: Add driver data for TS133 variant 2026-01-22 14:23:32 +00:00
rave-sp.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
rc5t583-irq.c mfd: rc5t583-irq: Remove the unneeded include <linux/i2c.h> 2023-06-15 09:19:36 +01:00
rc5t583.c mfd: rc5t583: Convert to use maple tree register cache 2024-02-23 14:58:05 +00:00
rdc321x-southbridge.c
retu-mfd.c mfd: retu: Constify read-only regmap structs 2024-08-30 09:40:12 +01:00
rk8xx-core.c mfd: rk8xx: Add RK801 support 2026-01-20 14:57:41 +00:00
rk8xx-i2c.c mfd: rk8xx: Add RK801 support 2026-01-20 14:57:41 +00:00
rk8xx-spi.c mfd: rk8xx: Convert to use maple tree register cache 2024-02-23 14:58:04 +00:00
rn5t618.c mfd: rn5t618: Convert to use maple tree register cache 2024-02-23 14:58:04 +00:00
rohm-bd718x7.c mfd: rohm-bd718x7: Use software nodes for gpio-keys 2026-07-16 13:33:04 +01:00
rohm-bd9576.c mfd: rohm-bd9576: Constify read-only regmap structs 2024-08-30 09:40:11 +01:00
rohm-bd71828.c mfd: rohm-bd71828: Use software nodes for gpio-keys 2026-07-16 13:32:51 +01:00
rohm-bd96801.c mfd: bd96801: Support ROHM BD96806 2025-04-24 14:53:13 +01:00
rsmu_core.c mfd: rsmu: Split core code into separate module 2024-07-04 17:08:02 +01:00
rsmu_i2c.c mfd: rsmu: Add 8a34002 support 2026-06-17 11:31:13 +01:00
rsmu_spi.c mfd: rsmu: Add 8a34002 support 2026-06-17 11:31:13 +01:00
rsmu.h mfd: rsmu: Support 32-bit address space 2023-04-26 11:40:34 +01:00
rt4831.c mfd: Add missing MODULE_DESCRIPTION() macros 2024-07-04 17:38:40 +01:00
rt5033.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
rt5120.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
rz-mtu3.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
rz-mtu3.h mfd: Add Renesas RZ/G2L MTU3a core driver 2023-04-26 11:40:34 +01:00
sec-acpm.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
sec-common.c mfd: sec: Set DMA coherent mask 2026-06-17 11:26:50 +01: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 Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
sec-irq.c mfd: sec: Add support for S2MU005 PMIC 2026-06-17 11:26:30 +01:00
si476x-cmd.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
si476x-i2c.c mfd: si476x-i2c: Fix spelling mistakes in comments 2026-06-17 11:32:44 +01:00
si476x-prop.c mfd: si476x: Convert to use maple tree register cache 2024-02-23 14:58:05 +00:00
simple-mfd-i2c.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
simple-mfd-i2c.h mfd: simple-mfd-i2c: Add support for registering devices via MFD cells 2021-08-16 13:45:34 +01:00
sky81452.c mfd: Switch i2c drivers back to use .probe() 2023-06-15 09:19:37 +01:00
sm501.c mfd: replace linux/gpio.h inclusions 2026-07-24 20:12:48 +02:00
smpro-core.c mfd: Switch i2c drivers back to use .probe() 2023-06-15 09:19:37 +01:00
sprd-sc27xx-spi.c mfd: sprd-sc27xx: Switch to devm_mfd_add_devices() 2026-06-17 11:30:22 +01:00
ssbi.c mfd: Add missing MODULE_DESCRIPTION() macros 2024-07-04 17:38:40 +01:00
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 mfd: stmpe: Make stmpe_remove() return void 2021-11-05 14:40:26 +00:00
stpmic1.c mfd: stpmic1: Attempt system shutdown twice in case PMIC is confused 2026-03-25 12:44:46 +00:00
stw481x.c mfd: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-07-04 17:08:02 +01:00
sun4i-gpadc.c mfd: Remove unneeded 'fast_io' parameter in regmap_config 2025-10-01 10:28:26 +01:00
sun6i-prcm.c mfd: sun6i-prcm: Use DEFINE_RES_MEM() to simplify code 2021-06-02 10:51:19 +01:00
syscon.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
tc3589x.c mfd: Switch to irq_domain_create_*() 2025-05-16 21:06:10 +02:00
ti_am335x_tscadc.c mfd: Switch back to struct platform_driver::remove() 2024-11-01 15:56:58 +00:00
ti-lmu.c mfd: Explicitly include correct DT includes 2023-08-18 21:48:03 +01:00
timberdale.c gpio: timberdale: Remove platform data header 2026-05-07 16:25:48 +01:00
timberdale.h mfd: timberdale: Move GPIO_NR_PINS into the driver 2026-05-07 16:25:06 +01:00
tps6105x.c mfd: replace linux/gpio.h inclusions 2026-07-24 20:12:48 +02:00
tps6507x.c mfd: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-07-04 17:08:02 +01:00
tps6586x.c mfd: tps6586: use platform_device_set_of_node() 2026-07-10 16:07:09 +02:00
tps6594-core.c mfd: tps6594: Explicitly include bitfield.h 2025-09-11 16:06:02 +01:00
tps6594-i2c.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
tps6594-spi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
tps65010.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
tps65086.c mfd: tps65086: Constify struct regmap_irq_chip 2024-08-30 09:40:12 +01:00
tps65090.c mfd: tps65090: Constify struct regmap_irq_chip 2024-08-30 09:40:12 +01:00
tps65217.c mfd: Use dev_fwnode() instead of of_fwnode_handle() 2025-07-24 11:27:02 +01:00
tps65218.c mfd: tps65218: Constify struct regmap_irq_chip 2024-08-30 09:40:12 +01:00
tps65219.c mfd: tps65219: Make poweroff handler conditional on system-power-controller 2026-06-17 11:30:19 +01:00
tps65910.c mfd: tps65910: Add error handling for dummy I2C transfer in probe 2026-06-17 11:30:16 +01:00
tps65911-comparator.c mfd: replace linux/gpio.h inclusions 2026-07-24 20:12:48 +02:00
tps65912-core.c mfd: tps65912: Constify struct regmap_irq_chip 2024-08-30 09:40:12 +01:00
tps65912-i2c.c mfd: tps65912: Use devm helper functions to simplify probe 2024-07-04 17:38:40 +01:00
tps65912-spi.c mfd: tps65912: Use devm helper functions to simplify probe 2024-07-04 17:38:40 +01:00
tqmx86.c mfd: tqmx86: Add board definitions for TQMxCU1-HPCM and TQMxCU2-HPCM 2025-11-06 14:03:43 +00:00
twl-core.c mfd: twl-core: Use i2c_check_functionality as boolean value 2026-06-17 11:32:12 +01:00
twl-core.h mfd: twl4030: Make twl4030_exit_irq() return void 2022-04-28 17:24:40 +01:00
twl4030-audio.c mfd: Switch back to struct platform_driver::remove() 2024-11-01 15:56:58 +00:00
twl4030-irq.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
twl4030-power.c mfd: twl4030-power: Update checks for specific boards to use the DT 2026-06-17 11:32:51 +01:00
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 mfd: ucb1x00-assabet: Use DEVICE_ATTR_RO macro 2021-06-15 13:02:01 +01:00
ucb1x00-core.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ucb1x00-ts.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
upboard-fpga.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
vexpress-sysreg.c mfd: vexpress-sysreg: Use more common syntax for compound literals 2025-10-01 10:28:59 +01:00
viperboard.c mfd: viperboard: Drop redundant device reference 2026-03-25 12:45:18 +00:00
vx855.c
wcd934x.c mfd: wcd934x: Replace MODULE_ALIAS() with MODULE_DEVICE_TABLE() 2024-10-16 09:04:10 +01:00
wm97xx-core.c mfd: wolfson: Convert to use maple tree register cache 2024-02-23 14:58:04 +00:00
wm831x-auxadc.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
wm831x-core.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
wm831x-i2c.c mfd: Use i2c_get_match_data() in a selection of drivers 2023-11-01 10:02:17 +00:00
wm831x-irq.c mfd: Use dev_fwnode() instead of of_fwnode_handle() 2025-07-24 11:27:02 +01:00
wm831x-otp.c mfd: wm831x: Use DEVICE_ATTR_RO macro 2021-06-15 13:01:45 +01:00
wm831x-spi.c mfd: mc13xxx-spi/wm831x-spi: Use spi_get_device_match_data() 2023-11-01 10:02:16 +00:00
wm5102-tables.c mfd: wolfson: Convert to use maple tree register cache 2024-02-23 14:58:04 +00:00
wm5110-tables.c mfd: wolfson: Convert to use maple tree register cache 2024-02-23 14:58:04 +00:00
wm8350-core.c
wm8350-gpio.c
wm8350-i2c.c mfd: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-07-04 17:08:02 +01:00
wm8350-irq.c
wm8350-regmap.c mfd: wolfson: Convert to use maple tree register cache 2024-02-23 14:58:04 +00:00
wm8400-core.c mfd: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-07-04 17:08:02 +01:00
wm8994-core.c mfd: wm8994: Fix Wvoid-pointer-to-enum-cast warning (again) 2024-07-04 17:38:40 +01:00
wm8994-irq.c mfd: replace linux/gpio.h inclusions 2026-07-24 20:12:48 +02:00
wm8994-regmap.c mfd: wm8994: Update to use maple tree register cache 2023-08-18 21:48:02 +01:00
wm8994.h
wm8997-tables.c mfd: wm8997: Update to use maple tree register cache 2023-08-18 21:48:03 +01:00
wm8998-tables.c mfd: wm8998: Update to use maple tree register cache 2023-08-18 21:48:03 +01:00