devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: "Michael Turquette" <mturquette@baylibre.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, kernel@pengutronix.de,
	"Linus Walleij" <linus.walleij@linaro.org>,
	linux-gpio@vger.kernel.org,
	"Alvin Šipraga" <alsi@bang-olufsen.dk>
Subject: Re: [PATCH v6 1/2] dt-bindings: clock: add TI CDCE6214 binding
Date: Thu, 4 Sep 2025 14:00:05 -0500	[thread overview]
Message-ID: <20250904190005.GA19595-robh@kernel.org> (raw)
In-Reply-To: <20250903-clk-cdce6214-v6-1-b2cc0a6f282b@pengutronix.de>

On Wed, Sep 03, 2025 at 03:55:45PM +0200, Sascha Hauer wrote:
> Add device tree binding for the CDCE6214, an Ultra-Low Power Clock
> Generator With One PLL, Four Differential Outputs, Two Inputs, and
> Internal EEPROM.
> 
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
>  .../devicetree/bindings/clock/ti,cdce6214.yaml     | 198 +++++++++++++++++++++
>  include/dt-bindings/clock/ti,cdce6214.h            |  24 +++
>  2 files changed, 222 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/clock/ti,cdce6214.yaml b/Documentation/devicetree/bindings/clock/ti,cdce6214.yaml
> new file mode 100644
> index 0000000000000000000000000000000000000000..4d40b8101fd7e094bb1b79c071e1be2c1fefec23
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/ti,cdce6214.yaml
> @@ -0,0 +1,198 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/ti,cdce6214.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: TI CDCE6214 programmable clock generator with PLL
> +
> +maintainers:
> +  - Sascha Hauer <s.hauer@pengutronix.de>
> +
> +description: >
> +  Ultra-Low Power Clock Generator With One PLL, Four Differential Outputs,
> +  Two Inputs, and Internal EEPROM
> +
> +  - CDCE6214: https://www.ti.com/product/CDCE6214
> +
> +properties:
> +  compatible:
> +    enum:
> +      - ti,cdce6214
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    minItems: 1
> +    maxItems: 2
> +
> +  clock-names:
> +    minItems: 1
> +    items:
> +      - enum: [ priref, secref ]
> +      - const: secref
> +
> +  '#address-cells':
> +    const: 1
> +
> +  '#size-cells':
> +    const: 0

No child nodes with 'reg', so drop #address/size-cells.

> +
> +  '#clock-cells':
> +    const: 1
> +
> +patternProperties:
> +  '-pins$':
> +    type: object
> +    additionalProperties: false

blank line

> +    patternProperties:
> +      '^conf':
> +        type: object
> +        additionalProperties: false
> +        $ref: /schemas/pinctrl/pincfg-node.yaml#
> +
> +        properties:
> +          pins:
> +            items:
> +              enum: [priref, secref, out0, out1, out2, out3, out4 ]
> +          io-standard:

Needs a vendor prefix.

> +            description: |
> +              1: CMOS
> +              2: LVDS
> +              3: Low-Power HCSL
> +              4: XTAL mode
> +              5: differential
> +            enum: [1, 2, 3, 4, 5]
> +            $ref: /schemas/types.yaml#/definitions/uint32

blank line between properties

> +          xo-cload-femtofarad:

Needs a vendor prefix

Use standard unit suffixes. It's "-femtofarads".

> +            description: >

Don't need '>'.

> +              Load capacity for XO in Femtofarad
> +            $ref: /schemas/types.yaml#/definitions/uint32
> +          xo-bias-microampere:

vendor prefix and unit suffix.

> +            description: |

Don't need '|'.

> +              Bias current setting of the XO
> +            $ref: /schemas/types.yaml#/definitions/uint32
> +          cmosp-mode:

Vendor prefix

And so on...

