From: Ben Dooks <ben-linux@fluff.org>
To: Kukjin Kim <kgene.kim@samsung.com>
Cc: linux-samsung-soc@vger.kernel.org, ben-linux@fluff.org
Subject: Re: [PATCH v2 RE-SEND] ARM: S5P6440: Move common memory map definitions for S5P
Date: Wed, 27 Jan 2010 08:49:23 +0000 [thread overview]
Message-ID: <20100127084923.GF10014@trinity.fluff.org> (raw)
In-Reply-To: <1264579027-8016-1-git-send-email-kgene.kim@samsung.com>
On Wed, Jan 27, 2010 at 04:57:07PM +0900, Kukjin Kim wrote:
> 1. Moved common memory map definitions for S5P such as S5P_VA_XXX
> into plat-s5p/include/mach/map-s5p.h from mach-s5p6440/include/mach.
> 2. Removed unnecessary definitions in the map.h and irq.c
> 3. Removed the unnecessary support for unaligned UART address
> 4. Renamed S5P_VA_VICx definitions as VA_VICx
> 5. Moved the definitons of VIC_BASE to plat-s5p/include/plat/irqs.h
Ok, applied to next-samsung-s5p6440-move and merged to next-samsung
For future reference:
- It would be helpful to add why these changes areuseful
- Fixing the obvious problem with the s5p irq code would have been better
off being handled in a seperate patch.
> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
> ---
> arch/arm/mach-s5p6440/include/mach/debug-macro.S | 4 +-
> arch/arm/mach-s5p6440/include/mach/map.h | 65 ++++-----------------
> arch/arm/mach-s5p6440/include/mach/regs-clock.h | 2 +-
> arch/arm/mach-s5p6440/include/mach/tick.h | 2 +-
> arch/arm/mach-s5p6440/mach-smdk6440.c | 4 +-
> arch/arm/plat-s5p/cpu.c | 19 ++++---
> arch/arm/plat-s5p/include/plat/irqs.h | 2 +
> arch/arm/plat-s5p/include/plat/map-s5p.h | 32 +++++++++++
> arch/arm/plat-s5p/irq.c | 5 +-
> 9 files changed, 65 insertions(+), 70 deletions(-)
> create mode 100644 arch/arm/plat-s5p/include/plat/map-s5p.h
>
> diff --git a/arch/arm/mach-s5p6440/include/mach/debug-macro.S b/arch/arm/mach-s5p6440/include/mach/debug-macro.S
> index f3a5d16..48cdb0d 100644
> --- a/arch/arm/mach-s5p6440/include/mach/debug-macro.S
> +++ b/arch/arm/mach-s5p6440/include/mach/debug-macro.S
> @@ -22,8 +22,8 @@
> .macro addruart, rx
> mrc p15, 0, \rx, c1, c0
> tst \rx, #1
> - ldreq \rx, = S5P_PA_UART
> - ldrne \rx, = (S5P_VA_UART + S5P_PA_UART & 0xfffff)
> + ldreq \rx, = S3C_PA_UART
> + ldrne \rx, = S3C_VA_UART
> #if CONFIG_DEBUG_S3C_UART != 0
> add \rx, \rx, #(0x400 * CONFIG_DEBUG_S3C_UART)
> #endif
> diff --git a/arch/arm/mach-s5p6440/include/mach/map.h b/arch/arm/mach-s5p6440/include/mach/map.h
> index 4a73e73..8924e5a 100644
> --- a/arch/arm/mach-s5p6440/include/mach/map.h
> +++ b/arch/arm/mach-s5p6440/include/mach/map.h
> @@ -14,94 +14,55 @@
> #define __ASM_ARCH_MAP_H __FILE__
>
> #include <plat/map-base.h>
> +#include <plat/map-s5p.h>
>
> -/* Chip ID */
> #define S5P6440_PA_CHIPID (0xE0000000)
> #define S5P_PA_CHIPID S5P6440_PA_CHIPID
> -#define S5P_VA_CHIPID S3C_ADDR(0x00700000)
>
> -/* SYSCON */
> #define S5P6440_PA_SYSCON (0xE0100000)
> -#define S5P_PA_SYSCON S5P6440_PA_SYSCON
> -#define S5P_VA_SYSCON S3C_VA_SYS
> -
> #define S5P6440_PA_CLK (S5P6440_PA_SYSCON + 0x0)
> -#define S5P_PA_CLK S5P6440_PA_CLK
> -#define S5P_VA_CLK (S5P_VA_SYSCON + 0x0)
> +#define S5P_PA_SYSCON S5P6440_PA_SYSCON
>
> -/* GPIO */
> #define S5P6440_PA_GPIO (0xE0308000)
> #define S5P_PA_GPIO S5P6440_PA_GPIO
> -#define S5P_VA_GPIO S3C_ADDR(0x00500000)
>
> -/* VIC0 */
> #define S5P6440_PA_VIC0 (0xE4000000)
> #define S5P_PA_VIC0 S5P6440_PA_VIC0
> -#define S5P_VA_VIC0 (S3C_VA_IRQ + 0x0)
> -#define VA_VIC0 S5P_VA_VIC0
>
> -/* VIC1 */
> #define S5P6440_PA_VIC1 (0xE4100000)
> #define S5P_PA_VIC1 S5P6440_PA_VIC1
> -#define S5P_VA_VIC1 (S3C_VA_IRQ + 0x10000)
> -#define VA_VIC1 S5P_VA_VIC1
>
> -/* Timer */
> #define S5P6440_PA_TIMER (0xEA000000)
> #define S5P_PA_TIMER S5P6440_PA_TIMER
> -#define S5P_VA_TIMER S3C_VA_TIMER
>
> -/* RTC */
> #define S5P6440_PA_RTC (0xEA100000)
> #define S5P_PA_RTC S5P6440_PA_RTC
> -#define S5P_VA_RTC S3C_ADDR(0x00600000)
>
> -/* WDT */
> #define S5P6440_PA_WDT (0xEA200000)
> #define S5P_PA_WDT S5P6440_PA_WDT
> -#define S5p_VA_WDT S3C_VA_WATCHDOG
>
> -/* UART */
> #define S5P6440_PA_UART (0xEC000000)
> -#define S5P_PA_UART S5P6440_PA_UART
> -#define S5P_VA_UART S3C_VA_UART
>
> -/* HS USB OtG */
> +#define S5P_PA_UART0 (S5P6440_PA_UART + 0x0)
> +#define S5P_PA_UART1 (S5P6440_PA_UART + 0x400)
> +#define S5P_PA_UART2 (S5P6440_PA_UART + 0x800)
> +#define S5P_PA_UART3 (S5P6440_PA_UART + 0xC00)
> +
> +#define S5P_SZ_UART SZ_256
> +
> +#define S5P6440_PA_IIC0 (0xEC104000)
> +
> #define S5P6440_PA_HSOTG (0xED100000)
>
> -/* HSMMC */
> #define S5P6440_PA_HSMMC0 (0xED800000)
> #define S5P6440_PA_HSMMC1 (0xED900000)
> #define S5P6440_PA_HSMMC2 (0xEDA00000)
>
> -#define S5P_PA_UART0 (S5P_PA_UART + 0x0)
> -#define S5P_PA_UART1 (S5P_PA_UART + 0x400)
> -#define S5P_PA_UART2 (S5P_PA_UART + 0x800)
> -#define S5P_PA_UART3 (S5P_PA_UART + 0xC00)
> -#define S5P_UART_OFFSET (0x400)
> -
> -#define S5P_VA_UARTx(x) (S5P_VA_UART + (S5P_PA_UART & 0xfffff) \
> - + ((x) * S5P_UART_OFFSET))
> -
> -#define S5P_VA_UART0 S5P_VA_UARTx(0)
> -#define S5P_VA_UART1 S5P_VA_UARTx(1)
> -#define S5P_VA_UART2 S5P_VA_UARTx(2)
> -#define S5P_VA_UART3 S5P_VA_UARTx(3)
> -#define S5P_SZ_UART SZ_256
> -
> -/* I2C */
> -#define S5P6440_PA_IIC0 (0xEC104000)
> -#define S5P_PA_IIC0 S5P6440_PA_IIC0
> -#define S5p_VA_IIC0 S3C_ADDR(0x00700000)
> -
> -/* SDRAM */
> #define S5P6440_PA_SDRAM (0x20000000)
> #define S5P_PA_SDRAM S5P6440_PA_SDRAM
>
> /* compatibiltiy defines. */
> -#define S3C_PA_UART S5P_PA_UART
> -#define S3C_UART_OFFSET S5P_UART_OFFSET
> -#define S3C_PA_TIMER S5P_PA_TIMER
> -#define S3C_PA_IIC S5P_PA_IIC0
> +#define S3C_PA_UART S5P6440_PA_UART
> +#define S3C_PA_IIC S5P6440_PA_IIC0
>
> #endif /* __ASM_ARCH_MAP_H */
> diff --git a/arch/arm/mach-s5p6440/include/mach/regs-clock.h b/arch/arm/mach-s5p6440/include/mach/regs-clock.h
> index b7af283..c783ecc 100644
> --- a/arch/arm/mach-s5p6440/include/mach/regs-clock.h
> +++ b/arch/arm/mach-s5p6440/include/mach/regs-clock.h
> @@ -15,7 +15,7 @@
>
> #include <mach/map.h>
>
> -#define S5P_CLKREG(x) (S5P_VA_CLK + (x))
> +#define S5P_CLKREG(x) (S3C_VA_SYS + (x))
>
> #define S5P_APLL_LOCK S5P_CLKREG(0x00)
> #define S5P_MPLL_LOCK S5P_CLKREG(0x04)
> diff --git a/arch/arm/mach-s5p6440/include/mach/tick.h b/arch/arm/mach-s5p6440/include/mach/tick.h
> index 0815aeb..2f25c7f 100644
> --- a/arch/arm/mach-s5p6440/include/mach/tick.h
> +++ b/arch/arm/mach-s5p6440/include/mach/tick.h
> @@ -15,7 +15,7 @@
>
> static inline u32 s3c24xx_ostimer_pending(void)
> {
> - u32 pend = __raw_readl(S5P_VA_VIC0 + VIC_RAW_STATUS);
> + u32 pend = __raw_readl(VA_VIC0 + VIC_RAW_STATUS);
> return pend & (1 << (IRQ_TIMER4_VIC - S5P_IRQ_VIC0(0)));
> }
>
> diff --git a/arch/arm/mach-s5p6440/mach-smdk6440.c b/arch/arm/mach-s5p6440/mach-smdk6440.c
> index 760ea54..3ae88f2 100644
> --- a/arch/arm/mach-s5p6440/mach-smdk6440.c
> +++ b/arch/arm/mach-s5p6440/mach-smdk6440.c
> @@ -100,8 +100,8 @@ static void __init smdk6440_machine_init(void)
>
> MACHINE_START(SMDK6440, "SMDK6440")
> /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */
> - .phys_io = S5P_PA_UART & 0xfff00000,
> - .io_pg_offst = (((u32)S5P_VA_UART) >> 18) & 0xfffc,
> + .phys_io = S3C_PA_UART & 0xfff00000,
> + .io_pg_offst = (((u32)S3C_VA_UART) >> 18) & 0xfffc,
> .boot_params = S5P_PA_SDRAM + 0x100,
>
> .init_irq = s5p6440_init_irq,
> diff --git a/arch/arm/plat-s5p/cpu.c b/arch/arm/plat-s5p/cpu.c
> index 0895a77..ee9c6b3 100644
> --- a/arch/arm/plat-s5p/cpu.c
> +++ b/arch/arm/plat-s5p/cpu.c
> @@ -37,31 +37,34 @@ static struct cpu_table cpu_ids[] __initdata = {
>
> /* minimal IO mapping */
>
> -#define UART_OFFS (S5P_PA_UART & 0xfffff)
> -
> static struct map_desc s5p_iodesc[] __initdata = {
> {
> - .virtual = (unsigned long)S5P_VA_SYSCON,
> + .virtual = (unsigned long)S5P_VA_CHIPID,
> + .pfn = __phys_to_pfn(S5P_PA_CHIPID),
> + .length = SZ_4K,
> + .type = MT_DEVICE,
> + }, {
> + .virtual = (unsigned long)S3C_VA_SYS,
> .pfn = __phys_to_pfn(S5P_PA_SYSCON),
> .length = SZ_64K,
> .type = MT_DEVICE,
> }, {
> - .virtual = (unsigned long)(S5P_VA_UART + UART_OFFS),
> - .pfn = __phys_to_pfn(S5P_PA_UART),
> + .virtual = (unsigned long)S3C_VA_UART,
> + .pfn = __phys_to_pfn(S3C_PA_UART),
> .length = SZ_4K,
> .type = MT_DEVICE,
> }, {
> - .virtual = (unsigned long)S5P_VA_VIC0,
> + .virtual = (unsigned long)VA_VIC0,
> .pfn = __phys_to_pfn(S5P_PA_VIC0),
> .length = SZ_16K,
> .type = MT_DEVICE,
> }, {
> - .virtual = (unsigned long)S5P_VA_VIC1,
> + .virtual = (unsigned long)VA_VIC1,
> .pfn = __phys_to_pfn(S5P_PA_VIC1),
> .length = SZ_16K,
> .type = MT_DEVICE,
> }, {
> - .virtual = (unsigned long)S5P_VA_TIMER,
> + .virtual = (unsigned long)S3C_VA_TIMER,
> .pfn = __phys_to_pfn(S5P_PA_TIMER),
> .length = SZ_16K,
> .type = MT_DEVICE,
> diff --git a/arch/arm/plat-s5p/include/plat/irqs.h b/arch/arm/plat-s5p/include/plat/irqs.h
> index 5d7937d..878acfe 100644
> --- a/arch/arm/plat-s5p/include/plat/irqs.h
> +++ b/arch/arm/plat-s5p/include/plat/irqs.h
> @@ -29,6 +29,8 @@
> #define S5P_VIC0_BASE S5P_IRQ(0)
> #define S5P_VIC1_BASE S5P_IRQ(32)
>
> +#define VIC_BASE(x) (S5P_VIC0_BASE + ((x)*32))
> +
> #define IRQ_VIC0_BASE S5P_VIC0_BASE
> #define IRQ_VIC1_BASE S5P_VIC1_BASE
>
> diff --git a/arch/arm/plat-s5p/include/plat/map-s5p.h b/arch/arm/plat-s5p/include/plat/map-s5p.h
> new file mode 100644
> index 0000000..3a10f8d
> --- /dev/null
> +++ b/arch/arm/plat-s5p/include/plat/map-s5p.h
> @@ -0,0 +1,32 @@
> +/* linux/arch/arm/plat-s5p/include/plat/map-s5p.h
> + *
> + * Copyright (c) 2010 Samsung Electronics Co., Ltd.
> + * http://www.samsung.com/
> + *
> + * S5P - Memory map definitions
> + *
> + * 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_PLAT_MAP_S5P_H
> +#define __ASM_PLAT_MAP_S5P_H __FILE__
> +
> +#define S5P_VA_CHIPID S3C_ADDR(0x00700000)
> +#define S5P_VA_GPIO S3C_ADDR(0x00500000)
> +#define S5P_VA_SYSTIMER S3C_ADDR(0x01200000)
> +#define S5P_VA_SROMC S3C_ADDR(0x01100000)
> +
> +#define S5P_VA_UART0 (S3C_VA_UART + 0x0)
> +#define S5P_VA_UART1 (S3C_VA_UART + 0x400)
> +#define S5P_VA_UART2 (S3C_VA_UART + 0x800)
> +#define S5P_VA_UART3 (S3C_VA_UART + 0xC00)
> +
> +#define S3C_UART_OFFSET (0x400)
> +
> +#define VA_VIC(x) (S3C_VA_IRQ + ((x) * 0x10000))
> +#define VA_VIC0 VA_VIC(0)
> +#define VA_VIC1 VA_VIC(1)
> +
> +#endif /* __ASM_PLAT_MAP_S5P_H */
> diff --git a/arch/arm/plat-s5p/irq.c b/arch/arm/plat-s5p/irq.c
> index eada40d..11535a5 100644
> --- a/arch/arm/plat-s5p/irq.c
> +++ b/arch/arm/plat-s5p/irq.c
> @@ -25,9 +25,6 @@
> #include <plat/irq-vic-timer.h>
> #include <plat/irq-uart.h>
>
> -#define VIC_VAADDR(no) (S5P_VA_VIC0 + ((no)*0x10000))
> -#define VIC_BASE(no) (S5P_VIC0_BASE + ((no)*32))
> -
> /*
> * Note, we make use of the fact that the parent IRQs, IRQ_UART[0..3]
> * are consecutive when looking up the interrupt in the demux routines.
> @@ -61,7 +58,7 @@ void __init s5p_init_irq(u32 *vic, u32 num_vic)
>
> /* initialize the VICs */
> for (irq = 0; irq < num_vic; irq++)
> - vic_init(VIC_VAADDR(irq), VIC_BASE(irq), vic[irq], 0);
> + vic_init(VA_VIC(irq), VIC_BASE(irq), vic[irq], 0);
>
> s3c_init_vic_timer_irq(IRQ_TIMER0_VIC, IRQ_TIMER0);
> s3c_init_vic_timer_irq(IRQ_TIMER1_VIC, IRQ_TIMER1);
> --
> 1.6.2.5
>
--
--
Ben
Q: What's a light-year?
A: One-third less calories than a regular year.
prev parent reply other threads:[~2010-01-27 8:49 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-27 7:57 [PATCH v2 RE-SEND] ARM: S5P6440: Move common memory map definitions for S5P Kukjin Kim
2010-01-27 8:49 ` Ben Dooks [this message]
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=20100127084923.GF10014@trinity.fluff.org \
--to=ben-linux@fluff.org \
--cc=kgene.kim@samsung.com \
--cc=linux-samsung-soc@vger.kernel.org \
/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.