[PATCH v3 3/3] Documentation: ABI: adl8113: add documentation

Antoniu Miclaus posted 3 patches 2 months, 3 weeks ago
There is a newer version of this series
[PATCH v3 3/3] Documentation: ABI: adl8113: add documentation
Posted by Antoniu Miclaus 2 months, 3 weeks ago
Add ABI documentation for the ADL8113 Low Noise Amplifier,
covering the 4 pin-selectable operating modes.

Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
---

Changes in v3:
- Replace "mode" attribute documentation with "signal_path" attribute
- Update descriptions to reflect separation of gain control (hardwaregain) and path control (signal_path)
- Add explanation of automatic bypass mode switching when selecting external paths
- Update attribute names from mode/mode_available to signal_path/signal_path_available
- Clarify that external paths enable connection of external components for filtering or amplification
---
 .../testing/sysfs-bus-iio-amplifiers-adl8113  | 30 +++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113

diff --git a/Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113 b/Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113
new file mode 100644
index 000000000000..31fb1e6e80fc
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113
@@ -0,0 +1,30 @@
+What:		/sys/bus/iio/devices/iio:deviceX/signal_path
+Date:		January 2025
+KernelVersion:	6.14
+Contact:	linux-iio@vger.kernel.org
+Description:
+		This attribute controls the signal routing path for the ADL8113
+		Low Noise Amplifier. The supported signal paths are:
+
+		* internal - Signal passes through internal path. Can be used with
+		  either amplifier mode (14dB gain) or bypass mode (0dB gain).
+
+		* external_a - Signal routes from RFIN to OUT_A and from IN_A to RFOUT
+		  (VA=0, VB=1). External components can be connected for filtering or
+		  additional amplification. Automatically switches to bypass mode (0dB).
+
+		* external_b - Signal routes from RFIN to OUT_B and from IN_B to RFOUT
+		  (VA=1, VB=0). External components can be connected for filtering or
+		  additional amplification. Automatically switches to bypass mode (0dB).
+
+		Note: Selecting an external path automatically sets the hardware gain
+		to 0dB (bypass mode) since external paths require bypass operation.
+
+What:		/sys/bus/iio/devices/iio:deviceX/signal_path_available
+Date:		January 2025
+KernelVersion:	6.14
+Contact:	linux-iio@vger.kernel.org
+Description:
+		Reading this attribute returns a space-separated list of all
+		available signal paths for the ADL8113 device. The available paths
+		may depend on the current gain mode (hardwaregain setting).
-- 
2.43.0
Re: [PATCH v3 3/3] Documentation: ABI: adl8113: add documentation
Posted by Jonathan Cameron 2 months, 3 weeks ago
On Fri, 14 Nov 2025 11:57:25 +0000
Antoniu Miclaus <antoniu.miclaus@analog.com> wrote:

> Add ABI documentation for the ADL8113 Low Noise Amplifier,
> covering the 4 pin-selectable operating modes.
> 
> Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
+CC all the IIO subsystem reviewers as I'm not sure how to handle
what this device does, and would like some more opinions.

Anyone who has expertise or design experience with this sort
of amplifier with external bypass path: how are these actually used?

The development board seems to just be suited to measurement of
device characteristics, not representative of a design using it.

> ---
> 
> Changes in v3:
> - Replace "mode" attribute documentation with "signal_path" attribute
> - Update descriptions to reflect separation of gain control (hardwaregain) and path control (signal_path)
> - Add explanation of automatic bypass mode switching when selecting external paths
> - Update attribute names from mode/mode_available to signal_path/signal_path_available
> - Clarify that external paths enable connection of external components for filtering or amplification
> ---
>  .../testing/sysfs-bus-iio-amplifiers-adl8113  | 30 +++++++++++++++++++
>  1 file changed, 30 insertions(+)
>  create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113
> 
> diff --git a/Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113 b/Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113
> new file mode 100644
> index 000000000000..31fb1e6e80fc
> --- /dev/null
> +++ b/Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113
> @@ -0,0 +1,30 @@
> +What:		/sys/bus/iio/devices/iio:deviceX/signal_path
> +Date:		January 2025
> +KernelVersion:	6.14
> +Contact:	linux-iio@vger.kernel.org
> +Description:
> +		This attribute controls the signal routing path for the ADL8113
> +		Low Noise Amplifier. The supported signal paths are:
> +
> +		* internal - Signal passes through internal path. Can be used with
> +		  either amplifier mode (14dB gain) or bypass mode (0dB gain).
> +
> +		* external_a - Signal routes from RFIN to OUT_A and from IN_A to RFOUT
> +		  (VA=0, VB=1). External components can be connected for filtering or
> +		  additional amplification. Automatically switches to bypass mode (0dB).
> +
> +		* external_b - Signal routes from RFIN to OUT_B and from IN_B to RFOUT
> +		  (VA=1, VB=0). External components can be connected for filtering or
> +		  additional amplification. Automatically switches to bypass mode (0dB).

