xref: /freebsd/sys/contrib/device-tree/Bindings/phy/marvell,comphy-cp110.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
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