Commit 8681de64 authored by Biju Das's avatar Biju Das Committed by Alexandre Belloni
Browse files

rtc: da9063: Make IRQ as optional



On some platforms (eg: RZ/{G2UL,Five} SMARC EVK), there is no IRQ
populated by default. Add irq optional support.

Signed-off-by: default avatarBiju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20240105145344.204453-2-biju.das.jz@bp.renesas.com


Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent dd7fe5d9
Loading
Loading
Loading
Loading
+22 −18
Original line number Diff line number Diff line
@@ -485,16 +485,15 @@ static int da9063_rtc_probe(struct platform_device *pdev)
		clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, rtc->rtc_dev->features);
	}

	irq_alarm = platform_get_irq_byname(pdev, "ALARM");
	if (irq_alarm < 0)
		return irq_alarm;

	irq_alarm = platform_get_irq_byname_optional(pdev, "ALARM");
	if (irq_alarm >= 0) {
		ret = devm_request_threaded_irq(&pdev->dev, irq_alarm, NULL,
						da9063_alarm_event,
						IRQF_TRIGGER_LOW | IRQF_ONESHOT,
						"ALARM", rtc);
		if (ret)
		dev_err(&pdev->dev, "Failed to request ALARM IRQ %d: %d\n",
			dev_err(&pdev->dev,
				"Failed to request ALARM IRQ %d: %d\n",
				irq_alarm, ret);

		ret = dev_pm_set_wake_irq(&pdev->dev, irq_alarm);
@@ -504,6 +503,11 @@ static int da9063_rtc_probe(struct platform_device *pdev)
				 irq_alarm, ret);

		device_init_wakeup(&pdev->dev, true);
	}  else if (irq_alarm != -ENXIO) {
		return irq_alarm;
	} else {
		clear_bit(RTC_FEATURE_ALARM, rtc->rtc_dev->features);
	}

	return devm_rtc_register_device(rtc->rtc_dev);
}