diff options
Diffstat (limited to 'drivers/rtc/rtc-rv3028.c')
| -rw-r--r-- | drivers/rtc/rtc-rv3028.c | 13 | 
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/rtc/rtc-rv3028.c b/drivers/rtc/rtc-rv3028.c index dd170e3efd83..b0099e26e3b0 100644 --- a/drivers/rtc/rtc-rv3028.c +++ b/drivers/rtc/rtc-rv3028.c @@ -902,9 +902,20 @@ static int rv3028_probe(struct i2c_client *client)  		return PTR_ERR(rv3028->rtc);  	if (client->irq > 0) { +		unsigned long flags; + +		/* +		 * If flags = 0, devm_request_threaded_irq() will use IRQ flags +		 * obtained from device tree. +		 */ +		if (dev_fwnode(&client->dev)) +			flags = 0; +		else +			flags = IRQF_TRIGGER_LOW; +  		ret = devm_request_threaded_irq(&client->dev, client->irq,  						NULL, rv3028_handle_irq, -						IRQF_TRIGGER_LOW | IRQF_ONESHOT, +						flags | IRQF_ONESHOT,  						"rv3028", rv3028);  		if (ret) {  			dev_warn(&client->dev, "unable to request IRQ, alarms disabled\n");  | 
