[PATCH v3 2/4] dt-bindings: arm: Document reboot mode magic

Rob Herring robh at kernel.org
Mon May 20 12:44:46 PDT 2024


On Wed, May 15, 2024 at 04:09:45PM -0700, Elliot Berman wrote:
> Add bindings to describe vendor-specific reboot modes. Values here
> correspond to valid parameters to vendor-specific reset types in PSCI
> SYSTEM_RESET2 call.
> 
> Signed-off-by: Elliot Berman <quic_eberman at quicinc.com>
> ---
>  Documentation/devicetree/bindings/arm/psci.yaml | 43 +++++++++++++++++++++++--
>  1 file changed, 41 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/arm/psci.yaml b/Documentation/devicetree/bindings/arm/psci.yaml
> index cbb012e217ab..47b5bbe540ce 100644
> --- a/Documentation/devicetree/bindings/arm/psci.yaml
> +++ b/Documentation/devicetree/bindings/arm/psci.yaml
> @@ -137,8 +137,34 @@ allOf:
>        required:
>          - cpu_off
>          - cpu_on
> -
> -additionalProperties: false
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: arm,psci-1.0
> +    then:
> +      properties:
> +        reset-types:

The normal structure is declare all properties and nodes at the top 
level (outside of if/then schemas) and then add restrictions with 
if/then schemas. 

> +          type: object
> +          $ref: /schemas/power/reset/reboot-mode.yaml#

             additionalProperties: false

and a blank line

> +          properties:
> +            # "mode-normal" is just SYSTEM_RESET
> +            mode-normal: false
> +          patternProperties:
> +            "^mode-.*$":
> +              items:
> +                maxItems: 2
> +              description: |
> +                Describes a vendor-specific reset type. The string after "mode-"
> +                maps a reboot mode to the parameters in the PSCI SYSTEM_RESET2 call.
> +
> +                Parameters are named mode-xxx = <type[, cookie]>, where xxx
> +                is the name of the magic reboot mode, type is the lower 31 bits
> +                of the reset_type, and, optionally, the cookie value. If the cookie
> +                is not provided, it is defaulted to zero.
> +                The 31st bit (vendor-resets) will be implicitly set by the driver.
> +
> +unevaluatedProperties: false
>  
>  examples:
>    - |+
> @@ -261,4 +287,17 @@ examples:
>          domain-idle-states = <&CLUSTER_RET>, <&CLUSTER_PWRDN>;
>        };
>      };
> +
> +  - |+
> +
> +    // Case 5: SYSTEM_RESET2 vendor resets
> +    psci {
> +      compatible = "arm,psci-1.0";
> +      method = "smc";
> +
> +      reset-types {
> +        mode-edl = <0>;
> +        mode-bootloader = <1 2>;
> +      };
> +    };
>  ...
> 
> -- 
> 2.34.1
> 



More information about the linux-arm-kernel mailing list