[U-Boot] [PATCH 2/3 V2] EXYNOS5: Add gpio pin numbering feature

Simon Glass sjg at chromium.org
Wed Feb 6 04:55:55 CET 2013


Hi Rajeshwari,

On Sun, Feb 3, 2013 at 10:26 PM, Rajeshwari Birje
<rajeshwari.birje at gmail.com> wrote:
> Hi Simon,
>
> Thank you for comments
>
> On Sun, Jan 27, 2013 at 1:22 AM, Simon Glass <sjg at chromium.org> wrote:
>> Hi,
>>
>> On Wed, Jan 23, 2013 at 2:48 AM, Rajeshwari Shinde
>> <rajeshwari.s at samsung.com> wrote:
>>> This patch adds support for gpio pin numbering support on EXYNOS5
>>> pinmux.
>>>
>>> Signed-off-by: Leela Krishna Amudala <l.krishna at samsung.com>
>>> Signed-off-by: Rajeshwari Shinde <rajeshwari.s at samsung.com>
>>> ---
>>> Changes in V2:
>>>         - none.
>>>  arch/arm/cpu/armv7/exynos/pinmux.c      |  148 +++++--------
>>>  arch/arm/include/asm/arch-exynos/gpio.h |  360 ++++++++++++++++++++++++++++++-
>>>  2 files changed, 413 insertions(+), 95 deletions(-)
>>>
>>
>>> diff --git a/arch/arm/include/asm/arch-exynos/gpio.h b/arch/arm/include/asm/arch-exynos/gpio.h
>>> index cfe1024..af882dd 100644
>>> --- a/arch/arm/include/asm/arch-exynos/gpio.h
>>> +++ b/arch/arm/include/asm/arch-exynos/gpio.h
>>> @@ -272,15 +272,355 @@ void s5p_gpio_set_rate(struct s5p_gpio_bank *bank, int gpio, int mode);
>>>             - EXYNOS5_GPIO_PART3_BASE) / sizeof(struct s5p_gpio_bank)) \
>>>           * GPIO_PER_BANK) + pin) + EXYNOS5_GPIO_PART2_MAX)
>>>
>>> +/* A list of valid GPIO numbers for the asm-generic/gpio.h interface */
>>> +enum exynos5_gpio_pin {
>>> +       /* GPIO_PART1_STARTS */
>>> +       GPIO_A00,
>>> +       GPIO_A01,
>>> +       GPIO_A02,
>>> +       GPIO_A03,
>> [snip]
>>
>>> +       GPIO_V44,
>>> +       GPIO_V45,
>>> +       GPIO_V46,
>>> +       GPIO_V47,
>>> +
>>> +       /* GPIO_PART4_STARTS */
>>> +       GPIO_PART3_MAX,
>>> +       GPIO_Z0 = GPIO_PART3_MAX,
>>> +       GPIO_Z1,
>>> +       GPIO_Z2,
>>> +       GPIO_Z3,
>>> +       GPIO_Z4,
>>> +       GPIO_Z5,
>>> +       GPIO_Z6,
>>> +       GPIO_MAX_PORT
>>> +};
>>> +
>>>  static inline unsigned int s5p_gpio_base(int nr)
>>>  {
>>>         if (cpu_is_exynos5()) {
>>> -               if (nr < EXYNOS5_GPIO_PART1_MAX)
>>> +               if (nr < GPIO_PART1_MAX)
>>>                         return EXYNOS5_GPIO_PART1_BASE;
>>> -               else if (nr < EXYNOS5_GPIO_PART2_MAX)
>>> +               else if (nr < GPIO_PART2_MAX)
>>>                         return EXYNOS5_GPIO_PART2_BASE;
>>> -               else
>>> +               else if (nr < GPIO_PART3_MAX)
>>>                         return EXYNOS5_GPIO_PART3_BASE;
>>> +               else
>>> +                       return EXYNOS5_GPIO_PART4_BASE;
>>>
>>>         } else if (cpu_is_exynos4()) {
>>>                 if (nr < EXYNOS4_GPIO_PART1_MAX)
>>> @@ -295,12 +635,14 @@ static inline unsigned int s5p_gpio_base(int nr)
>>>  static inline unsigned int s5p_gpio_part_max(int nr)
>>>  {
>>>         if (cpu_is_exynos5()) {
>>> -               if (nr < EXYNOS5_GPIO_PART1_MAX)
>>> +               if (nr < GPIO_PART1_MAX)
>>>                         return 0;
>>> -               else if (nr < EXYNOS5_GPIO_PART2_MAX)
>>> -                       return EXYNOS5_GPIO_PART1_MAX;
>>> +               else if (nr < GPIO_PART2_MAX)
>>> +                       return GPIO_PART1_MAX;
>>> +               else if (nr < GPIO_PART3_MAX)
>>> +                       return GPIO_PART2_MAX;
>>>                 else
>>> -                       return EXYNOS5_GPIO_PART2_MAX;
>>> +                       return GPIO_PART3_MAX;
>>>
>>>         } else if (cpu_is_exynos4()) {
>>>                 if (nr < EXYNOS4_GPIO_PART1_MAX)
>>> @@ -311,6 +653,10 @@ static inline unsigned int s5p_gpio_part_max(int nr)
>>>
>>>         return 0;
>>>  }
>>
>> Do these functions need to be inline in the header file, or could they
>> move to the GPIO driver?
> We use a generic GPIO driver across S5P platform and these changes
> being specific to EXYNOS it would not be good to move them to driver.

OK.

>>
>>> +
>>> +void gpio_cfg_pin(int gpio, int cfg);
>>> +void gpio_set_pull(int gpio, int mode);
>>> +void gpio_set_drv(int gpio, int mode);
>>>  #endif
>>>
>>>  /* Pin configurations */
>>> --
>>> 1.7.4.4
>>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
>
> --
> Regards,
> Rajeshwari Shinde

Regards,
Simon


More information about the U-Boot mailing list