Skip to contentSkip to conversation

Split omap plat/io.h into local iomap.h files

PATCH New Tony Lindgren 5 participants 35 messages Feb 21, 2012 – Mar 12, 2012

Subsystems (14)
lore
Share & tools
lore

Tony Lindgren

author maintainer
#0 lore raw

cover Split omap plat/io.h into local iomap.h files

Hi all,

Here's a better version of a patch set to cut down mach/io.h down to minimum to prepare for mach/io.h removal for omap2+.

This is based on v3.3-rc4 + "ARM: OMAP2xxx: PM: remove obsolete timer disable code in the suspend path" patch.

Regards,

Tony

---

Tony Lindgren (8):
ARM: OMAP2+: Move DISPC L3 firewall to happen in omap_display_init()
ARM: OMAP2+: Move SDRC related functions from io.h into local common.h
ARM: OMAP: Move omap_init_consistent_dma_size() to local common.h
ARM: OMAP1: Move 16xx GPIO system clock to platform init code
ARM: OMAP1: Move most of plat/io.h into local iomap.h
ARM: OMAP2+: Move most of plat/io.h into local iomap.h
ARM: OMAP: Remove plat/io.h by moving it into mach/io.h
ARM: OMAP2+: Limit omap_read/write usage to legacy USB drivers

 arch/arm/mach-omap1/ams-delta-fiq-handler.S    |    3 -
 arch/arm/mach-omap1/ams-delta-fiq.c            |    1 
 arch/arm/mach-omap1/board-ams-delta.c          |   10 +-
 arch/arm/mach-omap1/board-fsample.c            |    7 +-
 arch/arm/mach-omap1/board-h2.c                 |    6 +
 arch/arm/mach-omap1/board-h3.c                 |    8 +-
 arch/arm/mach-omap1/board-htcherald.c          |    5 -
 arch/arm/mach-omap1/board-innovator.c          |    7 +-
 arch/arm/mach-omap1/board-nokia770.c           |    6 +
 arch/arm/mach-omap1/board-osk.c                |    7 +-
 arch/arm/mach-omap1/board-palmte.c             |    4 +
 arch/arm/mach-omap1/board-palmtt.c             |    9 +-
 arch/arm/mach-omap1/board-palmz71.c            |    9 +-
 arch/arm/mach-omap1/board-perseus2.c           |    7 +-
 arch/arm/mach-omap1/board-sx1.c                |    6 +
 arch/arm/mach-omap1/board-voiceblue.c          |    6 +
 arch/arm/mach-omap1/clock.c                    |    2 
 arch/arm/mach-omap1/clock_data.c               |    2 
 arch/arm/mach-omap1/common.h                   |    1 
 arch/arm/mach-omap1/devices.c                  |    8 +-
 arch/arm/mach-omap1/dma.c                      |    2 
 arch/arm/mach-omap1/flash.c                    |    2 
 arch/arm/mach-omap1/fpga.c                     |    5 +
 arch/arm/mach-omap1/gpio16xx.c                 |    7 ++
 arch/arm/mach-omap1/id.c                       |    1 
 arch/arm/mach-omap1/include/mach/entry-macro.S |    4 +
 arch/arm/mach-omap1/include/mach/io.h          |   78 +++++++++++++++++++
 arch/arm/mach-omap1/io.c                       |    3 +
 arch/arm/mach-omap1/iomap.h                    |   18 ++++
 arch/arm/mach-omap1/irq.c                      |    4 +
 arch/arm/mach-omap1/lcd_dma.c                  |    3 -
 arch/arm/mach-omap1/mcbsp.c                    |    5 +
 arch/arm/mach-omap1/pm.c                       |    6 +
 arch/arm/mach-omap1/reset.c                    |    3 -
 arch/arm/mach-omap1/sleep.S                    |    4 +
 arch/arm/mach-omap1/sram.S                     |    4 +
 arch/arm/mach-omap1/time.c                     |    3 -
 arch/arm/mach-omap1/timer32k.c                 |    7 +-
 arch/arm/mach-omap2/clock2420_data.c           |    1 
 arch/arm/mach-omap2/clock2430.c                |    1 
 arch/arm/mach-omap2/clock2430_data.c           |    1 
 arch/arm/mach-omap2/clock3xxx_data.c           |    3 -
 arch/arm/mach-omap2/clock44xx_data.c           |    3 +
 arch/arm/mach-omap2/cm2xxx_3xxx.c              |    2 
 arch/arm/mach-omap2/cm44xx.c                   |    2 
 arch/arm/mach-omap2/cminst44xx.c               |    2 
 arch/arm/mach-omap2/common.c                   |    4 -
 arch/arm/mach-omap2/common.h                   |    7 ++
 arch/arm/mach-omap2/control.c                  |    3 -
 arch/arm/mach-omap2/control.h                  |    1 
 arch/arm/mach-omap2/devices.c                  |    2 
 arch/arm/mach-omap2/display.c                  |    4 +
 arch/arm/mach-omap2/include/mach/io.h          |   60 ++++++++++++++-
 arch/arm/mach-omap2/io.c                       |   57 ++------------
 arch/arm/mach-omap2/iomap.h                    |   98 ------------------------
 arch/arm/mach-omap2/irq.c                      |    5 +
 arch/arm/mach-omap2/omap-smp.c                 |    3 -
 arch/arm/mach-omap2/pm24xx.c                   |    5 -
 arch/arm/mach-omap2/prcm_mpu44xx.c             |    2 
 arch/arm/mach-omap2/prm44xx.c                  |    3 -
 arch/arm/mach-omap2/prminst44xx.c              |    2 
 arch/arm/mach-omap2/sdram-nokia.c              |    1 
 arch/arm/mach-omap2/sdrc2xxx.c                 |    5 +
 arch/arm/mach-omap2/sleep24xx.S                |    1 
 arch/arm/mach-omap2/sleep34xx.S                |    4 +
 arch/arm/mach-omap2/sram242x.S                 |    4 +
 arch/arm/mach-omap2/sram243x.S                 |    4 +
 arch/arm/mach-omap2/sram34xx.S                 |    5 +
 arch/arm/plat-omap/dma.c                       |    2 
 arch/arm/plat-omap/include/plat/tc.h           |    4 +
 arch/arm/plat-omap/include/plat/usb.h          |   40 ++++++++++
 arch/arm/plat-omap/sram.c                      |    9 +-
 arch/arm/plat-omap/usb.c                       |    2 
 drivers/gpio/gpio-omap.c                       |    8 --
 drivers/video/omap/Kconfig                     |    2 
 drivers/video/omap2/dss/dispc.c                |    5 -
 76 files changed, 385 insertions(+), 255 deletions(-)
 create mode 100644 arch/arm/mach-omap1/iomap.h
 rename arch/arm/{plat-omap/include/plat/io.h => mach-omap2/iomap.h} (67%)
Signature · 1 line
Signature
author maintainer
#1 lore raw

PATCH 1/8 ARM: OMAP2+: Move DISPC L3 firewall to happen in omap_display_init()

Otherwise we cannot move most of plat/io.h to be a local iomap.h for mach-omap2.

Cc Tomi Valkeinen <[email protected]>
Cc linux-fbdev at vger.kernel.org
---
 arch/arm/mach-omap2/display.c   |    3 +++
 drivers/video/omap2/dss/dispc.c |    5 -----
 2 files changed, 3 insertions(+), 5 deletions(-)
arch/arm/mach-omap2/display.c +3 -0
index 3677b1f..5a7f12f 100644
@@ -191,6 +191,9 @@ int __init omap_display_init(struct omap_dss_board_info *board_data)
 	memset(&pdata, 0, sizeof(pdata));
 
 	if (cpu_is_omap24xx()) {
+		/* L3 firewall setting: enable access to OCM RAM */
+		__raw_writel(0x402000b0, OMAP2_L3_IO_ADDRESS(0x680050a0));
+
 		curr_dss_hwmod = omap2_dss_hwmod_data;
 		oh_count = ARRAY_SIZE(omap2_dss_hwmod_data);
 	} else if (cpu_is_omap34xx()) {
drivers/video/omap2/dss/dispc.c +0 -5
index e1626a1..cce0820 100644
@@ -3272,11 +3272,6 @@ static void _omap_dispc_initial_config(void)
 	if (dss_has_feature(FEAT_FUNCGATED))
 		REG_FLD_MOD(DISPC_CONFIG, 1, 9, 9);
 
-	/* L3 firewall setting: enable access to OCM RAM */
-	/* XXX this should be somewhere in plat-omap */
-	if (cpu_is_omap24xx())
-		__raw_writel(0x402000b0, OMAP2_L3_IO_ADDRESS(0x680050a0));
-
 	_dispc_setup_color_conv_coef();
 
 	dispc_set_loadmode(OMAP_DSS_LOAD_FRAME_ONLY);
#2 lore raw

PATCH 1/8 ARM: OMAP2+: Move DISPC L3 firewall to happen in omap_display_init()

Hi,

Quoted 32 lines · Tony Lindgren

Otherwise we cannot move most of plat/io.h to be a local iomap.h for mach-omap2.

Cc Tomi Valkeinen <[email protected]>
Cc linux-fbdev at vger.kernel.org
---
 arch/arm/mach-omap2/display.c   |    3 +++
 drivers/video/omap2/dss/dispc.c |    5 -----
 2 files changed, 3 insertions(+), 5 deletions(-)
arch/arm/mach-omap2/display.c +3 -0
index 3677b1f..5a7f12f 100644
@@ -191,6 +191,9 @@ int __init omap_display_init(struct omap_dss_board_info *board_data)
 	memset(&pdata, 0, sizeof(pdata));
 
 	if (cpu_is_omap24xx()) {
+		/* L3 firewall setting: enable access to OCM RAM */
+		__raw_writel(0x402000b0, OMAP2_L3_IO_ADDRESS(0x680050a0));
+
 		curr_dss_hwmod = omap2_dss_hwmod_data;
 		oh_count = ARRAY_SIZE(omap2_dss_hwmod_data);
 	} else if (cpu_is_omap34xx()) {
drivers/video/omap2/dss/dispc.c +0 -0
index e1626a1..cce0820 100644
@@ -3272,11 +3272,6 @@ static void _omap_dispc_initial_config(void)
 	if (dss_has_feature(FEAT_FUNCGATED))

drivers/video/omap2/dss/dispc.c static void _omap_dispc_initial_config(void) · line 3277

Quoted 10 lines
drivers/video/omap2/dss/dispc.c +0 -5
 		REG_FLD_MOD(DISPC_CONFIG, 1, 9, 9);
 
-	/* L3 firewall setting: enable access to OCM RAM */
-	/* XXX this should be somewhere in plat-omap */
-	if (cpu_is_omap24xx())
-		__raw_writel(0x402000b0, OMAP2_L3_IO_ADDRESS(0x680050a0));
-
 	_dispc_setup_color_conv_coef();
 
 	dispc_set_loadmode(OMAP_DSS_LOAD_FRAME_ONLY);

I think the whole raw_writel line can be removed. It's been copied from the old omapfb, and my understanding is that it's about using SRAM for framebuffer. Using SRAM for fb is no longer supported, and I have a patch set that removes the remaining SRAM code from omapfb/omapdss.

Tomi

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120222/620c64ad/attachment.sig>

author maintainer
#3 lore raw

PATCH 1/8 ARM: OMAP2+: Move DISPC L3 firewall to happen in omap_display_init()

Quoted 43 lines · Tomi Valkeinen

Hi,

Quoted 40 lines · Tony Lindgren

Otherwise we cannot move most of plat/io.h to be a local iomap.h for mach-omap2.

Cc Tomi Valkeinen <[email protected]>
Cc linux-fbdev at vger.kernel.org
---
 arch/arm/mach-omap2/display.c   |    3 +++
 drivers/video/omap2/dss/dispc.c |    5 -----
 2 files changed, 3 insertions(+), 5 deletions(-)
arch/arm/mach-omap2/display.c +3 -0
index 3677b1f..5a7f12f 100644
@@ -191,6 +191,9 @@ int __init omap_display_init(struct omap_dss_board_info *board_data)
 	memset(&pdata, 0, sizeof(pdata));
 
 	if (cpu_is_omap24xx()) {
+		/* L3 firewall setting: enable access to OCM RAM */
+		__raw_writel(0x402000b0, OMAP2_L3_IO_ADDRESS(0x680050a0));
+
 		curr_dss_hwmod = omap2_dss_hwmod_data;
 		oh_count = ARRAY_SIZE(omap2_dss_hwmod_data);
 	} else if (cpu_is_omap34xx()) {
drivers/video/omap2/dss/dispc.c +0 -5
index e1626a1..cce0820 100644
@@ -3272,11 +3272,6 @@ static void _omap_dispc_initial_config(void)
 	if (dss_has_feature(FEAT_FUNCGATED))
 		REG_FLD_MOD(DISPC_CONFIG, 1, 9, 9);
 
-	/* L3 firewall setting: enable access to OCM RAM */
-	/* XXX this should be somewhere in plat-omap */
-	if (cpu_is_omap24xx())
-		__raw_writel(0x402000b0, OMAP2_L3_IO_ADDRESS(0x680050a0));
-
 	_dispc_setup_color_conv_coef();
 
Quoted 7 lines

drivers/video/omap2/dss/dispc.c static void _omap_dispc_initial_config(void) · line 3277

Quoted 2 lines
drivers/video/omap2/dss/dispc.c +0 -0
 	dispc_set_loadmode(OMAP_DSS_LOAD_FRAME_ONLY);

I think the whole raw_writel line can be removed. It's been copied from the old omapfb, and my understanding is that it's about using SRAM for framebuffer. Using SRAM for fb is no longer supported, and I have a patch set that removes the remaining SRAM code from omapfb/omapdss.

OK, I'll remove those from drivers/video/omap2/dss/dispc.c so this series keeps building.

Tony

author maintainer
#4 lore raw

PATCH 1/8 ARM: OMAP2+: Move DISPC L3 firewall to happen in omap_display_init()

Quoted 52 lines · Tony Lindgren
Quoted 43 lines · Tomi Valkeinen

Hi,

Quoted 40 lines · Tony Lindgren

Otherwise we cannot move most of plat/io.h to be a local iomap.h for mach-omap2.

Cc Tomi Valkeinen <[email protected]>
Cc linux-fbdev at vger.kernel.org
---
 arch/arm/mach-omap2/display.c   |    3 +++
 drivers/video/omap2/dss/dispc.c |    5 -----
 2 files changed, 3 insertions(+), 5 deletions(-)
arch/arm/mach-omap2/display.c +3 -0
index 3677b1f..5a7f12f 100644
@@ -191,6 +191,9 @@ int __init omap_display_init(struct omap_dss_board_info *board_data)
 	memset(&pdata, 0, sizeof(pdata));
 
 	if (cpu_is_omap24xx()) {
+		/* L3 firewall setting: enable access to OCM RAM */
+		__raw_writel(0x402000b0, OMAP2_L3_IO_ADDRESS(0x680050a0));
+
 		curr_dss_hwmod = omap2_dss_hwmod_data;
 		oh_count = ARRAY_SIZE(omap2_dss_hwmod_data);
 	} else if (cpu_is_omap34xx()) {
drivers/video/omap2/dss/dispc.c +0 -5
index e1626a1..cce0820 100644
@@ -3272,11 +3272,6 @@ static void _omap_dispc_initial_config(void)
 	if (dss_has_feature(FEAT_FUNCGATED))
 		REG_FLD_MOD(DISPC_CONFIG, 1, 9, 9);
 
-	/* L3 firewall setting: enable access to OCM RAM */
-	/* XXX this should be somewhere in plat-omap */
-	if (cpu_is_omap24xx())
-		__raw_writel(0x402000b0, OMAP2_L3_IO_ADDRESS(0x680050a0));
-
 	_dispc_setup_color_conv_coef();
 
Quoted 7 lines

drivers/video/omap2/dss/dispc.c static void _omap_dispc_initial_config(void) · line 3277

Quoted 2 lines
drivers/video/omap2/dss/dispc.c +0 -0
 	dispc_set_loadmode(OMAP_DSS_LOAD_FRAME_ONLY);

I think the whole raw_writel line can be removed. It's been copied from the old omapfb, and my understanding is that it's about using SRAM for framebuffer. Using SRAM for fb is no longer supported, and I have a patch set that removes the remaining SRAM code from omapfb/omapdss.

Quoted 2 lines

OK, I'll remove those from drivers/video/omap2/dss/dispc.c so this series keeps building.

Here's this one updated.

Tony

From: Tony Lindgren <[email protected]>
Date: Mon, 20 Feb 2012 12:55:07 -0800
Subject: [PATCH] ARM: OMAP2+: Drop DISPC L3 firewall code

This is only needed when using SRAM for framebuffer, and the support for SRAM framebuffer is about to get removed.

Otherwise we cannot move most of plat/io.h to be a local iomap.h for mach-omap2.

Cc Tomi Valkeinen <[email protected]>
Cc linux-fbdev at vger.kernel.org
drivers/video/omap2/dss/dispc.c +0 -5
@@ -3272,11 +3272,6 @@ static void _omap_dispc_initial_config(void)
 	if (dss_has_feature(FEAT_FUNCGATED))
 		REG_FLD_MOD(DISPC_CONFIG, 1, 9, 9);
 
-	/* L3 firewall setting: enable access to OCM RAM */
-	/* XXX this should be somewhere in plat-omap */
-	if (cpu_is_omap24xx())
-		__raw_writel(0x402000b0, OMAP2_L3_IO_ADDRESS(0x680050a0));
-
 	_dispc_setup_color_conv_coef();
 
 	dispc_set_loadmode(OMAP_DSS_LOAD_FRAME_ONLY);
author maintainer
#5 lore raw

PATCH 2/8 ARM: OMAP2+: Move SDRC related functions from io.h into local common.h

In reply to Tony Lindgren

These should be local to omap2/3/4.

---
 arch/arm/mach-omap2/common.h         |    5 +++++
 arch/arm/plat-omap/include/plat/io.h |    4 ----
 2 files changed, 5 insertions(+), 4 deletions(-)
arch/arm/mach-omap2/common.h +5 -0
index febffde..5aa1acb 100644
@@ -235,5 +235,10 @@ static inline u32 omap4_mpuss_read_prev_context_state(void)
 	return 0;
 }
 #endif
+
+struct omap_sdrc_params;
+extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
+				      struct omap_sdrc_params *sdrc_cs1);
+
 #endif /* __ASSEMBLER__ */
 #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
arch/arm/plat-omap/include/plat/io.h +0 -4
index 0696bae..f5b386b 100644
@@ -266,10 +266,6 @@ extern void omap_writeb(u8 v, u32 pa);
 extern void omap_writew(u16 v, u32 pa);
 extern void omap_writel(u32 v, u32 pa);
 
-struct omap_sdrc_params;
-extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
-				      struct omap_sdrc_params *sdrc_cs1);
-
 extern void __init omap_init_consistent_dma_size(void);
 
 #endif
author maintainer
#6 lore raw

PATCH 3/8 ARM: OMAP: Move omap_init_consistent_dma_size() to local common.h

In reply to Tony Lindgren

We don't want to keep it in io.h as we want to remove io.h for omap2+ for the common zImage support.

---
 arch/arm/mach-omap1/common.h         |    1 +
 arch/arm/mach-omap2/common.h         |    2 ++
 arch/arm/plat-omap/include/plat/io.h |    2 --
 3 files changed, 3 insertions(+), 2 deletions(-)
arch/arm/mach-omap1/common.h +1 -0
index a9a5146..af658ad 100644
@@ -58,5 +58,6 @@ void omap1_restart(char, const char *);
 
 extern struct sys_timer omap1_timer;
 extern bool omap_32k_timer_init(void);
+extern void __init omap_init_consistent_dma_size(void);
 
 #endif /* __ARCH_ARM_MACH_OMAP1_COMMON_H */
arch/arm/mach-omap2/common.h +2 -0
index 5aa1acb..f78ec4e 100644
@@ -133,6 +133,8 @@ void am33xx_map_io(void);
 void omap4_map_io(void);
 void ti81xx_map_io(void);
 
+extern void __init omap_init_consistent_dma_size(void);
+
 /**
  * omap_test_timeout - busy-loop, testing a condition
  * @cond: condition to test until it evaluates to true
arch/arm/plat-omap/include/plat/io.h +0 -2
index f5b386b..28cd796 100644
@@ -266,8 +266,6 @@ extern void omap_writeb(u8 v, u32 pa);
 extern void omap_writew(u16 v, u32 pa);
 extern void omap_writel(u32 v, u32 pa);
 
-extern void __init omap_init_consistent_dma_size(void);
-
 #endif
 
 #endif
author maintainer
#7 lore raw

PATCH 4/8 ARM: OMAP1: Move 16xx GPIO system clock to platform init code

In reply to Tony Lindgren

This way we can remove omap_read/write call from the GPIO driver and remove include to linux/io.h.

---
 arch/arm/mach-omap1/gpio16xx.c |    7 +++++++
 drivers/gpio/gpio-omap.c       |    8 --------
 2 files changed, 7 insertions(+), 8 deletions(-)
arch/arm/mach-omap1/gpio16xx.c +7 -0
index 0f399bd..99cabc4 100644
@@ -218,6 +218,13 @@ static int __init omap16xx_gpio_init(void)
 	if (!cpu_is_omap16xx())
 		return -EINVAL;
 
+	/*
+	 * Enable system clock for GPIO module.
+	 * The CAM_CLK_CTRL *is* really the right place.
+	 */
+	omap_writel(omap_readl(ULPD_CAM_CLK_CTRL) | 0x04,
+					ULPD_CAM_CLK_CTRL);
+
 	for (i = 0; i < ARRAY_SIZE(omap16xx_gpio_dev); i++)
 		platform_device_register(omap16xx_gpio_dev[i]);
 
drivers/gpio/gpio-omap.c +0 -8
index 0b05629..1078a14 100644
@@ -18,7 +18,6 @@
 #include <linux/syscore_ops.h>
 #include <linux/err.h>
 #include <linux/clk.h>
-#include <linux/io.h>
 #include <linux/slab.h>
 #include <linux/pm_runtime.h>
 
@@ -1064,13 +1063,6 @@ static void omap_gpio_mod_init(struct gpio_bank *bank, int id)
 						+ OMAP1610_GPIO_IRQSTATUS1);
 			__raw_writew(0x0014, bank->base
 						+ OMAP1610_GPIO_SYSCONFIG);
