Commit c332e847 authored by Timo Kokkonen's avatar Timo Kokkonen Committed by Mauro Carvalho Chehab

[media] media: rc: Introduce RX51 IR transmitter driver

This is the driver for the IR transmitter diode found on the Nokia
N900 (also known as RX51) device. The driver is mostly the same as
found in the original 2.6.28 based kernel that comes with the device.

The following modifications have been made compared to the original
driver version:

- Adopt to the changes that has happen in the kernel during the past
  five years, such as the change in the include paths

- The OMAP DM-timers require much more care nowadays. The timers need
  to be enabled and disabled or otherwise many actions fail. Timers
  must not be freed without first stopping them or otherwise the timer
  cannot be requested again.

The code has been tested with sending IR codes with N900 device
running Debian userland. The device receiving the codes was Anysee
DVB-C USB receiver.
Signed-off-by: default avatarTimo Kokkonen <timo.t.kokkonen@iki.fi>
Cc: Tony Lindgren <tony@atomide.com>
Cc: linux-omap@vger.kernel.org
Cc: Sakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 65d9bc92
...@@ -287,6 +287,16 @@ config IR_TTUSBIR ...@@ -287,6 +287,16 @@ config IR_TTUSBIR
To compile this driver as a module, choose M here: the module will To compile this driver as a module, choose M here: the module will
be called ttusbir. be called ttusbir.
config IR_RX51
tristate "Nokia N900 IR transmitter diode
depends on MACH_NOKIA_RX51 && OMAP_DM_TIMER
---help---
Say Y or M here if you want to enable support for the IR
transmitter diode built in the Nokia N900 (RX51) device.
The driver uses omap DM timers for gereating the carrier
wave and pulses.
config RC_LOOPBACK config RC_LOOPBACK
tristate "Remote Control Loopback Driver" tristate "Remote Control Loopback Driver"
depends on RC_CORE depends on RC_CORE
......
...@@ -23,6 +23,7 @@ obj-$(CONFIG_IR_FINTEK) += fintek-cir.o ...@@ -23,6 +23,7 @@ obj-$(CONFIG_IR_FINTEK) += fintek-cir.o
obj-$(CONFIG_IR_NUVOTON) += nuvoton-cir.o obj-$(CONFIG_IR_NUVOTON) += nuvoton-cir.o
obj-$(CONFIG_IR_ENE) += ene_ir.o obj-$(CONFIG_IR_ENE) += ene_ir.o
obj-$(CONFIG_IR_REDRAT3) += redrat3.o obj-$(CONFIG_IR_REDRAT3) += redrat3.o
obj-$(CONFIG_IR_RX51) += ir-rx51.o
obj-$(CONFIG_IR_STREAMZAP) += streamzap.o obj-$(CONFIG_IR_STREAMZAP) += streamzap.o
obj-$(CONFIG_IR_WINBOND_CIR) += winbond-cir.o obj-$(CONFIG_IR_WINBOND_CIR) += winbond-cir.o
obj-$(CONFIG_RC_LOOPBACK) += rc-loopback.o obj-$(CONFIG_RC_LOOPBACK) += rc-loopback.o
......
This diff is collapsed.
#ifndef _LIRC_RX51_H
#define _LIRC_RX51_H
struct lirc_rx51_platform_data {
int pwm_timer;
int(*set_max_mpu_wakeup_lat)(struct device *dev, long t);
};
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment