Re: [PATCH RFC v4 09/10] Documentation: ABI: testing: add docs for ad9910 sysfs entries
From: Jonathan Cameron
Date: Mon May 18 2026 - 09:52:50 EST
On Sun, 17 May 2026 18:30:27 +0100
Rodrigo Alencar <455.rodrigo.alencar@xxxxxxxxx> wrote:
> On 26/05/17 03:58PM, Jonathan Cameron wrote:
> > On Fri, 08 May 2026 18:00:25 +0100
> > Rodrigo Alencar via B4 Relay <devnull+rodrigo.alencar.analog.com@xxxxxxxxxx> wrote:
> >
> > > From: Rodrigo Alencar <rodrigo.alencar@xxxxxxxxxx>
> > >
> > > Add custom ABI documentation file for the DDS AD9910 with sysfs entries to
> > > control Parallel Port, Digital Ramp Generator and OSK parameters.
> > >
> > > Signed-off-by: Rodrigo Alencar <rodrigo.alencar@xxxxxxxxxx>
> > I'm fine with phase and frequency as defined, but for the scaling it made me wonder.
> > For outvoltage0 channels the assumption the value is the peak voltage so if
> > we know what input to be modulated by the ramp generator can we express them
> > in volts (well milivolts) rather than as a scaling multiplier?
>
> The DAC output is current-based and differential. Voltage conversion would happen
> outside the device...
Why aren't we representing this as out_altcurrentX-Y_xxxx?
> using a resistor load or an op-amp transimpedance stage,
> and I am no expert on that, but that often requires impedance matching so voltage
> levels may depend on the frequency. Then, I suppose that voltage is not the right
> unit to use.
Understood that it can get complex!
>
> The scale here controls the amplitude of the varying signal. Assuming the peak voltage
> (amplitude) is constant means we have a constant envelope, but that should not mean
> we can't control it or it should not mean that the hardware can have other ways to
> control it. That said, scale behaves as a "gain multiplier".
Understood. Given it's the envelope then if scale happened to be 1 always it would
be presented as _processed. So this is consistent with other channel types.
>
> >
> > That seems to me like it fits better with the overall ABI.
> >
> > > +What: /sys/bus/iio/devices/iio:deviceX/out_altvoltageY_scale_offset
> > > +KernelVersion:
> > > +Contact: linux-iio@xxxxxxxxxxxxxxx
> > > +Description:
> > > + For a channel that allows amplitude control through buffers, this
> > > + represents the value for a base amplitude scale. The actual output
> > > + amplitude scale is a result with the sum of this value.
> > > +
> >
> > > +
> > > +What: /sys/bus/iio/devices/iio:deviceX/out_altvoltageY_scale_roc
> >
> > Silly question perhaps but can work out how this related to millivolts/sec
> > That might make a more intuitive interface than scaling multiplier per sec
> > Perhaps the combination with offset makes this impossible though maybe that
> > could be a expressed as a voltage offset? Afterall if the amplitude being
> > scaled is 5V then 5 * (offset + scale) = 5 * offset + 5 * scale
> >
> > > +KernelVersion:
> > > +Contact: linux-iio@xxxxxxxxxxxxxxx
> > > +Description:
> > > + Amplitude scale rate of change in 1/s for channels that ramp
> > > + amplitude. This value may be influenced by the channel's
> > > + sampling_frequency setting.
> >
> >
>