diff mbox series

[v3,1/2] dt-bindings: iio: frequency: add admfm2000

Message ID 20231122105831.182570-1-kimseer.paller@analog.com (mailing list archive)
State Changes Requested
Headers show
Series [v3,1/2] dt-bindings: iio: frequency: add admfm2000 | expand

Commit Message

Kim Seer Paller Nov. 22, 2023, 10:58 a.m. UTC
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@analog.com>
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202311220624.J7Nqg5h1-lkp@intel.com/
---
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 | 140 ++++++++++++++++++
 MAINTAINERS                                   |   7 +
 2 files changed, 147 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/frequency/adi,admfm2000.yaml


base-commit: c2d5304e6c648ebcf653bace7e51e0e6742e46c8

Comments

Krzysztof Kozlowski Nov. 22, 2023, 6:21 p.m. UTC | #1
On 22/11/2023 11:58, 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@analog.com>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202311220624.J7Nqg5h1-lkp@intel.com/

Drop these two tags. They are not valid.

> ---
> V2 -> V3: Adjusted indentation to resolve wrong indentation warning. 
>           Changed node name to converter. Updated the descriptions to clarify
>           the properties.


> +title: ADMFM2000 Dual Microwave Down Converter
> +
> +maintainers:
> +  - Kim Seer Paller <kimseer.paller@analog.com>
> +
> +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
> +
> +  switch1-gpios:
> +    items:
> +      - description:
> +          Setting B15 GPIO to high and B16 GPIO to low will result in channel 1
> +          being in Direct IF mode.
> +      - description:
> +          Setting B15 GPIO to low and B16 GPIO to high will result in channel 1
> +          being in Mixer mode.

This still does not tell which one is B15 and which is B16. I am asking
this for third time.

items:
  - description: B15 GPIO, when high (and B16 low) channel 1 is in
Direct IF mode


Best regards,
Krzysztof
Kim Seer Paller Nov. 23, 2023, 6:13 a.m. UTC | #2
> > ---
> > V2 -> V3: Adjusted indentation to resolve wrong indentation warning.
> >           Changed node name to converter. Updated the descriptions to clarify
> >           the properties.
> 
> 
> > +title: ADMFM2000 Dual Microwave Down Converter
> > +
> > +maintainers:
> > +  - Kim Seer Paller <kimseer.paller@analog.com>
> > +
> > +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
> > +
> > +  switch1-gpios:
> > +    items:
> > +      - description:
> > +          Setting B15 GPIO to high and B16 GPIO to low will result in channel 1
> > +          being in Direct IF mode.
> > +      - description:
> > +          Setting B15 GPIO to low and B16 GPIO to high will result in channel 1
> > +          being in Mixer mode.
> 
> This still does not tell which one is B15 and which is B16. I am asking
> this for third time.
> 
> items:
>   - description: B15 GPIO, when high (and B16 low) channel 1 is in
> Direct IF mode

I understand now, thank you. I was also wondering if this applies to the 
attenuation-gpios, or if I should keep it as is?

Best regards,
Kim
Krzysztof Kozlowski Nov. 23, 2023, 7:20 a.m. UTC | #3
On 23/11/2023 07:13, Paller, Kim Seer wrote:
>>> ---
>>> V2 -> V3: Adjusted indentation to resolve wrong indentation warning.
>>>           Changed node name to converter. Updated the descriptions to clarify
>>>           the properties.
>>
>>
>>> +title: ADMFM2000 Dual Microwave Down Converter
>>> +
>>> +maintainers:
>>> +  - Kim Seer Paller <kimseer.paller@analog.com>
>>> +
>>> +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
>>> +
>>> +  switch1-gpios:
>>> +    items:
>>> +      - description:
>>> +          Setting B15 GPIO to high and B16 GPIO to low will result in channel 1
>>> +          being in Direct IF mode.
>>> +      - description:
>>> +          Setting B15 GPIO to low and B16 GPIO to high will result in channel 1
>>> +          being in Mixer mode.
>>
>> This still does not tell which one is B15 and which is B16. I am asking
>> this for third time.
>>
>> items:
>>   - description: B15 GPIO, when high (and B16 low) channel 1 is in
>> Direct IF mode
> 
> I understand now, thank you. I was also wondering if this applies to the 
> attenuation-gpios, or if I should keep it as is?

Yes, something like this applies to all your properties with multiple
entries. You need to define the order.

