Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 413455dd authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "power: smb1390: Add IREV IRQ handler to toggle switcher"

parents ea486911 29add0fa
Loading
Loading
Loading
Loading
+27 −1
Original line number Diff line number Diff line
@@ -219,6 +219,32 @@ static irqreturn_t default_irq_handler(int irq, void *data)
	return IRQ_HANDLED;
}

static irqreturn_t irev_irq_handler(int irq, void *data)
{
	struct smb1390 *chip = data;
	int rc;

	pr_debug("IREV IRQ triggered\n");

	rc = smb1390_masked_write(chip, CORE_CONTROL1_REG,
			CMD_EN_SWITCHER_BIT, 0);
	if (rc < 0) {
		pr_err("Couldn't disable switcher by command mode\n");
		goto out;
	}

	rc = smb1390_masked_write(chip, CORE_CONTROL1_REG,
			CMD_EN_SWITCHER_BIT, 1);
	if (rc < 0) {
		pr_err("Couldn't enable switcher by command mode\n");
		goto out;
	}

out:
	kobject_uevent(&chip->dev->kobj, KOBJ_CHANGE);
	return IRQ_HANDLED;
}

static const struct smb_irq smb_irqs[] = {
	[SWITCHER_OFF_WINDOW_IRQ] = {
		.name		= "switcher-off-window",
@@ -237,7 +263,7 @@ static const struct smb_irq smb_irqs[] = {
	},
	[IREV_IRQ] = {
		.name		= "irev-fault",
		.handler	= default_irq_handler,
		.handler	= irev_irq_handler,
		.wake		= true,
	},
	[VPH_OV_HARD_IRQ] = {