2022-03-04 11:32:25 +01:00
# 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.
2023-01-27 11:35:56 -08:00
allOf :
- if :
properties :
compatible :
const : mscc,vsc7514-switch
then :
$ref : ethernet-switch.yaml#
required :
- interrupts
- interrupt-names
properties :
reg :
minItems : 21
reg-names :
minItems : 21
ethernet-ports :
patternProperties :
"^port@[0-9a-f]+$" :
$ref : ethernet-switch-port.yaml#
unevaluatedProperties : false
- if :
properties :
compatible :
const : mscc,vsc7512-switch
then :
$ref : /schemas/net/dsa/dsa.yaml#
properties :
reg :
maxItems : 20
reg-names :
maxItems : 20
ethernet-ports :
patternProperties :
"^port@[0-9a-f]+$" :
$ref : /schemas/net/dsa/dsa-port.yaml#
unevaluatedProperties : false
2022-03-04 11:32:25 +01:00
2023-01-12 07:56:13 -10:00
properties :
2022-03-04 11:32:25 +01:00
compatible :
2023-01-27 11:35:56 -08:00
enum :
- mscc,vsc7512-switch
- mscc,vsc7514-switch
2022-03-04 11:32:25 +01:00
reg :
2023-01-27 11:35:56 -08:00
minItems : 20
2022-03-04 11:32:25 +01:00
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 :
2023-01-27 11:35:56 -08:00
minItems : 20
2022-03-04 11:32:25 +01:00
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
required :
- compatible
- reg
- reg-names
- ethernet-ports
2023-01-27 11:35:56 -08:00
unevaluatedProperties : false
2022-03-04 11:32:25 +01:00
examples :
2023-01-27 11:35:56 -08:00
# VSC7514 (Switchdev)
2022-03-04 11:32:25 +01:00
- |
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";
};
};
};
2023-01-27 11:35:56 -08:00
# VSC7512 (DSA)
- |
ethernet-switch@1{
compatible = "mscc,vsc7512-switch";
reg = <0x71010000 0x10000>,
<0x71030000 0x10000>,
<0x71080000 0x100>,
<0x710e0000 0x10000>,
<0x711e0000 0x100>,
<0x711f0000 0x100>,
<0x71200000 0x100>,
<0x71210000 0x100>,
<0x71220000 0x100>,
<0x71230000 0x100>,
<0x71240000 0x100>,
<0x71250000 0x100>,
<0x71260000 0x100>,
<0x71270000 0x100>,
<0x71280000 0x100>,
<0x71800000 0x80000>,
<0x71880000 0x10000>,
<0x71040000 0x10000>,
<0x71050000 0x10000>,
<0x71060000 0x10000>;
reg-names = "sys", "rew", "qs", "ptp", "port0", "port1",
"port2" , "port3" , "port4" , "port5" , "port6" ,
"port7" , "port8" , "port9" , "port10" , "qsys" ,
"ana" , "s0" , "s1" , "s2" ;
ethernet-ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ethernet = <&mac_sw>;
phy-handle = <&phy0>;
phy-mode = "internal";
};
port@1 {
reg = <1>;
phy-handle = <&phy1>;
phy-mode = "internal";
};
};
};
2022-03-04 11:32:25 +01:00
...