Subject: Re: [PATCH v2 net-next 6/6] dt-bindings: net: mscc,vsc7514-switch: utilize generic ethernet-switch.yaml

From: Rob Herring <[email-masked]>
Date: Fri, 4 Nov 2022 13:28:55 -0500

On Thu, Nov 03, 2022 at 09:52:04PM -0700, Colin Foster wrote:
> Several bindings for ethernet switches are available for non-dsa switches
> by way of ethernet-switch.yaml. Remove these duplicate entries and utilize
> the common bindings for the VSC7514.
> 
> Signed-off-by: Colin Foster <[email-masked]>
> Suggested-by: Vladimir Oltean <[email-masked]>
> ---
> 
> v1 -> v2:
>   * Fix "$ref: ethernet-switch.yaml" placement. Oops.
>   * Add "unevaluatedProperties: true" to ethernet-ports layer so it
>     can correctly read into ethernet-switch.yaml
>   * Add "unevaluatedProperties: true" to ethernet-port layer so it can
>     correctly read into ethernet-controller.yaml
> 
> ---
>  .../bindings/net/mscc,vsc7514-switch.yaml     | 40 ++-----------------
>  1 file changed, 4 insertions(+), 36 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml b/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml
> index ee0a504bdb24..3f3f9fd548cf 100644
> --- a/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml
> +++ b/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml
> @@ -18,10 +18,9 @@ description: |
>    packets using CPU. Additionally, PTP is supported as well as FDMA for faster
>    packet extraction/injection.
>  
> -properties:
> -  $nodename:
> -    pattern: "^switch@[0-9a-f]+$"
> +$ref: ethernet-switch.yaml#
>  
> +properties:
>    compatible:
>      const: mscc,vsc7514-switch
>  
> @@ -88,46 +87,15 @@ properties:
>        - const: fdma
>  
>    ethernet-ports:
> -    type: object
> -
> -    properties:
> -      '#address-cells':
> -        const: 1
> -      '#size-cells':
> -        const: 0
>  
> -    additionalProperties: false
> +    unevaluatedProperties: true

Both this and ethernet-switch.yaml allow unevaluated properties. 
Therefore any extra properties will be allowed. Add some to your example 
and see.

>  
>      patternProperties:
>        "^port@[0-9a-f]+$":
> -        type: object
> -        description: Ethernet ports handled by the switch
>  
>          $ref: ethernet-controller.yaml#
>  
> -        unevaluatedProperties: false
> -
> -        properties:
> -          reg:
> -            description: Switch port number
> -
> -          phy-handle: true
> -
> -          phy-mode: true
> -
> -          fixed-link: true
> -
> -          mac-address: true
> -
> -        required:
> -          - reg
> -          - phy-mode
> -
> -        oneOf:
> -          - required:
> -              - phy-handle
> -          - required:
> -              - fixed-link
> +        unevaluatedProperties: true

Same problem here. I'll comment more about this on 
ethernet-switch-port.yaml.

Rob