extcon: ptn5150: Use generic "interrupts" property
Interrupts do not have to be always GPIO based so instead of expecting "int-gpios" property and converting the GPIO to an interrupt, just accept any interrupt via generic "interrupts" property. Keep support for old "int-gpios" for backward compatibility. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Vijai Kumar K <vijaikumar.kanagarajan@gmail.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
This commit is contained in:
parent
6aaad58c87
commit
45ce36f5d2
|
@ -239,11 +239,6 @@ static int ptn5150_i2c_probe(struct i2c_client *i2c,
|
||||||
|
|
||||||
info->dev = &i2c->dev;
|
info->dev = &i2c->dev;
|
||||||
info->i2c = i2c;
|
info->i2c = i2c;
|
||||||
info->int_gpiod = devm_gpiod_get(&i2c->dev, "int", GPIOD_IN);
|
|
||||||
if (IS_ERR(info->int_gpiod)) {
|
|
||||||
dev_err(dev, "failed to get INT GPIO\n");
|
|
||||||
return PTR_ERR(info->int_gpiod);
|
|
||||||
}
|
|
||||||
info->vbus_gpiod = devm_gpiod_get(&i2c->dev, "vbus", GPIOD_IN);
|
info->vbus_gpiod = devm_gpiod_get(&i2c->dev, "vbus", GPIOD_IN);
|
||||||
if (IS_ERR(info->vbus_gpiod)) {
|
if (IS_ERR(info->vbus_gpiod)) {
|
||||||
dev_err(dev, "failed to get VBUS GPIO\n");
|
dev_err(dev, "failed to get VBUS GPIO\n");
|
||||||
|
@ -267,22 +262,30 @@ static int ptn5150_i2c_probe(struct i2c_client *i2c,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (info->int_gpiod) {
|
if (i2c->irq > 0) {
|
||||||
|
info->irq = i2c->irq;
|
||||||
|
} else {
|
||||||
|
info->int_gpiod = devm_gpiod_get(&i2c->dev, "int", GPIOD_IN);
|
||||||
|
if (IS_ERR(info->int_gpiod)) {
|
||||||
|
dev_err(dev, "failed to get INT GPIO\n");
|
||||||
|
return PTR_ERR(info->int_gpiod);
|
||||||
|
}
|
||||||
|
|
||||||
info->irq = gpiod_to_irq(info->int_gpiod);
|
info->irq = gpiod_to_irq(info->int_gpiod);
|
||||||
if (info->irq < 0) {
|
if (info->irq < 0) {
|
||||||
dev_err(dev, "failed to get INTB IRQ\n");
|
dev_err(dev, "failed to get INTB IRQ\n");
|
||||||
return info->irq;
|
return info->irq;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ret = devm_request_threaded_irq(dev, info->irq, NULL,
|
ret = devm_request_threaded_irq(dev, info->irq, NULL,
|
||||||
ptn5150_irq_handler,
|
ptn5150_irq_handler,
|
||||||
IRQF_TRIGGER_FALLING |
|
IRQF_TRIGGER_FALLING |
|
||||||
IRQF_ONESHOT,
|
IRQF_ONESHOT,
|
||||||
i2c->name, info);
|
i2c->name, info);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(dev, "failed to request handler for INTB IRQ\n");
|
dev_err(dev, "failed to request handler for INTB IRQ\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate extcon device */
|
/* Allocate extcon device */
|
||||||
|
|
Loading…
Reference in New Issue