PSCI reboot mode will map a mode name to multiple magic values instead
of just one. Convert the mode-.* property to an array with default
number of items limited to 1.
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
---
Documentation/devicetree/bindings/power/reset/reboot-mode.yaml | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml
index ad0a0b95cec1..2c786e783464 100644
--- a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml
+++ b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml
@@ -28,13 +28,16 @@ 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
+ # Default to one value. Bindings that reference this schema could override.
+ minItems: 1
+ maxItems: 1
additionalProperties: true
--
2.41.0
On Fri, Nov 17, 2023 at 01:18:46PM -0800, 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 with default > number of items limited to 1. > > Signed-off-by: Elliot Berman <quic_eberman@quicinc.com> > --- > Documentation/devicetree/bindings/power/reset/reboot-mode.yaml | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml > index ad0a0b95cec1..2c786e783464 100644 > --- a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml > +++ b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml > @@ -28,13 +28,16 @@ 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 > + # Default to one value. Bindings that reference this schema could override. > + minItems: 1 > + maxItems: 1 There are no overrides in json-schema, so this won't work. It happens to work though. It has to do with how we process the schemas because every integer property is decoded into a 2 dimensional array. So we process the schemas to convert schemas for scalars and arrays into a matrix. This hit a corner case where we bail on doing any fixup when maxItems is 1, but really it should be transformed into: maxItems: 1 items: maxItems: 1 Which would then fail on your case with 2 entries. You need 'maxItems: 1' everywhere just 1 entry is expected (e.g. mode-normal) and no constraints here. Rob > > additionalProperties: true > > > -- > 2.41.0 >
On 17/11/2023 22:18, 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 with default > number of items limited to 1. > > Signed-off-by: Elliot Berman <quic_eberman@quicinc.com> > --- > Documentation/devicetree/bindings/power/reset/reboot-mode.yaml | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml > index ad0a0b95cec1..2c786e783464 100644 > --- a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml > +++ b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml > @@ -28,13 +28,16 @@ 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 > + # Default to one value. Bindings that reference this schema could override. > + minItems: 1 > + maxItems: 1 I don't understand. Array with one value is the same as uint32. Best regards, Krzysztof
Hi Krzysztof, On 11/20/2023 2:52 AM, Krzysztof Kozlowski wrote: > On 17/11/2023 22:18, 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 with default >> number of items limited to 1. >> >> Signed-off-by: Elliot Berman <quic_eberman@quicinc.com> >> --- >> Documentation/devicetree/bindings/power/reset/reboot-mode.yaml | 7 +++++-- >> 1 file changed, 5 insertions(+), 2 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml >> index ad0a0b95cec1..2c786e783464 100644 >> --- a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml >> +++ b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml >> @@ -28,13 +28,16 @@ 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 >> + # Default to one value. Bindings that reference this schema could override. >> + minItems: 1 >> + maxItems: 1 > > I don't understand. Array with one value is the same as uint32. > PSCI SYSTEM_RESET2 can have multiple values per reboot type. In other words: a given reboot mode could refer to a tuple with N values, where N is device-specific. The current schema only allows for N=1 and PSCI SYSTEM_RESET2 uses N=2. This patch was to update the reboot-mode.yaml to allow me to specify N=2 in the psci bindings. Thanks, Elliot
© 2016 - 2025 Red Hat, Inc.