From: paul@pwsan.com (Paul Walmsley)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 06/11] OMAP4: prcm: Add temporarily helper functions for rmw and read inside the PRM
Date: Tue, 21 Sep 2010 10:34:48 -0600 [thread overview]
Message-ID: <20100921163447.20258.65346.stgit@twilight.localdomain> (raw)
In-Reply-To: <20100921163021.20258.87587.stgit@twilight.localdomain>
From: Benoit Cousson <b-cousson@ti.com>
Since OMAP4 is using an absolute address, the current PRM accessors
are not useable.
OMAP4 adaptation for these API are currently ongoing, so define temp
version until the proper ones are defined.
Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
---
arch/arm/mach-omap2/prcm.c | 24 ++++++++++++++++++++++++
arch/arm/plat-omap/include/plat/prcm.h | 2 ++
2 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c
index 96f4616..d4388d3 100644
--- a/arch/arm/mach-omap2/prcm.c
+++ b/arch/arm/mach-omap2/prcm.c
@@ -216,6 +216,30 @@ u32 prm_read_mod_bits_shift(s16 domain, s16 idx, u32 mask)
return v;
}
+/* Read a PRM register, AND it, and shift the result down to bit 0 */
+u32 omap4_prm_read_bits_shift(void __iomem *reg, u32 mask)
+{
+ u32 v;
+
+ v = __raw_readl(reg);
+ v &= mask;
+ v >>= __ffs(mask);
+
+ return v;
+}
+
+/* Read-modify-write a register in a PRM module. Caller must lock */
+u32 omap4_prm_rmw_reg_bits(u32 mask, u32 bits, void __iomem *reg)
+{
+ u32 v;
+
+ v = __raw_readl(reg);
+ v &= ~mask;
+ v |= bits;
+ __raw_writel(v, reg);
+
+ return v;
+}
/* Read a register in a CM module */
u32 cm_read_mod_reg(s16 module, u16 idx)
{
diff --git a/arch/arm/plat-omap/include/plat/prcm.h b/arch/arm/plat-omap/include/plat/prcm.h
index 9fbd914..ab77442 100644
--- a/arch/arm/plat-omap/include/plat/prcm.h
+++ b/arch/arm/plat-omap/include/plat/prcm.h
@@ -38,6 +38,8 @@ u32 prm_read_mod_reg(s16 module, u16 idx);
void prm_write_mod_reg(u32 val, s16 module, u16 idx);
u32 prm_rmw_mod_reg_bits(u32 mask, u32 bits, s16 module, s16 idx);
u32 prm_read_mod_bits_shift(s16 domain, s16 idx, u32 mask);
+u32 omap4_prm_read_bits_shift(void __iomem *reg, u32 mask);
+u32 omap4_prm_rmw_reg_bits(u32 mask, u32 bits, void __iomem *reg);
u32 cm_read_mod_reg(s16 module, u16 idx);
void cm_write_mod_reg(u32 val, s16 module, u16 idx);
u32 cm_rmw_mod_reg_bits(u32 mask, u32 bits, s16 module, s16 idx);
next prev parent reply other threads:[~2010-09-21 16:34 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-21 16:34 [PATCH 00/11] OMAP: hwmod: core patches for 2.6.37 Paul Walmsley
2010-09-21 16:34 ` [PATCH 01/11] OMAP: hwmod: Rename dma_ch to dma_req Paul Walmsley
2010-09-21 16:34 ` [PATCH 02/11] OMAP: hwmod: Do not disable clocks if hwmod already in idle Paul Walmsley
2010-09-21 16:34 ` [PATCH 03/11] OMAP: hwmod: Fix omap_hwmod_reset wrong state test Paul Walmsley
2010-09-21 16:34 ` [PATCH 04/11] OMAP4: prcm: Fix global warm reset bit position Paul Walmsley
2010-09-21 16:34 ` [PATCH 05/11] [PATCH] OMAP: hwmod: separate list locking and hwmod hardware locking Paul Walmsley
2010-09-21 16:34 ` Paul Walmsley [this message]
2010-09-21 16:34 ` [PATCH 07/11] OMAP4: PRM: add module hard reset support Paul Walmsley
2010-09-21 16:34 ` [PATCH 08/11] OMAP2/3: " Paul Walmsley
2010-09-21 16:34 ` [PATCH 09/11] OMAP: hwmod: Add hardreset management support Paul Walmsley
2010-09-21 16:34 ` [PATCH 10/11] OMAP: hwmod: Force a softreset during _setup Paul Walmsley
2010-09-21 16:34 ` [PATCH 11/11] OMAP: hwmod: add an hardreset API for use by other core code Paul Walmsley
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=20100921163447.20258.65346.stgit@twilight.localdomain \
--to=paul@pwsan.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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;
as well as URLs for NNTP newsgroup(s).