diff options
author | Andreas Dannenberg <dannenberg@ti.com> | 2015-09-25 10:54:07 -0500 |
---|---|---|
committer | Sebastian Reichel <sre@kernel.org> | 2015-09-28 18:36:35 +0200 |
commit | 5ff8c89d112cbeb5776d5ba40a224b70f67e41bb (patch) | |
tree | cf940acf10c9753284949c6007e74d521db48d3d /drivers/power | |
parent | 2edd69a81dd4e8068bb512ffcc3959c77fc182ea (diff) | |
download | lwn-5ff8c89d112cbeb5776d5ba40a224b70f67e41bb.tar.gz lwn-5ff8c89d112cbeb5776d5ba40a224b70f67e41bb.zip |
power: bq24257: Remove IRQ config through stat-gpios
At the time the driver was written GpioInt resources in ACPI were not
passed to the driver in client->irq, as opposed to DT enumeration. To
accommodate this use case, a "stat-gpios" property was introduced to
allow configuring the IRQ.
However this issue with ACPI was fixed in commit "845c877 i2c / ACPI:
Assign IRQ for devices that have GpioInt automatically" and makes this
workaround no longer necessary, hence we can remove the support for the
"stat-gpios" property and the associated code from the bq24257 driver.
Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Diffstat (limited to 'drivers/power')
-rw-r--r-- | drivers/power/bq24257_charger.c | 28 |
1 files changed, 4 insertions, 24 deletions
diff --git a/drivers/power/bq24257_charger.c b/drivers/power/bq24257_charger.c index 5859bc7c1616..69b53d056b61 100644 --- a/drivers/power/bq24257_charger.c +++ b/drivers/power/bq24257_charger.c @@ -36,7 +36,6 @@ #define BQ24257_REG_7 0x06 #define BQ24257_MANUFACTURER "Texas Instruments" -#define BQ24257_STAT_IRQ "stat" #define BQ24257_PG_GPIO "pg" #define BQ24257_ILIM_SET_DELAY 1000 /* msec */ @@ -606,19 +605,6 @@ static int bq24257_power_supply_init(struct bq24257_device *bq) return 0; } -static int bq24257_irq_probe(struct bq24257_device *bq) -{ - struct gpio_desc *stat_irq; - - stat_irq = devm_gpiod_get_index(bq->dev, BQ24257_STAT_IRQ, 0, GPIOD_IN); - if (IS_ERR(stat_irq)) { - dev_err(bq->dev, "could not probe stat_irq pin\n"); - return PTR_ERR(stat_irq); - } - - return gpiod_to_irq(stat_irq); -} - static int bq24257_pg_gpio_probe(struct bq24257_device *bq) { bq->pg = devm_gpiod_get_index(bq->dev, BQ24257_PG_GPIO, 0, GPIOD_IN); @@ -740,21 +726,15 @@ static int bq24257_probe(struct i2c_client *client, return ret; } - if (client->irq <= 0) - client->irq = bq24257_irq_probe(bq); - - if (client->irq < 0) { - dev_err(dev, "no irq resource found\n"); - return client->irq; - } - ret = devm_request_threaded_irq(dev, client->irq, NULL, bq24257_irq_handler_thread, IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING | IRQF_ONESHOT, - BQ24257_STAT_IRQ, bq); - if (ret) + "bq24257", bq); + if (ret) { + dev_err(dev, "Failed to request IRQ #%d\n", client->irq); return ret; + } ret = bq24257_power_supply_init(bq); if (ret < 0) |