xref: /linux/Documentation/devicetree/bindings/phy/apm,xgene-phy.yaml (revision 8582976acc8504cec53a7b6fed493435eba8437f)
1*65ad0d06SRob Herring (Arm)# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*65ad0d06SRob Herring (Arm)%YAML 1.2
3*65ad0d06SRob Herring (Arm)---
4*65ad0d06SRob Herring (Arm)$id: http://devicetree.org/schemas/phy/apm,xgene-phy.yaml#
5*65ad0d06SRob Herring (Arm)$schema: http://devicetree.org/meta-schemas/core.yaml#
6*65ad0d06SRob Herring (Arm)
7*65ad0d06SRob Herring (Arm)title: APM X-Gene 15Gbps Multi-purpose PHY
8*65ad0d06SRob Herring (Arm)
9*65ad0d06SRob Herring (Arm)maintainers:
10*65ad0d06SRob Herring (Arm)  - Khuong Dinh <khuong@os.amperecomputing.com>
11*65ad0d06SRob Herring (Arm)
12*65ad0d06SRob Herring (Arm)description:
13*65ad0d06SRob Herring (Arm)  PHY nodes are defined to describe on-chip 15Gbps Multi-purpose PHY. Each
14*65ad0d06SRob Herring (Arm)  PHY (pair of lanes) has its own node.
15*65ad0d06SRob Herring (Arm)
16*65ad0d06SRob Herring (Arm)properties:
17*65ad0d06SRob Herring (Arm)  compatible:
18*65ad0d06SRob Herring (Arm)    items:
19*65ad0d06SRob Herring (Arm)      - const: apm,xgene-phy
20*65ad0d06SRob Herring (Arm)
21*65ad0d06SRob Herring (Arm)  reg:
22*65ad0d06SRob Herring (Arm)    maxItems: 1
23*65ad0d06SRob Herring (Arm)
24*65ad0d06SRob Herring (Arm)  '#phy-cells':
25*65ad0d06SRob Herring (Arm)    description:
26*65ad0d06SRob Herring (Arm)      Possible values are 0 (SATA), 1 (SGMII), 2 (PCIe), 3 (USB), and 4 (XFI).
27*65ad0d06SRob Herring (Arm)    const: 1
28*65ad0d06SRob Herring (Arm)
29*65ad0d06SRob Herring (Arm)  clocks:
30*65ad0d06SRob Herring (Arm)    maxItems: 1
31*65ad0d06SRob Herring (Arm)
32*65ad0d06SRob Herring (Arm)  apm,tx-eye-tuning:
33*65ad0d06SRob Herring (Arm)    description:
34*65ad0d06SRob Herring (Arm)      Manual control to fine tune the capture of the serial bit lines from the
35*65ad0d06SRob Herring (Arm)      automatic calibrated position. Two set of 3-tuple setting for each
36*65ad0d06SRob Herring (Arm)      supported link speed on the host. Range from 0 to 127 in unit of one bit
37*65ad0d06SRob Herring (Arm)      period.
38*65ad0d06SRob Herring (Arm)    $ref: /schemas/types.yaml#/definitions/uint32-matrix
39*65ad0d06SRob Herring (Arm)    minItems: 2
40*65ad0d06SRob Herring (Arm)    maxItems: 2
41*65ad0d06SRob Herring (Arm)    items:
42*65ad0d06SRob Herring (Arm)      minItems: 3
43*65ad0d06SRob Herring (Arm)      maxItems: 3
44*65ad0d06SRob Herring (Arm)      items:
45*65ad0d06SRob Herring (Arm)        minimum: 0
46*65ad0d06SRob Herring (Arm)        maximum: 127
47*65ad0d06SRob Herring (Arm)        default: 10
48*65ad0d06SRob Herring (Arm)
49*65ad0d06SRob Herring (Arm)  apm,tx-eye-direction:
50*65ad0d06SRob Herring (Arm)    description:
51*65ad0d06SRob Herring (Arm)      Eye tuning manual control direction. 0 means sample data earlier than the
52*65ad0d06SRob Herring (Arm)      nominal sampling point. 1 means sample data later than the nominal
53*65ad0d06SRob Herring (Arm)      sampling point. Two set of 3-tuple setting for each supported link speed
54*65ad0d06SRob Herring (Arm)      on the host.
55*65ad0d06SRob Herring (Arm)    $ref: /schemas/types.yaml#/definitions/uint32-matrix
56*65ad0d06SRob Herring (Arm)    minItems: 2
57*65ad0d06SRob Herring (Arm)    maxItems: 2
58*65ad0d06SRob Herring (Arm)    items:
59*65ad0d06SRob Herring (Arm)      minItems: 3
60*65ad0d06SRob Herring (Arm)      maxItems: 3
61*65ad0d06SRob Herring (Arm)      items:
62*65ad0d06SRob Herring (Arm)        enum: [0, 1]
63*65ad0d06SRob Herring (Arm)        default: 0
64*65ad0d06SRob Herring (Arm)
65*65ad0d06SRob Herring (Arm)  apm,tx-boost-gain:
66*65ad0d06SRob Herring (Arm)    description:
67*65ad0d06SRob Herring (Arm)      Frequency boost AC (LSB 3-bit) and DC (2-bit) gain control. Two set of
68*65ad0d06SRob Herring (Arm)      3-tuple setting for each supported link speed on the host. Range is
69*65ad0d06SRob Herring (Arm)      between 0 to 31 in unit of dB. Default is 3.
70*65ad0d06SRob Herring (Arm)    $ref: /schemas/types.yaml#/definitions/uint32-matrix
71*65ad0d06SRob Herring (Arm)    minItems: 2
72*65ad0d06SRob Herring (Arm)    maxItems: 2
73*65ad0d06SRob Herring (Arm)    items:
74*65ad0d06SRob Herring (Arm)      minItems: 3
75*65ad0d06SRob Herring (Arm)      maxItems: 3
76*65ad0d06SRob Herring (Arm)      items:
77*65ad0d06SRob Herring (Arm)        minimum: 0
78*65ad0d06SRob Herring (Arm)        maximum: 31
79*65ad0d06SRob Herring (Arm)
80*65ad0d06SRob Herring (Arm)  apm,tx-amplitude:
81*65ad0d06SRob Herring (Arm)    description:
82*65ad0d06SRob Herring (Arm)      Amplitude control. Two set of 3-tuple setting for each supported link
83*65ad0d06SRob Herring (Arm)      speed on the host. Range is between 0 to 199500 in unit of uV.
84*65ad0d06SRob Herring (Arm)    $ref: /schemas/types.yaml#/definitions/uint32-matrix
85*65ad0d06SRob Herring (Arm)    minItems: 2
86*65ad0d06SRob Herring (Arm)    maxItems: 2
87*65ad0d06SRob Herring (Arm)    items:
88*65ad0d06SRob Herring (Arm)      minItems: 3
89*65ad0d06SRob Herring (Arm)      maxItems: 3
90*65ad0d06SRob Herring (Arm)      items:
91*65ad0d06SRob Herring (Arm)        minimum: 0
92*65ad0d06SRob Herring (Arm)        maximum: 199500
93*65ad0d06SRob Herring (Arm)        default: 199500
94*65ad0d06SRob Herring (Arm)
95*65ad0d06SRob Herring (Arm)  apm,tx-pre-cursor1:
96*65ad0d06SRob Herring (Arm)    description:
97*65ad0d06SRob Herring (Arm)      1st pre-cursor emphasis taps control. Two set of 3-tuple setting for
98*65ad0d06SRob Herring (Arm)      each supported link speed on the host. Range is 0 to 273000 in unit of
99*65ad0d06SRob Herring (Arm)      uV.
100*65ad0d06SRob Herring (Arm)    $ref: /schemas/types.yaml#/definitions/uint32-matrix
101*65ad0d06SRob Herring (Arm)    minItems: 2
102*65ad0d06SRob Herring (Arm)    maxItems: 2
103*65ad0d06SRob Herring (Arm)    items:
104*65ad0d06SRob Herring (Arm)      minItems: 3
105*65ad0d06SRob Herring (Arm)      maxItems: 3
106*65ad0d06SRob Herring (Arm)      items:
107*65ad0d06SRob Herring (Arm)        minimum: 0
108*65ad0d06SRob Herring (Arm)        maximum: 273000
109*65ad0d06SRob Herring (Arm)        default: 0
110*65ad0d06SRob Herring (Arm)
111*65ad0d06SRob Herring (Arm)  apm,tx-pre-cursor2:
112*65ad0d06SRob Herring (Arm)    description:
113*65ad0d06SRob Herring (Arm)      2nd pre-cursor emphasis taps control. Two set of 3-tuple setting for
114*65ad0d06SRob Herring (Arm)      each supported link speed on the host. Range is 0 to 127400 in unit uV.
115*65ad0d06SRob Herring (Arm)    $ref: /schemas/types.yaml#/definitions/uint32-matrix
116*65ad0d06SRob Herring (Arm)    minItems: 2
117*65ad0d06SRob Herring (Arm)    maxItems: 2
118*65ad0d06SRob Herring (Arm)    items:
119*65ad0d06SRob Herring (Arm)      minItems: 3
120*65ad0d06SRob Herring (Arm)      maxItems: 3
121*65ad0d06SRob Herring (Arm)      items:
122*65ad0d06SRob Herring (Arm)        minimum: 0
123*65ad0d06SRob Herring (Arm)        maximum: 127400
124*65ad0d06SRob Herring (Arm)        default: 0
125*65ad0d06SRob Herring (Arm)
126*65ad0d06SRob Herring (Arm)  apm,tx-post-cursor:
127*65ad0d06SRob Herring (Arm)    description: |
128*65ad0d06SRob Herring (Arm)      Post-cursor emphasis taps control. Two set of 3-tuple setting for Gen1,
129*65ad0d06SRob Herring (Arm)      Gen2, and Gen3 link speeds. Range is between 0 to 31 in unit of 18.2mV.
130*65ad0d06SRob Herring (Arm)    $ref: /schemas/types.yaml#/definitions/uint32-matrix
131*65ad0d06SRob Herring (Arm)    minItems: 2
132*65ad0d06SRob Herring (Arm)    maxItems: 2
133*65ad0d06SRob Herring (Arm)    items:
134*65ad0d06SRob Herring (Arm)      minItems: 3
135*65ad0d06SRob Herring (Arm)      maxItems: 3
136*65ad0d06SRob Herring (Arm)      items:
137*65ad0d06SRob Herring (Arm)        minimum: 0
138*65ad0d06SRob Herring (Arm)        maximum: 31
139*65ad0d06SRob Herring (Arm)        default: 0xf
140*65ad0d06SRob Herring (Arm)
141*65ad0d06SRob Herring (Arm)  apm,tx-speed:
142*65ad0d06SRob Herring (Arm)    description: >
143*65ad0d06SRob Herring (Arm)      Tx operating speed. One set of 3-tuple for each supported link speed on
144*65ad0d06SRob Herring (Arm)      the host:
145*65ad0d06SRob Herring (Arm)
146*65ad0d06SRob Herring (Arm)        0 = 1-2Gbps
147*65ad0d06SRob Herring (Arm)        1 = 2-4Gbps (1st tuple default)
148*65ad0d06SRob Herring (Arm)        2 = 4-8Gbps
149*65ad0d06SRob Herring (Arm)        3 = 8-15Gbps (2nd tuple default)
150*65ad0d06SRob Herring (Arm)        4 = 2.5-4Gbps
151*65ad0d06SRob Herring (Arm)        5 = 4-5Gbps
152*65ad0d06SRob Herring (Arm)        6 = 5-6Gbps
153*65ad0d06SRob Herring (Arm)        7 = 6-16Gbps (3rd tuple default).
154*65ad0d06SRob Herring (Arm)
155*65ad0d06SRob Herring (Arm)    $ref: /schemas/types.yaml#/definitions/uint32-array
156*65ad0d06SRob Herring (Arm)    minItems: 3
157*65ad0d06SRob Herring (Arm)    maxItems: 3
158*65ad0d06SRob Herring (Arm)    items:
159*65ad0d06SRob Herring (Arm)      maximum: 7
160*65ad0d06SRob Herring (Arm)
161*65ad0d06SRob Herring (Arm)additionalProperties: false
162*65ad0d06SRob Herring (Arm)
163*65ad0d06SRob Herring (Arm)examples:
164*65ad0d06SRob Herring (Arm)  - |
165*65ad0d06SRob Herring (Arm)    phy@1f21a000 {
166*65ad0d06SRob Herring (Arm)        compatible = "apm,xgene-phy";
167*65ad0d06SRob Herring (Arm)        reg = <0x1f21a000 0x100>;
168*65ad0d06SRob Herring (Arm)        #phy-cells = <1>;
169*65ad0d06SRob Herring (Arm)    };
170