From: Jonathan Cameron <jic23@kernel.org>
To: Janani Sunil <janani.sunil@analog.com>
Cc: "Nuno Sá" <nuno.sa@analog.com>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"David Lechner" <dlechner@baylibre.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Olivier Moysan" <olivier.moysan@foss.st.com>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
"Linus Walleij" <linusw@kernel.org>,
"Bartosz Golaszewski" <brgl@kernel.org>,
"Jonathan Corbet" <corbet@lwn.net>,
"Shuah Khan" <skhan@linuxfoundation.org>,
"Michael Walle" <mwalle@kernel.org>,
linux@analog.com, linux-iio@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-doc@vger.kernel.org,
jananisunil.dev@gmail.com,
"Uwe Kleine-König" <u.kleine-koenig@baylibre.com>
Subject: Re: [PATCH v4 13/14] gpio: ad7768: Add AD7768 GPIO auxiliary driver
Date: Sun, 23 Aug 2026 20:39:47 +0100 [thread overview]
Message-ID: <20260823203947.3ecdc448@jic23-huawei> (raw)
In-Reply-To: <20260821-ad7768-driver-v4-13-bb8fbd06d4eb@analog.com>
On Fri, 21 Aug 2026 16:07:06 +0200
Janani Sunil <janani.sunil@analog.com> wrote:
> The AD7768 provides five GPIOs controlled through registers shared
> with the parent IIO device. Register an auxiliary gpio-regmap driver
> and use the parent device for runtime PM.
>
> The device has separate input-state and output-latch registers. Add a
> reg_mask_xlate() callback that checks the line direction and reads the
> programmed output latch for output lines while retaining input-state
> reads for input lines.
>
> Signed-off-by: Janani Sunil <janani.sunil@analog.com>
Linus W, for I think that (when you are happy) you can pick up this
and the previous two enabling patches via the gpio tree and I'll take
the rest via IIO. One small wrinkle around the maintainers entry that
we can fudge in various ways.
> ---
> MAINTAINERS | 1 +
> drivers/gpio/Kconfig | 12 +++++
> drivers/gpio/Makefile | 1 +
> drivers/gpio/gpio-ad7768.c | 118 +++++++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 132 insertions(+)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index dc94e7803a7c..3de7ebcc4ee7 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1639,6 +1639,7 @@ L: linux-iio@vger.kernel.org
> S: Supported
> W: https://ez.analog.com/linux-software-drivers
> F: Documentation/devicetree/bindings/iio/adc/adi,ad7768.yaml
> +F: drivers/gpio/gpio-ad7768.c
This may be the only reason we can't merge the gpio driver via
the gpio tree, independent of the rest.
Maybe drop this for now, or break it out as a separately patch that I can
pick up via IIO.
> F: drivers/iio/adc/ad7768.c
>
> ANALOG DEVICES INC AD7780 DRIVER
> diff --git a/drivers/gpio/gpio-ad7768.c b/drivers/gpio/gpio-ad7768.c
> new file mode 100644
> index 000000000000..710739e33dff
> --- /dev/null
> +++ b/drivers/gpio/gpio-ad7768.c
> +static int ad7768_gpio_probe(struct auxiliary_device *adev,
> + const struct auxiliary_device_id *id)
> +{
> + struct device *parent = adev->dev.parent;
> + struct gpio_regmap_config config = {
> + .parent = &adev->dev,
> + .label = dev_name(parent),
> + .ngpio = AD7768_NUM_GPIOS,
> + .reg_dat_base = AD7768_REG_GPIO_READ,
> + .reg_set_base = AD7768_REG_GPIO_WRITE,
> + .reg_dir_out_base = AD7768_REG_GPIO_CONTROL,
> + .pm_dev = parent,
> + .reg_mask_xlate = ad7768_gpio_reg_mask_xlate,
> + .init_valid_mask = ad7768_gpio_init_valid_mask,
> + };
> + struct gpio_regmap *gpio;
> + struct regmap *map;
> + int ret;
> +
> + map = dev_get_regmap(parent, NULL);
> + if (!map)
> + return -ENODEV;
> +
> + PM_RUNTIME_ACQUIRE_AUTOSUSPEND(parent, pm);
> + ret = PM_RUNTIME_ACQUIRE_ERR(&pm);
> + if (ret)
> + return ret;
> +
> + ret = regmap_set_bits(map, AD7768_REG_GPIO_CONTROL, AD7768_GPIO_UGPIO_ENABLE);
> + if (ret)
> + return ret;
> +
> + config.regmap = map;
> + config.drvdata = map;
Why not do all this in one place rather than init then later
modify?
config = (struct gpio_regmap_config) {
.parent = &adev->dev,
.regmap = map,
.label = dev_name(parent),
.ngpio = AD7768_NUM_GPIOS,
.reg_dat_base = AD7768_REG_GPIO_READ,
.reg_set_base = AD7768_REG_GPIO_WRITE,
.reg_dir_out_base = AD7768_REG_GPIO_CONTROL,
.pm_dev = parent,
.reg_mask_xlate = ad7768_gpio_reg_mask_xlate,
.init_valid_mask = ad7768_gpio_init_valid_mask,
.drvdata = map,
};
> + gpio = devm_gpio_regmap_register(&adev->dev, &config);
> + return PTR_ERR_OR_ZERO(gpio);
Could do
return PTR_ERR_OR_ZERO(devm_gpio_regmap_register(&adev->dev, &config));
Though maybe it looses some readability?
> +}
next prev parent reply other threads:[~2026-08-23 19:39 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-21 14:06 [PATCH v4 00/14] iio: adc: Add AD7768/AD7768-4 ADC driver support Janani Sunil
2026-08-21 14:06 ` [PATCH v4 01/14] iio: adc: adi-axi-adc: Initialize state mutex Janani Sunil
2026-08-23 18:52 ` Jonathan Cameron
2026-08-23 19:05 ` Jonathan Cameron
2026-08-21 14:06 ` [PATCH v4 02/14] dt-bindings: iio: adc: Add AD7768 Janani Sunil
2026-08-21 15:57 ` David Lechner
2026-08-23 1:45 ` Jonathan Cameron
2026-08-21 14:06 ` [PATCH v4 03/14] iio: backend: Add support for CRC Janani Sunil
2026-08-21 16:02 ` David Lechner
2026-08-21 14:06 ` [PATCH v4 04/14] iio: adc: adi-axi-adc: " Janani Sunil
2026-08-21 16:03 ` David Lechner
2026-08-21 14:06 ` [PATCH v4 05/14] iio: adc: Add AD7768 and AD7768-4 core support Janani Sunil
2026-08-22 17:30 ` David Lechner
2026-08-23 8:35 ` Andy Shevchenko
2026-08-25 10:43 ` Janani Sunil
2026-08-23 19:16 ` Jonathan Cameron
2026-08-21 14:06 ` [PATCH v4 06/14] iio: adc: ad7768: Add configurable sampling modes Janani Sunil
2026-08-23 19:25 ` Jonathan Cameron
2026-08-24 6:43 ` Andy Shevchenko
2026-08-21 14:07 ` [PATCH v4 07/14] iio: adc: ad7768: Add calibration controls Janani Sunil
2026-08-24 6:50 ` Andy Shevchenko
2026-08-21 14:07 ` [PATCH v4 08/14] iio: adc: ad7768: Add per-channel conversion delay Janani Sunil
2026-08-24 7:10 ` Andy Shevchenko
2026-08-25 13:17 ` Janani Sunil
2026-08-21 14:07 ` [PATCH v4 09/14] iio: adc: ad7768: Add VCM regulator support Janani Sunil
2026-08-24 7:13 ` Andy Shevchenko
2026-08-21 14:07 ` [PATCH v4 10/14] iio: adc: ad7768: Register GPIO auxiliary device Janani Sunil
2026-08-21 14:07 ` [PATCH v4 11/14] gpio: regmap: Use regmap_test_bits() for single bit reads Janani Sunil
2026-08-24 7:47 ` Andy Shevchenko
2026-08-21 14:07 ` [PATCH v4 12/14] gpio: regmap: Add optional runtime PM support Janani Sunil
2026-08-24 8:05 ` Andy Shevchenko
2026-08-25 13:50 ` Janani Sunil
2026-08-21 14:07 ` [PATCH v4 13/14] gpio: ad7768: Add AD7768 GPIO auxiliary driver Janani Sunil
2026-08-23 19:39 ` Jonathan Cameron [this message]
2026-08-24 8:13 ` Andy Shevchenko
2026-08-25 19:37 ` Linus Walleij
2026-08-24 8:10 ` Andy Shevchenko
2026-08-25 19:40 ` Linus Walleij
2026-08-21 14:07 ` [PATCH v4 14/14] Documentation: iio: Add AD7768 Documentation Janani Sunil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260823203947.3ecdc448@jic23-huawei \
--to=jic23@kernel.org \
--cc=Michael.Hennerich@analog.com \
--cc=andy@kernel.org \
--cc=brgl@kernel.org \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=janani.sunil@analog.com \
--cc=jananisunil.dev@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@analog.com \
--cc=mwalle@kernel.org \
--cc=nuno.sa@analog.com \
--cc=olivier.moysan@foss.st.com \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=skhan@linuxfoundation.org \
--cc=u.kleine-koenig@baylibre.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox