Message ID | 20240611-arm-psci-system_reset2-vendor-reboots-v4-1-98f55aa74ae8@quicinc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Implement vendor resets for PSCI SYSTEM_RESET2 | expand |
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@quicinc.com> > --- > .../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. > + > required: > - compatible > - nvmem-cells > diff --git a/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml b/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml > index fc8105a7b9b2..4c87ff5ecc9a 100644 > --- a/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml > +++ b/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml > @@ -54,6 +54,11 @@ required: > - compatible > - reg > > +patternProperties: > + "^mode-.*$": > + items: > + maxItems: 1 > + > unevaluatedProperties: false > > allOf: > @@ -75,6 +80,9 @@ allOf: > reg-names: > items: > - const: pon > + else: > + patternProperties: > + "^mode-.*$": false > > # Special case for pm8941, which doesn't store reset mode > - if: > diff --git a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml > index ad0a0b95cec1..523602fb82d2 100644 > --- a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml > +++ b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml > @@ -28,13 +28,13 @@ description: | > > properties: > mode-normal: > - $ref: /schemas/types.yaml#/definitions/uint32 > + $ref: "#/patternProperties/^mode-.*$" No need for this. The pattern schema will be applied already. Also, a $ref to a regex is fragile as it won't work for some regex patterns. > description: > Default value to set on a reboot if no command was provided. > > patternProperties: > "^mode-.*$": > - $ref: /schemas/types.yaml#/definitions/uint32 > + $ref: /schemas/types.yaml#/definitions/uint32-array > > additionalProperties: true > > diff --git a/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml b/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml > index b6acff199cde..e9d2e3b27885 100644 > --- a/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml > +++ b/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml > @@ -32,6 +32,11 @@ properties: > allOf: > - $ref: reboot-mode.yaml# > > +patternProperties: > + "^mode-.*$": > + items: > + maxItems: 1 > + > unevaluatedProperties: false > > required: > > -- > 2.34.1 >
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@quicinc.com> > > --- > > .../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. Thanks, Elliot
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@quicinc.com> > > > --- > > > .../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
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 + required: - compatible - nvmem-cells diff --git a/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml b/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml index fc8105a7b9b2..4c87ff5ecc9a 100644 --- a/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml +++ b/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml @@ -54,6 +54,11 @@ required: - compatible - reg +patternProperties: + "^mode-.*$": + items: + maxItems: 1 + unevaluatedProperties: false allOf: @@ -75,6 +80,9 @@ allOf: reg-names: items: - const: pon + else: + patternProperties: + "^mode-.*$": false # Special case for pm8941, which doesn't store reset mode - if: diff --git a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml index ad0a0b95cec1..523602fb82d2 100644 --- a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml +++ b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml @@ -28,13 +28,13 @@ description: | properties: mode-normal: - $ref: /schemas/types.yaml#/definitions/uint32 + $ref: "#/patternProperties/^mode-.*$" description: Default value to set on a reboot if no command was provided. patternProperties: "^mode-.*$": - $ref: /schemas/types.yaml#/definitions/uint32 + $ref: /schemas/types.yaml#/definitions/uint32-array additionalProperties: true diff --git a/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml b/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml index b6acff199cde..e9d2e3b27885 100644 --- a/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml +++ b/Documentation/devicetree/bindings/power/reset/syscon-reboot-mode.yaml @@ -32,6 +32,11 @@ properties: allOf: - $ref: reboot-mode.yaml# +patternProperties: + "^mode-.*$": + items: + maxItems: 1 + unevaluatedProperties: false required:
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@quicinc.com> --- .../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(-)