Re: [PATCH v6 1/2] dt-bindings: iio: frequency: add admfm2000

From: Conor Dooley
Date: Fri Jan 19 2024 - 03:32:37 EST


On Fri, Jan 19, 2024 at 09:20:01AM +0100, Nuno Sá wrote:
> Hi Kim,
>
> On Fri, 2024-01-19 at 00:30 +0000, Paller, Kim Seer wrote:
> > > -----Original Message-----
> > > From: Conor Dooley <conor@xxxxxxxxxx>
> > > Sent: Friday, January 19, 2024 12:10 AM
> > > To: Paller, Kim Seer <KimSeer.Paller@xxxxxxxxxx>
> > > Cc: linux-iio@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-
> > > kernel@xxxxxxxxxxxxxxx; Jonathan Cameron <jic23@xxxxxxxxxx>; Lars-Peter
> > > Clausen <lars@xxxxxxxxxx>; Hennerich, Michael
> > > <Michael.Hennerich@xxxxxxxxxx>; Rob Herring <robh+dt@xxxxxxxxxx>;
> > > Krzysztof Kozlowski <krzysztof.kozlowski+dt@xxxxxxxxxx>; Conor Dooley
> > > <conor+dt@xxxxxxxxxx>; Crt Mori <cmo@xxxxxxxxxxx>; Linus Walleij
> > > <linus.walleij@xxxxxxxxxx>; Bartosz Golaszewski <brgl@xxxxxxxx>
> > > Subject: Re: [PATCH v6 1/2] dt-bindings: iio: frequency: add admfm2000
> > >
> > > [External]
> > >
> > > Hey,
> > >
> > > On Thu, Jan 18, 2024 at 04:58:55PM +0800, Kim Seer Paller wrote:
> > > > Dual microwave down converter module with input RF and LO frequency
> > > > ranges from 0.5 to 32 GHz and an output IF frequency range from 0.1 to
> > > > 8 GHz. It consists of a LNA, mixer, IF filter, DSA, and IF amplifier
> > > > for each down conversion path.
> > > >
> > > > Signed-off-by: Kim Seer Paller <kimseer.paller@xxxxxxxxxx>
> > > > ---
> > > > V5 -> V6: Moved array of switch and attenuation GPIOs to the channel node.
> > > >           Changed pin coords with friendly names. Removed Reviewed-by tag.
> > > > V4 -> V5: Added Reviewed-by tag.
> > > > V3 -> V4: Updated the description of the properties with multiple entries and
> > > >           defined the order.
> > > > V2 -> V3: Adjusted indentation to resolve wrong indentation warning.
> > > >           Changed node name to converter. Updated the descriptions to clarify
> > > >           the properties.
> > > > V1 -> V2: Removed '|' after description. Specified the pins connected to
> > > >           the GPIOs. Added additionalProperties: false. Changed node name to
> > > gpio.
> > > >           Aligned < syntax with the previous syntax in the examples.
> > > >
> > > >  .../bindings/iio/frequency/adi,admfm2000.yaml | 129 ++++++++++++++++++
> > > >  MAINTAINERS                                   |   7 +
> > > >  2 files changed, 136 insertions(+)
> > > >  create mode 100644
> > > Documentation/devicetree/bindings/iio/frequency/adi,admfm2000.yaml
> > > >
> > > > diff --git
> > > a/Documentation/devicetree/bindings/iio/frequency/adi,admfm2000.yaml
> > > b/Documentation/devicetree/bindings/iio/frequency/adi,admfm2000.yaml
> > > > new file mode 100644
> > > > index 000000000000..6f2c91c38666
> > > > --- /dev/null
> > > > +++
> > > b/Documentation/devicetree/bindings/iio/frequency/adi,admfm2000.yaml
> > > > @@ -0,0 +1,129 @@
> > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > > +# Copyright 2023 Analog Devices Inc.
> > > > +%YAML 1.2
> > > > +---
> > > > +$id: http://devicetree.org/schemas/iio/frequency/adi,admfm2000.yaml#
> > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > +
> > > > +title: ADMFM2000 Dual Microwave Down Converter
> > > > +
> > > > +maintainers:
> > > > +  - Kim Seer Paller <kimseer.paller@xxxxxxxxxx>
> > > > +
> > > > +description:
> > > > +  Dual microwave down converter module with input RF and LO frequency
> > > ranges
> > > > +  from 0.5 to 32 GHz and an output IF frequency range from 0.1 to 8 GHz.
> > > > +  It consists of a LNA, mixer, IF filter, DSA, and IF amplifier for each down
> > > > +  conversion path.
> > > > +
> > > > +properties:
> > > > +  compatible:
> > > > +    enum:
> > > > +      - adi,admfm2000
> > > > +
> > > > +  '#address-cells':
> > > > +    const: 1
> > > > +
> > > > +  '#size-cells':
> > > > +    const: 0
> > > > +
> > > > +patternProperties:
> > > > +  "^channel@[0-1]$":
> > > > +    type: object
> > > > +    description: Represents a channel of the device.
> > > > +
> > > > +    additionalProperties: false
> > > > +
> > > > +    properties:
> > > > +      reg:
> > > > +        description:
> > > > +          The channel number.
> > > > +        minimum: 0
> > > > +        maximum: 1
> > > > +
> > > > +      adi,mode:
> > > > +        description:
> > > > +          RF path selected for the channel.
> > > > +            0 - Direct IF mode
> > > > +            1 - Mixer mode
> > > > +        $ref: /schemas/types.yaml#/definitions/uint32
> > > > +        enum: [0, 1]
> > >
> > > How come this is an enum, rather than a boolean property such as
> > > "adi,mixer-mode"?
> >
> > I used an enum, perhaps because it was easier to implement. However, this
> > could be changed if a boolean property might be more suitable in this case.
> > Is that the preferred option?
> >
>
> Hmmm, How is the enum easier than a boolean property :)? I guess the device has a
> default mode. So, if it is Direct IF mode you have 'adi,mixer-mode' to enable that
> mode and that's it. So the code is pretty much just:
>
> if (device_property_read_bool()) {

device_property_present() is preferred I think.

> /* enable mixer mode */
> }
>
> Also remember that from a bindings point of view being easier to implement or not in
> the driver does not matter much. Take for an example, properties with well know units
> like 'microamp'. It would be much easier to just have an enum with the device
> register values but that's not how we should do it since it wouldn't be intuitive at
> all for people reading devicetrees.
>
> - Nuno Sá
>

Attachment: signature.asc
Description: PGP signature