From: Jaehoon Chung <jh80.chung@samsung.com>
To: Thomas Abraham <thomas.abraham@linaro.org>
Cc: Jaehoon Chung <jh80.chung@samsung.com>,
linux-mmc <linux-mmc@vger.kernel.org>,
linux-samsung-soc@vger.kernel.org, Chris Ball <cjb@laptop.org>,
Kyungmin Park <kyungmin.park@samsung.com>,
kgene kim <kgene.kim@samsung.com>,
heiko@sntech.de
Subject: Re: [PATCH 2/4] ARM: SAMSUNG: move the header file to driver directory
Date: Fri, 24 Feb 2012 19:42:22 +0900 [thread overview]
Message-ID: <4F47698E.6040509@samsung.com> (raw)
In-Reply-To: <CAJuYYwRhqud-5apKzrymOUbnHm5fgzZ=1XGhR_-8PPWfJFHQWQ@mail.gmail.com>
On 02/24/2012 07:36 PM, Thomas Abraham wrote:
> On 24 February 2012 16:00, Jaehoon Chung <jh80.chung@samsung.com> wrote:
>> On 02/24/2012 06:10 PM, Thomas Abraham wrote:
>>
>>> Dear Mr. Chung,
>>>
>>> On 14 February 2012 10:33, Jaehoon Chung <jh80.chung@samsung.com> wrote:
>>>> The header-file is moved to drivers/mmc/host from plat.
>>>>
>>>> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>>>> ---
>>>> arch/arm/mach-exynos/setup-sdhci-gpio.c | 1 -
>>>> arch/arm/mach-s5pc100/setup-sdhci-gpio.c | 1 -
>>>> arch/arm/mach-s5pv210/setup-sdhci-gpio.c | 1 -
>>>> arch/arm/plat-samsung/include/plat/regs-sdhci.h | 87 ----------------------
>>>> drivers/mmc/host/sdhci-s3c.h | 89 +++++++++++++++++++++++
>>>> 5 files changed, 89 insertions(+), 90 deletions(-)
>>>> delete mode 100644 arch/arm/plat-samsung/include/plat/regs-sdhci.h
>>>> create mode 100644 drivers/mmc/host/sdhci-s3c.h
>>>>
>>>> diff --git a/arch/arm/mach-exynos/setup-sdhci-gpio.c b/arch/arm/mach-exynos/setup-sdhci-gpio.c
>>>> index e8d08bf..cda3714 100644
>>>> --- a/arch/arm/mach-exynos/setup-sdhci-gpio.c
>>>> +++ b/arch/arm/mach-exynos/setup-sdhci-gpio.c
>>>> @@ -20,7 +20,6 @@
>>>> #include <linux/mmc/card.h>
>>>>
>>>> #include <plat/gpio-cfg.h>
>>>> -#include <plat/regs-sdhci.h>
>>>> #include <plat/sdhci.h>
>>>>
>>>> void exynos4_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
>>>> diff --git a/arch/arm/mach-s5pc100/setup-sdhci-gpio.c b/arch/arm/mach-s5pc100/setup-sdhci-gpio.c
>>>> index 03c02d0..6010c03 100644
>>>> --- a/arch/arm/mach-s5pc100/setup-sdhci-gpio.c
>>>> +++ b/arch/arm/mach-s5pc100/setup-sdhci-gpio.c
>>>> @@ -19,7 +19,6 @@
>>>> #include <linux/mmc/card.h>
>>>>
>>>> #include <plat/gpio-cfg.h>
>>>> -#include <plat/regs-sdhci.h>
>>>> #include <plat/sdhci.h>
>>>>
>>>> void s5pc100_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
>>>> diff --git a/arch/arm/mach-s5pv210/setup-sdhci-gpio.c b/arch/arm/mach-s5pv210/setup-sdhci-gpio.c
>>>> index 3e3ac05..0512ada 100644
>>>> --- a/arch/arm/mach-s5pv210/setup-sdhci-gpio.c
>>>> +++ b/arch/arm/mach-s5pv210/setup-sdhci-gpio.c
>>>> @@ -20,7 +20,6 @@
>>>> #include <linux/mmc/card.h>
>>>>
>>>> #include <plat/gpio-cfg.h>
>>>> -#include <plat/regs-sdhci.h>
>>>> #include <plat/sdhci.h>
>>>>
>>>> void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
>>>> diff --git a/arch/arm/plat-samsung/include/plat/regs-sdhci.h b/arch/arm/plat-samsung/include/plat/regs-sdhci.h
>>>> deleted file mode 100644
>>>> index e34049a..0000000
>>>> --- a/arch/arm/plat-samsung/include/plat/regs-sdhci.h
>>>> +++ /dev/null
>>>> @@ -1,87 +0,0 @@
>>>> -/* linux/arch/arm/plat-s3c/include/plat/regs-sdhci.h
>>>> - *
>>>> - * Copyright 2008 Openmoko, Inc.
>>>> - * Copyright 2008 Simtec Electronics
>>>> - * http://armlinux.simtec.co.uk/
>>>> - * Ben Dooks <ben@simtec.co.uk>
>>>> - *
>>>> - * S3C Platform - SDHCI (HSMMC) register 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 __PLAT_S3C_SDHCI_REGS_H
>>>> -#define __PLAT_S3C_SDHCI_REGS_H __FILE__
>>>> -
>>>> -#define S3C_SDHCI_CONTROL2 (0x80)
>>>> -#define S3C_SDHCI_CONTROL3 (0x84)
>>>> -#define S3C64XX_SDHCI_CONTROL4 (0x8C)
>>>> -
>>>> -#define S3C64XX_SDHCI_CTRL2_ENSTAASYNCCLR (1 << 31)
>>>> -#define S3C64XX_SDHCI_CTRL2_ENCMDCNFMSK (1 << 30)
>>>> -#define S3C_SDHCI_CTRL2_CDINVRXD3 (1 << 29)
>>>> -#define S3C_SDHCI_CTRL2_SLCARDOUT (1 << 28)
>>>> -
>>>> -#define S3C_SDHCI_CTRL2_FLTCLKSEL_MASK (0xf << 24)
>>>> -#define S3C_SDHCI_CTRL2_FLTCLKSEL_SHIFT (24)
>>>> -#define S3C_SDHCI_CTRL2_FLTCLKSEL(_x) ((_x) << 24)
>>>> -
>>>> -#define S3C_SDHCI_CTRL2_LVLDAT_MASK (0xff << 16)
>>>> -#define S3C_SDHCI_CTRL2_LVLDAT_SHIFT (16)
>>>> -#define S3C_SDHCI_CTRL2_LVLDAT(_x) ((_x) << 16)
>>>> -
>>>> -#define S3C_SDHCI_CTRL2_ENFBCLKTX (1 << 15)
>>>> -#define S3C_SDHCI_CTRL2_ENFBCLKRX (1 << 14)
>>>> -#define S3C_SDHCI_CTRL2_SDCDSEL (1 << 13)
>>>> -#define S3C_SDHCI_CTRL2_SDSIGPC (1 << 12)
>>>> -#define S3C_SDHCI_CTRL2_ENBUSYCHKTXSTART (1 << 11)
>>>> -
>>>> -#define S3C_SDHCI_CTRL2_DFCNT_MASK (0x3 << 9)
>>>> -#define S3C_SDHCI_CTRL2_DFCNT_SHIFT (9)
>>>> -#define S3C_SDHCI_CTRL2_DFCNT_NONE (0x0 << 9)
>>>> -#define S3C_SDHCI_CTRL2_DFCNT_4SDCLK (0x1 << 9)
>>>> -#define S3C_SDHCI_CTRL2_DFCNT_16SDCLK (0x2 << 9)
>>>> -#define S3C_SDHCI_CTRL2_DFCNT_64SDCLK (0x3 << 9)
>>>> -
>>>> -#define S3C_SDHCI_CTRL2_ENCLKOUTHOLD (1 << 8)
>>>> -#define S3C_SDHCI_CTRL2_RWAITMODE (1 << 7)
>>>> -#define S3C_SDHCI_CTRL2_DISBUFRD (1 << 6)
>>>> -#define S3C_SDHCI_CTRL2_SELBASECLK_MASK (0x3 << 4)
>>>> -#define S3C_SDHCI_CTRL2_SELBASECLK_SHIFT (4)
>>>> -#define S3C_SDHCI_CTRL2_PWRSYNC (1 << 3)
>>>> -#define S3C_SDHCI_CTRL2_ENCLKOUTMSKCON (1 << 1)
>>>> -#define S3C_SDHCI_CTRL2_HWINITFIN (1 << 0)
>>>> -
>>>> -#define S3C_SDHCI_CTRL3_FCSEL3 (1 << 31)
>>>> -#define S3C_SDHCI_CTRL3_FCSEL2 (1 << 23)
>>>> -#define S3C_SDHCI_CTRL3_FCSEL1 (1 << 15)
>>>> -#define S3C_SDHCI_CTRL3_FCSEL0 (1 << 7)
>>>> -
>>>> -#define S3C_SDHCI_CTRL3_FIA3_MASK (0x7f << 24)
>>>> -#define S3C_SDHCI_CTRL3_FIA3_SHIFT (24)
>>>> -#define S3C_SDHCI_CTRL3_FIA3(_x) ((_x) << 24)
>>>> -
>>>> -#define S3C_SDHCI_CTRL3_FIA2_MASK (0x7f << 16)
>>>> -#define S3C_SDHCI_CTRL3_FIA2_SHIFT (16)
>>>> -#define S3C_SDHCI_CTRL3_FIA2(_x) ((_x) << 16)
>>>> -
>>>> -#define S3C_SDHCI_CTRL3_FIA1_MASK (0x7f << 8)
>>>> -#define S3C_SDHCI_CTRL3_FIA1_SHIFT (8)
>>>> -#define S3C_SDHCI_CTRL3_FIA1(_x) ((_x) << 8)
>>>> -
>>>> -#define S3C_SDHCI_CTRL3_FIA0_MASK (0x7f << 0)
>>>> -#define S3C_SDHCI_CTRL3_FIA0_SHIFT (0)
>>>> -#define S3C_SDHCI_CTRL3_FIA0(_x) ((_x) << 0)
>>>> -
>>>> -#define S3C64XX_SDHCI_CONTROL4_DRIVE_MASK (0x3 << 16)
>>>> -#define S3C64XX_SDHCI_CONTROL4_DRIVE_SHIFT (16)
>>>> -#define S3C64XX_SDHCI_CONTROL4_DRIVE_2mA (0x0 << 16)
>>>> -#define S3C64XX_SDHCI_CONTROL4_DRIVE_4mA (0x1 << 16)
>>>> -#define S3C64XX_SDHCI_CONTROL4_DRIVE_7mA (0x2 << 16)
>>>> -#define S3C64XX_SDHCI_CONTROL4_DRIVE_9mA (0x3 << 16)
>>>> -
>>>> -#define S3C64XX_SDHCI_CONTROL4_BUSY (1)
>>>> -
>>>> -#endif /* __PLAT_S3C_SDHCI_REGS_H */
>>>> diff --git a/drivers/mmc/host/sdhci-s3c.h b/drivers/mmc/host/sdhci-s3c.h
>>>> new file mode 100644
>>>> index 0000000..e233b15
>>>> --- /dev/null
>>>> +++ b/drivers/mmc/host/sdhci-s3c.h
>>>> @@ -0,0 +1,89 @@
>>>> +/*
>>>> + * SDHCI Samsung controller driver generics for OF and pltfm.
>>>> + *
>>>> + * Copyright 2008 Openmoko, Inc.
>>>> + * Copyright 2008 Simtec Electronics
>>>> + * http://armlinux.simtec.co.uk/
>>>> + * Ben Dooks <ben@simtec.co.uk>
>>>> + *
>>>> + * S3C Platform - SDHCI (HSMMC) register definitions
>>>> + *
>>>> + * This program is free software; you can redistribute it and/or modify
>>>> + * it under the terms of the GNU General Public License as published by
>>>> + * the Free Software Foundation; either version 2 of the License.
>>>> + */
>>>> +
>>>> +#ifndef __DRIVERS_MMC_S3C_SDHCI_H
>>>> +#define __DRIVERS_MMC_S3C_SDHCI_H
>>>> +
>>>> +#define S3C_SDHCI_CONTROL2 (0x80)
>>>> +#define S3C_SDHCI_CONTROL3 (0x84)
>>>> +#define S3C_SDHCI_CONTROL4 (0x8C)
>>>> +
>>>> +#define S3C_SDHCI_CTRL2_ENSTAASYNCCLR (1 << 31)
>>>> +#define S3C_SDHCI_CTRL2_ENCMDCNFMSK (1 << 30)
>>>> +#define S3C_SDHCI_CTRL2_CDINVRXD3 (1 << 29)
>>>> +#define S3C_SDHCI_CTRL2_SLCARDOUT (1 << 28)
>>>> +
>>>> +#define S3C_SDHCI_CTRL2_FLTCLKSEL_MASK (0xf << 24)
>>>> +#define S3C_SDHCI_CTRL2_FLTCLKSEL_SHIFT (24)
>>>> +#define S3C_SDHCI_CTRL2_FLTCLKSEL(_x) ((_x) << 24)
>>>> +
>>>> +#define S3C_SDHCI_CTRL2_LVLDAT_MASK (0xff << 16)
>>>> +#define S3C_SDHCI_CTRL2_LVLDAT_SHIFT (16)
>>>> +#define S3C_SDHCI_CTRL2_LVLDAT(_x) ((_x) << 16)
>>>> +
>>>> +#define S3C_SDHCI_CTRL2_ENFBCLKTX (1 << 15)
>>>> +#define S3C_SDHCI_CTRL2_ENFBCLKRX (1 << 14)
>>>> +#define S3C_SDHCI_CTRL2_SDCDSEL (1 << 13)
>>>> +#define S3C_SDHCI_CTRL2_SDSIGPC (1 << 12)
>>>> +#define S3C_SDHCI_CTRL2_ENBUSYCHKTXSTART (1 << 11)
>>>> +
>>>> +#define S3C_SDHCI_CTRL2_DFCNT_MASK (0x3 << 9)
>>>> +#define S3C_SDHCI_CTRL2_DFCNT_SHIFT (9)
>>>> +#define S3C_SDHCI_CTRL2_DFCNT_NONE (0x0 << 9)
>>>> +#define S3C_SDHCI_CTRL2_DFCNT_4SDCLK (0x1 << 9)
>>>> +#define S3C_SDHCI_CTRL2_DFCNT_16SDCLK (0x2 << 9)
>>>> +#define S3C_SDHCI_CTRL2_DFCNT_64SDCLK (0x3 << 9)
>>>> +
>>>> +#define S3C_SDHCI_CTRL2_ENCLKOUTHOLD (1 << 8)
>>>> +#define S3C_SDHCI_CTRL2_RWAITMODE (1 << 7)
>>>> +#define S3C_SDHCI_CTRL2_DISBUFRD (1 << 6)
>>>> +#define S3C_SDHCI_CTRL2_SELBASECLK_MASK (0x3 << 4)
>>>> +#define S3C_SDHCI_CTRL2_SELBASECLK_SHIFT (4)
>>>> +#define S3C_SDHCI_CTRL2_PWRSYNC (1 << 3)
>>>> +#define S3C_SDHCI_CTRL2_ENCLKOUTMSKCON (1 << 1)
>>>> +#define S3C_SDHCI_CTRL2_HWINITFIN (1 << 0)
>>>> +
>>>> +#define S3C_SDHCI_CTRL3_FCSEL3 (1 << 31)
>>>> +#define S3C_SDHCI_CTRL3_FCSEL2 (1 << 23)
>>>> +#define S3C_SDHCI_CTRL3_FCSEL1 (1 << 15)
>>>> +#define S3C_SDHCI_CTRL3_FCSEL0 (1 << 7)
>>>> +
>>>> +#define S3C_SDHCI_CTRL3_FIA3_MASK (0x7f << 24)
>>>> +#define S3C_SDHCI_CTRL3_FIA3_SHIFT (24)
>>>> +#define S3C_SDHCI_CTRL3_FIA3(_x) ((_x) << 24)
>>>> +
>>>> +#define S3C_SDHCI_CTRL3_FIA2_MASK (0x7f << 16)
>>>> +#define S3C_SDHCI_CTRL3_FIA2_SHIFT (16)
>>>> +#define S3C_SDHCI_CTRL3_FIA2(_x) ((_x) << 16)
>>>> +
>>>> +#define S3C_SDHCI_CTRL3_FIA1_MASK (0x7f << 8)
>>>> +#define S3C_SDHCI_CTRL3_FIA1_SHIFT (8)
>>>> +#define S3C_SDHCI_CTRL3_FIA1(_x) ((_x) << 8)
>>>> +
>>>> +#define S3C_SDHCI_CTRL3_FIA0_MASK (0x7f << 0)
>>>> +#define S3C_SDHCI_CTRL3_FIA0_SHIFT (0)
>>>> +#define S3C_SDHCI_CTRL3_FIA0(_x) ((_x) << 0)
>>>> +
>>>> +#define S3C_SDHCI_CONTROL4_DRIVE_MASK (0x3 << 16)
>>>> +#define S3C_SDHCI_CONTROL4_DRIVE_SHIFT (16)
>>>> +#define S3C_SDHCI_CONTROL4_DRIVE_2mA (0x0 << 16)
>>>> +#define S3C_SDHCI_CONTROL4_DRIVE_4mA (0x1 << 16)
>>>> +#define S3C_SDHCI_CONTROL4_DRIVE_7mA (0x2 << 16)
>>>> +#define S3C_SDHCI_CONTROL4_DRIVE_9mA (0x3 << 16)
>>>
>>> The CONTROL4 register is available from s3c6410 onwards. The sdhci
>>> controller in s3c24xx (such as s3c2416) do not have the CONTROL4
>>> register. I understand that renaming S3C64XX... to S3C should be fine
>>> but the information that it is applicable from S3C64XX onwards only is
>>> lost. Is this rename mandatory? I do not have any preference here, but
>>> I guess we could just leave it as S3C64XX.
>>
>> Right..But CONTROL4 register didn't present only in s3c24xx.
>> (just reserved).
>> I think that can control in device driver whether s3c24xx or not.
>> And also in CONTROL2 register, SELBASECLK bit didn't be used up to exynos4.
>> But everything used S3C_SDHCI_XXX. so i have changed them.
>> I didn't prefer anything, too.
Hi Thomas.
>
> Ok. In this case, we can do as Heiko suggested - Add comments in the
> header file that CONTROL4 is used in s3c64xx onwards.
That's no problem. Heiko's suggestion is also good.
As Heiko suggested, i will change.
Best Regards,
Jaehoon Chung
>
> Thanks,
> Thomas.
>
>> Are there any reason that leave that information?
>>
>> Best Regards,
>> Jaehoon Chung
>>
>>>
>>> Thanks,
>>> Thomas.
>>>
>>>> +
>>>> +#define S3C_SDHCI_CONTROL4_BUSY (1)
>>>> +
>>>> +#endif /* __DRIVERS_MMC_S3C_SDHCI_H */
>>>> +
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
>>>> the body of a message to majordomo@vger.kernel.org
>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>
>>
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2012-02-24 10:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-14 5:03 [PATCH 2/4] ARM: SAMSUNG: move the header file to driver directory Jaehoon Chung
2012-02-24 9:10 ` Thomas Abraham
2012-02-24 9:44 ` Heiko Stübner
2012-02-24 10:30 ` Jaehoon Chung
2012-02-24 10:36 ` Thomas Abraham
2012-02-24 10:42 ` Jaehoon Chung [this message]
2012-02-24 9:48 ` Thomas Abraham
2012-02-24 10:15 ` Jaehoon Chung
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=4F47698E.6040509@samsung.com \
--to=jh80.chung@samsung.com \
--cc=cjb@laptop.org \
--cc=heiko@sntech.de \
--cc=kgene.kim@samsung.com \
--cc=kyungmin.park@samsung.com \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=thomas.abraham@linaro.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.