lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YlX3uxZzmnb1nM/R@robh.at.kernel.org>
Date:   Tue, 12 Apr 2022 17:05:47 -0500
From:   Rob Herring <robh@...nel.org>
To:     Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>
Cc:     Jingoo Han <jingoohan1@...il.com>,
        Gustavo Pimentel <gustavo.pimentel@...opsys.com>,
        Bjorn Helgaas <bhelgaas@...gle.com>,
        Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
        Masami Hiramatsu <mhiramat@...nel.org>,
        linux-pci@...r.kernel.org, devicetree@...r.kernel.org,
        linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 2/3] dt-bindings: PCI: uniphier-ep: Clean up reg,
 clocks, resets, and their names using compatible string

On Thu, Apr 07, 2022 at 10:22:32AM +0900, Kunihiko Hayashi wrote:
> Instead of "oneOf:" choices, use "allOf:" and "if:" to define reg, clocks,
> resets, and their names that can be taken by the compatible string.
> 
> The order of their names doesn't change here.
> 
> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>
> ---
>  .../pci/socionext,uniphier-pcie-ep.yaml       | 84 ++++++++++++-------
>  1 file changed, 56 insertions(+), 28 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
> index 437e61618d06..49a5b2ca266c 100644
> --- a/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
> +++ b/Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml
> @@ -15,9 +15,6 @@ description: |
>  maintainers:
>    - Kunihiko Hayashi <hayashi.kunihiko@...ionext.com>
>  
> -allOf:
> -  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
> -
>  properties:
>    compatible:
>      enum:
> @@ -28,41 +25,19 @@ properties:
>      minItems: 4
>      maxItems: 5
>  
> -  reg-names:
> -    oneOf:
> -      - items:
> -          - const: dbi
> -          - const: dbi2
> -          - const: link
> -          - const: addr_space
> -      - items:
> -          - const: dbi
> -          - const: dbi2
> -          - const: link
> -          - const: addr_space
> -          - const: atu

This could be just:

      minItems: 4
      items:
        - const: dbi
        - const: dbi2
        - const: link
        - const: addr_space
        - const: atu

Then the if/then can have just 'minItems: 5' or 'maxItems: 4' for each 
case. I prefer the if/then schemas to be minimal.

> +  reg-names: true
>  
>    clocks:
>      minItems: 1
>      maxItems: 2
>  
> -  clock-names:
> -    oneOf:
> -      - items:              # for Pro5
> -          - const: gio
> -          - const: link
> -      - const: link         # for NX1
> +  clock-names: true
>  
>    resets:
>      minItems: 1
>      maxItems: 2
>  
> -  reset-names:
> -    oneOf:
> -      - items:              # for Pro5
> -          - const: gio
> -          - const: link
> -      - const: link         # for NX1
> +  reset-names: true
>  
>    num-ib-windows:
>      const: 16
> @@ -78,6 +53,59 @@ properties:
>    phy-names:
>      const: pcie-phy
>  
> +allOf:
> +  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: socionext,uniphier-pro5-pcie-ep
> +    then:
> +      properties:
> +        reg:
> +          minItems: 4
> +          maxItems: 4
> +        reg-names:
> +          items:
> +            - const: dbi
> +            - const: dbi2
> +            - const: link
> +            - const: addr_space
> +        clocks:
> +          minItems: 2
> +          maxItems: 2
> +        clock-names:
> +          items:
> +            - const: gio
> +            - const: link
> +        resets:
> +          minItems: 2
> +          maxItems: 2
> +        reset-names:
> +          items:
> +            - const: gio
> +            - const: link
> +    else:
> +      properties:
> +        reg:
> +          minItems: 4
> +          maxItems: 5
> +        reg-names:
> +          items:
> +            - const: dbi
> +            - const: dbi2
> +            - const: link
> +            - const: addr_space
> +            - const: atu
> +        clocks:
> +          maxItems: 1
> +        clock-names:
> +          const: link
> +        resets:
> +          maxItems: 1
> +        reset-names:
> +          const: link
> +
>  required:
>    - compatible
>    - reg
> -- 
> 2.25.1
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