Re: [PATCH v2 8/8] dt-bindings: net: dsa: Add documentation for Hellcreek switches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 23, 2020 at 10:17:14AM +0200, Kurt Kanzenbach wrote:
> Add basic documentation and example.
> 
> Signed-off-by: Kurt Kanzenbach <kurt@xxxxxxxxxxxxx>
> ---
>  .../bindings/net/dsa/hellcreek.yaml           | 126 ++++++++++++++++++
>  1 file changed, 126 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/net/dsa/hellcreek.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/dsa/hellcreek.yaml b/Documentation/devicetree/bindings/net/dsa/hellcreek.yaml
> new file mode 100644
> index 000000000000..1b192ba7f4ca
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/dsa/hellcreek.yaml
> @@ -0,0 +1,126 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/dsa/hellcreek.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Hirschmann Hellcreek TSN Switch Device Tree Bindings
> +
> +allOf:
> +  - $ref: dsa.yaml#
> +
> +maintainers:
> +  - Andrew Lunn <andrew@xxxxxxx>
> +  - Florian Fainelli <f.fainelli@xxxxxxxxx>
> +  - Vivien Didelot <vivien.didelot@xxxxxxxxx>
> +  - Kurt Kanzenbach <kurt@xxxxxxxxxxxxx>
> +
> +description:
> +  The Hellcreek TSN Switch IP is a 802.1Q Ethernet compliant switch. It supports
> +  the Precision Time Protocol, Hardware Timestamping as well the Time Aware
> +  Shaper.
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - const: hirschmann,hellcreek

Don't need 'oneOf' for 1 entry.

> +
> +  reg:
> +    description:
> +      The physical base address and size of TSN and PTP memory base
> +    minItems: 2
> +    maxItems: 2
> +
> +  reg-names:
> +    description:
> +      Names of the physical base addresses

No need for generic descriptions. That's all 'reg-names'...

> +    minItems: 2
> +    maxItems: 2
> +    items:
> +      enum: ["reg", "ptp"]

Why not 'tsn' as above instead of reg? In any case, the correct form is:

items:
  - const: reg
  - const: ptp

> +
> +  leds:
> +    type: object
> +    properties:
> +      '#address-cells':
> +        const: 1
> +      '#size-cells':
> +        const: 0
> +
> +    patternProperties:
> +      "^led@[0-9]+$":
> +          type: object
> +          description: Hellcreek leds

This should reference leds/common.yaml

> +
> +          properties:
> +            reg:
> +              items:
> +                - enum: [0, 1]
> +              description: Led number
> +
> +            label: true
> +
> +            default-state: true
> +
> +          required:
> +            - reg
> +
> +          additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - reg-names
> +  - ports

Use the preferred 'ethernet-ports'.

> +  - leds

Add:

unevaluatedProperties: false

> +
> +examples:
> +  - |
> +        switch0: switch@ff240000 {
> +            compatible = "hirschmann,hellcreek";
> +            status = "okay";

Don't show status in examples.

> +            reg = <0xff240000 0x1000>,
> +                  <0xff250000 0x1000>;
> +            reg-names = "reg", "ptp";
> +            dsa,member = <0 0>;
> +
> +            ports {
> +                #address-cells = <1>;
> +                #size-cells = <0>;
> +
> +                port@0 {
> +                    reg = <0>;
> +                    label = "cpu";
> +                    ethernet = <&gmac0>;
> +                };
> +
> +                port@2 {
> +                    reg = <2>;
> +                    label = "lan0";
> +                    phy-handle = <&phy1>;
> +                };
> +
> +                port@3 {
> +                    reg = <3>;
> +                    label = "lan1";
> +                    phy-handle = <&phy2>;
> +                };
> +            };
> +
> +            leds {
> +                #address-cells = <1>;
> +                #size-cells = <0>;
> +
> +                led@0 {
> +                    reg = <0>;
> +                    label = "sync_good";
> +                    default-state = "on";
> +                };
> +
> +                led@1 {
> +                    reg = <1>;
> +                    label = "is_gm";
> +                    default-state = "off";
> +                };
> +            };
> +        };
> -- 
> 2.20.1
> 



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux