public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
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

  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