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/mscc,vsc7514-serdes.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Microsemi Ocelot SerDes muxing 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Alexandre Belloni <alexandre.belloni@bootlin.com> 1162306a36Sopenharmony_ci - UNGLinuxDriver@microchip.com 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cidescription: | 1462306a36Sopenharmony_ci On Microsemi Ocelot, there is a handful of registers in HSIO address 1562306a36Sopenharmony_ci space for setting up the SerDes to switch port muxing. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci A SerDes X can be "muxed" to work with switch port Y or Z for example. 1862306a36Sopenharmony_ci One specific SerDes can also be used as a PCIe interface. 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci Hence, a SerDes represents an interface, be it an Ethernet or a PCIe one. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci There are two kinds of SerDes: SERDES1G supports 10/100Mbps in 2362306a36Sopenharmony_ci half/full-duplex and 1000Mbps in full-duplex mode while SERDES6G supports 2462306a36Sopenharmony_ci 10/100Mbps in half/full-duplex and 1000/2500Mbps in full-duplex mode. 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci Also, SERDES6G number (aka "macro") 0 is the only interface supporting 2762306a36Sopenharmony_ci QSGMII. 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci This is a child of the HSIO syscon ("mscc,ocelot-hsio", see 3062306a36Sopenharmony_ci Documentation/devicetree/bindings/mips/mscc.txt) on the Microsemi Ocelot. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciproperties: 3362306a36Sopenharmony_ci compatible: 3462306a36Sopenharmony_ci enum: 3562306a36Sopenharmony_ci - mscc,vsc7514-serdes 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci "#phy-cells": 3862306a36Sopenharmony_ci const: 2 3962306a36Sopenharmony_ci description: | 4062306a36Sopenharmony_ci The first number defines the input port to use for a given SerDes macro. 4162306a36Sopenharmony_ci The second defines the macro to use. They are defined in 4262306a36Sopenharmony_ci dt-bindings/phy/phy-ocelot-serdes.h 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_cirequired: 4562306a36Sopenharmony_ci - compatible 4662306a36Sopenharmony_ci - "#phy-cells" 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ciadditionalProperties: 4962306a36Sopenharmony_ci false 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ciexamples: 5262306a36Sopenharmony_ci - | 5362306a36Sopenharmony_ci serdes: serdes { 5462306a36Sopenharmony_ci compatible = "mscc,vsc7514-serdes"; 5562306a36Sopenharmony_ci #phy-cells = <2>; 5662306a36Sopenharmony_ci }; 57