[PATCH 1/6] S5PC110: Move OneNAND platform device to plat-s5p

Kyungmin Park kmpark at infradead.org
Thu Jul 29 20:53:32 EDT 2010


On Thu, Jul 29, 2010 at 9:30 AM, Kukjin Kim <kgene.kim at samsung.com> wrote:
> Kyungmin Park wrote:
>>
> Hi,
>
> Cc'ed Ben Dooks.
>
>> From: Kyungmin Park <kyungmin.park at samsung.com>
>>
>> To share the same platform device for s5pc210
>>
>> Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
>> ---
>>  arch/arm/mach-s5pv210/Kconfig            |    5 ---
>>  arch/arm/mach-s5pv210/Makefile           |    1 -
>>  arch/arm/mach-s5pv210/dev-onenand.c      |   50
> ----------------------------
>>  arch/arm/mach-s5pv210/include/mach/map.h |    3 --
>>  arch/arm/plat-s5p/Kconfig                |    5 +++
>>  arch/arm/plat-s5p/Makefile               |    5 ++-
>>  arch/arm/plat-s5p/dev-onenand.c          |   53
>> ++++++++++++++++++++++++++++++
>>  7 files changed, 62 insertions(+), 60 deletions(-)
>>  delete mode 100644 arch/arm/mach-s5pv210/dev-onenand.c
>>  create mode 100644 arch/arm/plat-s5p/dev-onenand.c
>
> In future, please check your git configuration so that can come out as
> follows.
> It's just 'rename(move)' not 'delete and create'...It can help to us that it
> can see more easily whether something changed.

