# 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 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 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>; }; }; ...