Re: [PATCH v4 1/4] dt-bindings: power: reset: Convert mode-.* properties to array

From: Rob Herring
Date: Thu Jun 13 2024 - 13:35:51 EST


On Tue, Jun 11, 2024 at 04:23:00PM -0700, Elliot Berman wrote:
> On Tue, Jun 11, 2024 at 02:40:01PM -0600, Rob Herring wrote:
> > On Tue, Jun 11, 2024 at 08:35:13AM -0700, Elliot Berman wrote:
> > > PSCI reboot mode will map a mode name to multiple magic values instead
> > > of just one. Convert the mode-.* property to an array. Users of the
> > > reboot-mode schema will need to specify the maxItems of the mode-.*
> > > properties. Existing users will all be 1.
> > >
> > > Signed-off-by: Elliot Berman <quic_eberman@xxxxxxxxxxx>
> > > ---
> > > .../devicetree/bindings/power/reset/nvmem-reboot-mode.yaml | 5 +++++
> > > Documentation/devicetree/bindings/power/reset/qcom,pon.yaml | 8 ++++++++
> > > Documentation/devicetree/bindings/power/reset/reboot-mode.yaml | 4 ++--
> > > .../devicetree/bindings/power/reset/syscon-reboot-mode.yaml | 5 +++++
> > > 4 files changed, 20 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/Documentation/devicetree/bindings/power/reset/nvmem-reboot-mode.yaml b/Documentation/devicetree/bindings/power/reset/nvmem-reboot-mode.yaml
> > > index 627f8a6078c2..9b9bbc0f29e7 100644
> > > --- a/Documentation/devicetree/bindings/power/reset/nvmem-reboot-mode.yaml
> > > +++ b/Documentation/devicetree/bindings/power/reset/nvmem-reboot-mode.yaml
> > > @@ -31,6 +31,11 @@ properties:
> > > allOf:
> > > - $ref: reboot-mode.yaml#
> > >
> > > +patternProperties:
> > > + "^mode-.*$":
> > > + items:
> > > + maxItems: 1
> >
> > Drop 'items'. Otherwise, you are defining constraints of a matrix.
> >
>
> If I do this, I also have to add $ref: .../uint32-array as well so
> the property can be picked up as an array type. Let me know if this isn't
> right, otherwise I'll send out a fixed version in a few days.

Ah, I suppose the tools get confused with what to do here. That's an
issue I'm working on addressing. The issue is everything is a matrix
because without other information for a property we don't know how to
decode them. But with the schemas being fairly complete now and the move
away from DTB->YAML decoding, we can decode properties to the right
type. One issue to switch over is places where this 'everything is a
matrix' crept into schemas. I've been fixing these. The above is an
example of this.

So for now, just drop 'items'. It won't enforce anything, but once we
switch over it will.

Rob