162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/phy/microchip,lan966x-serdes.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Microchip Lan966x Serdes controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Horatiu Vultur <horatiu.vultur@microchip.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  Lan966x has 7 interfaces, consisting of 2 copper transceivers(CU),
1462306a36Sopenharmony_ci  3 SERDES6G and 2 RGMII interfaces. Two of the SERDES6G support QSGMII.
1562306a36Sopenharmony_ci  Also it has 8 logical Ethernet ports which can be connected to these
1662306a36Sopenharmony_ci  interfaces. The Serdes controller will allow to configure these interfaces
1762306a36Sopenharmony_ci  and allows to "mux" the interfaces to different ports.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci  For simple selection of the interface that is used with a port, the
2062306a36Sopenharmony_ci  following macros are defined CU(X), SERDES6G(X), RGMII(X). Where X is a
2162306a36Sopenharmony_ci  number that represents the index of that interface type. For example
2262306a36Sopenharmony_ci  CU(1) means use interface copper transceivers 1. SERDES6G(2) means use
2362306a36Sopenharmony_ci  interface SerDes 2.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciproperties:
2662306a36Sopenharmony_ci  $nodename:
2762306a36Sopenharmony_ci    pattern: "^serdes@[0-9a-f]+$"
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  compatible:
3062306a36Sopenharmony_ci    const: microchip,lan966x-serdes
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  reg:
3362306a36Sopenharmony_ci    items:
3462306a36Sopenharmony_ci      - description: HSIO registers
3562306a36Sopenharmony_ci      - description: HW_STAT register
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  '#phy-cells':
3862306a36Sopenharmony_ci    const: 2
3962306a36Sopenharmony_ci    description: |
4062306a36Sopenharmony_ci      - Input port to use for a given macro.
4162306a36Sopenharmony_ci      - The macro to be used. The macros are defined in
4262306a36Sopenharmony_ci        dt-bindings/phy/phy-lan966x-serdes.
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_cirequired:
4562306a36Sopenharmony_ci  - compatible
4662306a36Sopenharmony_ci  - reg
4762306a36Sopenharmony_ci  - '#phy-cells'
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciadditionalProperties: false
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciexamples:
5262306a36Sopenharmony_ci  - |
5362306a36Sopenharmony_ci    serdes: serdes@e2004010 {
5462306a36Sopenharmony_ci      compatible = "microchip,lan966x-serdes";
5562306a36Sopenharmony_ci      reg = <0xe202c000 0x9c>, <0xe2004010 0x4>;
5662306a36Sopenharmony_ci      #phy-cells = <2>;
5762306a36Sopenharmony_ci    };
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci...
60