diff mbox

[2/7,RFC] OMAP4: Create board support for OMAP_4430SDP.

Message ID 1240319293-19662-2-git-send-email-santosh.shilimkar@ti.com (mailing list archive)
State Awaiting Upstream, archived
Headers show

Commit Message

Santosh Shilimkar April 21, 2009, 1:08 p.m. UTC
This patch creates the bare minimal board files  to support
OMAP_4430SDP. Additinaly new omap44xx.h is created which contains
the base addresses for OMAP4430.File omap34xx.h is adapted to avoid
multiple definitions of common omap base address definitions.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
---
 arch/arm/mach-omap2/board-4430sdp.c             |   91 +++++++++++++++++++++++
 arch/arm/plat-omap/include/mach/board-4430sdp.h |   28 +++++++
 arch/arm/plat-omap/include/mach/hardware.h      |    1 +
 arch/arm/plat-omap/include/mach/omap34xx.h      |    8 +-
 arch/arm/plat-omap/include/mach/omap44xx.h      |   61 +++++++++++++++
 5 files changed, 185 insertions(+), 4 deletions(-)
 create mode 100644 arch/arm/mach-omap2/board-4430sdp.c
 create mode 100644 arch/arm/plat-omap/include/mach/board-4430sdp.h
 create mode 100644 arch/arm/plat-omap/include/mach/omap44xx.h

Comments

Tony Lindgren April 21, 2009, 6:14 p.m. UTC | #1
* Santosh Shilimkar <santosh.shilimkar@ti.com> [090421 06:08]:
> This patch creates the bare minimal board files  to support
> OMAP_4430SDP. Additinaly new omap44xx.h is created which contains
> the base addresses for OMAP4430.File omap34xx.h is adapted to avoid
> multiple definitions of common omap base address definitions.
> 
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> ---
>  arch/arm/mach-omap2/board-4430sdp.c             |   91 +++++++++++++++++++++++
>  arch/arm/plat-omap/include/mach/board-4430sdp.h |   28 +++++++
>  arch/arm/plat-omap/include/mach/hardware.h      |    1 +
>  arch/arm/plat-omap/include/mach/omap34xx.h      |    8 +-
>  arch/arm/plat-omap/include/mach/omap44xx.h      |   61 +++++++++++++++
>  5 files changed, 185 insertions(+), 4 deletions(-)
>  create mode 100644 arch/arm/mach-omap2/board-4430sdp.c
>  create mode 100644 arch/arm/plat-omap/include/mach/board-4430sdp.h
>  create mode 100644 arch/arm/plat-omap/include/mach/omap44xx.h
> 
> diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
> new file mode 100644
> index 0000000..157e9e4
> --- /dev/null
> +++ b/arch/arm/mach-omap2/board-4430sdp.c
> @@ -0,0 +1,91 @@
> +/*
> + * Board support file for OMAP4430 SDP.
> + *
> + * Copyright (C) 2009 Texas Instruments
> + *
> + * Author: Santosh Shilimkar <santosh.shilimkar@ti.com>
> + *
> + * Based on mach-omap2/board-3430sdp.c
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/init.h>
> +#include <linux/platform_device.h>
> +#include <linux/io.h>
> +
> +#include <mach/hardware.h>
> +#include <asm/mach-types.h>
> +#include <asm/mach/arch.h>
> +#include <asm/mach/map.h>
> +
> +#include <mach/gpio.h>
> +#include <mach/board.h>
> +#include <mach/common.h>
> +#include <mach/control.h>
> +#include <asm/hardware/gic.h>
> +
> +static struct platform_device sdp4430_lcd_device = {
> +	.name		= "sdp4430_lcd",
> +	.id		= -1,
> +};
> +
> +static struct platform_device *sdp4430_devices[] __initdata = {
> +	&sdp4430_lcd_device,
> +};
> +
> +static struct omap_uart_config sdp4430_uart_config __initdata = {
> +	.enabled_uarts	= ((1 << 0) | (1 << 1) | (1 << 2)),
> +};
> +
> +static struct omap_lcd_config sdp4430_lcd_config __initdata = {
> +	.ctrl_name	= "internal",
> +};
> +
> +static struct omap_board_config_kernel sdp4430_config[] __initdata = {
> +	{ OMAP_TAG_UART,	&sdp4430_uart_config },
> +	{ OMAP_TAG_LCD,		&sdp4430_lcd_config },
> +};
> +
> +static void __init gic_init_irq(void)
> +{
> +	gic_dist_init(0, IO_ADDRESS(OMAP44XX_GIC_DIST_BASE), 29);
> +	gic_cpu_init(0, IO_ADDRESS(OMAP44XX_GIC_CPU_BASE));
> +}
> +
> +static void __init omap_4430sdp_init_irq(void)
> +{
> +	omap2_init_common_hw(NULL);
> +	gic_init_irq();
> +	omap_gpio_init();
> +}
> +
> +
> +static void __init omap_4430sdp_init(void)
> +{
> +	platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
> +	omap_board_config = sdp4430_config;
> +	omap_board_config_size = ARRAY_SIZE(sdp4430_config);
> +	omap_serial_init();
> +
> +}
> +
> +static void __init omap_4430sdp_map_io(void)
> +{
> +	omap2_set_globals_443x();
> +	omap2_map_common_io();
> +}
> +
> +MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board")
> +	/* Maintainer: Santosh Shilimkar - Texas Instruments Inc */
> +	.phys_io	= 0x48000000,
> +	.io_pg_offst	= ((0xd8000000) >> 18) & 0xfffc,
> +	.boot_params	= 0x80000100,
> +	.map_io		= omap_4430sdp_map_io,
> +	.init_irq	= omap_4430sdp_init_irq,
> +	.init_machine	= omap_4430sdp_init,
> +	.timer		= &omap_timer,
> +MACHINE_END
> diff --git a/arch/arm/plat-omap/include/mach/board-4430sdp.h b/arch/arm/plat-omap/include/mach/board-4430sdp.h
> new file mode 100644
> index 0000000..5296779
> --- /dev/null
> +++ b/arch/arm/plat-omap/include/mach/board-4430sdp.h
> @@ -0,0 +1,28 @@
> +/*
> + * Board support header for OMAP4430 SDP.
> + *
> + * Copyright (C) 2009 Texas Instruments
> + *
> + * Author: Santosh Shilimkar <santosh.shilimkar@ti.com>
> + *
> + * Based on arch/arm/plat-omap/include/mach/board-3430sdp.h
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +#ifndef __ARCH_ARM_MACH_OMAP4_BOARD_4430SDP_H
> +#define __ARCH_ARM_MACH_OMAP4_BOARD_4430SDP_H
> +
> +extern void sdp4430_flash_init(void);
> +
> +/* NAND */
> +#define DEBUG_BASE		0x08000000 /* debug board */
> +#define NAND_BASE		0x0C000000 /* NAND flash */
> +#define ONENAND_MAP		0x20000000 /* OneNand flash */
> +
> +/* various memory sizes */
> +#define FLASH_SIZE_SDPV1	SZ_64M
> +#define FLASH_SIZE_SDPV2	SZ_128M
> +#endif
> +

