[PATCH v2 2/3] dt-bindings: phy: phy-stm32-usbphyc: add optional phy tuning properties

Rob Herring robh at kernel.org
Thu Oct 14 10:26:45 PDT 2021


On Tue, Oct 05, 2021 at 05:24:52PM +0200, Amelie Delaunay wrote:
> This patch adds the description of new optional phy tuning properties
> for usbphyc phy sub nodes.
> 
> Signed-off-by: Amelie Delaunay <amelie.delaunay at foss.st.com>
> ---
> Changes in v2:
> - st,phy-tuning property removed
> - tuning properties are now put directly in each child node
> - tuning properties are no more free form text and their name reworked
> ---
>  .../bindings/phy/phy-stm32-usbphyc.yaml       | 126 ++++++++++++++++++
>  1 file changed, 126 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml b/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml
> index 3329f1d33a4f..c0f4dff2b8cb 100644
> --- a/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml
> +++ b/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.yaml
> @@ -81,6 +81,116 @@ patternProperties:
>          properties:
>            vbus-supply: true
>  
> +      # It can be necessary to adjust the PHY settings to compensate parasitics, which can be due
> +      # to USB connector/receptacle, routing, ESD protection component,... Here is the list of
> +      # all optional parameters to tune the interface of the PHY (HS for High-Speed, FS for Full-
> +      # Speed, LS for Low-Speed)
> +
> +      st,current-boost-milliamp:

Not a documented unit. Use '-microamp'.

> +        description: Current boosting in mA
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        minimum: 1
> +        maximum: 2
> +
> +      st,no-lsfs-fb-cap:
> +        description: Disables the LS/FS feedback capacitor
> +        type: boolean
> +
> +      st,decrease-hs-slew-rate:
> +        description: Decreases the HS driver slew rate by 10%
> +        type: boolean
> +
> +      st,tune-hs-dc-level:
> +        description: Tunes the HS driver DC level

You need '|' after 'description:' to retain the formatting you have 
here.

> +          - <0> normal level
> +          - <1> increases the level by 5 to 7 mV
> +          - <2> increases the level by 10 to 14 mV
> +          - <3> decreases the level by 5 to 7 mV
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        minimum: 0
> +        maximum: 3
> +        default: 0
> +
> +      st,enable-fs-rftime-tuning:
> +        description: Enables the FS rise/fall tuning option
> +        type: boolean
> +
> +      st,enable-hs-rftime-reduction:
> +        description: Enables the HS rise/fall reduction feature
> +        type: boolean
> +
> +      st,trim-hs-current:
> +        description: Controls HS driver current trimming for choke compensation
> +          - <0> = 18.87 mA target current / nominal + 0%
> +          - <1> = 19.165 mA target current / nominal + 1.56%
> +          - <2> = 19.46 mA target current / nominal + 3.12%
> +          - <3> = 19.755 mA target current / nominal + 4.68%
> +          - <4> = 20.05 mA target current / nominal + 6.24%
> +          - <5> = 20.345 mA target current / nominal + 7.8%
> +          - <6> = 20.64 mA target current / nominal + 9.36%
> +          - <7> = 20.935 mA target current / nominal + 10.92%
> +          - <8> = 21.23 mA target current / nominal + 12.48%
> +          - <9> = 21.525 mA target current / nominal + 14.04%
> +          - <10> = 21.82 mA target current / nominal + 15.6%
> +          - <11> = 22.115 mA target current / nominal + 17.16%
> +          - <12> = 22.458 mA target current / nominal + 19.01%
> +          - <13> = 22.755 mA target current / nominal + 20.58%
> +          - <14> = 23.052 mA target current / nominal + 22.16%
> +          - <15> = 23.348 mA target current / nominal + 23.73%
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        minimum: 0
> +        maximum: 15
> +        default: 0
> +
> +      st,trim-hs-impedance:
> +        description: Controls HS driver impedance tuning for choke compensation
> +          - <0> = no impedance offset
> +          - <1> = reduce the impedance by 2 ohms
> +          - <2> = reduce the impedance by 4 ohms
> +          - <3> = reduce the impedance by 6 ohms
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        minimum: 0
> +        maximum: 3
> +        default: 0
> +
> +      st,tune-squelch-level:
> +        description: Tunes the squelch DC threshold value
> +          - <0> = no shift in threshold
> +          - <1> = threshold shift by +7 mV
> +          - <2> = threshold shift by -5 mV
> +          - <3> = threshold shift by +14 mV
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        minimum: 0
> +        maximum: 3
> +        default: 0
> +
> +      st,enable-hs-rx-gain-eq:
> +        description: Enables the HS Rx gain equalizer
> +        type: boolean
> +
> +      st,tune-hs-rx-offset:
> +        description: Adjusts the HS Rx offset
> +          - <0> = no offset
> +          - <1> = offset of +5 mV
> +          - <2> = offset of +10 mV
> +          - <3> = offset of -5 mV
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        minimum: 0
> +        maximum: 3
> +        default: 0
> +
> +      st,no-hs-ftime-ctrl:
> +        description: Disables the HS fall time control of single ended signals during pre-emphasis
> +        type: boolean
> +
> +      st,no-lsfs-sc:
> +        description: Disables the short circuit protection in LS/FS driver
> +        type: boolean
> +
> +      st,enable-hs-tx-staggering:
> +        description: Enables the basic staggering in HS Tx mode
> +        type: boolean
> +
>      allOf:
>        - if:
>            properties:
> @@ -137,6 +247,14 @@ examples:
>              reg = <0>;
>              phy-supply = <&vdd_usb>;
>              #phy-cells = <0>;
> +            st,tune-hs-dc-level = <2>;
> +            st,enable-fs-rftime-tuning;
> +            st,enable-hs-rftime-reduction;
> +            st,trim-hs-current = <15>;
> +            st,trim-hs-impedance = <1>;
> +            st,tune-squelch-level = <3>;
> +            st,tune-hs-rx-offset = <2>;
> +            st,no-lsfs-sc;
>              connector {
>                  compatible = "usb-a-connector";
>                  vbus-supply = <&vbus_sw>;
> @@ -147,6 +265,14 @@ examples:
>              reg = <1>;
>              phy-supply = <&vdd_usb>;
>              #phy-cells = <1>;
> +            st,tune-hs-dc-level = <2>;
> +            st,enable-fs-rftime-tuning;
> +            st,enable-hs-rftime-reduction;
> +            st,trim-hs-current = <15>;
> +            st,trim-hs-impedance = <1>;
> +            st,tune-squelch-level = <3>;
> +            st,tune-hs-rx-offset = <2>;
> +            st,no-lsfs-sc;
>          };
>      };
>  ...
> -- 
> 2.25.1
> 
> 



More information about the linux-arm-kernel mailing list