Re: [PATCH] dt-bindings: usb: ci-hdrc-usb2: allow up to 3 clocks for qcom,ci-hdrc

Krzysztof Kozlowski <[email protected]>
Newsgroups org.kernel.vger.phone-devel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-usb
Message-ID <20260515-annoying-ultraviolet-dinosaur-d8eff7@quoll>
On Sat, May 09, 2026 at 10:17:52AM +0000, Antony Kurniawan Soemardi wrote:
> Some Qualcomm SoCs such as apq8064 and msm8960 require a third "fs"
> clock in addition to "iface" and "core", needed to propagate resets
> through the controller and wrapper logic. Later SoCs such as msm8974
> dropped this requirement and only use two clocks.
> 
> Signed-off-by: Antony Kurniawan Soemardi <[email protected]>
> ---
> This patch updates the ci-hdrc-usb2 binding to allow up to 3 clocks for
> qcom,ci-hdrc, to accommodate Qualcomm SoCs that require an additional
> "fs" clock for reset propagation.
> 
> This is a prerequisite for the following patch series currently under
> review:
>   - ARM: dts: qcom: apq8064: Fix USB controller clocks [1]
>   - ARM: dts: qcom: msm8960: add RPM clock controller and fix USB
>     clocks [2]
> 
> Without this binding change, those series produce dtbs_check errors
> due to the 3-clock entries in their respective device tree sources.
> 
> [1] https://lore.kernel.org/all/[email protected]/
> [2] https://lore.kernel.org/all/[email protected]/
> ---
>  .../devicetree/bindings/usb/ci-hdrc-usb2.yaml      | 29 ++++++++++++++++------
>  1 file changed, 21 insertions(+), 8 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> index 691d6cf02c27..5d18d47efaed 100644
> --- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> @@ -43,14 +43,6 @@ properties:
>                - nxp,s32g3-usb
>            - const: nxp,s32g2-usb
>  
> -  clocks:
> -    minItems: 1
> -    maxItems: 2
> -
> -  clock-names:
> -    minItems: 1
> -    maxItems: 2
> -

You MUST NOT remove properties from top-level. See writing bindings and
writing schema docs.

>    operating-points-v2:
>      description: A phandle to the OPP table containing the performance states.
>      $ref: /schemas/types.yaml#/definitions/phandle
> @@ -91,6 +83,27 @@ allOf:
>    - $ref: chipidea,usb2-common.yaml#
>    - $ref: usb-hcd.yaml#
>    - $ref: usb-drd.yaml#
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: qcom,ci-hdrc
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 1
> +          maxItems: 3

List the items instead.

> +        clock-names:
> +          minItems: 1
> +          maxItems: 3

No, names cannot be flexible. Neither clocks can, BTW, but that's
problem of existing binding. You need to list the items.


> +    else:
> +      properties:
> +        clocks:
> +          minItems: 1
> +          maxItems: 2
> +        clock-names:
> +          minItems: 1
> +          maxItems: 2

This part is fine.

Best regards,
Krzysztof
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.