From: Pratyush Yadav <p.yadav@ti.com>
To: u-boot@lists.denx.de
Subject: [PATCH v2 6/8] regmap: Allow devices to specify regmap range start and size in config
Date: Sat, 6 Jun 2020 02:00:23 +0530 [thread overview]
Message-ID: <20200605203025.15466-7-p.yadav@ti.com> (raw)
In-Reply-To: <20200605203025.15466-1-p.yadav@ti.com>
Some devices need to calculate the regmap base address at runtime. This
makes it impossible to use device tree to get the regmap base. Instead,
allow devices to specify it in the regmap config. This will create a
regmap with a single range that corresponds to the start and size given
by the driver.
Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
drivers/core/regmap.c | 6 +++++-
include/regmap.h | 6 ++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/core/regmap.c b/drivers/core/regmap.c
index a9087df32b..a3da0cf7c3 100644
--- a/drivers/core/regmap.c
+++ b/drivers/core/regmap.c
@@ -283,7 +283,11 @@ struct regmap *devm_regmap_init(struct udevice *dev,
if (unlikely(!mapp))
return ERR_PTR(-ENOMEM);
- rc = regmap_init_mem(dev_ofnode(dev), mapp);
+ if (config && config->r_size != 0)
+ rc = regmap_init_mem_range(dev_ofnode(dev), config->r_start,
+ config->r_size, mapp);
+ else
+ rc = regmap_init_mem(dev_ofnode(dev), mapp);
if (rc)
return ERR_PTR(rc);
diff --git a/include/regmap.h b/include/regmap.h
index 7c8ad04759..7a6fcc7f53 100644
--- a/include/regmap.h
+++ b/include/regmap.h
@@ -84,10 +84,16 @@ struct regmap_bus;
* REGMAP_SIZE_32 if set to 0.
* @reg_offset_shift Left shift the register offset by this value before
* performing read or write.
+ * @r_start: If specified, the regmap is created with one range
+ * which starts at this address, instead of finding the
+ * start from device tree.
+ * @r_size: Same as above for the range size
*/
struct regmap_config {
enum regmap_size_t width;
u32 reg_offset_shift;
+ ulong r_start;
+ ulong r_size;
};
/**
--
2.27.0
next prev parent reply other threads:[~2020-06-05 20:30 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-05 20:30 [PATCH v2 0/8] regmap: Add managed API, regmap fields, regmap config Pratyush Yadav
2020-06-05 20:30 ` [PATCH v2 1/8] regmap: Add devm_regmap_init() Pratyush Yadav
2020-06-05 20:30 ` [PATCH v2 2/8] regmap: zero out the regmap on allocation Pratyush Yadav
2020-06-05 20:30 ` [PATCH v2 3/8] regmap: Allow specifying read/write width Pratyush Yadav
2020-06-05 20:30 ` [PATCH v2 4/8] regmap: Allow left shifting register offset before access Pratyush Yadav
2020-06-05 20:30 ` [PATCH v2 5/8] regmap: Add regmap_init_mem_range() Pratyush Yadav
2020-06-05 20:30 ` Pratyush Yadav [this message]
2020-06-05 20:30 ` [PATCH v2 7/8] regmap: Add support for regmap fields Pratyush Yadav
2020-06-05 20:30 ` [PATCH v2 8/8] test: dm: Add tests for regmap managed API and " Pratyush Yadav
2020-08-06 14:25 ` Tom Rini
2020-08-05 8:07 ` [PATCH v2 0/8] regmap: Add managed API, regmap fields, regmap config Pratyush Yadav
2020-08-16 3:39 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200605203025.15466-7-p.yadav@ti.com \
--to=p.yadav@ti.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox