All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: "Syed Mohammed, Khasim" <x0khasim@ti.com>
Cc: Linux OMAP <linux-omap-open-source@linux.omap.com>
Subject: Re: [PATCH 5/11] Adding OMAP3430 support to mach-omap2
Date: Tue, 29 May 2007 09:49:00 -0700	[thread overview]
Message-ID: <20070529164859.GA26322@atomide.com> (raw)
In-Reply-To: <9C23CDD79DA20A479D4615857B2E2C47FF0E31@dlee13.ent.ti.com>

* Syed Mohammed, Khasim <x0khasim@ti.com> [070528 23:26]:
> Adding OMAP 3430 support to arch/arm/mach-omap2
> 
> Signed-off-by: Syed Mohammed Khasim  <x0khasim@ti.com>
> 
> Files Changed:
>  Kconfig      |   14
>  Makefile     |    6
>  clock.h      |    1
>  clock_34xx.c | 1255 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

<snip>

Well clock_34xx.c can be merged to existing clock.c. With Pau's PRCM
patches, only few registers are different now.


> diff -purN linux-omap/arch/arm/mach-omap2/gpmc.c val_3430_GIT/arch/arm/mach-omap2/gpmc.c
> --- linux-omap/arch/arm/mach-omap2/gpmc.c	2007-05-16 14:32:40.000000000 -0500
> +++ val_3430_GIT/arch/arm/mach-omap2/gpmc.c	2007-05-28 12:47:13.000000000 -0500
> @@ -22,12 +22,12 @@
>  
>  #undef DEBUG
>  
> -#ifdef CONFIG_ARCH_OMAP2420
> +#if defined(CONFIG_ARCH_OMAP2420)
>  #define GPMC_BASE		0x6800a000
> -#endif
> -
> -#ifdef CONFIG_ARCH_OMAP2430
> -#define GPMC_BASE		0x6E000000
> +#elif defined(CONFIG_ARCH_OMAP2430)
> +#define GPMC_BASE		0x6e000000
> +#elif defined(CONFIG_ARCH_OMAP3430)
> +#define GPMC_BASE		0x6e000000
>  #endif
>  
>  #define GPMC_REVISION		0x00

The above should be defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3430)


> diff -purN linux-omap/arch/arm/mach-omap2/id.c val_3430_GIT/arch/arm/mach-omap2/id.c
> --- linux-omap/arch/arm/mach-omap2/id.c	2006-11-20 21:54:01.000000000 -0600
> +++ val_3430_GIT/arch/arm/mach-omap2/id.c	2007-05-28 12:47:13.000000000 -0500
> @@ -18,11 +18,11 @@
>  #include <asm/io.h>
>  
>  #if defined(CONFIG_ARCH_OMAP2420)
> -#define OMAP24XX_TAP_BASE	io_p2v(0x48014000)
> -#endif
> -
> -#if defined(CONFIG_ARCH_OMAP2430)
> -#define OMAP24XX_TAP_BASE	io_p2v(0x4900A000)
> +#define TAP_BASE	io_p2v(0x48014000)
> +#elif defined(CONFIG_ARCH_OMAP2430)
> +#define TAP_BASE	io_p2v(0x4900A000)
> +#elif defined(CONFIG_ARCH_OMAP34XX)
> +#define TAP_BASE	io_p2v(0x54004000)
>  #endif
>  
>  #define OMAP_TAP_IDCODE		0x0204
> @@ -58,7 +58,7 @@ static struct omap_id omap_ids[] __initd
>  
>  static u32 __init read_tap_reg(int reg)
>  {
> -	return __raw_readl(OMAP24XX_TAP_BASE + reg);
> +	return __raw_readl(TAP_BASE + reg);
>  }
>  
>  void __init omap2_check_revision(void)
> @@ -119,7 +119,11 @@ void __init omap2_check_revision(void)
>  	system_rev |= rev << 8;
>  
>  	/* Add the cpu class info (24xx) */
> +#ifndef CONFIG_ARCH_OMAP3
>  	system_rev |= 0x24;
> +#else
> +	system_rev |= 0x34;
> +#endif
>  
>  	pr_info("OMAP%04x", system_rev >> 16);
>  	if ((system_rev >> 8) & 0x0f)

