• Crestez Dan Leonard's avatar
    regmap: Add regmap_noinc_read API · 74fe7b55
    Crestez Dan Leonard authored
    The regmap API usually assumes that bulk read operations will read a
    range of registers but some I2C/SPI devices have certain registers for
    which a such a read operation will return data from an internal FIFO
    instead. Add an explicit API to support bulk read without range semantics.
    
    Some linux drivers use regmap_bulk_read or regmap_raw_read for such
    registers, for example mpu6050 or bmi150 from IIO. This only happens to
    work because when caching is disabled a single regmap read op will map
    to a single bus read op (as desired). This breaks if caching is enabled and
    reg+1 happens to be a cacheable register.
    
    Without regmap support refactoring a driver to enable regmap caching
    requires separate I2C and SPI paths. This is exactly what regmap is
    supposed to help avoid.
    Suggested-by: default avatarJonathan Cameron <jic23@kernel.org>
    Signed-off-by: default avatarCrestez Dan Leonard <leonard.crestez@intel.com>
    Signed-off-by: default avatarStefan Popa <stefan.popa@analog.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    74fe7b55
regmap.h 46.1 KB