From: manjunath.hadli@ti.com (Manjunath Hadli)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v6 06/11] davinci: eliminate use of IO_ADDRESS() on sysmod
Date: Thu, 15 Dec 2011 17:41:55 +0530 [thread overview]
Message-ID: <1323951120-15876-7-git-send-email-manjunath.hadli@ti.com> (raw)
In-Reply-To: <1323951120-15876-1-git-send-email-manjunath.hadli@ti.com>
Current devices.c file has a number of instances where
IO_ADDRESS() is used for system module register
access. Eliminate this in favor of a ioremap()
based access.
Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
---
arch/arm/mach-davinci/davinci.h | 9 +++++++++
arch/arm/mach-davinci/devices.c | 25 ++++++++++++++++---------
arch/arm/mach-davinci/dm355.c | 1 +
arch/arm/mach-davinci/dm365.c | 1 +
arch/arm/mach-davinci/dm644x.c | 1 +
arch/arm/mach-davinci/dm646x.c | 1 +
arch/arm/mach-davinci/include/mach/hardware.h | 2 --
7 files changed, 29 insertions(+), 11 deletions(-)
diff --git a/arch/arm/mach-davinci/davinci.h b/arch/arm/mach-davinci/davinci.h
index 3e6def4..06ed38a 100644
--- a/arch/arm/mach-davinci/davinci.h
+++ b/arch/arm/mach-davinci/davinci.h
@@ -20,12 +20,21 @@
#include <linux/clk.h>
#include <linux/i2c.h>
#include <mach/keyscan.h>
+#include <mach/hardware.h>
#include <linux/videodev2.h>
#include <linux/davinci_emac.h>
#include <linux/platform_device.h>
#include <media/davinci/vpfe_capture.h>
#include <media/davinci/vpif_types.h>
+#define DAVINCI_SYSTEM_MODULE_BASE 0x01c40000
+
+#ifndef __ASSEMBLER__
+extern void __iomem *davinci_sysmodbase;
+#define DAVINCI_SYSMODULE_VIRT(x) (davinci_sysmodbase + (x))
+void davinci_map_sysmod(void);
+#endif
+
/* DM355 base addresses */
#define DM355_ASYNC_EMIF_CONTROL_BASE 0x01e10000
#define DM355_ASYNC_EMIF_DATA_CE0_BASE 0x02000000
diff --git a/arch/arm/mach-davinci/devices.c b/arch/arm/mach-davinci/devices.c
index 806a2f0..580d48a 100644
--- a/arch/arm/mach-davinci/devices.c
+++ b/arch/arm/mach-davinci/devices.c
@@ -22,6 +22,7 @@
#include <mach/edma.h>
#include <mach/mmc.h>
#include <mach/time.h>
+#include "davinci.h"
#include "clock.h"
@@ -36,6 +37,14 @@
/* System control register offsets */
#define DM64XX_VDD3P3V_PWDN 0x48
+void __iomem *davinci_sysmodbase;
+
+void davinci_map_sysmod(void)
+{
+ davinci_sysmodbase = ioremap_nocache(DAVINCI_SYSTEM_MODULE_BASE, 0x800);
+ WARN_ON(!davinci_sysmodbase);
+}
+
static struct resource i2c_resources[] = {
{
.start = DAVINCI_I2C_BASE,
@@ -212,12 +221,12 @@ void __init davinci_setup_mmc(int module, struct davinci_mmc_config *config)
davinci_cfg_reg(DM355_SD1_DATA2);
davinci_cfg_reg(DM355_SD1_DATA3);
} else if (cpu_is_davinci_dm365()) {
- void __iomem *pupdctl1 =
- IO_ADDRESS(DAVINCI_SYSTEM_MODULE_BASE + 0x7c);
-
/* Configure pull down control */
- __raw_writel((__raw_readl(pupdctl1) & ~0xfc0),
- pupdctl1);
+ void __iomem *pupdctl1 = DAVINCI_SYSMODULE_VIRT(0x7c);
+ unsigned v;
+
+ v = __raw_readl(pupdctl1);
+ __raw_writel(v & ~0xfc0, pupdctl1);
mmcsd1_resources[0].start = DM365_MMCSD1_BASE;
mmcsd1_resources[0].end = DM365_MMCSD1_BASE +
@@ -246,11 +255,9 @@ void __init davinci_setup_mmc(int module, struct davinci_mmc_config *config)
mmcsd0_resources[2].start = IRQ_DM365_SDIOINT0;
} else if (cpu_is_davinci_dm644x()) {
/* REVISIT: should this be in board-init code? */
- void __iomem *base =
- IO_ADDRESS(DAVINCI_SYSTEM_MODULE_BASE);
-
/* Power-on 3.3V IO cells */
- __raw_writel(0, base + DM64XX_VDD3P3V_PWDN);
+ __raw_writel(0,
+ DAVINCI_SYSMODULE_VIRT(DM64XX_VDD3P3V_PWDN));
/*Set up the pull regiter for MMC */
davinci_cfg_reg(DM644X_MSTK);
}
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c
index 36744ff..1f90c5a 100644
--- a/arch/arm/mach-davinci/dm355.c
+++ b/arch/arm/mach-davinci/dm355.c
@@ -872,6 +872,7 @@ void __init dm355_init_asp1(u32 evt_enable, struct snd_platform_data *pdata)
void __init dm355_init(void)
{
davinci_common_init(&davinci_soc_info_dm355);
+ davinci_map_sysmod();
}
static int __init dm355_init_devices(void)
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c
index 3171cd1..f0801b9 100644
--- a/arch/arm/mach-davinci/dm365.c
+++ b/arch/arm/mach-davinci/dm365.c
@@ -1139,6 +1139,7 @@ void __init dm365_init_rtc(void)
void __init dm365_init(void)
{
davinci_common_init(&davinci_soc_info_dm365);
+ davinci_map_sysmod();
}
static struct resource dm365_vpss_resources[] = {
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
index b84b220..6b1d473 100644
--- a/arch/arm/mach-davinci/dm644x.c
+++ b/arch/arm/mach-davinci/dm644x.c
@@ -787,6 +787,7 @@ void __init dm644x_init_asp(struct snd_platform_data *pdata)
void __init dm644x_init(void)
{
davinci_common_init(&davinci_soc_info_dm644x);
+ davinci_map_sysmod();
}
static int __init dm644x_init_devices(void)
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
index a6a9cde..1da02fe 100644
--- a/arch/arm/mach-davinci/dm646x.c
+++ b/arch/arm/mach-davinci/dm646x.c
@@ -914,6 +914,7 @@ int __init dm646x_init_edma(struct edma_rsv_info *rsv)
void __init dm646x_init(void)
{
davinci_common_init(&davinci_soc_info_dm646x);
+ davinci_map_sysmod();
}
static int __init dm646x_init_devices(void)
diff --git a/arch/arm/mach-davinci/include/mach/hardware.h b/arch/arm/mach-davinci/include/mach/hardware.h
index 414e0b9..0209b1f 100644
--- a/arch/arm/mach-davinci/include/mach/hardware.h
+++ b/arch/arm/mach-davinci/include/mach/hardware.h
@@ -19,8 +19,6 @@
* and the chip/board init code should then explicitly include
* <chipname>.h
*/
-#define DAVINCI_SYSTEM_MODULE_BASE 0x01C40000
-
/*
* I/O mapping
*/
--
1.6.2.4
next prev parent reply other threads:[~2011-12-15 12:11 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-15 12:11 [PATCH v6 00/11] ARM: davinci:add support for dm644x vpbe display driver Manjunath Hadli
2011-12-15 12:11 ` [PATCH v6 01/11] davinci: vpif: remove obsolete header file inclusion Manjunath Hadli
2011-12-16 14:22 ` Hadli, Manjunath
2011-12-19 20:02 ` Nori, Sekhar
2011-12-15 12:11 ` [PATCH v6 02/11] ARM: davinci: dm644x: remove the macros from the header to move to c file Manjunath Hadli
2011-12-20 6:30 ` Nori, Sekhar
2011-12-15 12:11 ` [PATCH v6 03/11] ARM: davinci: dm365: " Manjunath Hadli
2011-12-20 9:02 ` Nori, Sekhar
2011-12-15 12:11 ` [PATCH v6 04/11] ARM: davinci: dm646x: " Manjunath Hadli
2011-12-20 13:19 ` Nori, Sekhar
2011-12-15 12:11 ` [PATCH v6 05/11] ARM: davinci: create new common platform header for davinci Manjunath Hadli
2011-12-20 19:15 ` Nori, Sekhar
2011-12-21 7:29 ` Hadli, Manjunath
2011-12-15 12:11 ` Manjunath Hadli [this message]
2011-12-15 12:11 ` [PATCH v6 07/11] davinci: dm644x: Replace register base value with a defined macro Manjunath Hadli
2011-12-15 12:11 ` [PATCH v6 08/11] davinci: dm644x: change vpfe capture structure variables for consistency Manjunath Hadli
2011-12-15 12:11 ` [PATCH v6 09/11] davinci: dm644x: move vpfe init from soc to board specific files Manjunath Hadli
2011-12-15 12:11 ` [PATCH v6 10/11] davinci: dm644x: add support for v4l2 video display Manjunath Hadli
2011-12-15 12:12 ` [PATCH v6 11/11] davinci: dm644x EVM: add support for VPBE display Manjunath Hadli
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=1323951120-15876-7-git-send-email-manjunath.hadli@ti.com \
--to=manjunath.hadli@ti.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).