I'm still not sure how to handle these external paths.  The one thing they won't be
is truly zero gain (because that would be pointless given the internal bypass path does that).

So how are these used in practice?

Do we need to figure out how to describe the real characteristics of those paths?

All I could find is a brief reference in
https://www.analog.com/en/resources/app-notes/an-2622.html
to high dynamic range receiver applications. So with that as only breadcrumb my
guess would be that they almost always have additional applifiers on those paths
and we should figure out how to describe the aggregate device.

A stop gap might be to merge the driver without this support till we figure out
how to do it.

Jonathan


> +
> +		Note: Selecting an external path automatically sets the hardware gain
> +		to 0dB (bypass mode) since external paths require bypass operation.
> +
> +What:		/sys/bus/iio/devices/iio:deviceX/signal_path_available
> +Date:		January 2025
> +KernelVersion:	6.14
> +Contact:	linux-iio@vger.kernel.org
> +Description:
> +		Reading this attribute returns a space-separated list of all
> +		available signal paths for the ADL8113 device. The available paths
> +		may depend on the current gain mode (hardwaregain setting).
Re: [PATCH v3 3/3] Documentation: ABI: adl8113: add documentation
Posted by David Lechner 2 months, 3 weeks ago
On 11/16/25 9:50 AM, Jonathan Cameron wrote:
> On Fri, 14 Nov 2025 11:57:25 +0000
> Antoniu Miclaus <antoniu.miclaus@analog.com> wrote:
> 
>> Add ABI documentation for the ADL8113 Low Noise Amplifier,
>> covering the 4 pin-selectable operating modes.
>>
>> Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
> +CC all the IIO subsystem reviewers as I'm not sure how to handle
> what this device does, and would like some more opinions.
> 
> Anyone who has expertise or design experience with this sort
> of amplifier with external bypass path: how are these actually used?
> 
> The development board seems to just be suited to measurement of
> device characteristics, not representative of a design using it.
> 
>> ---
>>
>> Changes in v3:
>> - Replace "mode" attribute documentation with "signal_path" attribute
>> - Update descriptions to reflect separation of gain control (hardwaregain) and path control (signal_path)
>> - Add explanation of automatic bypass mode switching when selecting external paths
>> - Update attribute names from mode/mode_available to signal_path/signal_path_available
>> - Clarify that external paths enable connection of external components for filtering or amplification
>> ---
>>  .../testing/sysfs-bus-iio-amplifiers-adl8113  | 30 +++++++++++++++++++
>>  1 file changed, 30 insertions(+)
>>  create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113
>>
>> diff --git a/Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113 b/Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113
>> new file mode 100644
>> index 000000000000..31fb1e6e80fc
>> --- /dev/null
>> +++ b/Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113
>> @@ -0,0 +1,30 @@
>> +What:		/sys/bus/iio/devices/iio:deviceX/signal_path
>> +Date:		January 2025
>> +KernelVersion:	6.14
>> +Contact:	linux-iio@vger.kernel.org
>> +Description:
>> +		This attribute controls the signal routing path for the ADL8113
>> +		Low Noise Amplifier. The supported signal paths are:
>> +
>> +		* internal - Signal passes through internal path. Can be used with
>> +		  either amplifier mode (14dB gain) or bypass mode (0dB gain).
>> +
>> +		* external_a - Signal routes from RFIN to OUT_A and from IN_A to RFOUT
>> +		  (VA=0, VB=1). External components can be connected for filtering or
>> +		  additional amplification. Automatically switches to bypass mode (0dB).
>> +
>> +		* external_b - Signal routes from RFIN to OUT_B and from IN_B to RFOUT
>> +		  (VA=1, VB=0). External components can be connected for filtering or
>> +		  additional amplification. Automatically switches to bypass mode (0dB).
> 
> I'm still not sure how to handle these external paths.  The one thing they won't be
> is truly zero gain (because that would be pointless given the internal bypass path does that).
> 
> So how are these used in practice?

Afraid I don't have any experience with this. But I would assume that the two external
bypasses each have another amplifier (or attenuator) connected to them.

> 
> Do we need to figure out how to describe the real characteristics of those paths?

It sounds like this is just a multiplexer. So a few ideas:

1. We could handle this like iio-mux.c and have 4 channels and just restrict use
   to one channel at a time. Not exactly sure how we would do that. Perhaps an
   enable attribute that is interlocked so that it will fail to enable if another
   channel is already enabled? In this case, the devicetree would need to have an
   io-channels property to get the two bypass amplifier channels and basically pass
   them through.

2. Have the devicetree specify the gain of the two external bypass amplifiers
   so that we can use the hardwaregain attribute to select between the 4 mux
   positions without needing a custom attribute. This works as long as none
   of the amplifiers have the same gain.

