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