Re: [PATCH] dt-bindings: clock: ti,DM814x-ADPLL: Convert to DT schema

Rob Herring <[email protected]> Mon, 3 Aug 2026 16:50:59 -0500
Newsgroups org.kernel.vger.linux-clk,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Sun, Jul 26, 2026 at 12:17:47AM +0530, Bhargav Joshi wrote:
> Convert the Texas Instruments DM814x ADPLL clock binding to DT schema
> format. Add 'clock-output-names' as required which was missing in
> legacy binding, as the driver (clk-adpll.c) mandates it and fails
> probing if it is missing.
> 
> Signed-off-by: Bhargav Joshi <[email protected]>
> ---
>  .../devicetree/bindings/clock/ti/adpll.txt         |  39 --------
>  .../bindings/clock/ti/ti,dm814-adpll-clock.yaml    | 108 +++++++++++++++++++++
>  2 files changed, 108 insertions(+), 39 deletions(-)

> diff --git a/Documentation/devicetree/bindings/clock/ti/ti,dm814-adpll-clock.yaml b/Documentation/devicetree/bindings/clock/ti/ti,dm814-adpll-clock.yaml
> new file mode 100644
> index 000000000000..7f551dfca030
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/ti/ti,dm814-adpll-clock.yaml
> @@ -0,0 +1,108 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/ti/ti,dm814-adpll-clock.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Texas Instruments DM814x ADPLL Clock
> +
> +maintainers:
> +  - Tony Lindgren <[email protected]>
> +
> +description:
> +  The ADPLL is a register-mapped clock generator found on TI DM814x SoCs. It
> +  provides multiple output clocks from two or three selectable input clocks and
> +  three to four children.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - ti,dm814-adpll-s-clock
> +      - ti,dm814-adpll-lj-clock
> +
> +  reg:
> +    maxItems: 1
> +
> +  '#clock-cells':
> +    const: 1
> +
> +  clocks:
> +    minItems: 2
> +    maxItems: 3
> +
> +  clock-names:
> +    minItems: 2
> +    maxItems: 3
> +
> +  clock-output-names:
> +    minItems: 3
> +    maxItems: 4
> +
> +required:
> +  - compatible
> +  - reg
> +  - '#clock-cells'
> +  - clocks
> +  - clock-output-names
> +
> +if:
> +  properties:
> +    compatible:
> +      contains:
> +        const: ti,dm814-adpll-s-clock
> +then:
> +  properties:
> +    clocks:
> +      minItems: 3
> +    clock-names:
> +      items:
> +        - const: clkinp
> +        - const: clkinpulow
> +        - const: clkinphif

This can move to the top level and just 'minItems: 3' here.

> +    clock-output-names:
> +      items:
> +        - description: dcoclkldo
> +        - description: clkout
> +        - description: clkoutx2
> +        - description: clkouthif

You don't have to document the clock-output-names.

> +else:
> +  properties:
> +    clocks:
> +      maxItems: 2
> +    clock-names:
> +      items:
> +        - const: clkinp
> +        - const: clkinpulow

And just 'maxItems: 2' here.

> +    clock-output-names:
> +      items:
> +        - description: dcoclkldo
> +        - description: clkout
> +        - description: clkoutldo

And drop. Or maybe just 'maxItems: 3'

> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    adpll@40 {
> +        compatible = "ti,dm814-adpll-s-clock";
> +        reg = <0x40 0x40>;
> +        #clock-cells = <1>;
> +        clocks = <&devosc_ck &devosc_ck &devosc_ck>;
> +        clock-names = "clkinp", "clkinpulow", "clkinphif";
> +        clock-output-names = "481c5040.adpll.dcoclkldo",
> +                             "481c5040.adpll.clkout",
> +                             "481c5040.adpll.clkoutx2",
> +                             "481c5040.adpll.clkouthif";
> +    };
> +
> +  - |
> +    adpll@80 {
> +        compatible = "ti,dm814-adpll-lj-clock";
> +        reg = <0x80 0x30>;
> +        #clock-cells = <1>;
> +        clocks = <&devosc_ck &devosc_ck>;
> +        clock-names = "clkinp", "clkinpulow";
> +        clock-output-names = "481c5080.adpll.dcoclkldo",
> +                             "481c5080.adpll.clkout",
> +                             "481c5080.adpll.clkoutldo";
> +    };

One example is enough.