This is yet another artificial barrier to compile in many revisions,
let's try to avoid that. You should be able to set system_rev based
on the hardware register values.


> diff -purN linux-omap/arch/arm/mach-omap2/io.c val_3430_GIT/arch/arm/mach-omap2/io.c
> --- linux-omap/arch/arm/mach-omap2/io.c	2007-05-16 14:32:40.000000000 -0500
> +++ val_3430_GIT/arch/arm/mach-omap2/io.c	2007-05-28 13:12:04.000000000 -0500
> @@ -4,8 +4,11 @@
>   * OMAP2 I/O mapping code
>   *
>   * Copyright (C) 2005 Nokia Corporation
> - * Author: Juha Yrjola<juha.yrjola@nokia.com>
> - * Updated map desc to add 2430 support : <x0khasim@ti.com>
> + * Copyright (C) 2007 Texas Instruments
> + *
> + * Author:
> + * Juha Yrjola <juha.yrjola@nokia.com>
> + * Syed Khasim <x0khasim@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
> @@ -31,36 +34,104 @@ extern void omap2_init_memory(void);
>  extern void gpmc_init(void);
>  extern void omapfb_reserve_sdram(void);
>  
> +#if defined(CONFIG_ARCH_OMAP24XX)
> +
> +#define L3_VIRT		L3_24XX_VIRT
> +#define L3_PHYS		L3_24XX_PHYS
> +#define L3_SIZE		L3_24XX_SIZE
> +
> +#define L4_VIRT		L4_24XX_VIRT
> +#define L4_PHYS		L4_24XX_PHYS
> +#define L4_SIZE		L4_24XX_SIZE
> +
> +#define L4_WK_VIRT	L4_WK_243X_VIRT
> +#define L4_WK_PHYS	L4_WK_243X_PHYS
> +#define L4_WK_SIZE	L4_WK_243X_SIZE
> +
> +#define GPMC_VIRT	OMAP243X_GPMC_VIRT
> +#define GPMC_PHYS	OMAP243X_GPMC_PHYS
> +#define GPMC_SIZE	OMAP243X_GPMC_SIZE
> +
> +#define DSP_MEM_VIRT	DSP_MEM_24XX_VIRT
> +#define DSP_MEM_PHYS	DSP_MEM_24XX_PHYS
> +#define DSP_MEM_SIZE	DSP_MEM_24XX_SIZE
> +
> +#define DSP_IPI_VIRT	DSP_IPI_24XX_VIRT
> +#define DSP_IPI_PHYS	DSP_IPI_24XX_PHYS
> +#define DSP_IPI_SIZE	DSP_IPI_24XX_SIZE
> +
> +#define DSP_MMU_VIRT	DSP_MMU_24XX_VIRT
> +#define DSP_MMU_PHYS	DSP_MMU_24XX_PHYS
> +#define DSP_MMU_SIZE	DSP_MMU_24XX_SIZE
> +
> +#elif defined(CONFIG_ARCH_OMAP34XX)
> +
> +#define L3_VIRT		L3_34XX_VIRT
> +#define L3_PHYS		L3_34XX_PHYS
> +#define L3_SIZE		L3_34XX_SIZE
> +
> +#define L4_VIRT		L4_34XX_VIRT
> +#define L4_PHYS		L4_34XX_PHYS
> +#define L4_SIZE		L4_34XX_SIZE
> +
> +#define L4_PER_VIRT	L4_PER_34XX_VIRT
> +#define L4_PER_PHYS	L4_PER_34XX_PHYS
> +#define L4_PER_SIZE	L4_PER_34XX_SIZE
> +
> +#define L4_WK_VIRT	L4_WK_34XX_VIRT
> +#define L4_WK_PHYS	L4_WK_34XX_PHYS
> +#define L4_WK_SIZE	L4_WK_34XX_SIZE
> +
> +#define GPMC_VIRT	OMAP34XX_GPMC_VIRT
> +#define GPMC_PHYS	OMAP34XX_GPMC_PHYS
> +#define GPMC_SIZE	OMAP34XX_GPMC_SIZE
> +
> +#define DSP_MEM_VIRT	DSP_MEM_34XX_VIRT
> +#define DSP_MEM_PHYS	DSP_MEM_34XX_PHYS
> +#define DSP_MEM_SIZE	DSP_MEM_34XX_SIZE
> +
> +#define DSP_IPI_VIRT	DSP_IPI_34XX_VIRT
> +#define DSP_IPI_PHYS	DSP_IPI_34XX_PHYS
> +#define DSP_IPI_SIZE	DSP_IPI_34XX_SIZE
> +
> +#define DSP_MMU_VIRT	DSP_MMU_34XX_VIRT
> +#define DSP_MMU_PHYS	DSP_MMU_34XX_PHYS
> +#define DSP_MMU_SIZE	DSP_MMU_34XX_SIZE
> +
> +#endif

