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
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).
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.
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á >
© 2016 - 2026 Red Hat, Inc.