blob: ee0a504bdb247e2161dc4e33236d74a588b32e49 [file] [log] [blame]
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/mscc,vsc7514-switch.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip VSC7514 Ethernet switch controller
maintainers:
- Vladimir Oltean <vladimir.oltean@nxp.com>
- Claudiu Manoil <claudiu.manoil@nxp.com>
- Alexandre Belloni <alexandre.belloni@bootlin.com>
description: |
Bindings for the Microchip VSC7514 switch driver
The VSC7514 switch driver handles up to 11 ports and can inject/extract
packets using CPU. Additionally, PTP is supported as well as FDMA for faster
packet extraction/injection.
properties:
$nodename:
pattern: "^switch@[0-9a-f]+$"
compatible:
const: mscc,vsc7514-switch
reg:
items:
- description: system target
- description: rewriter target
- description: qs target
- description: PTP target
- description: Port0 target
- description: Port1 target
- description: Port2 target
- description: Port3 target
- description: Port4 target
- description: Port5 target
- description: Port6 target
- description: Port7 target
- description: Port8 target
- description: Port9 target
- description: Port10 target
- description: QSystem target
- description: Analyzer target
- description: S0 target
- description: S1 target
- description: S2 target
- description: fdma target
reg-names:
items:
- const: sys
- const: rew
- const: qs
- const: ptp
- const: port0
- const: port1
- const: port2
- const: port3
- const: port4
- const: port5
- const: port6
- const: port7
- const: port8
- const: port9
- const: port10
- const: qsys
- const: ana
- const: s0
- const: s1
- const: s2
- const: fdma
interrupts:
minItems: 1
items:
- description: PTP ready
- description: register based extraction
- description: frame dma based extraction
interrupt-names:
minItems: 1
items:
- const: ptp_rdy
- const: xtr
- const: fdma
ethernet-ports:
type: object
properties:
'#address-cells':
const: 1
'#size-cells':
const: 0
additionalProperties: false
patternProperties:
"^port@[0-9a-f]+$":
type: object
description: Ethernet ports handled by the switch
$ref: ethernet-controller.yaml#
unevaluatedProperties: false
properties:
reg:
description: Switch port number
phy-handle: true
phy-mode: true
fixed-link: true
mac-address: true
required:
- reg
- phy-mode
oneOf:
- required:
- phy-handle
- required:
- fixed-link
required:
- compatible
- reg
- reg-names
- interrupts
- interrupt-names
- ethernet-ports
additionalProperties: false
examples:
- |
switch@1010000 {
compatible = "mscc,vsc7514-switch";
reg = <0x1010000 0x10000>,
<0x1030000 0x10000>,
<0x1080000 0x100>,
<0x10e0000 0x10000>,
<0x11e0000 0x100>,
<0x11f0000 0x100>,
<0x1200000 0x100>,
<0x1210000 0x100>,
<0x1220000 0x100>,
<0x1230000 0x100>,
<0x1240000 0x100>,
<0x1250000 0x100>,
<0x1260000 0x100>,
<0x1270000 0x100>,
<0x1280000 0x100>,
<0x1800000 0x80000>,
<0x1880000 0x10000>,
<0x1040000 0x10000>,
<0x1050000 0x10000>,
<0x1060000 0x10000>,
<0x1a0 0x1c4>;
reg-names = "sys", "rew", "qs", "ptp", "port0", "port1",
"port2", "port3", "port4", "port5", "port6",
"port7", "port8", "port9", "port10", "qsys",
"ana", "s0", "s1", "s2", "fdma";
interrupts = <18 21 16>;
interrupt-names = "ptp_rdy", "xtr", "fdma";
ethernet-ports {
#address-cells = <1>;
#size-cells = <0>;
port0: port@0 {
reg = <0>;
phy-handle = <&phy0>;
phy-mode = "internal";
};
port1: port@1 {
reg = <1>;
phy-handle = <&phy1>;
phy-mode = "internal";
};
};
};
...