All of lore.kernel.org
 help / color / mirror / Atom feed
From: Przemyslaw Marczak <p.marczak@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v10 1/2] EXYNOS: Add GPIO pin numbering and rename definitions
Date: Wed, 30 Apr 2014 16:25:13 +0200	[thread overview]
Message-ID: <536107C9.8090104@samsung.com> (raw)
In-Reply-To: <535FD4FF.1050001@samsung.com>

Hello,

On 04/29/2014 06:36 PM, Przemyslaw Marczak wrote:
> Hello,
> On 04/28/2014 03:59 PM, Akshay Saraswat wrote:
>> This patch includes following changes :
>> * Adds gpio pin numbering support for EXYNOS SOCs.
>>    To have consistent 0..n-1 GPIO numbering the banks are divided
>>    into different parts where ever they have holes in them.
>>
>> * Rename GPIO definitions from GPIO_... to S5P_GPIO_...
>>    These changes were done to enable cmd_gpio for EXYNOS and
>>    cmd_gpio has GPIO_INPUT same as s5p_gpio driver and hence
>>    getting a error during compilation.
>>
>> * Adds support for name to gpio conversion in s5p_gpio to enable
>>    gpio command EXYNOS SoCs. Function has been added to asm/gpio.h
>>    to decode the input gpio name to gpio number.
>>    Example: SMDK5420 # gpio set gpa00
>>
>> Signed-off-by: Leela Krishna Amudala <l.krishna@samsung.com>
>> Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
>> Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
>> ---
>
>
> In this function and probably in the whole code you need to check cpu id
> for Exynos4 and Exynos4x12.
>
>>   static int exynos4_mmc_config(int peripheral, int flags)
>>   {
>> -    struct exynos4_gpio_part2 *gpio2 =
>> -        (struct exynos4_gpio_part2 *)samsung_get_base_gpio_part2();
>> -    struct s5p_gpio_bank *bank, *bank_ext;
>> -    int i;
>> +    int i, start = 0, start_ext = 0;
>>
>>       switch (peripheral) {
>>       case PERIPH_ID_SDMMC0:
>> -        bank = &gpio2->k0;
>> -        bank_ext = &gpio2->k1;
> Here is a bug on trats2. After your changes in arch/gpio.h
> bank = &gpio2->k0 is the same as EXYNOS4_GPIO_K00 only for Exyynos4 not
> 4x12.
>
> So here please do this:
> if (proid_is_exynos4412()) {
>      start = EXYNOS4X12_GPIO_K00;
>      start_ext = EXYNOS4X12_GPIO_K13;
> } else {
>      start = EXYNOS4_GPIO_K00;
>      start_ext = EXYNOS4_GPIO_K13;
> }
>
> I am not sure what about the rest code because it works,
> so it looks like we can use Exynos4 definitions also for Exynos4x12.
>
>
>> +        start = EXYNOS4_GPIO_K00;
>> +        start_ext = EXYNOS4_GPIO_K13;
>>           break;
>>       case PERIPH_ID_SDMMC2:
>> -        bank = &gpio2->k2;
>> -        bank_ext = &gpio2->k3;
>> +        start = EXYNOS4_GPIO_K20;
>> +        start_ext = EXYNOS4_GPIO_K33;
>>           break;
>>       default:
>>           return -1;
>>       }
>> -    for (i = 0; i < 7; i++) {
>> +    for (i = start; i < (start + 7); i++) {
>
> And here is the main reason why MMC doesn't work.
>          if (i == start + 2)
>
>>           if (i == 2)
>>               continue;
>> -        s5p_gpio_cfg_pin(bank, i,  GPIO_FUNC(0x2));
>> -        s5p_gpio_set_pull(bank, i, GPIO_PULL_NONE);
>> -        s5p_gpio_set_drv(bank, i, GPIO_DRV_4X);
>> +        gpio_cfg_pin(i,  S5P_GPIO_FUNC(0x2));
>> +        gpio_set_pull(i, S5P_GPIO_PULL_NONE);
>> +        gpio_set_drv(i, S5P_GPIO_DRV_4X);
>>       }
>>       if (flags & PINMUX_FLAG_8BIT_MODE) {
>> -        for (i = 3; i < 7; i++) {
>> -            s5p_gpio_cfg_pin(bank_ext, i,  GPIO_FUNC(0x3));
>> -            s5p_gpio_set_pull(bank_ext, i, GPIO_PULL_NONE);
>> -            s5p_gpio_set_drv(bank_ext, i, GPIO_DRV_4X);
>> +        for (i = start_ext; i < (start_ext + 4); i++) {
>> +            gpio_cfg_pin(i,  S5P_GPIO_FUNC(0x3));
>> +            gpio_set_pull(i, S5P_GPIO_PULL_NONE);
>> +            gpio_set_drv(i, S5P_GPIO_DRV_4X);
>>           }
>>       }
>
> After those two fixes I didn't saw any other issues on trats and trats2.
>
> This still needs test for goni.
>
> And please check for the dead code...
>
> Thanks

Patch set v10 - Tested on goni - works fine.

Thanks!
-- 
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com

  reply	other threads:[~2014-04-30 14:25 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-28 13:59 [U-Boot] [PATCH v10 0/2] S5P: Exynos: Add GPIO numbering feature Akshay Saraswat
2014-04-28 13:59 ` [U-Boot] [PATCH v10 1/2] EXYNOS: Add GPIO pin numbering and rename definitions Akshay Saraswat
2014-04-29 16:36   ` Przemyslaw Marczak
2014-04-30 14:25     ` Przemyslaw Marczak [this message]
2014-04-28 13:59 ` [U-Boot] [PATCH v10 2/2] S5P: Exynos: Config: Enable GPIO CMD config Akshay Saraswat
2014-04-28 18:14 ` [U-Boot] [PATCH v10 0/2] S5P: Exynos: Add GPIO numbering feature Przemyslaw Marczak

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=536107C9.8090104@samsung.com \
    --to=p.marczak@samsung.com \
    --cc=u-boot@lists.denx.de \
    /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.