On Fri, Jun 10, 2022 at 10:45 AM Nuno Sá <nuno.sa@xxxxxxxxxx> 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@xxxxxxxxx> 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