xref: /linux/Documentation/devicetree/bindings/phy/microchip,lan966x-serdes.yaml (revision 03ab8e6297acd1bc0eedaa050e2a1635c576fd11)
1*fd66e57eSHoratiu Vultur# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*fd66e57eSHoratiu Vultur%YAML 1.2
3*fd66e57eSHoratiu Vultur---
4*fd66e57eSHoratiu Vultur$id: http://devicetree.org/schemas/phy/microchip,lan966x-serdes.yaml#
5*fd66e57eSHoratiu Vultur$schema: http://devicetree.org/meta-schemas/core.yaml#
6*fd66e57eSHoratiu Vultur
7*fd66e57eSHoratiu Vulturtitle: Microchip Lan966x Serdes controller
8*fd66e57eSHoratiu Vultur
9*fd66e57eSHoratiu Vulturmaintainers:
10*fd66e57eSHoratiu Vultur  - Horatiu Vultur <horatiu.vultur@microchip.com>
11*fd66e57eSHoratiu Vultur
12*fd66e57eSHoratiu Vulturdescription: |
13*fd66e57eSHoratiu Vultur  Lan966x has 7 interfaces, consisting of 2 copper transceivers(CU),
14*fd66e57eSHoratiu Vultur  3 SERDES6G and 2 RGMII interfaces. Two of the SERDES6G support QSGMII.
15*fd66e57eSHoratiu Vultur  Also it has 8 logical Ethernet ports which can be connected to these
16*fd66e57eSHoratiu Vultur  interfaces. The Serdes controller will allow to configure these interfaces
17*fd66e57eSHoratiu Vultur  and allows to "mux" the interfaces to different ports.
18*fd66e57eSHoratiu Vultur
19*fd66e57eSHoratiu Vultur  For simple selection of the interface that is used with a port, the
20*fd66e57eSHoratiu Vultur  following macros are defined CU(X), SERDES6G(X), RGMII(X). Where X is a
21*fd66e57eSHoratiu Vultur  number that represents the index of that interface type. For example
22*fd66e57eSHoratiu Vultur  CU(1) means use interface copper transceivers 1. SERDES6G(2) means use
23*fd66e57eSHoratiu Vultur  interface SerDes 2.
24*fd66e57eSHoratiu Vultur
25*fd66e57eSHoratiu Vulturproperties:
26*fd66e57eSHoratiu Vultur  $nodename:
27*fd66e57eSHoratiu Vultur    pattern: "^serdes@[0-9a-f]+$"
28*fd66e57eSHoratiu Vultur
29*fd66e57eSHoratiu Vultur  compatible:
30*fd66e57eSHoratiu Vultur    const: microchip,lan966x-serdes
31*fd66e57eSHoratiu Vultur
32*fd66e57eSHoratiu Vultur  reg:
33*fd66e57eSHoratiu Vultur    items:
34*fd66e57eSHoratiu Vultur      - description: HSIO registers
35*fd66e57eSHoratiu Vultur      - description: HW_STAT register
36*fd66e57eSHoratiu Vultur
37*fd66e57eSHoratiu Vultur  '#phy-cells':
38*fd66e57eSHoratiu Vultur    const: 2
39*fd66e57eSHoratiu Vultur    description: |
40*fd66e57eSHoratiu Vultur      - Input port to use for a given macro.
41*fd66e57eSHoratiu Vultur      - The macro to be used. The macros are defined in
42*fd66e57eSHoratiu Vultur        dt-bindings/phy/phy-lan966x-serdes.
43*fd66e57eSHoratiu Vultur
44*fd66e57eSHoratiu Vulturrequired:
45*fd66e57eSHoratiu Vultur  - compatible
46*fd66e57eSHoratiu Vultur  - reg
47*fd66e57eSHoratiu Vultur  - '#phy-cells'
48*fd66e57eSHoratiu Vultur
49*fd66e57eSHoratiu VulturadditionalProperties: false
50*fd66e57eSHoratiu Vultur
51*fd66e57eSHoratiu Vulturexamples:
52*fd66e57eSHoratiu Vultur  - |
53*fd66e57eSHoratiu Vultur    serdes: serdes@e2004010 {
54*fd66e57eSHoratiu Vultur      compatible = "microchip,lan966x-serdes";
55*fd66e57eSHoratiu Vultur      reg = <0xe202c000 0x9c>, <0xe2004010 0x4>;
56*fd66e57eSHoratiu Vultur      #phy-cells = <2>;
57*fd66e57eSHoratiu Vultur    };
58*fd66e57eSHoratiu Vultur
59*fd66e57eSHoratiu Vultur...
60