From: Jonathan Cameron <jic23@kernel.org>
To: Guillaume Stols <gstols@baylibre.com>
Cc: "Uwe Kleine-König" <ukleinek@kernel.org>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Jonathan Corbet" <corbet@lwn.net>,
"Michal Marek" <mmarek@suse.com>,
linux-pwm@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-fbdev@vger.kernel.org, linux-iio@vger.kernel.org,
devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
aardelean@baylibre.com, dlechner@baylibre.com,
jstephan@baylibre.com
Subject: Re: [PATCH v2 07/10] iio: adc: ad7606: Add compatibility to fw_nodes
Date: Sun, 29 Sep 2024 13:44:12 +0100 [thread overview]
Message-ID: <20240929134412.506998db@jic23-huawei> (raw)
In-Reply-To: <20240920-ad7606_add_iio_backend_support-v2-7-0e78782ae7d0@baylibre.com>
On Fri, 20 Sep 2024 17:33:27 +0000
Guillaume Stols <gstols@baylibre.com> wrote:
> On the parallel version, the current implementation is only compatible
> with id tables and won't work with fw_nodes, this commit intends to fix
> it.
>
> Also, chip info is moved in the .h file so to be accessible to all the
chip info is not moved (I was going to say no to that) but an
extern is used to make it available. So say that rather than moved here.
> driver files that can set a pointer to the corresponding chip as the
> driver data.
>
>
> diff --git a/drivers/iio/adc/ad7606.h b/drivers/iio/adc/ad7606.h
> index c13dda444526..18c87fe9a41a 100644
> --- a/drivers/iio/adc/ad7606.h
> +++ b/drivers/iio/adc/ad7606.h
> @@ -38,8 +38,19 @@
> AD760X_CHANNEL(num, BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),\
> 0, BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO))
>
> +enum ad7606_supported_device_ids {
> + ID_AD7605_4,
> + ID_AD7606_8,
> + ID_AD7606_6,
> + ID_AD7606_4,
> + ID_AD7606B,
> + ID_AD7616,
> +};
> +
> /**
> * struct ad7606_chip_info - chip specific information
> + * @name device name
> + * @id device id
ID in chip info normally indicates something bad in the design. In that somewhere
we have code that is ID dependent rather than all such code / data being
found directly in this structure (or callbacks found from here).
Can we avoid it here?
> * @channels: channel specification
> * @num_channels: number of channels
> * @oversampling_avail pointer to the array which stores the available
> @@ -50,6 +61,8 @@
...
> diff --git a/drivers/iio/adc/ad7606_par.c b/drivers/iio/adc/ad7606_par.c
> index d651639c45eb..7bac39033955 100644
> --- a/drivers/iio/adc/ad7606_par.c
> +++ b/drivers/iio/adc/ad7606_par.c
> @@ -11,6 +11,7 @@
> #include <linux/mod_devicetable.h>
> #include <linux/module.h>
> #include <linux/platform_device.h>
> +#include <linux/property.h>
> #include <linux/types.h>
>
> #include <linux/iio/iio.h>
> @@ -89,12 +90,20 @@ static const struct ad7606_bus_ops ad7606_par8_bops = {
>
> static int ad7606_par_probe(struct platform_device *pdev)
> {
> - const struct platform_device_id *id = platform_get_device_id(pdev);
> + const struct ad7606_chip_info *chip_info;
> + const struct platform_device_id *id;
> struct resource *res;
> void __iomem *addr;
> resource_size_t remap_size;
> int irq;
>
> + if (dev_fwnode(&pdev->dev)) {
> + chip_info = device_get_match_data(&pdev->dev);
> + } else {
> + id = platform_get_device_id(pdev);
> + chip_info = (const struct ad7606_chip_info *)id->driver_data;
> + }
> +
> irq = platform_get_irq(pdev, 0);
> if (irq < 0)
> return irq;
> @@ -106,25 +115,25 @@ static int ad7606_par_probe(struct platform_device *pdev)
> remap_size = resource_size(res);
>
> return ad7606_probe(&pdev->dev, irq, addr,
> - id->name, id->driver_data,
Rewrap to move chip_info up a line perhaps.
> + chip_info,
> remap_size > 1 ? &ad7606_par16_bops :
> &ad7606_par8_bops);
next prev parent reply other threads:[~2024-09-29 12:44 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-20 17:33 [PATCH v2 00/10] Add iio backend compatibility for ad7606 Guillaume Stols
2024-09-20 17:33 ` [PATCH v2 01/10] dt-bindings: iio: adc: ad7606: Set the correct polarity Guillaume Stols
2024-09-21 9:11 ` Uwe Kleine-König
2024-09-29 12:23 ` Jonathan Cameron
2024-09-20 17:33 ` [PATCH v2 02/10] dt-bindings: iio: adc: ad7606: Make corrections on spi conditions Guillaume Stols
2024-09-21 21:55 ` Conor Dooley
2024-09-24 14:41 ` Guillaume Stols
2024-09-24 14:59 ` Conor Dooley
2024-09-25 15:28 ` Guillaume Stols
2024-09-29 12:27 ` Jonathan Cameron
2024-09-20 17:33 ` [PATCH v2 03/10] dt-bindings: iio: adc: ad7606: Add iio backend bindings Guillaume Stols
2024-09-21 22:19 ` Conor Dooley
2024-09-20 17:33 ` [PATCH v2 04/10] Documentation: iio: Document ad7606 driver Guillaume Stols
2024-09-29 12:33 ` Jonathan Cameron
2024-09-20 17:33 ` [PATCH v2 05/10] iio: adc: ad7606: Sort includes in alphabetical order Guillaume Stols
2024-09-20 17:33 ` [PATCH v2 06/10] iio: adc: ad7606: Add PWM support for conversion trigger Guillaume Stols
2024-09-29 12:39 ` Jonathan Cameron
2024-09-20 17:33 ` [PATCH v2 07/10] iio: adc: ad7606: Add compatibility to fw_nodes Guillaume Stols
2024-09-24 15:28 ` David Lechner
2024-09-25 8:40 ` Guillaume Stols
2024-09-29 12:44 ` Jonathan Cameron [this message]
2024-10-02 0:12 ` Guillaume Stols
2024-10-04 14:25 ` Jonathan Cameron
2024-10-04 15:10 ` Guillaume Stols
2024-09-20 17:33 ` [PATCH v2 08/10] iio: adc: ad7606: Fix typo in the driver name Guillaume Stols
2024-09-29 12:44 ` Jonathan Cameron
2024-09-20 17:33 ` [PATCH v2 09/10] iio: adc: ad7606: Add iio-backend support Guillaume Stols
2024-09-23 9:40 ` David Lechner
2024-09-29 12:54 ` Jonathan Cameron
2024-09-20 17:33 ` [PATCH v2 10/10] iio: adc: ad7606: Disable PWM usage for non backend version Guillaume Stols
2024-09-23 8:34 ` David Lechner
2024-09-29 12:56 ` Jonathan Cameron
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=20240929134412.506998db@jic23-huawei \
--to=jic23@kernel.org \
--cc=Michael.Hennerich@analog.com \
--cc=aardelean@baylibre.com \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=gregkh@linuxfoundation.org \
--cc=gstols@baylibre.com \
--cc=jstephan@baylibre.com \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-doc@vger.kernel.org \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=mmarek@suse.com \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=ukleinek@kernel.org \
/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