Re: [PATCH] arm64: dts: qcom: sc8280xp-pmics: add explicit rtc interrupt parent

Patrick Wildt
2023-06-28T08:57:02Z

On Wed, Jun 28, 2023 at 08:47:00AM +0200, Johan Hovold wrote:
> On Wed, Jun 28, 2023 at 10:55:57AM +0530, Manivannan Sadhasivam wrote:
> > On Tue, Jun 27, 2023 at 05:27:32PM +0200, Johan Hovold wrote:
> > > On Tue, Jun 27, 2023 at 06:54:06PM +0530, Manivannan Sadhasivam wrote:
> > > > On Tue, Jun 27, 2023 at 10:53:06AM +0200, Johan Hovold wrote:
> > > > > Unless explicitly specified the interrupt-parent property is inherited
> > > > > from the parent node on Linux even though this may not be in full
> > > > > compliance with the devicetree specification.
> > > > >
> > > > > Following commit 2d5cab9232ba ("arm64: dts: qcom: sc8280xp-pmics:
> > > > > Specify interrupt parent explicitly"), add an explicit interrupt parent
> > > > > also for the PMIC RTC node for the benefit of other operating systems
> > > > > which may be confused by this omission.
> > > > >
> > > > > Note that any such OS must still implement a fallback to the root
> > > > > interrupt domain as most devicetrees are written under the assumption
> > > > > that the interrupt parent is inherited.
> > > > >
> > > > > Reported-by: Patrick Wildt <patrick@blueri.se>
> > > > > Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> > > >
> > > > It is good to encode this in the binding and fix other such instances.
> > >
> > > Not sure about that. Perhaps the spec should be updated to match reality
> > > instead... We have many more instances like this, even for this very
> > > SoC, but apparently OpenBSD or whatever OS needs this falls back to the
> > > root domain then.
> > >
> >
> > Just because linux is doing it in a different way doesn't warrant an amendment
> > to the spec IMO.
>
> My point is that it's apparently not just Linux as most devicetrees work
> this way at least for the root domain. And then it may be time to update
> the spec in some way.

I'm not sure about the point you're trying to make. In OpenBSD's
implementation, which I think complies with the spec, for non-extended
interrupts we check the node's (or all its parents') interrupt-parent
property.

Technically the SPMI arbiter could define an interrupt-parent that
points to itself, because it's using interrupts-extended anyway to
point to the PDC. But that would feel a bit stupid and not really
correct. Alternatively each child node could have interrupt-parent.

That said, I understand the point that it might make sense to amend
the spec so that if a parent node is an interrupt-controller, that's
most probably interrupt parent, unless an interrupt-parent property
shows up before.

I would like to add that OpenBSD supports a number of SoCs for quite
some years and this is the first time I've hit an issue with interrupts
that were not designed in a way for the current spec to work. That said
we obviously support quite fewer SoCs/boards in total compared to Linux.

Cheers,
Patrick