staging: media/lirc: switch to use gpiolib

The lirc serial module has special hooks to work with NSLU2,
switch these over to use gpiolib, as that is available on the
ixp4 platform.

Not even compile tested as there is no way to select this
driver from menuconfig on the ixp4 platform.

Cc: Imre Kaloz <kaloz@openwrt.org>
Cc: Alexandre Courbot <acourbot@nvidia.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Krzysztof Halasa <khc@pm.waw.pl>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
Linus Walleij 2013-09-10 13:30:10 +02:00
parent dc6ab07d8f
commit b336cb29ae
1 changed files with 13 additions and 3 deletions

View File

@ -67,7 +67,7 @@
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/poll.h> #include <linux/poll.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/gpio.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/fcntl.h> #include <linux/fcntl.h>
@ -321,7 +321,7 @@ static void on(void)
* status LED and ground * status LED and ground
*/ */
if (type == LIRC_NSLU2) { if (type == LIRC_NSLU2) {
gpio_line_set(NSLU2_LED_GRN, IXP4XX_GPIO_LOW); gpio_set_value(NSLU2_LED_GRN, 0);
return; return;
} }
#endif #endif
@ -335,7 +335,7 @@ static void off(void)
{ {
#ifdef CONFIG_LIRC_SERIAL_NSLU2 #ifdef CONFIG_LIRC_SERIAL_NSLU2
if (type == LIRC_NSLU2) { if (type == LIRC_NSLU2) {
gpio_line_set(NSLU2_LED_GRN, IXP4XX_GPIO_HIGH); gpio_set_value(NSLU2_LED_GRN, 1);
return; return;
} }
#endif #endif
@ -839,6 +839,16 @@ static int lirc_serial_probe(struct platform_device *dev)
{ {
int i, nlow, nhigh, result; int i, nlow, nhigh, result;
#ifdef CONFIG_LIRC_SERIAL_NSLU2
/* This GPIO is used for a LED on the NSLU2 */
result = devm_gpio_request(dev, NSLU2_LED_GRN, "lirc-serial");
if (result)
return result;
result = gpio_direction_output(NSLU2_LED_GRN, 0);
if (result)
return result;
#endif
result = request_irq(irq, irq_handler, result = request_irq(irq, irq_handler,
(share_irq ? IRQF_SHARED : 0), (share_irq ? IRQF_SHARED : 0),
LIRC_DRIVER_NAME, (void *)&hardware); LIRC_DRIVER_NAME, (void *)&hardware);