Re: [PATCH v4 4/5] dt-bindings: iio: amplifiers: Add docs for HMC425A Step Attenuator

From: Jonathan Cameron
Date: Thu Feb 06 2020 - 05:26:21 EST


On Mon, 3 Feb 2020 11:25:48 +0000
"Ardelean, Alexandru" <alexandru.Ardelean@xxxxxxxxxx> wrote:

> On Sun, 2020-02-02 at 10:53 +0000, Jonathan Cameron wrote:
> > On Wed, 29 Jan 2020 16:23:00 +0200
> > Beniamin Bia <beniamin.bia@xxxxxxxxxx> wrote:
> >
> > > From: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> > >
> > > Document support for Analog Devices MC425A Step Attenuator.
> > >
> > > Signed-off-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> > > Signed-off-by: Beniamin Bia <beniamin.bia@xxxxxxxxxx>
> > > ---
> > > .../bindings/iio/amplifiers/adi,hmc425a.yaml | 48 +++++++++++++++++++
> > > 1 file changed, 48 insertions(+)
> > > create mode 100644
> > > Documentation/devicetree/bindings/iio/amplifiers/adi,hmc425a.yaml
> > >
> > > diff --git
> > > a/Documentation/devicetree/bindings/iio/amplifiers/adi,hmc425a.yaml
> > > b/Documentation/devicetree/bindings/iio/amplifiers/adi,hmc425a.yaml
> > > new file mode 100644
> > > index 000000000000..d800639c14a5
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/iio/amplifiers/adi,hmc425a.yaml
> > > @@ -0,0 +1,48 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/iio/amplifiers/adi,hmc425a.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: HMC425A 6-bit Digital Step Attenuator
> > > +
> > > +maintainers:
> > > +- Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> > > +- Beniamin Bia <beniamin.bia@xxxxxxxxxx>
> > > +
> > > +description: |
> > > + Digital Step Attenuator IIO device with gpio interface.
> > > + HMC425A 0.5 dB LSB GaAs MMIC 6-BIT DIGITAL POSITIVE CONTROL ATTENUATOR,
> > > 2.2 - 8.0 GHz
> > > +
> > > https://www.analog.com/media/en/technical-documentation/data-sheets/hmc425A.pdf
> > > +
> > > +properties:
> > > + compatible:
> > > + enum:
> > > + - adi,hmc425a
> > > +
> > > + vcc-supply: true
> > > +
> > > + ctrl-gpios:
> > > + description:
> > > + Must contain an array of 6 GPIO specifiers, referring to the GPIO
> > > pins
> > > + connected to the control pins V1-V6.
> > > + maxItems: 6
> >
> > Does this force exactly 6?
>
> I'm [also] a bit unsure whether to force this number in DT.
> One idea [with this driver] would be to maybe have it support multiple of these
> GPIO-controlled attenuators/amplifiers. And those could have a higher/lower
> number of GPIOs.
>
> In any case, we could enforce this as-is [for now], and see later when/if adding
> new parts.
> No strong opinion from my side about this though.
It should be enforced for each of the devices supported.
So for devices with less, it would only allow precisely that
lesser number.

One slight quirk is someone crazy might wire certain pins to high or low
because they don't need the precision.

Not sure how we handle that one but can deal with it when it happens.

Jonathan

>
> >
> > > +
> > > +required:
> > > + - compatible
> > > + - ctrl-gpios
> > > +
> > > +examples:
> > > + - |
> > > + #include <dt-bindings/gpio/gpio.h>
> > > + gpio_hmc425a: hmc425a {
> > > + compatible = "adi,hmc425a";
> > > + ctrl-gpios = <&gpio 40 GPIO_ACTIVE_HIGH>,
> > > + <&gpio 39 GPIO_ACTIVE_HIGH>,
> > > + <&gpio 38 GPIO_ACTIVE_HIGH>,
> > > + <&gpio 37 GPIO_ACTIVE_HIGH>,
> > > + <&gpio 36 GPIO_ACTIVE_HIGH>,
> > > + <&gpio 35 GPIO_ACTIVE_HIGH>;
> > > + vcc-supply = <&foo>;
> > > + };
> > > +...