Let's leave out the board-4430sdp.h and move the defines to the board-4430sdp.c.

Also it sounds like the NAND defines are not yet needed. I'm thinking
that we should have just a generic gpmc-onenand.c file based on the
board-n800-flash.c that works for all boards with onenand connected
to the GPMC.

> diff --git a/arch/arm/plat-omap/include/mach/hardware.h b/arch/arm/plat-omap/include/mach/hardware.h
> index 3dc423e..26c1fbf 100644
> --- a/arch/arm/plat-omap/include/mach/hardware.h
> +++ b/arch/arm/plat-omap/include/mach/hardware.h
> @@ -285,5 +285,6 @@
>  #include "omap16xx.h"
>  #include "omap24xx.h"
>  #include "omap34xx.h"
> +#include "omap44xx.h"
>  
>  #endif	/* __ASM_ARCH_OMAP_HARDWARE_H */
> diff --git a/arch/arm/plat-omap/include/mach/omap34xx.h b/arch/arm/plat-omap/include/mach/omap34xx.h
> index ab64015..32f2bde 100644
> --- a/arch/arm/plat-omap/include/mach/omap34xx.h
> +++ b/arch/arm/plat-omap/include/mach/omap34xx.h
> @@ -31,13 +31,9 @@
>  
>  #define L4_34XX_BASE		0x48000000
>  #define L4_WK_34XX_BASE		0x48300000
> -#define L4_WK_OMAP_BASE		L4_WK_34XX_BASE
>  #define L4_PER_34XX_BASE	0x49000000
> -#define L4_PER_OMAP_BASE	L4_PER_34XX_BASE
>  #define L4_EMU_34XX_BASE	0x54000000
> -#define L4_EMU_BASE		L4_EMU_34XX_BASE
>  #define L3_34XX_BASE		0x68000000
> -#define L3_OMAP_BASE		L3_34XX_BASE
>  
>  #define OMAP3430_32KSYNCT_BASE	0x48320000
>  #define OMAP3430_CM_BASE	0x48004800
> @@ -85,6 +81,10 @@
>  
>  #if defined(CONFIG_ARCH_OMAP3430)
>  
> +#define L4_WK_OMAP_BASE			L4_WK_34XX_BASE
> +#define L4_PER_OMAP_BASE		L4_PER_34XX_BASE
> +#define L4_EMU_BASE			L4_EMU_34XX_BASE
> +#define L3_OMAP_BASE			L3_34XX_BASE
>  #define OMAP2_32KSYNCT_BASE		OMAP3430_32KSYNCT_BASE
>  #define OMAP2_CM_BASE			OMAP3430_CM_BASE
>  #define OMAP2_PRM_BASE			OMAP3430_PRM_BASE