> +            description: |
> +              Driving mode for CMOSN output:
> +              1: Low Polarity
> +              2: High Polrity
> +              3: Disable
> +            $ref: /schemas/types.yaml#/definitions/uint32
> +            maximum: 3
> +          cmosn-mode:
> +            description: |
> +              Driving mode for CMOSN output:
> +              1: Low Polarity
> +              2: High Polrity
> +              3: Disable
> +            $ref: /schemas/types.yaml#/definitions/uint32
> +            maximum: 3
> +
> +        allOf:
> +          - if:
> +              properties:
> +                pins:
> +                  contains:
> +                    const: priref
> +            then:
> +              properties:
> +                io-standard:
> +                  enum: [ 1, 5 ]
> +
> +          - if:
> +              properties:
> +                pins:
> +                  contains:
> +                    const: secref
> +            then:
> +              properties:
> +                io-standard:
> +                  enum: [ 1, 4, 5 ]
> +
> +          - if:
> +              properties:
> +                pins:
> +                  contains:
> +                    const: out0
> +            then:
> +              properties:
> +                io-standard:
> +                  enum: [ 1 ]
> +
> +          - if:
> +              properties:
> +                pins:
> +                  contains:
> +                    enum:
> +                      - out1
> +                      - out4
> +            then:
> +              properties:
> +                io-standard:
> +                  enum: [ 1, 2, 3 ]
> +
> +          - if:
> +              properties:
> +                pins:
> +                  contains:
> +                    enum:
> +                      - out2
> +                      - out3
> +            then:
> +              properties:
> +                io-standard:
> +                  enum: [ 2, 3 ]
> +
> +        required:
> +          - pins
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - '#clock-cells'
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/ti,cdce6214.h>
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        clock-generator@67 {
> +            compatible = "ti,cdce6214";
> +            reg = <0x67>;
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +            #clock-cells = <1>;
> +            clocks = <&clock_ref25m>;
> +            clock-names = "priref";
> +
> +            cdce6214_pins: cdce6214-pins {
> +                conf1 {
> +                    pins = "secref";
> +                    io-standard = <CDCE6214_IOSTD_XTAL>;
> +                    xo-cload-femtofarad = <8100>;
> +                    xo-bias-microampere = <100>;
> +                };
> +
> +                conf2 {
> +                    pins = "out1";
> +                    io-standard = <CDCE6214_IOSTD_CMOS>;
> +                    cmosp-mode = <CDCE6214_CMOS_MODE_HIGH>;
> +                    cmosn-mode = <CDCE6214_CMOS_MODE_LOW>;
> +                };
> +
> +                conf3 {
> +                    pins = "out4";
> +                    io-standard = <CDCE6214_IOSTD_CMOS>;
> +                    cmosp-mode = <CDCE6214_CMOS_MODE_HIGH>;
> +                    cmosn-mode = <CDCE6214_CMOS_MODE_LOW>;
> +                };
> +            };
> +        };
> +    };
> diff --git a/include/dt-bindings/clock/ti,cdce6214.h b/include/dt-bindings/clock/ti,cdce6214.h
> new file mode 100644
> index 0000000000000000000000000000000000000000..6d2cc5f01864e70a3fbccbfe20e67899e0d049e4
> --- /dev/null
> +++ b/include/dt-bindings/clock/ti,cdce6214.h
> @@ -0,0 +1,24 @@
> +#ifndef _DT_BINDINGS_CLK_TI_CDCE6214_H
> +#define _DT_BINDINGS_CLK_TI_CDCE6214_H
> +
> +/* Clock indices for the clocks provided by the CDCE6214 */
> +#define CDCE6214_CLK_OUT0	2
> +#define CDCE6214_CLK_OUT1	3
> +#define CDCE6214_CLK_OUT2	4
> +#define CDCE6214_CLK_OUT3	5
> +#define CDCE6214_CLK_OUT4	6
> +#define CDCE6214_CLK_PLL	7
> +#define CDCE6214_CLK_PSA	8
> +#define CDCE6214_CLK_PSB	9
> +
> +#define CDCE6214_IOSTD_CMOS	1
> +#define CDCE6214_IOSTD_LVDS	2
> +#define CDCE6214_IOSTD_LP_HCSL	3
> +#define CDCE6214_IOSTD_XTAL	4
> +#define CDCE6214_IOSTD_DIFF	5
> +
> +#define CDCE6214_CMOS_MODE_LOW		1
> +#define CDCE6214_CMOS_MODE_HIGH		2
> +#define CDCE6214_CMOS_MODE_DISABLED	3
> +
> +#endif /* _DT_BINDINGS_CLK_TI_CDCE6214_H */
> 
> -- 
> 2.47.2
> 

  parent reply	other threads:[~2025-09-04 19:00 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-03 13:55 [PATCH v6 0/2] clk: add support for TI CDCE6214 Sascha Hauer
2025-09-03 13:55 ` [PATCH v6 1/2] dt-bindings: clock: add TI CDCE6214 binding Sascha Hauer
2025-09-04  7:18   ` Krzysztof Kozlowski
2025-09-04  7:34     ` Sascha Hauer
2025-09-04  9:43       ` Krzysztof Kozlowski
2025-09-04 11:31         ` Sascha Hauer
2025-09-04 19:00   ` Rob Herring [this message]
2025-09-03 13:55 ` [PATCH v6 2/2] clk: add TI CDCE6214 clock driver Sascha Hauer
2025-09-04 21:10   ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250904190005.GA19595-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=alsi@bang-olufsen.dk \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kernel@pengutronix.de \
    --cc=krzk+dt@kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=s.hauer@pengutronix.de \
    --cc=sboyd@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).