ar71xx: rb91x: register a gpio-latch platform device

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 39699
This commit is contained in:
Gabor Juhos 2014-02-22 18:05:32 +00:00
parent da5caba072
commit 8fea668cb7

View File

@ -22,6 +22,7 @@
#include <linux/spi/flash.h>
#include <linux/routerboot.h>
#include <linux/gpio.h>
#include <linux/platform_data/gpio-latch.h>
#include <asm/prom.h>
#include <asm/mach-ath79/ath79.h>
@ -50,6 +51,9 @@
#define RB91X_FLAG_USB BIT(0)
#define RB91X_FLAG_PCIE BIT(1)
#define RB91X_LATCH_GPIO_BASE AR934X_GPIO_COUNT
#define RB91X_LATCH_GPIO(_x) (RB91X_LATCH_GPIO_BASE + (_x))
struct rb_board_info {
const char *name;
u32 flags;
@ -80,6 +84,19 @@ static struct flash_platform_data rb711gr100_spi_flash_data = {
.nr_parts = ARRAY_SIZE(rb711gr100_spi_partitions),
};
static int rb711gr100_gpio_latch_gpios[AR934X_GPIO_COUNT] __initdata = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
};
static struct gpio_latch_platform_data rb711gr100_gpio_latch_data __initdata = {
.base = RB91X_LATCH_GPIO_BASE,
.num_gpios = ARRAY_SIZE(rb711gr100_gpio_latch_gpios),
.gpios = rb711gr100_gpio_latch_gpios,
.le_gpio_index = 11,
.le_active_low = true,
};
static void __init rb711gr100_init_partitions(const struct rb_info *info)
{
rb711gr100_spi_partitions[0].size = info->hard_cfg_offs;
@ -164,6 +181,10 @@ static void __init rb711gr100_setup(void)
platform_device_register_simple("rb91x-nand", -1, NULL, 0);
platform_device_register_data(NULL, "gpio-latch", -1,
&rb711gr100_gpio_latch_data,
sizeof(rb711gr100_gpio_latch_data));
flags = rb711gr100_get_flags(info);
if (flags & RB91X_FLAG_USB)