Commit 58e2d877 authored by Linus Walleij's avatar Linus Walleij Committed by Ulf Hansson
Browse files

ARM: pxa: Add GPIO descriptors for Palm27x



The Palm27x devices set up the MMC card detect and
write protect lines with a special helper function.
Augment this helper function to also accept an optional
GPIO descriptor table and pass and register this for
all the Palm27x devices in that family.

Cc: Daniel Mack <daniel@zonque.org>
Cc: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Bartosz Golaszewski <brgl@bgdev.pl>
Cc: Andrea Adami <andrea.adami@gmail.com>
Acked-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 32d15448
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -49,7 +49,10 @@ static struct pxamci_platform_data palm27x_mci_platform_data = {
	.detect_delay_ms	= 200,
};

void __init palm27x_mmc_init(int detect, int ro, int power,
void __init palm27x_mmc_init(struct gpiod_lookup_table *gtable,
			     int detect,
			     int ro,
			     int power,
			     int power_inverted)
{
	palm27x_mci_platform_data.gpio_card_detect	= detect;
@@ -57,6 +60,8 @@ void __init palm27x_mmc_init(int detect, int ro, int power,
	palm27x_mci_platform_data.gpio_power		= power;
	palm27x_mci_platform_data.gpio_power_invert	= power_inverted;

	if (gtable)
		gpiod_add_lookup_table(gtable);
	pxa_set_mci_info(&palm27x_mci_platform_data);
}
#endif
+12 −4
Original line number Diff line number Diff line
@@ -12,11 +12,19 @@
#ifndef	__INCLUDE_MACH_PALM27X__
#define	__INCLUDE_MACH_PALM27X__

#include <linux/gpio/machine.h>

#if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE)
extern void __init palm27x_mmc_init(int detect, int ro, int power,
extern void __init palm27x_mmc_init(struct gpiod_lookup_table *gtable,
				    int detect,
				    int ro,
				    int power,
				    int power_inverted);
#else
static inline void palm27x_mmc_init(int detect, int ro, int power,
static inline void palm27x_mmc_init(struct gpiod_lookup_table *gtable,
				    int detect,
				    int ro,
				    int power,
				    int power_inverted)
{}
#endif
+15 −2
Original line number Diff line number Diff line
@@ -320,6 +320,17 @@ static void __init palmld_map_io(void)
	iotable_init(palmld_io_desc, ARRAY_SIZE(palmld_io_desc));
}

static struct gpiod_lookup_table palmld_mci_gpio_table = {
	.dev_id = "pxa2xx-mci.0",
	.table = {
		GPIO_LOOKUP("gpio-pxa", GPIO_NR_PALMLD_SD_DETECT_N,
			    "cd", GPIO_ACTIVE_LOW),
		GPIO_LOOKUP("gpio-pxa", GPIO_NR_PALMLD_SD_READONLY,
			    "wp", GPIO_ACTIVE_LOW),
		{ },
	},
};

static void __init palmld_init(void)
{
	pxa2xx_mfp_config(ARRAY_AND_SIZE(palmld_pin_config));
@@ -327,7 +338,9 @@ static void __init palmld_init(void)
	pxa_set_btuart_info(NULL);
	pxa_set_stuart_info(NULL);

	palm27x_mmc_init(GPIO_NR_PALMLD_SD_DETECT_N, GPIO_NR_PALMLD_SD_READONLY,
	palm27x_mmc_init(&palmld_mci_gpio_table,
			 GPIO_NR_PALMLD_SD_DETECT_N,
			 GPIO_NR_PALMLD_SD_READONLY,
			 GPIO_NR_PALMLD_SD_POWER, 0);
	palm27x_pm_init(PALMLD_STR_BASE);
	palm27x_lcd_init(-1, &palm_320x480_lcd_mode);
+15 −2
Original line number Diff line number Diff line
@@ -182,6 +182,17 @@ static void __init palmt5_reserve(void)
	memblock_reserve(0xa0200000, 0x1000);
}

static struct gpiod_lookup_table palmt5_mci_gpio_table = {
	.dev_id = "pxa2xx-mci.0",
	.table = {
		GPIO_LOOKUP("gpio-pxa", GPIO_NR_PALMT5_SD_DETECT_N,
			    "cd", GPIO_ACTIVE_LOW),
		GPIO_LOOKUP("gpio-pxa", GPIO_NR_PALMT5_SD_READONLY,
			    "wp", GPIO_ACTIVE_LOW),
		{ },
	},
};

static void __init palmt5_init(void)
{
	pxa2xx_mfp_config(ARRAY_AND_SIZE(palmt5_pin_config));
@@ -189,7 +200,9 @@ static void __init palmt5_init(void)
	pxa_set_btuart_info(NULL);
	pxa_set_stuart_info(NULL);

	palm27x_mmc_init(GPIO_NR_PALMT5_SD_DETECT_N, GPIO_NR_PALMT5_SD_READONLY,
	palm27x_mmc_init(&palmt5_mci_gpio_table,
			 GPIO_NR_PALMT5_SD_DETECT_N,
			 GPIO_NR_PALMT5_SD_READONLY,
			 GPIO_NR_PALMT5_SD_POWER, 0);
	palm27x_pm_init(PALMT5_STR_BASE);
	palm27x_lcd_init(-1, &palm_320x480_lcd_mode);
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
#include <linux/input.h>
#include <linux/pwm.h>
#include <linux/pwm_backlight.h>
#include <linux/gpio.h>
#include <linux/gpio/machine.h>
#include <linux/input/matrix_keypad.h>
#include <linux/ucb1400.h>
#include <linux/power_supply.h>
Loading