[PATCH v3 3/3] ARM: SAMSUNG: i2c/busses: Add HAVE_S3C2410_I2C option to include I2C for Samsung SoCs

Kyungmin Park kmpark at infradead.org
Thu Jul 29 22:42:41 EDT 2010


On Fri, Jul 30, 2010 at 10:03 AM, Kukjin Kim <kgene.kim at samsung.com> wrote:
> Kyungmin Park wrote:
>>
>> On Thu, Jul 29, 2010 at 6:42 PM, Kukjin Kim <kgene.kim at samsung.com> wrote:
>> > From: Naveen Krishna Ch <ch.naveen at samsung.com>
>> >
>> > This patch adds HAVE_S3C2410_I2C to control inclusion of I2C bus driver
>> > on Samsung SoCs and makes I2C bus driver dependency SoC specific instead
>> > of machine specific. This will enalbe all machines using Samsung
>> ARCH_S3C2410,
>> > _S3C64XX, _S5P6440, _S5PC100, and _S5PV210 to select the I2C driver by
>> default
>>
>> What's the different from use PLAT_SAMSUNG?
>>
> Hi,
>
> Hmm..the difference?
>
> I remember, already said to you...
> Anyway actually, there was a stuff in here about that.
> Please refer to following...it may answer on your question.
>
> --- From Ben Dooks
>
>>  config RTC_DRV_S3C
>>       tristate "Samsung S3C series SoC RTC"
>> -     depends on ARCH_S3C2410
>> +     depends on ARCH_S3C2410 || ARCH_S3C64XX
>
> I wonder whether just making this depend on either S3C_DEV_RTC, or simply
> PLAT_SAMSUNG would just be a better choice.
>
> The S3C_DEV_RTC would mean that the drivers the core of the kernel
> would be built, but means that we can't speculatively build drivers
> if the kernel hasn't any machines using them.
>
> Making it depend on PLAT_SAMSUNG would mean it is available to all,
> but would be selectable even if there isn't a machine supporting it
> being built.
>
> The current situation would mean that we have to update driver Kconfig
> entries each time a new SoC turns up...

In other word, It can make it workable when new SoCs arrives, even
though depends on PLAT_SAMSUNG.

If new chip has improved i2C IP then define new I2C drivers and modify
it as 'depends on PLAT_SAMUSNG if !NEW_IP_I2C'
and use another i2c drivers. of course it's depends on PLAT_SAMSUNG or
PLAT_S5P if NEW_IP_I2C.

>
> We could also have a HAVE_RTC_DRV_S3C so that all SoCs supporting this
> coudl select it independant of whether there is machine support.
>
> ---
>
> It doesn't mean that we should use HAVE_XXX in this case...
> But this way is better _now_ and they used same method in several drivers.
> And if driver IP changes, we can use with HAVE_XXXV2...
>
>> config I2C_S3C2410
>>         tristate "S3C2410 I2C Driver"
>>         depends on PLAT_SAMSUNG
>>
>> Please don't populate the Kconfigs.
>>
>
> I hope you stop talking same issue without alternative...
>
>> Thank you,
>> Kyungmin Park
>>
>> >
>> > Signed-off-by: Naveen Krishna Ch <ch.naveen at samsung.com>
>> > Signed-off-by: Kukjin Kim <kgene.kim at samsung.com>
>> > Cc: Ben Dooks <ben-linux at fluff.org>
>> > ---
>> > Changes since v2:
>> > - Added HAVE_S3C2410_I2C in drivers Kconfig
>> > - Made I2C bus driver dependency SoC specific
>> > - Selected additional support I2C bus driver for S5P6440, S5PC100,
>> >  and S5PV210
>> >
>> > Changes since v1:
>> > - Modifed the Kconfig help comments.
>> >
>> >  arch/arm/Kconfig           |    5 +++++
>> >  drivers/i2c/busses/Kconfig |   11 +++++++++--
>> >  2 files changed, 14 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> > index 98922f7..e922994 100644
>> > --- a/arch/arm/Kconfig
>> > +++ b/arch/arm/Kconfig
>> > @@ -634,6 +634,7 @@ config ARCH_S3C2410
>> >        select ARCH_HAS_CPUFREQ
>> >        select HAVE_CLK
>> >        select ARCH_USES_GETTIMEOFFSET
>> > +       select HAVE_S3C2410_I2C
>> >        help
>> >          Samsung S3C2410X CPU based systems, such as the Simtec
>> Electronics
>> >          BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940
>> or
>> > @@ -663,6 +664,7 @@ config ARCH_S3C64XX
>> >        select S3C_DEV_NAND
>> >        select USB_ARCH_HAS_OHCI
>> >        select SAMSUNG_GPIOLIB_4BIT
>> > +       select HAVE_S3C2410_I2C
>> >        help
>> >          Samsung S3C64XX series based systems
>> >
>> > @@ -672,6 +674,7 @@ config ARCH_S5P6440
>> >        select GENERIC_GPIO
>> >        select HAVE_CLK
>> >        select ARCH_USES_GETTIMEOFFSET
>> > +       select HAVE_S3C2410_I2C
>> >        help
>> >          Samsung S5P6440 CPU based systems
>> >
>> > @@ -691,6 +694,7 @@ config ARCH_S5PC100
>> >        select CPU_V7
>> >        select ARM_L1_CACHE_SHIFT_6
>> >        select ARCH_USES_GETTIMEOFFSET
>> > +       select HAVE_S3C2410_I2C
>> >        help
>> >          Samsung S5PC100 series based systems
>> >
>> > @@ -701,6 +705,7 @@ config ARCH_S5PV210
>> >        select HAVE_CLK
>> >        select ARM_L1_CACHE_SHIFT_6
>> >        select ARCH_USES_GETTIMEOFFSET
>> > +       select HAVE_S3C2410_I2C
>> >        help
>> >          Samsung S5PV210/S5PC110 series based systems
>> >
>> > diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
>> > index bceafbf..f1751da 100644
>> > --- a/drivers/i2c/busses/Kconfig
>> > +++ b/drivers/i2c/busses/Kconfig
>> > @@ -521,12 +521,19 @@ config I2C_PXA_SLAVE
>> >          is necessary for systems where the PXA may be a target on the
>> >          I2C bus.
>> >
>> > +config HAVE_S3C2410_I2C
>> > +       bool
>> > +       help
>> > +         This will include I2C support for Samsung SoCs. If you want to
>> > +         include I2C support for any machine, kindly select this in the
>> > +         respective Kconfig file.
>> > +
>> >  config I2C_S3C2410
>> >        tristate "S3C2410 I2C Driver"
>> > -       depends on ARCH_S3C2410 || ARCH_S3C64XX
>> > +       depends on HAVE_S3C2410_I2C
>> >        help
>> >          Say Y here to include support for I2C controller in the
>> > -         Samsung S3C2410 based System-on-Chip devices.
>> > +         Samsung SoCs.
>> >
>> >  config I2C_S6000
>> >        tristate "S6000 I2C support"
>> > --
>
>
> Thanks.
>
> Best regards,
> Kgene.
> --
> Kukjin Kim <kgene.kim at samsung.com>, Senior Engineer,
> SW Solution Development Team, Samsung Electronics Co., Ltd.
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>



More information about the linux-arm-kernel mailing list