mirror of
https://github.com/torvalds/linux.git
synced 2026-03-14 00:56:20 +01:00
SoundWire MBQ register maps typically contain a variety of register sizes, which doesn't map ideally to the regmap abstraction which expects register maps to have a consistent size. Currently the MBQ register map only allows 16-bit registers to be defined, however this leads to complex CODEC driver implementations with an 8-bit register map and a 16-bit MBQ, every control will then have a custom get and put handler that allows them to access different register maps. Further more 32-bit MBQ quantities are not currently supported. Add support for additional MBQ sizes and to avoid the complexity of multiple register maps treat the val_size as a maximum size for the register map. Within the regmap use an ancillary callback to determine how many bytes to actually read/write to the hardware for a specific register. In the case that no callback is defined the behaviour defaults back to the existing behaviour of a fixed size register map. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://patch.msgid.link/20250107154408.814455-4-ckeepax@opensource.cirrus.com Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev> Signed-off-by: Mark Brown <broonie@kernel.org> |
||
|---|---|---|
| .. | ||
| internal.h | ||
| Kconfig | ||
| Makefile | ||
| regcache-flat.c | ||
| regcache-maple.c | ||
| regcache-rbtree.c | ||
| regcache.c | ||
| regmap-ac97.c | ||
| regmap-debugfs.c | ||
| regmap-fsi.c | ||
| regmap-i2c.c | ||
| regmap-i3c.c | ||
| regmap-irq.c | ||
| regmap-kunit.c | ||
| regmap-mdio.c | ||
| regmap-mmio.c | ||
| regmap-ram.c | ||
| regmap-raw-ram.c | ||
| regmap-sccb.c | ||
| regmap-sdw-mbq.c | ||
| regmap-sdw.c | ||
| regmap-slimbus.c | ||
| regmap-spi-avmm.c | ||
| regmap-spi.c | ||
| regmap-spmi.c | ||
| regmap-w1.c | ||
| regmap.c | ||
| trace.h | ||