Let's rather change the #elif to #if to potentially compile in both
(altought unoptimized). I guess that also means changing L3_VIRT to be
L3_VIRT_34XX and so on.


> diff -purN linux-omap/arch/arm/mach-omap2/irq.c val_3430_GIT/arch/arm/mach-omap2/irq.c
> --- linux-omap/arch/arm/mach-omap2/irq.c	2007-01-08 18:55:58.000000000 -0600
> +++ val_3430_GIT/arch/arm/mach-omap2/irq.c	2007-05-28 12:47:13.000000000 -0500
> @@ -18,6 +18,12 @@
>  #include <asm/irq.h>
>  #include <asm/io.h>
>  
> +#if defined(CONFIG_ARCH_OMAP24XX)
> +#define IC_BASE		OMAP24XX_IC_BASE
> +#elif defined(CONFIG_ARCH_OMAP34XX)
> +#define IC_BASE		OMAP34XX_IC_BASE
> +#endif
> +
>  #define INTC_REVISION	0x0000
>  #define INTC_SYSCONFIG	0x0010
>  #define INTC_SYSSTATUS	0x0014
> @@ -37,7 +43,7 @@ static struct omap_irq_bank {
>  } __attribute__ ((aligned(4))) irq_banks[] = {
>  	{
>  		/* MPU INTC */
> -		.base_reg	= IO_ADDRESS(OMAP24XX_IC_BASE),
> +		.base_reg	= IO_ADDRESS(IC_BASE),
>  		.nr_irqs	= 96,
>  	}, {
>  		/* XXX: DSP INTC */

the .base_reg should be really set with if (cpu_is_omap24xx()) 
during the initialization to allow compiling in them both. Then the
#elif above can be just #if.

Regards,

Tony

  reply	other threads:[~2007-05-29 16:49 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-29  6:21 [PATCH 5/11] Adding OMAP3430 support to mach-omap2 Syed Mohammed, Khasim
2007-05-29 16:49 ` Tony Lindgren [this message]
2007-05-29 17:33   ` Syed Mohammed, Khasim
2007-05-29 18:16     ` Tony Lindgren
2007-05-29 19:49   ` Syed Mohammed, Khasim
2007-05-29 20:23     ` Tony Lindgren
2007-05-30 17:02 ` Khem Raj
2007-05-31  1:01   ` Nishanth Menon
2007-05-31  3:29     ` Syed Mohammed, Khasim

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=20070529164859.GA26322@atomide.com \
    --to=tony@atomide.com \
    --cc=linux-omap-open-source@linux.omap.com \
    --cc=x0khasim@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.