summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video
diff options
context:
space:
mode:
authorGerd Knorr <devnull@localhost>2004-03-29 16:41:05 +0000
committerGerd Knorr <devnull@localhost>2004-03-29 16:41:05 +0000
commitfde59f0cb699dc1d75bdab7c5d0e9c938941d0b2 (patch)
treeaa2ebabafc93314e6b9201872443ee15c7af6a90 /linux/drivers/media/video
parent496805e295220e5f097ba8e7f446015c402bb7b6 (diff)
downloadmediapointer-dvb-s2-fde59f0cb699dc1d75bdab7c5d0e9c938941d0b2.tar.gz
mediapointer-dvb-s2-fde59f0cb699dc1d75bdab7c5d0e9c938941d0b2.tar.bz2
- pv951 IR support by Mark Phalan.
Diffstat (limited to 'linux/drivers/media/video')
-rw-r--r--linux/drivers/media/video/ir-kbd-i2c.c40
1 files changed, 39 insertions, 1 deletions
diff --git a/linux/drivers/media/video/ir-kbd-i2c.c b/linux/drivers/media/video/ir-kbd-i2c.c
index 6d40f3a96..b71f04931 100644
--- a/linux/drivers/media/video/ir-kbd-i2c.c
+++ b/linux/drivers/media/video/ir-kbd-i2c.c
@@ -41,6 +41,44 @@
#include <media/ir-common.h>
+/* Mark Phalan <phalanm@o2.ie> */
+static IR_KEYTAB_TYPE ir_codes_pv951[IR_KEYTAB_SIZE] = {
+ [ 0 ] = KEY_KP0,
+ [ 1 ] = KEY_KP1,
+ [ 2 ] = KEY_KP2,
+ [ 3 ] = KEY_KP3,
+ [ 4 ] = KEY_KP4,
+ [ 5 ] = KEY_KP5,
+ [ 6 ] = KEY_KP6,
+ [ 7 ] = KEY_KP7,
+ [ 8 ] = KEY_KP8,
+ [ 9 ] = KEY_KP9,
+
+ [ 18 ] = KEY_POWER,
+ [ 16 ] = KEY_MUTE,
+ [ 31 ] = KEY_VOLUMEDOWN,
+ [ 27 ] = KEY_VOLUMEUP,
+ [ 26 ] = KEY_CHANNELUP,
+ [ 30 ] = KEY_CHANNELDOWN,
+ [ 14 ] = KEY_PAGEUP,
+ [ 29 ] = KEY_PAGEDOWN,
+ [ 19 ] = KEY_SOUND,
+
+ [ 24 ] = KEY_KPPLUSMINUS, // CH +/-
+ [ 22 ] = KEY_SUBTITLE, // CC
+ [ 13 ] = KEY_TEXT, // TTX
+ [ 11 ] = KEY_TV, // AIR/CBL
+ [ 17 ] = KEY_PC, // PC/TV
+ [ 23 ] = KEY_OK, // CH RTN
+ [ 25 ] = KEY_MODE, // FUNC
+ [ 12 ] = KEY_SEARCH, // AUTOSCAN
+
+ /* Not sure what to do with these ones! */
+ [ 15 ] = KEY_SELECT, // SOURCE
+ [ 10 ] = KEY_KPPLUS, // +100
+ [ 20 ] = KEY_KPEQUAL, // SYNC
+};
+
struct IR;
struct IR {
struct i2c_client c;
@@ -247,7 +285,7 @@ static int ir_attach(struct i2c_adapter *adap, int addr,
name = "PV951";
ir->get_key = get_key_pv951;
ir_type = IR_TYPE_OTHER;
- ir_codes = ir_codes_empty;
+ ir_codes = ir_codes_pv951;
break;
case 0x18:
case 0x1a: