Documentation / devicetree / bindings / iio / frequency / adi,admfm2000.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright 2024 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
 
  '#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,mixer-mode:
        description:
          Enable mixer mode for the channel. It downconverts RF between 5 GHz
          and 32 GHz to IF between 0.5 GHz and 8 GHz. If not present, the channel
          is in direct IF mode which bypasses the mixer and downconverts RF
          between 2 GHz and 8 GHz to IF between 0.5 GHz and 8 GHz.
        type: boolean

      switch-gpios:
        description: |
          GPIOs to select the RF path for the channel. The same state of CTRL-A
          and CTRL-B GPIOs is not permitted.
          CTRL-A   CTRL-B    CH1 Status        CH2 Status
          1        0         Direct IF mode    Mixer mode
          0        1         Mixer mode        Direct IF mode

        items:
          - description: CTRL-A GPIO
          - description: CTRL-B GPIO

      attenuation-gpios:
        description: |
          Choice of attenuation:
          DSA-V4  DSA-V3  DSA-V2  DSA-V1  DSA-V0
          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: DSA-V0 GPIO
          - description: DSA-V1 GPIO
          - description: DSA-V2 GPIO
          - description: DSA-V3 GPIO
          - description: DSA-V4 GPIO

    required:
      - reg
      - switch-gpios
      - attenuation-gpios

required:
  - compatible

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    converter {
      compatible = "adi,admfm2000";
 
      #address-cells = <1>;
      #size-cells = <0>;
 
      channel@0 {
        reg = <0>;
        switch-gpios = <&gpio 1 GPIO_ACTIVE_LOW>,
                       <&gpio 2 GPIO_ACTIVE_HIGH>;
 
        attenuation-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>;
      };
 
      channel@1 {
        reg = <1>;
        adi,mixer-mode;
        switch-gpios = <&gpio 3 GPIO_ACTIVE_LOW>,
                       <&gpio 4 GPIO_ACTIVE_HIGH>;
 
        attenuation-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>;
      };
    };
...