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

From: Kim Seer Paller
Date: Thu Nov 23 2023 - 04:46:20 EST


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>
---
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 | 154 ++++++++++++++++++
MAINTAINERS | 7 +
2 files changed, 161 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 000000000..037438737
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/frequency/adi,admfm2000.yaml
@@ -0,0 +1,154 @@
+# 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
+
+ switch1-gpios:
+ items:
+ - description: B15 GPIO, when high (and B16 low) channel 1 is in
+ Direct IF mode.
+ - description: B16 GPIO, when high (and B15 low) channel 1 is in
+ Mixer mode.
+
+ switch2-gpios:
+ items:
+ - description: K14 GPIO, when high (and L14 low) channel 2 is in
+ Mixer mode.
+ - description: L14 GPIO, when high (and K14 low) channel 2 is in
+ Direct IF mode.
+
+ attenuation1-gpios:
+ description: |
+ Choice of attenuation:
+ D15 D14 C16 C15 C14
+ 1 1 1 1 1 0 dB
+ 1 1 1 1 0 -1 dB
+ 1 1 1 0 1 -2 dB
+ 1 1 0 1 1 -4 dB
+ 1 0 1 1 1 -8 dB
+ 0 1 1 1 1 -16 dB
+ 0 0 0 0 0 -31 dB
+
+ items:
+ - description: C14 GPIO
+ - description: C15 GPIO
+ - description: C16 GPIO
+ - description: D14 GPIO
+ - description: D15 GPIO
+
+ attenuation2-gpios:
+ description: |
+ Choice of attenuation:
+ M16 M15 M14 L16 L15
+ 1 1 1 1 1 0 dB
+ 1 1 1 1 0 -1 dB
+ 1 1 1 0 1 -2 dB
+ 1 1 0 1 1 -4 dB
+ 1 0 1 1 1 -8 dB
+ 0 1 1 1 1 -16 dB
+ 0 0 0 0 0 -31 dB
+
+ items:
+ - description: L15 GPIO
+ - description: L16 GPIO
+ - description: M14 GPIO
+ - description: M15 GPIO
+ - description: M16 GPIO
+
+ '#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@xxxxxxxxxx>
+L: linux-iio@xxxxxxxxxxxxxxx
+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@xxxxxxxxxx>
L: linux-iio@xxxxxxxxxxxxxxx

base-commit: c2d5304e6c648ebcf653bace7e51e0e6742e46c8
--
2.34.1