Message ID | 20231117-arm-psci-system_reset2-vendor-reboots-v1-1-03c4612153e2@quicinc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Implement vendor resets for PSCI SYSTEM_RESET2 | expand |
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
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 >
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
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
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(-)