All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/34] make iio inkern interface firmware agnostic
@ 2022-06-10  8:45 ` Nuno Sá
  0 siblings, 0 replies; 246+ messages in thread
From: Nuno Sá @ 2022-06-10  8:45 UTC (permalink / raw)
  To: linux-imx, linux-renesas-soc, linux-mips, linux-arm-kernel,
	chrome-platform, Lad Prabhakar, linux-mediatek, linux-stm32,
	linux-arm-msm, linux-iio, openbmc
  Cc: Cai Huoqing, Benjamin Fair, Jishnu Prakash, Linus Walleij,
	Lars-Peter Clausen, Alexandre Torgue, Amit Kucheria, Andy Gross,
	Michael Hennerich, Haibo Chen, Benson Leung, Rafael J. Wysocki,
	Alexandre Belloni, Christophe Branchereau, Patrick Venture,
	Arnd Bergmann, Nancy Yuen, Sascha Hauer, Daniel Lezcano,
	Gwendal Grignou, Saravanan Sekar, Tali Perry, Maxime Coquelin,
	Paul Cercueil, Thara Gopinath, Avi Fishman, Lorenzo Bianconi,
	Claudiu Beznea, Pengutronix Kernel Team, Andy Shevchenko,
	Fabrice Gasnier, Matthias Brugger, Tomer Maimon, Bjorn Andersson,
	Nicolas Ferre, Jonathan Cameron, Zhang Rui, Shawn Guo,
	Guenter Roeck, Fabio Estevam, Olivier Moysan, Eugen Hristev,
	Miquel Raynal

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).

[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


^ permalink raw reply	[flat|nested] 246+ messages in thread

end of thread, other threads:[~2022-06-20  8:09 UTC | newest]

Thread overview: 246+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-10  8:45 [PATCH 00/34] make iio inkern interface firmware agnostic Nuno Sá
2022-06-10  8:45 ` Nuno Sá
2022-06-10  8:45 ` Nuno Sá
2022-06-10  8:45 ` Nuno Sá
2022-06-10  8:45 ` [PATCH 01/34] iio: adc: ad7606: explicitly add proper header files Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 13:59   ` Jonathan Cameron
2022-06-11 13:59     ` Jonathan Cameron
2022-06-11 13:59     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 02/34] iio: adc: ad7606_par: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:00   ` Jonathan Cameron
2022-06-11 14:00     ` Jonathan Cameron
2022-06-11 14:00     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 03/34] iio: adc: berlin2-adc: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:02   ` Jonathan Cameron
2022-06-11 14:02     ` Jonathan Cameron
2022-06-11 14:02     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 04/34] iio: adc: imx7d_adc: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:04   ` Jonathan Cameron
2022-06-11 14:04     ` Jonathan Cameron
2022-06-11 14:04     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 05/34] iio: adc: imx8qxp-adc: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:05   ` Jonathan Cameron
2022-06-11 14:05     ` Jonathan Cameron
2022-06-11 14:05     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 06/34] iio: adc: ingenic-adc: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10 14:45   ` Andy Shevchenko
2022-06-10 14:45     ` Andy Shevchenko
2022-06-10 19:49     ` Nuno Sá
2022-06-10 19:49       ` Nuno Sá
2022-06-10 19:49       ` Nuno Sá
2022-06-11 14:07       ` Jonathan Cameron
2022-06-11 14:07         ` Jonathan Cameron
2022-06-11 14:07         ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 07/34] iio: adc: mp2629_adc: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:08   ` Jonathan Cameron
2022-06-11 14:08     ` Jonathan Cameron
2022-06-11 14:08     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 08/34] iio: adc: mt6360-adc: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:09   ` Jonathan Cameron
2022-06-11 14:09     ` Jonathan Cameron
2022-06-11 14:09     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 09/34] iio: adc: npcm_adc: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:12   ` Jonathan Cameron
2022-06-11 14:12     ` Jonathan Cameron
2022-06-11 14:12     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 10/34] iio: adc: rzg2l_adc: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:13   ` Jonathan Cameron
2022-06-11 14:13     ` Jonathan Cameron
2022-06-11 14:13     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 11/34] iio: common: cros_ec_lid_angle: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:14   ` Jonathan Cameron
2022-06-11 14:14     ` Jonathan Cameron
2022-06-11 14:14     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 12/34] iio: common: cros_ec_sensors: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:16   ` Jonathan Cameron
2022-06-11 14:16     ` Jonathan Cameron
2022-06-11 14:16     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 13/34] iio: dac: stm32-dac: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:17   ` Jonathan Cameron
2022-06-11 14:17     ` Jonathan Cameron
2022-06-11 14:17     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 14/34] iio: dac: vf610_dac: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:19   ` Jonathan Cameron
2022-06-11 14:19     ` Jonathan Cameron
2022-06-11 14:19     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 15/34] iio: humidity: hts221_buffer: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10 14:47   ` Andy Shevchenko
2022-06-10 14:47     ` Andy Shevchenko
2022-06-11 14:22     ` Jonathan Cameron
2022-06-11 14:22       ` Jonathan Cameron
2022-06-11 14:22       ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 16/34] iio: light: cros_ec_light_prox: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:23   ` Jonathan Cameron
2022-06-11 14:23     ` Jonathan Cameron
2022-06-11 14:23     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 17/34] iio: pressure: cros_ec_baro: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45 ` [PATCH 18/34] iio: trigger: stm32-lptimer-trigger: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45 ` [PATCH 19/34] iio: core: drop of.h from iio.h Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 14:30   ` Jonathan Cameron
2022-06-11 14:30     ` Jonathan Cameron
2022-06-11 14:30     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 20/34] iio: inkern: only relase the device node when done with it Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10 14:56   ` Andy Shevchenko
2022-06-10 14:56     ` Andy Shevchenko
2022-06-10 20:08     ` Nuno Sá
2022-06-10 20:08       ` Nuno Sá
2022-06-10 20:08       ` Nuno Sá
2022-06-11 14:59       ` Jonathan Cameron
2022-06-11 14:59         ` Jonathan Cameron
2022-06-11 14:59         ` Jonathan Cameron
2022-06-13  7:20         ` Nuno Sá
2022-06-13  7:20           ` Nuno Sá
2022-06-13  7:20           ` Nuno Sá
2022-06-18 14:03           ` Jonathan Cameron
2022-06-18 14:03             ` Jonathan Cameron
2022-06-18 14:13           ` Jonathan Cameron
2022-06-18 14:13             ` Jonathan Cameron
2022-06-18 17:30   ` Jonathan Cameron
2022-06-18 17:30     ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 21/34] iio: inkern: fix return value in devm_of_iio_channel_get_by_name() Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10 14:56   ` Andy Shevchenko
2022-06-10 14:56     ` Andy Shevchenko
2022-06-10  8:45 ` [PATCH 22/34] iio: inkern: only return error codes in iio_channel_get_*() APIs Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10 15:05   ` Andy Shevchenko
2022-06-10 15:05     ` Andy Shevchenko
2022-06-10 19:48     ` Nuno Sá
2022-06-10 19:48       ` Nuno Sá
2022-06-10 19:48       ` Nuno Sá
2022-06-11 15:17   ` Jonathan Cameron
2022-06-11 15:17     ` Jonathan Cameron
2022-06-11 15:17     ` Jonathan Cameron
2022-06-13  7:06     ` Nuno Sá
2022-06-13  7:06       ` Nuno Sá
2022-06-13  7:06       ` Nuno Sá
2022-06-18 14:06       ` Jonathan Cameron
2022-06-18 14:06         ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 23/34] iio: inkern: split of_iio_channel_get_by_name() Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10 15:07   ` Andy Shevchenko
2022-06-10 15:07     ` Andy Shevchenko
2022-06-10  8:45 ` [PATCH 24/34] iio: inkern: move to fwnode properties Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10 15:19   ` Andy Shevchenko
2022-06-10 15:19     ` Andy Shevchenko
2022-06-10 20:01     ` Nuno Sá
2022-06-10 20:01       ` Nuno Sá
2022-06-10 20:01       ` Nuno Sá
2022-06-11 15:30       ` Jonathan Cameron
2022-06-11 15:30         ` Jonathan Cameron
2022-06-11 15:30         ` Jonathan Cameron
2022-06-11 15:32         ` Jonathan Cameron
2022-06-11 15:32           ` Jonathan Cameron
2022-06-13  7:13           ` Nuno Sá
2022-06-18 14:09             ` Jonathan Cameron
2022-06-10  8:45 ` [PATCH 25/34] thermal: qcom: qcom-spmi-adc-tm5: convert to IIO fwnode API Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10 15:20   ` Andy Shevchenko
2022-06-10 15:20     ` Andy Shevchenko
2022-06-10 19:42     ` Nuno Sá
2022-06-10 19:42       ` Nuno Sá
2022-06-10 19:42       ` Nuno Sá
2022-06-10  8:45 ` [PATCH 26/34] iio: adc: ingenic-adc: convert to IIO fwnode interface Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45 ` [PATCH 27/34] iio: adc: ab8500-gpadc: convert to device properties Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-15 14:26   ` Linus Walleij
2022-06-15 14:26     ` Linus Walleij
2022-06-10  8:45 ` [PATCH 28/34] iio: adc: at91-sama5d2_adc: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45 ` [PATCH 29/34] iio: adc: qcom-pm8xxx-xoadc: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-15 14:27   ` Linus Walleij
2022-06-15 14:27     ` Linus Walleij
2022-06-10  8:45 ` [PATCH 30/34] iio: adc: qcom-spmi-vadc: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-16 13:15   ` Linus Walleij
2022-06-16 13:15     ` Linus Walleij
2022-06-10  8:45 ` [PATCH 31/34] iio: adc: qcom-spmi-adc5: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-16 13:16   ` Linus Walleij
2022-06-16 13:16     ` Linus Walleij
2022-06-10  8:45 ` [PATCH 32/34] iio: adc: stm32-adc: " Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-11 15:47   ` Jonathan Cameron
2022-06-11 15:47     ` Jonathan Cameron
2022-06-11 15:47     ` Jonathan Cameron
2022-06-17 15:58     ` Fabrice Gasnier
2022-06-17 15:58       ` Fabrice Gasnier
2022-06-10  8:45 ` [PATCH 33/34] iio: inkern: remove OF dependencies Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45 ` [PATCH 34/34] iio: inkern: fix coding style warnings Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10  8:45   ` Nuno Sá
2022-06-10 15:53   ` Joe Simmons-Talbott
2022-06-10 15:53     ` Joe Simmons-Talbott
2022-06-10 15:53     ` Joe Simmons-Talbott
2022-06-10 19:51     ` Nuno Sá
2022-06-10 19:51       ` Nuno Sá
2022-06-10 19:51       ` Nuno Sá
2022-06-12 17:39       ` Geert Uytterhoeven
2022-06-12 17:39         ` Geert Uytterhoeven
2022-06-12 17:39         ` Geert Uytterhoeven
2022-06-13  7:23         ` Nuno Sá
2022-06-13  7:23           ` Nuno Sá
2022-06-13  7:23           ` Nuno Sá
2022-06-10 14:48 ` [PATCH 00/34] make iio inkern interface firmware agnostic Andy Shevchenko
2022-06-10 14:48   ` Andy Shevchenko
2022-06-10 15:28   ` Andy Shevchenko
2022-06-10 15:28     ` Andy Shevchenko
2022-06-11 15:50     ` Jonathan Cameron
2022-06-11 15:50       ` Jonathan Cameron

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.