diff mbox

[1/1] ARM: EXYNOS: Update CONFIG_ARCH_NR_GPIO for Exynos

Message ID 1372054438-15693-1-git-send-email-sachin.kamat@linaro.org
State Superseded
Headers show

Commit Message

Sachin Kamat June 24, 2013, 6:13 a.m. UTC
With the recent cleanup in Exynos platform code notably commits
17859bec ("ARM: EXYNOS: Do not select legacy Kconfig symbols any
more") and b9222210 ("ARM: EXYNOS: Remove mach/gpio.h"), the definition
of ARCH_NR_GPIOS got removed. This started causing problems on SoCs like
Exynos4412 which have more (285) than the default number of GPIOs (255).
Thus define this number in Kconfig file. Without this patch we get the
following errors during boot:

gpiochip_add: gpios 251..258 (gpv0) failed to register
samsung-pinctrl 106e0000.pinctrl: failed to register gpio_chip gpv0,
error code: -22
samsung-pinctrl: probe of 106e0000.pinctrl failed with error -22

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Tomasz Figa <t.figa@samsung.com>
---
Based on Kukjin's for-next tree.
---
 arch/arm/Kconfig |    1 +
 1 file changed, 1 insertion(+)

Comments

Kukjin Kim July 22, 2013, 1:48 a.m. UTC | #1
Sachin Kamat wrote:
> 
> With the recent cleanup in Exynos platform code notably commits
> 17859bec ("ARM: EXYNOS: Do not select legacy Kconfig symbols any
> more") and b9222210 ("ARM: EXYNOS: Remove mach/gpio.h"), the definition
> of ARCH_NR_GPIOS got removed. This started causing problems on SoCs like
> Exynos4412 which have more (285) than the default number of GPIOs (255).
> Thus define this number in Kconfig file. Without this patch we get the
> following errors during boot:
> 
> gpiochip_add: gpios 251..258 (gpv0) failed to register
> samsung-pinctrl 106e0000.pinctrl: failed to register gpio_chip gpv0,
> error code: -22
> samsung-pinctrl: probe of 106e0000.pinctrl failed with error -22
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> Cc: Tomasz Figa <t.figa@samsung.com>
> ---
> Based on Kukjin's for-next tree.
> ---
>  arch/arm/Kconfig |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index ddf2667..380a53b 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1578,6 +1578,7 @@ config ARCH_NR_GPIO
>  	default 512 if SOC_OMAP5
>  	default 392 if ARCH_U8500
>  	default 352 if ARCH_VT8500
> +	default 288 if ARCH_EXYNOS
>  	default 288 if ARCH_SUNXI
>  	default 264 if MACH_H4700
>  	default 0
> --
> 1.7.9.5

Hmm, BTW, I'm wondering why it is 288 not 285 or other specific number...

Thanks,
- Kukjin
Sachin Kamat July 22, 2013, 2:59 a.m. UTC | #2
On 22 July 2013 07:18, Kukjin Kim <kgene.kim@samsung.com> wrote:
> Sachin Kamat wrote:
>>
>> With the recent cleanup in Exynos platform code notably commits
>> 17859bec ("ARM: EXYNOS: Do not select legacy Kconfig symbols any
>> more") and b9222210 ("ARM: EXYNOS: Remove mach/gpio.h"), the definition
>> of ARCH_NR_GPIOS got removed. This started causing problems on SoCs like
>> Exynos4412 which have more (285) than the default number of GPIOs (255).
>> Thus define this number in Kconfig file. Without this patch we get the
>> following errors during boot:
>>
>> gpiochip_add: gpios 251..258 (gpv0) failed to register
>> samsung-pinctrl 106e0000.pinctrl: failed to register gpio_chip gpv0,
>> error code: -22
>> samsung-pinctrl: probe of 106e0000.pinctrl failed with error -22
>>
>> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
>> Cc: Tomasz Figa <t.figa@samsung.com>
>> ---
>> Based on Kukjin's for-next tree.
>> ---
>>  arch/arm/Kconfig |    1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index ddf2667..380a53b 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -1578,6 +1578,7 @@ config ARCH_NR_GPIO
>>       default 512 if SOC_OMAP5
>>       default 392 if ARCH_U8500
>>       default 352 if ARCH_VT8500
>> +     default 288 if ARCH_EXYNOS
>>       default 288 if ARCH_SUNXI
>>       default 264 if MACH_H4700
>>       default 0
>> --
>> 1.7.9.5
>
> Hmm, BTW, I'm wondering why it is 288 not 285 or other specific number...

I wasn't really sure if we can have any number there. I chose the
closest one (288) which was already used by other platform.
If there is no problem to use 285 itself then I can resend with that
number. Please let me know.
Kukjin Kim July 22, 2013, 3:37 a.m. UTC | #3
Sachin Kamat wrote:
> 
> On 22 July 2013 07:18, Kukjin Kim <kgene.kim@samsung.com> wrote:
> > Sachin Kamat wrote:
> >>
> >> With the recent cleanup in Exynos platform code notably commits
> >> 17859bec ("ARM: EXYNOS: Do not select legacy Kconfig symbols any
> >> more") and b9222210 ("ARM: EXYNOS: Remove mach/gpio.h"), the definition
> >> of ARCH_NR_GPIOS got removed. This started causing problems on SoCs
> like
> >> Exynos4412 which have more (285) than the default number of GPIOs
(255).
> >> Thus define this number in Kconfig file. Without this patch we get the
> >> following errors during boot:
> >>
> >> gpiochip_add: gpios 251..258 (gpv0) failed to register
> >> samsung-pinctrl 106e0000.pinctrl: failed to register gpio_chip gpv0,
> >> error code: -22
> >> samsung-pinctrl: probe of 106e0000.pinctrl failed with error -22
> >>
> >> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> >> Cc: Tomasz Figa <t.figa@samsung.com>
> >> ---
> >> Based on Kukjin's for-next tree.
> >> ---
> >>  arch/arm/Kconfig |    1 +
> >>  1 file changed, 1 insertion(+)
> >>
> >> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> >> index ddf2667..380a53b 100644
> >> --- a/arch/arm/Kconfig
> >> +++ b/arch/arm/Kconfig
> >> @@ -1578,6 +1578,7 @@ config ARCH_NR_GPIO
> >>       default 512 if SOC_OMAP5
> >>       default 392 if ARCH_U8500
> >>       default 352 if ARCH_VT8500
> >> +     default 288 if ARCH_EXYNOS
> >>       default 288 if ARCH_SUNXI
> >>       default 264 if MACH_H4700
> >>       default 0
> >> --
> >> 1.7.9.5
> >
> > Hmm, BTW, I'm wondering why it is 288 not 285 or other specific
number...
> 
> I wasn't really sure if we can have any number there. I chose the
> closest one (288) which was already used by other platform.
> If there is no problem to use 285 itself then I can resend with that
> number. Please let me know.
> 
If there is no reason, please don't use bigger value than necessary one.

Thanks,
Kukjin
Sachin Kamat July 22, 2013, 3:40 a.m. UTC | #4
On 22 July 2013 09:07, Kukjin Kim <kgene@kernel.org> wrote:
> Sachin Kamat wrote:
>>
>> On 22 July 2013 07:18, Kukjin Kim <kgene.kim@samsung.com> wrote:
>> > Sachin Kamat wrote:
>> >>
>> >> With the recent cleanup in Exynos platform code notably commits
>> >> 17859bec ("ARM: EXYNOS: Do not select legacy Kconfig symbols any
>> >> more") and b9222210 ("ARM: EXYNOS: Remove mach/gpio.h"), the definition
>> >> of ARCH_NR_GPIOS got removed. This started causing problems on SoCs
>> like
>> >> Exynos4412 which have more (285) than the default number of GPIOs
> (255).
>> >> Thus define this number in Kconfig file. Without this patch we get the
>> >> following errors during boot:
>> >>
>> >> gpiochip_add: gpios 251..258 (gpv0) failed to register
>> >> samsung-pinctrl 106e0000.pinctrl: failed to register gpio_chip gpv0,
>> >> error code: -22
>> >> samsung-pinctrl: probe of 106e0000.pinctrl failed with error -22
>> >>
>> >> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
>> >> Cc: Tomasz Figa <t.figa@samsung.com>
>> >> ---
>> >> Based on Kukjin's for-next tree.
>> >> ---
>> >>  arch/arm/Kconfig |    1 +
>> >>  1 file changed, 1 insertion(+)
>> >>
>> >> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> >> index ddf2667..380a53b 100644
>> >> --- a/arch/arm/Kconfig
>> >> +++ b/arch/arm/Kconfig
>> >> @@ -1578,6 +1578,7 @@ config ARCH_NR_GPIO
>> >>       default 512 if SOC_OMAP5
>> >>       default 392 if ARCH_U8500
>> >>       default 352 if ARCH_VT8500
>> >> +     default 288 if ARCH_EXYNOS
>> >>       default 288 if ARCH_SUNXI
>> >>       default 264 if MACH_H4700
>> >>       default 0
>> >> --
>> >> 1.7.9.5
>> >
>> > Hmm, BTW, I'm wondering why it is 288 not 285 or other specific
> number...
>>
>> I wasn't really sure if we can have any number there. I chose the
>> closest one (288) which was already used by other platform.
>> If there is no problem to use 285 itself then I can resend with that
>> number. Please let me know.
>>
> If there is no reason, please don't use bigger value than necessary one.

Ok, I will resend this with exact value.
Thanks Kukjin.
Tomasz Figa July 22, 2013, 5:21 p.m. UTC | #5
On Monday 22 of July 2013 12:37:52 Kukjin Kim wrote:
> Sachin Kamat wrote:
> > On 22 July 2013 07:18, Kukjin Kim <kgene.kim@samsung.com> wrote:
> > > Sachin Kamat wrote:
> > >> With the recent cleanup in Exynos platform code notably commits
> > >> 17859bec ("ARM: EXYNOS: Do not select legacy Kconfig symbols any
> > >> more") and b9222210 ("ARM: EXYNOS: Remove mach/gpio.h"), the
> > >> definition
> > >> of ARCH_NR_GPIOS got removed. This started causing problems on SoCs
> > 
> > like
> > 
> > >> Exynos4412 which have more (285) than the default number of GPIOs
> 
> (255).
> 
> > >> Thus define this number in Kconfig file. Without this patch we get
> > >> the
> > >> following errors during boot:
> > >> 
> > >> gpiochip_add: gpios 251..258 (gpv0) failed to register
> > >> samsung-pinctrl 106e0000.pinctrl: failed to register gpio_chip gpv0,
> > >> error code: -22
> > >> samsung-pinctrl: probe of 106e0000.pinctrl failed with error -22
> > >> 
> > >> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> > >> Cc: Tomasz Figa <t.figa@samsung.com>
> > >> ---
> > >> Based on Kukjin's for-next tree.
> > >> ---
> > >> 
> > >>  arch/arm/Kconfig |    1 +
> > >>  1 file changed, 1 insertion(+)
> > >> 
> > >> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> > >> index ddf2667..380a53b 100644
> > >> --- a/arch/arm/Kconfig
> > >> +++ b/arch/arm/Kconfig
> > >> @@ -1578,6 +1578,7 @@ config ARCH_NR_GPIO
> > >> 
> > >>       default 512 if SOC_OMAP5
> > >>       default 392 if ARCH_U8500
> > >>       default 352 if ARCH_VT8500
> > >> 
> > >> +     default 288 if ARCH_EXYNOS
> > >> 
> > >>       default 288 if ARCH_SUNXI
> > >>       default 264 if MACH_H4700
> > >>       default 0
> > >> 
> > >> --
> > >> 1.7.9.5
> > > 
> > > Hmm, BTW, I'm wondering why it is 288 not 285 or other specific
> 
> number...
> 
> > I wasn't really sure if we can have any number there. I chose the
> > closest one (288) which was already used by other platform.
> > If there is no problem to use 285 itself then I can resend with that
> > number. Please let me know.
> 
> If there is no reason, please don't use bigger value than necessary one.

Hmm, what about some GPIO expanders that would require bigger GPIO address 
space? I would reserve some space just in case, i.e. define this value to be 
the highest number of GPIOs on all Exynos SoCs + some extra, like 32 or 64.

Best regards,
Tomasz
Sylwester Nawrocki July 22, 2013, 7:36 p.m. UTC | #6
On 07/22/2013 07:21 PM, Tomasz Figa wrote:
> On Monday 22 of July 2013 12:37:52 Kukjin Kim wrote:
>> Sachin Kamat wrote:
>>> On 22 July 2013 07:18, Kukjin Kim<kgene.kim@samsung.com>  wrote:
>>>> Sachin Kamat wrote:
>>>>> With the recent cleanup in Exynos platform code notably commits
>>>>> 17859bec ("ARM: EXYNOS: Do not select legacy Kconfig symbols any
>>>>> more") and b9222210 ("ARM: EXYNOS: Remove mach/gpio.h"), the
>>>>> definition
>>>>> of ARCH_NR_GPIOS got removed. This started causing problems on SoCs
>>>
>>> like
>>>
>>>>> Exynos4412 which have more (285) than the default number of GPIOs
>>
>> (255).
>>
>>>>> Thus define this number in Kconfig file. Without this patch we get
>>>>> the
>>>>> following errors during boot:
>>>>>
>>>>> gpiochip_add: gpios 251..258 (gpv0) failed to register
>>>>> samsung-pinctrl 106e0000.pinctrl: failed to register gpio_chip gpv0,
>>>>> error code: -22
>>>>> samsung-pinctrl: probe of 106e0000.pinctrl failed with error -22
>>>>>
>>>>> Signed-off-by: Sachin Kamat<sachin.kamat@linaro.org>
>>>>> Cc: Tomasz Figa<t.figa@samsung.com>
>>>>> ---
>>>>> Based on Kukjin's for-next tree.
>>>>> ---
>>>>>
>>>>>   arch/arm/Kconfig |    1 +
>>>>>   1 file changed, 1 insertion(+)
>>>>>
>>>>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>>>>> index ddf2667..380a53b 100644
>>>>> --- a/arch/arm/Kconfig
>>>>> +++ b/arch/arm/Kconfig
>>>>> @@ -1578,6 +1578,7 @@ config ARCH_NR_GPIO
>>>>>
>>>>>        default 512 if SOC_OMAP5
>>>>>        default 392 if ARCH_U8500
>>>>>        default 352 if ARCH_VT8500
>>>>>
>>>>> +     default 288 if ARCH_EXYNOS
>>>>>
>>>>>        default 288 if ARCH_SUNXI
>>>>>        default 264 if MACH_H4700
>>>>>        default 0
>>>>>
>>>>> --
>>>>> 1.7.9.5
>>>>
>>>> Hmm, BTW, I'm wondering why it is 288 not 285 or other specific
>>
>> number...
>>
>>> I wasn't really sure if we can have any number there. I chose the
>>> closest one (288) which was already used by other platform.
>>> If there is no problem to use 285 itself then I can resend with that
>>> number. Please let me know.
>>
>> If there is no reason, please don't use bigger value than necessary one.
>
> Hmm, what about some GPIO expanders that would require bigger GPIO address
> space? I would reserve some space just in case, i.e. define this value to be
> the highest number of GPIOs on all Exynos SoCs + some extra, like 32 or 64.

That sounds like a good idea. IIRC I once had to increase ARCH_NR_GPIO to
make the wm8994 GPIO controller working. The wm8994 driver also handles
WM1811 audio codec that some Exynos development boards are shipped with.

--
Regards,
Sylwester
Sachin Kamat July 23, 2013, 3:11 a.m. UTC | #7
On 23 July 2013 01:06, Sylwester Nawrocki <sylvester.nawrocki@gmail.com> wrote:
> On 07/22/2013 07:21 PM, Tomasz Figa wrote:
>>
>> On Monday 22 of July 2013 12:37:52 Kukjin Kim wrote:
>>>
>>> Sachin Kamat wrote:
>>>>
>>>> On 22 July 2013 07:18, Kukjin Kim<kgene.kim@samsung.com>  wrote:
>>>>>
>>>>> Sachin Kamat wrote:
>>>>>>
>>>>>> With the recent cleanup in Exynos platform code notably commits
>>>>>> 17859bec ("ARM: EXYNOS: Do not select legacy Kconfig symbols any
>>>>>> more") and b9222210 ("ARM: EXYNOS: Remove mach/gpio.h"), the
>>>>>> definition
>>>>>> of ARCH_NR_GPIOS got removed. This started causing problems on SoCs
>>>>
>>>>
>>>> like
>>>>
>>>>>> Exynos4412 which have more (285) than the default number of GPIOs
>>>
>>>
>>> (255).
>>>
>>>>>> Thus define this number in Kconfig file. Without this patch we get
>>>>>> the
>>>>>> following errors during boot:
>>>>>>
>>>>>> gpiochip_add: gpios 251..258 (gpv0) failed to register
>>>>>> samsung-pinctrl 106e0000.pinctrl: failed to register gpio_chip gpv0,
>>>>>> error code: -22
>>>>>> samsung-pinctrl: probe of 106e0000.pinctrl failed with error -22
>>>>>>
>>>>>> Signed-off-by: Sachin Kamat<sachin.kamat@linaro.org>
>>>>>> Cc: Tomasz Figa<t.figa@samsung.com>
>>>>>> ---
>>>>>> Based on Kukjin's for-next tree.
>>>>>> ---
>>>>>>
>>>>>>   arch/arm/Kconfig |    1 +
>>>>>>   1 file changed, 1 insertion(+)
>>>>>>
>>>>>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>>>>>> index ddf2667..380a53b 100644
>>>>>> --- a/arch/arm/Kconfig
>>>>>> +++ b/arch/arm/Kconfig
>>>>>> @@ -1578,6 +1578,7 @@ config ARCH_NR_GPIO
>>>>>>
>>>>>>        default 512 if SOC_OMAP5
>>>>>>        default 392 if ARCH_U8500
>>>>>>        default 352 if ARCH_VT8500
>>>>>>
>>>>>> +     default 288 if ARCH_EXYNOS
>>>>>>
>>>>>>        default 288 if ARCH_SUNXI
>>>>>>        default 264 if MACH_H4700
>>>>>>        default 0
>>>>>>
>>>>>> --
>>>>>> 1.7.9.5
>>>>>
>>>>>
>>>>> Hmm, BTW, I'm wondering why it is 288 not 285 or other specific
>>>
>>>
>>> number...
>>>
>>>> I wasn't really sure if we can have any number there. I chose the
>>>> closest one (288) which was already used by other platform.
>>>> If there is no problem to use 285 itself then I can resend with that
>>>> number. Please let me know.
>>>
>>>
>>> If there is no reason, please don't use bigger value than necessary one.
>>
>>
>> Hmm, what about some GPIO expanders that would require bigger GPIO address
>> space? I would reserve some space just in case, i.e. define this value to
>> be
>> the highest number of GPIOs on all Exynos SoCs + some extra, like 32 or
>> 64.
>
>
> That sounds like a good idea. IIRC I once had to increase ARCH_NR_GPIO to
> make the wm8994 GPIO controller working. The wm8994 driver also handles
> WM1811 audio codec that some Exynos development boards are shipped with.

Looks like a valid point.

Kukjin,
Let me know your opinion about this before I respin the patch.
Kukjin Kim July 24, 2013, 2:20 a.m. UTC | #8
Sachin Kamat wrote:

[...]

> >>>>> Hmm, BTW, I'm wondering why it is 288 not 285 or other specific
> >>>
> >>>
> >>> number...
> >>>
> >>>> I wasn't really sure if we can have any number there. I chose the
> >>>> closest one (288) which was already used by other platform.
> >>>> If there is no problem to use 285 itself then I can resend with that
> >>>> number. Please let me know.
> >>>
> >>>
> >>> If there is no reason, please don't use bigger value than necessary
> one.
> >>
> >>
> >> Hmm, what about some GPIO expanders that would require bigger GPIO
> address
> >> space? I would reserve some space just in case, i.e. define this value
> to
> >> be
> >> the highest number of GPIOs on all Exynos SoCs + some extra, like 32 or
> >> 64.
> >
> >
> > That sounds like a good idea. IIRC I once had to increase ARCH_NR_GPIO
> to
> > make the wm8994 GPIO controller working. The wm8994 driver also handles
> > WM1811 audio codec that some Exynos development boards are shipped with.
> 
> Looks like a valid point.
> 
> Kukjin,
> Let me know your opinion about this before I respin the patch.
> 
Agreed, let's use 512 including some extras, I'm not sure what value for
some GPIO expanders is reasonable at this moment, though. It should be fine
on current EXYNOS platforms.

Thanks,
Kukjin
diff mbox

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index ddf2667..380a53b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1578,6 +1578,7 @@  config ARCH_NR_GPIO
 	default 512 if SOC_OMAP5
 	default 392 if ARCH_U8500
 	default 352 if ARCH_VT8500
+	default 288 if ARCH_EXYNOS
 	default 288 if ARCH_SUNXI
 	default 264 if MACH_H4700
 	default 0