Commit e06f4abb authored by Emil Renner Berthing's avatar Emil Renner Berthing Committed by Lee Jones
Browse files

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: default avatarEmil Renner Berthing <kernel@esmil.dk>
Acked-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 68f0ba70
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -87,9 +87,6 @@ additionalProperties: false
required:
  - compatible
  - reg
  - interrupts
  - interrupt-controller
  - '#interrupt-cells'
  - gpio-controller
  - '#gpio-cells'
  - regulators
+11 −10
Original line number Diff line number Diff line
@@ -100,28 +100,29 @@ static int tps65086_probe(struct i2c_client *client,
		 (char)((version & TPS65086_DEVICEID_OTP_MASK) >> 4) + 'A',
		 (version & TPS65086_DEVICEID_REV_MASK) >> 6);

	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);

	if (tps->irq > 0)
		regmap_del_irq_chip(tps->irq, tps->irq_data);

	return 0;