RE: [PATCH 2/2] dt-bindings: rtc: add bindings for max313xx RTCs
From: Tilki, Ibrahim
Date: Fri Oct 21 2022 - 09:06:24 EST
> On 21/10/2022 11:44:12+0000, Tilki, Ibrahim wrote:
> > > > + interrupt-names:
> > > > + description: |
> > > > + Name of the interrupt pin of the RTC used for IRQ. Not required for
> > > > + RTCs that only have single interrupt pin available. Some of the RTCs
> > > > + share interrupt pins with clock input/output pins.
> > > > + minItems: 1
> > > > + items:
> > > > + - enum: [INTA, INTB]
> > > > + - enum: [INTA, INTB]
> > > > +
> > >
> > > I don't think this is right, what this is doing is essentially pinmuxing
> > > interrupts versus clocks. What happens if you want INTB but this goes
> > > directly to a PMIC instead of the SoC?
> > > It is not something you can express with your current bindings.
> > >
> >
> > Why would a user want INTB when it is not connected to SoC?
> > User can specify none, either one or both of the interrupt pins.
> > I don't see what the problem here is.
> >
>
> the interrupt pin may be connected to a PMIC that is able to start or
> wake up the platform. In that case, the user would not have any
> interrupt-names and your driver will fail to mux the interrupt on INTB.
> Please fix.
Interrupt muxing depends on the clock configuration, not the interrupt-names property.
Devices don't support muxing the alarm interrupt independently.
For example in the case of max31329, alarm interrupt is muxed into INTA by default.
Alarm interrupt is muxed into INTB pin if and only if clkin is enabled.
This means that if a user wants the alarm interrupt on INTB pin, they have to
provide a clock input through "clocks" property. If that is the case, they can provide
an interrupt for INTB pin, otherwise the alarm feature of the rtc gets disabled.
Side note: Some devices have 2 Alarms but Alarm2 does not have a register for
matching "seconds" so only Alarm1 is used by the driver.
Ibrahim