From: Tony Lindgren <tony@atomide.com>
To: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: linux-omap@vger.kernel.org
Subject: Re: [PATCH 2/7][RFC] OMAP4: Create board support for OMAP_4430SDP.
Date: Tue, 21 Apr 2009 11:14:28 -0700 [thread overview]
Message-ID: <20090421181428.GI25864@atomide.com> (raw)
In-Reply-To: <1240319293-19662-2-git-send-email-santosh.shilimkar@ti.com>
* 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
next prev parent reply other threads:[~2009-04-21 18:14 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-21 13:08 [PATCH 1/7][RFC] OMAP4: Create architecture macros and config entries Santosh Shilimkar
2009-04-21 13:08 ` [PATCH 2/7][RFC] OMAP4: Create board support for OMAP_4430SDP Santosh Shilimkar
2009-04-21 13:08 ` [PATCH 3/7][RFC] OMAP4: Update common omap platform headers Santosh Shilimkar
2009-04-21 13:08 ` [PATCH 4/7][RFC] OMAP4: Update common omap platform common sources Santosh Shilimkar
2009-04-21 13:08 ` [PATCH 5/7][RFC] OMAP4: Update common omap machine specific sources Santosh Shilimkar
2009-04-21 13:08 ` [PATCH 6/7][RFC] OMAP4: Clock hack since clock management framework not in Santosh Shilimkar
2009-04-21 13:08 ` [PATCH 7/7][RFC] OMAP4: Enable basic build support Santosh Shilimkar
2009-04-21 18:39 ` Tony Lindgren
2009-04-22 4:55 ` Shilimkar, Santosh
2009-04-22 19:04 ` [PATCH] ARM: OMAP2/3: Reorganize Makefile to add omap4 support (Re: [PATCH 7/7][RFC] OMAP4: Enable basic build support.) Tony Lindgren
2009-04-23 5:07 ` Shilimkar, Santosh
2009-04-23 6:21 ` Tony Lindgren
2009-04-23 6:30 ` Shilimkar, Santosh
2009-04-21 18:37 ` [PATCH 6/7][RFC] OMAP4: Clock hack since clock management framework not in Tony Lindgren
2009-04-21 13:24 ` [PATCH 5/7][RFC] OMAP4: Update common omap machine specific sources Dasgupta, Romit
2009-04-21 16:23 ` Kevin Hilman
2009-04-21 18:36 ` Tony Lindgren
2009-04-22 4:40 ` Shilimkar, Santosh
2009-04-21 13:21 ` [PATCH 4/7][RFC] OMAP4: Update common omap platform common sources Premi, Sanjeev
2009-04-21 13:34 ` Shilimkar, Santosh
2009-04-21 13:38 ` Shilimkar, Santosh
2009-04-21 18:33 ` Tony Lindgren
2009-04-21 18:26 ` [PATCH 3/7][RFC] OMAP4: Update common omap platform headers Tony Lindgren
2009-04-22 4:10 ` Shilimkar, Santosh
2009-04-22 19:11 ` Tony Lindgren
2009-04-23 5:17 ` Shilimkar, Santosh
2009-04-23 6:22 ` Tony Lindgren
2009-04-21 18:14 ` Tony Lindgren [this message]
2009-04-22 4:47 ` [PATCH 2/7][RFC] OMAP4: Create board support for OMAP_4430SDP Shilimkar, Santosh
2009-04-21 16:41 ` [PATCH 1/7][RFC] OMAP4: Create architecture macros and config entries Kevin Hilman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090421181428.GI25864@atomide.com \
--to=tony@atomide.com \
--cc=linux-omap@vger.kernel.org \
--cc=santosh.shilimkar@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox