[PATCH] arm: ep93xx: use gpio_led_register_device
Ryan Mallon
rmallon at gmail.com
Wed Apr 11 16:59:42 EDT 2012
On 12/04/12 03:16, H Hartley Sweeten wrote:
> On Tuesday, April 10, 2012 7:15 PM, Ryan Mallon wrote:
>> On 05/04/12 03:42, H Hartley Sweeten wrote:
>>
>>> Use gpio_led_register_device to register the two leds connected to
>>> the ep93xx.
>>>
>>> Add a SOC_EP93XX Kconfig option for common options needed by ep93xx
>>> and use that option to select LEDS_GPIO_REGISTER.
>>>
>>> Signed-off-by: Hartley Sweeten <hsweeten at visionengravers.com>
>>> Cc: Ryan Mallon <rmallon at gmail.com>
>>
>> Hi Hartley,
>>
>> Just a couple of comments below.
>>
>> ~Ryan
>>
>>> ---
>>>
>>> arch/arm/mach-ep93xx/Kconfig | 12 ++++++++++++
>>> arch/arm/mach-ep93xx/core.c | 16 ++++------------
>>> 2 files changed, 16 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig
>>> index 97a2493..b27a8ad 100644
>>> --- a/arch/arm/mach-ep93xx/Kconfig
>>> +++ b/arch/arm/mach-ep93xx/Kconfig
>>> @@ -2,6 +2,10 @@ if ARCH_EP93XX
>>>
>>> menu "Cirrus EP93xx Implementation Options"
>>>
>>> +config SOC_EP93XX
>>> + bool
>>> + select LEDS_GPIO_REGISTER
>>> +
>>
>>
>> So, this option is currently just used to indirectly select
>> LEDS_GPIO_REGISTER. Do you have plans for it to select other things?
>>> Otherwise, its just a bunch of extra Kconfig lines for not much benefit.
>
> Yes, this option will be used to indirectly select common "generic" options for
> the ep93xx. I think this is cleaner than putting them directly under ARCH_EP93XX
> in arch/arm/Kconfig.
>
> EP93XX specific options are already handled in the various subsystems with the
> "depends on ARCH_EP93XX", but for generic stuff we would need to either
> update the defconfig or rely on the user to select the options.
>
> Currently, with the single option being selected, it is a bit of overkill. But as more
> options (hopefully) get added it should be a benefit.
Okay, if all of the boards select it then we can do what omap does for
CONFIG_OMAP2PLUS_TYPICAL and make the option default y so that we don't
need to select it individually for each board.
>>> config CRUNCH
>>> bool "Support for MaverickCrunch"
>>> help
>>> @@ -48,12 +52,14 @@ endchoice
>>> config MACH_ADSSPHERE
>>> bool "Support ADS Sphere"
>>> depends on EP93XX_SDCE3_SYNC_PHYS_OFFSET
>>> + select SOC_EP93XX
>>> help
>>> Say 'Y' here if you want your kernel to support the ADS
>>> Sphere board.
>>>
>>> config MACH_EDB93XX
>>> bool
>>> + select SOC_EP93XX
>>>
>>> config MACH_EDB9301
>>> bool "Support Cirrus Logic EDB9301"
>>> @@ -122,12 +128,14 @@ config MACH_EDB9315A
>>> config MACH_GESBC9312
>>> depends on EP93XX_SDCE3_SYNC_PHYS_OFFSET
>>> bool "Support Glomation GESBC-9312-sx"
>>> + select SOC_EP93XX
>>> help
>>> Say 'Y' here if you want your kernel to support the Glomation
>>> GESBC-9312-sx board.
>>>
>>> config MACH_MICRO9
>>> bool
>>> + select SOC_EP93XX
>>>
>>> config MACH_MICRO9H
>>> bool "Support Contec Micro9-High"
>>> @@ -164,6 +172,7 @@ config MACH_MICRO9S
>>> config MACH_SIM_ONE
>>> bool "Support Simplemachines Sim.One board"
>>> depends on EP93XX_SDCE0_PHYS_OFFSET
>>> + select SOC_EP93XX
>>
>>
>> The existing whitespace here is using spaces instead of tabs. If the
>> result looks terrible (not aligned) then we should maybe do a separate
>> patch to clean up the crappy whitespace.
>
> I noticed that also... Hmm... who used the spaces ;-)
>
> I agree, a separate patch should clean up the shitespace.
I'm only really bothered if the mixed whitespace makes things look
horrible. If you make the CONFIG_SOC_EP93XX option default y then
this is no longer an issue anyway.
>>> help
>>> Say 'Y' here if you want your kernel to support the
>>> Simplemachines Sim.One board.
>>> @@ -171,6 +180,7 @@ config MACH_SIM_ONE
>>> config MACH_SNAPPER_CL15
>>> bool "Support Bluewater Systems Snapper CL15 Module"
>>> depends on EP93XX_SDCE0_PHYS_OFFSET
>>> + select SOC_EP93XX
>>> help
>>> Say 'Y' here if you want your kernel to support the Bluewater
>>> Systems Snapper CL15 Module.
>>> @@ -178,6 +188,7 @@ config MACH_SNAPPER_CL15
>>> config MACH_TS72XX
>>> bool "Support Technologic Systems TS-72xx SBC"
>>> depends on EP93XX_SDCE3_SYNC_PHYS_OFFSET
>>> + select SOC_EP93XX
>>> help
>>> Say 'Y' here if you want your kernel to support the
>>> Technologic Systems TS-72xx board.
>>> @@ -185,6 +196,7 @@ config MACH_TS72XX
>>> config MACH_VISION_EP9307
>>> bool "Support Vision Engraving Systems EP9307 SoM"
>>> depends on EP93XX_SDCE0_PHYS_OFFSET
>>> + select SOC_EP93XX
>>> help
>>> Say 'Y' here if you want your kernel to support the
>>> Vision Engraving Systems EP9307 SoM.
>>> diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
>>> index 8d25895..257a124 100644
>>> --- a/arch/arm/mach-ep93xx/core.c
>>> +++ b/arch/arm/mach-ep93xx/core.c
>>> @@ -513,7 +513,7 @@ void __init ep93xx_register_spi(struct ep93xx_spi_info *info,
>>> /*************************************************************************
>>> * EP93xx LEDs
>>> *************************************************************************/
>>> -static struct gpio_led ep93xx_led_pins[] = {
>>> +static const struct gpio_led ep93xx_led_pins[] __initconst = {
>>
>>
>> This fix, and related changes are not mentioned in the changelog.
>
> Sorry about that. From include/Linux/leds.h:
>
> struct platform_device *gpio_led_register_device(
> int id, const struct gpio_led_platform_data *pdata);
>
> Since pdata needs to be const I changed the two relevant static variables to const.
> And, since nothing should modify them I also made them __initconst. If you
> feel this needs to be mentioned in the changelog I will resubmit the patch.
Yeah, please mention it in the changelog.
Thanks,
~Ryan
More information about the linux-arm-kernel
mailing list