• Richard Fitzgerald's avatar
    regmap: Add regmap_read_bypassed() · 70ee853e
    Richard Fitzgerald authored
    Add a regmap_read_bypassed() to allow reads from the hardware registers
    while the regmap is in cache-only mode.
    
    A typical use for this is to keep the cache in cache-only mode until
    the hardware has reached a valid state, but one or more status registers
    must be polled to determine when this state is reached.
    
    For example, firmware download on the cs35l56 can take several seconds if
    there are multiple amps sharing limited bus bandwidth. This is too long
    to block in probe() so it is done as a background task. The device must
    be soft-reset to reboot the firmware and during this time the registers are
    not accessible, so the cache should be in cache-only. But the driver must
    poll a register to detect when reboot has completed.
    Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
    Fixes: 8a731fd3 ("ASoC: cs35l56: Move utility functions to shared file")
    Link: https://msgid.link/r/20240408101803.43183-2-rf@opensource.cirrus.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    70ee853e
regmap.c 83.8 KB