132 lines
3.5 KiB
YAML
132 lines
3.5 KiB
YAML
# 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 = <ð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;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|