linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: mchehab@infradead.org
To: linux-kernel@vger.kernel.org
Cc: linux-dvb-maintainer@linuxtv.org, video4linux-list@redhat.com,
	akpm@osdl.org, Markus Rechberger <mrechberger@gmail.com>,
	Michael Krufky <mkrufky@m1k.net>,
	Mauro Carvalho Chehab <mchehab@infradead.org>
Subject: [PATCH 25/25] Added remote control support for pinnacle pctv
Date: Mon, 16 Jan 2006 07:11:26 -0200	[thread overview]
Message-ID: <20060116091126.PS06106100025@infradead.org> (raw)
In-Reply-To: <20060116091105.PS83611600000@infradead.org>


From: Markus Rechberger <mrechberger@gmail.com>

- Added remote control support for pinnacle pctv

Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Michael Krufky <mkrufky@m1k.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
---

 drivers/media/video/em28xx/em28xx-input.c |   77 +++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/em28xx/em28xx-input.c b/drivers/media/video/em28xx/em28xx-input.c
index 9b94f77..30dfa53 100644
--- a/drivers/media/video/em28xx/em28xx-input.c
+++ b/drivers/media/video/em28xx/em28xx-input.c
@@ -76,6 +76,58 @@ static IR_KEYTAB_TYPE ir_codes_em_terrat
 	[ 0x40 ] = KEY_ZOOM,
 };
 
+static IR_KEYTAB_TYPE ir_codes_em_pinnacle_usb[IR_KEYTAB_SIZE] = {
+	[ 0x3a ] = KEY_KP0,
+	[ 0x31 ] = KEY_KP1,
+	[ 0x32 ] = KEY_KP2,
+	[ 0x33 ] = KEY_KP3,
+	[ 0x34 ] = KEY_KP4,
+	[ 0x35 ] = KEY_KP5,
+	[ 0x36 ] = KEY_KP6,
+	[ 0x37 ] = KEY_KP7,
+	[ 0x38 ] = KEY_KP8,
+	[ 0x39 ] = KEY_KP9,
+
+	[ 0x2f ] = KEY_POWER,
+
+	[ 0x2e ] = KEY_P,
+	[ 0x1f ] = KEY_L,
+	[ 0x2b ] = KEY_I,
+
+	[ 0x2d ] = KEY_ZOOM,
+	[ 0x1e ] = KEY_ZOOM,
+	[ 0x1b ] = KEY_VOLUMEUP,
+	[ 0x0f ] = KEY_VOLUMEDOWN,
+	[ 0x17 ] = KEY_CHANNELUP,
+	[ 0x1c ] = KEY_CHANNELDOWN,
+	[ 0x25 ] = KEY_INFO,
+
+	[ 0x3c ] = KEY_MUTE,
+
+	[ 0x3d ] = KEY_LEFT,
+	[ 0x3b ] = KEY_RIGHT,
+
+	[ 0x3f ] = KEY_UP,
+	[ 0x3e ] = KEY_DOWN,
+	[ 0x1a ] = KEY_PAUSE,
+
+	[ 0x1d ] = KEY_MENU,
+	[ 0x19 ] = KEY_PLAY,
+	[ 0x16 ] = KEY_REWIND,
+	[ 0x13 ] = KEY_FORWARD,
+	[ 0x15 ] = KEY_PAUSE,
+	[ 0x0e ] = KEY_REWIND,
+	[ 0x0d ] = KEY_PLAY,
+	[ 0x0b ] = KEY_STOP,
+	[ 0x07 ] = KEY_FORWARD,
+	[ 0x27 ] = KEY_RECORD,
+	[ 0x26 ] = KEY_TUNER,
+	[ 0x29 ] = KEY_TEXT,
+	[ 0x2a ] = KEY_MEDIA,
+	[ 0x18 ] = KEY_EPG,
+	[ 0x27 ] = KEY_RECORD,
+};
+
 /* ----------------------------------------------------------------------- */
 
 static int get_key_terratec(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw)
@@ -138,6 +190,28 @@ static int get_key_em_haup(struct IR_i2c
 	return 1;
 }
 
