[PATCH v4 5/8] dt-bindings: iio: add backend support to sd modulator

Olivier Moysan posted 8 patches 1 year, 7 months ago
There is a newer version of this series
[PATCH v4 5/8] dt-bindings: iio: add backend support to sd modulator
Posted by Olivier Moysan 1 year, 7 months ago
The legacy sd modulator driver registers the sigma delta modulator as
an IIO channel provider. This implementation is not convenient when the
SD modulator has to be cascaded with another IIO device. The scaling
information is distributed across devices, which makes it difficult to
report consistent scaling data on IIO devices.

The solution is to expose these cascaded IIO devices as an aggregate
device, which report global scaling information.
Add IIO backend support to SD modulator to allow scaling information
management.

Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com>
---
 .../iio/adc/sigma-delta-modulator.yaml        | 23 +++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml b/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml
index cab0d425eaa4..3f682d95d807 100644
--- a/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml
@@ -18,18 +18,37 @@ properties:
       - sd-modulator
       - ads1201
 
+  '#io-backend-cells':
+    const: 0
+
   '#io-channel-cells':
     const: 0
 
+  reg:
+    maxItems: 1
+
+  vref-supply:
+    description: Phandle to the vref input analog reference voltage.
+
 required:
   - compatible
-  - '#io-channel-cells'
+
+anyOf:
+  - required: ['#io-backend-cells']
+  - required: ['#io-channel-cells']
 
 additionalProperties: false
 
 examples:
   - |
-    ads1202: adc {
+    // Backend binding example. SD modulator configured as an IIO backend device
+    ads1201_0 {
+      compatible = "sd-modulator";
+      #io-backend-cells = <0>;
+    };
+
+    // Legacy binding example. SD modulator configured as an IIO channel provider
+    ads1201_1 {
       compatible = "sd-modulator";
       #io-channel-cells = <0>;
     };
-- 
2.25.1
Re: [PATCH v4 5/8] dt-bindings: iio: add backend support to sd modulator
Posted by Conor Dooley 1 year, 7 months ago
On Thu, Jul 04, 2024 at 05:53:33PM +0200, Olivier Moysan wrote:
> The legacy sd modulator driver registers the sigma delta modulator as
> an IIO channel provider. This implementation is not convenient when the
> SD modulator has to be cascaded with another IIO device. The scaling
> information is distributed across devices, which makes it difficult to
> report consistent scaling data on IIO devices.
> 
> The solution is to expose these cascaded IIO devices as an aggregate
> device, which report global scaling information.
> Add IIO backend support to SD modulator to allow scaling information
> management.
> 
> Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com

The backend portion of this looks fine to me, thanks.

>
> ---
>  .../iio/adc/sigma-delta-modulator.yaml        | 23 +++++++++++++++++--
>  1 file changed, 21 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml b/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml
> index cab0d425eaa4..3f682d95d807 100644
> --- a/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml
> +++ b/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml
> @@ -18,18 +18,37 @@ properties:
>        - sd-modulator
>        - ads1201
>  
> +  '#io-backend-cells':
> +    const: 0
> +
>    '#io-channel-cells':
>      const: 0
>  
> +  reg:
> +    maxItems: 1
> +
> +  vref-supply:
> +    description: Phandle to the vref input analog reference voltage.

These two look like unrelated changes that should be done in their own
patch. They certainly deserve a justification.

Cheers,
Conor.

> +
>  required:
>    - compatible
> -  - '#io-channel-cells'
> +
> +anyOf:
> +  - required: ['#io-backend-cells']
> +  - required: ['#io-channel-cells']
>  
>  additionalProperties: false
>  
>  examples:
>    - |
> -    ads1202: adc {
> +    // Backend binding example. SD modulator configured as an IIO backend device
> +    ads1201_0 {
> +      compatible = "sd-modulator";
> +      #io-backend-cells = <0>;
> +    };
> +
> +    // Legacy binding example. SD modulator configured as an IIO channel provider
> +    ads1201_1 {
>        compatible = "sd-modulator";
>        #io-channel-cells = <0>;
>      };
> -- 
> 2.25.1
>