diff mbox series

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

Message ID 20231116005643.245314-1-kimseer.paller@analog.com
State Changes Requested
Headers show
Series [1/2] dt-bindings: iio: frequency: add admfm2000 | expand

Checks

Context Check Description
robh/checkpatch success
robh/patch-applied success
robh/dtbs-check warning build log
robh/dt-meta-schema success

Commit Message

Paller, Kim Seer Nov. 16, 2023, 12:56 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>
---
 .../bindings/iio/frequency/adi,admfm2000.yaml | 128 ++++++++++++++++++
 MAINTAINERS                                   |   7 +
 2 files changed, 135 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/frequency/adi,admfm2000.yaml


base-commit: c42d9eeef8e5ba9292eda36fd8e3c11f35ee065c

Comments

Krzysztof Kozlowski Nov. 16, 2023, 12:08 p.m. UTC | #1
On 16/11/2023 01:56, 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>
> ---

...

> +
> +title: ADMFM2000 Dual Microwave Down Converter
> +
> +maintainers:
> +  - Kim Seer Paller <kimseer.paller@analog.com>
> +
> +description: |

Do not need '|' unless you need to preserve formatting.

> +    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:
> +    description:
> +      Must contain an array of 2 GPIO specifiers, referring to the GPIO pins

That's obvious. Instead say which pins are this.

> +      connected to the channel 1 switch controls.
> +    minItems: 2
> +    maxItems: 2
> +
> +  switch2-gpios:
> +    description:
> +      Must contain an array of 2 GPIO specifiers, referring to the GPIO pins
> +      connected to the channel 2 switch controls.
> +    minItems: 2
> +    maxItems: 2
> +
> +  attenuation1-gpios:
> +    description:
> +      Must contain an array of 5 GPIO specifiers, referring to the GPIO pins
> +      connected to the channel 1 DSA attenuation controls.
> +    minItems: 5
> +    maxItems: 5
> +
> +  attenuation2-gpios:
> +    description:
> +      Must contain an array of 5 GPIO specifiers, referring to the GPIO pins
> +      connected to the channel 2 DSA attenuation controls.
> +    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.

Missing additionalProperties: false. Look at other bindings.

> +
> +    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>
> +    admfm2000 {

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation


> +      compatible = "adi,admfm2000";
> +
> +      switch1-gpios = <&gpio 1 GPIO_ACTIVE_LOW>,
> +        <&gpio 2 GPIO_ACTIVE_HIGH>;

Align this with previous <

> +
> +      switch2-gpios = <&gpio 3 GPIO_ACTIVE_LOW>,
> +        <&gpio 4 GPIO_ACTIVE_HIGH>;
> +
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..7ea5ede7b
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/frequency/adi,admfm2000.yaml
@@ -0,0 +1,128 @@ 
+# 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:
+    description:
+      Must contain an array of 2 GPIO specifiers, referring to the GPIO pins
+      connected to the channel 1 switch controls.
+    minItems: 2
+    maxItems: 2
+
+  switch2-gpios:
+    description:
+      Must contain an array of 2 GPIO specifiers, referring to the GPIO pins
+      connected to the channel 2 switch controls.
+    minItems: 2
+    maxItems: 2
+
+  attenuation1-gpios:
+    description:
+      Must contain an array of 5 GPIO specifiers, referring to the GPIO pins
+      connected to the channel 1 DSA attenuation controls.
+    minItems: 5
+    maxItems: 5
+
+  attenuation2-gpios:
+    description:
+      Must contain an array of 5 GPIO specifiers, referring to the GPIO pins
+      connected to the channel 2 DSA attenuation controls.
+    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.
+
+    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>
+    admfm2000 {
+      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 5c9f868e1..505eb57eb 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