These defines should be set up in a way where they don't block
compile for multi-omap. OK to keep for now, I'll post some
clean-up patches for all processors under mach-omap2.

> diff --git a/arch/arm/plat-omap/include/mach/omap44xx.h b/arch/arm/plat-omap/include/mach/omap44xx.h
> new file mode 100644
> index 0000000..7852ea6
> --- /dev/null
> +++ b/arch/arm/plat-omap/include/mach/omap44xx.h
> @@ -0,0 +1,61 @@
> +/*
> + * Address mappings and base address for OMAP4 interconnects
> + * and peripherals.
> + *
> + * Copyright (C) 2009 Texas Instruments
> + *
> + * Author: Santosh Shilimkar <santosh.shilimkar@ti.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +#ifndef __ASM_ARCH_OMAP44XX_H
> +#define __ASM_ARCH_OMAP44XX_H
> +
> +/*
> + * Please place only base defines here and put the rest in device
> + * specific headers.
> + */
> +#define L4_44XX_BASE			0x4A000000
> +#define L4_WK_44XX_BASE			0x4A300000
> +#define L4_PER_44XX_BASE		0x48000000
> +#define L4_EMU_44XX_BASE		0x54000000
> +#define L3_44XX_BASE			0x44000000
> +#define OMAP4430_32KSYNCT_BASE		0x4A304000
> +#define OMAP4430_CM_BASE		0x4A004000
> +#define OMAP4430_PRM_BASE		0x48306000
> +#define OMAP44XX_GPMC_BASE		0x50000000
> +#define OMAP443X_SCM_BASE		0x4A002000
> +#define OMAP443X_CTRL_BASE		OMAP443X_SCM_BASE
> +#define OMAP44XX_IC_BASE		0x48200000
> +#define OMAP44XX_IVA_INTC_BASE		0x40000000
> +#define IRQ_SIR_IRQ			0x0040
> +#define	OMAP44XX_GIC_DIST_BASE		0x48241000
> +#define OMAP44XX_GIC_CPU_BASE		0x48240100
> +#define	OMAP44XX_VA_GIC_CPU_BASE	IO_ADDRESS(OMAP44XX_GIC_CPU_BASE)
> +#define OMAP44XX_SCU_BASE		0x48240000
> +#define OMAP44XX_VA_SCU_BASE		IO_ADDRESS(OMAP44XX_SCU_BASE)
> +#define OMAP44XX_LOCAL_TWD_BASE		0x48240600
> +#define OMAP44XX_VA_LOCAL_TWD_BASE	IO_ADDRESS(OMAP44XX_LOCAL_TWD_BASE)
> +#define OMAP44XX_LOCAL_TWD_SIZE		0x00000100
> +#define OMAP44XX_WKUPGEN_BASE		0x48281000
> +#define OMAP44XX_VA_WKUPGEN_BASE	IO_ADDRESS(OMAP44XX_WKUPGEN_BASE)

Could these defines have just OMAP4_ prefix? If some later omap4
changes these, we can define them separately with the correct
prefix.

> +
> +/* Common macros between OMAPs */
> +
> +#if defined(CONFIG_ARCH_OMAP44XX)
> +
> +#define L4_WK_OMAP_BASE			L4_WK_44XX_BASE
> +#define L4_PER_OMAP_BASE		L4_PER_44XX_BASE
> +#define L4_EMU_BASE			L4_EMU_44XX_BASE
> +#define L3_OMAP_BASE			L3_44XX_BASE
> +#define OMAP2_32KSYNCT_BASE		OMAP4430_32KSYNCT_BASE
> +#define OMAP2_CM_BASE			OMAP4430_CM_BASE
> +#define OMAP2_PRM_BASE			OMAP4430_PRM_BASE
> +#define OMAP2_VA_IC_BASE		IO_ADDRESS(OMAP44XX_IC_BASE)
> +
> +#endif
> +
> +#endif /* __ASM_ARCH_OMAP44XX_H */

