RE: [PATCH v6 2/2] dt-bindings: iio: frequency: add adrf6780 doc

From: Miclaus, Antoniu
Date: Tue Jul 20 2021 - 10:15:47 EST


Hello Jonathan,

Adding @Thahirally, Murtaza, maybe he can help us with some more details hardware-wise.

Unfortunately, the current mail format does not allow me to highlight the points of interest in the conversation.

> -----Original Message-----
> From: Jonathan Cameron <jic23@xxxxxxxxxx>
> Sent: Saturday, July 17, 2021 5:22 PM
> To: Miclaus, Antoniu <Antoniu.Miclaus@xxxxxxxxxx>
> Cc: linux-iio@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx; Rob Herring <robh@xxxxxxxxxx>
> Subject: Re: [PATCH v6 2/2] dt-bindings: iio: frequency: add adrf6780 doc
>
> [External]
>
> On Fri, 16 Jul 2021 14:42:10 +0300
> Antoniu Miclaus <antoniu.miclaus@xxxxxxxxxx> wrote:
>
> > Add device tree bindings for the ADRF6780 Upconverter.
> >
> > Reviewed-by: Rob Herring <robh@xxxxxxxxxx>
> > Signed-off-by: Antoniu Miclaus <antoniu.miclaus@xxxxxxxxxx>
>
> oops. Would have ideally gotten to taking a close look at this before v6 :(
> Sorry about that! I don't suppose we have any other reviewers whose
> knowledge of
> this sort of hardware is fresher and deeper than mine? I'd like more eyes on
> the next version of this if possible!
>
> Jonathan
>
> > ---
> > no changes in v6
> > .../bindings/iio/frequency/adi,adrf6780.yaml | 119 ++++++++++++++++++
> > 1 file changed, 119 insertions(+)
> > create mode 100644
> Documentation/devicetree/bindings/iio/frequency/adi,adrf6780.yaml
> >
> > diff --git
> a/Documentation/devicetree/bindings/iio/frequency/adi,adrf6780.yaml
> b/Documentation/devicetree/bindings/iio/frequency/adi,adrf6780.yaml
> > new file mode 100644
> > index 000000000000..65cb3bee4aca
> > --- /dev/null
> > +++
> b/Documentation/devicetree/bindings/iio/frequency/adi,adrf6780.yaml
> > @@ -0,0 +1,119 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id:
> https://urldefense.com/v3/__http://devicetree.org/schemas/iio/frequency
> /adi,adrf6780.yaml*__;Iw!!A3Ni8CS0y2Y!tq2rTJBBpvfHI71YPxIn96552nFJvLYy
> U6rbHeP_e5sxgwDvLPHhZ_9NMjP_lD2kj1lJ$
> > +$schema: https://urldefense.com/v3/__http://devicetree.org/meta-
> schemas/core.yaml*__;Iw!!A3Ni8CS0y2Y!tq2rTJBBpvfHI71YPxIn96552nFJvLY
> yU6rbHeP_e5sxgwDvLPHhZ_9NMjP_lJHL0noG$
> > +
> > +title: ADRF6780 Microwave Upconverter
> > +
> > +maintainers:
> > + - Antoniu Miclaus <antoniu.miclaus@xxxxxxxxxx>
> > +
> > +description: |
> > + Wideband, microwave upconverter optimized for point to point
> microwave
> > + radio designs operating in the 5.9 GHz to 23.6 GHz frequency range.
> > +
> > + https://www.analog.com/en/products/adrf6780.html
> > +
> > +properties:
> > + compatible:
> > + enum:
> > + - adi,adrf6780
> > +
> > + reg:
> > + maxItems: 1
> > +
> > + spi-max-frequency:
> > + maximum: 1000000
> > +
> > + clocks:
> > + description:
> > + Definition of the external clock.
> > + minItems: 1
> > +
> > + clock-names:
> > + items:
> > + - const: lo_in
> > +
> > + clock-output-names:
> > + maxItems: 1
> > +
> > + adi,vga-buff-en:
> > + description:
> > + VGA Buffer Enable.
>
> Ideally I'd like any acronyms spelt out in the descriptions.
> (I assume this is variable gain amplifier?) The fun question from looking at
> this in the datasheet is where is it in the functional diagram? I'm not actually
> sure where it might be. Perhaps in the VVA, so on the VAAT input?
>
> If you have a convenient path to point out to your datasheet people that it is
> undocumented, that might be good to clean up :)
> My guess is this is needed if the precision reference on the example circuit
> needs
> a high impedance input, but I'm only guessing.
>
>
> > + type: boolean
> > +
> > + adi,lo-buff-en:
> > + description:
> > + LO Buffer Enable.
>
> What is LO and why might it need a buffer? (or is it always a good idea to turn
> this on
> when using the device?)
>
> > + type: boolean
> > +
> > + adi,if-mode-en:
> > + description:
> > + IF Mode Enable.
> IF stands for what? Intermediate Frequency...
>
> > + type: boolean
> > +
> > + adi,iq-mode-en:
> > + description:
> > + IQ Mode Enable.
> > + type: boolean
>
> I struggled to figure this out from the datasheet, but is there a circumstance
> under which
> if and iq mode might both be enabled? Nothing stops you setting the
> registers that way, but
> it seems to be documented as one or the other...
>
> For that matter, why probably want to describe this as "baseband IQ mode"
> given datasheet
> refers to as baseband in most places other than the register definition.
>
> > +
> > + adi,lo-x2-en:
> > + description:
> > + LO x2 Enable.
> > + type: boolean
> > +
> > + adi,lo-ppf-en:
> > + description:
> > + LO x1 Enable.
>
> This is curious. I agree that the register write documents it as x1 enable, but it
> seems
> to be be enabling polyphase filters - what exactly their relationship is to x1 is
> not that
> clear to me. Perhaps one to query with the hardware people if possible!
>
> > + type: boolean
> > +
> > + adi,lo-en:
> > + description:
> > + LO Enable.
> > + type: boolean
>
> Would you ever have this off whilst running? It's possible I'm missing
> something, but
> I think you need that frequency path to be enabled to get anything at all to
> happen.
>
> > +
> > + adi,uc-bias-en:
> > + description:
> > + UC Bias Enable.
> > + type: boolean
>
> This being completely undocumented apart from the register setting, I have
> 0 idea what
> it actually is. Any chance we can get some more details?
>
> > +
> > + adi,lo-sideband:
> > + description:
> > + Switch to the Other LO Sideband.
>
> Switch what to the other LO sideband?
>
> > + type: boolean
> > +
> > + adi,vdet-out-en:
>
> So my reading of the datasheet on this one didn't lead me to a completely
> clear answer.
> Does turning this one effectively stop you using the internal ADC to measure
> the power
> whilst exposing the signal on an external pin?
>
> > + description:
> > + VDET Output Select Enable.
> > + type: boolean
> > +
> > + '#clock-cells':
> > + const: 0
> > +
> > +dependencies:
> > + adi,lo-x2-en: [ "adi,lo-en" ]
> > + adi,lo-ppf-en: [ "adi,lo-en" ]
> > +
> > +required:
> > + - compatible
> > + - reg
> > + - clocks
> > + - clock-names
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > + - |
> > + spi {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + adrf6780@0 {
> > + compatible = "adi,adrf6780";
> > + reg = <0>;
> > + spi-max-frequency = <1000000>;
> > + clocks = <&adrf6780_lo>;
> > + clock-names = "lo_in";
> > + };
> > + };
> > +...