Skip to content

Commit

Permalink
xtensa: register gpio chip before use
Browse files Browse the repository at this point in the history
Platform initialization sets up the LED heartbeat that is controlled
via GPIO.  Requesting the GPIO pins fails, however, as the chip is
only initialized later by a device_initcall().

Fix this up by exporting the initialization function.  Let the
platform set up the chip before it starts using it.

Signed-off-by: Johannes Weiner <jw@emlix.com>
Signed-off-by: Chris Zankel <chris@zankel.net>
  • Loading branch information
Johannes Weiner authored and Chris Zankel committed May 12, 2009
1 parent 586411d commit 1fb137c
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 2 deletions.
3 changes: 3 additions & 0 deletions arch/xtensa/platforms/s6105/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
#include <asm/bootparam.h>

#include <variant/hardware.h>
#include <variant/gpio.h>

#include <platform/gpio.h>

void platform_halt(void)
Expand Down Expand Up @@ -47,6 +49,7 @@ void __init platform_setup(char **cmdline)

void __init platform_init(bp_tag_t *first)
{
s6_gpio_init();
gpio_request(GPIO_LED1_NGREEN, "led1_green");
gpio_request(GPIO_LED1_RED, "led1_red");
gpio_direction_output(GPIO_LED1_NGREEN, 1);
Expand Down
3 changes: 1 addition & 2 deletions arch/xtensa/variants/s6000/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,7 @@ static struct gpio_chip gpiochip = {
.exported = 0, /* no exporting to userspace */
};

static int gpio_init(void)
int s6_gpio_init(void)
{
return gpiochip_add(&gpiochip);
}
device_initcall(gpio_init);
6 changes: 6 additions & 0 deletions arch/xtensa/variants/s6000/include/variant/gpio.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#ifndef _XTENSA_VARIANT_S6000_GPIO_H
#define _XTENSA_VARIANT_S6000_GPIO_H

extern int s6_gpio_init(void);

#endif /* _XTENSA_VARIANT_S6000_GPIO_H */

0 comments on commit 1fb137c

Please sign in to comment.