Best regards,
Krzysztof
Kim Seer Paller Nov. 23, 2023, 8:24 a.m. UTC | #4
> >>> ---
> >>> V2 -> V3: Adjusted indentation to resolve wrong indentation warning.
> >>>           Changed node name to converter. Updated the descriptions to clarify
> >>>           the properties.
> >>
> >>
> >>> +title: ADMFM2000 Dual Microwave Down Converter
> >>> +
> >>> +maintainers:
> >>> +  - Kim Seer Paller <kimseer.paller@analog.com>
> >>> +
> >>> +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
> >>> +
> >>> +  switch1-gpios:
> >>> +    items:
> >>> +      - description:
> >>> +          Setting B15 GPIO to high and B16 GPIO to low will result in channel
> 1
> >>> +          being in Direct IF mode.
> >>> +      - description:
> >>> +          Setting B15 GPIO to low and B16 GPIO to high will result in channel
> 1
> >>> +          being in Mixer mode.
> >>
> >> This still does not tell which one is B15 and which is B16. I am asking
> >> this for third time.
> >>
> >> items:
> >>   - description: B15 GPIO, when high (and B16 low) channel 1 is in
> >> Direct IF mode
> >
> > I understand now, thank you. I was also wondering if this applies to the
> > attenuation-gpios, or if I should keep it as is?
> 
> Yes, something like this applies to all your properties with multiple
> entries. You need to define the order.

Before I send a new patch/commit, could you please check this one if it is 
properly defined?

  attenuation1-gpios:
    items:
      - description: C14 GPIO, when low (and C15, C16, D14, D15 high)
          channel 1 attenuation is 1 dB.
      - description: C15 GPIO, when low (and C14, C16, D14, D15 high)
          channel 1 attenuation is 2 dB.
      - description: C16 GPIO, when low (and C14, C15, D14, D15 high)
          channel 1 attenuation is 4 dB.
      - description: D14 GPIO, when low (and C14, C15, C16, D15 high)
          channel 1 attenuation is 8 dB.
      - description: D15 GPIO, when low (and C14, C15, C16, D14 high)
          channel 1 attenuation is 16 dB.

Thanks,
Kim
Krzysztof Kozlowski Nov. 23, 2023, 8:32 a.m. UTC | #5
On 23/11/2023 09:24, Paller, Kim Seer wrote:
>>>>> ---
>>>>> V2 -> V3: Adjusted indentation to resolve wrong indentation warning.
>>>>>           Changed node name to converter. Updated the descriptions to clarify
>>>>>           the properties.
>>>>
>>>>
>>>>> +title: ADMFM2000 Dual Microwave Down Converter
>>>>> +
>>>>> +maintainers:
>>>>> +  - Kim Seer Paller <kimseer.paller@analog.com>
>>>>> +
>>>>> +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
>>>>> +
>>>>> +  switch1-gpios:
>>>>> +    items:
>>>>> +      - description:
>>>>> +          Setting B15 GPIO to high and B16 GPIO to low will result in channel
>> 1
>>>>> +          being in Direct IF mode.
>>>>> +      - description:
>>>>> +          Setting B15 GPIO to low and B16 GPIO to high will result in channel
>> 1
>>>>> +          being in Mixer mode.
>>>>
>>>> This still does not tell which one is B15 and which is B16. I am asking
>>>> this for third time.
>>>>
>>>> items:
>>>>   - description: B15 GPIO, when high (and B16 low) channel 1 is in
>>>> Direct IF mode
>>>
>>> I understand now, thank you. I was also wondering if this applies to the
>>> attenuation-gpios, or if I should keep it as is?
>>
>> Yes, something like this applies to all your properties with multiple
>> entries. You need to define the order.
> 
> Before I send a new patch/commit, could you please check this one if it is 
> properly defined?
> 
>   attenuation1-gpios:
>     items:
>       - description: C14 GPIO, when low (and C15, C16, D14, D15 high)
>           channel 1 attenuation is 1 dB.
>       - description: C15 GPIO, when low (and C14, C16, D14, D15 high)
>           channel 1 attenuation is 2 dB.
>       - description: C16 GPIO, when low (and C14, C15, D14, D15 high)
>           channel 1 attenuation is 4 dB.
>       - description: D14 GPIO, when low (and C14, C15, C16, D15 high)
>           channel 1 attenuation is 8 dB.
>       - description: D15 GPIO, when low (and C14, C15, C16, D14 high)
>           channel 1 attenuation is 16 dB.

