Documentation / devicetree / bindings / net / dsa / nxp,netc-switch.yaml


Based on kernel version 7.2. Page generated on 2026-08-20 08:41 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/dsa/nxp,netc-switch.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NETC Switch family

description: >
  The NETC presents itself as a multi-function PCIe Root Complex Integrated
  Endpoint (RCiEP) and provides full 802.1Q Ethernet switch functionality,
  advanced QoS with 8 traffic classes and 4 drop resilience levels, and a
  full range of TSN standards capabilities.
 
  The CPU port of the switch connects to an internal ENETC. The switch and
  the internal ENETC are fully integrated into the NETC IP, a back-to-back
  MAC is not required. Instead, a light-weight "pseudo MAC" provides the
  delineation between the switch and ENETC. This translates to lower power
  (less logic and memory) and lower delay (as there is no serialization
  delay across this link).

maintainers:
  - Wei Fang <wei.fang@nxp.com>

properties:
  compatible:
    enum:
      - pci1131,eef2

  reg:
    maxItems: 1

  dsa,member:
    description: >
      The property indicates DSA cluster and switch index. For NETC switch,
      the valid range of the switch index is 1 ~ 7, the index is reflected
      in the switch tag as an indication of the switch ID where the frame
      originated. The value 0 is reserved for ENETC VEPA switch, whose ID
      is hardwired to zero.
    items:
      - true
      - minimum: 1
        maximum: 7

  ethernet-ports:
    type: object
    patternProperties:
      "^ethernet-port@[0-9a-f]$":
        type: object
        $ref: dsa-port.yaml#

        properties:
          clocks:
            items:
              - description: MAC transmit/receive reference clock.

          clock-names:
            items:
              - const: ref

          mdio:
            $ref: /schemas/net/mdio.yaml#
            unevaluatedProperties: false
            description:
              Optional child node for switch port, otherwise use NETC EMDIO.

        unevaluatedProperties: false

required:
  - compatible
  - reg
  - dsa,member
  - ethernet-ports

allOf:
  - $ref: /schemas/pci/pci-device.yaml
  - $ref: dsa.yaml#

unevaluatedProperties: false

examples:
  - |
    pcie {
        #address-cells = <3>;
        #size-cells = <2>;
 
        ethernet-switch@0,2 {
            compatible = "pci1131,eef2";
            reg = <0x200 0 0 0 0>;
            dsa,member = <0 1>;
            pinctrl-names = "default";
            pinctrl-0 = <&pinctrl_switch>;
 
            ethernet-ports {
                #address-cells = <1>;
                #size-cells = <0>;
 
                ethernet-port@0 {
                    reg = <0>;
                    phy-handle = <&ethphy0>;
                    phy-mode = "mii";
                };
 
                ethernet-port@1 {
                    reg = <1>;
                    phy-handle = <&ethphy1>;
                    phy-mode = "mii";
                };
 
                ethernet-port@2 {
                    reg = <2>;
                    clocks = <&scmi_clk 103>;
                    clock-names = "ref";
                    phy-handle = <&ethphy2>;
                    phy-mode = "rgmii-id";
                };
 
                ethernet-port@3 {
                    reg = <3>;
                    ethernet = <&enetc3>;
                    phy-mode = "internal";
 
                    fixed-link {
                        speed = <2500>;
                        full-duplex;
                        pause;
                    };
                };
            };
        };
    };