# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/dsa/hirschmann,hellcreek.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Hirschmann Hellcreek TSN Switch

allOf:
  - $ref: dsa.yaml#/$defs/ethernet-ports

maintainers:
  - Andrew Lunn <andrew@lunn.ch>
  - Florian Fainelli <f.fainelli@gmail.com>
  - Vladimir Oltean <olteanv@gmail.com>
  - Kurt Kanzenbach <kurt@linutronix.de>

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:
    items:
      - const: hirschmann,hellcreek-de1soc-r1

  reg:
    description:
      The physical base address and size of TSN and PTP memory base
    minItems: 2
    maxItems: 2

  reg-names:
    items:
      - const: tsn
      - const: ptp

  leds:
    type: object
    properties:
      '#address-cells':
        const: 1
      '#size-cells':
        const: 0

    patternProperties:
      "^led@[01]$":
        type: object
        description: Hellcreek leds
        $ref: /schemas/leds/common.yaml#

        properties:
          reg:
            items:
              - enum: [0, 1]
            description: Led number

          label: true

          default-state: true

        required:
          - reg

        additionalProperties: false

    additionalProperties: false

required:
  - compatible
  - reg
  - reg-names
  - ethernet-ports
  - leds

unevaluatedProperties: false

examples:
  - |
        switch0: switch@ff240000 {
            compatible = "hirschmann,hellcreek-de1soc-r1";
            reg = <0xff240000 0x1000>,
                  <0xff250000 0x1000>;
            reg-names = "tsn", "ptp";
            dsa,member = <0 0>;

            ethernet-ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    reg = <0>;
                    ethernet = <&gmac0>;
                    phy-mode = "mii";

                    fixed-link {
                        speed = <100>;
                        full-duplex;
                    };
                };

                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";
                };
            };
        };