This actually could be written in easier way like:

  attenuation1-gpios:
    description: |
      Choice of attenuation:
      C14 C15   ......
      1    0   0   0   - 1 dB
      0    1   0   0   - 2 dB
      ...
    items:
      - description: C14 GPIO
      - description: C15 GPIO
      - description: C16 GPIO
      - description: D14 GPIO
      - description: D15 GPIO

or whatever is easy to understand. The point is that you must define the
order of GPIOs and explain their meaning.

Best regards,
Krzysztof
diff mbox series

Patch

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 000000000..57844c8b7
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/frequency/adi,admfm2000.yaml
@@ -0,0 +1,140 @@ 
+# 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@analog.com>
+
+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
+
+  switch1-gpios:
+    items:
+      - description:
+          Setting B15 GPIO to high and B16 GPIO to low will result in channel 1
+          being in Direct IF mode.
+      - description:
+          Setting B15 GPIO to low and B16 GPIO to high will result in channel 1
+          being in Mixer mode.
+
+  switch2-gpios:
+    items:
+      - description:
+          Setting K14 GPIO to high and L14 GPIO to low will result in channel 2
+          being in Mixer mode.
+      - description:
+          Setting K14 GPIO to low and L14 GPIO to high will result in channel 2
+          being in Direct IF mode.
+
+  attenuation1-gpios:
+    description:
+      Must contain an array of 5 GPIO specifiers, referring to the GPIO pins
+      connected to the C14, C15, C16, D14, and D15. The DSA attenuation control
+      is by the logic level of the GPIO pins. All high at the logic level on
+      the GPIO pins give the minimum attenuation, 0 dB and all low for the
+      maximum attenuation, at 31 dB.
+    minItems: 5
+    maxItems: 5
+
+  attenuation2-gpios:
+    description:
+      Must contain an array of 5 GPIO specifiers, referring to the GPIO pins
+      connected to the L15, L16, M14, M15, and M16. The DSA attenuation control
+      is by the logic level of the GPIO pins. All high at the logic level on
+      the GPIO pins give the minimum attenuation, 0 dB and all low for the
+      maximum attenuation, at 31 dB.
+    minItems: 5
+    maxItems: 5
+
+  '#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]
+
+    required:
+      - reg
+      - adi,mode
+
+required:
+  - compatible
+  - switch1-gpios
+  - switch2-gpios
+  - attenuation1-gpios
+  - attenuation2-gpios
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    converter {
+      compatible = "adi,admfm2000";
+
+      switch1-gpios = <&gpio 1 GPIO_ACTIVE_LOW>,
+                      <&gpio 2 GPIO_ACTIVE_HIGH>;
+
+      switch2-gpios = <&gpio 3 GPIO_ACTIVE_LOW>,
+                      <&gpio 4 GPIO_ACTIVE_HIGH>;
+
+      attenuation1-gpios = <&gpio 17 GPIO_ACTIVE_LOW>,
+                           <&gpio 22 GPIO_ACTIVE_LOW>,
+                           <&gpio 23 GPIO_ACTIVE_LOW>,
+                           <&gpio 24 GPIO_ACTIVE_LOW>,
+                           <&gpio 25 GPIO_ACTIVE_LOW>;
+
+      attenuation2-gpios = <&gpio 0 GPIO_ACTIVE_LOW>,
+                           <&gpio 5 GPIO_ACTIVE_LOW>,
+                           <&gpio 6 GPIO_ACTIVE_LOW>,
+                           <&gpio 16 GPIO_ACTIVE_LOW>,
+                           <&gpio 26 GPIO_ACTIVE_LOW>;
+
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      channel@0 {
+        reg = <0>;
+        adi,mode = <1>;
+      };
+
+      channel@1 {
+        reg = <1>;
+        adi,mode = <1>;
+      };
+    };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 0e79e24b6..f1692ec68 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1247,6 +1247,13 @@  W:	https://ez.analog.com/linux-software-drivers
 F:	Documentation/devicetree/bindings/hwmon/adi,adm1177.yaml
 F:	drivers/hwmon/adm1177.c
 
+ANALOG DEVICES INC ADMFM2000 DRIVER
+M:	Kim Seer Paller <kimseer.paller@analog.com>
+L:	linux-iio@vger.kernel.org
+S:	Supported
+W:	https://ez.analog.com/linux-software-drivers
+F:	Documentation/devicetree/bindings/iio/frequency/adi,admfm2000.yaml
+
 ANALOG DEVICES INC ADMV1013 DRIVER
 M:	Antoniu Miclaus <antoniu.miclaus@analog.com>
 L:	linux-iio@vger.kernel.org