It used the lower version of git. I will update it.
>
> arch/arm/{mach-s5pv210 => plat-s5p}/dev-onenand.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
>  rename arch/arm/{mach-s5pv210 => plat-s5p}/dev-onenand.c (91%)
>
> diff --git a/arch/arm/mach-s5pv210/dev-onenand.c
> b/arch/arm/plat-s5p/dev-onenand.c
> similarity index 91%
> rename from arch/arm/mach-s5pv210/dev-onenand.c
> rename to arch/arm/plat-s5p/dev-onenand.c
> index 34997b7..08b3a3f 100644
> --- a/arch/arm/mach-s5pv210/dev-onenand.c
> +++ b/arch/arm/plat-s5p/dev-onenand.c
>
>
>>
>> diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
>> index 0761eac..96f4d9b 100644
>> --- a/arch/arm/mach-s5pv210/Kconfig
>> +++ b/arch/arm/mach-s5pv210/Kconfig
>> @@ -62,11 +62,6 @@ config MACH_GONI
>>         Machine support for Samsung GONI board
>>         S5PC110(MCP) is one of package option of S5PV210
>>
>> -config S5PC110_DEV_ONENAND
>> -     bool
>> -     help
>> -       Compile in platform device definition for OneNAND1 controller
>> -
>>  config MACH_SMDKV210
>>       bool "SMDKV210"
>>       select CPU_S5PV210
>> diff --git a/arch/arm/mach-s5pv210/Makefile
> b/arch/arm/mach-s5pv210/Makefile
>> index 30be9a6..6a6dea1 100644
>> --- a/arch/arm/mach-s5pv210/Makefile
>> +++ b/arch/arm/mach-s5pv210/Makefile
>> @@ -26,7 +26,6 @@ obj-$(CONFIG_MACH_GONI)             += mach-goni.o
>>
>>  obj-y                                += dev-audio.o
>>  obj-$(CONFIG_S3C64XX_DEV_SPI)        += dev-spi.o
>> -obj-$(CONFIG_S5PC110_DEV_ONENAND) += dev-onenand.o
>>
>>  obj-$(CONFIG_S5PV210_SETUP_FB_24BPP) += setup-fb-24bpp.o
>>  obj-$(CONFIG_S5PV210_SETUP_I2C1)     += setup-i2c1.o
>> diff --git a/arch/arm/mach-s5pv210/dev-onenand.c
> b/arch/arm/mach-s5pv210/dev-
>> onenand.c
>> deleted file mode 100644
>> index 34997b7..0000000
>> --- a/arch/arm/mach-s5pv210/dev-onenand.c
>> +++ /dev/null
>> @@ -1,50 +0,0 @@
>> -/*
>> - * linux/arch/arm/mach-s5pv210/dev-onenand.c
>> - *
>> - *  Copyright (c) 2008-2010 Samsung Electronics
>> - *  Kyungmin Park <kyungmin.park at samsung.com>
>> - *
>> - * S5PC110 series device definition for OneNAND devices
>> - *
>> - * 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/platform_device.h>
>> -#include <linux/mtd/mtd.h>
>> -#include <linux/mtd/onenand.h>
>> -
>> -#include <mach/irqs.h>
>> -#include <mach/map.h>
>> -
>> -static struct resource s5pc110_onenand_resources[] = {
>> -     [0] = {
>> -             .start  = S5PC110_PA_ONENAND,
>> -             .end    = S5PC110_PA_ONENAND + SZ_128K - 1,
>> -             .flags  = IORESOURCE_MEM,
>> -     },
>> -     [1] = {
>> -             .start  = S5PC110_PA_ONENAND_DMA,
>> -             .end    = S5PC110_PA_ONENAND_DMA + SZ_2K - 1,
>> -             .flags  = IORESOURCE_MEM,
>> -     },
>> -};
>> -
>> -struct platform_device s5pc110_device_onenand = {
>> -     .name           = "s5pc110-onenand",
>> -     .id             = -1,
>> -     .num_resources  = ARRAY_SIZE(s5pc110_onenand_resources),
>> -     .resource       = s5pc110_onenand_resources,
>> -};
>> -
>> -void s5pc110_onenand_set_platdata(struct onenand_platform_data *pdata)
>> -{
>> -     struct onenand_platform_data *pd;
>> -
>> -     pd = kmemdup(pdata, sizeof(struct onenand_platform_data),
>> GFP_KERNEL);
>> -     if (!pd)
>> -             printk(KERN_ERR "%s: no memory for platform data\n",
>> __func__);
>> -     s5pc110_device_onenand.dev.platform_data = pd;
>> -}
>> diff --git a/arch/arm/mach-s5pv210/include/mach/map.h b/arch/arm/mach-
>> s5pv210/include/mach/map.h
>> index 34eb168..3a44e1e 100644
>> --- a/arch/arm/mach-s5pv210/include/mach/map.h
>> +++ b/arch/arm/mach-s5pv210/include/mach/map.h
>> @@ -16,9 +16,6 @@
>>  #include <plat/map-base.h>
>>  #include <plat/map-s5p.h>
>>
>> -#define S5PC110_PA_ONENAND   (0xB0000000)
>> -#define S5PC110_PA_ONENAND_DMA       (0xB0600000)
>> -
>>  #define S5PV210_PA_CHIPID    (0xE0000000)
>>  #define S5P_PA_CHIPID                S5PV210_PA_CHIPID
>>
>> diff --git a/arch/arm/plat-s5p/Kconfig b/arch/arm/plat-s5p/Kconfig
>> index 907ac63..314f7d1 100644
>> --- a/arch/arm/plat-s5p/Kconfig
>> +++ b/arch/arm/plat-s5p/Kconfig
>> @@ -31,3 +31,8 @@ config S5P_EXT_INT
>>       help
>>         Use the external interrupts (other than GPIO interrupts.)
>>         Note: Do not choose this for S5P6440.
>> +
>> +config S5PC110_DEV_ONENAND
>
> As I said, S5P_DEV_ONENAND is better in here.
No, I don't want to break the current board use the S5PC110_DEV_ONENAND.

Before request the S5P_* prefix. first make rules. In your
explanation. it can move to the plat-samsung.
What's the definition of s5p. just two s5p series have the same IP.
then can be used the plat-s5p?

So I suggest that (the number means the priority and naming rules.)
1. use the first SoC chip name.
2. two s5p series or more have the same IP. then use the plat-s5p
3. If driver support s3c and s5p series then use the plat-samsung. e.g., RTC.

So it's reasonable to use S5PC110_DEV_ONENAND name.

>
>> +     bool
>> +     help
>> +       Compile in platform device definition for OneNAND controller
>> diff --git a/arch/arm/plat-s5p/Makefile b/arch/arm/plat-s5p/Makefile
>> index 39c242b..c49617e 100644
>> --- a/arch/arm/plat-s5p/Makefile
>> +++ b/arch/arm/plat-s5p/Makefile
>> @@ -12,9 +12,12 @@ obj-                               :=
>>
>>  # Core files
>>
>> -obj-y                                += dev-uart.o
>>  obj-y                                += cpu.o
>>  obj-y                                += clock.o
>>  obj-y                                += irq.o
>>  obj-$(CONFIG_S5P_EXT_INT)    += irq-eint.o
>>
>> +# Device files
>> +
>> +obj-y                                += dev-uart.o
>> +obj-$(CONFIG_S5PC110_DEV_ONENAND)    += dev-onenand.o
>> diff --git a/arch/arm/plat-s5p/dev-onenand.c
> b/arch/arm/plat-s5p/dev-onenand.c
>> new file mode 100644
>> index 0000000..08b3a3f
>> --- /dev/null
>> +++ b/arch/arm/plat-s5p/dev-onenand.c
>> @@ -0,0 +1,53 @@
>> +/*
>> + * linux/arch/arm/plat-s5p/dev-onenand.c
>> + *
>> + *  Copyright (c) 2008-2010 Samsung Electronics
>> + *  Kyungmin Park <kyungmin.park at samsung.com>
>> + *
>> + * S5PC110 series device definition for OneNAND devices
>
> I thinks...this is for S5P SoCs such as S5PC210 and S5PC110
> ...even though S5P6440 does not have OneNAND device...
>
>> + *
>> + * 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/platform_device.h>
>> +#include <linux/mtd/mtd.h>
>> +#include <linux/mtd/onenand.h>
>> +
>> +#include <mach/irqs.h>
>> +#include <mach/map.h>
>> +
>> +#define S5PC110_PA_ONENAND           (0xB0000000)
>> +#define S5PC110_PA_ONENAND_DMA               (0xB0600000)
>
> Please move to mach/map.h for compatibilities with other SoCs.

Can you explain the why use the hard-coded value in clock framework?
it's only used that at there. it's same rule. it's only used here.

Do you want to hard-coded the value at resource directly?

As I suggested, make rules first and discuss it.

>
> #define S5PC110_PA_ONENAND              (0xB0000000)
> ...
> #define S5P_PA_ONENAD           S5PC110_PA_ONENAND
> ...
>
>> +
>> +static struct resource s5pc110_onenand_resources[] = {
>
> s5p_onenand_resources...
>
>> +     [0] = {
>> +             .start  = S5PC110_PA_ONENAND,
>> +             .end    = S5PC110_PA_ONENAND + SZ_128K - 1,
>
> Here, S5P_PA_xxx is better...
>
>> +             .flags  = IORESOURCE_MEM,
>> +     },
>> +     [1] = {
>> +             .start  = S5PC110_PA_ONENAND_DMA,
>> +             .end    = S5PC110_PA_ONENAND_DMA + SZ_2K - 1,
>> +             .flags  = IORESOURCE_MEM,
>> +     },
>> +};
>> +
>> +struct platform_device s5pc110_device_onenand = {
>> +     .name           = "s5pc110-onenand",
>> +     .id             = -1,
>> +     .num_resources  = ARRAY_SIZE(s5pc110_onenand_resources),
>> +     .resource       = s5pc110_onenand_resources,
>> +};
>> +
>> +void s5pc110_onenand_set_platdata(struct onenand_platform_data *pdata)
>> +{
>> +     struct onenand_platform_data *pd;
>> +
>> +     pd = kmemdup(pdata, sizeof(struct onenand_platform_data),
>> GFP_KERNEL);
>> +     if (!pd)
>> +             printk(KERN_ERR "%s: no memory for platform data\n",
>> __func__);
>> +     s5pc110_device_onenand.dev.platform_data = pd;
>
> s3c_set_platdata(pdata, sizeof(struct onenand_platform_data),
> &s5p_device_onenand);

I just remove it. there's no user. and no need to setup for platform.

Thank you,
Kyungmin Park
>
>> +}
>> --
>
>
> Thanks.
>
> Best regards,
> Kgene.
> --
> Kukjin Kim <kgene.kim at samsung.com>, Senior Engineer,
> SW Solution Development Team, Samsung Electronics Co., Ltd.
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>



More information about the linux-arm-kernel mailing list