These defines will be cleaned up too for all processors during
this cycle as they block compile for multi-omap. Just FYI,
some minor rebasing will be needed at some point later on.

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Santosh Shilimkar April 22, 2009, 4:47 a.m. UTC | #2
> > + * Board support header for OMAP4430 SDP.
> > + *
> > + * Copyright (C) 2009 Texas Instruments
> > + *
> > + * Author: Santosh Shilimkar <santosh.shilimkar@ti.com>
> > + *
> > + * Based on arch/arm/plat-omap/include/mach/board-3430sdp.h
> > + *
> > + * This program is free software; you can redistribute it 
> and/or modify
> > + * it under the terms of the GNU General Public License 
> version 2 as
> > + * published by the Free Software Foundation.
> > + */
> > +#ifndef __ARCH_ARM_MACH_OMAP4_BOARD_4430SDP_H
> > +#define __ARCH_ARM_MACH_OMAP4_BOARD_4430SDP_H
> > +
> > +extern void sdp4430_flash_init(void);
> > +
> > +/* NAND */
> > +#define DEBUG_BASE		0x08000000 /* debug board */
> > +#define NAND_BASE		0x0C000000 /* NAND flash */
> > +#define ONENAND_MAP		0x20000000 /* OneNand flash */
> > +
> > +/* various memory sizes */
> > +#define FLASH_SIZE_SDPV1	SZ_64M
> > +#define FLASH_SIZE_SDPV2	SZ_128M
> > +#endif
> > +
> 
> Let's leave out the board-4430sdp.h and move the defines to 
> the board-4430sdp.c.
> 
> Also it sounds like the NAND defines are not yet needed. I'm thinking
> that we should have just a generic gpmc-onenand.c file based on the
> board-n800-flash.c that works for all boards with onenand connected
> to the GPMC.
Yes. This was added as a place holder since next NAND driver patches would need that. Sounds ok to me but may be Nand driver owner might have some comments on the same. We can take this up later when adding NAND support.
For now I agree with you point.
  
> b/arch/arm/plat-omap/include/mach/omap44xx.h
		
> IO_ADDRESS(OMAP44XX_SCU_BASE)
> > +#define OMAP44XX_LOCAL_TWD_BASE		0x48240600
> > +#define OMAP44XX_VA_LOCAL_TWD_BASE	
> IO_ADDRESS(OMAP44XX_LOCAL_TWD_BASE)
> > +#define OMAP44XX_LOCAL_TWD_SIZE		0x00000100
> > +#define OMAP44XX_WKUPGEN_BASE		0x48281000
> > +#define OMAP44XX_VA_WKUPGEN_BASE	
> IO_ADDRESS(OMAP44XX_WKUPGEN_BASE)
> 
> Could these defines have just OMAP4_ prefix? If some later omap4
> changes these, we can define them separately with the correct
> prefix.
I have kept this just to keep uniformity. Also generally we will have derivatives of ICs and this defines would 
Help there. Instead of modifying later we can keep this way.

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

Patch

diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
new file mode 100644
index 0000000..157e9e4
--- /dev/null
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -0,0 +1,91 @@ 
+/*
+ * Board support file for OMAP4430 SDP.
+ *
+ * Copyright (C) 2009 Texas Instruments
+ *
+ * Author: Santosh Shilimkar <santosh.shilimkar@ti.com>
+ *
+ * Based on mach-omap2/board-3430sdp.c
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/io.h>
+
+#include <mach/hardware.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+
+#include <mach/gpio.h>
+#include <mach/board.h>
+#include <mach/common.h>
+#include <mach/control.h>
+#include <asm/hardware/gic.h>
+
+static struct platform_device sdp4430_lcd_device = {
+	.name		= "sdp4430_lcd",
+	.id		= -1,
+};
+
+static struct platform_device *sdp4430_devices[] __initdata = {
+	&sdp4430_lcd_device,
+};
+
+static struct omap_uart_config sdp4430_uart_config __initdata = {
+	.enabled_uarts	= ((1 << 0) | (1 << 1) | (1 << 2)),
+};
+
+static struct omap_lcd_config sdp4430_lcd_config __initdata = {
+	.ctrl_name	= "internal",
+};
+
+static struct omap_board_config_kernel sdp4430_config[] __initdata = {
+	{ OMAP_TAG_UART,	&sdp4430_uart_config },
+	{ OMAP_TAG_LCD,		&sdp4430_lcd_config },
+};
+
+static void __init gic_init_irq(void)
+{
+	gic_dist_init(0, IO_ADDRESS(OMAP44XX_GIC_DIST_BASE), 29);
+	gic_cpu_init(0, IO_ADDRESS(OMAP44XX_GIC_CPU_BASE));
+}
+
+static void __init omap_4430sdp_init_irq(void)
+{
+	omap2_init_common_hw(NULL);
+	gic_init_irq();
+	omap_gpio_init();
+}
+
+
+static void __init omap_4430sdp_init(void)
+{
+	platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
+	omap_board_config = sdp4430_config;
+	omap_board_config_size = ARRAY_SIZE(sdp4430_config);
+	omap_serial_init();
+
+}
+
+static void __init omap_4430sdp_map_io(void)
+{
+	omap2_set_globals_443x();
+	omap2_map_common_io();
+}
+
+MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board")
+	/* Maintainer: Santosh Shilimkar - Texas Instruments Inc */
+	.phys_io	= 0x48000000,
+	.io_pg_offst	= ((0xd8000000) >> 18) & 0xfffc,
+	.boot_params	= 0x80000100,
+	.map_io		= omap_4430sdp_map_io,
+	.init_irq	= omap_4430sdp_init_irq,
+	.init_machine	= omap_4430sdp_init,
+	.timer		= &omap_timer,
+MACHINE_END
diff --git a/arch/arm/plat-omap/include/mach/board-4430sdp.h b/arch/arm/plat-omap/include/mach/board-4430sdp.h
new file mode 100644
index 0000000..5296779
--- /dev/null
+++ b/arch/arm/plat-omap/include/mach/board-4430sdp.h
@@ -0,0 +1,28 @@ 
+/*
+ * Board support header for OMAP4430 SDP.
+ *
+ * Copyright (C) 2009 Texas Instruments
+ *
+ * Author: Santosh Shilimkar <santosh.shilimkar@ti.com>
+ *
+ * Based on arch/arm/plat-omap/include/mach/board-3430sdp.h
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#ifndef __ARCH_ARM_MACH_OMAP4_BOARD_4430SDP_H
+#define __ARCH_ARM_MACH_OMAP4_BOARD_4430SDP_H
+
+extern void sdp4430_flash_init(void);
+
+/* NAND */
+#define DEBUG_BASE		0x08000000 /* debug board */
+#define NAND_BASE		0x0C000000 /* NAND flash */
+#define ONENAND_MAP		0x20000000 /* OneNand flash */
+
+/* various memory sizes */
+#define FLASH_SIZE_SDPV1	SZ_64M
+#define FLASH_SIZE_SDPV2	SZ_128M
+#endif
+
diff --git a/arch/arm/plat-omap/include/mach/hardware.h b/arch/arm/plat-omap/include/mach/hardware.h
index 3dc423e..26c1fbf 100644
--- a/arch/arm/plat-omap/include/mach/hardware.h
+++ b/arch/arm/plat-omap/include/mach/hardware.h
@@ -285,5 +285,6 @@ 
 #include "omap16xx.h"
 #include "omap24xx.h"
 #include "omap34xx.h"
+#include "omap44xx.h"
 
 #endif	/* __ASM_ARCH_OMAP_HARDWARE_H */
diff --git a/arch/arm/plat-omap/include/mach/omap34xx.h b/arch/arm/plat-omap/include/mach/omap34xx.h
index ab64015..32f2bde 100644
--- a/arch/arm/plat-omap/include/mach/omap34xx.h
+++ b/arch/arm/plat-omap/include/mach/omap34xx.h
@@ -31,13 +31,9 @@ 
 
 #define L4_34XX_BASE		0x48000000
 #define L4_WK_34XX_BASE		0x48300000
-#define L4_WK_OMAP_BASE		L4_WK_34XX_BASE
 #define L4_PER_34XX_BASE	0x49000000
-#define L4_PER_OMAP_BASE	L4_PER_34XX_BASE
 #define L4_EMU_34XX_BASE	0x54000000
-#define L4_EMU_BASE		L4_EMU_34XX_BASE
 #define L3_34XX_BASE		0x68000000
