Re: [PATCH v3 2/3] iio: adc128s052: add ACPI _HID AANT1280

From: Andy Shevchenko
Date: Thu Oct 25 2018 - 13:46:49 EST


On Thu, Oct 25, 2018 at 04:35:41PM +0100, Dan O'Donovan wrote:
> From: Nicola Lunghi <nicola.lunghi@xxxxxxxxxx>
>
> ACPI _HID AANT1280 matches an ADC124S101 present on E3940 SKUs of the UP
> Squared board.
>
> Add it to the driver.
>
> Signed-off-by: Nicola Lunghi <nicola.lunghi@xxxxxxxxxx>
> [javier@xxxxxxxxxx: fix up commit message and one checkpatch warning]
> Signed-off-by: Javier Arteaga <javier@xxxxxxxxxx>
> Signed-off-by: Dan O'Donovan <dan@xxxxxxxxxx>
> ---
> drivers/iio/adc/ti-adc128s052.c | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iio/adc/ti-adc128s052.c b/drivers/iio/adc/ti-adc128s052.c
> index e6716c3..c2d1453 100644
> --- a/drivers/iio/adc/ti-adc128s052.c
> +++ b/drivers/iio/adc/ti-adc128s052.c
> @@ -12,10 +12,12 @@
> * published by the Free Software Foundation.
> */
>
> +#include <linux/acpi.h>
> #include <linux/err.h>
> #include <linux/spi/spi.h>
> #include <linux/module.h>
> #include <linux/iio/iio.h>
> +#include <linux/property.h>
> #include <linux/regulator/consumer.h>
>
> struct adc128_configuration {
> @@ -135,10 +137,15 @@ static const struct iio_info adc128_info = {
> static int adc128_probe(struct spi_device *spi)
> {
> struct iio_dev *indio_dev;
> + unsigned int config;
> struct adc128 *adc;
> - int config = spi_get_device_id(spi)->driver_data;
> int ret;
>
> + if (dev_fwnode(&spi->dev))
> + config = (unsigned long) device_get_match_data(&spi->dev);
> + else
> + config = spi_get_device_id(spi)->driver_data;
> +
> indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*adc));
> if (!indio_dev)
> return -ENOMEM;
> @@ -207,10 +214,19 @@ static const struct spi_device_id adc128_id[] = {
> };
> MODULE_DEVICE_TABLE(spi, adc128_id);
>
> +#ifdef CONFIG_ACPI
> +static const struct acpi_device_id adc128_acpi_match[] = {

> + { "AANT1280", 2 }, /* ADC124S021 compatible ACPI ID */

Looking how driver is organized and what ACPI can provide I would highly
recommend to look forward to PTYP field for utilization of the type of the HW.

Maybe it would not work with published BIOSes, but would be good for the future
(in that case anybody can utilize that _HID + PTYP pair on their platforms).

> + { }
> +};
> +MODULE_DEVICE_TABLE(acpi, adc128_acpi_match);
> +#endif
> +
> static struct spi_driver adc128_driver = {
> .driver = {
> .name = "adc128s052",

> .of_match_table = of_match_ptr(adc128_of_match),
> + .acpi_match_table = ACPI_PTR(adc128_acpi_match),
> },
> .probe = adc128_probe,
> .remove = adc128_remove,
> --
> 2.7.4
>
>
> ------
> This email has been scanned for spam and malware by The Email Laundry.
>

--
With Best Regards,
Andy Shevchenko