• Nuno Sa's avatar
    iio: backend: add API for interface tuning · c66eabcc
    Nuno Sa authored
    
    
    This is in preparation for supporting interface tuning in one for the
    devices using the axi-adc backend. The new added interfaces are all
    needed for that calibration:
    
     * iio_backend_test_pattern_set();
     * iio_backend_chan_status();
     * iio_backend_iodelay_set();
     * iio_backend_data_sample_trigger().
    
    Interface tuning is the process of going through a set of known points
    (typically by the frontend), change some clk or data delays (or both)
    and send/receive some known signal (so called test patterns in this
    change). The receiving end (either frontend or the backend) is
    responsible for validating the signal and see if it's good or not. The
    goal for all of this is to come up with ideal delays at the data
    interface level so we can have a proper, more reliable data transfer.
    
    Also note that for some devices we can change the sampling rate
    (which typically means changing some reference clock) and that can
    affect the data interface. In that case, it's import to run the tuning
    algorithm again as the values we had before may no longer be the best (or
    even valid) ones.
    Signed-off-by: default avatarNuno Sa <nuno.sa@analog.com>
    Link: https://lore.kernel.org/r/20240426-ad9467-new-features-v2-2-6361fc3ba1cc@analog.com
    
    Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    c66eabcc
industrialio-backend.c 19.8 KB