# 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 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 = <ðphy0>; phy-mode = "mii"; }; ethernet-port@1 { reg = <1>; phy-handle = <ðphy1>; phy-mode = "mii"; }; ethernet-port@2 { reg = <2>; clocks = <&scmi_clk 103>; clock-names = "ref"; phy-handle = <ðphy2>; phy-mode = "rgmii-id"; }; ethernet-port@3 { reg = <3>; ethernet = <&enetc3>; phy-mode = "internal"; fixed-link { speed = <2500>; full-duplex; pause; }; }; }; }; };