• David Lechner's avatar
    ARM: dts: da850-lego-ev3: slow down A/DC as much as possible · aea4762f
    David Lechner authored
    Due to the electrical design of the A/DC circuits on LEGO MINDSTORMS EV3,
    if we are reading analog values as fast as possible (i.e. using DMA to
    service the SPI) the A/DC chip will read incorrect values - as much as
    0.1V off when the SPI is running at 10MHz. (This has to do with the
    capacitor charge time when channels are muxed in the A/DC.)
    
    This patch slows down the SPI as much as possible (if CPU is at 456MHz,
    SPI runs at 1/2 of that, so 228MHz and has a max prescalar of 256, so
    we could get ~891kHz, but we're just rounding it to 1MHz). We also use
    the max allowable value for WDELAY to slow things down even more.
    
    These changes reduce the error of the analog values to about 5mV, which
    is tolerable.
    
    Commits a3762b13 ("spi: spi-davinci: Add support for SPI_CS_WORD")
    and e2540da8 ("iio: adc: ti-ads7950: use SPI_CS_WORD to reduce
    CPU usage") introduce changes that allow DMA transfers to be used, so
    this slow down is needed now.
    Signed-off-by: default avatarDavid Lechner <david@lechnology.com>
    Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
    aea4762f
da850-lego-ev3.dts 8.22 KB