[PATCH 00/34] make iio inkern interface firmware agnostic
Andy Shevchenko
andy.shevchenko at gmail.com
Fri Jun 10 07:48:59 PDT 2022
On Fri, Jun 10, 2022 at 10:45 AM Nuno Sá <nuno.sa at analog.com> wrote:
>
> The main goal of this patchset is to convert the iio inkern interface to
> be firmware agnostic. Some previous discussion was done in here [1].
> Though something odd happened while sending the patches and the RFC
> actually never landed in the IIO list (hopefully now works):
>
> As suggested by Andy, the series can be seen in three blocks:
>
> 1) "Fix" all drivers that were relying on iio.h for specific header
> files (mainly of.h and mod_devicetable.h). After that we can drop
> of.h from iio.h and just forward declare what we need.
>
> 2) Move "most" of the IIO in kernel interface to FW API. At this point,
> there's still some OF dependent API in place so that users are not broken.
>
> 3) Move all users of the IIO in kernel interface to the FW API and with
> that, make IIO firmware agnostic.
>
> On 3), the qcom-spmi-adc-tm5.c driver was only converted to use the IIO
> API while on the IIO drivers a full driver conversion was done. The
> thermal one would be really non trivial as we would also need to touch the
> subsystem. On the IIO drivers, the conversions were mostly peacefull
> (apparently). Special care for the stm32-adc.c driver though as that one
> was far from being straight :).
>
> Lastly, this is only compile tested with allyesconfig for arm and arm64.
> While I surely can come up with some dummy devices to make sure I can still
> properly get IIO channels, having proper tested-by tags on platforms
> relying on this interface would be very appreciated (and I suspect Jonathan
> will require it).
For non-commented patches 1-19:
Reviewed-by: Andy Shevchenko <andy.shevchenko at gmail.com>
You may add it for the commented patches in the 1-19 range in case you
are going to address my comments.
> [1]: https://lore.kernel.org/linux-iio/20220604141925.129f0ffe@jic23-huawei/T/#mfd5ccd793841569182e4f831f2c46089b665c346
>
> Nuno Sá (34):
> iio: adc: ad7606: explicitly add proper header files
> iio: adc: ad7606_par: explicitly add proper header files
> iio: adc: berlin2-adc: explicitly add proper header files
> iio: adc: imx7d_adc: explicitly add proper header files
> iio: adc: imx8qxp-adc: explicitly add proper header files
> iio: adc: ingenic-adc: explicitly add proper header files
> iio: adc: mp2629_adc: explicitly add proper header files
> iio: adc: mt6360-adc: explicitly add proper header files
> iio: adc: npcm_adc: explicitly add proper header files
> iio: adc: rzg2l_adc: explicitly add proper header files
> iio: common: cros_ec_lid_angle: explicitly add proper header files
> iio: common: cros_ec_sensors: explicitly add proper header files
> iio: dac: stm32-dac: explicitly add proper header files
> iio: dac: vf610_dac: explicitly add proper header files
> iio: humidity: hts221_buffer: explicitly add proper header files
> iio: light: cros_ec_light_prox: explicitly add proper header files
> iio: pressure: cros_ec_baro: explicitly add proper header files
> iio: trigger: stm32-lptimer-trigger: explicitly add proper header
> files
> iio: core: drop of.h from iio.h
> iio: inkern: only relase the device node when done with it
> iio: inkern: fix return value in devm_of_iio_channel_get_by_name()
> iio: inkern: only return error codes in iio_channel_get_*() APIs
> iio: inkern: split of_iio_channel_get_by_name()
> iio: inkern: move to fwnode properties
> thermal: qcom: qcom-spmi-adc-tm5: convert to IIO fwnode API
> iio: adc: ingenic-adc: convert to IIO fwnode interface
> iio: adc: ab8500-gpadc: convert to device properties
> iio: adc: at91-sama5d2_adc: convert to device properties
> iio: adc: qcom-pm8xxx-xoadc: convert to device properties
> iio: adc: qcom-spmi-vadc: convert to device properties
> iio: adc: qcom-spmi-adc5: convert to device properties
> iio: adc: stm32-adc: convert to device properties
> iio: inkern: remove OF dependencies
> iio: inkern: fix coding style warnings
>
> drivers/iio/adc/ab8500-gpadc.c | 27 +-
> drivers/iio/adc/ad7606.c | 1 +
> drivers/iio/adc/ad7606_par.c | 1 +
> drivers/iio/adc/at91-sama5d2_adc.c | 30 +--
> drivers/iio/adc/berlin2-adc.c | 2 +
> drivers/iio/adc/imx7d_adc.c | 1 +
> drivers/iio/adc/imx8qxp-adc.c | 1 +
> drivers/iio/adc/ingenic-adc.c | 9 +-
> drivers/iio/adc/mp2629_adc.c | 1 +
> drivers/iio/adc/mt6360-adc.c | 1 +
> drivers/iio/adc/npcm_adc.c | 1 +
> drivers/iio/adc/qcom-pm8xxx-xoadc.c | 58 ++---
> drivers/iio/adc/qcom-spmi-adc5.c | 63 +++--
> drivers/iio/adc/qcom-spmi-vadc.c | 44 ++--
> drivers/iio/adc/rzg2l_adc.c | 1 +
> drivers/iio/adc/stm32-adc.c | 128 +++++-----
> .../cros_ec_sensors/cros_ec_lid_angle.c | 1 +
> .../common/cros_ec_sensors/cros_ec_sensors.c | 1 +
> drivers/iio/dac/stm32-dac.c | 2 +
> drivers/iio/dac/vf610_dac.c | 1 +
> drivers/iio/humidity/hts221_buffer.c | 1 +
> drivers/iio/inkern.c | 241 +++++++++---------
> drivers/iio/light/cros_ec_light_prox.c | 1 +
> drivers/iio/pressure/cros_ec_baro.c | 1 +
> drivers/iio/trigger/stm32-lptimer-trigger.c | 1 +
> drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 3 +-
> include/linux/iio/consumer.h | 28 +-
> include/linux/iio/iio.h | 9 +-
> 28 files changed, 347 insertions(+), 312 deletions(-)
>
> --
> 2.36.1
>
--
With Best Regards,
Andy Shevchenko
More information about the Linux-mediatek
mailing list