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