xtensa: register gpio chip before use
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>
This commit is contained in:
parent
586411dcd1
commit
1fb137c1e3
|
@ -10,6 +10,8 @@
|
|||
#include <asm/bootparam.h>
|
||||
|
||||
#include <variant/hardware.h>
|
||||
#include <variant/gpio.h>
|
||||
|
||||
#include <platform/gpio.h>
|
||||
|
||||
void platform_halt(void)
|
||||
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 */
|
Loading…
Reference in New Issue