blob: 95eecbaef05c0e410308a6c3ca2b360a8167a93c [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
8title: Qualcomm QUSB2 phy controller
9
10maintainers:
11 - Wesley Cheng <quic_wcheng@quicinc.com>
12
13description:
14 QUSB2 controller supports LS/FS/HS usb connectivity on Qualcomm chipsets.
15
16properties:
17 compatible:
18 oneOf:
19 - items:
20 - enum:
21 - qcom,ipq6018-qusb2-phy
22 - qcom,ipq8074-qusb2-phy
23 - qcom,ipq9574-qusb2-phy
24 - qcom,msm8953-qusb2-phy
25 - qcom,msm8996-qusb2-phy
26 - qcom,msm8998-qusb2-phy
27 - qcom,qcm2290-qusb2-phy
28 - qcom,sdm660-qusb2-phy
29 - qcom,sm4250-qusb2-phy
30 - qcom,sm6115-qusb2-phy
31 - items:
32 - enum:
33 - qcom,sc7180-qusb2-phy
34 - qcom,sdm670-qusb2-phy
35 - qcom,sdm845-qusb2-phy
36 - qcom,sm6350-qusb2-phy
37 - const: qcom,qusb2-v2-phy
38 reg:
39 maxItems: 1
40
41 "#phy-cells":
42 const: 0
43
44 clocks:
45 minItems: 2
46 items:
47 - description: phy config clock
48 - description: 19.2 MHz ref clk
49 - description: phy interface clock (Optional)
50
51 clock-names:
52 minItems: 2
53 items:
54 - const: cfg_ahb
55 - const: ref
56 - const: iface
57
58 vdd-supply:
59 description:
60 Phandle to 0.9V regulator supply to PHY digital circuit.
61
62 vdda-pll-supply:
63 description:
64 Phandle to 1.8V regulator supply to PHY refclk pll block.
65
66 vdda-phy-dpdm-supply:
67 description:
68 Phandle to 3.1V regulator supply to Dp/Dm port signals.
69
70 resets:
71 maxItems: 1
72 description:
73 Phandle to reset to phy block.
74
75 nvmem-cells:
76 maxItems: 1
77 description:
78 Phandle to nvmem cell that contains 'HS Tx trim'
79 tuning parameter value for qusb2 phy.
80
81 qcom,tcsr-syscon:
82 description:
83 Phandle to TCSR syscon register region.
84 $ref: /schemas/types.yaml#/definitions/phandle
85
86 qcom,imp-res-offset-value:
87 description:
88 It is a 6 bit value that specifies offset to be
89 added to PHY refgen RESCODE via IMP_CTRL1 register. It is a PHY
90 tuning parameter that may vary for different boards of same SOC.
91 $ref: /schemas/types.yaml#/definitions/uint32
92 minimum: 0
93 maximum: 63
94 default: 0
95
96 qcom,bias-ctrl-value:
97 description:
98 It is a 6 bit value that specifies bias-ctrl-value. It is a PHY
99 tuning parameter that may vary for different boards of same SOC.
100 $ref: /schemas/types.yaml#/definitions/uint32
101 minimum: 0
102 maximum: 63
103 default: 32
104
105 qcom,charge-ctrl-value:
106 description:
107 It is a 2 bit value that specifies charge-ctrl-value. It is a PHY
108 tuning parameter that may vary for different boards of same SOC.
109 $ref: /schemas/types.yaml#/definitions/uint32
110 minimum: 0
111 maximum: 3
112 default: 0
113
114 qcom,hstx-trim-value:
115 description:
116 It is a 4 bit value that specifies tuning for HSTX
117 output current.
118 Possible range is - 15mA to 24mA (stepsize of 600 uA).
119 See dt-bindings/phy/phy-qcom-qusb2.h for applicable values.
120 $ref: /schemas/types.yaml#/definitions/uint32
121 minimum: 0
122 maximum: 15
123 default: 3
124
125 qcom,preemphasis-level:
126 description:
127 It is a 2 bit value that specifies pre-emphasis level.
128 Possible range is 0 to 15% (stepsize of 5%).
129 See dt-bindings/phy/phy-qcom-qusb2.h for applicable values.
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 $ref: /schemas/types.yaml#/definitions/uint32
142 minimum: 0
143 maximum: 1
144 default: 0
145
146 qcom,hsdisc-trim-value:
147 description:
148 It is a 2 bit value tuning parameter that control disconnect
149 threshold and may vary for different boards of same SOC.
150 $ref: /schemas/types.yaml#/definitions/uint32
151 minimum: 0
152 maximum: 3
153 default: 0
154
155required:
156 - compatible
157 - reg
158 - "#phy-cells"
159 - clocks
160 - clock-names
161 - vdd-supply
162 - vdda-pll-supply
163 - vdda-phy-dpdm-supply
164 - resets
165
166allOf:
167 - if:
168 not:
169 properties:
170 compatible:
171 contains:
172 const: qcom,qusb2-v2-phy
173 then:
174 properties:
175 qcom,imp-res-offset-value: false
176 qcom,bias-ctrl-value: false
177 qcom,charge-ctrl-value: false
178 qcom,hstx-trim-value: false
179 qcom,preemphasis-level: false
180 qcom,preemphasis-width: false
181 qcom,hsdisc-trim-value: false
182
183additionalProperties: false
184
185examples:
186 - |
187 #include <dt-bindings/clock/qcom,gcc-msm8996.h>
188 hsusb_phy: phy@7411000 {
189 compatible = "qcom,msm8996-qusb2-phy";
190 reg = <0x7411000 0x180>;
191 #phy-cells = <0>;
192
193 clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
194 <&gcc GCC_RX1_USB2_CLKREF_CLK>;
195 clock-names = "cfg_ahb", "ref";
196
197 vdd-supply = <&pm8994_l28>;
198 vdda-pll-supply = <&pm8994_l12>;
199 vdda-phy-dpdm-supply = <&pm8994_l24>;
200
201 resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
202 nvmem-cells = <&qusb2p_hstx_trim>;
203 };