-#define L3_OMAP_BASE		L3_34XX_BASE
 
 #define OMAP3430_32KSYNCT_BASE	0x48320000
 #define OMAP3430_CM_BASE	0x48004800
@@ -85,6 +81,10 @@ 
 
 #if defined(CONFIG_ARCH_OMAP3430)
 
+#define L4_WK_OMAP_BASE			L4_WK_34XX_BASE
+#define L4_PER_OMAP_BASE		L4_PER_34XX_BASE
+#define L4_EMU_BASE			L4_EMU_34XX_BASE
+#define L3_OMAP_BASE			L3_34XX_BASE
 #define OMAP2_32KSYNCT_BASE		OMAP3430_32KSYNCT_BASE
 #define OMAP2_CM_BASE			OMAP3430_CM_BASE
 #define OMAP2_PRM_BASE			OMAP3430_PRM_BASE
diff --git a/arch/arm/plat-omap/include/mach/omap44xx.h b/arch/arm/plat-omap/include/mach/omap44xx.h
new file mode 100644
index 0000000..7852ea6
--- /dev/null
+++ b/arch/arm/plat-omap/include/mach/omap44xx.h
@@ -0,0 +1,61 @@ 
+/*
+ * Address mappings and base address for OMAP4 interconnects
+ * and peripherals.
+ *
+ * Copyright (C) 2009 Texas Instruments
+ *
+ * Author: Santosh Shilimkar <santosh.shilimkar@ti.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#ifndef __ASM_ARCH_OMAP44XX_H
+#define __ASM_ARCH_OMAP44XX_H
+
+/*
+ * Please place only base defines here and put the rest in device
+ * specific headers.
+ */
+#define L4_44XX_BASE			0x4A000000
+#define L4_WK_44XX_BASE			0x4A300000
+#define L4_PER_44XX_BASE		0x48000000
+#define L4_EMU_44XX_BASE		0x54000000
+#define L3_44XX_BASE			0x44000000
+#define OMAP4430_32KSYNCT_BASE		0x4A304000
+#define OMAP4430_CM_BASE		0x4A004000
+#define OMAP4430_PRM_BASE		0x48306000
+#define OMAP44XX_GPMC_BASE		0x50000000
+#define OMAP443X_SCM_BASE		0x4A002000
+#define OMAP443X_CTRL_BASE		OMAP443X_SCM_BASE
+#define OMAP44XX_IC_BASE		0x48200000
+#define OMAP44XX_IVA_INTC_BASE		0x40000000
+#define IRQ_SIR_IRQ			0x0040
+#define	OMAP44XX_GIC_DIST_BASE		0x48241000
+#define OMAP44XX_GIC_CPU_BASE		0x48240100
+#define	OMAP44XX_VA_GIC_CPU_BASE	IO_ADDRESS(OMAP44XX_GIC_CPU_BASE)
+#define OMAP44XX_SCU_BASE		0x48240000
+#define OMAP44XX_VA_SCU_BASE		IO_ADDRESS(OMAP44XX_SCU_BASE)
+#define OMAP44XX_LOCAL_TWD_BASE		0x48240600
+#define OMAP44XX_VA_LOCAL_TWD_BASE	IO_ADDRESS(OMAP44XX_LOCAL_TWD_BASE)
+#define OMAP44XX_LOCAL_TWD_SIZE		0x00000100
+#define OMAP44XX_WKUPGEN_BASE		0x48281000
+#define OMAP44XX_VA_WKUPGEN_BASE	IO_ADDRESS(OMAP44XX_WKUPGEN_BASE)
+
+/* Common macros between OMAPs */
+
+#if defined(CONFIG_ARCH_OMAP44XX)
+
+#define L4_WK_OMAP_BASE			L4_WK_44XX_BASE
+#define L4_PER_OMAP_BASE		L4_PER_44XX_BASE
+#define L4_EMU_BASE			L4_EMU_44XX_BASE
+#define L3_OMAP_BASE			L3_44XX_BASE
+#define OMAP2_32KSYNCT_BASE		OMAP4430_32KSYNCT_BASE
+#define OMAP2_CM_BASE			OMAP4430_CM_BASE
+#define OMAP2_PRM_BASE			OMAP4430_PRM_BASE
+#define OMAP2_VA_IC_BASE		IO_ADDRESS(OMAP44XX_IC_BASE)
+
+#endif
+
+#endif /* __ASM_ARCH_OMAP44XX_H */
+