1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
4 $id: http://devicetree.org/schemas/phy/phy-stm32-usbphyc.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: STMicroelectronics STM32 USB HS PHY controller binding
11 The STM32 USBPHYC block contains a dual port High Speed UTMI+ PHY and a UTMI
12 switch. It controls PHY configuration and status, and the UTMI+ switch that
13 selects either OTG or HOST controller for the second PHY port. It also sets
19 |_ PHY port#1 _________________ HOST controller
21 | / 1|________________|
22 |_ PHY port#2 ----| |________________
24 |_ UTMI switch_______| OTG controller
27 - Amelie Delaunay <amelie.delaunay@foss.st.com>
31 const: st,stm32mp1-usbphyc
49 description: regulator providing 1V1 power supply to the PLL block
52 description: regulator providing 1V8 power supply to the PLL block
55 description: number of clock cells for ck_usbo_48m consumer
58 #Required child nodes:
64 Each port the controller provides must be represented as a sub-node.
68 description: phy port index.
72 description: regulator providing 3V3 power supply to the PHY.
79 $ref: /schemas/connector/usb-connector.yaml
83 # It can be necessary to adjust the PHY settings to compensate parasitics, which can be due
84 # to USB connector/receptacle, routing, ESD protection component,... Here is the list of
85 # all optional parameters to tune the interface of the PHY (HS for High-Speed, FS for Full-
86 # Speed, LS for Low-Speed)
88 st,current-boost-microamp:
89 description: Current boosting in uA
93 description: Disables the LS/FS feedback capacitor
96 st,decrease-hs-slew-rate:
97 description: Decreases the HS driver slew rate by 10%
102 Tunes the HS driver DC level
104 - <1> increases the level by 5 to 7 mV
105 - <2> increases the level by 10 to 14 mV
106 - <3> decreases the level by 5 to 7 mV
107 $ref: /schemas/types.yaml#/definitions/uint32
112 st,enable-fs-rftime-tuning:
113 description: Enables the FS rise/fall tuning option
116 st,enable-hs-rftime-reduction:
117 description: Enables the HS rise/fall reduction feature
122 Controls HS driver current trimming for choke compensation
123 - <0> = 18.87 mA target current / nominal + 0%
124 - <1> = 19.165 mA target current / nominal + 1.56%
125 - <2> = 19.46 mA target current / nominal + 3.12%
126 - <3> = 19.755 mA target current / nominal + 4.68%
127 - <4> = 20.05 mA target current / nominal + 6.24%
128 - <5> = 20.345 mA target current / nominal + 7.8%
129 - <6> = 20.64 mA target current / nominal + 9.36%
130 - <7> = 20.935 mA target current / nominal + 10.92%
131 - <8> = 21.23 mA target current / nominal + 12.48%
132 - <9> = 21.525 mA target current / nominal + 14.04%
133 - <10> = 21.82 mA target current / nominal + 15.6%
134 - <11> = 22.115 mA target current / nominal + 17.16%
135 - <12> = 22.458 mA target current / nominal + 19.01%
136 - <13> = 22.755 mA target current / nominal + 20.58%
137 - <14> = 23.052 mA target current / nominal + 22.16%
138 - <15> = 23.348 mA target current / nominal + 23.73%
139 $ref: /schemas/types.yaml#/definitions/uint32
144 st,trim-hs-impedance:
146 Controls HS driver impedance tuning for choke compensation
147 - <0> = no impedance offset
148 - <1> = reduce the impedance by 2 ohms
149 - <2> = reduce the impedance by 4 ohms
150 - <3> = reduce the impedance by 6 ohms
151 $ref: /schemas/types.yaml#/definitions/uint32
156 st,tune-squelch-level:
158 Tunes the squelch DC threshold value
159 - <0> = no shift in threshold
160 - <1> = threshold shift by +7 mV
161 - <2> = threshold shift by -5 mV
162 - <3> = threshold shift by +14 mV
163 $ref: /schemas/types.yaml#/definitions/uint32
168 st,enable-hs-rx-gain-eq:
169 description: Enables the HS Rx gain equalizer
172 st,tune-hs-rx-offset:
174 Adjusts the HS Rx offset
176 - <1> = offset of +5 mV
177 - <2> = offset of +10 mV
178 - <3> = offset of -5 mV
179 $ref: /schemas/types.yaml#/definitions/uint32
185 description: Disables the HS fall time control of single ended signals during pre-emphasis
189 description: Disables the short circuit protection in LS/FS driver
192 st,enable-hs-tx-staggering:
193 description: Enables the basic staggering in HS Tx mode
210 The value is used to select UTMI switch output.
211 0 for OTG controller and 1 for Host controller.
218 additionalProperties: false
231 additionalProperties: false
235 #include <dt-bindings/clock/stm32mp1-clks.h>
236 #include <dt-bindings/reset/stm32mp1-resets.h>
237 usbphyc: usbphyc@5a006000 {
238 compatible = "st,stm32mp1-usbphyc";
239 reg = <0x5a006000 0x1000>;
240 clocks = <&rcc USBPHY_K>;
241 resets = <&rcc USBPHY_R>;
242 vdda1v1-supply = <®11>;
243 vdda1v8-supply = <®18>;
244 #address-cells = <1>;
248 usbphyc_port0: usb-phy@0 {
250 phy-supply = <&vdd_usb>;
252 st,tune-hs-dc-level = <2>;
253 st,enable-fs-rftime-tuning;
254 st,enable-hs-rftime-reduction;
255 st,trim-hs-current = <15>;
256 st,trim-hs-impedance = <1>;
257 st,tune-squelch-level = <3>;
258 st,tune-hs-rx-offset = <2>;
261 compatible = "usb-a-connector";
262 vbus-supply = <&vbus_sw>;
266 usbphyc_port1: usb-phy@1 {
268 phy-supply = <&vdd_usb>;
270 st,tune-hs-dc-level = <2>;
271 st,enable-fs-rftime-tuning;
272 st,enable-hs-rftime-reduction;
273 st,trim-hs-current = <15>;
274 st,trim-hs-impedance = <1>;
275 st,tune-squelch-level = <3>;
276 st,tune-hs-rx-offset = <2>;