1*833e5d42SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*833e5d42SEmmanuel Vadot%YAML 1.2 3*833e5d42SEmmanuel Vadot--- 4*833e5d42SEmmanuel Vadot$id: http://devicetree.org/schemas/phy/marvell,comphy-cp110.yaml# 5*833e5d42SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*833e5d42SEmmanuel Vadot 7*833e5d42SEmmanuel Vadottitle: Marvell MVEBU COMPHY Controller 8*833e5d42SEmmanuel Vadot 9*833e5d42SEmmanuel Vadotmaintainers: 10*833e5d42SEmmanuel Vadot - Miquel Raynal <miquel.raynal@bootlin.com> 11*833e5d42SEmmanuel Vadot 12*833e5d42SEmmanuel Vadotdescription: > 13*833e5d42SEmmanuel Vadot COMPHY controllers can be found on the following Marvell MVEBU SoCs: 14*833e5d42SEmmanuel Vadot 15*833e5d42SEmmanuel Vadot * Armada 7k/8k (on the CP110) 16*833e5d42SEmmanuel Vadot * Armada 3700 17*833e5d42SEmmanuel Vadot 18*833e5d42SEmmanuel Vadot It provides a number of shared PHYs used by various interfaces (network, SATA, 19*833e5d42SEmmanuel Vadot USB, PCIe...). 20*833e5d42SEmmanuel Vadot 21*833e5d42SEmmanuel Vadotproperties: 22*833e5d42SEmmanuel Vadot compatible: 23*833e5d42SEmmanuel Vadot enum: 24*833e5d42SEmmanuel Vadot - marvell,comphy-cp110 25*833e5d42SEmmanuel Vadot - marvell,comphy-a3700 26*833e5d42SEmmanuel Vadot 27*833e5d42SEmmanuel Vadot reg: 28*833e5d42SEmmanuel Vadot minItems: 1 29*833e5d42SEmmanuel Vadot items: 30*833e5d42SEmmanuel Vadot - description: Generic COMPHY registers 31*833e5d42SEmmanuel Vadot - description: Lane 1 (PCIe/GbE) registers (Armada 3700) 32*833e5d42SEmmanuel Vadot - description: Lane 0 (USB3/GbE) registers (Armada 3700) 33*833e5d42SEmmanuel Vadot - description: Lane 2 (SATA/USB3) registers (Armada 3700) 34*833e5d42SEmmanuel Vadot 35*833e5d42SEmmanuel Vadot reg-names: 36*833e5d42SEmmanuel Vadot minItems: 1 37*833e5d42SEmmanuel Vadot items: 38*833e5d42SEmmanuel Vadot - const: comphy 39*833e5d42SEmmanuel Vadot - const: lane1_pcie_gbe 40*833e5d42SEmmanuel Vadot - const: lane0_usb3_gbe 41*833e5d42SEmmanuel Vadot - const: lane2_sata_usb3 42*833e5d42SEmmanuel Vadot 43*833e5d42SEmmanuel Vadot '#address-cells': 44*833e5d42SEmmanuel Vadot const: 1 45*833e5d42SEmmanuel Vadot 46*833e5d42SEmmanuel Vadot '#size-cells': 47*833e5d42SEmmanuel Vadot const: 0 48*833e5d42SEmmanuel Vadot 49*833e5d42SEmmanuel Vadot clocks: 50*833e5d42SEmmanuel Vadot minItems: 1 51*833e5d42SEmmanuel Vadot maxItems: 3 52*833e5d42SEmmanuel Vadot 53*833e5d42SEmmanuel Vadot clock-names: 54*833e5d42SEmmanuel Vadot minItems: 1 55*833e5d42SEmmanuel Vadot maxItems: 3 56*833e5d42SEmmanuel Vadot 57*833e5d42SEmmanuel Vadot marvell,system-controller: 58*833e5d42SEmmanuel Vadot description: Phandle to the Marvell system controller (CP110 only) 59*833e5d42SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 60*833e5d42SEmmanuel Vadot 61*833e5d42SEmmanuel VadotpatternProperties: 62*833e5d42SEmmanuel Vadot '^phy@[0-5]$': 63*833e5d42SEmmanuel Vadot description: A COMPHY lane child node 64*833e5d42SEmmanuel Vadot type: object 65*833e5d42SEmmanuel Vadot additionalProperties: false 66*833e5d42SEmmanuel Vadot 67*833e5d42SEmmanuel Vadot properties: 68*833e5d42SEmmanuel Vadot reg: 69*833e5d42SEmmanuel Vadot description: COMPHY lane number 70*833e5d42SEmmanuel Vadot maximum: 5 71*833e5d42SEmmanuel Vadot 72*833e5d42SEmmanuel Vadot '#phy-cells': 73*833e5d42SEmmanuel Vadot const: 1 74*833e5d42SEmmanuel Vadot 75*833e5d42SEmmanuel Vadot connector: 76*833e5d42SEmmanuel Vadot type: object 77*833e5d42SEmmanuel Vadot 78*833e5d42SEmmanuel Vadot required: 79*833e5d42SEmmanuel Vadot - reg 80*833e5d42SEmmanuel Vadot - '#phy-cells' 81*833e5d42SEmmanuel Vadot 82*833e5d42SEmmanuel Vadotrequired: 83*833e5d42SEmmanuel Vadot - compatible 84*833e5d42SEmmanuel Vadot - reg 85*833e5d42SEmmanuel Vadot 86*833e5d42SEmmanuel VadotadditionalProperties: false 87*833e5d42SEmmanuel Vadot 88*833e5d42SEmmanuel VadotallOf: 89*833e5d42SEmmanuel Vadot - if: 90*833e5d42SEmmanuel Vadot properties: 91*833e5d42SEmmanuel Vadot compatible: 92*833e5d42SEmmanuel Vadot const: marvell,comphy-a3700 93*833e5d42SEmmanuel Vadot 94*833e5d42SEmmanuel Vadot then: 95*833e5d42SEmmanuel Vadot properties: 96*833e5d42SEmmanuel Vadot clocks: 97*833e5d42SEmmanuel Vadot maxItems: 1 98*833e5d42SEmmanuel Vadot clock-names: 99*833e5d42SEmmanuel Vadot const: xtal 100*833e5d42SEmmanuel Vadot 101*833e5d42SEmmanuel Vadot required: 102*833e5d42SEmmanuel Vadot - reg-names 103*833e5d42SEmmanuel Vadot 104*833e5d42SEmmanuel Vadot else: 105*833e5d42SEmmanuel Vadot properties: 106*833e5d42SEmmanuel Vadot clocks: 107*833e5d42SEmmanuel Vadot minItems: 3 108*833e5d42SEmmanuel Vadot clock-names: 109*833e5d42SEmmanuel Vadot items: 110*833e5d42SEmmanuel Vadot - const: mg_clk 111*833e5d42SEmmanuel Vadot - const: mg_core_clk 112*833e5d42SEmmanuel Vadot - const: axi_clk 113*833e5d42SEmmanuel Vadot 114*833e5d42SEmmanuel Vadot required: 115*833e5d42SEmmanuel Vadot - marvell,system-controller 116*833e5d42SEmmanuel Vadot 117*833e5d42SEmmanuel Vadotexamples: 118*833e5d42SEmmanuel Vadot - | 119*833e5d42SEmmanuel Vadot phy@120000 { 120*833e5d42SEmmanuel Vadot compatible = "marvell,comphy-cp110"; 121*833e5d42SEmmanuel Vadot reg = <0x120000 0x6000>; 122*833e5d42SEmmanuel Vadot clocks = <&clk 1 5>, <&clk 1 6>, <&clk 1 18>; 123*833e5d42SEmmanuel Vadot clock-names = "mg_clk", "mg_core_clk", "axi_clk"; 124*833e5d42SEmmanuel Vadot #address-cells = <1>; 125*833e5d42SEmmanuel Vadot #size-cells = <0>; 126*833e5d42SEmmanuel Vadot marvell,system-controller = <&syscon0>; 127*833e5d42SEmmanuel Vadot 128*833e5d42SEmmanuel Vadot phy@0 { 129*833e5d42SEmmanuel Vadot reg = <0>; 130*833e5d42SEmmanuel Vadot #phy-cells = <1>; 131*833e5d42SEmmanuel Vadot }; 132*833e5d42SEmmanuel Vadot 133*833e5d42SEmmanuel Vadot phy@1 { 134*833e5d42SEmmanuel Vadot reg = <1>; 135*833e5d42SEmmanuel Vadot #phy-cells = <1>; 136*833e5d42SEmmanuel Vadot }; 137*833e5d42SEmmanuel Vadot }; 138*833e5d42SEmmanuel Vadot 139*833e5d42SEmmanuel Vadot - | 140*833e5d42SEmmanuel Vadot phy@18300 { 141*833e5d42SEmmanuel Vadot compatible = "marvell,comphy-a3700"; 142*833e5d42SEmmanuel Vadot reg = <0x18300 0x300>, 143*833e5d42SEmmanuel Vadot <0x1F000 0x400>, 144*833e5d42SEmmanuel Vadot <0x5C000 0x400>, 145*833e5d42SEmmanuel Vadot <0xe0178 0x8>; 146*833e5d42SEmmanuel Vadot reg-names = "comphy", 147*833e5d42SEmmanuel Vadot "lane1_pcie_gbe", 148*833e5d42SEmmanuel Vadot "lane0_usb3_gbe", 149*833e5d42SEmmanuel Vadot "lane2_sata_usb3"; 150*833e5d42SEmmanuel Vadot #address-cells = <1>; 151*833e5d42SEmmanuel Vadot #size-cells = <0>; 152*833e5d42SEmmanuel Vadot 153*833e5d42SEmmanuel Vadot comphy0: phy@0 { 154*833e5d42SEmmanuel Vadot reg = <0>; 155*833e5d42SEmmanuel Vadot #phy-cells = <1>; 156*833e5d42SEmmanuel Vadot }; 157*833e5d42SEmmanuel Vadot 158*833e5d42SEmmanuel Vadot comphy1: phy@1 { 159*833e5d42SEmmanuel Vadot reg = <1>; 160*833e5d42SEmmanuel Vadot #phy-cells = <1>; 161*833e5d42SEmmanuel Vadot }; 162*833e5d42SEmmanuel Vadot 163*833e5d42SEmmanuel Vadot comphy2: phy@2 { 164*833e5d42SEmmanuel Vadot reg = <2>; 165*833e5d42SEmmanuel Vadot #phy-cells = <1>; 166*833e5d42SEmmanuel Vadot }; 167*833e5d42SEmmanuel Vadot }; 168