diff mbox

[3/5] mmc: host: omap_hsmmc: introduce new accessor functions

Message ID 1395878690-9650-4-git-send-email-balbi@ti.com
State New
Headers show

Commit Message

Felipe Balbi March 27, 2014, 12:04 a.m. UTC
we introduce new accessors which provide for register
access with and without offsets.

This is just to make sure newer versions of the IP
can access the new registers prepended at the beginning
of the address space.

Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/mmc/host/omap_hsmmc.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

Comments

Krishnamoorthy, Balaji T April 24, 2014, 3:17 p.m. UTC | #1
On Thursday 27 March 2014 05:34 AM, Felipe Balbi wrote:
> we introduce new accessors which provide for register
> access with and without offsets.
>
> This is just to make sure newer versions of the IP
> can access the new registers prepended at the beginning
> of the address space.
>
> Signed-off-by: Felipe Balbi <balbi@ti.com>
> ---
>   drivers/mmc/host/omap_hsmmc.c | 36 ++++++++++++++++++++++++++++++++++++
>   1 file changed, 36 insertions(+)
>
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index d46f768..e596c6a 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -211,6 +211,42 @@ struct omap_hsmmc_host {
>   	struct	omap_mmc_platform_data	*pdata;
>   };
>
> +static inline int _omap_hsmmc_read(struct omap_hsmmc_host *host,
> +		u32 reg, bool offset)
> +{
> +	return readl(host->base + reg + (offset ? host->reg_offset : 0));
> +}
> +
> +static inline void _omap_hsmmc_write(struct omap_hsmmc_host *host,
> +		u32 reg, u32 val, bool offset)
> +{
> +	writel(val, host->base + reg + (offset ? host->reg_offset : 0));
> +}
> +
> +static inline int omap_hsmmc_read_offset(struct omap_hsmmc_host *host,

I think you can rename this function as just omap_hsmmc_read
(removing _offset suffix)

> +		u32 reg)
> +{
> +	return _omap_hsmmc_read(host, reg, true);
> +}
> +
> +static inline void omap_hsmmc_write_offset(struct omap_hsmmc_host *host,

and this one as omap_hsmmc_write since this version of read/write is most often
used, the one with no_offset might be used less often.


--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index d46f768..e596c6a 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -211,6 +211,42 @@  struct omap_hsmmc_host {
 	struct	omap_mmc_platform_data	*pdata;
 };
 
+static inline int _omap_hsmmc_read(struct omap_hsmmc_host *host,
+		u32 reg, bool offset)
+{
+	return readl(host->base + reg + (offset ? host->reg_offset : 0));
+}
+
+static inline void _omap_hsmmc_write(struct omap_hsmmc_host *host,
+		u32 reg, u32 val, bool offset)
+{
+	writel(val, host->base + reg + (offset ? host->reg_offset : 0));
+}
+
+static inline int omap_hsmmc_read_offset(struct omap_hsmmc_host *host,
+		u32 reg)
+{
+	return _omap_hsmmc_read(host, reg, true);
+}
+
+static inline void omap_hsmmc_write_offset(struct omap_hsmmc_host *host,
+		u32 reg, u32 val)
+{
+	_omap_hsmmc_write(host, reg, val, true);
+}
+
+static inline int omap_hsmmc_read_no_offset(struct omap_hsmmc_host *host,
+		u32 reg)
+{
+	return _omap_hsmmc_read(host, reg, false);
+}
+
+static inline void omap_hsmmc_write_no_offset(struct omap_hsmmc_host *host,
+		u32 reg, u32 val)
+{
+	_omap_hsmmc_write(host, reg, val, false);
+}
+
 struct omap_mmc_of_data {
 	u32 reg_offset;
 	u8 controller_flags;