Message ID | 20240724153639.803263-6-olivier.moysan@foss.st.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | iio: adc: dfsdm: add scaling support | expand |
On Wed, Jul 24, 2024 at 05:36: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> > --- > .../bindings/iio/adc/sigma-delta-modulator.yaml | 17 +++++++++++++++-- > 1 file changed, 15 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..b245971fecb0 100644 > --- a/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml > +++ b/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml > @@ -18,18 +18,31 @@ properties: > - sd-modulator > - ads1201 > > + '#io-backend-cells': > + const: 0 > + > '#io-channel-cells': > const: 0 > > 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 { Why the node name change? 'adc' is generic and was correct. This should be a separate example. (Add '- |'). > compatible = "sd-modulator"; > #io-channel-cells = <0>; > }; > -- > 2.25.1 >
diff --git a/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml b/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml index cab0d425eaa4..b245971fecb0 100644 --- a/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml +++ b/Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.yaml @@ -18,18 +18,31 @@ properties: - sd-modulator - ads1201 + '#io-backend-cells': + const: 0 + '#io-channel-cells': const: 0 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>; };
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> --- .../bindings/iio/adc/sigma-delta-modulator.yaml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-)