From: Rob Herring <robh@kernel.org>
To: Olivier Moysan <olivier.moysan@foss.st.com>
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>,
Fabrice Gasnier <fabrice.gasnier@st.com>,
Jonathan Cameron <jic23@kernel.org>,
Lars-Peter Clausen <lars@metafoo.de>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com
Subject: Re: [PATCH v3 1/7] dt-bindings: iio: stm32-adc: add generic channel binding
Date: Mon, 4 Oct 2021 11:57:27 -0500 [thread overview]
Message-ID: <YVsyd+O08h62NVwi@robh.at.kernel.org> (raw)
In-Reply-To: <20210924083410.12332-2-olivier.moysan@foss.st.com>
On Fri, Sep 24, 2021 at 10:34:04AM +0200, Olivier Moysan wrote:
> Add ADC generic channel binding. This binding should
> be used as an alternate to legacy channel properties
> whenever possible.
> ADC generic channel binding allows to identify supported
> internal channels through the following reserved label names:
> "vddcore", "vrefint" and "vbat".
> This binding also allows to set a different sampling time
> for each channel.
>
> Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com>
> ---
> .../bindings/iio/adc/st,stm32-adc.yaml | 100 ++++++++++++++++--
> 1 file changed, 93 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml b/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml
> index a58334c3bb76..1c13921b0556 100644
> --- a/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml
> +++ b/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml
> @@ -222,6 +222,12 @@ patternProperties:
> '#io-channel-cells':
> const: 1
>
> + '#address-cells':
> + const: 1
> +
> + '#size-cells':
> + const: 0
> +
> interrupts:
> description: |
> IRQ Line for the ADC instance. Valid values are:
> @@ -256,6 +262,7 @@ patternProperties:
> - 20 channels, numbered from 0 to 19 (for in0..in19) on stm32h7 and
> stm32mp1.
> $ref: /schemas/types.yaml#/definitions/uint32-array
> + deprecated: true
>
> st,adc-diff-channels:
> description: |
> @@ -265,7 +272,9 @@ patternProperties:
> <vinp vinn>, <vinp vinn>,... vinp and vinn are numbered from 0 to 19.
>
> Note: At least one of "st,adc-channels" or "st,adc-diff-channels" is
> - required. Both properties can be used together. Some channels can be
> + required if no adc generic channel is defined. These legacy channel
> + properties are exclusive with adc generic channel bindings.
> + Both properties can be used together. Some channels can be
> used as single-ended and some other ones as differential (mixed). But
> channels can't be configured both as single-ended and differential.
> $ref: /schemas/types.yaml#/definitions/uint32-matrix
> @@ -279,6 +288,7 @@ patternProperties:
> "vinn" indicates negative input number
> minimum: 0
> maximum: 19
> + deprecated: true
>
> st,min-sample-time-nsecs:
> description:
> @@ -289,6 +299,42 @@ patternProperties:
> list, to set sample time resp. for all channels, or independently for
> each channel.
> $ref: /schemas/types.yaml#/definitions/uint32-array
> + deprecated: true
> +
> + patternProperties:
> + "^channel@([0-9]|1[0-9])$":
> + type: object
> + $ref: "adc.yaml"
You need 'additionalProperties: false' here. Or unevaluatedProperties if
there are properties used and defined in adc.yaml, but not here.
> + description: |
Don't need '|' unless you need to maintain formatting (line breaks).
> + Represents the external channels which are connected to the ADC.
> +
> + properties:
> + reg:
> + items:
> + minimum: 0
> + maximum: 19
> +
> + label:
> + description: |
> + Unique name to identify which channel this is.
> + Reserved label names "vddcore", "vrefint" and "vbat"
> + are used to identify internal channels with matching names.
> +
> + diff-channels:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + items:
> + minimum: 0
> + maximum: 19
> +
> + st,min-sample-time-nsecs:
Use standard unit suffix (-ns).
> + $ref: /schemas/types.yaml#/definitions/uint32
And then drop this.
> + description: |
> + Minimum sampling time in nanoseconds. Depending on hardware (board)
> + e.g. high/low analog input source impedance, fine tune of ADC
> + sampling time may be recommended.
> +
> + required:
> + - reg
>
> allOf:
> - if:
> @@ -369,12 +415,6 @@ patternProperties:
>
> additionalProperties: false
>
> - anyOf:
> - - required:
> - - st,adc-channels
> - - required:
> - - st,adc-diff-channels
> -
> required:
> - compatible
> - reg
> @@ -451,4 +491,50 @@ examples:
> // other adc child node follow...
> };
>
> + - |
> + // Example 3: with stm32mp157c to setup ADC2 with:
> + // - internal channels 13, 14, 15.
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/clock/stm32mp1-clks.h>
> + adc122: adc@48003000 {
> + compatible = "st,stm32mp1-adc-core";
> + reg = <0x48003000 0x400>;
> + interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&rcc ADC12>, <&rcc ADC12_K>;
> + clock-names = "bus", "adc";
> + booster-supply = <&booster>;
> + vdd-supply = <&vdd>;
> + vdda-supply = <&vdda>;
> + vref-supply = <&vref>;
> + st,syscfg = <&syscfg>;
> + interrupt-controller;
> + #interrupt-cells = <1>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + adc@100 {
> + compatible = "st,stm32mp1-adc";
> + #io-channel-cells = <1>;
> + reg = <0x100>;
> + interrupts = <1>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + channel@13 {
> + reg = <13>;
> + label = "vrefint";
> + st,min-sample-time-nsecs = <9000>;
> + };
> + channel@14 {
> + reg = <14>;
> + label = "vddcore";
> + st,min-sample-time-nsecs = <9000>;
> + };
> + channel@15 {
> + reg = <15>;
> + label = "vbat";
> + st,min-sample-time-nsecs = <9000>;
> + };
> + };
> + };
> +
> ...
> --
> 2.17.1
>
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-10-04 16:59 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-24 8:34 [PATCH v3 0/7] iio: adc: stm32-adc: add internal channels support Olivier Moysan
2021-09-24 8:34 ` [PATCH v3 1/7] dt-bindings: iio: stm32-adc: add generic channel binding Olivier Moysan
2021-10-04 16:57 ` Rob Herring [this message]
2021-09-24 8:34 ` [PATCH v3 2/7] dt-bindings: iio: stm32-adc: add nvmem support for vrefint internal channel Olivier Moysan
2021-09-24 8:34 ` [PATCH v3 3/7] iio: adc: stm32-adc: split channel init into several routines Olivier Moysan
2021-09-24 8:34 ` [PATCH v3 4/7] iio: adc: stm32-adc: add support of generic channels binding Olivier Moysan
2021-09-24 8:34 ` [PATCH v3 5/7] iio: adc: stm32-adc: add support of internal channels Olivier Moysan
2021-09-27 16:36 ` [Linux-stm32] " Fabrice Gasnier
2021-09-24 8:34 ` [PATCH v3 6/7] iio: adc: stm32-adc: add vrefint calibration support Olivier Moysan
2021-09-24 8:34 ` [PATCH v3 7/7] iio: adc: stm32-adc: use generic binding for sample-time Olivier Moysan
2021-09-26 12:23 ` [PATCH v3 0/7] iio: adc: stm32-adc: add internal channels support Jonathan Cameron
2021-09-27 16:40 ` Fabrice Gasnier
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=YVsyd+O08h62NVwi@robh.at.kernel.org \
--to=robh@kernel.org \
--cc=alexandre.torgue@foss.st.com \
--cc=devicetree@vger.kernel.org \
--cc=fabrice.gasnier@st.com \
--cc=jic23@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=olivier.moysan@foss.st.com \
/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).