• Nuno Sá's avatar
    iio: imu: adis: Refactor adis_initial_startup · ecb010d4
    Nuno Sá authored
    All the ADIS devices perform, at the beginning, a self test to make sure
    the device is in a sane state. Previously, the logic was that the self-test
    was performed in adis_initial_startup() and if that failed a reset was done
    and then a self-test was attempted again.
    
    This change unifies the reset mechanism under the adis_initial_startup()
    call. A HW reset will be done if  GPIO is configured, or a SW reset
    otherwise. This should make sure that the chip is in a sane state for
    self-test. Once the reset is done, the self-test operation will be
    performed. If anything goes wrong with self-test, the driver should just
    bail/error-out (i.e. no second attempt). The chip would likely not be a in
    a sane state state if the self-test fails after a reset.
    Signed-off-by: default avatarNuno Sá <nuno.sa@analog.com>
    Signed-off-by: default avatarAlexandru Ardelean <alexandru.ardelean@analog.com>
    Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    ecb010d4
adis.c 11.9 KB