summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/saa7134/saa7134-input.c
diff options
context:
space:
mode:
authorGerd Knorr <devnull@localhost>2004-04-23 08:08:09 +0000
committerGerd Knorr <devnull@localhost>2004-04-23 08:08:09 +0000
commit6c0055a30c097200645b472e903363de2f9c72ff (patch)
tree3b5bc9bc91e39d0d24e598fa9590cbd7822d69e2 /linux/drivers/media/video/saa7134/saa7134-input.c
parent8eaf3df89e72c6bcad69267531b1b05390cffa54 (diff)
downloadmediapointer-dvb-s2-6c0055a30c097200645b472e903363de2f9c72ff.tar.gz
mediapointer-dvb-s2-6c0055a30c097200645b472e903363de2f9c72ff.tar.bz2
- saa7134: IR support for the smarttv by Maciej Zarzycki vel Maczar
Diffstat (limited to 'linux/drivers/media/video/saa7134/saa7134-input.c')
-rw-r--r--linux/drivers/media/video/saa7134/saa7134-input.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/linux/drivers/media/video/saa7134/saa7134-input.c b/linux/drivers/media/video/saa7134/saa7134-input.c
index 95a7c5a51..f0d1ecc13 100644
--- a/linux/drivers/media/video/saa7134/saa7134-input.c
+++ b/linux/drivers/media/video/saa7134/saa7134-input.c
@@ -157,6 +157,47 @@ static IR_KEYTAB_TYPE eztv_codes[IR_KEYTAB_SIZE] = {
[ 33 ] = KEY_KPDOT, // . (decimal dot)
};
+static IR_KEYTAB_TYPE avacssmart_codes[IR_KEYTAB_SIZE] = {
+ [ 30 ] = KEY_POWER, // power
+ [ 28 ] = KEY_SEARCH, // scan
+ [ 7 ] = KEY_SELECT, // source
+
+ [ 22 ] = KEY_VOLUMEUP,
+ [ 20 ] = KEY_VOLUMEDOWN,
+ [ 31 ] = KEY_CHANNELUP,
+ [ 23 ] = KEY_CHANNELDOWN,
+ [ 24 ] = KEY_MUTE,
+
+ [ 2 ] = KEY_KP0,
+ [ 1 ] = KEY_KP1,
+ [ 11 ] = KEY_KP2,
+ [ 27 ] = KEY_KP3,
+ [ 5 ] = KEY_KP4,
+ [ 9 ] = KEY_KP5,
+ [ 21 ] = KEY_KP6,
+ [ 6 ] = KEY_KP7,
+ [ 10 ] = KEY_KP8,
+ [ 18 ] = KEY_KP9,
+ [ 16 ] = KEY_KPDOT,
+
+ [ 3 ] = KEY_TUNER, // tv/fm
+ [ 4 ] = KEY_REWIND, // fm tuning left or function left
+ [ 12 ] = KEY_FORWARD, // fm tuning right or function right
+
+ [ 0 ] = KEY_RECORD,
+ [ 8 ] = KEY_STOP,
+ [ 17 ] = KEY_PLAY,
+
+ [ 25 ] = KEY_ZOOM,
+ [ 14 ] = KEY_MENU, // function
+ [ 19 ] = KEY_AGAIN, // recall
+ [ 29 ] = KEY_RESTART, // reset
+
+// FIXME
+ [ 13 ] = KEY_F21, // mts
+ [ 15 ] = KEY_F22, // min
+ [ 26 ] = KEY_F23, // freeze
+};
/* ---------------------------------------------------------------------- */
static int build_key(struct saa7134_dev *dev)
@@ -242,6 +283,12 @@ int saa7134_input_init1(struct saa7134_dev *dev)
mask_keyup = 0x000002;
polling = 50; // ms
break;
+ case SAA7134_BOARD_AVACSSMARTTV:
+ ir_codes = avacssmart_codes;
+ mask_keycode = 0x00001F;
+ mask_keyup = 0x000020;
+ polling = 50; // ms
+ break;
}
if (NULL == ir_codes) {
printk("%s: Oops: IR config error [card=%d]\n",