+static int get_key_pinnacle_usb(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw)
+{
+	unsigned char buf[3];
+
+	/* poll IR chip */
+
+	if (3 != i2c_master_recv(&ir->c,buf,3)) {
+		dprintk("read error\n");
+		return -EIO;
+	}
+
+	dprintk("key %02x\n", buf[2]&0x3f);
+	if (buf[0]!=0x00){
+		return 0;
+	}
+
+	*ir_key = buf[2]&0x3f;
+	*ir_raw = buf[2]&0x3f;
+
+	return 1;
+}
+
 /* ----------------------------------------------------------------------- */
 void em28xx_set_ir(struct em28xx * dev,struct IR_i2c *ir)
 {
@@ -159,6 +233,9 @@ void em28xx_set_ir(struct em28xx * dev,s
 		snprintf(ir->c.name, sizeof(ir->c.name), "i2c IR (EM28XX Terratec)");
 		break;
 	case (EM2820_BOARD_PINNACLE_USB_2):
+		ir->ir_codes = ir_codes_em_pinnacle_usb;
+		ir->get_key = get_key_pinnacle_usb;
+		snprintf(ir->c.name, sizeof(ir->c.name), "i2c IR (EM28XX Pinnacle PCTV)");
 		break;
 	case (EM2820_BOARD_HAUPPAUGE_WINTV_USB_2):
 		ir->ir_codes = ir_codes_hauppauge_new;


  parent reply	other threads:[~2006-01-16  9:30 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-16  9:11 [PATCH 00/25] V4L/DVB updates mchehab
2006-01-16  9:11 ` [PATCH 04/25] Include missing MODULE_* macros mchehab
2006-01-16  9:11 ` [PATCH 03/25] removed uneeded init on structs like static int foo=0 mchehab
2006-01-16  9:11 ` [PATCH 01/25] Remove old MODULE_PARM in media/video/ mchehab
2006-01-16  9:11 ` [PATCH 02/25] bttv semaphore to mutex conversion mchehab
2006-01-16  9:11 ` [PATCH 07/25] Redesign tuners struct for maximum flexibility mchehab
2006-01-16  9:11 ` [PATCH 05/25] Build cx88-alsa when CONFIG_VIDEO_CX88_ALSA is selected mchehab
2006-01-16  9:11 ` [PATCH 06/25] Updated MODULE_AUTHOR mchehab
2006-01-16  9:11 ` [PATCH 09/25] disable all dvb tuner param_types until we need them mchehab
2006-01-16  9:11 ` [PATCH 10/25] i2c ids for upd64031a saa717x upd64083 wm8739 mchehab
2006-01-16  9:11 ` [PATCH 11/25] Turn frame locked sound on, basic support for FM radio with TDA8275(a) mchehab
2006-01-16  9:11 ` [PATCH 08/25] Add support for Samsung tuner TCPN 2121P30A mchehab
2006-01-16  9:11 ` [PATCH 14/25] make some code static mchehab
2006-01-16  9:11 ` [PATCH 12/25] git dvb callbacks fix mchehab
2006-01-16  9:11 ` [PATCH 13/25] cx88 Kconfig fixes for cx88-alsa mchehab
2006-01-16 21:10   ` Adrian Bunk
2006-01-16  9:11 ` [PATCH 16/25] Semaphore to mutex conversion on drivers/media mchehab
2006-01-16  9:11 ` [PATCH 15/25] Fix for lack of analog output on some cx88 boards mchehab
2006-01-16  9:11 ` [PATCH 17/25] Fix compilation with Alpha mchehab
2006-01-16  9:11 ` [PATCH 18/25] Move tda988x options into tuner_params struct mchehab
2006-01-16  9:11 ` [PATCH 20/25] Return -EINVAL for unknown commands in msp3400 module mchehab
2006-01-16  9:11 ` [PATCH 19/25] Separate tv & radio freqs, fix cb/freq transmit order for tuners that need this mchehab
2006-01-16  9:11 ` [PATCH 21/25] fix some sound quality & distortion problems mchehab
2006-01-16  9:11 ` [PATCH 22/25] clean up some comments mchehab
2006-01-16  9:11 ` [PATCH 24/25] Samsung TBMV30111IN has 6 entries mchehab
2006-01-16  9:11 ` [PATCH 23/25] tuner_params->tda988x is currently unused, so disable mchehab
2006-01-16  9:11 ` mchehab [this message]
2006-01-17 20:58   ` [PATCH 25/25] Added remote control support for pinnacle pctv victorhom
2006-01-17 18:22     ` Markus Rechberger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060116091126.PS06106100025@infradead.org \
    --to=mchehab@infradead.org \
    --cc=akpm@osdl.org \
    --cc=linux-dvb-maintainer@linuxtv.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mkrufky@m1k.net \
    --cc=mrechberger@gmail.com \
    --cc=video4linux-list@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).