Thread (19 messages) 19 messages, 5 authors, 2016-02-12

Re: [PATCH 1/2] regulator: ltc3589: make IRQ optional

From: Grygorii Strashko <grygorii.strashko@ti.com>
Date: 2016-01-20 17:30:56
Also in: linux-arm-kernel, linux-omap, lkml

On 01/20/2016 02:29 PM, Lothar Waßmann wrote:
quoted hunk ↗ jump to hunk
On the AM335x SoC rev. <= 1.0 the "Input Function of the EXTINTn
Terminal is Inverted", for which the only remedy is to "Use an active
high interrupt source or use an external inverter to change the
polarity of any active low interrupt source."

This pin is used as IRQ pin for the LTC3589 PMIC on the Ka-Ro
electronics TX48 module. Make the IRQ optional in the driver and use a
polling routine instead if no IRQ is specified in DT.
Otherwise the driver will continuously generate interrupts and make
the system unusable.

Signed-off-by: Lothar Waßmann <redacted>
---
  drivers/regulator/ltc3589.c | 49 +++++++++++++++++++++++++++++++++++++++++----
  1 file changed, 45 insertions(+), 4 deletions(-)
diff --git a/drivers/regulator/ltc3589.c b/drivers/regulator/ltc3589.c
[...]
quoted hunk ↗ jump to hunk
  }
@@ -519,6 +539,16 @@ static int ltc3589_probe(struct i2c_client *client,
  			return ret;
  		}
  	}
+	if (client->irq <= 0) {
+		dev_warn(dev,
+			"No interrupt configured; poll for thermal shutdown and undervoltage events\n");
+
+		INIT_DELAYED_WORK(&ltc3589->poll_timer, ltc3589_poll_func);
+		schedule_delayed_work(&ltc3589->poll_timer,
+				msecs_to_jiffies(POLL_PERIOD));
+
+		return 0;
+	}
  
  	ret = devm_request_threaded_irq(dev, client->irq, NULL, ltc3589_isr,
  					IRQF_TRIGGER_LOW | IRQF_ONESHOT,
					^^^^^^^^^^^^^^^^

I assume you have issue with IRQ because of the above hard-coded flag.
if yes - Over all approach for such kind of issues - do not hard-code IRQ triggering 
flags in code in case of DT boot. DT core will configure it properly.



[...]

-- 
regards,
-grygorii
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help