[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <cover.1739967040.git.mazziesaccount@gmail.com>
Date: Wed, 19 Feb 2025 14:29:45 +0200
From: Matti Vaittinen <mazziesaccount@...il.com>
To: Matti Vaittinen <mazziesaccount@...il.com>,
Matti Vaittinen <matti.vaittinen@...rohmeurope.com>
Cc: Jonathan Cameron <jic23@...nel.org>,
Lars-Peter Clausen <lars@...afoo.de>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Matti Vaittinen <mazziesaccount@...il.com>,
Lad Prabhakar <prabhakar.mahadev-lad.rj@...renesas.com>,
Chen-Yu Tsai <wens@...e.org>,
Jernej Skrabec <jernej.skrabec@...il.com>,
Samuel Holland <samuel@...lland.org>,
Hugo Villeneuve <hvilleneuve@...onoff.com>,
Nuno Sa <nuno.sa@...log.com>, David Lechner <dlechner@...libre.com>,
Javier Carrasco <javier.carrasco.cruz@...il.com>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
linux-iio@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-renesas-soc@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-sunxi@...ts.linux.dev,
Linus Walleij <linus.walleij@...aro.org>
Subject: [PATCH v3 0/9] Support ROHM BD79124 ADC
Support ROHM BD79124 ADC.
This series adds also couple of helper functions for parsing the channel
information from the device tree. There has been some discussion about
how useful these are, and whether they should support also differential
and single ended channel configurations. This version adds support for
those - with the cost of added complexity and somewhat harder to use
API. I've babbled more about that in the patch 2/9. (And, I actually
wonder if I should've returned this to RFC?)
The last couple of patches are examples of drivers which could utilize
these added helpers:
- 6/9 converts rzg2l_adc to use helpers
- 7/9 converts sun20i-gpadc to use helpers
- 9/9 makes the ti-ads7924 to respect the channel specification give in
the device-tree using these helpers.
patch 8/9 is small simplification for the ti-ads7924, and it can be
taken independently from the rest of the series.
NOTE: Patches 6...9 are untested as I lack of relevant HW. They have
been compile tested only.
The ROHM BD79124 ADC itself is quite usual stuff. 12-bit, 8-channel ADC
with threshold monitoring.
Except that:
- each ADC input pin can be configured as a general purpose output.
- manually starting an ADC conversion and reading the result would
require the I2C _master_ to do clock stretching(!) for the duration
of the conversion... Let's just say this is not well supported.
- IC supports 'autonomous measurement mode' and storing latest results
to the result registers. This mode is used by the driver due to the
"peculiar" I2C when doing manual reads.
Furthermore, the ADC uses this continuous autonomous measuring,
and the IC keeps producing new 'out of window' IRQs if measurements are
out of window - the driver disables the event for 1 seconds when sending
it to user. This prevents generating storm of events
Revision history:
v2 => v3:
- Restrict BD79124 channel numbers as suggested by Conor and add
Conor's Reviewed-by tag.
- Support differential and single-ended inputs
- Convert couple of existing drivers to use the added ADC helpers
- Minor fixes based on reviews
Link to v2:
https://lore.kernel.org/all/cover.1738761899.git.mazziesaccount@gmail.com/
RFC v1 => v2:
- Drop MFD and pinmux.
- Automatically re-enable events after 1 second.
- Export fwnode parsing helpers for finding the ADC channels.
---
Matti Vaittinen (9):
dt-bindings: ROHM BD79124 ADC/GPO
iio: adc: add helpers for parsing ADC nodes
iio: adc: Support ROHM BD79124 ADC
MAINTAINERS: Add IIO ADC helpers
MAINTAINERS: Add ROHM BD79124 ADC/GPO
iio: adc: rzg2l_adc: Use adc-helpers
iio: adc: sun20i-gpadc: Use adc-helpers
iio: adc: ti-ads7924 Drop unnecessary function parameters
iio: adc: ti-ads7924: Respect device tree config
.../bindings/iio/adc/rohm,bd79124.yaml | 114 ++
MAINTAINERS | 12 +
drivers/iio/adc/Kconfig | 15 +
drivers/iio/adc/Makefile | 2 +
drivers/iio/adc/industrialio-adc.c | 304 +++++
drivers/iio/adc/rohm-bd79124.c | 1162 +++++++++++++++++
drivers/iio/adc/rzg2l_adc.c | 41 +-
drivers/iio/adc/sun20i-gpadc-iio.c | 42 +-
drivers/iio/adc/ti-ads7924.c | 85 +-
include/linux/iio/adc-helpers.h | 56 +
10 files changed, 1742 insertions(+), 91 deletions(-)
create mode 100644 Documentation/devicetree/bindings/iio/adc/rohm,bd79124.yaml
create mode 100644 drivers/iio/adc/industrialio-adc.c
create mode 100644 drivers/iio/adc/rohm-bd79124.c
create mode 100644 include/linux/iio/adc-helpers.h
base-commit: 5bc55a333a2f7316b58edc7573e8e893f7acb532
--
2.48.1
Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)
Powered by blists - more mailing lists