diff options
author | Mark Brown <broonie@kernel.org> | 2020-04-14 16:37:31 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2020-04-14 16:37:31 +0100 |
commit | 4475337326bcfa712006ff8cbc760c045cca1d82 (patch) | |
tree | fe0f661b70c1f662c9330fc97f11850400f16089 | |
parent | bd3ddb495762575ab14e7bd2e4017dc1f9a80b2f (diff) | |
parent | 80215f133d59310fdfce5ee4398aeb7076c2e99f (diff) |
Merge series "Add new reg_update_bits() support" from Baolin Wang <baolin.wang7@gmail.com>:
The Spreadtrum platform uses a special set/clear method to update
registers' bits, thus this patch set registers a physical regmap
bus into syscon core to support this feature instead of using the
MMIO bus, which is not a physical regmap bus.
Any comments are welcome. Thanks.
Changes from RFC v1:
- Add new helper to registers a physical regmap bus instead of
using the MMIO bus.
Baolin Wang (3):
mfd: syscon: Support physical regmap bus
regmap: Add bus reg_update_bits() support
soc: sprd: Add Spreadtrum special bits updating support
drivers/base/regmap/regmap.c | 1 +
drivers/mfd/syscon.c | 16 ++++++-
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/sprd/Kconfig | 16 +++++++
drivers/soc/sprd/Makefile | 2 +
drivers/soc/sprd/sprd_syscon.c | 76 ++++++++++++++++++++++++++++++++++
include/linux/mfd/syscon.h | 7 ++++
8 files changed, 118 insertions(+), 2 deletions(-)
create mode 100644 drivers/soc/sprd/Kconfig
create mode 100644 drivers/soc/sprd/Makefile
create mode 100644 drivers/soc/sprd/sprd_syscon.c
--
2.17.1
-rw-r--r-- | drivers/base/regmap/regmap.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index 59f911e57719..553d92aa0c68 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -827,6 +827,7 @@ struct regmap *__regmap_init(struct device *dev, } else if (!bus->read || !bus->write) { map->reg_read = _regmap_bus_reg_read; map->reg_write = _regmap_bus_reg_write; + map->reg_update_bits = bus->reg_update_bits; map->defer_caching = false; goto skip_format_initialization; |