Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4bd0172 authored by Marek Vasut's avatar Marek Vasut Committed by Eric Miao
Browse files

[ARM] pxa: add gpio_pwdown(_inverted) into pxaficp_ir.c



and convert PXA-based devices to gpio_pwdown where possible.

Signed-off-by: default avatarMarek Vasut <marek.vasut@gmail.com>
Signed-off-by: default avatarEric Miao <eric.y.miao@gmail.com>
parent 2a23ec36
Loading
Loading
Loading
Loading
+1 −26
Original line number Diff line number Diff line
@@ -447,34 +447,9 @@ static struct pxamci_platform_data corgi_mci_platform_data = {
/*
 * Irda
 */
static void corgi_irda_transceiver_mode(struct device *dev, int mode)
{
	gpio_set_value(CORGI_GPIO_IR_ON, mode & IR_OFF);
	pxa2xx_transceiver_mode(dev, mode);
}

static int corgi_irda_startup(struct device *dev)
{
	int err;

	err = gpio_request(CORGI_GPIO_IR_ON, "IR_ON");
	if (err)
		return err;

	gpio_direction_output(CORGI_GPIO_IR_ON, 1);
	return 0;
}

static void corgi_irda_shutdown(struct device *dev)
{
	gpio_free(CORGI_GPIO_IR_ON);
}

static struct pxaficp_platform_data corgi_ficp_platform_data = {
	.gpio_pwdown		= CORGI_GPIO_IR_ON,
	.transceiver_cap	= IR_SIRMODE | IR_OFF,
	.transceiver_mode	= corgi_irda_transceiver_mode,
	.startup		= corgi_irda_startup,
	.shutdown		= corgi_irda_shutdown,
};


+0 −1
Original line number Diff line number Diff line
@@ -199,7 +199,6 @@ static void __init e740_init(void)
	platform_add_devices(devices, ARRAY_SIZE(devices));
	pxa_set_udc_info(&e7xx_udc_mach_info);
	pxa_set_ac97_info(NULL);
	e7xx_irda_init();
	pxa_set_ficp_info(&e7xx_ficp_platform_data);
}

+0 −1
Original line number Diff line number Diff line
@@ -200,7 +200,6 @@ static void __init e750_init(void)
	platform_add_devices(devices, ARRAY_SIZE(devices));
	pxa_set_udc_info(&e7xx_udc_mach_info);
	pxa_set_ac97_info(NULL);
	e7xx_irda_init();
	pxa_set_ficp_info(&e7xx_ficp_platform_data);
}

+2 −37
Original line number Diff line number Diff line
@@ -47,44 +47,9 @@ struct pxa2xx_udc_mach_info e7xx_udc_mach_info = {
	.gpio_pullup_inverted = 1
};

static void e7xx_irda_transceiver_mode(struct device *dev, int mode)
{
	if (mode & IR_OFF) {
		gpio_set_value(GPIO_E7XX_IR_OFF, 1);
		pxa2xx_transceiver_mode(dev, mode);
	} else {
		pxa2xx_transceiver_mode(dev, mode);
		gpio_set_value(GPIO_E7XX_IR_OFF, 0);
	}
}

int e7xx_irda_init(void)
{
	int ret;

	ret = gpio_request(GPIO_E7XX_IR_OFF, "IrDA power");
	if (ret)
		goto out;

	ret = gpio_direction_output(GPIO_E7XX_IR_OFF, 0);
	if (ret)
		goto out;

	e7xx_irda_transceiver_mode(NULL, IR_SIRMODE | IR_OFF);
out:
	return ret;
}

static void e7xx_irda_shutdown(struct device *dev)
{
	e7xx_irda_transceiver_mode(dev, IR_SIRMODE | IR_OFF);
	gpio_free(GPIO_E7XX_IR_OFF);
}

struct pxaficp_platform_data e7xx_ficp_platform_data = {
	.gpio_pwdown		= GPIO_E7XX_IR_OFF,
	.transceiver_cap	= IR_SIRMODE | IR_OFF,
	.transceiver_mode = e7xx_irda_transceiver_mode,
	.shutdown = e7xx_irda_shutdown,
};

int eseries_tmio_enable(struct platform_device *dev)
+2 −7
Original line number Diff line number Diff line
@@ -175,14 +175,9 @@ static int hx4700_gpio_request(struct gpio_ress *gpios, int size)
 * IRDA
 */

static void irda_transceiver_mode(struct device *dev, int mode)
{
	gpio_set_value(GPIO105_HX4700_nIR_ON, mode & IR_OFF);
}

static struct pxaficp_platform_data ficp_info = {
	.gpio_pwdown		= GPIO105_HX4700_nIR_ON,
	.transceiver_cap	= IR_SIRMODE | IR_OFF,
	.transceiver_mode = irda_transceiver_mode,
};

/*
Loading