From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Jonathan Cameron <jic23@kernel.org>,
linux-iio@vger.kernel.org, Hartmut Knaack <knaack.h@gmx.de>,
Lars-Peter Clausen <lars@metafoo.de>,
Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Subject: [PATCH v3 2/5] iio: proximity: sx9500: Add GPIO ACPI mapping table
Date: Fri, 3 Nov 2017 15:03:37 +0200 [thread overview]
Message-ID: <20171103130340.42459-2-andriy.shevchenko@linux.intel.com> (raw)
In-Reply-To: <20171103130340.42459-1-andriy.shevchenko@linux.intel.com>
In order to satisfy GPIO ACPI library requirements convert users of
gpiod_get_index() to correctly behave when there no mapping is provided
by firmware.
Here we add explicit mapping between _CRS GpioIo() resources and
their names used in the driver.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/iio/proximity/sx9500.c | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/drivers/iio/proximity/sx9500.c b/drivers/iio/proximity/sx9500.c
index df23dbcc030a..eb687b3dd442 100644
--- a/drivers/iio/proximity/sx9500.c
+++ b/drivers/iio/proximity/sx9500.c
@@ -32,9 +32,6 @@
#define SX9500_DRIVER_NAME "sx9500"
#define SX9500_IRQ_NAME "sx9500_event"
-#define SX9500_GPIO_INT "interrupt"
-#define SX9500_GPIO_RESET "reset"
-
/* Register definitions. */
#define SX9500_REG_IRQ_SRC 0x00
#define SX9500_REG_STAT 0x01
@@ -866,26 +863,40 @@ static int sx9500_init_device(struct iio_dev *indio_dev)
return sx9500_init_compensation(indio_dev);
}
+static const struct acpi_gpio_params reset_gpios = { 0, 0, false };
+static const struct acpi_gpio_params interrupt_gpios = { 2, 0, false };
+
+static const struct acpi_gpio_mapping acpi_sx9500_gpios[] = {
+ { "reset-gpios", &reset_gpios, 1 },
+ { "interrupt-gpios", &interrupt_gpios, 1 },
+ { },
+};
+
static void sx9500_gpio_probe(struct i2c_client *client,
struct sx9500_data *data)
{
struct gpio_desc *gpiod_int;
struct device *dev;
+ int ret;
if (!client)
return;
dev = &client->dev;
+ ret = devm_acpi_dev_add_driver_gpios(dev, acpi_sx9500_gpios);
+ if (ret)
+ dev_dbg(dev, "Unable to add GPIO mapping table\n");
+
if (client->irq <= 0) {
- gpiod_int = devm_gpiod_get(dev, SX9500_GPIO_INT, GPIOD_IN);
+ gpiod_int = devm_gpiod_get(dev, "interrupt", GPIOD_IN);
if (IS_ERR(gpiod_int))
dev_err(dev, "gpio get irq failed\n");
else
client->irq = gpiod_to_irq(gpiod_int);
}
- data->gpiod_rst = devm_gpiod_get(dev, SX9500_GPIO_RESET, GPIOD_OUT_HIGH);
+ data->gpiod_rst = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
if (IS_ERR(data->gpiod_rst)) {
dev_warn(dev, "gpio get reset pin failed\n");
data->gpiod_rst = NULL;
--
2.14.2
next prev parent reply other threads:[~2017-11-03 13:03 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-03 13:03 [PATCH v3 1/5] iio: proximity: sx9500: Assign interrupt from GpioIo() Andy Shevchenko
2017-11-03 13:03 ` Andy Shevchenko [this message]
2017-11-04 3:14 ` [PATCH v3 2/5] iio: proximity: sx9500: Add GPIO ACPI mapping table Jonathan Cameron
2017-11-19 15:29 ` Jonathan Cameron
2017-11-25 14:24 ` Jonathan Cameron
2017-11-27 15:08 ` Andy Shevchenko
2017-12-01 10:04 ` Linus Walleij
2017-12-01 12:36 ` Andy Shevchenko
2017-11-03 13:03 ` [PATCH v3 3/5] iio: proximity: sx9500: Set IRQ pin to direction-input if necessary Andy Shevchenko
2017-11-04 3:20 ` Jonathan Cameron
2017-11-08 16:35 ` Andy Shevchenko
2017-11-08 17:03 ` Mika Westerberg
2017-11-08 20:45 ` Linus Walleij
2017-11-08 20:52 ` Andy Shevchenko
2017-11-10 18:13 ` Andy Shevchenko
2018-02-26 19:51 ` Andy Shevchenko
2017-11-03 13:03 ` [PATCH v3 4/5] iio: proximity: sx9500: Add another ACPI ID Andy Shevchenko
2017-11-19 15:32 ` Jonathan Cameron
2017-11-03 13:03 ` [PATCH v3 5/5] iio: magnetometer: ak8975: " Andy Shevchenko
2017-11-04 3:11 ` [PATCH v3 1/5] iio: proximity: sx9500: Assign interrupt from GpioIo() Jonathan Cameron
2017-11-04 10:43 ` Linus Walleij
2017-11-06 9:35 ` Mika Westerberg
2017-11-19 15:24 ` Jonathan Cameron
2017-11-20 10:30 ` Mika Westerberg
2017-11-25 14:28 ` 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=20171103130340.42459-2-andriy.shevchenko@linux.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=jic23@kernel.org \
--cc=knaack.h@gmx.de \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=pmeerw@pmeerw.net \
/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;
as well as URLs for NNTP newsgroup(s).