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