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

From: Kim Seer Paller
Date: Wed Nov 22 2023 - 05:59:17 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>
Reported-by: kernel test robot <lkp@xxxxxxxxx>
Closes: https://lore.kernel.org/oe-kbuild-all/202311220624.J7Nqg5h1-lkp@xxxxxxxxx/
---
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

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@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:
+ 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@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