xref: /linux/Documentation/devicetree/bindings/iio/frequency/adi,admfm2000.yaml (revision 4b660dbd9ee2059850fd30e0df420ca7a38a1856)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright 2024 Analog Devices Inc.
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/iio/frequency/adi,admfm2000.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: ADMFM2000 Dual Microwave Down Converter
9
10maintainers:
11  - Kim Seer Paller <kimseer.paller@analog.com>
12
13description:
14  Dual microwave down converter module with input RF and LO frequency ranges
15  from 0.5 to 32 GHz and an output IF frequency range from 0.1 to 8 GHz.
16  It consists of a LNA, mixer, IF filter, DSA, and IF amplifier for each down
17  conversion path.
18
19properties:
20  compatible:
21    enum:
22      - adi,admfm2000
23
24  '#address-cells':
25    const: 1
26
27  '#size-cells':
28    const: 0
29
30patternProperties:
31  "^channel@[0-1]$":
32    type: object
33    description: Represents a channel of the device.
34
35    additionalProperties: false
36
37    properties:
38      reg:
39        description:
40          The channel number.
41        minimum: 0
42        maximum: 1
43
44      adi,mixer-mode:
45        description:
46          Enable mixer mode for the channel. It downconverts RF between 5 GHz
47          and 32 GHz to IF between 0.5 GHz and 8 GHz. If not present, the channel
48          is in direct IF mode which bypasses the mixer and downconverts RF
49          between 2 GHz and 8 GHz to IF between 0.5 GHz and 8 GHz.
50        type: boolean
51
52      switch-gpios:
53        description: |
54          GPIOs to select the RF path for the channel. The same state of CTRL-A
55          and CTRL-B GPIOs is not permitted.
56          CTRL-A   CTRL-B    CH1 Status        CH2 Status
57          1        0         Direct IF mode    Mixer mode
58          0        1         Mixer mode        Direct IF mode
59
60        items:
61          - description: CTRL-A GPIO
62          - description: CTRL-B GPIO
63
64      attenuation-gpios:
65        description: |
66          Choice of attenuation:
67          DSA-V4  DSA-V3  DSA-V2  DSA-V1  DSA-V0
68          1       1       1       1       1        0 dB
69          1       1       1       1       0        -1 dB
70          1       1       1       0       1        -2 dB
71          1       1       0       1       1        -4 dB
72          1       0       1       1       1        -8 dB
73          0       1       1       1       1        -16 dB
74          0       0       0       0       0        -31 dB
75
76        items:
77          - description: DSA-V0 GPIO
78          - description: DSA-V1 GPIO
79          - description: DSA-V2 GPIO
80          - description: DSA-V3 GPIO
81          - description: DSA-V4 GPIO
82
83    required:
84      - reg
85      - switch-gpios
86      - attenuation-gpios
87
88required:
89  - compatible
90
91additionalProperties: false
92
93examples:
94  - |
95    #include <dt-bindings/gpio/gpio.h>
96    converter {
97      compatible = "adi,admfm2000";
98
99      #address-cells = <1>;
100      #size-cells = <0>;
101
102      channel@0 {
103        reg = <0>;
104        switch-gpios = <&gpio 1 GPIO_ACTIVE_LOW>,
105                       <&gpio 2 GPIO_ACTIVE_HIGH>;
106
107        attenuation-gpios = <&gpio 17 GPIO_ACTIVE_LOW>,
108                            <&gpio 22 GPIO_ACTIVE_LOW>,
109                            <&gpio 23 GPIO_ACTIVE_LOW>,
110                            <&gpio 24 GPIO_ACTIVE_LOW>,
111                            <&gpio 25 GPIO_ACTIVE_LOW>;
112      };
113
114      channel@1 {
115        reg = <1>;
116        adi,mixer-mode;
117        switch-gpios = <&gpio 3 GPIO_ACTIVE_LOW>,
118                       <&gpio 4 GPIO_ACTIVE_HIGH>;
119
120        attenuation-gpios = <&gpio 0 GPIO_ACTIVE_LOW>,
121                            <&gpio 5 GPIO_ACTIVE_LOW>,
122                            <&gpio 6 GPIO_ACTIVE_LOW>,
123                            <&gpio 16 GPIO_ACTIVE_LOW>,
124                            <&gpio 26 GPIO_ACTIVE_LOW>;
125      };
126    };
127...
128