mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 13:51:44 +00:00
687e3d5550
As of_get_mac_address now supports NVMEM under the hood, we need to update the bindings documentation with the new nvmem-cell* properties, which would mean copy&pasting a lot of redundant information to every binding documentation currently referencing some of the MAC address properties. So I've just removed all the references to the optional MAC address properties and replaced them with the small note referencing net/ethernet.txt file. Signed-off-by: Petr Štetiar <ynezz@true.cz> Signed-off-by: David S. Miller <davem@davemloft.net>
258 lines
5.1 KiB
Plaintext
258 lines
5.1 KiB
Plaintext
Distributed Switch Architecture Device Tree Bindings
|
|
----------------------------------------------------
|
|
|
|
Switches are true Linux devices and can be probed by any means. Once
|
|
probed, they register to the DSA framework, passing a node
|
|
pointer. This node is expected to fulfil the following binding, and
|
|
may contain additional properties as required by the device it is
|
|
embedded within.
|
|
|
|
Required properties:
|
|
|
|
- ports : A container for child nodes representing switch ports.
|
|
|
|
Optional properties:
|
|
|
|
- dsa,member : A two element list indicates which DSA cluster, and position
|
|
within the cluster a switch takes. <0 0> is cluster 0,
|
|
switch 0. <0 1> is cluster 0, switch 1. <1 0> is cluster 1,
|
|
switch 0. A switch not part of any cluster (single device
|
|
hanging off a CPU port) must not specify this property
|
|
|
|
The ports container has the following properties
|
|
|
|
Required properties:
|
|
|
|
- #address-cells : Must be 1
|
|
- #size-cells : Must be 0
|
|
|
|
Each port children node must have the following mandatory properties:
|
|
- reg : Describes the port address in the switch
|
|
|
|
An uplink/downlink port between switches in the cluster has the following
|
|
mandatory property:
|
|
|
|
- link : Should be a list of phandles to other switch's DSA
|
|
port. This port is used as the outgoing port
|
|
towards the phandle ports. The full routing
|
|
information must be given, not just the one hop
|
|
routes to neighbouring switches.
|
|
|
|
A CPU port has the following mandatory property:
|
|
|
|
- ethernet : Should be a phandle to a valid Ethernet device node.
|
|
This host device is what the switch port is
|
|
connected to.
|
|
|
|
A user port has the following optional property:
|
|
|
|
- label : Describes the label associated with this port, which
|
|
will become the netdev name.
|
|
|
|
Port child nodes may also contain the following optional standardised
|
|
properties, described in binding documents:
|
|
|
|
- phy-handle : Phandle to a PHY on an MDIO bus. See
|
|
Documentation/devicetree/bindings/net/ethernet.txt
|
|
for details.
|
|
|
|
- phy-mode : See
|
|
Documentation/devicetree/bindings/net/ethernet.txt
|
|
for details.
|
|
|
|
- fixed-link : Fixed-link subnode describing a link to a non-MDIO
|
|
managed entity. See
|
|
Documentation/devicetree/bindings/net/fixed-link.txt
|
|
for details.
|
|
|
|
The MAC address will be determined using the optional properties
|
|
defined in ethernet.txt.
|
|
|
|
Example
|
|
|
|
The following example shows three switches on three MDIO busses,
|
|
linked into one DSA cluster.
|
|
|
|
&mdio1 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
switch0: switch0@0 {
|
|
compatible = "marvell,mv88e6085";
|
|
reg = <0>;
|
|
|
|
dsa,member = <0 0>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
port@0 {
|
|
reg = <0>;
|
|
label = "lan0";
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
label = "lan1";
|
|
local-mac-address = [00 00 00 00 00 00];
|
|
};
|
|
|
|
port@2 {
|
|
reg = <2>;
|
|
label = "lan2";
|
|
};
|
|
|
|
switch0port5: port@5 {
|
|
reg = <5>;
|
|
phy-mode = "rgmii-txid";
|
|
link = <&switch1port6
|
|
&switch2port9>;
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
|
|
port@6 {
|
|
reg = <6>;
|
|
ethernet = <&fec1>;
|
|
fixed-link {
|
|
speed = <100>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&mdio2 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
switch1: switch1@0 {
|
|
compatible = "marvell,mv88e6085";
|
|
reg = <0>;
|
|
|
|
dsa,member = <0 1>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
port@0 {
|
|
reg = <0>;
|
|
label = "lan3";
|
|
phy-handle = <&switch1phy0>;
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
label = "lan4";
|
|
phy-handle = <&switch1phy1>;
|
|
};
|
|
|
|
port@2 {
|
|
reg = <2>;
|
|
label = "lan5";
|
|
phy-handle = <&switch1phy2>;
|
|
};
|
|
|
|
switch1port5: port@5 {
|
|
reg = <5>;
|
|
link = <&switch2port9>;
|
|
phy-mode = "rgmii-txid";
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
|
|
switch1port6: port@6 {
|
|
reg = <6>;
|
|
phy-mode = "rgmii-txid";
|
|
link = <&switch0port5>;
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
};
|
|
mdio-bus {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
switch1phy0: switch1phy0@0 {
|
|
reg = <0>;
|
|
};
|
|
switch1phy1: switch1phy0@1 {
|
|
reg = <1>;
|
|
};
|
|
switch1phy2: switch1phy0@2 {
|
|
reg = <2>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&mdio4 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
switch2: switch2@0 {
|
|
compatible = "marvell,mv88e6085";
|
|
reg = <0>;
|
|
|
|
dsa,member = <0 2>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
port@0 {
|
|
reg = <0>;
|
|
label = "lan6";
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
label = "lan7";
|
|
};
|
|
|
|
port@2 {
|
|
reg = <2>;
|
|
label = "lan8";
|
|
};
|
|
|
|
port@3 {
|
|
reg = <3>;
|
|
label = "optical3";
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
link-gpios = <&gpio6 2
|
|
GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
|
|
port@4 {
|
|
reg = <4>;
|
|
label = "optical4";
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
link-gpios = <&gpio6 3
|
|
GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
|
|
switch2port9: port@9 {
|
|
reg = <9>;
|
|
phy-mode = "rgmii-txid";
|
|
link = <&switch1port5
|
|
&switch0port5>;
|
|
fixed-link {
|
|
speed = <1000>;
|
|
full-duplex;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|