From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan O'Donovan Subject: Re: [PATCH v3 2/3] iio: adc128s052: add ACPI _HID AANT1280 Date: Fri, 26 Oct 2018 11:13:01 +0100 Message-ID: References: <20180423213805.12591-1-javier@emutex.com> <1540481742-23596-1-git-send-email-dan@emutex.com> <1540481742-23596-3-git-send-email-dan@emutex.com> <20181025174638.GB10650@smile.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20181025174638.GB10650@smile.fi.intel.com> Content-Language: en-GB Sender: linux-kernel-owner@vger.kernel.org To: Andy Shevchenko Cc: linux-kernel@vger.kernel.org, Jonathan Cameron , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , linux-iio@vger.kernel.org, Rob Herring , Mark Rutland , devicetree@vger.kernel.org, Carlos Iglesias , Nicola Lunghi , Javier Arteaga List-Id: devicetree@vger.kernel.org On 10/25/2018 06:46 PM, Andy Shevchenko wrote: > On Thu, Oct 25, 2018 at 04:35:41PM +0100, Dan O'Donovan wrote: >> From: Nicola Lunghi >> >> 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 >> [javier@emutex.com: fix up commit message and one checkpatch warning] >> Signed-off-by: Javier Arteaga >> Signed-off-by: Dan O'Donovan >> --- >> 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 >> #include >> #include >> #include >> #include >> +#include >> #include >> >> 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). > Thanks Andy for your review and feedback. Your _HID + PTYP suggestion sounds interesting, but I couldn't find any information in the ACPI spec or elsewhere about how/when/where to use it. It isn't used in the UP Squared ACPI tables. Do you have any links or other information you could share about it? Thanks! >> + { } >> +}; >> +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. >> > ------ This email has been scanned for spam and malware by The Email Laundry.