Merge branch 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-block.git] / Documentation / devicetree / bindings / phy / qcom,qusb2-phy.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2
3 %YAML 1.2
4 ---
5 $id: "http://devicetree.org/schemas/phy/qcom,qusb2-phy.yaml#"
6 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
7
8 title: Qualcomm QUSB2 phy controller
9
10 maintainers:
11   - Manu Gautam <mgautam@codeaurora.org>
12
13 description:
14   QUSB2 controller supports LS/FS/HS usb connectivity on Qualcomm chipsets.
15
16 properties:
17   compatible:
18     oneOf:
19       - items:
20         - enum:
21           - qcom,msm8996-qusb2-phy
22           - qcom,msm8998-qusb2-phy
23       - items:
24         - enum:
25           - qcom,sc7180-qusb2-phy
26           - qcom,sdm845-qusb2-phy
27         - const: qcom,qusb2-v2-phy
28   reg:
29     maxItems: 1
30
31   "#phy-cells":
32     const: 0
33
34   clocks:
35     minItems: 2
36     maxItems: 3
37     items:
38       - description: phy config clock
39       - description: 19.2 MHz ref clk
40       - description: phy interface clock (Optional)
41
42   clock-names:
43     minItems: 2
44     maxItems: 3
45     items:
46       - const: cfg_ahb
47       - const: ref
48       - const: iface
49
50   vdda-pll-supply:
51      description:
52        Phandle to 1.8V regulator supply to PHY refclk pll block.
53
54   vdda-phy-dpdm-supply:
55      description:
56        Phandle to 3.1V regulator supply to Dp/Dm port signals.
57
58   resets:
59     maxItems: 1
60     description:
61       Phandle to reset to phy block.
62
63   nvmem-cells:
64     maxItems: 1
65     description:
66         Phandle to nvmem cell that contains 'HS Tx trim'
67         tuning parameter value for qusb2 phy.
68
69   qcom,tcsr-syscon:
70     description:
71         Phandle to TCSR syscon register region.
72     $ref: /schemas/types.yaml#/definitions/phandle
73
74 if:
75   properties:
76     compatible:
77       contains:
78         const: qcom,qusb2-v2-phy
79 then:
80   properties:
81     qcom,imp-res-offset-value:
82       description:
83         It is a 6 bit value that specifies offset to be
84         added to PHY refgen RESCODE via IMP_CTRL1 register. It is a PHY
85         tuning parameter that may vary for different boards of same SOC.
86       allOf:
87         - $ref: /schemas/types.yaml#/definitions/uint32
88         - minimum: 0
89           maximum: 63
90           default: 0
91
92     qcom,bias-ctrl-value:
93       description:
94         It is a 6 bit value that specifies bias-ctrl-value. It is a PHY
95         tuning parameter that may vary for different boards of same SOC.
96       allOf:
97         - $ref: /schemas/types.yaml#/definitions/uint32
98         - minimum: 0
99           maximum: 63
100           default: 0
101
102     qcom,charge-ctrl-value:
103      description:
104         It is a 2 bit value that specifies charge-ctrl-value. It is a PHY
105         tuning parameter that may vary for different boards of same SOC.
106      allOf:
107        - $ref: /schemas/types.yaml#/definitions/uint32
108        - minimum: 0
109          maximum: 3
110          default: 0
111
112     qcom,hstx-trim-value:
113       description:
114         It is a 4 bit value that specifies tuning for HSTX
115         output current.
116         Possible range is - 15mA to 24mA (stepsize of 600 uA).
117         See dt-bindings/phy/phy-qcom-qusb2.h for applicable values.
118       allOf:
119         - $ref: /schemas/types.yaml#/definitions/uint32
120         - minimum: 0
121           maximum: 15
122           default: 3
123
124     qcom,preemphasis-level:
125       description:
126         It is a 2 bit value that specifies pre-emphasis level.
127         Possible range is 0 to 15% (stepsize of 5%).
128         See dt-bindings/phy/phy-qcom-qusb2.h for applicable values.
129       allOf:
130         - $ref: /schemas/types.yaml#/definitions/uint32
131         - minimum: 0
132           maximum: 3
133           default: 2
134
135     qcom,preemphasis-width:
136       description:
137         It is a 1 bit value that specifies how long the HSTX
138         pre-emphasis (specified using qcom,preemphasis-level) must be in
139         effect. Duration could be half-bit of full-bit.
140         See dt-bindings/phy/phy-qcom-qusb2.h for applicable values.
141       allOf:
142         - $ref: /schemas/types.yaml#/definitions/uint32
143         - minimum: 0
144           maximum: 1
145           default: 0
146
147     qcom,hsdisc-trim-value:
148       description:
149         It is a 2 bit value tuning parameter that control disconnect
150         threshold and may vary for different boards of same SOC.
151       allOf:
152         - $ref: /schemas/types.yaml#/definitions/uint32
153         - minimum: 0
154           maximum: 3
155           default: 0
156
157 required:
158   - compatible
159   - reg
160   - "#phy-cells"
161   - clocks
162   - clock-names
163   - vdda-pll-supply
164   - vdda-phy-dpdm-supply
165   - resets
166
167
168 examples:
169   - |
170     #include <dt-bindings/clock/qcom,gcc-msm8996.h>
171     hsusb_phy: phy@7411000 {
172         compatible = "qcom,msm8996-qusb2-phy";
173         reg = <0x7411000 0x180>;
174         #phy-cells = <0>;
175
176         clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
177                  <&gcc GCC_RX1_USB2_CLKREF_CLK>;
178         clock-names = "cfg_ahb", "ref";
179
180         vdda-pll-supply = <&pm8994_l12>;
181         vdda-phy-dpdm-supply = <&pm8994_l24>;
182
183         resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
184         nvmem-cells = <&qusb2p_hstx_trim>;
185     };