xref: /linux/Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.yaml (revision e7e86d7697c6ed1dbbde18d7185c35b6967945ed)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/phy/fsl,imx8mq-usb-phy.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale i.MX8MQ USB3 PHY
8
9maintainers:
10  - Li Jun <jun.li@nxp.com>
11
12properties:
13  compatible:
14    oneOf:
15      - enum:
16          - fsl,imx8mq-usb-phy
17          - fsl,imx8mp-usb-phy
18      - items:
19          - const: fsl,imx95-usb-phy
20          - const: fsl,imx8mp-usb-phy
21
22  reg:
23    minItems: 1
24    maxItems: 2
25
26  "#phy-cells":
27    const: 0
28
29  clocks:
30    maxItems: 1
31
32  clock-names:
33    items:
34      - const: phy
35
36  power-domains:
37    maxItems: 1
38
39  vbus-supply:
40    description:
41      A phandle to the regulator for USB VBUS.
42
43  fsl,phy-tx-vref-tune-percent:
44    description:
45      Tunes the HS DC level relative to the nominal level
46    minimum: 90
47    maximum: 124
48
49  fsl,phy-tx-rise-tune-percent:
50    description:
51      Adjusts the rise/fall time duration of the HS waveform relative to
52      its nominal value
53    minimum: 90
54    maximum: 120
55
56  fsl,phy-tx-preemp-amp-tune-microamp:
57    description:
58      Adjust amount of current sourced to DPn and DMn after a J-to-K
59      or K-to-J transition. Default is 0 (disabled).
60    minimum: 0
61    maximum: 1800
62
63  fsl,phy-tx-vboost-level-microvolt:
64    description:
65      Adjust the boosted transmit launch pk-pk differential amplitude
66    enum: [844, 1008, 1156]
67
68  fsl,phy-comp-dis-tune-percent:
69    description:
70      Adjust the voltage level used to detect a disconnect event at the host
71      relative to the nominal value
72    minimum: 91
73    maximum: 115
74
75  fsl,phy-pcs-tx-deemph-3p5db-attenuation-db:
76    description:
77      Adjust TX de-emphasis attenuation in dB at nominal
78      3.5dB point as per USB specification
79    $ref: /schemas/types.yaml#/definitions/uint32
80    minimum: 0
81    maximum: 36
82
83  fsl,phy-pcs-tx-swing-full-percent:
84    description:
85      Scaling of the voltage defined by fsl,phy-tx-vboost-level-microvolt
86    minimum: 0
87    maximum: 100
88
89required:
90  - compatible
91  - reg
92  - "#phy-cells"
93  - clocks
94  - clock-names
95
96allOf:
97  - if:
98      properties:
99        compatible:
100          contains:
101            enum:
102              - fsl,imx95-usb-phy
103    then:
104      properties:
105        reg:
106          items:
107            - description: USB PHY Control range
108            - description: USB PHY TCA Block range
109    else:
110      properties:
111        reg:
112          maxItems: 1
113
114  - if:
115      properties:
116        compatible:
117          enum:
118            - fsl,imx8mq-usb-phy
119            - fsl,imx8mp-usb-phy
120    then:
121      properties:
122        fsl,phy-tx-vref-tune-percent:
123          minimum: 94
124        fsl,phy-tx-rise-tune-percent:
125          minimum: 97
126          maximum: 103
127
128  - if:
129      properties:
130        compatible:
131          contains:
132            enum:
133              - fsl,imx95-usb-phy
134    then:
135      properties:
136        fsl,phy-tx-vref-tune-percent:
137          maximum: 108
138        fsl,phy-comp-dis-tune-percent:
139          minimum: 94
140          maximum: 104
141
142  - if:
143      required:
144        - orientation-switch
145    then:
146      $ref: /schemas/usb/usb-switch.yaml#
147
148unevaluatedProperties: false
149
150examples:
151  - |
152    #include <dt-bindings/clock/imx8mq-clock.h>
153    usb3_phy0: phy@381f0040 {
154        compatible = "fsl,imx8mq-usb-phy";
155        reg = <0x381f0040 0x40>;
156        clocks = <&clk IMX8MQ_CLK_USB1_PHY_ROOT>;
157        clock-names = "phy";
158        #phy-cells = <0>;
159    };
160