-
-			/*
-			 * Enable system clock for GPIO module.
-			 * The CAM_CLK_CTRL *is* really the right place.
-			 */
-			omap_writel(omap_readl(ULPD_CAM_CLK_CTRL) | 0x04,
-						ULPD_CAM_CLK_CTRL);
 		}
 		if (cpu_is_omap7xx() && bank->method == METHOD_GPIO_7XX) {
 			__raw_writel(0xffffffff, bank->base
author maintainer
#8 lore raw

PATCH 4/8 ARM: OMAP1: Move 16xx GPIO system clock to platform init code

Quoted 2 lines · Tony Lindgren

This way we can remove omap_read/write call from the GPIO driver and remove include to linux/io.h.

...

drivers/gpio/gpio-omap.c line 23

Quoted 10 lines
drivers/gpio/gpio-omap.c +0 -1
@@ -18,7 +18,6 @@
 #include <linux/syscore_ops.h>
 #include <linux/err.h>
 #include <linux/clk.h>
-#include <linux/io.h>
 #include <linux/slab.h>
 #include <linux/pm_runtime.h>
 

I'll drop this hunk, it causes a conflict with Kevin's GPIO runtime PM series and it's not really related to this patch or actually needed. Updated patch below.

Regards,

Tony

From: Tony Lindgren <[email protected]>
Date: Wed, 22 Feb 2012 14:52:38 -0800
Subject: [PATCH] ARM: OMAP1: Move 16xx GPIO system clock to platform init code

This way we can remove omap_read/write call from the GPIO driver and remove include to linux/io.h.

arch/arm/mach-omap1/gpio16xx.c +7 -0
@@ -218,6 +218,13 @@ static int __init omap16xx_gpio_init(void)
 	if (!cpu_is_omap16xx())
 		return -EINVAL;
 
+	/*
+	 * Enable system clock for GPIO module.
+	 * The CAM_CLK_CTRL *is* really the right place.
+	 */
+	omap_writel(omap_readl(ULPD_CAM_CLK_CTRL) | 0x04,
+					ULPD_CAM_CLK_CTRL);
+
 	for (i = 0; i < ARRAY_SIZE(omap16xx_gpio_dev); i++)
 		platform_device_register(omap16xx_gpio_dev[i]);
 
drivers/gpio/gpio-omap.c +0 -7
index 0b05629..5b7b164 100644
@@ -1064,13 +1064,6 @@ static void omap_gpio_mod_init(struct gpio_bank *bank, int id)
 						+ OMAP1610_GPIO_IRQSTATUS1);
 			__raw_writew(0x0014, bank->base
 						+ OMAP1610_GPIO_SYSCONFIG);
-
-			/*
-			 * Enable system clock for GPIO module.
-			 * The CAM_CLK_CTRL *is* really the right place.
-			 */
-			omap_writel(omap_readl(ULPD_CAM_CLK_CTRL) | 0x04,
-						ULPD_CAM_CLK_CTRL);
 		}
 		if (cpu_is_omap7xx() && bank->method == METHOD_GPIO_7XX) {
 			__raw_writel(0xffffffff, bank->base
#9 lore raw

PATCH 4/8 ARM: OMAP1: Move 16xx GPIO system clock to platform init code

In reply to Tony Lindgren
Quoted 5 lines · Tony Lindgren

This way we can remove omap_read/write call from the GPIO driver and remove include to linux/io.h.

Who will be picking up this series? How intertwined is it with your tree Tony?

g.

Quoted 50 lines
---
 arch/arm/mach-omap1/gpio16xx.c |    7 +++++++
 drivers/gpio/gpio-omap.c       |    8 --------
 2 files changed, 7 insertions(+), 8 deletions(-)
arch/arm/mach-omap1/gpio16xx.c +7 -0
index 0f399bd..99cabc4 100644
@@ -218,6 +218,13 @@ static int __init omap16xx_gpio_init(void)
 	if (!cpu_is_omap16xx())
 		return -EINVAL;
 
+	/*
+	 * Enable system clock for GPIO module.
+	 * The CAM_CLK_CTRL *is* really the right place.
+	 */
+	omap_writel(omap_readl(ULPD_CAM_CLK_CTRL) | 0x04,
+					ULPD_CAM_CLK_CTRL);
+
 	for (i = 0; i < ARRAY_SIZE(omap16xx_gpio_dev); i++)
 		platform_device_register(omap16xx_gpio_dev[i]);
 
drivers/gpio/gpio-omap.c +0 -8
index 0b05629..1078a14 100644
@@ -18,7 +18,6 @@
 #include <linux/syscore_ops.h>
 #include <linux/err.h>
 #include <linux/clk.h>
-#include <linux/io.h>
 #include <linux/slab.h>
 #include <linux/pm_runtime.h>
 
@@ -1064,13 +1063,6 @@ static void omap_gpio_mod_init(struct gpio_bank *bank, int id)
 						+ OMAP1610_GPIO_IRQSTATUS1);
 			__raw_writew(0x0014, bank->base
 						+ OMAP1610_GPIO_SYSCONFIG);
-
-			/*
-			 * Enable system clock for GPIO module.
-			 * The CAM_CLK_CTRL *is* really the right place.
-			 */
-			omap_writel(omap_readl(ULPD_CAM_CLK_CTRL) | 0x04,
-						ULPD_CAM_CLK_CTRL);
 		}
 		if (cpu_is_omap7xx() && bank->method == METHOD_GPIO_7XX) {
 			__raw_writel(0xffffffff, bank->base
Signature · 2 lines
Grant Likely, B.Sc, P.Eng.
Secret Lab Technologies,Ltd.
author maintainer
#10 lore raw

PATCH 4/8 ARM: OMAP1: Move 16xx GPIO system clock to platform init code

Quoted 10 lines · Grant Likely
Quoted 5 lines · Tony Lindgren

This way we can remove omap_read/write call from the GPIO driver and remove include to linux/io.h.

Who will be picking up this series? How intertwined is it with your tree Tony?

Thanks for following up on this, no need to do anything on this.

This popped up few weeks ago and was resolved by pulling your GPIO branch into arm-soc. For more info, please see:

Subject: linux-next: manual merge of the arm-soc tree with the gpio tree

http://lkml.org/lkml/2012/3/1/7

Regards,

Tony

author maintainer
#11 lore raw

PATCH 5/8 ARM: OMAP1: Move most of plat/io.h into local iomap.h

In reply to Tony Lindgren

There's no need to have these in plat/io.h.

While at it, clean up the includes to group them
like they typically are grouped.

---
 arch/arm/mach-omap1/ams-delta-fiq-handler.S    |    3 ++-
 arch/arm/mach-omap1/ams-delta-fiq.c            |    1 +
 arch/arm/mach-omap1/board-ams-delta.c          |   10 ++++++----
 arch/arm/mach-omap1/board-fsample.c            |    7 +++++--
 arch/arm/mach-omap1/board-h2.c                 |    6 +++---
 arch/arm/mach-omap1/board-h3.c                 |    8 ++++----
 arch/arm/mach-omap1/board-htcherald.c          |    5 ++---
 arch/arm/mach-omap1/board-innovator.c          |    7 +++++--
 arch/arm/mach-omap1/board-nokia770.c           |    6 ++++--
 arch/arm/mach-omap1/board-osk.c                |    7 +++----
 arch/arm/mach-omap1/board-palmte.c             |    4 +++-
 arch/arm/mach-omap1/board-palmtt.c             |    9 +++++----
 arch/arm/mach-omap1/board-palmz71.c            |    9 +++++----
 arch/arm/mach-omap1/board-perseus2.c           |    7 +++++--
 arch/arm/mach-omap1/board-sx1.c                |    6 ++++--
 arch/arm/mach-omap1/board-voiceblue.c          |    6 ++++--
 arch/arm/mach-omap1/clock.c                    |    2 +-
 arch/arm/mach-omap1/clock_data.c               |    2 +-
 arch/arm/mach-omap1/devices.c                  |    8 ++++----
 arch/arm/mach-omap1/dma.c                      |    2 +-
 arch/arm/mach-omap1/flash.c                    |    2 +-
 arch/arm/mach-omap1/fpga.c                     |    5 ++++-
 arch/arm/mach-omap1/id.c                       |    1 +
 arch/arm/mach-omap1/include/mach/entry-macro.S |    4 +++-
 arch/arm/mach-omap1/io.c                       |    3 +++
 arch/arm/mach-omap1/iomap.h                    |   18 ++++++++++++++++++
 arch/arm/mach-omap1/irq.c                      |    4 +++-
 arch/arm/mach-omap1/lcd_dma.c                  |    3 ++-
 arch/arm/mach-omap1/mcbsp.c                    |    5 ++++-
 arch/arm/mach-omap1/pm.c                       |    6 ++++--
 arch/arm/mach-omap1/reset.c                    |    3 ++-
 arch/arm/mach-omap1/sleep.S                    |    4 ++++
 arch/arm/mach-omap1/sram.S                     |    4 ++++
 arch/arm/mach-omap1/time.c                     |    3 ++-
 arch/arm/mach-omap1/timer32k.c                 |    7 +++++--
 arch/arm/plat-omap/include/plat/io.h           |   13 -------------
 36 files changed, 128 insertions(+), 72 deletions(-)
 create mode 100644 arch/arm/mach-omap1/iomap.h
arch/arm/mach-omap1/ams-delta-fiq-handler.S +2 -1
index c1c5fb6..399c4c4 100644
@@ -15,11 +15,12 @@
 
 #include <linux/linkage.h>
 
-#include <plat/io.h>
 #include <plat/board-ams-delta.h>
 
 #include <mach/ams-delta-fiq.h>
 
+#include "iomap.h"
+
 /*
  * GPIO related definitions, copied from arch/arm/plat-omap/gpio.c.
  * Unfortunately, those were not placed in a separate header file.
arch/arm/mach-omap1/ams-delta-fiq.c +1 -0
index 152b32c..fcce7ff 100644
@@ -22,6 +22,7 @@
 #include <plat/board-ams-delta.h>
 
 #include <asm/fiq.h>
+
 #include <mach/ams-delta-fiq.h>
 
 static struct fiq_handler fh = {
arch/arm/mach-omap1/board-ams-delta.c +6 -4
index 88909cc..ac65d7d 100644
@@ -20,25 +20,27 @@
 #include <linux/platform_device.h>
 #include <linux/serial_8250.h>
 #include <linux/export.h>
+#include <linux/io.h>
 
 #include <media/soc_camera.h>
 
 #include <asm/serial.h>
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include <plat/io.h>
 #include <plat/board-ams-delta.h>
 #include <plat/keypad.h>
 #include <plat/mux.h>
 #include <plat/usb.h>
 #include <plat/board.h>
-#include "common.h"
-#include <mach/camera.h>
 
+#include <mach/hardware.h>
 #include <mach/ams-delta-fiq.h>
+#include <mach/camera.h>
+
+#include "iomap.h"
+#include "common.h"
 
 static u8 ams_delta_latch1_reg;
 static u16 ams_delta_latch2_reg;
arch/arm/mach-omap1/board-fsample.c +5 -2
index 0b9464b..079292c 100644
@@ -22,7 +22,6 @@
 #include <linux/input.h>
 #include <linux/smc91x.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -32,9 +31,13 @@
 #include <plat/flash.h>
 #include <plat/fpga.h>
 #include <plat/keypad.h>
-#include "common.h"
 #include <plat/board.h>
 
+#include <mach/hardware.h>
+
+#include "iomap.h"
+#include "common.h"
+
 /* fsample is pretty close to p2-sample */
 
 #define fsample_cpld_read(reg) __raw_readb(reg)
arch/arm/mach-omap1/board-h2.c +3 -3
index 00ad6b2..03e0050 100644
@@ -31,8 +31,6 @@
 #include <linux/i2c/tps65010.h>
 #include <linux/smc91x.h>
 
-#include <mach/hardware.h>
-
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -43,9 +41,11 @@
 #include <plat/irda.h>
 #include <plat/usb.h>
 #include <plat/keypad.h>
-#include "common.h"
 #include <plat/flash.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
 #include "board-h2.h"
 
 /* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */
arch/arm/mach-omap1/board-h3.c +4 -4
index 4a7f251..f304fe2 100644
@@ -33,21 +33,21 @@
 
 #include <asm/setup.h>
 #include <asm/page.h>
-#include <mach/hardware.h>
-
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include <mach/irqs.h>
 #include <plat/mux.h>
 #include <plat/tc.h>
 #include <plat/usb.h>
 #include <plat/keypad.h>
 #include <plat/dma.h>
-#include "common.h"
 #include <plat/flash.h>
 
+#include <mach/hardware.h>
+#include <mach/irqs.h>
+
+#include "common.h"
 #include "board-h3.h"
 
 /* In OMAP1710 H3 the Ethernet is directly connected to CS1 */
arch/arm/mach-omap1/board-htcherald.c +2 -3
index 731cc3d..fa52d14 100644
@@ -27,7 +27,7 @@
 #include <linux/init.h>
 #include <linux/platform_device.h>
 #include <linux/input.h>
-#include <linux/io.h>
+#include <linux/delay.h>
 #include <linux/gpio.h>
 #include <linux/gpio_keys.h>
 #include <linux/i2c.h>
@@ -41,7 +41,6 @@
 #include <asm/mach/arch.h>
 
 #include <plat/omap7xx.h>
-#include "common.h"
 #include <plat/board.h>
 #include <plat/keypad.h>
 #include <plat/usb.h>
@@ -49,7 +48,7 @@
 
 #include <mach/irqs.h>
 
-#include <linux/delay.h>
+#include "common.h"
 
 /* LCD register definition */
 #define       OMAP_LCDC_CONTROL               (0xfffec000 + 0x00)
arch/arm/mach-omap1/board-innovator.c +5 -2
index 309369e..289a6b8 100644
@@ -26,7 +26,6 @@
 #include <linux/input.h>
 #include <linux/smc91x.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -37,9 +36,13 @@
 #include <plat/tc.h>
 #include <plat/usb.h>
 #include <plat/keypad.h>
-#include "common.h"
 #include <plat/mmc.h>
 
+#include <mach/hardware.h>
+
+#include "iomap.h"
+#include "common.h"
+
 /* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */
 #define INNOVATOR1610_ETHR_START	0x04000300
 
arch/arm/mach-omap1/board-nokia770.c +4 -2
index f9efc03..abdbdb0 100644
@@ -21,7 +21,6 @@
 #include <linux/workqueue.h>
 #include <linux/delay.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -30,12 +29,15 @@
 #include <plat/usb.h>
 #include <plat/board.h>
 #include <plat/keypad.h>
-#include "common.h"
 #include <plat/hwa742.h>
 #include <plat/lcd_mipid.h>
 #include <plat/mmc.h>
 #include <plat/clock.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
+
 #define ADS7846_PENDOWN_GPIO	15
 
 static const unsigned int nokia770_keymap[] = {
arch/arm/mach-omap1/board-osk.c +3 -4
index 675de06..e2d7ae4 100644
@@ -34,15 +34,11 @@
 #include <linux/i2c.h>
 #include <linux/leds.h>
 #include <linux/smc91x.h>
-
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/physmap.h>
-
 #include <linux/i2c/tps65010.h>
 
-#include <mach/hardware.h>
-
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -51,6 +47,9 @@
 #include <plat/usb.h>
 #include <plat/mux.h>
 #include <plat/tc.h>
+
+#include <mach/hardware.h>
+
 #include "common.h"
 
 /* At OMAP5912 OSK the Ethernet is directly connected to CS1 */
arch/arm/mach-omap1/board-palmte.c +3 -1
index 81fa27f..04efa7e 100644
@@ -28,7 +28,6 @@
 #include <linux/interrupt.h>
 #include <linux/apm-emulation.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -41,6 +40,9 @@
 #include <plat/board.h>
 #include <plat/irda.h>
 #include <plat/keypad.h>
+
+#include <mach/hardware.h>
+
 #include "common.h"
 
 #define PALMTE_USBDETECT_GPIO	0
arch/arm/mach-omap1/board-palmtt.c +5 -4
index 81cb821..acd1f36 100644
@@ -24,8 +24,9 @@
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/physmap.h>
 #include <linux/leds.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/ads7846.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -39,10 +40,10 @@
 #include <plat/board.h>
 #include <plat/irda.h>
 #include <plat/keypad.h>
-#include "common.h"
 
-#include <linux/spi/spi.h>
-#include <linux/spi/ads7846.h>
+#include <mach/hardware.h>
+
+#include "common.h"
 
 #define PALMTT_USBDETECT_GPIO	0
 #define PALMTT_CABLE_GPIO	1
arch/arm/mach-omap1/board-palmz71.c +5 -4
index e881945..c1cd0f2 100644
@@ -27,8 +27,9 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/physmap.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/ads7846.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -41,10 +42,10 @@
 #include <plat/board.h>
 #include <plat/irda.h>
 #include <plat/keypad.h>
-#include "common.h"
 
-#include <linux/spi/spi.h>
-#include <linux/spi/ads7846.h>
+#include <mach/hardware.h>
+
+#include "common.h"
 
 #define PALMZ71_USBDETECT_GPIO	0
 #define PALMZ71_PENIRQ_GPIO	6
arch/arm/mach-omap1/board-perseus2.c +5 -2
index c000bed..83f5b76 100644
@@ -22,7 +22,6 @@
 #include <linux/input.h>
 #include <linux/smc91x.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -32,9 +31,13 @@
 #include <plat/fpga.h>
 #include <plat/flash.h>
 #include <plat/keypad.h>
-#include "common.h"
 #include <plat/board.h>
 
+#include <mach/hardware.h>
+
+#include "iomap.h"
+#include "common.h"
+
 static const unsigned int p2_keymap[] = {
 	KEY(0, 0, KEY_UP),
 	KEY(1, 0, KEY_RIGHT),
arch/arm/mach-omap1/board-sx1.c +4 -2
index 7bcd82a..fed4435 100644
@@ -28,7 +28,6 @@
 #include <linux/errno.h>
 #include <linux/export.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -40,10 +39,13 @@
 #include <plat/usb.h>
 #include <plat/tc.h>
 #include <plat/board.h>
-#include "common.h"
 #include <plat/keypad.h>
 #include <plat/board-sx1.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
+
 /* Write to I2C device */
 int sx1_i2c_write_byte(u8 devaddr, u8 regoffset, u8 value)
 {
arch/arm/mach-omap1/board-voiceblue.c +4 -2
index f83a502..659d0f7 100644
@@ -27,18 +27,20 @@
 #include <linux/smc91x.h>
 #include <linux/export.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
 #include <plat/board-voiceblue.h>
-#include "common.h"
 #include <plat/flash.h>
 #include <plat/mux.h>
 #include <plat/tc.h>
 #include <plat/usb.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
+
 static struct plat_serial8250_port voiceblue_ports[] = {
 	{
 		.mapbase	= (unsigned long)(OMAP_CS1_PHYS + 0x40000),
arch/arm/mach-omap1/clock.c +1 -1
index 0c50df0..0e8c176 100644
@@ -16,7 +16,6 @@
 #include <linux/errno.h>
 #include <linux/err.h>
 #include <linux/clk.h>
-#include <linux/io.h>
 #include <linux/clkdev.h>
 
 #include <asm/mach-types.h>
@@ -27,6 +26,7 @@
 #include <plat/sram.h>
 #include <plat/clkdev_omap.h>
 
+#include "iomap.h"
 #include "clock.h"
 #include "opp.h"
 
arch/arm/mach-omap1/clock_data.c +1 -1
index 94699a8..10b7451 100644
@@ -18,7 +18,6 @@
 #include <linux/clk.h>
 #include <linux/cpufreq.h>
 #include <linux/delay.h>
-#include <linux/io.h>
 
 #include <asm/mach-types.h>  /* for machine_is_* */
 
@@ -28,6 +27,7 @@
 #include <plat/sram.h>	/* for omap_sram_reprogram_clock() */
 #include <plat/usb.h>   /* for OTG_BASE */
 
+#include "iomap.h"
 #include "clock.h"
 
 /* Some ARM_IDLECT1 bit shifts - used in struct arm_idlect1_clk */
arch/arm/mach-omap1/devices.c +4 -4
index 1d76a63..d06c714 100644
@@ -15,14 +15,10 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
-#include <linux/io.h>
 #include <linux/spi/spi.h>
 
-#include <mach/camera.h>
-#include <mach/hardware.h>
 #include <asm/mach/map.h>
 
-#include "common.h"
 #include <plat/tc.h>
 #include <plat/board.h>
 #include <plat/mux.h>
@@ -30,6 +26,10 @@
 #include <plat/omap7xx.h>
 #include <plat/mcbsp.h>
 
+#include <mach/camera.h>
+#include <mach/hardware.h>
+
+#include "common.h"
 #include "clock.h"
 
 /*-------------------------------------------------------------------------*/
arch/arm/mach-omap1/dma.c +1 -1
index f5a5220..3ef7d52 100644
@@ -19,11 +19,11 @@
  */
 
 #include <linux/err.h>
-#include <linux/io.h>
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/device.h>
+#include <linux/io.h>
 
 #include <plat/dma.h>
 #include <plat/tc.h>
arch/arm/mach-omap1/flash.c +1 -1
index 1749cb3..98d29a0 100644
@@ -6,10 +6,10 @@
  * published by the Free Software Foundation.
  */
 
+#include <linux/io.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
 
-#include <plat/io.h>
 #include <plat/tc.h>
 #include <plat/flash.h>
 
arch/arm/mach-omap1/fpga.c +4 -1
index 0a17a1a..76c67b3 100644
@@ -24,12 +24,15 @@
 #include <linux/errno.h>
 #include <linux/io.h>
 
-#include <mach/hardware.h>
 #include <asm/irq.h>
 #include <asm/mach/irq.h>
 
 #include <plat/fpga.h>
 
+#include <mach/hardware.h>
+
+#include "iomap.h"
+
 static void fpga_mask_irq(struct irq_data *d)
 {
 	unsigned int irq = d->irq - OMAP_FPGA_IRQ_BASE;
arch/arm/mach-omap1/id.c +1 -0
index a0e3560..7483db2 100644
@@ -15,6 +15,7 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/io.h>
+
 #include <plat/cpu.h>
 
 #define OMAP_DIE_ID_0		0xfffe1800
arch/arm/mach-omap1/include/mach/entry-macro.S +3 -1
index bfb4fb1..68d2679 100644
@@ -9,10 +9,12 @@
  * License version 2. This program is licensed "as is" without any
  * warranty of any kind, whether express or implied.
  */
+
 #include <mach/hardware.h>
 #include <mach/io.h>
 #include <mach/irqs.h>
-#include <asm/hardware/gic.h>
+
+#include "../../iomap.h"
 
  		.macro	disable_fiq
 		.endm
arch/arm/mach-omap1/io.c +3 -0
index 8e55b6f..56fb444 100644
@@ -15,9 +15,12 @@
 
 #include <asm/tlb.h>
 #include <asm/mach/map.h>
+
 #include <plat/mux.h>
 #include <plat/tc.h>
 
+#include "iomap.h"
+#include "common.h"
 #include "clock.h"
 
 extern void omap_check_revision(void);
arch/arm/mach-omap1/iomap.h new file +18 -0
new file mode 100644
index 0000000..c2cdf71
@@ -0,0 +1,18 @@
+#ifdef __ASSEMBLER__
+#define IOMEM(x)		(x)
+#else
+#define IOMEM(x)		((void __force __iomem *)(x))
+#endif
+
+#define OMAP1_IO_OFFSET		0x01000000	/* Virtual IO = 0xfefb0000 */
+#define OMAP1_IO_ADDRESS(pa)	IOMEM((pa) - OMAP1_IO_OFFSET)
+
+/*
+ * ----------------------------------------------------------------------------
+ * Omap1 specific IO mapping
+ * ----------------------------------------------------------------------------
+ */
+
+#define OMAP1_IO_PHYS		0xFFFB0000
+#define OMAP1_IO_SIZE		0x40000
+#define OMAP1_IO_VIRT		(OMAP1_IO_PHYS - OMAP1_IO_OFFSET)
arch/arm/mach-omap1/irq.c +3 -1
index e5b104b..4448114 100644
@@ -42,11 +42,13 @@
 #include <linux/interrupt.h>
 #include <linux/io.h>
 
-#include <mach/hardware.h>
 #include <asm/irq.h>
 #include <asm/mach/irq.h>
+
 #include <plat/cpu.h>
 
+#include <mach/hardware.h>
+
 #define IRQ_BANK(irq) ((irq) >> 5)
 #define IRQ_BIT(irq)  ((irq) & 0x1f)
 
arch/arm/mach-omap1/lcd_dma.c +2 -1
index 4538093..123a0df 100644
@@ -27,9 +27,10 @@
 #include <linux/interrupt.h>
 #include <linux/io.h>
 
+#include <plat/dma.h>
+
 #include <mach/hardware.h>
 #include <mach/lcdc.h>
-#include <plat/dma.h>
 
 int omap_lcd_dma_running(void)
 {
arch/arm/mach-omap1/mcbsp.c +4 -1
index 91f9abb..3082d60 100644
@@ -19,12 +19,15 @@
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 
-#include <mach/irqs.h>
 #include <plat/dma.h>
 #include <plat/mux.h>
 #include <plat/cpu.h>
 #include <plat/mcbsp.h>
 
+#include <mach/irqs.h>
+
+#include "iomap.h"
+
 #define DPS_RSTCT2_PER_EN	(1 << 0)
 #define DSP_RSTCT2_WD_PER_EN	(1 << 1)
 
arch/arm/mach-omap1/pm.c +4 -2
index 89ea20c..c06bb40 100644
@@ -42,14 +42,13 @@
 #include <linux/sysfs.h>
 #include <linux/module.h>
 #include <linux/io.h>
+#include <linux/atomic.h>
 
 #include <asm/irq.h>
-#include <linux/atomic.h>
 #include <asm/mach/time.h>
 #include <asm/mach/irq.h>
 
 #include <plat/cpu.h>
-#include <mach/irqs.h>
 #include <plat/clock.h>
 #include <plat/sram.h>
 #include <plat/tc.h>
@@ -57,6 +56,9 @@
 #include <plat/dma.h>
 #include <plat/dmtimer.h>
 
+#include <mach/irqs.h>
+
+#include "iomap.h"
 #include "pm.h"
 
 static unsigned int arm_sleep_save[ARM_SLEEP_SAVE_SIZE];
arch/arm/mach-omap1/reset.c +2 -1
index 91d199b..f255b15 100644
@@ -4,9 +4,10 @@
 #include <linux/kernel.h>
 #include <linux/io.h>
 
-#include <mach/hardware.h>
 #include <plat/prcm.h>
 
+#include <mach/hardware.h>
+
 void omap1_restart(char mode, const char *cmd)
 {
 	/*
arch/arm/mach-omap1/sleep.S +4 -0
index c875bdc..0779db1 100644
@@ -33,8 +33,12 @@
  */
 
 #include <linux/linkage.h>
+
 #include <asm/assembler.h>
+
 #include <mach/io.h>
+
+#include "iomap.h"
 #include "pm.h"
 
 		.text
arch/arm/mach-omap1/sram.S +4 -0
index 692587d..2ce0b9a 100644
@@ -9,10 +9,14 @@
  */
 
 #include <linux/linkage.h>
+
 #include <asm/assembler.h>
+
 #include <mach/io.h>
 #include <mach/hardware.h>
 
+#include "iomap.h"
+
 	.text
 
 /*
arch/arm/mach-omap1/time.c +2 -1
index b8faffa..2fae6a2 100644
@@ -45,14 +45,15 @@
 #include <linux/io.h>
 
 #include <asm/system.h>
-#include <mach/hardware.h>
 #include <asm/leds.h>
 #include <asm/irq.h>
 #include <asm/sched_clock.h>
 
+#include <mach/hardware.h>
 #include <asm/mach/irq.h>
 #include <asm/mach/time.h>
 
+#include "iomap.h"
 #include "common.h"
 
 #ifdef CONFIG_OMAP_MPU_TIMER
arch/arm/mach-omap1/timer32k.c +5 -2
index 9a54ef4..a2e6d07 100644
@@ -47,14 +47,17 @@
 #include <linux/io.h>
 
 #include <asm/system.h>
-#include <mach/hardware.h>
 #include <asm/leds.h>
 #include <asm/irq.h>
 #include <asm/mach/irq.h>
 #include <asm/mach/time.h>
-#include "common.h"
+
 #include <plat/dmtimer.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
+
 /*
  * ---------------------------------------------------------------------------
  * 32KHz OS timer
arch/arm/plat-omap/include/plat/io.h +0 -13
index 28cd796..e5e8e08 100644
@@ -60,9 +60,6 @@
 #define IOMEM(x)		((void __force __iomem *)(x))
 #endif
 
-#define OMAP1_IO_OFFSET		0x01000000	/* Virtual IO = 0xfefb0000 */
-#define OMAP1_IO_ADDRESS(pa)	IOMEM((pa) - OMAP1_IO_OFFSET)
-
 #define OMAP2_L3_IO_OFFSET	0x90000000
 #define OMAP2_L3_IO_ADDRESS(pa)	IOMEM((pa) + OMAP2_L3_IO_OFFSET) /* L3 */
 
@@ -87,16 +84,6 @@
 
 /*
  * ----------------------------------------------------------------------------
- * Omap1 specific IO mapping
- * ----------------------------------------------------------------------------
- */
-
-#define OMAP1_IO_PHYS		0xFFFB0000
-#define OMAP1_IO_SIZE		0x40000
-#define OMAP1_IO_VIRT		(OMAP1_IO_PHYS - OMAP1_IO_OFFSET)
-
-/*
- * ----------------------------------------------------------------------------
  * Omap2 specific IO mapping
  * ----------------------------------------------------------------------------
  */
author maintainer
#12 lore raw

PATCH 5/8 ARM: OMAP1: Move most of plat/io.h into local iomap.h

Quoted 4 lines · Tony Lindgren

There's no need to have these in plat/io.h.

While at it, clean up the includes to group them
like they typically are grouped.

...

Quoted 14 lines
arch/arm/mach-omap1/iomap.h new file +8 -0
new file mode 100644
index 0000000..c2cdf71
@@ -0,0 +1,18 @@
+#ifdef __ASSEMBLER__
+#define IOMEM(x)		(x)
+#else
+#define IOMEM(x)		((void __force __iomem *)(x))
+#endif
+
+#define OMAP1_IO_OFFSET		0x01000000	/* Virtual IO = 0xfefb0000 */
+#define OMAP1_IO_ADDRESS(pa)	IOMEM((pa) - OMAP1_IO_OFFSET)

arch/arm/mach-omap1/iomap.h line 18

Quoted 10 lines
arch/arm/mach-omap1/iomap.h new file +10 -0
+
+/*
+ * ----------------------------------------------------------------------------
+ * Omap1 specific IO mapping
+ * ----------------------------------------------------------------------------
+ */
+
+#define OMAP1_IO_PHYS		0xFFFB0000
+#define OMAP1_IO_SIZE		0x40000
+#define OMAP1_IO_VIRT		(OMAP1_IO_PHYS - OMAP1_IO_OFFSET)

Looks like the iomap.h is missing license, so updated patch below.

Regards,

Tony

From: Tony Lindgren <[email protected]>
Date: Wed, 22 Feb 2012 14:52:39 -0800
Subject: [PATCH] ARM: OMAP1: Move most of plat/io.h into local iomap.h

There's no need to have these in plat/io.h.

While at it, clean up the includes to group them
like they typically are grouped.

arch/arm/mach-omap1/ams-delta-fiq-handler.S +2 -1
index c1c5fb6..399c4c4 100644
@@ -15,11 +15,12 @@
 
 #include <linux/linkage.h>
 
-#include <plat/io.h>
 #include <plat/board-ams-delta.h>
 
 #include <mach/ams-delta-fiq.h>
 
+#include "iomap.h"
+
 /*
  * GPIO related definitions, copied from arch/arm/plat-omap/gpio.c.
  * Unfortunately, those were not placed in a separate header file.
arch/arm/mach-omap1/ams-delta-fiq.c +1 -0
index 152b32c..fcce7ff 100644
@@ -22,6 +22,7 @@
 #include <plat/board-ams-delta.h>
 
 #include <asm/fiq.h>
+
 #include <mach/ams-delta-fiq.h>
 
 static struct fiq_handler fh = {
arch/arm/mach-omap1/board-ams-delta.c +6 -4
index 88909cc..ac65d7d 100644
@@ -20,25 +20,27 @@
 #include <linux/platform_device.h>
 #include <linux/serial_8250.h>
 #include <linux/export.h>
+#include <linux/io.h>
 
 #include <media/soc_camera.h>
 
 #include <asm/serial.h>
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include <plat/io.h>
 #include <plat/board-ams-delta.h>
 #include <plat/keypad.h>
 #include <plat/mux.h>
 #include <plat/usb.h>
 #include <plat/board.h>
-#include "common.h"
-#include <mach/camera.h>
 
+#include <mach/hardware.h>
 #include <mach/ams-delta-fiq.h>
+#include <mach/camera.h>
+
+#include "iomap.h"
+#include "common.h"
 
 static u8 ams_delta_latch1_reg;
 static u16 ams_delta_latch2_reg;
arch/arm/mach-omap1/board-fsample.c +5 -2
index 0b9464b..079292c 100644
@@ -22,7 +22,6 @@
 #include <linux/input.h>
 #include <linux/smc91x.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -32,9 +31,13 @@
 #include <plat/flash.h>
 #include <plat/fpga.h>
 #include <plat/keypad.h>
-#include "common.h"
 #include <plat/board.h>
 
+#include <mach/hardware.h>
+
+#include "iomap.h"
+#include "common.h"
+
 /* fsample is pretty close to p2-sample */
 
 #define fsample_cpld_read(reg) __raw_readb(reg)
arch/arm/mach-omap1/board-h2.c +3 -3
index 00ad6b2..03e0050 100644
@@ -31,8 +31,6 @@
 #include <linux/i2c/tps65010.h>
 #include <linux/smc91x.h>
 
-#include <mach/hardware.h>
-
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -43,9 +41,11 @@
 #include <plat/irda.h>
 #include <plat/usb.h>
 #include <plat/keypad.h>
-#include "common.h"
 #include <plat/flash.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
 #include "board-h2.h"
 
 /* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */
arch/arm/mach-omap1/board-h3.c +4 -4
index 4a7f251..f304fe2 100644
@@ -33,21 +33,21 @@
 
 #include <asm/setup.h>
 #include <asm/page.h>
-#include <mach/hardware.h>
-
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include <mach/irqs.h>
 #include <plat/mux.h>
 #include <plat/tc.h>
 #include <plat/usb.h>
 #include <plat/keypad.h>
 #include <plat/dma.h>
-#include "common.h"
 #include <plat/flash.h>
 
+#include <mach/hardware.h>
+#include <mach/irqs.h>
+
+#include "common.h"
 #include "board-h3.h"
 
 /* In OMAP1710 H3 the Ethernet is directly connected to CS1 */
arch/arm/mach-omap1/board-htcherald.c +2 -3
index 731cc3d..fa52d14 100644
@@ -27,7 +27,7 @@
 #include <linux/init.h>
 #include <linux/platform_device.h>
 #include <linux/input.h>
-#include <linux/io.h>
+#include <linux/delay.h>
 #include <linux/gpio.h>
 #include <linux/gpio_keys.h>
 #include <linux/i2c.h>
@@ -41,7 +41,6 @@
 #include <asm/mach/arch.h>
 
 #include <plat/omap7xx.h>
-#include "common.h"
 #include <plat/board.h>
 #include <plat/keypad.h>
 #include <plat/usb.h>
@@ -49,7 +48,7 @@
 
 #include <mach/irqs.h>
 
-#include <linux/delay.h>
+#include "common.h"
 
 /* LCD register definition */
 #define       OMAP_LCDC_CONTROL               (0xfffec000 + 0x00)
arch/arm/mach-omap1/board-innovator.c +5 -2
index 309369e..289a6b8 100644
@@ -26,7 +26,6 @@
 #include <linux/input.h>
 #include <linux/smc91x.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -37,9 +36,13 @@
 #include <plat/tc.h>
 #include <plat/usb.h>
 #include <plat/keypad.h>
-#include "common.h"
 #include <plat/mmc.h>
 
+#include <mach/hardware.h>
+
+#include "iomap.h"
+#include "common.h"
+
 /* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */
 #define INNOVATOR1610_ETHR_START	0x04000300
 
arch/arm/mach-omap1/board-nokia770.c +4 -2
index f9efc03..abdbdb0 100644
@@ -21,7 +21,6 @@
 #include <linux/workqueue.h>
 #include <linux/delay.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -30,12 +29,15 @@
 #include <plat/usb.h>
 #include <plat/board.h>
 #include <plat/keypad.h>
-#include "common.h"
 #include <plat/hwa742.h>
 #include <plat/lcd_mipid.h>
 #include <plat/mmc.h>
 #include <plat/clock.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
+
 #define ADS7846_PENDOWN_GPIO	15
 
 static const unsigned int nokia770_keymap[] = {
arch/arm/mach-omap1/board-osk.c +3 -4
index 675de06..e2d7ae4 100644
@@ -34,15 +34,11 @@
 #include <linux/i2c.h>
 #include <linux/leds.h>
 #include <linux/smc91x.h>
-
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/physmap.h>
-
 #include <linux/i2c/tps65010.h>
 
-#include <mach/hardware.h>
-
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -51,6 +47,9 @@
 #include <plat/usb.h>
 #include <plat/mux.h>
 #include <plat/tc.h>
+
+#include <mach/hardware.h>
+
 #include "common.h"
 
 /* At OMAP5912 OSK the Ethernet is directly connected to CS1 */
arch/arm/mach-omap1/board-palmte.c +3 -1
index 81fa27f..04efa7e 100644
@@ -28,7 +28,6 @@
 #include <linux/interrupt.h>
 #include <linux/apm-emulation.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -41,6 +40,9 @@
 #include <plat/board.h>
 #include <plat/irda.h>
 #include <plat/keypad.h>
+
+#include <mach/hardware.h>
+
 #include "common.h"
 
 #define PALMTE_USBDETECT_GPIO	0
arch/arm/mach-omap1/board-palmtt.c +5 -4
index 81cb821..acd1f36 100644
@@ -24,8 +24,9 @@
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/physmap.h>
 #include <linux/leds.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/ads7846.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -39,10 +40,10 @@
 #include <plat/board.h>
 #include <plat/irda.h>
 #include <plat/keypad.h>
-#include "common.h"
 
-#include <linux/spi/spi.h>
-#include <linux/spi/ads7846.h>
+#include <mach/hardware.h>
+
+#include "common.h"
 
 #define PALMTT_USBDETECT_GPIO	0
 #define PALMTT_CABLE_GPIO	1
arch/arm/mach-omap1/board-palmz71.c +5 -4
index e881945..c1cd0f2 100644
@@ -27,8 +27,9 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/physmap.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/ads7846.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -41,10 +42,10 @@
 #include <plat/board.h>
 #include <plat/irda.h>
 #include <plat/keypad.h>
-#include "common.h"
 
-#include <linux/spi/spi.h>
-#include <linux/spi/ads7846.h>
+#include <mach/hardware.h>
+
+#include "common.h"
 
 #define PALMZ71_USBDETECT_GPIO	0
 #define PALMZ71_PENIRQ_GPIO	6
arch/arm/mach-omap1/board-perseus2.c +5 -2
index c000bed..83f5b76 100644
@@ -22,7 +22,6 @@
 #include <linux/input.h>
 #include <linux/smc91x.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -32,9 +31,13 @@
 #include <plat/fpga.h>
 #include <plat/flash.h>
 #include <plat/keypad.h>
-#include "common.h"
 #include <plat/board.h>
 
+#include <mach/hardware.h>
+
+#include "iomap.h"
+#include "common.h"
+
 static const unsigned int p2_keymap[] = {
 	KEY(0, 0, KEY_UP),
 	KEY(1, 0, KEY_RIGHT),
arch/arm/mach-omap1/board-sx1.c +4 -2
index 7bcd82a..fed4435 100644
@@ -28,7 +28,6 @@
 #include <linux/errno.h>
 #include <linux/export.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -40,10 +39,13 @@
 #include <plat/usb.h>
 #include <plat/tc.h>
 #include <plat/board.h>
-#include "common.h"
 #include <plat/keypad.h>
 #include <plat/board-sx1.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
+
 /* Write to I2C device */
 int sx1_i2c_write_byte(u8 devaddr, u8 regoffset, u8 value)
 {
arch/arm/mach-omap1/board-voiceblue.c +4 -2
index f83a502..659d0f7 100644
@@ -27,18 +27,20 @@
 #include <linux/smc91x.h>
 #include <linux/export.h>
 
-#include <mach/hardware.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
 #include <plat/board-voiceblue.h>
-#include "common.h"
 #include <plat/flash.h>
 #include <plat/mux.h>
 #include <plat/tc.h>
 #include <plat/usb.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
+
 static struct plat_serial8250_port voiceblue_ports[] = {
 	{
 		.mapbase	= (unsigned long)(OMAP_CS1_PHYS + 0x40000),
arch/arm/mach-omap1/clock.c +1 -1
index 0c50df0..0e8c176 100644
@@ -16,7 +16,6 @@
 #include <linux/errno.h>
 #include <linux/err.h>
 #include <linux/clk.h>
-#include <linux/io.h>
 #include <linux/clkdev.h>
 
 #include <asm/mach-types.h>
@@ -27,6 +26,7 @@
 #include <plat/sram.h>
 #include <plat/clkdev_omap.h>
 
+#include "iomap.h"
 #include "clock.h"
 #include "opp.h"
 
arch/arm/mach-omap1/clock_data.c +1 -1
index 94699a8..10b7451 100644
@@ -18,7 +18,6 @@
 #include <linux/clk.h>
 #include <linux/cpufreq.h>
 #include <linux/delay.h>
-#include <linux/io.h>
 
 #include <asm/mach-types.h>  /* for machine_is_* */
 
@@ -28,6 +27,7 @@
 #include <plat/sram.h>	/* for omap_sram_reprogram_clock() */
 #include <plat/usb.h>   /* for OTG_BASE */
 
+#include "iomap.h"
 #include "clock.h"
 
 /* Some ARM_IDLECT1 bit shifts - used in struct arm_idlect1_clk */
arch/arm/mach-omap1/devices.c +4 -4
index 1d76a63..d06c714 100644
@@ -15,14 +15,10 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
-#include <linux/io.h>
 #include <linux/spi/spi.h>
 
-#include <mach/camera.h>
-#include <mach/hardware.h>
 #include <asm/mach/map.h>
 
-#include "common.h"
 #include <plat/tc.h>
 #include <plat/board.h>
 #include <plat/mux.h>
@@ -30,6 +26,10 @@
 #include <plat/omap7xx.h>
 #include <plat/mcbsp.h>
 
+#include <mach/camera.h>
+#include <mach/hardware.h>
+
+#include "common.h"
 #include "clock.h"
 
 /*-------------------------------------------------------------------------*/
arch/arm/mach-omap1/dma.c +1 -1
index f5a5220..3ef7d52 100644
@@ -19,11 +19,11 @@
  */
 
 #include <linux/err.h>
-#include <linux/io.h>
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/device.h>
+#include <linux/io.h>
 
 #include <plat/dma.h>
 #include <plat/tc.h>
arch/arm/mach-omap1/flash.c +1 -1
index 1749cb3..98d29a0 100644
@@ -6,10 +6,10 @@
  * published by the Free Software Foundation.
  */
 
+#include <linux/io.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/map.h>
 
-#include <plat/io.h>
 #include <plat/tc.h>
 #include <plat/flash.h>
 
arch/arm/mach-omap1/fpga.c +4 -1
index 0a17a1a..76c67b3 100644
@@ -24,12 +24,15 @@
 #include <linux/errno.h>
 #include <linux/io.h>
 
-#include <mach/hardware.h>
 #include <asm/irq.h>
 #include <asm/mach/irq.h>
 
 #include <plat/fpga.h>
 
+#include <mach/hardware.h>
+
+#include "iomap.h"
+
 static void fpga_mask_irq(struct irq_data *d)
 {
 	unsigned int irq = d->irq - OMAP_FPGA_IRQ_BASE;
arch/arm/mach-omap1/id.c +1 -0
index a0e3560..7483db2 100644
@@ -15,6 +15,7 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/io.h>
+
 #include <plat/cpu.h>
 
 #define OMAP_DIE_ID_0		0xfffe1800
arch/arm/mach-omap1/include/mach/entry-macro.S +3 -1
index bfb4fb1..68d2679 100644
@@ -9,10 +9,12 @@
  * License version 2. This program is licensed "as is" without any
  * warranty of any kind, whether express or implied.
  */
+
 #include <mach/hardware.h>
 #include <mach/io.h>
 #include <mach/irqs.h>
-#include <asm/hardware/gic.h>
+
+#include "../../iomap.h"
 
  		.macro	disable_fiq
 		.endm
arch/arm/mach-omap1/io.c +3 -0
index 8e55b6f..56fb444 100644
@@ -15,9 +15,12 @@
 
 #include <asm/tlb.h>
 #include <asm/mach/map.h>
+
 #include <plat/mux.h>
 #include <plat/tc.h>
 
+#include "iomap.h"
+#include "common.h"
 #include "clock.h"
 
 extern void omap_check_revision(void);
arch/arm/mach-omap1/iomap.h new file +42 -0

42 lines not on this page · raw message

arch/arm/mach-omap1/irq.c +3 -1
index e5b104b..4448114 100644
@@ -42,11 +42,13 @@
 #include <linux/interrupt.h>
 #include <linux/io.h>
 
-#include <mach/hardware.h>
 #include <asm/irq.h>
 #include <asm/mach/irq.h>
+
 #include <plat/cpu.h>
 
+#include <mach/hardware.h>
+
 #define IRQ_BANK(irq) ((irq) >> 5)
 #define IRQ_BIT(irq)  ((irq) & 0x1f)
 
arch/arm/mach-omap1/lcd_dma.c +2 -1
index 4538093..123a0df 100644
@@ -27,9 +27,10 @@
 #include <linux/interrupt.h>
 #include <linux/io.h>
 
+#include <plat/dma.h>
+
 #include <mach/hardware.h>
 #include <mach/lcdc.h>
-#include <plat/dma.h>
 
 int omap_lcd_dma_running(void)
 {
arch/arm/mach-omap1/mcbsp.c +4 -1
index 91f9abb..3082d60 100644
@@ -19,12 +19,15 @@
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 
-#include <mach/irqs.h>
 #include <plat/dma.h>
 #include <plat/mux.h>
 #include <plat/cpu.h>
 #include <plat/mcbsp.h>
 
+#include <mach/irqs.h>
+
+#include "iomap.h"
+
 #define DPS_RSTCT2_PER_EN	(1 << 0)
 #define DSP_RSTCT2_WD_PER_EN	(1 << 1)
 
arch/arm/mach-omap1/pm.c +4 -2
index 89ea20c..c06bb40 100644
@@ -42,14 +42,13 @@
 #include <linux/sysfs.h>
 #include <linux/module.h>
 #include <linux/io.h>
+#include <linux/atomic.h>
 
 #include <asm/irq.h>
-#include <linux/atomic.h>
 #include <asm/mach/time.h>
 #include <asm/mach/irq.h>
 
 #include <plat/cpu.h>
-#include <mach/irqs.h>
 #include <plat/clock.h>
 #include <plat/sram.h>
 #include <plat/tc.h>
@@ -57,6 +56,9 @@
 #include <plat/dma.h>
 #include <plat/dmtimer.h>
 
+#include <mach/irqs.h>
+
+#include "iomap.h"
 #include "pm.h"
 
 static unsigned int arm_sleep_save[ARM_SLEEP_SAVE_SIZE];
arch/arm/mach-omap1/reset.c +2 -1
index 91d199b..f255b15 100644
@@ -4,9 +4,10 @@
 #include <linux/kernel.h>
 #include <linux/io.h>
 
-#include <mach/hardware.h>
 #include <plat/prcm.h>
 
+#include <mach/hardware.h>
+
 void omap1_restart(char mode, const char *cmd)
 {
 	/*
arch/arm/mach-omap1/sleep.S +4 -0
index c875bdc..0779db1 100644
@@ -33,8 +33,12 @@
  */
 
 #include <linux/linkage.h>
+
 #include <asm/assembler.h>
+
 #include <mach/io.h>
+
+#include "iomap.h"
 #include "pm.h"
 
 		.text
arch/arm/mach-omap1/sram.S +4 -0
index 692587d..2ce0b9a 100644
@@ -9,10 +9,14 @@
  */
 
 #include <linux/linkage.h>
+
 #include <asm/assembler.h>
+
 #include <mach/io.h>
 #include <mach/hardware.h>
 
+#include "iomap.h"
+
 	.text
 
 /*
arch/arm/mach-omap1/time.c +2 -1
index b8faffa..2fae6a2 100644
@@ -45,14 +45,15 @@
 #include <linux/io.h>
 
 #include <asm/system.h>
-#include <mach/hardware.h>
 #include <asm/leds.h>
 #include <asm/irq.h>
 #include <asm/sched_clock.h>
 
+#include <mach/hardware.h>
 #include <asm/mach/irq.h>
 #include <asm/mach/time.h>
 
+#include "iomap.h"
 #include "common.h"
 
 #ifdef CONFIG_OMAP_MPU_TIMER
arch/arm/mach-omap1/timer32k.c +5 -2
index 9a54ef4..a2e6d07 100644
@@ -47,14 +47,17 @@
 #include <linux/io.h>
 
 #include <asm/system.h>
-#include <mach/hardware.h>
 #include <asm/leds.h>
 #include <asm/irq.h>
 #include <asm/mach/irq.h>
 #include <asm/mach/time.h>
-#include "common.h"
+
 #include <plat/dmtimer.h>
 
+#include <mach/hardware.h>
+
+#include "common.h"
+
 /*
  * ---------------------------------------------------------------------------
  * 32KHz OS timer
arch/arm/plat-omap/include/plat/io.h +0 -13
index 28cd796..e5e8e08 100644
@@ -60,9 +60,6 @@
 #define IOMEM(x)		((void __force __iomem *)(x))
 #endif
 
-#define OMAP1_IO_OFFSET		0x01000000	/* Virtual IO = 0xfefb0000 */
-#define OMAP1_IO_ADDRESS(pa)	IOMEM((pa) - OMAP1_IO_OFFSET)
-
 #define OMAP2_L3_IO_OFFSET	0x90000000
 #define OMAP2_L3_IO_ADDRESS(pa)	IOMEM((pa) + OMAP2_L3_IO_OFFSET) /* L3 */
 
@@ -87,16 +84,6 @@
 
 /*
  * ----------------------------------------------------------------------------
- * Omap1 specific IO mapping
- * ----------------------------------------------------------------------------
- */
-
-#define OMAP1_IO_PHYS		0xFFFB0000
-#define OMAP1_IO_SIZE		0x40000
-#define OMAP1_IO_VIRT		(OMAP1_IO_PHYS - OMAP1_IO_OFFSET)
-
-/*
- * ----------------------------------------------------------------------------
  * Omap2 specific IO mapping
  * ----------------------------------------------------------------------------
  */
author maintainer
#13 lore raw

PATCH 6/8 ARM: OMAP2+: Move most of plat/io.h into local iomap.h

In reply to Tony Lindgren

There's no need to have these defines in plat/io.h.

Note that we now need to ifdef omap_read/write calls as they will be available for omap1 only.

While at it, clean up the includes to group them like they typically are grouped.

---
 arch/arm/mach-omap2/clock2420_data.c |    1 
 arch/arm/mach-omap2/clock2430.c      |    1 
 arch/arm/mach-omap2/clock2430_data.c |    1 
 arch/arm/mach-omap2/clock3xxx_data.c |    3 -
 arch/arm/mach-omap2/clock44xx_data.c |    3 +
 arch/arm/mach-omap2/cm2xxx_3xxx.c    |    2 
 arch/arm/mach-omap2/cm44xx.c         |    2 
 arch/arm/mach-omap2/cminst44xx.c     |    2 
 arch/arm/mach-omap2/common.c         |    4 -
 arch/arm/mach-omap2/control.c        |    3 -
 arch/arm/mach-omap2/control.h        |    1 
 arch/arm/mach-omap2/devices.c        |    2 
 arch/arm/mach-omap2/display.c        |    1 
 arch/arm/mach-omap2/io.c             |   17 +--
 arch/arm/mach-omap2/iomap.h          |  179 ++++++++++++++++++++++++++++++++++
 arch/arm/mach-omap2/irq.c            |    5 +
 arch/arm/mach-omap2/omap-smp.c       |    3 -
 arch/arm/mach-omap2/pm24xx.c         |    5 +
 arch/arm/mach-omap2/prcm_mpu44xx.c   |    2 
 arch/arm/mach-omap2/prm44xx.c        |    3 -
 arch/arm/mach-omap2/prminst44xx.c    |    2 
 arch/arm/mach-omap2/sdram-nokia.c    |    1 
 arch/arm/mach-omap2/sdrc2xxx.c       |    5 +
 arch/arm/mach-omap2/sleep24xx.S      |    1 
 arch/arm/mach-omap2/sleep34xx.S      |    4 +
 arch/arm/mach-omap2/sram242x.S       |    4 +
 arch/arm/mach-omap2/sram243x.S       |    4 +
 arch/arm/mach-omap2/sram34xx.S       |    5 +
 arch/arm/plat-omap/include/plat/io.h |  174 ---------------------------------
 arch/arm/plat-omap/include/plat/tc.h |    4 +
 arch/arm/plat-omap/sram.c            |    9 +-
 31 files changed, 238 insertions(+), 215 deletions(-)
 create mode 100644 arch/arm/mach-omap2/iomap.h
arch/arm/mach-omap2/clock2420_data.c +1 -0
index 61ad385..b1f3e7c 100644
@@ -19,6 +19,7 @@
 
 #include <plat/clkdev_omap.h>
 
+#include "iomap.h"
 #include "clock.h"
 #include "clock2xxx.h"
 #include "opp2xxx.h"
arch/arm/mach-omap2/clock2430.c +1 -0
index d87bc9c..0caf792 100644
@@ -23,6 +23,7 @@
 
 #include <plat/clock.h>
 
+#include "iomap.h"
 #include "clock.h"
 #include "clock2xxx.h"
 #include "cm2xxx_3xxx.h"
arch/arm/mach-omap2/clock2430_data.c +1 -0
index 0cc1287..9a061ff 100644
@@ -19,6 +19,7 @@
 
 #include <plat/clkdev_omap.h>
 
+#include "iomap.h"
 #include "clock.h"
 #include "clock2xxx.h"
 #include "opp2xxx.h"
arch/arm/mach-omap2/clock3xxx_data.c +2 -1
index d75e5f6..981b9f9 100644
@@ -20,14 +20,15 @@
 #include <linux/clk.h>
 #include <linux/list.h>
 
+#include <plat/hardware.h>
 #include <plat/clkdev_omap.h>
 
+#include "iomap.h"
 #include "clock.h"
 #include "clock3xxx.h"
 #include "clock34xx.h"
 #include "clock36xx.h"
 #include "clock3517.h"
-
 #include "cm2xxx_3xxx.h"
 #include "cm-regbits-34xx.h"
 #include "prm2xxx_3xxx.h"
arch/arm/mach-omap2/clock44xx_data.c +3 -0
index 08e86d7..79b98f2 100644
@@ -26,8 +26,11 @@
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/clk.h>
+
+#include <plat/hardware.h>
 #include <plat/clkdev_omap.h>
 
+#include "iomap.h"
 #include "clock.h"
 #include "clock44xx.h"
 #include "cm1_44xx.h"
arch/arm/mach-omap2/cm2xxx_3xxx.c +1 -1
index 04d39cd..c79ed63 100644
@@ -18,8 +18,8 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
+#include "iomap.h"
 #include "common.h"
-
 #include "cm.h"
 #include "cm2xxx_3xxx.h"
 #include "cm-regbits-24xx.h"
arch/arm/mach-omap2/cm44xx.c +1 -1
index 6a83630..535d66e 100644
@@ -18,8 +18,8 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
+#include "iomap.h"
 #include "common.h"
-
 #include "cm.h"
 #include "cm1_44xx.h"
 #include "cm2_44xx.h"
arch/arm/mach-omap2/cminst44xx.c +1 -1
index 6204dea..bd8810c 100644
@@ -20,8 +20,8 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
+#include "iomap.h"
 #include "common.h"
-
 #include "cm.h"
 #include "cm1_44xx.h"
 #include "cm2_44xx.h"
arch/arm/mach-omap2/common.c +2 -2
index aaf4211..93419de 100644
@@ -17,12 +17,12 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
-#include "common.h"
 #include <plat/board.h>
 #include <plat/mux.h>
-
 #include <plat/clock.h>
 
+#include "iomap.h"
+#include "common.h"
 #include "sdrc.h"
 #include "control.h"
 
arch/arm/mach-omap2/control.c +2 -1
index 114c037..2fd5fd1 100644
@@ -15,9 +15,10 @@
 #include <linux/kernel.h>
 #include <linux/io.h>
 
-#include "common.h"
 #include <plat/sdrc.h>
 
+#include "iomap.h"
+#include "common.h"
 #include "cm-regbits-34xx.h"
 #include "prm-regbits-34xx.h"
 #include "prm2xxx_3xxx.h"
arch/arm/mach-omap2/control.h +0 -1
index 0ba68d3..03149de 100644
@@ -16,7 +16,6 @@
 #ifndef __ARCH_ARM_MACH_OMAP2_CONTROL_H
 #define __ARCH_ARM_MACH_OMAP2_CONTROL_H
 
-#include <mach/io.h>
 #include <mach/ctrl_module_core_44xx.h>
 #include <mach/ctrl_module_wkup_44xx.h>
 #include <mach/ctrl_module_pad_core_44xx.h>
arch/arm/mach-omap2/devices.c +1 -1
index 283d11e..e13644c 100644
@@ -24,7 +24,7 @@
 #include <asm/mach/map.h>
 #include <asm/pmu.h>
 
-#include <plat/tc.h>
+#include "iomap.h"
 #include <plat/board.h>
 #include <plat/mcbsp.h>
 #include <plat/mmc.h>
arch/arm/mach-omap2/display.c +1 -0
index 5a7f12f..a59fbec 100644
@@ -30,6 +30,7 @@
 #include <plat/omap-pm.h>
 #include "common.h"
 
+#include "iomap.h"
 #include "mux.h"
 #include "control.h"
 #include "display.h"
arch/arm/mach-omap2/io.c +7 -10
index eb50c29..0119807 100644
@@ -24,26 +24,23 @@
 #include <linux/omapfb.h>
 
 #include <asm/tlb.h>
-
 #include <asm/mach/map.h>
 
 #include <plat/sram.h>
 #include <plat/sdrc.h>
 #include <plat/serial.h>
-
-#include "clock2xxx.h"
-#include "clock3xxx.h"
-#include "clock44xx.h"
-
-#include "common.h"
 #include <plat/omap-pm.h>
+#include <plat/omap_hwmod.h>
+#include <plat/multi.h>
+
+#include "iomap.h"
 #include "voltage.h"
 #include "powerdomain.h"
-
 #include "clockdomain.h"
-#include <plat/omap_hwmod.h>
-#include <plat/multi.h>
 #include "common.h"
+#include "clock2xxx.h"
+#include "clock3xxx.h"
+#include "clock44xx.h"
 
 /*
  * The machine specific code may provide the extra mapping besides the
arch/arm/mach-omap2/iomap.h new file +179 -0

179 lines not on this page · raw message

arch/arm/mach-omap2/irq.c +4 -1
index 1fef061..6da2d0e 100644
@@ -14,10 +14,13 @@
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/io.h>
-#include <mach/hardware.h>
+
 #include <asm/exception.h>
 #include <asm/mach/irq.h>
 
+#include <mach/hardware.h>
+
+#include "iomap.h"
 
 /* selected INTC register offsets */
 
arch/arm/mach-omap2/omap-smp.c +2 -1
index c1bf3ef..deffbf1 100644
@@ -23,11 +23,12 @@
 #include <asm/cacheflush.h>
 #include <asm/hardware/gic.h>
 #include <asm/smp_scu.h>
+
 #include <mach/hardware.h>
 #include <mach/omap-secure.h>
 
+#include "iomap.h"
 #include "common.h"
-
 #include "clockdomain.h"
 
 /* SCU base address */
arch/arm/mach-omap2/pm24xx.c +3 -2
index 18eda53..ac0d629 100644
@@ -35,12 +35,14 @@
 #include <asm/mach/irq.h>
 #include <asm/mach-types.h>
 
-#include <mach/irqs.h>
 #include <plat/clock.h>
 #include <plat/sram.h>
 #include <plat/dma.h>
 #include <plat/board.h>
 
+#include <mach/irqs.h>
+
+#include "iomap.h"
 #include "common.h"
 #include "prm2xxx_3xxx.h"
 #include "prm-regbits-24xx.h"
@@ -49,7 +51,6 @@
 #include "sdrc.h"
 #include "pm.h"
 #include "control.h"
-
 #include "powerdomain.h"
 #include "clockdomain.h"
 
arch/arm/mach-omap2/prcm_mpu44xx.c +1 -1
index ca669b5..928dbd4 100644
@@ -15,8 +15,8 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
+#include "iomap.h"
 #include "common.h"
-
 #include "prcm_mpu44xx.h"
 #include "cm-regbits-44xx.h"
 
arch/arm/mach-omap2/prm44xx.c +2 -1
index a1d6154..eac623c 100644
@@ -17,11 +17,12 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
-#include "common.h"
 #include <plat/cpu.h>
 #include <plat/irqs.h>
 #include <plat/prcm.h>
 
+#include "iomap.h"
+#include "common.h"
 #include "vp.h"
 #include "prm44xx.h"
 #include "prm-regbits-44xx.h"
arch/arm/mach-omap2/prminst44xx.c +1 -1
index f6de5bc..9b3898a 100644
@@ -16,8 +16,8 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
+#include "iomap.h"
 #include "common.h"
-
 #include "prm44xx.h"
 #include "prminst44xx.h"
 #include "prm-regbits-44xx.h"
arch/arm/mach-omap2/sdram-nokia.c +0 -1
index 7479d7e..845c4fd 100644
@@ -17,7 +17,6 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
-#include <plat/io.h>
 #include "common.h"
 #include <plat/clock.h>
 #include <plat/sdrc.h>
arch/arm/mach-omap2/sdrc2xxx.c +3 -2
index 791a63c..2c329a6 100644
@@ -24,13 +24,14 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
-#include "common.h"
 #include <plat/clock.h>
 #include <plat/sram.h>
+#include <plat/sdrc.h>
 
+#include "iomap.h"
+#include "common.h"
 #include "prm2xxx_3xxx.h"
 #include "clock.h"
-#include <plat/sdrc.h>
 #include "sdrc.h"
 
 /* Memory timing, DLL mode flags */
arch/arm/mach-omap2/sleep24xx.S +0 -1
index b5071a4..d4bf904 100644
@@ -27,7 +27,6 @@
 
 #include <linux/linkage.h>
 #include <asm/assembler.h>
-#include <mach/io.h>
 
 #include <plat/omap24xx.h>
 
arch/arm/mach-omap2/sleep34xx.S +3 -1
index f2ea1bd..b760fec 100644
@@ -23,10 +23,12 @@
  * MA 02111-1307 USA
  */
 #include <linux/linkage.h>
+
 #include <asm/assembler.h>
+
 #include <plat/sram.h>
-#include <mach/io.h>
 
+#include "iomap.h"
 #include "cm2xxx_3xxx.h"
 #include "prm2xxx_3xxx.h"
 #include "sdrc.h"
arch/arm/mach-omap2/sram242x.S +3 -1
index ff9b9db..ee0bfcc 100644
@@ -29,10 +29,12 @@
  * These crashes may be intermittent.
  */
 #include <linux/linkage.h>
+
 #include <asm/assembler.h>
-#include <mach/io.h>
+
 #include <mach/hardware.h>
 
+#include "iomap.h"
 #include "prm2xxx_3xxx.h"
 #include "cm2xxx_3xxx.h"
 #include "sdrc.h"
arch/arm/mach-omap2/sram243x.S +3 -1
index 7673020..d4d39ef 100644
@@ -29,10 +29,12 @@
  * These crashes may be intermittent.
  */
 #include <linux/linkage.h>
+
 #include <asm/assembler.h>
-#include <mach/io.h>
+
 #include <mach/hardware.h>
 
+#include "iomap.h"
 #include "prm2xxx_3xxx.h"
 #include "cm2xxx_3xxx.h"
 #include "sdrc.h"
arch/arm/mach-omap2/sram34xx.S +3 -2
index 6f5849a..df5a213 100644
@@ -26,11 +26,12 @@
  * MA 02111-1307 USA
  */
 #include <linux/linkage.h>
+
 #include <asm/assembler.h>
-#include <mach/hardware.h>
 
-#include <mach/io.h>
+#include <mach/hardware.h>
 
+#include "iomap.h"
 #include "sdrc.h"
 #include "cm2xxx_3xxx.h"
 
arch/arm/plat-omap/include/plat/io.h +0 -174

180 lines not on this page · raw message

arch/arm/plat-omap/include/plat/tc.h +3 -1
index d2fcd78..83b850f 100644
@@ -89,7 +89,8 @@
  * from NOR flash (using external chipselect 3) rather than mask ROM,
  * which uses BM to interchange the physical CS0 and CS3 addresses.
  */
-static inline u32 omap_cs0_phys(void)
+#ifdef CONFIG_ARCH_OMAP1
+static inline u32 omap_cs0m_phys(void)
 {
 	return (omap_readl(EMIFS_CONFIG) & OMAP_EMIFS_CONFIG_BM)
 			?  OMAP_CS3_PHYS : 0;
@@ -100,6 +101,7 @@ static inline u32 omap_cs3_phys(void)
 	return (omap_readl(EMIFS_CONFIG) & OMAP_EMIFS_CONFIG_BM)
 			? 0 : OMAP_CS3_PHYS;
 }
+#endif
 
 #endif	/* __ASSEMBLER__ */
 
arch/arm/plat-omap/sram.c +4 -5
index 4243bdc..3022fc2 100644
@@ -31,11 +31,10 @@
 
 #include "sram.h"
 
-/* XXX These "sideways" includes are a sign that something is wrong */
-#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
-# include "../mach-omap2/prm2xxx_3xxx.h"
-# include "../mach-omap2/sdrc.h"
-#endif
+/* XXX These "sideways" includes will disappear when sram.c becomes a driver */
+#include "../mach-omap2/iomap.h"
+#include "../mach-omap2/prm2xxx_3xxx.h"
+#include "../mach-omap2/sdrc.h"
 
 #define OMAP1_SRAM_PA		0x20000000
 #define OMAP2_SRAM_PUB_PA	(OMAP2_SRAM_PA + 0xf800)
author maintainer
#14 lore raw

PATCH 6/8 ARM: OMAP2+: Move most of plat/io.h into local iomap.h

Quoted 7 lines · Tony Lindgren

There's no need to have these defines in plat/io.h.

Note that we now need to ifdef omap_read/write calls as they will be available for omap1 only.

While at it, clean up the includes to group them like they typically are grouped.

This one updated with the license too for iomap.h and added include iomap.h for emu.c that may cause errors with some .config files otherwise.

Regards,

Tony

From: Tony Lindgren <[email protected]>
Date: Wed, 22 Feb 2012 14:52:40 -0800
Subject: [PATCH] ARM: OMAP2+: Move most of plat/io.h into local iomap.h

There's no need to have these defines in plat/io.h.

Note that we now need to ifdef omap_read/write calls as they will be available for omap1 only.

While at it, clean up the includes to group them like they typically are grouped.

arch/arm/mach-omap2/clock2420_data.c +1 -0
index 61ad385..b1f3e7c 100644
@@ -19,6 +19,7 @@
 
 #include <plat/clkdev_omap.h>
 
+#include "iomap.h"
 #include "clock.h"
 #include "clock2xxx.h"
 #include "opp2xxx.h"
arch/arm/mach-omap2/clock2430.c +1 -0
index d87bc9c..0caf792 100644
@@ -23,6 +23,7 @@
 
 #include <plat/clock.h>
 
+#include "iomap.h"
 #include "clock.h"
 #include "clock2xxx.h"
 #include "cm2xxx_3xxx.h"
arch/arm/mach-omap2/clock2430_data.c +1 -0
index 0cc1287..9a061ff 100644
@@ -19,6 +19,7 @@
 
 #include <plat/clkdev_omap.h>
 
+#include "iomap.h"
 #include "clock.h"
 #include "clock2xxx.h"
 #include "opp2xxx.h"
arch/arm/mach-omap2/clock3xxx_data.c +2 -1
index d75e5f6..981b9f9 100644
@@ -20,14 +20,15 @@
 #include <linux/clk.h>
 #include <linux/list.h>
 
+#include <plat/hardware.h>
 #include <plat/clkdev_omap.h>
 
+#include "iomap.h"
 #include "clock.h"
 #include "clock3xxx.h"
 #include "clock34xx.h"
 #include "clock36xx.h"
 #include "clock3517.h"
-
 #include "cm2xxx_3xxx.h"
 #include "cm-regbits-34xx.h"
 #include "prm2xxx_3xxx.h"
arch/arm/mach-omap2/clock44xx_data.c +3 -0
index 08e86d7..79b98f2 100644
@@ -26,8 +26,11 @@
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/clk.h>
+
+#include <plat/hardware.h>
 #include <plat/clkdev_omap.h>
 
+#include "iomap.h"
 #include "clock.h"
 #include "clock44xx.h"
 #include "cm1_44xx.h"
arch/arm/mach-omap2/cm2xxx_3xxx.c +1 -1
index 04d39cd..c79ed63 100644
@@ -18,8 +18,8 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
+#include "iomap.h"
 #include "common.h"
-
 #include "cm.h"
 #include "cm2xxx_3xxx.h"
 #include "cm-regbits-24xx.h"
arch/arm/mach-omap2/cm44xx.c +1 -1
index 6a83630..535d66e 100644
@@ -18,8 +18,8 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
+#include "iomap.h"
 #include "common.h"
-
 #include "cm.h"
 #include "cm1_44xx.h"
 #include "cm2_44xx.h"
arch/arm/mach-omap2/cminst44xx.c +1 -1
index 6204dea..bd8810c 100644
@@ -20,8 +20,8 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
+#include "iomap.h"
 #include "common.h"
-
 #include "cm.h"
 #include "cm1_44xx.h"
 #include "cm2_44xx.h"
arch/arm/mach-omap2/common.c +2 -2
index aaf4211..93419de 100644
@@ -17,12 +17,12 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
-#include "common.h"
 #include <plat/board.h>
 #include <plat/mux.h>
-
 #include <plat/clock.h>
 
+#include "iomap.h"
+#include "common.h"
 #include "sdrc.h"
 #include "control.h"
 
arch/arm/mach-omap2/control.c +2 -1
index 114c037..2fd5fd1 100644
@@ -15,9 +15,10 @@
 #include <linux/kernel.h>
 #include <linux/io.h>
 
-#include "common.h"
 #include <plat/sdrc.h>
 
+#include "iomap.h"
+#include "common.h"
 #include "cm-regbits-34xx.h"
 #include "prm-regbits-34xx.h"
 #include "prm2xxx_3xxx.h"
arch/arm/mach-omap2/control.h +0 -1
index 0ba68d3..03149de 100644
@@ -16,7 +16,6 @@
 #ifndef __ARCH_ARM_MACH_OMAP2_CONTROL_H
 #define __ARCH_ARM_MACH_OMAP2_CONTROL_H
 
-#include <mach/io.h>
 #include <mach/ctrl_module_core_44xx.h>
 #include <mach/ctrl_module_wkup_44xx.h>
 #include <mach/ctrl_module_pad_core_44xx.h>
arch/arm/mach-omap2/devices.c +1 -1
index 0b510ad..807699b 100644
@@ -24,7 +24,7 @@
 #include <asm/mach/map.h>
 #include <asm/pmu.h>
 
-#include <plat/tc.h>
+#include "iomap.h"
 #include <plat/board.h>
 #include <plat/mcbsp.h>
 #include <plat/mmc.h>
arch/arm/mach-omap2/display.c +1 -0
index 3c446d1..f36444b 100644
@@ -30,6 +30,7 @@
 #include <plat/omap-pm.h>
 #include "common.h"
 
+#include "iomap.h"
 #include "mux.h"
 #include "control.h"
 #include "display.h"
arch/arm/mach-omap2/emu.c +2 -0
index 9c442e2..28d639f 100644
@@ -21,6 +21,8 @@
 #include <linux/clk.h>
 #include <linux/err.h>
 
+#include "iomap.h"
+
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Alexander Shishkin");
 
arch/arm/mach-omap2/io.c +7 -10
index 3f174d5..a548257 100644
@@ -24,26 +24,23 @@
 #include <linux/omapfb.h>
 
 #include <asm/tlb.h>
-
 #include <asm/mach/map.h>
 
 #include <plat/sram.h>
 #include <plat/sdrc.h>
 #include <plat/serial.h>
-
-#include "clock2xxx.h"
-#include "clock3xxx.h"
-#include "clock44xx.h"
-
-#include "common.h"
 #include <plat/omap-pm.h>
+#include <plat/omap_hwmod.h>
+#include <plat/multi.h>
+
+#include "iomap.h"
 #include "voltage.h"
 #include "powerdomain.h"
-
 #include "clockdomain.h"
-#include <plat/omap_hwmod.h>
-#include <plat/multi.h>
 #include "common.h"
+#include "clock2xxx.h"
+#include "clock3xxx.h"
+#include "clock44xx.h"
 
 /*
  * The machine specific code may provide the extra mapping besides the
arch/arm/mach-omap2/iomap.h new file +203 -0

203 lines not on this page · raw message

arch/arm/mach-omap2/irq.c +4 -1
index 1fef061..6da2d0e 100644
@@ -14,10 +14,13 @@
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/io.h>
-#include <mach/hardware.h>
+
 #include <asm/exception.h>
 #include <asm/mach/irq.h>
 
+#include <mach/hardware.h>
+
+#include "iomap.h"
 
 /* selected INTC register offsets */
 
arch/arm/mach-omap2/omap-smp.c +2 -1
index c1bf3ef..deffbf1 100644
@@ -23,11 +23,12 @@
 #include <asm/cacheflush.h>
 #include <asm/hardware/gic.h>
 #include <asm/smp_scu.h>
+
 #include <mach/hardware.h>
 #include <mach/omap-secure.h>
 
+#include "iomap.h"
 #include "common.h"
-
 #include "clockdomain.h"
 
 /* SCU base address */
arch/arm/mach-omap2/pm24xx.c +3 -2
index 6d63973..423a9a9 100644
@@ -35,12 +35,14 @@
 #include <asm/mach/irq.h>
 #include <asm/mach-types.h>
 
-#include <mach/irqs.h>
 #include <plat/clock.h>
 #include <plat/sram.h>
 #include <plat/dma.h>
 #include <plat/board.h>
 
+#include <mach/irqs.h>
+
+#include "iomap.h"
 #include "common.h"
 #include "prm2xxx_3xxx.h"
 #include "prm-regbits-24xx.h"
@@ -49,7 +51,6 @@
 #include "sdrc.h"
 #include "pm.h"
 #include "control.h"
-
 #include "powerdomain.h"
 #include "clockdomain.h"
 
arch/arm/mach-omap2/prcm_mpu44xx.c +1 -1
index ca669b5..928dbd4 100644
@@ -15,8 +15,8 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
+#include "iomap.h"
 #include "common.h"
-
 #include "prcm_mpu44xx.h"
 #include "cm-regbits-44xx.h"
 
arch/arm/mach-omap2/prm44xx.c +2 -1
index 33dd655..f4c1519 100644
@@ -17,10 +17,11 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
-#include "common.h"
 #include <plat/cpu.h>
 #include <plat/prcm.h>
 
+#include "iomap.h"
+#include "common.h"
 #include "vp.h"
 #include "prm44xx.h"
 #include "prm-regbits-44xx.h"
arch/arm/mach-omap2/prminst44xx.c +1 -1
index f6de5bc..9b3898a 100644
@@ -16,8 +16,8 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
+#include "iomap.h"
 #include "common.h"
-
 #include "prm44xx.h"
 #include "prminst44xx.h"
 #include "prm-regbits-44xx.h"
arch/arm/mach-omap2/sdram-nokia.c +0 -1
index 7479d7e..845c4fd 100644
@@ -17,7 +17,6 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
-#include <plat/io.h>
 #include "common.h"
 #include <plat/clock.h>
 #include <plat/sdrc.h>
arch/arm/mach-omap2/sdrc2xxx.c +3 -2
index 791a63c..2c329a6 100644
@@ -24,13 +24,14 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
-#include "common.h"
 #include <plat/clock.h>
 #include <plat/sram.h>
+#include <plat/sdrc.h>
 
+#include "iomap.h"
+#include "common.h"
 #include "prm2xxx_3xxx.h"
 #include "clock.h"
-#include <plat/sdrc.h>
 #include "sdrc.h"
 
 /* Memory timing, DLL mode flags */
arch/arm/mach-omap2/sleep24xx.S +0 -1
index b5071a4..d4bf904 100644
@@ -27,7 +27,6 @@
 
 #include <linux/linkage.h>
 #include <asm/assembler.h>
-#include <mach/io.h>
 
 #include <plat/omap24xx.h>
 
arch/arm/mach-omap2/sleep34xx.S +3 -1
index f2ea1bd..b760fec 100644
@@ -23,10 +23,12 @@
  * MA 02111-1307 USA
  */
 #include <linux/linkage.h>
+
 #include <asm/assembler.h>
+
 #include <plat/sram.h>
-#include <mach/io.h>
 
+#include "iomap.h"
 #include "cm2xxx_3xxx.h"
 #include "prm2xxx_3xxx.h"
 #include "sdrc.h"
arch/arm/mach-omap2/sram242x.S +3 -1
index ff9b9db..ee0bfcc 100644
@@ -29,10 +29,12 @@
  * These crashes may be intermittent.
  */
 #include <linux/linkage.h>
+
 #include <asm/assembler.h>
-#include <mach/io.h>
+
 #include <mach/hardware.h>
 
+#include "iomap.h"
 #include "prm2xxx_3xxx.h"
 #include "cm2xxx_3xxx.h"
 #include "sdrc.h"
arch/arm/mach-omap2/sram243x.S +3 -1
index 7673020..d4d39ef 100644
@@ -29,10 +29,12 @@
  * These crashes may be intermittent.
  */
 #include <linux/linkage.h>
+
 #include <asm/assembler.h>
-#include <mach/io.h>
+
 #include <mach/hardware.h>
 
+#include "iomap.h"
 #include "prm2xxx_3xxx.h"
 #include "cm2xxx_3xxx.h"
 #include "sdrc.h"
arch/arm/mach-omap2/sram34xx.S +3 -2
index 6f5849a..df5a213 100644
@@ -26,11 +26,12 @@
  * MA 02111-1307 USA
  */
 #include <linux/linkage.h>
+
 #include <asm/assembler.h>
-#include <mach/hardware.h>
 
-#include <mach/io.h>
+#include <mach/hardware.h>
 
+#include "iomap.h"
 #include "sdrc.h"
 #include "cm2xxx_3xxx.h"
 
arch/arm/plat-omap/include/plat/io.h +0 -174

180 lines not on this page · raw message

arch/arm/plat-omap/include/plat/tc.h +3 -1
index d2fcd78..83b850f 100644
@@ -89,7 +89,8 @@
  * from NOR flash (using external chipselect 3) rather than mask ROM,
  * which uses BM to interchange the physical CS0 and CS3 addresses.
  */
-static inline u32 omap_cs0_phys(void)
+#ifdef CONFIG_ARCH_OMAP1
+static inline u32 omap_cs0m_phys(void)
 {
 	return (omap_readl(EMIFS_CONFIG) & OMAP_EMIFS_CONFIG_BM)
 			?  OMAP_CS3_PHYS : 0;
@@ -100,6 +101,7 @@ static inline u32 omap_cs3_phys(void)
 	return (omap_readl(EMIFS_CONFIG) & OMAP_EMIFS_CONFIG_BM)
 			? 0 : OMAP_CS3_PHYS;
 }
+#endif
 
 #endif	/* __ASSEMBLER__ */
 
arch/arm/plat-omap/sram.c +4 -5
index 4243bdc..3022fc2 100644
@@ -31,11 +31,10 @@
 
 #include "sram.h"
 
-/* XXX These "sideways" includes are a sign that something is wrong */
-#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
-# include "../mach-omap2/prm2xxx_3xxx.h"
-# include "../mach-omap2/sdrc.h"
-#endif
+/* XXX These "sideways" includes will disappear when sram.c becomes a driver */
+#include "../mach-omap2/iomap.h"
+#include "../mach-omap2/prm2xxx_3xxx.h"
+#include "../mach-omap2/sdrc.h"
 
 #define OMAP1_SRAM_PA		0x20000000
 #define OMAP2_SRAM_PUB_PA	(OMAP2_SRAM_PA + 0xf800)
author maintainer
#15 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

In reply to Tony Lindgren

This is needed so we can eventually remove mach/io.h for omap2+.

---
 arch/arm/mach-omap1/include/mach/io.h |   78 ++++++++++++++++++++++++++++++-
 arch/arm/mach-omap2/common.h          |   10 ++++
 arch/arm/mach-omap2/include/mach/io.h |   60 +++++++++++++++++++++++-
 arch/arm/mach-omap2/pm24xx.c          |    2 -
 arch/arm/plat-omap/dma.c              |    2 +
 arch/arm/plat-omap/include/plat/io.h  |   84 ---------------------------------
 arch/arm/plat-omap/usb.c              |    2 +
 7 files changed, 150 insertions(+), 88 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/plat/io.h
arch/arm/mach-omap1/include/mach/io.h +77 -1
index 57bdf74..07ffba8 100644
@@ -1,5 +1,81 @@
 /*
  * arch/arm/mach-omap1/include/mach/io.h
+ *
+ * IO definitions for TI OMAP processors and boards
+ *
+ * Copied from arch/arm/mach-sa1100/include/mach/io.h
+ * Copyright (C) 1997-1999 Russell King
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Modifications:
+ *  06-12-1997	RMK	Created.
+ *  07-04-1999	RMK	Major cleanup
  */
 
-#include <plat/io.h>
+#ifndef __ASM_ARM_ARCH_IO_H
+#define __ASM_ARM_ARCH_IO_H
+
+#include <mach/hardware.h>
+
+#define IO_SPACE_LIMIT 0xffffffff
+
+/*
+ * We don't actually have real ISA nor PCI buses, but there is so many
+ * drivers out there that might just work if we fake them...
+ */
+#define __io(a)		__typesafe_io(a)
+#define __mem_pci(a)	(a)
+
+/*
+ * ----------------------------------------------------------------------------
+ * I/O mapping
+ * ----------------------------------------------------------------------------
+ */
+
+#ifdef __ASSEMBLER__
+#define IOMEM(x)		(x)
+#else
+#define IOMEM(x)		((void __force __iomem *)(x))
+#endif
+
+/*
+ * ----------------------------------------------------------------------------
+ * Omap specific register access
+ * ----------------------------------------------------------------------------
+ */
+
+#ifndef __ASSEMBLER__
+
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);
+
+#endif
+
+#endif
arch/arm/mach-omap2/common.h +10 -0
index f78ec4e..09ca9e9 100644
@@ -242,5 +242,15 @@ struct omap_sdrc_params;
 extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
 				      struct omap_sdrc_params *sdrc_cs1);
 
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);
+
 #endif /* __ASSEMBLER__ */
 #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
arch/arm/mach-omap2/include/mach/io.h +59 -1

64 lines not on this page · raw message

arch/arm/mach-omap2/pm24xx.c +0 -2
index ac0d629..894ed2d 100644
@@ -26,7 +26,6 @@
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/clk.h>
-#include <linux/io.h>
 #include <linux/irq.h>
 #include <linux/time.h>
 #include <linux/gpio.h>
@@ -42,7 +41,6 @@
 
 #include <mach/irqs.h>
 
-#include "iomap.h"
 #include "common.h"
 #include "prm2xxx_3xxx.h"
 #include "prm-regbits-24xx.h"
arch/arm/plat-omap/dma.c +2 -0
index 002fb4d..95c3ed6 100644
@@ -164,6 +164,8 @@ static inline void set_gdma_dev(int req, int dev)
 }
 #else
 #define set_gdma_dev(req, dev)	do {} while (0)
+#define omap_readl(reg)		0
+#define omap_writel(val, reg)	do {} while (0)
 #endif
 
 void omap_set_dma_priority(int lch, int dst_port, int priority)
arch/arm/plat-omap/include/plat/io.h deleted +0 -84

84 lines not on this page · raw message

arch/arm/plat-omap/usb.c +2 -0
index f357088..55a5cd1 100644
@@ -29,6 +29,8 @@
 #include <plat/usb.h>
 #include <plat/board.h>
 
+#include "../mach-omap2/common.h"
+
 #ifdef	CONFIG_ARCH_OMAP_OTG
 
 void __init
#16 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 48 lines · Tony Lindgren

This is needed so we can eventually remove mach/io.h for omap2+.

---
 arch/arm/mach-omap1/include/mach/io.h |   78 ++++++++++++++++++++++++++++++-
 arch/arm/mach-omap2/common.h          |   10 ++++
 arch/arm/mach-omap2/include/mach/io.h |   60 +++++++++++++++++++++++-
 arch/arm/mach-omap2/pm24xx.c          |    2 -
 arch/arm/plat-omap/dma.c              |    2 +
 arch/arm/plat-omap/include/plat/io.h  |   84 ---------------------------------
 arch/arm/plat-omap/usb.c              |    2 +
 7 files changed, 150 insertions(+), 88 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/plat/io.h
arch/arm/mach-omap1/include/mach/io.h +26 -0
index 57bdf74..07ffba8 100644
@@ -1,5 +1,81 @@
 /*
  * arch/arm/mach-omap1/include/mach/io.h
+ *
+ * IO definitions for TI OMAP processors and boards
+ *
+ * Copied from arch/arm/mach-sa1100/include/mach/io.h
+ * Copyright (C) 1997-1999 Russell King
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 675 Mass Ave, Cambridge, MA 02139, USA.
+ *

arch/arm/mach-omap1/include/mach/io.h line 37

Quoted 10 lines
arch/arm/mach-omap1/include/mach/io.h +7 -1
+ * Modifications:
+ *  06-12-1997	RMK	Created.
+ *  07-04-1999	RMK	Major cleanup
  */
 
-#include <plat/io.h>
+#ifndef __ASM_ARM_ARCH_IO_H
+#define __ASM_ARM_ARCH_IO_H
+
+#include <mach/hardware.h>

This shouldn't be needed.

Quoted 12 lines
arch/arm/mach-omap1/include/mach/io.h +12 -0
+
+#define IO_SPACE_LIMIT 0xffffffff
+
+/*
+ * We don't actually have real ISA nor PCI buses, but there is so many
+ * drivers out there that might just work if we fake them...
+ */
+#define __io(a)		__typesafe_io(a)
+#define __mem_pci(a)	(a)
+
+/*
+ * ----------------------------------------------------------------------------

arch/arm/mach-omap1/include/mach/io.h line 59

Quoted 10 lines
arch/arm/mach-omap1/include/mach/io.h +10 -0
+ * I/O mapping
+ * ----------------------------------------------------------------------------
+ */
+
+#ifdef __ASSEMBLER__
+#define IOMEM(x)		(x)
+#else
+#define IOMEM(x)		((void __force __iomem *)(x))
+#endif
+

This can't be moved to iomap.h? I did that for other platforms.

Quoted 8 lines
arch/arm/mach-omap1/include/mach/io.h +8 -0
+/*
+ * ----------------------------------------------------------------------------
+ * Omap specific register access
+ * ----------------------------------------------------------------------------
+ */
+
+#ifndef __ASSEMBLER__
+

arch/arm/mach-omap1/include/mach/io.h line 77

Quoted 10 lines
arch/arm/mach-omap1/include/mach/io.h +10 -0
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);

These can't be moved to common.h like omap2?

Same comments on omap2 io.h.

Rob

Quoted 235 lines
arch/arm/mach-omap1/include/mach/io.h +4 -0
+
+#endif
+
+#endif
arch/arm/mach-omap2/common.h +10 -0
index f78ec4e..09ca9e9 100644
@@ -242,5 +242,15 @@ struct omap_sdrc_params;
 extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
 				      struct omap_sdrc_params *sdrc_cs1);
 
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);
+
 #endif /* __ASSEMBLER__ */
 #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
arch/arm/mach-omap2/include/mach/io.h +59 -1
index fd78f31..7306404 100644
@@ -1,5 +1,63 @@
 /*
  * arch/arm/mach-omap2/include/mach/io.h
+ *
+ * IO definitions for TI OMAP processors and boards
+ *
+ * Copied from arch/arm/mach-sa1100/include/mach/io.h
+ * Copyright (C) 1997-1999 Russell King
+ *
+ * Copyright (C) 2009 Texas Instruments
+ * Added OMAP4 support - Santosh Shilimkar <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Modifications:
+ *  06-12-1997	RMK	Created.
+ *  07-04-1999	RMK	Major cleanup
  */
 
-#include <plat/io.h>
+#ifndef __ASM_ARM_ARCH_IO_H
+#define __ASM_ARM_ARCH_IO_H
+
+#include <mach/hardware.h>
+
+#define IO_SPACE_LIMIT 0xffffffff
+
+/*
+ * We don't actually have real ISA nor PCI buses, but there is so many
+ * drivers out there that might just work if we fake them...
+ */
+#define __io(a)		__typesafe_io(a)
+#define __mem_pci(a)	(a)
+
+/*
+ * ----------------------------------------------------------------------------
+ * I/O mapping
+ * ----------------------------------------------------------------------------
+ */
+
+#ifdef __ASSEMBLER__
+#define IOMEM(x)		(x)
+#else
+#define IOMEM(x)		((void __force __iomem *)(x))
+#endif
+
+#endif
arch/arm/mach-omap2/pm24xx.c +0 -2
index ac0d629..894ed2d 100644
@@ -26,7 +26,6 @@
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/clk.h>
-#include <linux/io.h>
 #include <linux/irq.h>
 #include <linux/time.h>
 #include <linux/gpio.h>
@@ -42,7 +41,6 @@
 
 #include <mach/irqs.h>
 
-#include "iomap.h"
 #include "common.h"
 #include "prm2xxx_3xxx.h"
 #include "prm-regbits-24xx.h"
arch/arm/plat-omap/dma.c +2 -0
index 002fb4d..95c3ed6 100644
@@ -164,6 +164,8 @@ static inline void set_gdma_dev(int req, int dev)
 }
 #else
 #define set_gdma_dev(req, dev)	do {} while (0)
+#define omap_readl(reg)		0
+#define omap_writel(val, reg)	do {} while (0)
 #endif
 
 void omap_set_dma_priority(int lch, int dst_port, int priority)
arch/arm/plat-omap/include/plat/io.h deleted +0 -84
deleted file mode 100644
index 93261d9..0000000
@@ -1,84 +0,0 @@
-/*
- * arch/arm/plat-omap/include/mach/io.h
- *
- * IO definitions for TI OMAP processors and boards
- *
- * Copied from arch/arm/mach-sa1100/include/mach/io.h
- * Copyright (C) 1997-1999 Russell King
- *
- * Copyright (C) 2009 Texas Instruments
- * Added OMAP4 support - Santosh Shilimkar <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * Modifications:
- *  06-12-1997	RMK	Created.
- *  07-04-1999	RMK	Major cleanup
- */
-
-#ifndef __ASM_ARM_ARCH_IO_H
-#define __ASM_ARM_ARCH_IO_H
-
-#include <mach/hardware.h>
-
-#define IO_SPACE_LIMIT 0xffffffff
-
-/*
- * We don't actually have real ISA nor PCI buses, but there is so many
- * drivers out there that might just work if we fake them...
- */
-#define __io(a)		__typesafe_io(a)
-#define __mem_pci(a)	(a)
-
-/*
- * ----------------------------------------------------------------------------
- * I/O mapping
- * ----------------------------------------------------------------------------
- */
-
-#ifdef __ASSEMBLER__
-#define IOMEM(x)		(x)
-#else
-#define IOMEM(x)		((void __force __iomem *)(x))
-#endif
-
-/*
- * ----------------------------------------------------------------------------
- * Omap specific register access
- * ----------------------------------------------------------------------------
- */
-
-#ifndef __ASSEMBLER__
-
-/*
- * NOTE: Please use ioremap + __raw_read/write where possible instead of these
- */
-
-extern u8 omap_readb(u32 pa);
-extern u16 omap_readw(u32 pa);
-extern u32 omap_readl(u32 pa);
-extern void omap_writeb(u8 v, u32 pa);
-extern void omap_writew(u16 v, u32 pa);
-extern void omap_writel(u32 v, u32 pa);
-
-#endif
-
-#endif
arch/arm/plat-omap/usb.c +2 -0
index f357088..55a5cd1 100644
@@ -29,6 +29,8 @@
 #include <plat/usb.h>
 #include <plat/board.h>
 
+#include "../mach-omap2/common.h"
+
 #ifdef	CONFIG_ARCH_OMAP_OTG
 
 void __init

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

author maintainer
#17 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 3 lines · Rob Herring
Quoted 2 lines · Tony Lindgren

This is needed so we can eventually remove mach/io.h for omap2+.

...

Quoted 7 lines

arch/arm/mach-omap1/include/mach/io.h line 37

Quoted 5 lines
arch/arm/mach-omap1/include/mach/io.h +4 -1
-#include <plat/io.h>
+#ifndef __ASM_ARM_ARCH_IO_H
+#define __ASM_ARM_ARCH_IO_H
+
+#include <mach/hardware.h>

This shouldn't be needed.

Good catch, will update things for that.

Quoted 16 lines
Quoted 16 lines
arch/arm/mach-omap1/include/mach/io.h +16 -0
+
+#define IO_SPACE_LIMIT 0xffffffff
+
+/*
+ * We don't actually have real ISA nor PCI buses, but there is so many
+ * drivers out there that might just work if we fake them...
+ */
+#define __io(a)		__typesafe_io(a)
+#define __mem_pci(a)	(a)
+
+/*
+ * ----------------------------------------------------------------------------
+ * I/O mapping
+ * ----------------------------------------------------------------------------
+ */
+
Quoted 8 lines

arch/arm/mach-omap1/include/mach/io.h line 59

Quoted 6 lines
arch/arm/mach-omap1/include/mach/io.h +6 -0
+#ifdef __ASSEMBLER__
+#define IOMEM(x)		(x)
+#else
+#define IOMEM(x)		((void __force __iomem *)(x))
+#endif
+

This can't be moved to iomap.h? I did that for other platforms.

Well I was thinking we should define these somewhere for everybody, so I was trying to avoid adding yet another copy.. But I can move it and then we can clean it up later to avoid more dependencies here.

Quoted 12 lines
Quoted 12 lines
arch/arm/mach-omap1/include/mach/io.h +12 -0
+/*
+ * ----------------------------------------------------------------------------
+ * Omap specific register access
+ * ----------------------------------------------------------------------------
+ */
+
+#ifndef __ASSEMBLER__
+
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+
Quoted 8 lines

arch/arm/mach-omap1/include/mach/io.h line 77

Quoted 6 lines
arch/arm/mach-omap1/include/mach/io.h +6 -0
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);

These can't be moved to common.h like omap2?

Not for omap1 currently because a bunch of legacy drivers are using them :(

Anyways, that should be OK for now as omap1 requires v5 flags and it currently does not make sense to try to compile into a common zImage. At least the USB driver already needs to be cleaned up for that, so eventually omap1 io.h can disappear too.

Quoted 1 line

Same comments on omap2 io.h.

Thanks, will post an updated patch.

Regards,

Tony

author maintainer
#18 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 16 lines · Tony Lindgren
Quoted 14 lines · Rob Herring

Review

Quoted 11 lines · Tony Lindgren
(quoted diff) +11 -0
+
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);

These can't be moved to common.h like omap2?

Quoted 2 lines

Not for omap1 currently because a bunch of legacy drivers are using them :(

Looks like we can have them in mach-omap1/include/mach/hardware.h.

Eventually the SoC specific hardware.h files could be renamed to just something like omap1.h, omap2plus.h and so. And then they could be included in the common hardware.h.

Updated patch below, now io.h for both omap1 and omap2+ are minimized, and turns out only minimal driver changes were needed.

Regards,

Tony

From: Tony Lindgren <[email protected]>
Date: Fri, 24 Feb 2012 09:05:43 -0800
Subject: [PATCH] ARM: OMAP: Remove plat/io.h by splitting it into mach/io.h and mach/hardware.h

This is needed to minimize io.h so the SoC specific io.h for ARMs can removed.

Note that minimal driver changes for DSS and RNG are needed to include cpu.h for SoC detection macros.

Cc Tomi Valkeinen <[email protected]>
Cc Matt Mackall <[email protected]>
Cc Herbert Xu <[email protected]>
arch/arm/mach-omap1/clock.c +3 -0
index 0e8c176..67382dd 100644
@@ -15,6 +15,7 @@
 #include <linux/list.h>
 #include <linux/errno.h>
 #include <linux/err.h>
+#include <linux/io.h>
 #include <linux/clk.h>
 #include <linux/clkdev.h>
 
@@ -26,6 +27,8 @@
 #include <plat/sram.h>
 #include <plat/clkdev_omap.h>
 
+#include <mach/hardware.h>
+
 #include "iomap.h"
 #include "clock.h"
 #include "opp.h"
arch/arm/mach-omap1/clock_data.c +3 -0
index 10b7451..c6ce93f 100644
@@ -15,6 +15,7 @@
  */
 
 #include <linux/kernel.h>
+#include <linux/io.h>
 #include <linux/clk.h>
 #include <linux/cpufreq.h>
 #include <linux/delay.h>
@@ -27,6 +28,8 @@
 #include <plat/sram.h>	/* for omap_sram_reprogram_clock() */
 #include <plat/usb.h>   /* for OTG_BASE */
 
+#include <mach/hardware.h>
+
 #include "iomap.h"
 #include "clock.h"
 
arch/arm/mach-omap1/flash.c +2 -0
index 98d29a0..f9bf78d 100644
@@ -13,6 +13,8 @@
 #include <plat/tc.h>
 #include <plat/flash.h>
 
+#include <mach/hardware.h>
+
 void omap1_set_vpp(struct platform_device *pdev, int enable)
 {
 	static int count;
arch/arm/mach-omap1/id.c +2 -0
index 7483db2..f24c1e2 100644
@@ -18,6 +18,8 @@
 
 #include <plat/cpu.h>
 
+#include <mach/hardware.h>
+
 #define OMAP_DIE_ID_0		0xfffe1800
 #define OMAP_DIE_ID_1		0xfffe1804
 #define OMAP_PRODUCTION_ID_0	0xfffe2000
arch/arm/mach-omap1/include/mach/hardware.h +36 -0
index a3f6287..01e35fa 100644
@@ -2,4 +2,40 @@
  * arch/arm/mach-omap1/include/mach/hardware.h
  */
 
+#ifndef __MACH_HARDWARE_H
+#define __MACH_HARDWARE_H
+
+#ifndef __ASSEMBLER__
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);
+
+#include <plat/tc.h>
+
+/* Almost all documentation for chip and board memory maps assumes
+ * BM is clear.  Most devel boards have a switch to control booting
+ * from NOR flash (using external chipselect 3) rather than mask ROM,
+ * which uses BM to interchange the physical CS0 and CS3 addresses.
+ */
+static inline u32 omap_cs0m_phys(void)
+{
+	return (omap_readl(EMIFS_CONFIG) & OMAP_EMIFS_CONFIG_BM)
+			?  OMAP_CS3_PHYS : 0;
+}
+
+static inline u32 omap_cs3_phys(void)
+{
+	return (omap_readl(EMIFS_CONFIG) & OMAP_EMIFS_CONFIG_BM)
+			? 0 : OMAP_CS3_PHYS;
+}
+
+#endif
+#endif
+
 #include <plat/hardware.h>
arch/arm/mach-omap1/include/mach/io.h +42 -1

47 lines not on this page · raw message

arch/arm/mach-omap1/include/mach/memory.h +2 -1
index c633764..901082d 100644
@@ -18,7 +18,8 @@
  * Note that the is_lbus_device() test is not very efficient on 1510
  * because of the strncmp().
  */
-#ifdef CONFIG_ARCH_OMAP15XX
+#if defined(CONFIG_ARCH_OMAP15XX) && !defined(__ASSEMBLER__)
+#include <plat/cpu.h>
 
 /*
  * OMAP-1510 Local Bus address offset
arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c +1 -0
index 39f9d5a..7072e0d 100644
@@ -33,6 +33,7 @@
 #include <linux/cpufreq.h>
 #include <linux/slab.h>
 
+#include <plat/cpu.h>
 #include <plat/clock.h>
 #include <plat/sram.h>
 #include <plat/sdrc.h>
arch/arm/mach-omap2/clkt_dpll.c +1 -0
index e069a9b..cd7fd0f 100644
@@ -22,6 +22,7 @@
 #include <asm/div64.h>
 
 #include <plat/clock.h>
+#include <plat/cpu.h>
 
 #include "clock.h"
 #include "cm-regbits-24xx.h"
arch/arm/mach-omap2/clock2420_data.c +2 -0
index b1f3e7c..bace930 100644
@@ -14,9 +14,11 @@
  */
 
 #include <linux/kernel.h>
+#include <linux/io.h>
 #include <linux/clk.h>
 #include <linux/list.h>
 
+#include <plat/hardware.h>
 #include <plat/clkdev_omap.h>
 
 #include "iomap.h"
arch/arm/mach-omap2/clock2430.c +1 -0
index 0caf792..dfda9a3 100644
@@ -21,6 +21,7 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
+#include <plat/hardware.h>
 #include <plat/clock.h>
 
 #include "iomap.h"
arch/arm/mach-omap2/clock2430_data.c +1 -0
index 9a061ff..3b4d09a 100644
@@ -17,6 +17,7 @@
 #include <linux/clk.h>
 #include <linux/list.h>
 
+#include <plat/hardware.h>
 #include <plat/clkdev_omap.h>
 
 #include "iomap.h"
arch/arm/mach-omap2/clock2xxx.c +1 -0
index 80bb0f0..1250009 100644
@@ -22,6 +22,7 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
+#include <plat/cpu.h>
 #include <plat/clock.h>
 
 #include "clock.h"
arch/arm/mach-omap2/clock3xxx.c +1 -0
index 952c3e0..794d827 100644
@@ -21,6 +21,7 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
+#include <plat/hardware.h>
 #include <plat/clock.h>
 
 #include "clock.h"
arch/arm/mach-omap2/common.h +10 -0
index f78ec4e..09ca9e9 100644
@@ -242,5 +242,15 @@ struct omap_sdrc_params;
 extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
 				      struct omap_sdrc_params *sdrc_cs1);
 
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);
+
 #endif /* __ASSEMBLER__ */
 #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
arch/arm/mach-omap2/gpmc-nand.c +1 -0
index 8ad210b..386dec8 100644
@@ -16,6 +16,7 @@
 
 #include <asm/mach/flash.h>
 
+#include <plat/cpu.h>
 #include <plat/nand.h>
 #include <plat/board.h>
 #include <plat/gpmc.h>
arch/arm/mach-omap2/gpmc-onenand.c +1 -0
index 5cdce10..385b3e0 100644
@@ -18,6 +18,7 @@
 
 #include <asm/mach/flash.h>
 
+#include <plat/cpu.h>
 #include <plat/onenand.h>
 #include <plat/board.h>
 #include <plat/gpmc.h>
arch/arm/mach-omap2/include/mach/io.h +45 -1

50 lines not on this page · raw message

arch/arm/mach-omap2/opp2420_data.c +2 -0
index e6dda69..5037e76 100644
@@ -28,6 +28,8 @@
  *     http://repository.maemo.org/pool/diablo/free/k/kernel-source-diablo/
  */
 
+#include <plat/hardware.h>
+
 #include "opp2xxx.h"
 #include "sdrc.h"
 #include "clock.h"
arch/arm/mach-omap2/opp2430_data.c +2 -0
index 1b9596a..750805c 100644
@@ -26,6 +26,8 @@
  * This is technically part of the OMAP2xxx clock code.
  */
 
+#include <plat/hardware.h>
+
 #include "opp2xxx.h"
 #include "sdrc.h"
 #include "clock.h"
arch/arm/mach-omap2/pm24xx.c +0 -2
index ac0d629..894ed2d 100644
@@ -26,7 +26,6 @@
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/clk.h>
-#include <linux/io.h>
 #include <linux/irq.h>
 #include <linux/time.h>
 #include <linux/gpio.h>
@@ -42,7 +41,6 @@
 
 #include <mach/irqs.h>
 
-#include "iomap.h"
 #include "common.h"
 #include "prm2xxx_3xxx.h"
 #include "prm-regbits-24xx.h"
arch/arm/mach-omap2/sleep34xx.S +1 -0
index b760fec..1f62f23 100644
@@ -26,6 +26,7 @@
 
 #include <asm/assembler.h>
 
+#include <plat/hardware.h>
 #include <plat/sram.h>
 
 #include "iomap.h"
arch/arm/plat-omap/counter_32k.c +1 -0
index 5f0f229..5068fe5 100644
@@ -21,6 +21,7 @@
 
 #include <asm/sched_clock.h>
 
+#include <plat/hardware.h>
 #include <plat/common.h>
 #include <plat/board.h>
 
arch/arm/plat-omap/dma.c +2 -0
index 002fb4d..95c3ed6 100644
@@ -164,6 +164,8 @@ static inline void set_gdma_dev(int req, int dev)
 }
 #else
 #define set_gdma_dev(req, dev)	do {} while (0)
+#define omap_readl(reg)		0
+#define omap_writel(val, reg)	do {} while (0)
 #endif
 
 void omap_set_dma_priority(int lch, int dst_port, int priority)
arch/arm/plat-omap/dmtimer.c +2 -0
index af3b92b..2678260 100644
@@ -43,6 +43,8 @@
 
 #include <plat/dmtimer.h>
 
+#include <mach/hardware.h>
+
 static LIST_HEAD(omap_timer_list);
 static DEFINE_SPINLOCK(dm_timer_lock);
 
arch/arm/plat-omap/include/plat/hardware.h +6 -0
index e897978..537b05a 100644
@@ -43,6 +43,12 @@
 #endif
 #include <plat/serial.h>
 
+#ifdef __ASSEMBLER__
+#define IOMEM(x)		(x)
+#else
+#define IOMEM(x)		((void __force __iomem *)(x))
+#endif
+
 /*
  * ---------------------------------------------------------------------------
  * Common definitions for all OMAP processors
arch/arm/plat-omap/include/plat/io.h deleted +0 -84

84 lines not on this page · raw message

arch/arm/plat-omap/include/plat/tc.h +0 -19
index 83b850f..1b4b2da 100644
@@ -84,25 +84,6 @@
 #define EMIFS_CCS(n)		(EMIFS_CS0_CONFIG + (4 * (n)))
 #define EMIFS_ACS(n)		(EMIFS_ACS0 + (4 * (n)))
 
-/* Almost all documentation for chip and board memory maps assumes
- * BM is clear.  Most devel boards have a switch to control booting
- * from NOR flash (using external chipselect 3) rather than mask ROM,
- * which uses BM to interchange the physical CS0 and CS3 addresses.
- */
-#ifdef CONFIG_ARCH_OMAP1
-static inline u32 omap_cs0m_phys(void)
-{
-	return (omap_readl(EMIFS_CONFIG) & OMAP_EMIFS_CONFIG_BM)
-			?  OMAP_CS3_PHYS : 0;
-}
-
-static inline u32 omap_cs3_phys(void)
-{
-	return (omap_readl(EMIFS_CONFIG) & OMAP_EMIFS_CONFIG_BM)
-			? 0 : OMAP_CS3_PHYS;
-}
-#endif
-
 #endif	/* __ASSEMBLER__ */
 
 #endif	/* __ASM_ARCH_TC_H */
arch/arm/plat-omap/mux.c +4 -1
index 0d4aa0d..cff8712 100644
@@ -26,8 +26,11 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/io.h>
-#include <asm/system.h>
 #include <linux/spinlock.h>
+
+#include <asm/system.h>
+
+#include <plat/cpu.h>
 #include <plat/mux.h>
 
 #ifdef CONFIG_OMAP_MUX
arch/arm/plat-omap/usb.c +4 -0
index f357088..d2bbfd1 100644
@@ -29,6 +29,10 @@
 #include <plat/usb.h>
 #include <plat/board.h>
 
+#include <mach/hardware.h>
+
+#include "../mach-omap2/common.h"
+
 #ifdef	CONFIG_ARCH_OMAP_OTG
 
 void __init
drivers/char/hw_random/omap-rng.c +2 -0
index b757fac..a07a5ca 100644
@@ -26,6 +26,8 @@
 
 #include <asm/io.h>
 
+#include <plat/cpu.h>
+
 #define RNG_OUT_REG		0x00		/* Output register */
 #define RNG_STAT_REG		0x04		/* Status register
 							[0] = STAT_BUSY */
drivers/video/omap2/dss/dss.c +3 -0
index 77c2b5a..e6af875 100644
@@ -33,7 +33,10 @@
 #include <linux/pm_runtime.h>
 
 #include <video/omapdss.h>
+
+#include <plat/cpu.h>
 #include <plat/clock.h>
+
 #include "dss.h"
 #include "dss_features.h"
 
#19 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 20 lines · Tony Lindgren
Quoted 16 lines · Tony Lindgren
Quoted 14 lines · Rob Herring

arch/arm/mach-omap2/common.h struct omap_sdrc_params; · line 253

Quoted 11 lines · Tony Lindgren
arch/arm/mach-omap2/common.h +11 -0
+
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);

These can't be moved to common.h like omap2?

Quoted 2 lines

Not for omap1 currently because a bunch of legacy drivers are using them :(

Quoted 9 lines

Looks like we can have them in mach-omap1/include/mach/hardware.h.

Eventually the SoC specific hardware.h files could be renamed to just something like omap1.h, omap2plus.h and so. And then they could be included in the common hardware.h.

Updated patch below, now io.h for both omap1 and omap2+ are minimized, and turns out only minimal driver changes were needed.

Looks good to me. Do you have a branch for this that I can base on?

Rob

Quoted 679 lines

Regards,

Tony

From: Tony Lindgren <[email protected]>
Date: Fri, 24 Feb 2012 09:05:43 -0800
Subject: [PATCH] ARM: OMAP: Remove plat/io.h by splitting it into mach/io.h and mach/hardware.h

This is needed to minimize io.h so the SoC specific io.h for ARMs can removed.

Note that minimal driver changes for DSS and RNG are needed to include cpu.h for SoC detection macros.

Cc Tomi Valkeinen <[email protected]>
Cc Matt Mackall <[email protected]>
Cc Herbert Xu <[email protected]>
arch/arm/mach-omap1/clock.c +3 -0
index 0e8c176..67382dd 100644
@@ -15,6 +15,7 @@
 #include <linux/list.h>
 #include <linux/errno.h>
 #include <linux/err.h>
+#include <linux/io.h>
 #include <linux/clk.h>
 #include <linux/clkdev.h>
 
@@ -26,6 +27,8 @@
 #include <plat/sram.h>
 #include <plat/clkdev_omap.h>
 
+#include <mach/hardware.h>
+
 #include "iomap.h"
 #include "clock.h"
 #include "opp.h"
arch/arm/mach-omap1/clock_data.c +3 -0
index 10b7451..c6ce93f 100644
@@ -15,6 +15,7 @@
  */
 
 #include <linux/kernel.h>
+#include <linux/io.h>
 #include <linux/clk.h>
 #include <linux/cpufreq.h>
 #include <linux/delay.h>
@@ -27,6 +28,8 @@
 #include <plat/sram.h>	/* for omap_sram_reprogram_clock() */
 #include <plat/usb.h>   /* for OTG_BASE */
 
+#include <mach/hardware.h>
+
 #include "iomap.h"
 #include "clock.h"
 
arch/arm/mach-omap1/flash.c +2 -0
index 98d29a0..f9bf78d 100644
@@ -13,6 +13,8 @@
 #include <plat/tc.h>
 #include <plat/flash.h>
 
+#include <mach/hardware.h>
+
 void omap1_set_vpp(struct platform_device *pdev, int enable)
 {
 	static int count;
arch/arm/mach-omap1/id.c +2 -0
index 7483db2..f24c1e2 100644
@@ -18,6 +18,8 @@
 
 #include <plat/cpu.h>
 
+#include <mach/hardware.h>
+
 #define OMAP_DIE_ID_0		0xfffe1800
 #define OMAP_DIE_ID_1		0xfffe1804
 #define OMAP_PRODUCTION_ID_0	0xfffe2000
arch/arm/mach-omap1/include/mach/hardware.h +36 -0
index a3f6287..01e35fa 100644
@@ -2,4 +2,40 @@
  * arch/arm/mach-omap1/include/mach/hardware.h
  */
 
+#ifndef __MACH_HARDWARE_H
+#define __MACH_HARDWARE_H
+
+#ifndef __ASSEMBLER__
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);
+
+#include <plat/tc.h>
+
+/* Almost all documentation for chip and board memory maps assumes
+ * BM is clear.  Most devel boards have a switch to control booting
+ * from NOR flash (using external chipselect 3) rather than mask ROM,
+ * which uses BM to interchange the physical CS0 and CS3 addresses.
+ */
+static inline u32 omap_cs0m_phys(void)
+{
+	return (omap_readl(EMIFS_CONFIG) & OMAP_EMIFS_CONFIG_BM)
+			?  OMAP_CS3_PHYS : 0;
+}
+
+static inline u32 omap_cs3_phys(void)
+{
+	return (omap_readl(EMIFS_CONFIG) & OMAP_EMIFS_CONFIG_BM)
+			? 0 : OMAP_CS3_PHYS;
+}
+
+#endif
+#endif
+
 #include <plat/hardware.h>
arch/arm/mach-omap1/include/mach/io.h +42 -1
index 57bdf74..37b12e1 100644
@@ -1,5 +1,46 @@
 /*
  * arch/arm/mach-omap1/include/mach/io.h
+ *
+ * IO definitions for TI OMAP processors and boards
+ *
+ * Copied from arch/arm/mach-sa1100/include/mach/io.h
+ * Copyright (C) 1997-1999 Russell King
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Modifications:
+ *  06-12-1997	RMK	Created.
+ *  07-04-1999	RMK	Major cleanup
  */
 
-#include <plat/io.h>
+#ifndef __ASM_ARM_ARCH_IO_H
+#define __ASM_ARM_ARCH_IO_H
+
+#define IO_SPACE_LIMIT 0xffffffff
+
+/*
+ * We don't actually have real ISA nor PCI buses, but there is so many
+ * drivers out there that might just work if we fake them...
+ */
+#define __io(a)		__typesafe_io(a)
+#define __mem_pci(a)	(a)
+
+#endif
arch/arm/mach-omap1/include/mach/memory.h +2 -1
index c633764..901082d 100644
@@ -18,7 +18,8 @@
  * Note that the is_lbus_device() test is not very efficient on 1510
  * because of the strncmp().
  */
-#ifdef CONFIG_ARCH_OMAP15XX
+#if defined(CONFIG_ARCH_OMAP15XX) && !defined(__ASSEMBLER__)
+#include <plat/cpu.h>
 
 /*
  * OMAP-1510 Local Bus address offset
arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c +1 -0
index 39f9d5a..7072e0d 100644
@@ -33,6 +33,7 @@
 #include <linux/cpufreq.h>
 #include <linux/slab.h>
 
+#include <plat/cpu.h>
 #include <plat/clock.h>
 #include <plat/sram.h>
 #include <plat/sdrc.h>
arch/arm/mach-omap2/clkt_dpll.c +1 -0
index e069a9b..cd7fd0f 100644
@@ -22,6 +22,7 @@
 #include <asm/div64.h>
 
 #include <plat/clock.h>
+#include <plat/cpu.h>
 
 #include "clock.h"
 #include "cm-regbits-24xx.h"
arch/arm/mach-omap2/clock2420_data.c +2 -0
index b1f3e7c..bace930 100644
@@ -14,9 +14,11 @@
  */
 
 #include <linux/kernel.h>
+#include <linux/io.h>
 #include <linux/clk.h>
 #include <linux/list.h>
 
+#include <plat/hardware.h>
 #include <plat/clkdev_omap.h>
 
 #include "iomap.h"
arch/arm/mach-omap2/clock2430.c +1 -0
index 0caf792..dfda9a3 100644
@@ -21,6 +21,7 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
+#include <plat/hardware.h>
 #include <plat/clock.h>
 
 #include "iomap.h"
arch/arm/mach-omap2/clock2430_data.c +1 -0
index 9a061ff..3b4d09a 100644
@@ -17,6 +17,7 @@
 #include <linux/clk.h>
 #include <linux/list.h>
 
+#include <plat/hardware.h>
 #include <plat/clkdev_omap.h>
 
 #include "iomap.h"
arch/arm/mach-omap2/clock2xxx.c +1 -0
index 80bb0f0..1250009 100644
@@ -22,6 +22,7 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
+#include <plat/cpu.h>
 #include <plat/clock.h>
 
 #include "clock.h"
arch/arm/mach-omap2/clock3xxx.c +1 -0
index 952c3e0..794d827 100644
@@ -21,6 +21,7 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
+#include <plat/hardware.h>
 #include <plat/clock.h>
 
 #include "clock.h"
arch/arm/mach-omap2/common.h +10 -0
index f78ec4e..09ca9e9 100644
@@ -242,5 +242,15 @@ struct omap_sdrc_params;
 extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
 				      struct omap_sdrc_params *sdrc_cs1);
 
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);
+
 #endif /* __ASSEMBLER__ */
 #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
arch/arm/mach-omap2/gpmc-nand.c +1 -0
index 8ad210b..386dec8 100644
@@ -16,6 +16,7 @@
 
 #include <asm/mach/flash.h>
 
+#include <plat/cpu.h>
 #include <plat/nand.h>
 #include <plat/board.h>
 #include <plat/gpmc.h>
arch/arm/mach-omap2/gpmc-onenand.c +1 -0
index 5cdce10..385b3e0 100644
@@ -18,6 +18,7 @@
 
 #include <asm/mach/flash.h>
 
+#include <plat/cpu.h>
 #include <plat/onenand.h>
 #include <plat/board.h>
 #include <plat/gpmc.h>
arch/arm/mach-omap2/include/mach/io.h +45 -1
index fd78f31..b8758c8 100644
@@ -1,5 +1,49 @@
 /*
  * arch/arm/mach-omap2/include/mach/io.h
+ *
+ * IO definitions for TI OMAP processors and boards
+ *
+ * Copied from arch/arm/mach-sa1100/include/mach/io.h
+ * Copyright (C) 1997-1999 Russell King
+ *
+ * Copyright (C) 2009 Texas Instruments
+ * Added OMAP4 support - Santosh Shilimkar <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Modifications:
+ *  06-12-1997	RMK	Created.
+ *  07-04-1999	RMK	Major cleanup
  */
 
-#include <plat/io.h>
+#ifndef __ASM_ARM_ARCH_IO_H
+#define __ASM_ARM_ARCH_IO_H
+
+#define IO_SPACE_LIMIT 0xffffffff
+
+/*
+ * We don't actually have real ISA nor PCI buses, but there is so many
+ * drivers out there that might just work if we fake them...
+ */
+#define __io(a)		__typesafe_io(a)
+#define __mem_pci(a)	(a)
+
+#endif
arch/arm/mach-omap2/opp2420_data.c +2 -0
index e6dda69..5037e76 100644
@@ -28,6 +28,8 @@
  *     http://repository.maemo.org/pool/diablo/free/k/kernel-source-diablo/
  */
 
+#include <plat/hardware.h>
+
 #include "opp2xxx.h"
 #include "sdrc.h"
 #include "clock.h"
arch/arm/mach-omap2/opp2430_data.c +2 -0
index 1b9596a..750805c 100644
@@ -26,6 +26,8 @@
  * This is technically part of the OMAP2xxx clock code.
  */
 
+#include <plat/hardware.h>
+
 #include "opp2xxx.h"
 #include "sdrc.h"
 #include "clock.h"
arch/arm/mach-omap2/pm24xx.c +0 -2
index ac0d629..894ed2d 100644
@@ -26,7 +26,6 @@
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/clk.h>
-#include <linux/io.h>
 #include <linux/irq.h>
 #include <linux/time.h>
 #include <linux/gpio.h>
@@ -42,7 +41,6 @@
 
 #include <mach/irqs.h>
 
-#include "iomap.h"
 #include "common.h"
 #include "prm2xxx_3xxx.h"
 #include "prm-regbits-24xx.h"
arch/arm/mach-omap2/sleep34xx.S +1 -0
index b760fec..1f62f23 100644
@@ -26,6 +26,7 @@
 
 #include <asm/assembler.h>
 
+#include <plat/hardware.h>
 #include <plat/sram.h>
 
 #include "iomap.h"
arch/arm/plat-omap/counter_32k.c +1 -0
index 5f0f229..5068fe5 100644
@@ -21,6 +21,7 @@
 
 #include <asm/sched_clock.h>
 
+#include <plat/hardware.h>
 #include <plat/common.h>
 #include <plat/board.h>
 
arch/arm/plat-omap/dma.c +2 -0
index 002fb4d..95c3ed6 100644
@@ -164,6 +164,8 @@ static inline void set_gdma_dev(int req, int dev)
 }
 #else
 #define set_gdma_dev(req, dev)	do {} while (0)
+#define omap_readl(reg)		0
+#define omap_writel(val, reg)	do {} while (0)
 #endif
 
 void omap_set_dma_priority(int lch, int dst_port, int priority)
arch/arm/plat-omap/dmtimer.c +2 -0
index af3b92b..2678260 100644
@@ -43,6 +43,8 @@
 
 #include <plat/dmtimer.h>
 
+#include <mach/hardware.h>
+
 static LIST_HEAD(omap_timer_list);
 static DEFINE_SPINLOCK(dm_timer_lock);
 
arch/arm/plat-omap/include/plat/hardware.h +6 -0
index e897978..537b05a 100644
@@ -43,6 +43,12 @@
 #endif
 #include <plat/serial.h>
 
+#ifdef __ASSEMBLER__
+#define IOMEM(x)		(x)
+#else
+#define IOMEM(x)		((void __force __iomem *)(x))
+#endif
+
 /*
  * ---------------------------------------------------------------------------
  * Common definitions for all OMAP processors
arch/arm/plat-omap/include/plat/io.h deleted +0 -84
deleted file mode 100644
index 93261d9..0000000
@@ -1,84 +0,0 @@
-/*
- * arch/arm/plat-omap/include/mach/io.h
- *
- * IO definitions for TI OMAP processors and boards
- *
- * Copied from arch/arm/mach-sa1100/include/mach/io.h
- * Copyright (C) 1997-1999 Russell King
- *
- * Copyright (C) 2009 Texas Instruments
- * Added OMAP4 support - Santosh Shilimkar <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * Modifications:
- *  06-12-1997	RMK	Created.
- *  07-04-1999	RMK	Major cleanup
- */
-
-#ifndef __ASM_ARM_ARCH_IO_H
-#define __ASM_ARM_ARCH_IO_H
-
-#include <mach/hardware.h>
-
-#define IO_SPACE_LIMIT 0xffffffff
-
-/*
- * We don't actually have real ISA nor PCI buses, but there is so many
- * drivers out there that might just work if we fake them...
- */
-#define __io(a)		__typesafe_io(a)
-#define __mem_pci(a)	(a)
-
-/*
- * ----------------------------------------------------------------------------
- * I/O mapping
- * ----------------------------------------------------------------------------
- */
-
-#ifdef __ASSEMBLER__
-#define IOMEM(x)		(x)
-#else
-#define IOMEM(x)		((void __force __iomem *)(x))
-#endif
-
-/*
- * ----------------------------------------------------------------------------
- * Omap specific register access
- * ----------------------------------------------------------------------------
- */
-
-#ifndef __ASSEMBLER__
-
-/*
- * NOTE: Please use ioremap + __raw_read/write where possible instead of these
- */
-
-extern u8 omap_readb(u32 pa);
-extern u16 omap_readw(u32 pa);
-extern u32 omap_readl(u32 pa);
-extern void omap_writeb(u8 v, u32 pa);
-extern void omap_writew(u16 v, u32 pa);
-extern void omap_writel(u32 v, u32 pa);
-
-#endif
-
-#endif
arch/arm/plat-omap/include/plat/tc.h +0 -19
index 83b850f..1b4b2da 100644
@@ -84,25 +84,6 @@
 #define EMIFS_CCS(n)		(EMIFS_CS0_CONFIG + (4 * (n)))
 #define EMIFS_ACS(n)		(EMIFS_ACS0 + (4 * (n)))
 
-/* Almost all documentation for chip and board memory maps assumes
- * BM is clear.  Most devel boards have a switch to control booting
- * from NOR flash (using external chipselect 3) rather than mask ROM,
- * which uses BM to interchange the physical CS0 and CS3 addresses.
- */
-#ifdef CONFIG_ARCH_OMAP1
-static inline u32 omap_cs0m_phys(void)
-{
-	return (omap_readl(EMIFS_CONFIG) & OMAP_EMIFS_CONFIG_BM)
-			?  OMAP_CS3_PHYS : 0;
-}
-
-static inline u32 omap_cs3_phys(void)
-{
-	return (omap_readl(EMIFS_CONFIG) & OMAP_EMIFS_CONFIG_BM)
-			? 0 : OMAP_CS3_PHYS;
-}
-#endif
-
 #endif	/* __ASSEMBLER__ */
 
 #endif	/* __ASM_ARCH_TC_H */
arch/arm/plat-omap/mux.c +4 -1
index 0d4aa0d..cff8712 100644
@@ -26,8 +26,11 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/io.h>
-#include <asm/system.h>
 #include <linux/spinlock.h>
+
+#include <asm/system.h>
+
+#include <plat/cpu.h>
 #include <plat/mux.h>
 
 #ifdef CONFIG_OMAP_MUX
arch/arm/plat-omap/usb.c +4 -0
index f357088..d2bbfd1 100644
@@ -29,6 +29,10 @@
 #include <plat/usb.h>
 #include <plat/board.h>
 
+#include <mach/hardware.h>
+
+#include "../mach-omap2/common.h"
+
 #ifdef	CONFIG_ARCH_OMAP_OTG
 
 void __init
drivers/char/hw_random/omap-rng.c +2 -0
index b757fac..a07a5ca 100644
@@ -26,6 +26,8 @@
 
 #include <asm/io.h>
 
+#include <plat/cpu.h>
+
 #define RNG_OUT_REG		0x00		/* Output register */
 #define RNG_STAT_REG		0x04		/* Status register
 							[0] = STAT_BUSY */
drivers/video/omap2/dss/dss.c +3 -0
index 77c2b5a..e6af875 100644
@@ -33,7 +33,10 @@
 #include <linux/pm_runtime.h>
 
 #include <video/omapdss.h>
+
+#include <plat/cpu.h>
 #include <plat/clock.h>
+
 #include "dss.h"
 #include "dss_features.h"
 
author maintainer
#20 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 27 lines · Rob Herring
Quoted 26 lines · Tony Lindgren
Quoted 16 lines · Tony Lindgren
Quoted 14 lines · Rob Herring

Review

Quoted 11 lines · Tony Lindgren
(quoted diff) +11 -0
+
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);

These can't be moved to common.h like omap2?

Quoted 2 lines

Not for omap1 currently because a bunch of legacy drivers are using them :(

Looks like we can have them in mach-omap1/include/mach/hardware.h.

Eventually the SoC specific hardware.h files could be renamed to just something like omap1.h, omap2plus.h and so. And then they could be included in the common hardware.h.

Quoted 5 lines
Quoted 3 lines

Updated patch below, now io.h for both omap1 and omap2+ are minimized, and turns out only minimal driver changes were needed.

Looks good to me. Do you have a branch for this that I can base on?

Yes it's now in iomap branch that merged into my cleanup branch that I'll ask Arnd and Olof to pull tomorrow.

So take your pick out of the following two:

1. iomap branch based on v3.3-rc4 that you probably want to use

git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap iomap

2. cleanup branch based on RMK's commit 61b80086a525c8a6081257ae40da5dee2bcaee16 (Merge branch 'entry-macro-cleanup' of git://sources.calxeda.com/kernel/linux into for-armsoc)

git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap cleanup

BTW, I noticed the following fix is needed for some .configs that I found with randconfig builds, that's only in the cleanup branch as I already merged in iomap and pushed it out. Should not affect your patches though.

Regards,

Tony

From: Tony Lindgren <[email protected]>
Date: Tue, 28 Feb 2012 17:28:09 -0800
Subject: [PATCH] ARM: OMAP2+: Fix L4_EMU_34XX_BASE error after iomap changes

With the introduction of iomap changes platform init code fails for emu.c if CONFIG_OMAP3_EMU is selected:

arch/arm/mach-omap2/emu.c:35:8: error:
'L4_EMU_34XX_BASE' undeclared here (not in a function)

arch/arm/mach-omap2/emu.c +2 -0
@@ -21,6 +21,8 @@
 #include <linux/clk.h>
 #include <linux/err.h>
 
+#include <mach/hardware.h>
+
 #include "iomap.h"
 
 MODULE_LICENSE("GPL");
author maintainer
#21 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 34 lines · Tony Lindgren
Quoted 27 lines · Rob Herring
Quoted 26 lines · Tony Lindgren
Quoted 16 lines · Tony Lindgren
Quoted 14 lines · Rob Herring

Review

Quoted 11 lines · Tony Lindgren
(quoted diff) +11 -0
+
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);

These can't be moved to common.h like omap2?

Quoted 2 lines

Not for omap1 currently because a bunch of legacy drivers are using them :(

Looks like we can have them in mach-omap1/include/mach/hardware.h.

Eventually the SoC specific hardware.h files could be renamed to just something like omap1.h, omap2plus.h and so. And then they could be included in the common hardware.h.

Quoted 5 lines
Quoted 3 lines

Updated patch below, now io.h for both omap1 and omap2+ are minimized, and turns out only minimal driver changes were needed.

Looks good to me. Do you have a branch for this that I can base on?

Quoted 8 lines

Yes it's now in iomap branch that merged into my cleanup branch that I'll ask Arnd and Olof to pull tomorrow.

So take your pick out of the following two:

1. iomap branch based on v3.3-rc4 that you probably want to use

git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap iomap

Correction: #1 above is based on v3.3-rc3, not -rc4.

Quoted 4 lines

2. cleanup branch based on RMK's commit 61b80086a525c8a6081257ae40da5dee2bcaee16 (Merge branch 'entry-macro-cleanup' of git://sources.calxeda.com/kernel/linux into for-armsoc)

git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap cleanup

Regards,

Tony

#22 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

In reply to Tony Lindgren
Quoted 47 lines · Tony Lindgren
Quoted 27 lines · Rob Herring
Quoted 26 lines · Tony Lindgren
Quoted 16 lines · Tony Lindgren
Quoted 14 lines · Rob Herring

Review

Quoted 11 lines · Tony Lindgren
(quoted diff) +11 -0
+
+/*
+ * NOTE: Please use ioremap + __raw_read/write where possible instead of these
+ */
+
+extern u8 omap_readb(u32 pa);
+extern u16 omap_readw(u32 pa);
+extern u32 omap_readl(u32 pa);
+extern void omap_writeb(u8 v, u32 pa);
+extern void omap_writew(u16 v, u32 pa);
+extern void omap_writel(u32 v, u32 pa);

These can't be moved to common.h like omap2?

Quoted 2 lines

Not for omap1 currently because a bunch of legacy drivers are using them :(

Looks like we can have them in mach-omap1/include/mach/hardware.h.

Eventually the SoC specific hardware.h files could be renamed to just something like omap1.h, omap2plus.h and so. And then they could be included in the common hardware.h.

Quoted 5 lines
Quoted 3 lines

Updated patch below, now io.h for both omap1 and omap2+ are minimized, and turns out only minimal driver changes were needed.

Looks good to me. Do you have a branch for this that I can base on?

Yes it's now in iomap branch that merged into my cleanup branch that I'll ask Arnd and Olof to pull tomorrow.

So take your pick out of the following two:

1. iomap branch based on v3.3-rc4 that you probably want to use

git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap iomap

2. cleanup branch based on RMK's commit 61b80086a525c8a6081257ae40da5dee2bcaee16 (Merge branch 'entry-macro-cleanup' of git://sources.calxeda.com/kernel/linux into for-armsoc)

Quoted 8 lines

git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap cleanup

BTW, I noticed the following fix is needed for some .configs that I found with randconfig builds, that's only in the cleanup branch as I already merged in iomap and pushed it out. Should not affect your patches though.

BTW, all these includes need to get removed. I'll add a fix to my series unless you already have fixes:

arch/arm/mach-omap1/sleep.S:#include <mach/io.h> arch/arm/mach-omap1/sram.S:#include <mach/io.h> arch/arm/plat-omap/include/plat/sdrc.h:#include <mach/io.h> drivers/media/video/davinci/vpbe_osd.c:#include <mach/io.h> drivers/media/video/davinci/vpbe_venc.c:#include <mach/io.h> drivers/video/omap2/vrfb.c:#include <mach/io.h>

Rob

Quoted 28 lines

Regards,

Tony

From: Tony Lindgren <[email protected]>
Date: Tue, 28 Feb 2012 17:28:09 -0800
Subject: [PATCH] ARM: OMAP2+: Fix L4_EMU_34XX_BASE error after iomap changes

With the introduction of iomap changes platform init code fails for emu.c if CONFIG_OMAP3_EMU is selected:

arch/arm/mach-omap2/emu.c:35:8: error:
'L4_EMU_34XX_BASE' undeclared here (not in a function)

arch/arm/mach-omap2/emu.c +2 -0
@@ -21,6 +21,8 @@
 #include <linux/clk.h>
 #include <linux/err.h>
 
+#include <mach/hardware.h>
+
 #include "iomap.h"
 
 MODULE_LICENSE("GPL");
#23 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 9 lines · Rob Herring

BTW, all these includes need to get removed. I'll add a fix to my series unless you already have fixes:

arch/arm/mach-omap1/sleep.S:#include <mach/io.h> arch/arm/mach-omap1/sram.S:#include <mach/io.h> arch/arm/plat-omap/include/plat/sdrc.h:#include <mach/io.h> drivers/media/video/davinci/vpbe_osd.c:#include <mach/io.h> drivers/media/video/davinci/vpbe_venc.c:#include <mach/io.h> drivers/video/omap2/vrfb.c:#include <mach/io.h>

All the ones included from .h and .c files should be using linux/io.h and not some other derivative.

author maintainer
#24 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 11 lines · Russell King - ARM Linux
Quoted 9 lines · Rob Herring

BTW, all these includes need to get removed. I'll add a fix to my series unless you already have fixes:

arch/arm/mach-omap1/sleep.S:#include <mach/io.h> arch/arm/mach-omap1/sram.S:#include <mach/io.h> arch/arm/plat-omap/include/plat/sdrc.h:#include <mach/io.h> drivers/media/video/davinci/vpbe_osd.c:#include <mach/io.h> drivers/media/video/davinci/vpbe_venc.c:#include <mach/io.h> drivers/video/omap2/vrfb.c:#include <mach/io.h>

Quoted 2 lines

All the ones included from .h and .c files should be using linux/io.h and not some other derivative.

Oops looks like I missed some files while fixing up the .c files. The .S files should be able to just use the local header now.

I'll do a patch for that, won't touch the davinci files though.

Regards,

Tony

author maintainer
#25 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 12 lines · Tony Lindgren
Quoted 11 lines · Russell King - ARM Linux
Quoted 9 lines · Rob Herring

BTW, all these includes need to get removed. I'll add a fix to my series unless you already have fixes:

arch/arm/mach-omap1/sleep.S:#include <mach/io.h> arch/arm/mach-omap1/sram.S:#include <mach/io.h> arch/arm/plat-omap/include/plat/sdrc.h:#include <mach/io.h> drivers/media/video/davinci/vpbe_osd.c:#include <mach/io.h> drivers/media/video/davinci/vpbe_venc.c:#include <mach/io.h> drivers/video/omap2/vrfb.c:#include <mach/io.h>

Quoted 7 lines
Quoted 2 lines

All the ones included from .h and .c files should be using linux/io.h and not some other derivative.

Oops looks like I missed some files while fixing up the .c files. The .S files should be able to just use the local header now.

I'll do a patch for that, won't touch the davinci files though.

Here's the patch to remove mach/io.h for omaps. We can now remove all of them like Rob suggested :)

Rob, I assume you'll apply this into your branch?

Regards,

Tony

From: Tony Lindgren <[email protected]>
Date: Wed, 29 Feb 2012 17:01:22 -0800
Subject: [PATCH] ARM: OMAP: Remove remaining includes for mach/io.h

These are no longer needed with the recent iomap.h changes.

arch/arm/mach-omap1/include/mach/entry-macro.S +0 -1
@@ -11,7 +11,6 @@
  */
 
 #include <mach/hardware.h>
-#include <mach/io.h>
 #include <mach/irqs.h>
 
 #include "../../iomap.h"
arch/arm/mach-omap1/sram.S +0 -1
@@ -12,7 +12,6 @@
 
 #include <asm/assembler.h>
 
-#include <mach/io.h>
 #include <mach/hardware.h>
 
 #include "iomap.h"
arch/arm/plat-omap/include/plat/sdrc.h +0 -2
@@ -16,8 +16,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <mach/io.h>
-
 /* SDRC register offsets - read/write with sdrc_{read,write}_reg() */
 
 #define SDRC_SYSCONFIG		0x010
drivers/video/omap2/vrfb.c +0 -1
@@ -27,7 +27,6 @@
 #include <linux/bitops.h>
 #include <linux/mutex.h>
 
-#include <mach/io.h>
 #include <plat/vrfb.h>
 #include <plat/sdrc.h>
 
#26 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 19 lines · Tony Lindgren
Quoted 18 lines · Tony Lindgren
Quoted 11 lines · Russell King - ARM Linux
Quoted 9 lines · Rob Herring

BTW, all these includes need to get removed. I'll add a fix to my series unless you already have fixes:

arch/arm/mach-omap1/sleep.S:#include <mach/io.h> arch/arm/mach-omap1/sram.S:#include <mach/io.h> arch/arm/plat-omap/include/plat/sdrc.h:#include <mach/io.h> drivers/media/video/davinci/vpbe_osd.c:#include <mach/io.h> drivers/media/video/davinci/vpbe_venc.c:#include <mach/io.h> drivers/video/omap2/vrfb.c:#include <mach/io.h>

Quoted 2 lines

All the ones included from .h and .c files should be using linux/io.h and not some other derivative.

Oops looks like I missed some files while fixing up the .c files. The .S files should be able to just use the local header now.

Quoted 7 lines
Quoted 1 line

I'll do a patch for that, won't touch the davinci files though.

Here's the patch to remove mach/io.h for omaps. We can now remove all of them like Rob suggested :)

Rob, I assume you'll apply this into your branch?

Yes

Quoted 38 lines

Regards,

Tony

From: Tony Lindgren <[email protected]>
Date: Wed, 29 Feb 2012 17:01:22 -0800
Subject: [PATCH] ARM: OMAP: Remove remaining includes for mach/io.h

These are no longer needed with the recent iomap.h changes.

arch/arm/mach-omap1/include/mach/entry-macro.S +0 -1
@@ -11,7 +11,6 @@
  */
 
 #include <mach/hardware.h>
-#include <mach/io.h>
 #include <mach/irqs.h>
 
 #include "../../iomap.h"
arch/arm/mach-omap1/sram.S +0 -1
@@ -12,7 +12,6 @@
 
 #include <asm/assembler.h>
 
-#include <mach/io.h>
 #include <mach/hardware.h>
 
 #include "iomap.h"

arch/arm/plat-omap/include/plat/sdrc.h line 20

Quoted 5 lines
arch/arm/plat-omap/include/plat/sdrc.h +0 -2
@@ -16,8 +16,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <mach/io.h>
-

I added iomap.h here as there are macros in the header from it.

Rob

Quoted 13 lines
arch/arm/plat-omap/include/plat/sdrc.h +0 -0
 /* SDRC register offsets - read/write with sdrc_{read,write}_reg() */
 
 #define SDRC_SYSCONFIG		0x010
drivers/video/omap2/vrfb.c +0 -1
@@ -27,7 +27,6 @@
 #include <linux/bitops.h>
 #include <linux/mutex.h>
 
-#include <mach/io.h>
 #include <plat/vrfb.h>
 #include <plat/sdrc.h>
 
author maintainer
#27 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 6 lines · Rob Herring
Quoted 3 lines · Tony Lindgren

Rob, I assume you'll apply this into your branch?

Yes

OK

Quoted 10 lines

arch/arm/plat-omap/include/plat/sdrc.h line 20

Quoted 8 lines
arch/arm/plat-omap/include/plat/sdrc.h +0 -2
@@ -16,8 +16,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <mach/io.h>
-

I added iomap.h here as there are macros in the header from it.

Hmm, did you get some compile error? I though all code using sdrc.h already has iomap.h included. This file should eventually be local to mach-omap2.

Regards,

Tony

#28 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 16 lines · Tony Lindgren
Quoted 6 lines · Rob Herring
Quoted 3 lines · Tony Lindgren

Rob, I assume you'll apply this into your branch?

Yes

OK

Quoted 6 lines
Quoted 6 lines
arch/arm/plat-omap/include/plat/sdrc.h +0 -0
@@ -16,8 +16,6 @@
  * published by the Free Software Foundation.
  */
 
Quoted 9 lines
Quoted 4 lines

arch/arm/plat-omap/include/plat/sdrc.h line 20

Quoted 2 lines
arch/arm/plat-omap/include/plat/sdrc.h +0 -2
-#include <mach/io.h>
-

I added iomap.h here as there are macros in the header from it.

Hmm, did you get some compile error? I though all code using sdrc.h already has iomap.h included. This file should eventually be local to mach-omap2.

No, just examined the file. If it compiles, either way is fine with me.

Rob

author maintainer
#29 lore raw

PATCH 7/8 ARM: OMAP: Remove plat/io.h by moving it into mach/io.h

Quoted 22 lines · Rob Herring
Quoted 21 lines · Tony Lindgren
Quoted 6 lines · Rob Herring
Quoted 3 lines · Tony Lindgren

Rob, I assume you'll apply this into your branch?

Yes

OK

Quoted 10 lines

arch/arm/plat-omap/include/plat/sdrc.h line 20

Quoted 8 lines
arch/arm/plat-omap/include/plat/sdrc.h +0 -2
@@ -16,8 +16,6 @@
  * published by the Free Software Foundation.
  */
 
-#include <mach/io.h>
-

I added iomap.h here as there are macros in the header from it.

Quoted 6 lines
Quoted 4 lines

Hmm, did you get some compile error? I though all code using sdrc.h already has iomap.h included. This file should eventually be local to mach-omap2.

No, just examined the file. If it compiles, either way is fine with me.

OK let's leave it out then as it simplifies further clean up. I tested it with omap1_defconfig and omap2plus_defconfig, will also run some randconfigs with it.

Regards,

Tony

author maintainer
#30 lore raw

PATCH 8/8 ARM: OMAP2+: Limit omap_read/write usage to legacy USB drivers

In reply to Tony Lindgren

Drivers should no longer use omap_read/write functions but instead use ioremap + read/write functions.

As some USB legacy code is still shared between omap1 and omap2420, let's limit the omap_read/write to plat/usb.h.

Also, let's make drivers/video/omap/lcdc.c depend on ARCH_OMAP1 as it is not needed for omap2+.

Note that the long term fix is to update the drivers to use ioremap and read/write functions. That can now be done as a separate patch series that is limited to the USB drivers.

Cc Tomi Valkeinen <[email protected]>
Cc linux-fbdev at vger.kernel.org
---
 arch/arm/mach-omap2/common.h          |   10 --------
 arch/arm/mach-omap2/io.c              |   40 ---------------------------------
 arch/arm/plat-omap/include/plat/usb.h |   40 +++++++++++++++++++++++++++++++++
 drivers/video/omap/Kconfig            |    2 +-
 4 files changed, 41 insertions(+), 51 deletions(-)
arch/arm/mach-omap2/common.h +0 -10
index 09ca9e9..f78ec4e 100644
@@ -242,15 +242,5 @@ struct omap_sdrc_params;
 extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
 				      struct omap_sdrc_params *sdrc_cs1);
 
-/*
- * NOTE: Please use ioremap + __raw_read/write where possible instead of these
- */
-extern u8 omap_readb(u32 pa);
-extern u16 omap_readw(u32 pa);
-extern u32 omap_readl(u32 pa);
-extern void omap_writeb(u8 v, u32 pa);
-extern void omap_writew(u16 v, u32 pa);
-extern void omap_writel(u32 v, u32 pa);
-
 #endif /* __ASSEMBLER__ */
 #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
arch/arm/mach-omap2/io.c +0 -40
index 0119807..3203128 100644
@@ -487,43 +487,3 @@ void __init omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
 		_omap2_init_reprogram_sdrc();
 	}
 }
-
-/*
- * NOTE: Please use ioremap + __raw_read/write where possible instead of these
- */
-
-u8 omap_readb(u32 pa)
-{
-	return __raw_readb(OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_readb);
-
-u16 omap_readw(u32 pa)
-{
-	return __raw_readw(OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_readw);
-
-u32 omap_readl(u32 pa)
-{
-	return __raw_readl(OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_readl);
-
-void omap_writeb(u8 v, u32 pa)
-{
-	__raw_writeb(v, OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_writeb);
-
-void omap_writew(u16 v, u32 pa)
-{
-	__raw_writew(v, OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_writew);
-
-void omap_writel(u32 v, u32 pa)
-{
-	__raw_writel(v, OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_writel);
arch/arm/plat-omap/include/plat/usb.h +40 -0
index dc864b5..5f6ced4 100644
@@ -3,6 +3,7 @@
 #ifndef	__ASM_ARCH_OMAP_USB_H
 #define	__ASM_ARCH_OMAP_USB_H
 
+#include <linux/io.h>
 #include <linux/usb/musb.h>
 #include <plat/board.h>
 
@@ -105,6 +106,45 @@ extern int omap4430_phy_set_clk(struct device *dev, int on);
 extern int omap4430_phy_init(struct device *dev);
 extern int omap4430_phy_exit(struct device *dev);
 extern int omap4430_phy_suspend(struct device *dev, int suspend);
+
+/*
+ * NOTE: Please update omap USB drivers to use ioremap + read/write
+ */
+
+#define OMAP2_L4_IO_OFFSET		0xb2000000
+#define OMAP2_L4_IO_ADDRESS(pa)		IOMEM((pa) + OMAP2_L4_IO_OFFSET)
+
+static inline u8 omap_readb(u32 pa)
+{
+	return __raw_readb(OMAP2_L4_IO_ADDRESS(pa));
+}
+
+static inline u16 omap_readw(u32 pa)
+{
+	return __raw_readw(OMAP2_L4_IO_ADDRESS(pa));
+}
+
+static inline u32 omap_readl(u32 pa)
+{
+	return __raw_readl(OMAP2_L4_IO_ADDRESS(pa));
+}
+
+static inline void omap_writeb(u8 v, u32 pa)
+{
+	__raw_writeb(v, OMAP2_L4_IO_ADDRESS(pa));
+}
+
+
+static inline void omap_writew(u16 v, u32 pa)
+{
+	__raw_writew(v, OMAP2_L4_IO_ADDRESS(pa));
+}
+
+static inline void omap_writel(u32 v, u32 pa)
+{
+	__raw_writel(v, OMAP2_L4_IO_ADDRESS(pa));
+}
+
 #endif
 
 extern void am35x_musb_reset(void);
drivers/video/omap/Kconfig +1 -1
index 84ff232..295d1cc 100644
@@ -11,7 +11,7 @@ config FB_OMAP
 
 config FB_OMAP_LCDC_EXTERNAL
 	bool "External LCD controller support"
-	depends on FB_OMAP
+	depends on FB_OMAP && ARCH_OMAP1
 	help
 	  Say Y here, if you want to have support for boards with an
 	  external LCD controller connected to the SoSSI/RFBI interface.
#31 lore raw

PATCH 8/8 ARM: OMAP2+: Limit omap_read/write usage to legacy USB drivers

Quoted 8 lines · Tony Lindgren

Drivers should no longer use omap_read/write functions but instead use ioremap + read/write functions.

As some USB legacy code is still shared between omap1 and omap2420, let's limit the omap_read/write to plat/usb.h.

Also, let's make drivers/video/omap/lcdc.c depend on ARCH_OMAP1 as it is not needed for omap2+.

I'm ok with the lcdc.c change, but I also have a patch series that makes the same change, plus removes the omap2 code from drivers/video/omap/.

Can you check the series, and give ack if the arch/arm side looks fine? It's this one: [PATCH 00/16] OMAPDSS: old OMAPFB cleanup

Tomi

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120222/ecb60c80/attachment.sig>

author maintainer
#32 lore raw

PATCH 8/8 ARM: OMAP2+: Limit omap_read/write usage to legacy USB drivers

Quoted 4 lines · Tomi Valkeinen
Quoted 3 lines · Tony Lindgren

Drivers should no longer use omap_read/write functions but instead use ioremap + read/write functions.

Quoted 8 lines
Quoted 5 lines

As some USB legacy code is still shared between omap1 and omap2420, let's limit the omap_read/write to plat/usb.h.

Also, let's make drivers/video/omap/lcdc.c depend on ARCH_OMAP1 as it is not needed for omap2+.

I'm ok with the lcdc.c change, but I also have a patch series that makes the same change, plus removes the omap2 code from drivers/video/omap/.

OK, I'll drop the lcdc.c change from my series as that should only affect randconfig builds.

Quoted 2 lines

Can you check the series, and give ack if the arch/arm side looks fine? It's this one: [PATCH 00/16] OMAPDSS: old OMAPFB cleanup

Yeah great, I've acked those. Let's do a test merge when I have these in cleanup branch, looks like the conflicts should be trivial.

Tony

author maintainer
#33 lore raw

PATCH 8/8 ARM: OMAP2+: Limit omap_read/write usage to legacy USB drivers

Quoted 8 lines · Tony Lindgren
Quoted 7 lines · Tomi Valkeinen
Quoted 6 lines · Tony Lindgren

Drivers should no longer use omap_read/write functions but instead use ioremap + read/write functions.

As some USB legacy code is still shared between omap1 and omap2420, let's limit the omap_read/write to plat/usb.h.

Quoted 8 lines
Quoted 5 lines
Quoted 2 lines

Also, let's make drivers/video/omap/lcdc.c depend on ARCH_OMAP1 as it is not needed for omap2+.

I'm ok with the lcdc.c change, but I also have a patch series that makes the same change, plus removes the omap2 code from drivers/video/omap/.

OK, I'll drop the lcdc.c change from my series as that should only affect randconfig builds.

Here's this one updated. Noticed one more legacy driver that needs omap_read/write defined to build on 2420.

Regards,

Tony

Date: Tue, 21 Feb 2012 13:27:33 -0800
Subject: [PATCH] ARM: OMAP2+: Limit omap_read/write usage to legacy USB drivers

Drivers should no longer use omap_read/write functions but instead use ioremap + read/write functions.

As some USB legacy code is still shared between omap1 and omap2420, let's limit the omap_read/write to plat/usb.h.

Note that the long term fix is to update the drivers to use ioremap and read/write functions. That can now be done as a separate patch series that is limited to the USB drivers.

Also make sure the legacy omap1-keypad.c driver builds if selected for 2420 based systems.

arch/arm/mach-omap2/common.h +0 -10
index 09ca9e9..f78ec4e 100644
@@ -242,15 +242,5 @@ struct omap_sdrc_params;
 extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
 				      struct omap_sdrc_params *sdrc_cs1);
 
-/*
- * NOTE: Please use ioremap + __raw_read/write where possible instead of these
- */
-extern u8 omap_readb(u32 pa);
-extern u16 omap_readw(u32 pa);
-extern u32 omap_readl(u32 pa);
-extern void omap_writeb(u8 v, u32 pa);
-extern void omap_writew(u16 v, u32 pa);
-extern void omap_writel(u32 v, u32 pa);
-
 #endif /* __ASSEMBLER__ */
 #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
arch/arm/mach-omap2/io.c +0 -40
index 0119807..3203128 100644
@@ -487,43 +487,3 @@ void __init omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
 		_omap2_init_reprogram_sdrc();
 	}
 }
-
-/*
- * NOTE: Please use ioremap + __raw_read/write where possible instead of these
- */
-
-u8 omap_readb(u32 pa)
-{
-	return __raw_readb(OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_readb);
-
-u16 omap_readw(u32 pa)
-{
-	return __raw_readw(OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_readw);
-
-u32 omap_readl(u32 pa)
-{
-	return __raw_readl(OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_readl);
-
-void omap_writeb(u8 v, u32 pa)
-{
-	__raw_writeb(v, OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_writeb);
-
-void omap_writew(u16 v, u32 pa)
-{
-	__raw_writew(v, OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_writew);
-
-void omap_writel(u32 v, u32 pa)
-{
-	__raw_writel(v, OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_writel);
arch/arm/plat-omap/include/plat/keypad.h +2 -0
index 793ce9d..4b35555 100644
@@ -12,6 +12,8 @@
 
 #ifndef CONFIG_ARCH_OMAP1
 #warning Please update the board to use matrix-keypad driver
+#define omap_readw(reg)		0
+#define omap_writew(val, reg)	do {} while(0)
 #endif
 #include <linux/input/matrix_keypad.h>
 
arch/arm/plat-omap/include/plat/usb.h +40 -0
index dc864b5..5f6ced4 100644
@@ -3,6 +3,7 @@
 #ifndef	__ASM_ARCH_OMAP_USB_H
 #define	__ASM_ARCH_OMAP_USB_H
 
+#include <linux/io.h>
 #include <linux/usb/musb.h>
 #include <plat/board.h>
 
@@ -105,6 +106,45 @@ extern int omap4430_phy_set_clk(struct device *dev, int on);
 extern int omap4430_phy_init(struct device *dev);
 extern int omap4430_phy_exit(struct device *dev);
 extern int omap4430_phy_suspend(struct device *dev, int suspend);
+
+/*
+ * NOTE: Please update omap USB drivers to use ioremap + read/write
+ */
+
+#define OMAP2_L4_IO_OFFSET		0xb2000000
+#define OMAP2_L4_IO_ADDRESS(pa)		IOMEM((pa) + OMAP2_L4_IO_OFFSET)
+
+static inline u8 omap_readb(u32 pa)
+{
+	return __raw_readb(OMAP2_L4_IO_ADDRESS(pa));
+}
+
+static inline u16 omap_readw(u32 pa)
+{
+	return __raw_readw(OMAP2_L4_IO_ADDRESS(pa));
+}
+
+static inline u32 omap_readl(u32 pa)
+{
+	return __raw_readl(OMAP2_L4_IO_ADDRESS(pa));
+}
+
+static inline void omap_writeb(u8 v, u32 pa)
+{
+	__raw_writeb(v, OMAP2_L4_IO_ADDRESS(pa));
+}
+
+
+static inline void omap_writew(u16 v, u32 pa)
+{
+	__raw_writew(v, OMAP2_L4_IO_ADDRESS(pa));
+}
+
+static inline void omap_writel(u32 v, u32 pa)
+{
+	__raw_writel(v, OMAP2_L4_IO_ADDRESS(pa));
+}
+
 #endif
 
 extern void am35x_musb_reset(void);
author maintainer
#34 lore raw

PATCH 8/8 ARM: OMAP2+: Limit omap_read/write usage to legacy USB drivers

Quoted 12 lines · Tony Lindgren
Quoted 11 lines · Tony Lindgren
Quoted 10 lines · Tomi Valkeinen
Quoted 8 lines · Tony Lindgren

Drivers should no longer use omap_read/write functions but instead use ioremap + read/write functions.

As some USB legacy code is still shared between omap1 and omap2420, let's limit the omap_read/write to plat/usb.h.

Also, let's make drivers/video/omap/lcdc.c depend on ARCH_OMAP1 as it is not needed for omap2+.

Quoted 8 lines
Quoted 5 lines
Quoted 2 lines

I'm ok with the lcdc.c change, but I also have a patch series that makes the same change, plus removes the omap2 code from drivers/video/omap/.

OK, I'll drop the lcdc.c change from my series as that should only affect randconfig builds.

Here's this one updated. Noticed one more legacy driver that needs omap_read/write defined to build on 2420.

This one needed some updates for usb.h after updating patch 7/8 in this series. Updated patch below.

Regards,

Tony

From: Tony Lindgren <[email protected]>
Date: Wed, 22 Feb 2012 14:52:41 -0800
Subject: [PATCH] ARM: OMAP2+: Limit omap_read/write usage to legacy USB drivers

Drivers should no longer use omap_read/write functions but instead use ioremap + read/write functions.

As some USB legacy code is still shared between omap1 and omap2420, let's limit the omap_read/write to plat/usb.h.

Note that the long term fix is to update the drivers to use ioremap and read/write functions. That can now be done as a separate patch series that is limited to the USB drivers.

Also make sure the legacy omap1-keypad.c driver builds if selected for 2420 based systems.

arch/arm/mach-omap2/common.h +0 -10
index 09ca9e9..f78ec4e 100644
@@ -242,15 +242,5 @@ struct omap_sdrc_params;
 extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
 				      struct omap_sdrc_params *sdrc_cs1);
 
-/*
- * NOTE: Please use ioremap + __raw_read/write where possible instead of these
- */
-extern u8 omap_readb(u32 pa);
-extern u16 omap_readw(u32 pa);
-extern u32 omap_readl(u32 pa);
-extern void omap_writeb(u8 v, u32 pa);
-extern void omap_writew(u16 v, u32 pa);
-extern void omap_writel(u32 v, u32 pa);
-
 #endif /* __ASSEMBLER__ */
 #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
arch/arm/mach-omap2/io.c +0 -40
index 0119807..3203128 100644
@@ -487,43 +487,3 @@ void __init omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
 		_omap2_init_reprogram_sdrc();
 	}
 }
-
-/*
- * NOTE: Please use ioremap + __raw_read/write where possible instead of these
- */
-
-u8 omap_readb(u32 pa)
-{
-	return __raw_readb(OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_readb);
-
-u16 omap_readw(u32 pa)
-{
-	return __raw_readw(OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_readw);
-
-u32 omap_readl(u32 pa)
-{
-	return __raw_readl(OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_readl);
-
-void omap_writeb(u8 v, u32 pa)
-{
-	__raw_writeb(v, OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_writeb);
-
-void omap_writew(u16 v, u32 pa)
-{
-	__raw_writew(v, OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_writew);
-
-void omap_writel(u32 v, u32 pa)
-{
-	__raw_writel(v, OMAP2_L4_IO_ADDRESS(pa));
-}
-EXPORT_SYMBOL(omap_writel);
arch/arm/plat-omap/include/plat/keypad.h +2 -0
index 793ce9d..a6b21ed 100644
@@ -12,6 +12,8 @@
 
 #ifndef CONFIG_ARCH_OMAP1
 #warning Please update the board to use matrix-keypad driver
+#define omap_readw(reg)		0
+#define omap_writew(val, reg)	do {} while (0)
 #endif
 #include <linux/input/matrix_keypad.h>
 
arch/arm/plat-omap/include/plat/usb.h +41 -0

53 lines not on this page · raw message