[PATCH v3 0/8] iio: adc: ti-ads1015: modernize resource management
From: Archit Anant
Date: Wed Aug 12 2026 - 12:44:56 EST
This series modernizes the ti-ads1015 by transitioning it
to a fully devm_ architecture.
By moving resource allocation, device registration, and runtime power
management to the devm_ infrastructure, the teardown sequence is now
guaranteed to execute safely in the reverse order of initialization.
This allows for the complete removal of the ads1015_remove() function,
eliminating boilerplate code and reducing the risk of future resource
leaks.
Also the driver's configuration logic has been updated to use
the modern FIELD_PREP() and FIELD_GET() macros, allowing the removal
of all custom _SHIFT macros and a redundant helper function.
Additionally, housekeeping patches are included to ensure header
includes remain alphabetically sorted, dev_err_probe() is used
consistently, and PM macros are updated to modern standards.
Changes in v3:
- Added Patch 7 to replace all custom _SHIFT macros with FIELD_PREP
and FIELD_GET as requested by Jonathan Cameron.
- Added Patch 8 to inline ads1015_set_conv_mode() directly at call
sites, allowing for the removal of the final _SHIFT macro.
Changes in v2:
- Split the monolithic v1 patch into a 6-patch series to isolate
housekeeping, bug fixes, and API modernizations for easier review
and backporting.
- Patch 1: Added to modernize PM ops and remove #ifdef CONFIG_PM.
- Patch 2: Added to fix a pre-existing PM leak on probe failure
identified by Jonathan Cameron.
- Patch 3: Extracted header sorting into a prerequisite patch.
- Patch 4 & 5: Extracted the introduction of the local 'dev' pointer
and dev_err_probe() conversions, suggested by Jonathan Cameron.
- Patch 6: Now contains only the devm_ conversions and the removal
of ads1015_remove().
Archit Anant (8):
iio: adc: ti-ads1015: use DEFINE_RUNTIME_DEV_PM_OPS()
iio: adc: ti-ads1015: fix PM leak on probe failure
iio: adc: ti-ads1015: sort headers alphabetically
iio: adc: ti-ads1015: use local device pointer in probe
iio: adc: ti-ads1015: use dev_err_probe() for error handling
iio: adc: ti-ads1015: convert to fully managed resources
iio: adc: ti-ads1015: replace custom shift macros with FIELD_PREP/GET
iio: adc: ti-ads1015: inline ads1015_set_conv_mode()
drivers/iio/adc/ti-ads1015.c | 176 ++++++++++++++++-------------------
1 file changed, 81 insertions(+), 95 deletions(-)
--
2.39.5