From: Jonathan Cameron <jic23@kernel.org>
To: Mircea Caprioru <mircea.caprioru@analog.com>
Cc: <Michael.Hennerich@analog.com>, <alexandru.ardelean@analog.com>,
<lars@metafoo.de>, <gregkh@linuxfoundation.org>,
<linux-kernel@vger.kernel.org>, <linux-iio@vger.kernel.org>,
<devicetree@vger.kernel.org>, <robh+dt@kernel.org>
Subject: Re: [PATCH 1/3] dt-bindings: iio: frequency: Add docs for LTC6952
Date: Sun, 22 Dec 2019 18:07:49 +0000 [thread overview]
Message-ID: <20191222180749.4ad0a939@archlinux> (raw)
In-Reply-To: <20191219134810.6677-1-mircea.caprioru@analog.com>
On Thu, 19 Dec 2019 15:48:08 +0200
Mircea Caprioru <mircea.caprioru@analog.com> wrote:
> Document support for Analog Devices LTC6952 ultralow jitter, 4.5GHz PLL
> with 11 outputs and JESD204B/C support.
>
> Signed-off-by: Mircea Caprioru <mircea.caprioru@analog.com>
I''m far from sure if we have the right balance of clock and IIO specific
+ device specific bindings in here.
For example should the divider only be controlled by whatever the clock
consumer requests?
Definitely want some review of this from the clock side of things.
Thanks,
Jonathan
> ---
> .../bindings/iio/frequency/adi,ltc6952.yaml | 127 ++++++++++++++++++
> 1 file changed, 127 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/iio/frequency/adi,ltc6952.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/frequency/adi,ltc6952.yaml b/Documentation/devicetree/bindings/iio/frequency/adi,ltc6952.yaml
> new file mode 100644
> index 000000000000..a28c773c3948
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/frequency/adi,ltc6952.yaml
> @@ -0,0 +1,127 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# Copyright 2019 Analog Devices Inc.
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/bindings/iio/frequency/adi,ltc6952.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Analog Devices LTC6952 ultralow jitter, JESD204B/C clock generation IC.
> +
> +maintainers:
> + - Mircea Caprioru <mircea.caprioru@analog.com>
> +
> +description: |
> + Analog Devices LTC6952 ultralow jitter, JESD204B/C clock generation IC.
> + https://www.analog.com/media/en/technical-documentation/data-sheets/ltc6952.pdf
> +
> +properties:
> + compatible:
> + enum:
> + - adi,ltc6952
> +
> + reg:
> + maxItems: 1
> +
> + clock-output-names:
> + description: |
> + Clock output signal names indexed by the first cell in the clock
> + specifier (see clock/clock-bindings.txt)
> + maxItems: 1
> +
> + adi,vco-frequency-hz:
> + description: |
> + VCO input frequency. This is fed to the internal distribution path and
> + feedback dividers.
Superficially this feels like it should be a established via the requested
output frequencies and some idea of a 'best' value to satisfy them?
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + maxItems: 1
> +
> + adi,ref-frequency-hz:
> + description: |
> + Reference input frequency. This is fed in the reference divider.
Is this not just an upstream clock?
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> + - clock-output-names
> +
> +patternProperties:
> + "^channel@[0-9]$":
> + type: object
> + description: Represents the external channels which are connected to the device.
> +
> + properties:
> + reg:
> + description: |
> + The channel number. It can have up to 11 channels numbered from 0 to 10.
> + maxItems: 1
> +
> + adi,extended-name:
> + description: Descriptive channel name.
I mention in review of patch 2 this is a definite no. A separate
out_chanX_label type attribute could provide this an use standard "label" dt
binding. I think we currently have that for the IIO device but not yet its channels.
> + maxItems: 1
> +
> + adi,divider:
> + description: |
> + Channel divider. This divides the incoming VCO frequency.
Fundamental thing here is the output frequency required by any consumer.
Feels like this should be done through the clock framework bindings rather than
explicit controls here..
> + maxItems: 1
> +
> + adi,digital-delay:
So I'm assuming there is no binding for this level of fine control in normal
clock bindings? I would like some input from people more knowledgeable on
that framework though.
> + description: |
> + Each output divider can have the start time of the output delayed by
> + integer multiples of half of the VCO period after a synchronization
> + event.
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + - minimum: 0
> + - maximum: 4095
> + maxItems: 1
> +
> + adi,analog-delay:
> + description: |
> + Each output has a fine analog delay feature to further adjust its
> + output delay time (tADELx) in small steps.
Umm. Can we do better than 'small steps' for the units of this?
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + - minimum: 0
> + - maximum: 63
> + maxItems: 1
> +
> + required:
> + - reg
> +
> +examples:
> + - |
> + ltc6952@0 {
> + compatible = "adi,ltc6952";
> + reg = <0>;
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + spi-max-frequency = <10000000>;
> +
> + clock-output-names = "ltc6952_out0", "ltc6952_out1", "ltc6952_out2",
> + "ltc6952_out3", "ltc6952_out4", "ltc6952_out5", "ltc6952_out6",
> + "ltc6952_out7", "ltc6952_out8", "ltc6952_out9", "ltc6952_out10";
> + #clock-cells = <1>;
> +
> + adi,vco-frequency-hz = <4000000000>;
> + adi,ref-frequency-hz = <100000000>;
> +
> + ltc6952_c0: channel@0 {
> + reg = <0>;
> + adi,extended-name = "REF_CLK";
> + adi,divider = <10>;
> + adi,digital-delay = <100>;
> + adi,analog-delay = <0>;
> + };
> +
> + ltc6952_c1: channel@1 {
> + reg = <1>;
> + adi,extended-name = "TEST_CLK";
> + adi,divider = <10>;
> + };
> + };
next prev parent reply other threads:[~2019-12-22 18:07 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-19 13:48 [PATCH 1/3] dt-bindings: iio: frequency: Add docs for LTC6952 Mircea Caprioru
2019-12-19 13:48 ` [PATCH 2/3] iio: frequency: ltc6952: Add support " Mircea Caprioru
2019-12-22 17:58 ` Jonathan Cameron
2019-12-19 13:48 ` [PATCH 3/3] MAINTAINNERS: add entry for LTC6952 driver Mircea Caprioru
2019-12-22 18:07 ` Jonathan Cameron [this message]
2020-01-08 4:12 ` [PATCH 1/3] dt-bindings: iio: frequency: Add docs for LTC6952 Rob Herring
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=20191222180749.4ad0a939@archlinux \
--to=jic23@kernel.org \
--cc=Michael.Hennerich@analog.com \
--cc=alexandru.ardelean@analog.com \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mircea.caprioru@analog.com \
--cc=robh+dt@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).