mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:38:03 +00:00
dt-bindings: dsa: Rewrite Vitesse VSC73xx in schema
This rewrites the Vitesse VSC73xx DSA switches DT binding in schema. It was a bit tricky since I needed to come up with some way of applying the SPI properties only on SPI devices and not platform devices, but I figured something out that works. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a6ba5125f1
commit
3374136f31
@ -1,129 +0,0 @@
|
||||
Vitesse VSC73xx Switches
|
||||
========================
|
||||
|
||||
This defines device tree bindings for the Vitesse VSC73xx switch chips.
|
||||
The Vitesse company has been acquired by Microsemi and Microsemi has
|
||||
been acquired Microchip but retains this vendor branding.
|
||||
|
||||
The currently supported switch chips are:
|
||||
Vitesse VSC7385 SparX-G5 5+1-port Integrated Gigabit Ethernet Switch
|
||||
Vitesse VSC7388 SparX-G8 8-port Integrated Gigabit Ethernet Switch
|
||||
Vitesse VSC7395 SparX-G5e 5+1-port Integrated Gigabit Ethernet Switch
|
||||
Vitesse VSC7398 SparX-G8e 8-port Integrated Gigabit Ethernet Switch
|
||||
|
||||
This switch could have two different management interface.
|
||||
|
||||
If SPI interface is used, the device tree node is an SPI device so it must
|
||||
reside inside a SPI bus device tree node, see spi/spi-bus.txt
|
||||
|
||||
When the chip is connected to a parallel memory bus and work in memory-mapped
|
||||
I/O mode, a platform device is used to represent the vsc73xx. In this case it
|
||||
must reside inside a platform bus device tree node.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: must be exactly one of:
|
||||
"vitesse,vsc7385"
|
||||
"vitesse,vsc7388"
|
||||
"vitesse,vsc7395"
|
||||
"vitesse,vsc7398"
|
||||
- gpio-controller: indicates that this switch is also a GPIO controller,
|
||||
see gpio/gpio.txt
|
||||
- #gpio-cells: this must be set to <2> and indicates that we are a twocell
|
||||
GPIO controller, see gpio/gpio.txt
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios: a handle to a GPIO line that can issue reset of the chip.
|
||||
It should be tagged as active low.
|
||||
|
||||
Required subnodes:
|
||||
|
||||
See net/dsa/dsa.txt for a list of additional required and optional properties
|
||||
and subnodes of DSA switches.
|
||||
|
||||
Examples:
|
||||
|
||||
SPI:
|
||||
switch@0 {
|
||||
compatible = "vitesse,vsc7395";
|
||||
reg = <0>;
|
||||
/* Specified for 2.5 MHz or below */
|
||||
spi-max-frequency = <2500000>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan1";
|
||||
};
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan2";
|
||||
};
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan3";
|
||||
};
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan4";
|
||||
};
|
||||
vsc: port@6 {
|
||||
reg = <6>;
|
||||
ethernet = <&gmac1>;
|
||||
phy-mode = "rgmii";
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Platform:
|
||||
switch@2,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "vitesse,vsc7385";
|
||||
reg = <0x2 0x0 0x20000>;
|
||||
reset-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan1";
|
||||
};
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan2";
|
||||
};
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan3";
|
||||
};
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan4";
|
||||
};
|
||||
vsc: port@6 {
|
||||
reg = <6>;
|
||||
ethernet = <&enet0>;
|
||||
phy-mode = "rgmii";
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
162
Documentation/devicetree/bindings/net/dsa/vitesse,vsc73xx.yaml
Normal file
162
Documentation/devicetree/bindings/net/dsa/vitesse,vsc73xx.yaml
Normal file
@ -0,0 +1,162 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/net/dsa/vitesse,vsc73xx.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Vitesse VSC73xx DSA Switches
|
||||
|
||||
maintainers:
|
||||
- Linus Walleij <linus.walleij@linaro.org>
|
||||
|
||||
description:
|
||||
The Vitesse DSA Switches were produced in the early-to-mid 2000s.
|
||||
|
||||
The Vitesse company has been acquired by Microsemi and Microsemi has
|
||||
been acquired Microchip but the new owner retains this vendor branding.
|
||||
|
||||
The currently supported switch chips are
|
||||
Vitesse VSC7385 SparX-G5 5+1-port Integrated Gigabit Ethernet Switch
|
||||
Vitesse VSC7388 SparX-G8 8-port Integrated Gigabit Ethernet Switch
|
||||
Vitesse VSC7395 SparX-G5e 5+1-port Integrated Gigabit Ethernet Switch
|
||||
Vitesse VSC7398 SparX-G8e 8-port Integrated Gigabit Ethernet Switch
|
||||
|
||||
This switch can use one of two different management interfaces.
|
||||
|
||||
If SPI interface is used, the device tree node is an SPI device so it must
|
||||
reside inside a SPI bus device tree node, see spi/spi-bus.txt
|
||||
|
||||
When the chip is connected to a parallel memory bus and work in memory-mapped
|
||||
I/O mode, a platform device is used to represent the vsc73xx. In this case it
|
||||
must reside inside a platform bus device tree node.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- vitesse,vsc7385
|
||||
- vitesse,vsc7388
|
||||
- vitesse,vsc7395
|
||||
- vitesse,vsc7398
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
gpio-controller: true
|
||||
"#gpio-cells":
|
||||
const: 2
|
||||
|
||||
reset-gpios:
|
||||
description: GPIO to be used to reset the whole device
|
||||
maxItems: 1
|
||||
|
||||
allOf:
|
||||
- $ref: dsa.yaml#/$defs/ethernet-ports
|
||||
|
||||
# This checks if reg is a chipselect so the device is on an SPI
|
||||
# bus, the if-clause will fail if reg is a tuple such as for a
|
||||
# platform device.
|
||||
if:
|
||||
properties:
|
||||
reg:
|
||||
minimum: 0
|
||||
maximum: 256
|
||||
then:
|
||||
$ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ethernet-switch@0 {
|
||||
compatible = "vitesse,vsc7395";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <2500000>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
ethernet-ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ethernet-port@0 {
|
||||
reg = <0>;
|
||||
label = "lan1";
|
||||
};
|
||||
ethernet-port@1 {
|
||||
reg = <1>;
|
||||
label = "lan2";
|
||||
};
|
||||
ethernet-port@2 {
|
||||
reg = <2>;
|
||||
label = "lan3";
|
||||
};
|
||||
ethernet-port@3 {
|
||||
reg = <3>;
|
||||
label = "lan4";
|
||||
};
|
||||
ethernet-port@6 {
|
||||
reg = <6>;
|
||||
ethernet = <&gmac1>;
|
||||
phy-mode = "rgmii";
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
bus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
ethernet-switch@10000000 {
|
||||
compatible = "vitesse,vsc7385";
|
||||
reg = <0x10000000 0x20000>;
|
||||
reset-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
|
||||
|
||||
ethernet-ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ethernet-port@0 {
|
||||
reg = <0>;
|
||||
label = "lan1";
|
||||
};
|
||||
ethernet-port@1 {
|
||||
reg = <1>;
|
||||
label = "lan2";
|
||||
};
|
||||
ethernet-port@2 {
|
||||
reg = <2>;
|
||||
label = "lan3";
|
||||
};
|
||||
ethernet-port@3 {
|
||||
reg = <3>;
|
||||
label = "lan4";
|
||||
};
|
||||
ethernet-port@6 {
|
||||
reg = <6>;
|
||||
ethernet = <&enet0>;
|
||||
phy-mode = "rgmii";
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
Loading…
Reference in New Issue
Block a user