Hi Biju, On Fri, Dec 1, 2023 at 12:08 PM Biju Das <biju.das.jz@xxxxxxxxxxxxxx> wrote: > On some platforms (eg: RZ/{G2UL,Five} SMARC EVK), there is no IRQ > populated by default. Add irq optional support. > > Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> Thanks for your patch! > --- a/drivers/rtc/rtc-da9063.c > +++ b/drivers/rtc/rtc-da9063.c > @@ -485,25 +485,26 @@ 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; > - > - 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", > - irq_alarm, ret); > - > - ret = dev_pm_set_wake_irq(&pdev->dev, irq_alarm); > - if (ret) > - dev_warn(&pdev->dev, > - "Failed to set IRQ %d as a wake IRQ: %d\n", > - irq_alarm, ret); > - > - device_init_wakeup(&pdev->dev, true); > + 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", > + irq_alarm, ret); > + > + ret = dev_pm_set_wake_irq(&pdev->dev, irq_alarm); > + if (ret) > + dev_warn(&pdev->dev, > + "Failed to set IRQ %d as a wake IRQ: %d\n", > + irq_alarm, ret); > + > + device_init_wakeup(&pdev->dev, true); > + } else { > + clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, rtc->rtc_dev->features); This does not handle and propagate real errors (e.g. -EPROBE_DEFER). } else if (irq_alarm != -ENXIO) { return irq_alarm; } else { .... } (I think -ENXIO is the correct error to check for, platform_get_irq_byname_optional() really should start returning zero for not found) > + } > > return devm_rtc_register_device(rtc->rtc_dev); Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds