From: "stanley.miao" <stanley.miao@windriver.com>
To: Viresh KUMAR <viresh.kumar@st.com>
Cc: pratyush.anand@st.com, vipulkumar.samar@st.com,
bhupesh.sharma@st.com, armando.visconti@st.com,
dmitry.torokhov@gmail.com, Vipin Kumar <vipin.kumar@st.com>,
shiraz.hashim@st.com, rajeev-dlh.kumar@st.com,
linux-mtd@lists.infradead.org, deepak.sikri@st.com,
dwmw2@infradead.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH V2 28/69] ST SPEAr: Adding machine support for nand
Date: Sun, 28 Nov 2010 14:27:28 +0800 [thread overview]
Message-ID: <4CF1F650.8080505@windriver.com> (raw)
In-Reply-To: <1076320a0194c19ef0b4beefdf3c43a44e200439.1285933331.git.viresh.kumar@st.com>
Hi, Viresh,
It looked you missed the file include/mtd/fsmc.h in this patch.
Stanley.
Viresh KUMAR wrote:
> From: Vipin Kumar <vipin.kumar@st.com>
>
> Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
> Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
> Signed-off-by: Shiraz Hashim <shiraz.hashim@st.com>
> Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
> ---
> arch/arm/mach-spear13xx/include/mach/generic.h | 2 +
> arch/arm/mach-spear13xx/include/mach/misc_regs.h | 10 ++
> arch/arm/mach-spear13xx/spear1300_evb.c | 9 ++
> arch/arm/mach-spear13xx/spear13xx.c | 58 +++++++++++++
> arch/arm/mach-spear3xx/include/mach/generic.h | 15 ++--
> arch/arm/mach-spear3xx/include/mach/spear320.h | 3 +
> arch/arm/mach-spear3xx/spear300.c | 98 ++++++++++++++++++++++
> arch/arm/mach-spear3xx/spear300_evb.c | 8 ++
> arch/arm/mach-spear3xx/spear310.c | 26 ++++++
> arch/arm/mach-spear3xx/spear310_evb.c | 8 ++
> arch/arm/mach-spear3xx/spear320.c | 26 ++++++
> arch/arm/mach-spear3xx/spear320_evb.c | 8 ++
> arch/arm/mach-spear6xx/include/mach/generic.h | 1 +
> arch/arm/mach-spear6xx/spear600_evb.c | 8 ++
> arch/arm/mach-spear6xx/spear6xx.c | 26 ++++++
> arch/arm/plat-spear/include/plat/fsmc.h | 36 ++++++++
> 16 files changed, 336 insertions(+), 6 deletions(-)
> create mode 100644 arch/arm/plat-spear/include/plat/fsmc.h
>
> diff --git a/arch/arm/mach-spear13xx/include/mach/generic.h b/arch/arm/mach-spear13xx/include/mach/generic.h
> index 960ff06..745dd99 100644
> --- a/arch/arm/mach-spear13xx/include/mach/generic.h
> +++ b/arch/arm/mach-spear13xx/include/mach/generic.h
> @@ -35,6 +35,7 @@ extern struct platform_device spear13xx_ehci0_device;
> extern struct platform_device spear13xx_ehci1_device;
> extern struct platform_device spear13xx_i2c_device;
> extern struct platform_device spear13xx_kbd_device;
> +extern struct platform_device spear13xx_nand_device;
> extern struct platform_device spear13xx_ohci0_device;
> extern struct platform_device spear13xx_ohci1_device;
> extern struct platform_device spear13xx_rtc_device;
> @@ -51,6 +52,7 @@ void __init spear1300_init(void);
> void __init spear13xx_map_io(void);
> void __init spear13xx_init_irq(void);
> void __init spear13xx_init(void);
> +void __init nand_mach_init(u32 busw);
> void spear13xx_secondary_startup(void);
>
> #endif /* __MACH_GENERIC_H */
> diff --git a/arch/arm/mach-spear13xx/include/mach/misc_regs.h b/arch/arm/mach-spear13xx/include/mach/misc_regs.h
> index a8a1119..e6823db 100644
> --- a/arch/arm/mach-spear13xx/include/mach/misc_regs.h
> +++ b/arch/arm/mach-spear13xx/include/mach/misc_regs.h
> @@ -210,6 +210,16 @@
> #define CF_MMC_ACTIVE 0x2
> #define XD_MMC_ACTIVE 0x3
> #define FSMC_CFG ((unsigned int *)(MISC_BASE + 0x330))
> + /* FSMC_CFG register masks */
> + #define FSMC_MEMSEL_MASK 0x3
> + #define FSMC_MEMSEL_SHIFT 0
> + #define FSMC_MEM_NOR 0
> + #define FSMC_MEM_NAND 1
> + #define FSMC_MEM_SRAM 2
> + #define NAND_BANK_MASK 0x3
> + #define NAND_BANK_SHIFT 2
> + #define NAND_DEV_WIDTH16 4
> +
> #define MPMC_CTR_STS ((unsigned int *)(MISC_BASE + 0x334))
>
> /* Inter-Processor Communication Registers */
> diff --git a/arch/arm/mach-spear13xx/spear1300_evb.c b/arch/arm/mach-spear13xx/spear1300_evb.c
> index 1e637fa..56a4294 100644
> --- a/arch/arm/mach-spear13xx/spear1300_evb.c
> +++ b/arch/arm/mach-spear13xx/spear1300_evb.c
> @@ -12,11 +12,14 @@
> */
>
> #include <linux/types.h>
> +#include <linux/mtd/nand.h>
> +#include <mtd/fsmc.h>
> #include <asm/mach/arch.h>
> #include <asm/mach-types.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> #include <plat/keyboard.h>
> +#include <plat/fsmc.h>
> #include <plat/smi.h>
>
> static struct amba_device *amba_devs[] __initdata = {
> @@ -30,6 +33,7 @@ static struct platform_device *plat_devs[] __initdata = {
> &spear13xx_ehci1_device,
> &spear13xx_i2c_device,
> &spear13xx_kbd_device,
> + &spear13xx_nand_device,
> &spear13xx_ohci0_device,
> &spear13xx_ohci1_device,
> &spear13xx_rtc_device,
> @@ -52,6 +56,11 @@ static void __init spear1300_evb_init(void)
> /* set keyboard plat data */
> kbd_set_plat_data(&spear13xx_kbd_device, &kbd_data);
>
> + /* set nand device's plat data */
> + fsmc_nand_set_plat_data(&spear13xx_nand_device, NULL, 0,
> + NAND_SKIP_BBTSCAN, FSMC_NAND_BW8);
> + nand_mach_init(FSMC_NAND_BW8);
> +
> /* call spear1300 machine init function */
> spear1300_init();
>
> diff --git a/arch/arm/mach-spear13xx/spear13xx.c b/arch/arm/mach-spear13xx/spear13xx.c
> index f7d30a9..55d654f 100644
> --- a/arch/arm/mach-spear13xx/spear13xx.c
> +++ b/arch/arm/mach-spear13xx/spear13xx.c
> @@ -15,6 +15,7 @@
> #include <linux/amba/pl061.h>
> #include <linux/ptrace.h>
> #include <linux/io.h>
> +#include <mtd/fsmc.h>
> #include <asm/hardware/gic.h>
> #include <asm/irq.h>
> #include <asm/localtimer.h>
> @@ -23,6 +24,7 @@
> #include <mach/irqs.h>
> #include <mach/generic.h>
> #include <mach/hardware.h>
> +#include <mach/misc_regs.h>
>
> /* Add spear13xx machines common devices here */
> /* gpio device registeration */
> @@ -97,6 +99,62 @@ struct platform_device spear13xx_i2c_device = {
> .resource = i2c_resources,
> };
>
> +/* nand device registeration */
> +void __init nand_mach_init(u32 busw)
> +{
> + u32 fsmc_cfg = readl(FSMC_CFG);
> + fsmc_cfg &= ~(FSMC_MEMSEL_MASK << FSMC_MEMSEL_SHIFT);
> + fsmc_cfg |= (FSMC_MEM_NAND << FSMC_MEMSEL_SHIFT);
> +
> + if (busw == FSMC_NAND_BW16)
> + fsmc_cfg |= 1 << NAND_DEV_WIDTH16;
> + else
> + fsmc_cfg &= ~(1 << NAND_DEV_WIDTH16);
> +
> + writel(fsmc_cfg, FSMC_CFG);
> +}
> +
> +static void nand_select_bank(u32 bank, u32 busw)
> +{
> + u32 fsmc_cfg = readl(FSMC_CFG);
> +
> + fsmc_cfg &= ~(NAND_BANK_MASK << NAND_BANK_SHIFT);
> + fsmc_cfg |= (bank << NAND_BANK_SHIFT);
> +
> + if (busw)
> + fsmc_cfg |= 1 << NAND_DEV_WIDTH16;
> + else
> + fsmc_cfg &= ~(1 << NAND_DEV_WIDTH16);
> +
> + writel(fsmc_cfg, FSMC_CFG);
> +}
> +
> +static struct fsmc_nand_platform_data nand_platform_data = {
> + .select_bank = nand_select_bank,
> +};
> +
> +static struct resource nand_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR13XX_FSMC_MEM_BASE,
> + .end = SPEAR13XX_FSMC_MEM_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR13XX_FSMC_BASE,
> + .end = SPEAR13XX_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device spear13xx_nand_device = {
> + .name = "nand",
> + .id = -1,
> + .resource = nand_resources,
> + .num_resources = ARRAY_SIZE(nand_resources),
> + .dev.platform_data = &nand_platform_data,
> +};
> +
> /* usb host device registeration */
> static struct resource ehci0_resources[] = {
> [0] = {
> diff --git a/arch/arm/mach-spear3xx/include/mach/generic.h b/arch/arm/mach-spear3xx/include/mach/generic.h
> index 91c0c09..6aac229 100644
> --- a/arch/arm/mach-spear3xx/include/mach/generic.h
> +++ b/arch/arm/mach-spear3xx/include/mach/generic.h
> @@ -111,6 +111,10 @@ extern struct pmx_driver pmx_driver;
> extern struct amba_device clcd_device;
> extern struct amba_device gpio1_device;
> extern struct platform_device kbd_device;
> +extern struct platform_device nand0_device;
> +extern struct platform_device nand1_device;
> +extern struct platform_device nand2_device;
> +extern struct platform_device nand3_device;
>
> /* pad mux modes */
> extern struct pmx_mode nand_mode;
> @@ -148,12 +152,12 @@ void __init spear300_init(void);
>
> /* Add misc structure declarations here */
> extern struct clcd_board clcd_plat_data;
> -#endif /* CONFIG_MACH_SPEAR300 */
>
> /* spear310 declarations */
> -#ifdef CONFIG_MACH_SPEAR310
> +#elif defined(CONFIG_MACH_SPEAR310)
> /* Add spear310 machine device structure declarations here */
> extern struct platform_device plgpio_device;
> +extern struct platform_device nand_device;
>
> /* pad mux devices */
> extern struct pmx_dev pmx_emi_cs_0_1_4_5;
> @@ -168,13 +172,12 @@ extern struct pmx_dev pmx_tdm0;
> /* Add spear310 machine function declarations here */
> void __init spear310_init(void);
>
> -#endif /* CONFIG_MACH_SPEAR310 */
> -
> /* spear320 declarations */
> -#ifdef CONFIG_MACH_SPEAR320
> +#elif defined(CONFIG_MACH_SPEAR320)
> /* Add spear320 machine device structure declarations here */
> extern struct amba_device clcd_device;
> extern struct platform_device i2c1_device;
> +extern struct platform_device nand_device;
> extern struct platform_device plgpio_device;
> extern struct platform_device pwm_device;
>
> @@ -213,6 +216,6 @@ void __init spear320_init(void);
>
> /* Add misc structure declarations here */
> extern struct clcd_board clcd_plat_data;
> -#endif /* CONFIG_MACH_SPEAR320 */
> +#endif
>
> #endif /* __MACH_GENERIC_H */
> diff --git a/arch/arm/mach-spear3xx/include/mach/spear320.h b/arch/arm/mach-spear3xx/include/mach/spear320.h
> index 53677e4..aa6727c 100644
> --- a/arch/arm/mach-spear3xx/include/mach/spear320.h
> +++ b/arch/arm/mach-spear3xx/include/mach/spear320.h
> @@ -22,6 +22,9 @@
> #define SPEAR320_FSMC_BASE 0x4C000000
> #define SPEAR320_FSMC_SIZE 0x01000000
>
> +#define SPEAR320_NAND_BASE 0x50000000
> +#define SPEAR320_NAND_SIZE 0x04000000
> +
> #define SPEAR320_I2S_BASE 0x60000000
> #define SPEAR320_I2S_SIZE 0x10000000
>
> diff --git a/arch/arm/mach-spear3xx/spear300.c b/arch/arm/mach-spear3xx/spear300.c
> index c80d4e1..c213614 100644
> --- a/arch/arm/mach-spear3xx/spear300.c
> +++ b/arch/arm/mach-spear3xx/spear300.c
> @@ -14,6 +14,7 @@
> #include <linux/types.h>
> #include <linux/amba/pl061.h>
> #include <linux/ptrace.h>
> +#include <mtd/fsmc.h>
> #include <asm/irq.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> @@ -426,6 +427,103 @@ struct platform_device kbd_device = {
> .resource = kbd_resources,
> };
>
> +/* nand device registeration */
> +static struct fsmc_nand_platform_data nand0_platform_data;
> +
> +static struct resource nand0_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR300_NAND_0_BASE,
> + .end = SPEAR300_NAND_0_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR300_FSMC_BASE,
> + .end = SPEAR300_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand0_device = {
> + .name = "nand",
> + .id = 0,
> + .resource = nand0_resources,
> + .num_resources = ARRAY_SIZE(nand0_resources),
> + .dev.platform_data = &nand0_platform_data,
> +};
> +
> +static struct fsmc_nand_platform_data nand1_platform_data;
> +
> +static struct resource nand1_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR300_NAND_1_BASE,
> + .end = SPEAR300_NAND_1_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR300_FSMC_BASE,
> + .end = SPEAR300_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand1_device = {
> + .name = "nand",
> + .id = 1,
> + .resource = nand1_resources,
> + .num_resources = ARRAY_SIZE(nand1_resources),
> + .dev.platform_data = &nand1_platform_data,
> +};
> +
> +static struct fsmc_nand_platform_data nand2_platform_data;
> +
> +static struct resource nand2_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR300_NAND_2_BASE,
> + .end = SPEAR300_NAND_2_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR300_FSMC_BASE,
> + .end = SPEAR300_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand2_device = {
> + .name = "nand",
> + .id = 2,
> + .resource = nand2_resources,
> + .num_resources = ARRAY_SIZE(nand2_resources),
> + .dev.platform_data = &nand2_platform_data,
> +};
> +
> +static struct fsmc_nand_platform_data nand3_platform_data;
> +
> +static struct resource nand3_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR300_NAND_3_BASE,
> + .end = SPEAR300_NAND_3_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR300_FSMC_BASE,
> + .end = SPEAR300_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand3_device = {
> + .name = "nand",
> + .id = 3,
> + .resource = nand3_resources,
> + .num_resources = ARRAY_SIZE(nand3_resources),
> + .dev.platform_data = &nand3_platform_data,
> +};
> +
> /* spear3xx shared irq */
> struct shirq_dev_config shirq_ras1_config[] = {
> {
> diff --git a/arch/arm/mach-spear3xx/spear300_evb.c b/arch/arm/mach-spear3xx/spear300_evb.c
> index 7bd8963..41ad013 100644
> --- a/arch/arm/mach-spear3xx/spear300_evb.c
> +++ b/arch/arm/mach-spear3xx/spear300_evb.c
> @@ -11,10 +11,13 @@
> * warranty of any kind, whether express or implied.
> */
>
> +#include <linux/mtd/nand.h>
> +#include <mtd/fsmc.h>
> #include <asm/mach/arch.h>
> #include <asm/mach-types.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> +#include <plat/fsmc.h>
> #include <plat/keyboard.h>
> #include <plat/smi.h>
>
> @@ -49,6 +52,7 @@ static struct platform_device *plat_devs[] __initdata = {
> /* spear3xx specific devices */
> &ehci_device,
> &i2c_device,
> + &nand0_device,
> &ohci0_device,
> &ohci1_device,
> &rtc_device,
> @@ -79,6 +83,10 @@ static void __init spear300_evb_init(void)
> /* set keyboard plat data */
> kbd_set_plat_data(&kbd_device, &kbd_data);
>
> + /* set nand0 device's plat data */
> + fsmc_nand_set_plat_data(&nand0_device, NULL, 0, NAND_SKIP_BBTSCAN,
> + FSMC_NAND_BW8);
> +
> /* call spear300 machine init function */
> spear300_init();
>
> diff --git a/arch/arm/mach-spear3xx/spear310.c b/arch/arm/mach-spear3xx/spear310.c
> index 88b55b5..1c84303 100644
> --- a/arch/arm/mach-spear3xx/spear310.c
> +++ b/arch/arm/mach-spear3xx/spear310.c
> @@ -12,6 +12,7 @@
> */
>
> #include <linux/ptrace.h>
> +#include <mtd/fsmc.h>
> #include <asm/irq.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> @@ -177,6 +178,31 @@ int spear300_o2p(int offset)
> return offset + 2;
> }
>
> +/* nand device registeration */
> +static struct fsmc_nand_platform_data nand_platform_data;
> +
> +static struct resource nand_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR310_NAND_BASE,
> + .end = SPEAR310_NAND_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR310_FSMC_BASE,
> + .end = SPEAR310_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand_device = {
> + .name = "nand",
> + .id = -1,
> + .resource = nand_resources,
> + .num_resources = ARRAY_SIZE(nand_resources),
> + .dev.platform_data = &nand_platform_data,
> +};
> +
> static struct plgpio_platform_data plgpio_plat_data = {
> .gpio_base = 8,
> .irq_base = SPEAR_PLGPIO_INT_BASE,
> diff --git a/arch/arm/mach-spear3xx/spear310_evb.c b/arch/arm/mach-spear3xx/spear310_evb.c
> index cd076c9..857afae 100644
> --- a/arch/arm/mach-spear3xx/spear310_evb.c
> +++ b/arch/arm/mach-spear3xx/spear310_evb.c
> @@ -11,10 +11,13 @@
> * warranty of any kind, whether express or implied.
> */
>
> +#include <linux/mtd/nand.h>
> +#include <mtd/fsmc.h>
> #include <asm/mach/arch.h>
> #include <asm/mach-types.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> +#include <plat/fsmc.h>
> #include <plat/smi.h>
>
> /* padmux devices to enable */
> @@ -54,6 +57,7 @@ static struct platform_device *plat_devs[] __initdata = {
> /* spear3xx specific devices */
> &ehci_device,
> &i2c_device,
> + &nand_device,
> &ohci0_device,
> &ohci1_device,
> &rtc_device,
> @@ -72,6 +76,10 @@ static void __init spear310_evb_init(void)
> pmx_driver.devs = pmx_devs;
> pmx_driver.devs_count = ARRAY_SIZE(pmx_devs);
>
> + /* set nand device's plat data */
> + fsmc_nand_set_plat_data(&nand_device, NULL, 0, NAND_SKIP_BBTSCAN,
> + FSMC_NAND_BW8);
> +
> /* call spear310 machine init function */
> spear310_init();
>
> diff --git a/arch/arm/mach-spear3xx/spear320.c b/arch/arm/mach-spear3xx/spear320.c
> index 75e7890..3def755 100644
> --- a/arch/arm/mach-spear3xx/spear320.c
> +++ b/arch/arm/mach-spear3xx/spear320.c
> @@ -12,6 +12,7 @@
> */
>
> #include <linux/ptrace.h>
> +#include <mtd/fsmc.h>
> #include <asm/irq.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> @@ -431,6 +432,31 @@ struct platform_device i2c1_device = {
> .resource = i2c1_resources,
> };
>
> +/* nand device registeration */
> +static struct fsmc_nand_platform_data nand_platform_data;
> +
> +static struct resource nand_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR320_NAND_BASE,
> + .end = SPEAR320_NAND_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR320_FSMC_BASE,
> + .end = SPEAR320_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand_device = {
> + .name = "nand",
> + .id = -1,
> + .resource = nand_resources,
> + .num_resources = ARRAY_SIZE(nand_resources),
> + .dev.platform_data = &nand_platform_data,
> +};
> +
> static struct resource plgpio_resources[] = {
> {
> .start = SPEAR320_SOC_CONFIG_BASE,
> diff --git a/arch/arm/mach-spear3xx/spear320_evb.c b/arch/arm/mach-spear3xx/spear320_evb.c
> index 7f7b5dd..3a066bb 100644
> --- a/arch/arm/mach-spear3xx/spear320_evb.c
> +++ b/arch/arm/mach-spear3xx/spear320_evb.c
> @@ -11,10 +11,13 @@
> * warranty of any kind, whether express or implied.
> */
>
> +#include <linux/mtd/nand.h>
> +#include <mtd/fsmc.h>
> #include <asm/mach/arch.h>
> #include <asm/mach-types.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> +#include <plat/fsmc.h>
> #include <plat/smi.h>
>
> /* padmux devices to enable */
> @@ -52,6 +55,7 @@ static struct platform_device *plat_devs[] __initdata = {
> /* spear3xx specific devices */
> &ehci_device,
> &i2c_device,
> + &nand_device,
> &ohci0_device,
> &ohci1_device,
> &rtc_device,
> @@ -72,6 +76,10 @@ static void __init spear320_evb_init(void)
> pmx_driver.devs = pmx_devs;
> pmx_driver.devs_count = ARRAY_SIZE(pmx_devs);
>
> + /* set nand device's plat data */
> + fsmc_nand_set_plat_data(&nand_device, NULL, 0, NAND_SKIP_BBTSCAN,
> + FSMC_NAND_BW8);
> +
> /* call spear320 machine init function */
> spear320_init();
>
> diff --git a/arch/arm/mach-spear6xx/include/mach/generic.h b/arch/arm/mach-spear6xx/include/mach/generic.h
> index f885898..ff90419 100644
> --- a/arch/arm/mach-spear6xx/include/mach/generic.h
> +++ b/arch/arm/mach-spear6xx/include/mach/generic.h
> @@ -36,6 +36,7 @@ extern struct amba_device wdt_device;
> extern struct platform_device ehci0_device;
> extern struct platform_device ehci1_device;
> extern struct platform_device i2c_device;
> +extern struct platform_device nand_device;
> extern struct platform_device ohci0_device;
> extern struct platform_device ohci1_device;
> extern struct platform_device rtc_device;
> diff --git a/arch/arm/mach-spear6xx/spear600_evb.c b/arch/arm/mach-spear6xx/spear600_evb.c
> index 0eb5f50..f3b1fb4 100644
> --- a/arch/arm/mach-spear6xx/spear600_evb.c
> +++ b/arch/arm/mach-spear6xx/spear600_evb.c
> @@ -11,10 +11,13 @@
> * warranty of any kind, whether express or implied.
> */
>
> +#include <linux/mtd/nand.h>
> +#include <mtd/fsmc.h>
> #include <asm/mach/arch.h>
> #include <asm/mach-types.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> +#include <plat/fsmc.h>
> #include <plat/smi.h>
>
> static struct amba_device *amba_devs[] __initdata = {
> @@ -33,6 +36,7 @@ static struct platform_device *plat_devs[] __initdata = {
> &i2c_device,
> &ohci0_device,
> &ohci1_device,
> + &nand_device,
> &rtc_device,
> &smi_device,
> };
> @@ -41,6 +45,10 @@ static void __init spear600_evb_init(void)
> {
> unsigned int i;
>
> + /* set nand device's plat data */
> + fsmc_nand_set_plat_data(&nand_device, NULL, 0, NAND_SKIP_BBTSCAN,
> + FSMC_NAND_BW8);
> +
> /* call spear600 machine init function */
> spear600_init();
>
> diff --git a/arch/arm/mach-spear6xx/spear6xx.c b/arch/arm/mach-spear6xx/spear6xx.c
> index 2eec8ac..cc4fd39 100644
> --- a/arch/arm/mach-spear6xx/spear6xx.c
> +++ b/arch/arm/mach-spear6xx/spear6xx.c
> @@ -15,6 +15,7 @@
> #include <linux/amba/pl061.h>
> #include <linux/ptrace.h>
> #include <linux/io.h>
> +#include <mtd/fsmc.h>
> #include <asm/hardware/vic.h>
> #include <asm/irq.h>
> #include <asm/mach/arch.h>
> @@ -152,6 +153,31 @@ struct platform_device i2c_device = {
> .resource = i2c_resources,
> };
>
> +/* nand device registeration */
> +static struct fsmc_nand_platform_data nand_platform_data;
> +
> +static struct resource nand_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR6XX_ICM1_NAND_BASE,
> + .end = SPEAR6XX_ICM1_NAND_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR6XX_ICM1_FSMC_BASE,
> + .end = SPEAR6XX_ICM1_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand_device = {
> + .name = "nand",
> + .id = -1,
> + .resource = nand_resources,
> + .num_resources = ARRAY_SIZE(nand_resources),
> + .dev.platform_data = &nand_platform_data,
> +};
> +
> /* usb host device registeration */
> static struct resource ehci0_resources[] = {
> [0] = {
> diff --git a/arch/arm/plat-spear/include/plat/fsmc.h b/arch/arm/plat-spear/include/plat/fsmc.h
> new file mode 100644
> index 0000000..bb161fb
> --- /dev/null
> +++ b/arch/arm/plat-spear/include/plat/fsmc.h
> @@ -0,0 +1,36 @@
> +/*
> + * arch/arm/plat-spear/include/plat/fsmc.h
> + *
> + * FSMC definitions for SPEAr platform
> + *
> + * Copyright (C) 2010 ST Microelectronics
> + * Vipin Kumar <vipin.kumar@st.com>
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2. This program is licensed "as is" without any
> + * warranty of any kind, whether express or implied.
> + */
> +
> +#ifndef __PLAT_FSMC_H
> +#define __PLAT_FSMC_H
> +
> +#include <mtd/fsmc.h>
> +
> +/* This function is used to set platform data field of pdev->dev */
> +static inline void fsmc_nand_set_plat_data(struct platform_device *pdev,
> + struct mtd_partition *partitions, unsigned int nr_partitions,
> + unsigned int options, unsigned int width)
> +{
> + struct fsmc_nand_platform_data *plat_data;
> + plat_data = dev_get_platdata(&pdev->dev);
> +
> + if (partitions) {
> + plat_data->partitions = partitions;
> + plat_data->nr_partitions = nr_partitions;
> + }
> +
> + plat_data->options = options;
> + plat_data->width = width;
> +}
> +
> +#endif /* __PLAT_FSMC_H */
>
WARNING: multiple messages have this Message-ID (diff)
From: stanley.miao@windriver.com (stanley.miao)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V2 28/69] ST SPEAr: Adding machine support for nand
Date: Sun, 28 Nov 2010 14:27:28 +0800 [thread overview]
Message-ID: <4CF1F650.8080505@windriver.com> (raw)
In-Reply-To: <1076320a0194c19ef0b4beefdf3c43a44e200439.1285933331.git.viresh.kumar@st.com>
Hi, Viresh,
It looked you missed the file include/mtd/fsmc.h in this patch.
Stanley.
Viresh KUMAR wrote:
> From: Vipin Kumar <vipin.kumar@st.com>
>
> Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
> Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
> Signed-off-by: Shiraz Hashim <shiraz.hashim@st.com>
> Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
> ---
> arch/arm/mach-spear13xx/include/mach/generic.h | 2 +
> arch/arm/mach-spear13xx/include/mach/misc_regs.h | 10 ++
> arch/arm/mach-spear13xx/spear1300_evb.c | 9 ++
> arch/arm/mach-spear13xx/spear13xx.c | 58 +++++++++++++
> arch/arm/mach-spear3xx/include/mach/generic.h | 15 ++--
> arch/arm/mach-spear3xx/include/mach/spear320.h | 3 +
> arch/arm/mach-spear3xx/spear300.c | 98 ++++++++++++++++++++++
> arch/arm/mach-spear3xx/spear300_evb.c | 8 ++
> arch/arm/mach-spear3xx/spear310.c | 26 ++++++
> arch/arm/mach-spear3xx/spear310_evb.c | 8 ++
> arch/arm/mach-spear3xx/spear320.c | 26 ++++++
> arch/arm/mach-spear3xx/spear320_evb.c | 8 ++
> arch/arm/mach-spear6xx/include/mach/generic.h | 1 +
> arch/arm/mach-spear6xx/spear600_evb.c | 8 ++
> arch/arm/mach-spear6xx/spear6xx.c | 26 ++++++
> arch/arm/plat-spear/include/plat/fsmc.h | 36 ++++++++
> 16 files changed, 336 insertions(+), 6 deletions(-)
> create mode 100644 arch/arm/plat-spear/include/plat/fsmc.h
>
> diff --git a/arch/arm/mach-spear13xx/include/mach/generic.h b/arch/arm/mach-spear13xx/include/mach/generic.h
> index 960ff06..745dd99 100644
> --- a/arch/arm/mach-spear13xx/include/mach/generic.h
> +++ b/arch/arm/mach-spear13xx/include/mach/generic.h
> @@ -35,6 +35,7 @@ extern struct platform_device spear13xx_ehci0_device;
> extern struct platform_device spear13xx_ehci1_device;
> extern struct platform_device spear13xx_i2c_device;
> extern struct platform_device spear13xx_kbd_device;
> +extern struct platform_device spear13xx_nand_device;
> extern struct platform_device spear13xx_ohci0_device;
> extern struct platform_device spear13xx_ohci1_device;
> extern struct platform_device spear13xx_rtc_device;
> @@ -51,6 +52,7 @@ void __init spear1300_init(void);
> void __init spear13xx_map_io(void);
> void __init spear13xx_init_irq(void);
> void __init spear13xx_init(void);
> +void __init nand_mach_init(u32 busw);
> void spear13xx_secondary_startup(void);
>
> #endif /* __MACH_GENERIC_H */
> diff --git a/arch/arm/mach-spear13xx/include/mach/misc_regs.h b/arch/arm/mach-spear13xx/include/mach/misc_regs.h
> index a8a1119..e6823db 100644
> --- a/arch/arm/mach-spear13xx/include/mach/misc_regs.h
> +++ b/arch/arm/mach-spear13xx/include/mach/misc_regs.h
> @@ -210,6 +210,16 @@
> #define CF_MMC_ACTIVE 0x2
> #define XD_MMC_ACTIVE 0x3
> #define FSMC_CFG ((unsigned int *)(MISC_BASE + 0x330))
> + /* FSMC_CFG register masks */
> + #define FSMC_MEMSEL_MASK 0x3
> + #define FSMC_MEMSEL_SHIFT 0
> + #define FSMC_MEM_NOR 0
> + #define FSMC_MEM_NAND 1
> + #define FSMC_MEM_SRAM 2
> + #define NAND_BANK_MASK 0x3
> + #define NAND_BANK_SHIFT 2
> + #define NAND_DEV_WIDTH16 4
> +
> #define MPMC_CTR_STS ((unsigned int *)(MISC_BASE + 0x334))
>
> /* Inter-Processor Communication Registers */
> diff --git a/arch/arm/mach-spear13xx/spear1300_evb.c b/arch/arm/mach-spear13xx/spear1300_evb.c
> index 1e637fa..56a4294 100644
> --- a/arch/arm/mach-spear13xx/spear1300_evb.c
> +++ b/arch/arm/mach-spear13xx/spear1300_evb.c
> @@ -12,11 +12,14 @@
> */
>
> #include <linux/types.h>
> +#include <linux/mtd/nand.h>
> +#include <mtd/fsmc.h>
> #include <asm/mach/arch.h>
> #include <asm/mach-types.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> #include <plat/keyboard.h>
> +#include <plat/fsmc.h>
> #include <plat/smi.h>
>
> static struct amba_device *amba_devs[] __initdata = {
> @@ -30,6 +33,7 @@ static struct platform_device *plat_devs[] __initdata = {
> &spear13xx_ehci1_device,
> &spear13xx_i2c_device,
> &spear13xx_kbd_device,
> + &spear13xx_nand_device,
> &spear13xx_ohci0_device,
> &spear13xx_ohci1_device,
> &spear13xx_rtc_device,
> @@ -52,6 +56,11 @@ static void __init spear1300_evb_init(void)
> /* set keyboard plat data */
> kbd_set_plat_data(&spear13xx_kbd_device, &kbd_data);
>
> + /* set nand device's plat data */
> + fsmc_nand_set_plat_data(&spear13xx_nand_device, NULL, 0,
> + NAND_SKIP_BBTSCAN, FSMC_NAND_BW8);
> + nand_mach_init(FSMC_NAND_BW8);
> +
> /* call spear1300 machine init function */
> spear1300_init();
>
> diff --git a/arch/arm/mach-spear13xx/spear13xx.c b/arch/arm/mach-spear13xx/spear13xx.c
> index f7d30a9..55d654f 100644
> --- a/arch/arm/mach-spear13xx/spear13xx.c
> +++ b/arch/arm/mach-spear13xx/spear13xx.c
> @@ -15,6 +15,7 @@
> #include <linux/amba/pl061.h>
> #include <linux/ptrace.h>
> #include <linux/io.h>
> +#include <mtd/fsmc.h>
> #include <asm/hardware/gic.h>
> #include <asm/irq.h>
> #include <asm/localtimer.h>
> @@ -23,6 +24,7 @@
> #include <mach/irqs.h>
> #include <mach/generic.h>
> #include <mach/hardware.h>
> +#include <mach/misc_regs.h>
>
> /* Add spear13xx machines common devices here */
> /* gpio device registeration */
> @@ -97,6 +99,62 @@ struct platform_device spear13xx_i2c_device = {
> .resource = i2c_resources,
> };
>
> +/* nand device registeration */
> +void __init nand_mach_init(u32 busw)
> +{
> + u32 fsmc_cfg = readl(FSMC_CFG);
> + fsmc_cfg &= ~(FSMC_MEMSEL_MASK << FSMC_MEMSEL_SHIFT);
> + fsmc_cfg |= (FSMC_MEM_NAND << FSMC_MEMSEL_SHIFT);
> +
> + if (busw == FSMC_NAND_BW16)
> + fsmc_cfg |= 1 << NAND_DEV_WIDTH16;
> + else
> + fsmc_cfg &= ~(1 << NAND_DEV_WIDTH16);
> +
> + writel(fsmc_cfg, FSMC_CFG);
> +}
> +
> +static void nand_select_bank(u32 bank, u32 busw)
> +{
> + u32 fsmc_cfg = readl(FSMC_CFG);
> +
> + fsmc_cfg &= ~(NAND_BANK_MASK << NAND_BANK_SHIFT);
> + fsmc_cfg |= (bank << NAND_BANK_SHIFT);
> +
> + if (busw)
> + fsmc_cfg |= 1 << NAND_DEV_WIDTH16;
> + else
> + fsmc_cfg &= ~(1 << NAND_DEV_WIDTH16);
> +
> + writel(fsmc_cfg, FSMC_CFG);
> +}
> +
> +static struct fsmc_nand_platform_data nand_platform_data = {
> + .select_bank = nand_select_bank,
> +};
> +
> +static struct resource nand_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR13XX_FSMC_MEM_BASE,
> + .end = SPEAR13XX_FSMC_MEM_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR13XX_FSMC_BASE,
> + .end = SPEAR13XX_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device spear13xx_nand_device = {
> + .name = "nand",
> + .id = -1,
> + .resource = nand_resources,
> + .num_resources = ARRAY_SIZE(nand_resources),
> + .dev.platform_data = &nand_platform_data,
> +};
> +
> /* usb host device registeration */
> static struct resource ehci0_resources[] = {
> [0] = {
> diff --git a/arch/arm/mach-spear3xx/include/mach/generic.h b/arch/arm/mach-spear3xx/include/mach/generic.h
> index 91c0c09..6aac229 100644
> --- a/arch/arm/mach-spear3xx/include/mach/generic.h
> +++ b/arch/arm/mach-spear3xx/include/mach/generic.h
> @@ -111,6 +111,10 @@ extern struct pmx_driver pmx_driver;
> extern struct amba_device clcd_device;
> extern struct amba_device gpio1_device;
> extern struct platform_device kbd_device;
> +extern struct platform_device nand0_device;
> +extern struct platform_device nand1_device;
> +extern struct platform_device nand2_device;
> +extern struct platform_device nand3_device;
>
> /* pad mux modes */
> extern struct pmx_mode nand_mode;
> @@ -148,12 +152,12 @@ void __init spear300_init(void);
>
> /* Add misc structure declarations here */
> extern struct clcd_board clcd_plat_data;
> -#endif /* CONFIG_MACH_SPEAR300 */
>
> /* spear310 declarations */
> -#ifdef CONFIG_MACH_SPEAR310
> +#elif defined(CONFIG_MACH_SPEAR310)
> /* Add spear310 machine device structure declarations here */
> extern struct platform_device plgpio_device;
> +extern struct platform_device nand_device;
>
> /* pad mux devices */
> extern struct pmx_dev pmx_emi_cs_0_1_4_5;
> @@ -168,13 +172,12 @@ extern struct pmx_dev pmx_tdm0;
> /* Add spear310 machine function declarations here */
> void __init spear310_init(void);
>
> -#endif /* CONFIG_MACH_SPEAR310 */
> -
> /* spear320 declarations */
> -#ifdef CONFIG_MACH_SPEAR320
> +#elif defined(CONFIG_MACH_SPEAR320)
> /* Add spear320 machine device structure declarations here */
> extern struct amba_device clcd_device;
> extern struct platform_device i2c1_device;
> +extern struct platform_device nand_device;
> extern struct platform_device plgpio_device;
> extern struct platform_device pwm_device;
>
> @@ -213,6 +216,6 @@ void __init spear320_init(void);
>
> /* Add misc structure declarations here */
> extern struct clcd_board clcd_plat_data;
> -#endif /* CONFIG_MACH_SPEAR320 */
> +#endif
>
> #endif /* __MACH_GENERIC_H */
> diff --git a/arch/arm/mach-spear3xx/include/mach/spear320.h b/arch/arm/mach-spear3xx/include/mach/spear320.h
> index 53677e4..aa6727c 100644
> --- a/arch/arm/mach-spear3xx/include/mach/spear320.h
> +++ b/arch/arm/mach-spear3xx/include/mach/spear320.h
> @@ -22,6 +22,9 @@
> #define SPEAR320_FSMC_BASE 0x4C000000
> #define SPEAR320_FSMC_SIZE 0x01000000
>
> +#define SPEAR320_NAND_BASE 0x50000000
> +#define SPEAR320_NAND_SIZE 0x04000000
> +
> #define SPEAR320_I2S_BASE 0x60000000
> #define SPEAR320_I2S_SIZE 0x10000000
>
> diff --git a/arch/arm/mach-spear3xx/spear300.c b/arch/arm/mach-spear3xx/spear300.c
> index c80d4e1..c213614 100644
> --- a/arch/arm/mach-spear3xx/spear300.c
> +++ b/arch/arm/mach-spear3xx/spear300.c
> @@ -14,6 +14,7 @@
> #include <linux/types.h>
> #include <linux/amba/pl061.h>
> #include <linux/ptrace.h>
> +#include <mtd/fsmc.h>
> #include <asm/irq.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> @@ -426,6 +427,103 @@ struct platform_device kbd_device = {
> .resource = kbd_resources,
> };
>
> +/* nand device registeration */
> +static struct fsmc_nand_platform_data nand0_platform_data;
> +
> +static struct resource nand0_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR300_NAND_0_BASE,
> + .end = SPEAR300_NAND_0_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR300_FSMC_BASE,
> + .end = SPEAR300_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand0_device = {
> + .name = "nand",
> + .id = 0,
> + .resource = nand0_resources,
> + .num_resources = ARRAY_SIZE(nand0_resources),
> + .dev.platform_data = &nand0_platform_data,
> +};
> +
> +static struct fsmc_nand_platform_data nand1_platform_data;
> +
> +static struct resource nand1_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR300_NAND_1_BASE,
> + .end = SPEAR300_NAND_1_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR300_FSMC_BASE,
> + .end = SPEAR300_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand1_device = {
> + .name = "nand",
> + .id = 1,
> + .resource = nand1_resources,
> + .num_resources = ARRAY_SIZE(nand1_resources),
> + .dev.platform_data = &nand1_platform_data,
> +};
> +
> +static struct fsmc_nand_platform_data nand2_platform_data;
> +
> +static struct resource nand2_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR300_NAND_2_BASE,
> + .end = SPEAR300_NAND_2_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR300_FSMC_BASE,
> + .end = SPEAR300_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand2_device = {
> + .name = "nand",
> + .id = 2,
> + .resource = nand2_resources,
> + .num_resources = ARRAY_SIZE(nand2_resources),
> + .dev.platform_data = &nand2_platform_data,
> +};
> +
> +static struct fsmc_nand_platform_data nand3_platform_data;
> +
> +static struct resource nand3_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR300_NAND_3_BASE,
> + .end = SPEAR300_NAND_3_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR300_FSMC_BASE,
> + .end = SPEAR300_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand3_device = {
> + .name = "nand",
> + .id = 3,
> + .resource = nand3_resources,
> + .num_resources = ARRAY_SIZE(nand3_resources),
> + .dev.platform_data = &nand3_platform_data,
> +};
> +
> /* spear3xx shared irq */
> struct shirq_dev_config shirq_ras1_config[] = {
> {
> diff --git a/arch/arm/mach-spear3xx/spear300_evb.c b/arch/arm/mach-spear3xx/spear300_evb.c
> index 7bd8963..41ad013 100644
> --- a/arch/arm/mach-spear3xx/spear300_evb.c
> +++ b/arch/arm/mach-spear3xx/spear300_evb.c
> @@ -11,10 +11,13 @@
> * warranty of any kind, whether express or implied.
> */
>
> +#include <linux/mtd/nand.h>
> +#include <mtd/fsmc.h>
> #include <asm/mach/arch.h>
> #include <asm/mach-types.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> +#include <plat/fsmc.h>
> #include <plat/keyboard.h>
> #include <plat/smi.h>
>
> @@ -49,6 +52,7 @@ static struct platform_device *plat_devs[] __initdata = {
> /* spear3xx specific devices */
> &ehci_device,
> &i2c_device,
> + &nand0_device,
> &ohci0_device,
> &ohci1_device,
> &rtc_device,
> @@ -79,6 +83,10 @@ static void __init spear300_evb_init(void)
> /* set keyboard plat data */
> kbd_set_plat_data(&kbd_device, &kbd_data);
>
> + /* set nand0 device's plat data */
> + fsmc_nand_set_plat_data(&nand0_device, NULL, 0, NAND_SKIP_BBTSCAN,
> + FSMC_NAND_BW8);
> +
> /* call spear300 machine init function */
> spear300_init();
>
> diff --git a/arch/arm/mach-spear3xx/spear310.c b/arch/arm/mach-spear3xx/spear310.c
> index 88b55b5..1c84303 100644
> --- a/arch/arm/mach-spear3xx/spear310.c
> +++ b/arch/arm/mach-spear3xx/spear310.c
> @@ -12,6 +12,7 @@
> */
>
> #include <linux/ptrace.h>
> +#include <mtd/fsmc.h>
> #include <asm/irq.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> @@ -177,6 +178,31 @@ int spear300_o2p(int offset)
> return offset + 2;
> }
>
> +/* nand device registeration */
> +static struct fsmc_nand_platform_data nand_platform_data;
> +
> +static struct resource nand_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR310_NAND_BASE,
> + .end = SPEAR310_NAND_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR310_FSMC_BASE,
> + .end = SPEAR310_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand_device = {
> + .name = "nand",
> + .id = -1,
> + .resource = nand_resources,
> + .num_resources = ARRAY_SIZE(nand_resources),
> + .dev.platform_data = &nand_platform_data,
> +};
> +
> static struct plgpio_platform_data plgpio_plat_data = {
> .gpio_base = 8,
> .irq_base = SPEAR_PLGPIO_INT_BASE,
> diff --git a/arch/arm/mach-spear3xx/spear310_evb.c b/arch/arm/mach-spear3xx/spear310_evb.c
> index cd076c9..857afae 100644
> --- a/arch/arm/mach-spear3xx/spear310_evb.c
> +++ b/arch/arm/mach-spear3xx/spear310_evb.c
> @@ -11,10 +11,13 @@
> * warranty of any kind, whether express or implied.
> */
>
> +#include <linux/mtd/nand.h>
> +#include <mtd/fsmc.h>
> #include <asm/mach/arch.h>
> #include <asm/mach-types.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> +#include <plat/fsmc.h>
> #include <plat/smi.h>
>
> /* padmux devices to enable */
> @@ -54,6 +57,7 @@ static struct platform_device *plat_devs[] __initdata = {
> /* spear3xx specific devices */
> &ehci_device,
> &i2c_device,
> + &nand_device,
> &ohci0_device,
> &ohci1_device,
> &rtc_device,
> @@ -72,6 +76,10 @@ static void __init spear310_evb_init(void)
> pmx_driver.devs = pmx_devs;
> pmx_driver.devs_count = ARRAY_SIZE(pmx_devs);
>
> + /* set nand device's plat data */
> + fsmc_nand_set_plat_data(&nand_device, NULL, 0, NAND_SKIP_BBTSCAN,
> + FSMC_NAND_BW8);
> +
> /* call spear310 machine init function */
> spear310_init();
>
> diff --git a/arch/arm/mach-spear3xx/spear320.c b/arch/arm/mach-spear3xx/spear320.c
> index 75e7890..3def755 100644
> --- a/arch/arm/mach-spear3xx/spear320.c
> +++ b/arch/arm/mach-spear3xx/spear320.c
> @@ -12,6 +12,7 @@
> */
>
> #include <linux/ptrace.h>
> +#include <mtd/fsmc.h>
> #include <asm/irq.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> @@ -431,6 +432,31 @@ struct platform_device i2c1_device = {
> .resource = i2c1_resources,
> };
>
> +/* nand device registeration */
> +static struct fsmc_nand_platform_data nand_platform_data;
> +
> +static struct resource nand_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR320_NAND_BASE,
> + .end = SPEAR320_NAND_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR320_FSMC_BASE,
> + .end = SPEAR320_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand_device = {
> + .name = "nand",
> + .id = -1,
> + .resource = nand_resources,
> + .num_resources = ARRAY_SIZE(nand_resources),
> + .dev.platform_data = &nand_platform_data,
> +};
> +
> static struct resource plgpio_resources[] = {
> {
> .start = SPEAR320_SOC_CONFIG_BASE,
> diff --git a/arch/arm/mach-spear3xx/spear320_evb.c b/arch/arm/mach-spear3xx/spear320_evb.c
> index 7f7b5dd..3a066bb 100644
> --- a/arch/arm/mach-spear3xx/spear320_evb.c
> +++ b/arch/arm/mach-spear3xx/spear320_evb.c
> @@ -11,10 +11,13 @@
> * warranty of any kind, whether express or implied.
> */
>
> +#include <linux/mtd/nand.h>
> +#include <mtd/fsmc.h>
> #include <asm/mach/arch.h>
> #include <asm/mach-types.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> +#include <plat/fsmc.h>
> #include <plat/smi.h>
>
> /* padmux devices to enable */
> @@ -52,6 +55,7 @@ static struct platform_device *plat_devs[] __initdata = {
> /* spear3xx specific devices */
> &ehci_device,
> &i2c_device,
> + &nand_device,
> &ohci0_device,
> &ohci1_device,
> &rtc_device,
> @@ -72,6 +76,10 @@ static void __init spear320_evb_init(void)
> pmx_driver.devs = pmx_devs;
> pmx_driver.devs_count = ARRAY_SIZE(pmx_devs);
>
> + /* set nand device's plat data */
> + fsmc_nand_set_plat_data(&nand_device, NULL, 0, NAND_SKIP_BBTSCAN,
> + FSMC_NAND_BW8);
> +
> /* call spear320 machine init function */
> spear320_init();
>
> diff --git a/arch/arm/mach-spear6xx/include/mach/generic.h b/arch/arm/mach-spear6xx/include/mach/generic.h
> index f885898..ff90419 100644
> --- a/arch/arm/mach-spear6xx/include/mach/generic.h
> +++ b/arch/arm/mach-spear6xx/include/mach/generic.h
> @@ -36,6 +36,7 @@ extern struct amba_device wdt_device;
> extern struct platform_device ehci0_device;
> extern struct platform_device ehci1_device;
> extern struct platform_device i2c_device;
> +extern struct platform_device nand_device;
> extern struct platform_device ohci0_device;
> extern struct platform_device ohci1_device;
> extern struct platform_device rtc_device;
> diff --git a/arch/arm/mach-spear6xx/spear600_evb.c b/arch/arm/mach-spear6xx/spear600_evb.c
> index 0eb5f50..f3b1fb4 100644
> --- a/arch/arm/mach-spear6xx/spear600_evb.c
> +++ b/arch/arm/mach-spear6xx/spear600_evb.c
> @@ -11,10 +11,13 @@
> * warranty of any kind, whether express or implied.
> */
>
> +#include <linux/mtd/nand.h>
> +#include <mtd/fsmc.h>
> #include <asm/mach/arch.h>
> #include <asm/mach-types.h>
> #include <mach/generic.h>
> #include <mach/spear.h>
> +#include <plat/fsmc.h>
> #include <plat/smi.h>
>
> static struct amba_device *amba_devs[] __initdata = {
> @@ -33,6 +36,7 @@ static struct platform_device *plat_devs[] __initdata = {
> &i2c_device,
> &ohci0_device,
> &ohci1_device,
> + &nand_device,
> &rtc_device,
> &smi_device,
> };
> @@ -41,6 +45,10 @@ static void __init spear600_evb_init(void)
> {
> unsigned int i;
>
> + /* set nand device's plat data */
> + fsmc_nand_set_plat_data(&nand_device, NULL, 0, NAND_SKIP_BBTSCAN,
> + FSMC_NAND_BW8);
> +
> /* call spear600 machine init function */
> spear600_init();
>
> diff --git a/arch/arm/mach-spear6xx/spear6xx.c b/arch/arm/mach-spear6xx/spear6xx.c
> index 2eec8ac..cc4fd39 100644
> --- a/arch/arm/mach-spear6xx/spear6xx.c
> +++ b/arch/arm/mach-spear6xx/spear6xx.c
> @@ -15,6 +15,7 @@
> #include <linux/amba/pl061.h>
> #include <linux/ptrace.h>
> #include <linux/io.h>
> +#include <mtd/fsmc.h>
> #include <asm/hardware/vic.h>
> #include <asm/irq.h>
> #include <asm/mach/arch.h>
> @@ -152,6 +153,31 @@ struct platform_device i2c_device = {
> .resource = i2c_resources,
> };
>
> +/* nand device registeration */
> +static struct fsmc_nand_platform_data nand_platform_data;
> +
> +static struct resource nand_resources[] = {
> + {
> + .name = "nand_data",
> + .start = SPEAR6XX_ICM1_NAND_BASE,
> + .end = SPEAR6XX_ICM1_NAND_BASE + SZ_16 - 1,
> + .flags = IORESOURCE_MEM,
> + }, {
> + .name = "fsmc_regs",
> + .start = SPEAR6XX_ICM1_FSMC_BASE,
> + .end = SPEAR6XX_ICM1_FSMC_BASE + SZ_4K - 1,
> + .flags = IORESOURCE_MEM,
> + },
> +};
> +
> +struct platform_device nand_device = {
> + .name = "nand",
> + .id = -1,
> + .resource = nand_resources,
> + .num_resources = ARRAY_SIZE(nand_resources),
> + .dev.platform_data = &nand_platform_data,
> +};
> +
> /* usb host device registeration */
> static struct resource ehci0_resources[] = {
> [0] = {
> diff --git a/arch/arm/plat-spear/include/plat/fsmc.h b/arch/arm/plat-spear/include/plat/fsmc.h
> new file mode 100644
> index 0000000..bb161fb
> --- /dev/null
> +++ b/arch/arm/plat-spear/include/plat/fsmc.h
> @@ -0,0 +1,36 @@
> +/*
> + * arch/arm/plat-spear/include/plat/fsmc.h
> + *
> + * FSMC definitions for SPEAr platform
> + *
> + * Copyright (C) 2010 ST Microelectronics
> + * Vipin Kumar <vipin.kumar@st.com>
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2. This program is licensed "as is" without any
> + * warranty of any kind, whether express or implied.
> + */
> +
> +#ifndef __PLAT_FSMC_H
> +#define __PLAT_FSMC_H
> +
> +#include <mtd/fsmc.h>
> +
> +/* This function is used to set platform data field of pdev->dev */
> +static inline void fsmc_nand_set_plat_data(struct platform_device *pdev,
> + struct mtd_partition *partitions, unsigned int nr_partitions,
> + unsigned int options, unsigned int width)
> +{
> + struct fsmc_nand_platform_data *plat_data;
> + plat_data = dev_get_platdata(&pdev->dev);
> +
> + if (partitions) {
> + plat_data->partitions = partitions;
> + plat_data->nr_partitions = nr_partitions;
> + }
> +
> + plat_data->options = options;
> + plat_data->width = width;
> +}
> +
> +#endif /* __PLAT_FSMC_H */
>
next prev parent reply other threads:[~2010-11-28 6:27 UTC|newest]
Thread overview: 236+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-01 11:55 [PATCH V2 00/69] Updating SPEAr Support Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 01/69] ARM: move sev definition to common system.h include file Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 02/69] sp810 Fix: Switch to slow mode before sysctl_soft_reset Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 03/69] ST SPEAr: Padmux code Updated Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 04/69] ST SPEAr: Making clock functions more generic Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 05/69] ST SPEAr: Formalized timer support Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 06/69] ST SPEAr13XX: Adding machine specific header files Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 07/69] ST SPEAr13XX: Adding machine specific src files Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 08/69] ST SPEAr: Adding support for SPEAr13xx SoC in spear generic plat/ Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 09/69] ST SPEAr13XX: Added compilation support in arch/arm/ Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 10/69] ST SPEAr1300: Adding default config file Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 11/69] ST SPEAr: Adding support for CLCD on SPEAr3xx/6xx Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 12/69] ST SPEAr: Updating Clock Support Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 13/69] ST SPEAr: Adding Debugfs support on clock framework Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 14/69] ST SPEAr: Correcting SOC Config base address for spear320 Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 15/69] ST SPEAr: Adding PLGPIO driver for spear platform Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 16/69] rtc: Adding support for spear rtc Viresh KUMAR
2010-10-04 22:52 ` Alessandro Zummo
2010-10-05 3:37 ` viresh kumar
2010-10-01 11:55 ` [PATCH V2 17/69] ST SPEAr: Adding machine support for rtc-spear Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 18/69] ST SPEAr: adding support for synopsis i2c designware Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 19/69] USB host: Adding USB ehci & ohci support for spear platform Viresh KUMAR
2010-10-19 5:51 ` viresh kumar
2010-10-01 11:55 ` [PATCH V2 20/69] ST SPEAr: Adding machine support for USB host Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 21/69] Keyboard: Adding support for spear-keyboard Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-05 15:47 ` Dmitry Torokhov
2010-10-05 15:47 ` Dmitry Torokhov
[not found] ` <20101005154737.GA19730-WlK9ik9hQGAhIp7JRqBPierSzoNAToWh@public.gmane.org>
2010-10-06 3:58 ` viresh kumar
2010-10-06 3:58 ` viresh kumar
[not found] ` <4CABF3E0.8010909-qxv4g6HH51o@public.gmane.org>
2010-10-06 6:16 ` Dmitry Torokhov
2010-10-06 6:16 ` Dmitry Torokhov
2010-10-06 7:11 ` viresh kumar
2010-10-06 7:11 ` viresh kumar
2010-11-10 6:44 ` viresh kumar
2010-11-10 6:44 ` viresh kumar
2010-10-01 11:55 ` [PATCH V2 22/69] ST SPEAr: Adding machine support for keyboard Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 25/69] ST SPEAr: Add smi driver for serial NOR flash Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-19 5:55 ` viresh kumar
2010-10-19 5:55 ` viresh kumar
2010-10-29 11:49 ` viresh kumar
2010-12-17 10:58 ` viresh kumar
2010-12-17 17:00 ` Artem Bityutskiy
2010-10-01 11:55 ` [PATCH V2 26/69] ST SPEAr: Adding support for serial nor flash in all spear platforms Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 27/69] ST SPEAr: Adding Watchdog support Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 42/69] SPEAr Power Management: Added the support for Standby mode Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
[not found] ` <cover.1285933331.git.viresh.kumar-qxv4g6HH51o@public.gmane.org>
2010-10-01 11:55 ` [PATCH V2 23/69] ST SPEAr: Added ARM PL061 GPIO Support on SPEAr13xx and modified resource size Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 24/69] ST SPEAr: Adding support for ST's PWM IP Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 28/69] ST SPEAr: Adding machine support for nand Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-11-28 6:27 ` stanley.miao [this message]
2010-11-28 6:27 ` stanley.miao
2010-11-29 4:21 ` viresh kumar
2010-11-29 4:21 ` viresh kumar
2010-10-01 11:55 ` [PATCH V2 29/69] Newly erased page read workaround Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 30/69] ST SPEAr: Added PCIE host controller base driver support Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 31/69] ST SPEAr: Adding support for SSP PL022 Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 32/69] ST SPEAr: Adding support for SDHCI (SDIO) Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 33/69] ST SPEAr: Changing resource size of amba devices to SZ_4K Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 34/69] ST SPEAr: Replacing SIZE macro's with actual required size Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 35/69] SPEAr: defines base addresses as ulong Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 36/69] ST SPEAr: Adding miscellaneous devices Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 37/69] ST SPEAr 13xx : Adding support for SPEAr1310 Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 38/69] ST SPEAr: Adding support for DDR in clock framework Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` [PATCH V2 39/69] ST SPEAr : EMI (Extrenal Memory Interface) controller driver Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:55 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 40/69] ST SPEAr : FSMC (Flexible Static Memory Controller) NOR interface driver Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 41/69] SPEAr Clock Framework: Adding support for PLL frequency change Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 43/69] GIC: Added dummy handlers for Power Management Suspend Resume Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 48/69] ST SPEAr: replace readl, writel with __raw_readl, __raw_writel in uncompress.h Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 49/69] ST SPEAr13xx: add L2 cache support Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 51/69] SPEAr: Adding and Updating Clock definitions Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 54/69] SPEAr : Updating pad multiplexing support Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 67/69] ST SPEAr: Adding devices & clocks Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 69/69] ST SPEAr: Updating defconfigs Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 44/69] SPEAr CPU freq: Adding support for CPU Freq framework Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 45/69] ST SPEAr: PCIE gadget suppport Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-19 5:59 ` viresh kumar
2010-10-19 5:59 ` viresh kumar
2010-10-19 21:48 ` Andrew Morton
2010-10-19 21:48 ` Andrew Morton
2010-10-20 3:49 ` viresh kumar
2010-10-20 3:49 ` viresh kumar
2010-10-19 21:47 ` Andrew Morton
2010-10-19 21:47 ` Andrew Morton
2010-10-19 21:47 ` Andrew Morton
2010-10-21 14:18 ` Pratyush ANAND
2010-10-21 14:18 ` Pratyush ANAND
2010-10-21 14:18 ` Pratyush ANAND
2010-10-21 17:25 ` Andrew Morton
2010-10-21 17:25 ` Andrew Morton
2010-10-21 17:25 ` Andrew Morton
2010-10-21 17:25 ` Andrew Morton
2010-10-01 11:56 ` [PATCH V2 46/69] ST SPEAr13xx: Adding machine support for pci gadget Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 47/69] ST SPEAr13xx: Adding CPU hotplug support added for SMP platforms Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 50/69] ST SPEAr13xx: Modified static mappings Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 52/69] SPEAr : Pad multiplexing handling modified Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 53/69] SPEAr13xx : Fixed part devices in SPEAr13xx addded to the generic implementation Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 55/69] ST SPEAr3xx: Passing pmx devices address from machine *.c files Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 56/69] ST SPEAr Clock Framework: Updating for single image solution Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 57/69] SPEAr3xx: Make local structures static Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 58/69] SPEAR3xx: Rename register/irq defines to remove naming conflicts Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 59/69] SPEAr3xx: Rework pmx_dev code to remove conflicts Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 60/69] SPEAr3xx: Rework KConfig to allow all boards to be compiled in Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 61/69] SPEAr3xx: Replace defconfigs with single unified defconfig Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 62/69] ST SPEAr: Appending spear3** with global structures Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 16:21 ` viresh kumar
2010-10-01 16:21 ` viresh kumar
2010-10-01 16:21 ` viresh kumar
[not found] ` <AANLkTi=xNoG2T1Q2JqB7TH+O7AjW++UnSt1Q85VgPbzp-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-04 6:01 ` viresh kumar
2010-10-04 6:01 ` viresh kumar
2010-10-04 6:01 ` viresh kumar
2010-10-04 6:01 ` viresh kumar
2010-10-01 11:56 ` [PATCH V2 63/69] ST SPEAr3xx: Updating plgpio and emi source to make it compliant with single image strategy Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 64/69] SPEAr6xx: Rework Kconfig for single image solution Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 65/69] ST SPEAR6xx: renaming spear600_defconfig as spear6xx_defconfig Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 66/69] ST SPEAr13xx: Pass default padmux settings as parameter to spear13**_init routine Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` [PATCH V2 68/69] ST SPEAr: Adding information in Documentation/ and MAINTAINERS Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-01 11:56 ` Viresh KUMAR
2010-10-12 6:55 ` [PATCH V2 00/69] Updating SPEAr Support viresh kumar
2010-10-25 8:39 ` viresh kumar
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=4CF1F650.8080505@windriver.com \
--to=stanley.miao@windriver.com \
--cc=armando.visconti@st.com \
--cc=bhupesh.sharma@st.com \
--cc=deepak.sikri@st.com \
--cc=dmitry.torokhov@gmail.com \
--cc=dwmw2@infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=pratyush.anand@st.com \
--cc=rajeev-dlh.kumar@st.com \
--cc=shiraz.hashim@st.com \
--cc=vipin.kumar@st.com \
--cc=vipulkumar.samar@st.com \
--cc=viresh.kumar@st.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.