mfd: tps65086: Make interrupt line optional
The BeagleV Starlight v0.9 board[1] doesn't have the IRQB line routed to the SoC, but it is still useful to be able to reach the PMIC over I2C for the other functionality it provides such as GPIOs and regulator settings. [1] https://github.com/beagleboard/beaglev-starlight Signed-off-by: Emil Renner Berthing <kernel@esmil.dk> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
68f0ba70de
commit
e06f4abb1b
|
@ -87,9 +87,6 @@ additionalProperties: false
|
|||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
- '#interrupt-cells'
|
||||
- gpio-controller
|
||||
- '#gpio-cells'
|
||||
- regulators
|
||||
|
|
|
@ -100,29 +100,30 @@ static int tps65086_probe(struct i2c_client *client,
|
|||
(char)((version & TPS65086_DEVICEID_OTP_MASK) >> 4) + 'A',
|
||||
(version & TPS65086_DEVICEID_REV_MASK) >> 6);
|
||||
|
||||
ret = regmap_add_irq_chip(tps->regmap, tps->irq, IRQF_ONESHOT, 0,
|
||||
&tps65086_irq_chip, &tps->irq_data);
|
||||
if (ret) {
|
||||
dev_err(tps->dev, "Failed to register IRQ chip\n");
|
||||
return ret;
|
||||
if (tps->irq > 0) {
|
||||
ret = regmap_add_irq_chip(tps->regmap, tps->irq, IRQF_ONESHOT, 0,
|
||||
&tps65086_irq_chip, &tps->irq_data);
|
||||
if (ret) {
|
||||
dev_err(tps->dev, "Failed to register IRQ chip\n");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
ret = mfd_add_devices(tps->dev, PLATFORM_DEVID_AUTO, tps65086_cells,
|
||||
ARRAY_SIZE(tps65086_cells), NULL, 0,
|
||||
regmap_irq_get_domain(tps->irq_data));
|
||||
if (ret) {
|
||||
if (ret && tps->irq > 0)
|
||||
regmap_del_irq_chip(tps->irq, tps->irq_data);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int tps65086_remove(struct i2c_client *client)
|
||||
{
|
||||
struct tps65086 *tps = i2c_get_clientdata(client);
|
||||
|
||||
regmap_del_irq_chip(tps->irq, tps->irq_data);
|
||||
if (tps->irq > 0)
|
||||
regmap_del_irq_chip(tps->irq, tps->irq_data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue