xref: /linux/Documentation/devicetree/bindings/phy/phy-common-props.yaml (revision 7d55b44e2be1069504e22253d26d08982884f930)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/phy/phy-common-props.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Common PHY and network PCS properties
8
9description:
10  Common PHY and network PCS properties, such as peak-to-peak transmit
11  amplitude.
12
13maintainers:
14  - Marek Behún <kabel@kernel.org>
15
16$defs:
17  protocol-names:
18    description:
19      Names of the PHY modes. If a value of 'default' is provided, the system
20      should use it for any PHY mode that is otherwise not defined here. If
21      'default' is not provided, the system should use manufacturer default value.
22    minItems: 1
23    maxItems: 16
24    uniqueItems: true
25    items:
26      enum:
27        - default
28
29        # ethernet modes
30        - sgmii
31        - qsgmii
32        - xgmii
33        - 1000base-x
34        - 2500base-x
35        - 5gbase-r
36        - rxaui
37        - xaui
38        - 10gbase-kr
39        - usxgmii
40        - 10gbase-r
41        - 25gbase-r
42
43        # PCIe modes
44        - pcie
45        - pcie1
46        - pcie2
47        - pcie3
48        - pcie4
49        - pcie5
50        - pcie6
51
52        # USB modes
53        - usb
54        - usb-ls
55        - usb-fs
56        - usb-hs
57        - usb-ss
58        - usb-ss+
59        - usb-4
60
61        # storage modes
62        - sata
63        - ufs-hs
64        - ufs-hs-a
65        - ufs-hs-b
66
67        # display modes
68        - lvds
69        - dp
70        - dp-rbr
71        - dp-hbr
72        - dp-hbr2
73        - dp-hbr3
74        - dp-uhbr-10
75        - dp-uhbr-13.5
76        - dp-uhbr-20
77
78        # camera modes
79        - mipi-dphy
80        - mipi-dphy-univ
81        - mipi-dphy-v2.5-univ
82
83properties:
84  tx-p2p-microvolt:
85    description:
86      Transmit amplitude voltages in microvolts, peak-to-peak. If this property
87      contains multiple values for various PHY modes, the
88      'tx-p2p-microvolt-names' property must be provided and contain
89      corresponding mode names.
90
91  tx-p2p-microvolt-names:
92    description:
93      Names of the modes corresponding to voltages in the 'tx-p2p-microvolt'
94      property. Required only if multiple voltages are provided.
95    $ref: "#/$defs/protocol-names"
96
97  rx-polarity:
98    description:
99      An array of values indicating whether the differential receiver's
100      polarity is inverted. Each value can be one of
101      PHY_POL_NORMAL (0) which means the negative signal is decoded from the
102      RXN input, and the positive signal from the RXP input;
103      PHY_POL_INVERT (1) which means the negative signal is decoded from the
104      RXP input, and the positive signal from the RXN input;
105      PHY_POL_AUTO (2) which means the receiver performs automatic polarity
106      detection and correction, which is a mandatory part of link training for
107      some protocols (PCIe, USB SS).
108
109      The values are defined in <dt-bindings/phy/phy.h>. If the property is
110      absent, the default value is undefined.
111
112      Note that the RXP and RXN inputs refer to the block that this property is
113      under, and do not necessarily directly translate to external pins.
114
115      If this property contains multiple values for various protocols, the
116      'rx-polarity-names' property must be provided.
117    $ref: /schemas/types.yaml#/definitions/uint32-array
118    minItems: 1
119    maxItems: 16
120    items:
121      enum: [0, 1, 2]
122
123  rx-polarity-names:
124    $ref: '#/$defs/protocol-names'
125
126  tx-polarity:
127    description:
128      Like 'rx-polarity', except it applies to differential transmitters,
129      and only the values of PHY_POL_NORMAL and PHY_POL_INVERT are possible.
130    $ref: /schemas/types.yaml#/definitions/uint32-array
131    minItems: 1
132    maxItems: 16
133    items:
134      enum: [0, 1]
135
136  tx-polarity-names:
137    $ref: '#/$defs/protocol-names'
138
139dependencies:
140  tx-p2p-microvolt-names: [ tx-p2p-microvolt ]
141  rx-polarity-names: [ rx-polarity ]
142  tx-polarity-names: [ tx-polarity ]
143
144additionalProperties: true
145
146examples:
147  - |
148    #include <dt-bindings/phy/phy.h>
149
150    phy: phy {
151      #phy-cells = <1>;
152      tx-p2p-microvolt = <915000>, <1100000>, <1200000>;
153      tx-p2p-microvolt-names = "2500base-x", "usb-hs", "usb-ss";
154      rx-polarity = <PHY_POL_AUTO>, <PHY_POL_NORMAL>;
155      rx-polarity-names = "usb-ss", "default";
156      tx-polarity = <PHY_POL_INVERT>;
157    };
158