I'm envisioning this would be e.g. part of a range selection on some sort of
test equipment. In that case, option 2 seems the right way to go about it.
Re: [PATCH v3 3/3] Documentation: ABI: adl8113: add documentation
Posted by Nuno Sá 2 months, 3 weeks ago
On Mon, 2025-11-17 at 17:59 -0600, David Lechner wrote:
> On 11/16/25 9:50 AM, Jonathan Cameron wrote:
> > On Fri, 14 Nov 2025 11:57:25 +0000
> > Antoniu Miclaus <antoniu.miclaus@analog.com> wrote:
> > 
> > > Add ABI documentation for the ADL8113 Low Noise Amplifier,
> > > covering the 4 pin-selectable operating modes.
> > > 
> > > Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
> > +CC all the IIO subsystem reviewers as I'm not sure how to handle
> > what this device does, and would like some more opinions.
> > 
> > Anyone who has expertise or design experience with this sort
> > of amplifier with external bypass path: how are these actually used?
> > 
> > The development board seems to just be suited to measurement of
> > device characteristics, not representative of a design using it.
> > 
> > > ---
> > > 
> > > Changes in v3:
> > > - Replace "mode" attribute documentation with "signal_path" attribute
> > > - Update descriptions to reflect separation of gain control (hardwaregain) and
> > > path control (signal_path)
> > > - Add explanation of automatic bypass mode switching when selecting external
> > > paths
> > > - Update attribute names from mode/mode_available to
> > > signal_path/signal_path_available
> > > - Clarify that external paths enable connection of external components for
> > > filtering or amplification
> > > ---
> > >  .../testing/sysfs-bus-iio-amplifiers-adl8113  | 30 +++++++++++++++++++
> > >  1 file changed, 30 insertions(+)
> > >  create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113
> > > 
> > > diff --git a/Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113
> > > b/Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113
> > > new file mode 100644
> > > index 000000000000..31fb1e6e80fc
> > > --- /dev/null
> > > +++ b/Documentation/ABI/testing/sysfs-bus-iio-amplifiers-adl8113
> > > @@ -0,0 +1,30 @@
> > > +What:		/sys/bus/iio/devices/iio:deviceX/signal_path
> > > +Date:		January 2025
> > > +KernelVersion:	6.14
> > > +Contact:	linux-iio@vger.kernel.org
> > > +Description:
> > > +		This attribute controls the signal routing path for the
> > > ADL8113
> > > +		Low Noise Amplifier. The supported signal paths are:
> > > +
> > > +		* internal - Signal passes through internal path. Can be used
> > > with
> > > +		  either amplifier mode (14dB gain) or bypass mode (0dB gain).
> > > +
> > > +		* external_a - Signal routes from RFIN to OUT_A and from IN_A
> > > to RFOUT
> > > +		  (VA=0, VB=1). External components can be connected for
> > > filtering or
> > > +		  additional amplification. Automatically switches to bypass
> > > mode (0dB).
> > > +
> > > +		* external_b - Signal routes from RFIN to OUT_B and from IN_B
> > > to RFOUT
> > > +		  (VA=1, VB=0). External components can be connected for
> > > filtering or
> > > +		  additional amplification. Automatically switches to bypass
> > > mode (0dB).
> > 
> > I'm still not sure how to handle these external paths.  The one thing they won't
> > be
> > is truly zero gain (because that would be pointless given the internal bypass
> > path does that).
> > 
> > So how are these used in practice?
> 
> Afraid I don't have any experience with this. But I would assume that the two
> external
> bypasses each have another amplifier (or attenuator) connected to them.
> 

Unfortunately me neither. Antoniu, it would make sense to figure out who the APPs
engineer for this part is. He is the one who can answer how the bypass feature is
supposed to be used in practise.

> > 
> > Do we need to figure out how to describe the real characteristics of those paths?
> 
> It sounds like this is just a multiplexer. So a few ideas:
> 
> 1. We could handle this like iio-mux.c and have 4 channels and just restrict use
>    to one channel at a time. Not exactly sure how we would do that. Perhaps an
>    enable attribute that is interlocked so that it will fail to enable if another
>    channel is already enabled? In this case, the devicetree would need to have an
>    io-channels property to get the two bypass amplifier channels and basically pass
>    them through.
> 
> 2. Have the devicetree specify the gain of the two external bypass amplifiers
>    so that we can use the hardwaregain attribute to select between the 4 mux
>    positions without needing a custom attribute. This works as long as none
>    of the amplifiers have the same gain.
> 
> I'm envisioning this would be e.g. part of a range selection on some sort of
> test equipment. In that case, option 2 seems the right way to go about it.

This makes sense but I would still try to have some confirmation about this.

- Nuno Sá
>