xref: /linux/Documentation/devicetree/bindings/phy/mscc,vsc7514-serdes.yaml (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1*a525f380SColin Foster# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*a525f380SColin Foster%YAML 1.2
3*a525f380SColin Foster---
4*a525f380SColin Foster$id: http://devicetree.org/schemas/phy/mscc,vsc7514-serdes.yaml#
5*a525f380SColin Foster$schema: http://devicetree.org/meta-schemas/core.yaml#
6*a525f380SColin Foster
7*a525f380SColin Fostertitle: Microsemi Ocelot SerDes muxing
8*a525f380SColin Foster
9*a525f380SColin Fostermaintainers:
10*a525f380SColin Foster  - Alexandre Belloni <alexandre.belloni@bootlin.com>
11*a525f380SColin Foster  - UNGLinuxDriver@microchip.com
12*a525f380SColin Foster
13*a525f380SColin Fosterdescription: |
14*a525f380SColin Foster  On Microsemi Ocelot, there is a handful of registers in HSIO address
15*a525f380SColin Foster  space for setting up the SerDes to switch port muxing.
16*a525f380SColin Foster
17*a525f380SColin Foster  A SerDes X can be "muxed" to work with switch port Y or Z for example.
18*a525f380SColin Foster  One specific SerDes can also be used as a PCIe interface.
19*a525f380SColin Foster
20*a525f380SColin Foster  Hence, a SerDes represents an interface, be it an Ethernet or a PCIe one.
21*a525f380SColin Foster
22*a525f380SColin Foster  There are two kinds of SerDes: SERDES1G supports 10/100Mbps in
23*a525f380SColin Foster  half/full-duplex and 1000Mbps in full-duplex mode while SERDES6G supports
24*a525f380SColin Foster  10/100Mbps in half/full-duplex and 1000/2500Mbps in full-duplex mode.
25*a525f380SColin Foster
26*a525f380SColin Foster  Also, SERDES6G number (aka "macro") 0 is the only interface supporting
27*a525f380SColin Foster  QSGMII.
28*a525f380SColin Foster
29*a525f380SColin Foster  This is a child of the HSIO syscon ("mscc,ocelot-hsio", see
30*a525f380SColin Foster  Documentation/devicetree/bindings/mips/mscc.txt) on the Microsemi Ocelot.
31*a525f380SColin Foster
32*a525f380SColin Fosterproperties:
33*a525f380SColin Foster  compatible:
34*a525f380SColin Foster    enum:
35*a525f380SColin Foster      - mscc,vsc7514-serdes
36*a525f380SColin Foster
37*a525f380SColin Foster  "#phy-cells":
38*a525f380SColin Foster    const: 2
39*a525f380SColin Foster    description: |
40*a525f380SColin Foster      The first number defines the input port to use for a given SerDes macro.
41*a525f380SColin Foster      The second defines the macro to use. They are defined in
42*a525f380SColin Foster      dt-bindings/phy/phy-ocelot-serdes.h
43*a525f380SColin Foster
44*a525f380SColin Fosterrequired:
45*a525f380SColin Foster  - compatible
46*a525f380SColin Foster  - "#phy-cells"
47*a525f380SColin Foster
48*a525f380SColin FosteradditionalProperties:
49*a525f380SColin Foster  false
50*a525f380SColin Foster
51*a525f380SColin Fosterexamples:
52*a525f380SColin Foster  - |
53*a525f380SColin Foster    serdes: serdes {
54*a525f380SColin Foster      compatible = "mscc,vsc7514-serdes";
55*a525f380SColin Foster      #phy-cells = <2>;
56*a525f380SColin Foster    };
57