* [PATCH 2/2] IT913X Version 1 and Version 2 keymaps
@ 2012-02-01 22:29 Malcolm Priestley
2012-02-06 12:42 ` Antti Palosaari
0 siblings, 1 reply; 4+ messages in thread
From: Malcolm Priestley @ 2012-02-01 22:29 UTC (permalink / raw)
To: linux-media
IT913X V1 V2 keymaps
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
---
drivers/media/rc/keymaps/Makefile | 2 +
drivers/media/rc/keymaps/rc-it913x-v1.c | 95 +++++++++++++++++++++++++++++++
drivers/media/rc/keymaps/rc-it913x-v2.c | 94 ++++++++++++++++++++++++++++++
include/media/rc-map.h | 2 +
4 files changed, 193 insertions(+), 0 deletions(-)
create mode 100644 drivers/media/rc/keymaps/rc-it913x-v1.c
create mode 100644 drivers/media/rc/keymaps/rc-it913x-v2.c
diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile
index 36e4d5e..9514d82 100644
--- a/drivers/media/rc/keymaps/Makefile
+++ b/drivers/media/rc/keymaps/Makefile
@@ -41,6 +41,8 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
rc-imon-mce.o \
rc-imon-pad.o \
rc-iodata-bctv7e.o \
+ rc-it913x-v1.o \
+ rc-it913x-v2.o \
rc-kaiomy.o \
rc-kworld-315u.o \
rc-kworld-plus-tv-analog.o \
diff --git a/drivers/media/rc/keymaps/rc-it913x-v1.c b/drivers/media/rc/keymaps/rc-it913x-v1.c
new file mode 100644
index 0000000..0ac775f
--- /dev/null
+++ b/drivers/media/rc/keymaps/rc-it913x-v1.c
@@ -0,0 +1,95 @@
+/* ITE Generic remotes Version 1
+ *
+ * Copyright (C) 2012 Malcolm Priestley (tvboxspy@gmail.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <media/rc-map.h>
+#include <linux/module.h>
+
+
+static struct rc_map_table it913x_v1_rc[] = {
+ /* Type 1 */
+ { 0x61d601, KEY_VIDEO }, /* Source */
+ { 0x61d602, KEY_3 },
+ { 0x61d603, KEY_POWER }, /* ShutDown */
+ { 0x61d604, KEY_1 },
+ { 0x61d605, KEY_5 },
+ { 0x61d606, KEY_6 },
+ { 0x61d607, KEY_CHANNELDOWN }, /* CH- */
+ { 0x61d608, KEY_2 },
+ { 0x61d609, KEY_CHANNELUP }, /* CH+ */
+ { 0x61d60a, KEY_9 },
+ { 0x61d60b, KEY_ZOOM }, /* Zoom */
+ { 0x61d60c, KEY_7 },
+ { 0x61d60d, KEY_8 },
+ { 0x61d60e, KEY_VOLUMEUP }, /* Vol+ */
+ { 0x61d60f, KEY_4 },
+ { 0x61d610, KEY_ESC }, /* [back up arrow] */
+ { 0x61d611, KEY_0 },
+ { 0x61d612, KEY_OK }, /* [enter arrow] */
+ { 0x61d613, KEY_VOLUMEDOWN }, /* Vol- */
+ { 0x61d614, KEY_RECORD }, /* Rec */
+ { 0x61d615, KEY_STOP }, /* Stop */
+ { 0x61d616, KEY_PLAY }, /* Play */
+ { 0x61d617, KEY_MUTE }, /* Mute */
+ { 0x61d618, KEY_UP },
+ { 0x61d619, KEY_DOWN },
+ { 0x61d61a, KEY_LEFT },
+ { 0x61d61b, KEY_RIGHT },
+ { 0x61d61c, KEY_RED },
+ { 0x61d61d, KEY_GREEN },
+ { 0x61d61e, KEY_YELLOW },
+ { 0x61d61f, KEY_BLUE },
+ { 0x61d643, KEY_POWER2 }, /* [red power button] */
+ /* Type 2 - 20 buttons */
+ { 0x807f0d, KEY_0 },
+ { 0x807f04, KEY_1 },
+ { 0x807f05, KEY_2 },
+ { 0x807f06, KEY_3 },
+ { 0x807f07, KEY_4 },
+ { 0x807f08, KEY_5 },
+ { 0x807f09, KEY_6 },
+ { 0x807f0a, KEY_7 },
+ { 0x807f1b, KEY_8 },
+ { 0x807f1f, KEY_9 },
+ { 0x807f12, KEY_POWER },
+ { 0x807f01, KEY_MEDIA_REPEAT}, /* Recall */
+ { 0x807f19, KEY_PAUSE }, /* Timeshift */
+ { 0x807f1e, KEY_VOLUMEUP }, /* 2 x -/+ Keys not marked */
+ { 0x807f03, KEY_VOLUMEDOWN }, /* Volume defined as right hand*/
+ { 0x807f1a, KEY_CHANNELUP },
+ { 0x807f02, KEY_CHANNELDOWN },
+ { 0x807f0c, KEY_ZOOM },
+ { 0x807f00, KEY_RECORD },
+ { 0x807f0e, KEY_STOP },
+};
+
+static struct rc_map_list it913x_v1_map = {
+ .map = {
+ .scan = it913x_v1_rc,
+ .size = ARRAY_SIZE(it913x_v1_rc),
+ .rc_type = RC_TYPE_NEC,
+ .name = RC_MAP_IT913X_V1,
+ }
+};
+
+static int __init init_rc_it913x_v1_map(void)
+{
+ return rc_map_register(&it913x_v1_map);
+}
+
+static void __exit exit_rc_it913x_v1_map(void)
+{
+ rc_map_unregister(&it913x_v1_map);
+}
+
+module_init(init_rc_it913x_v1_map)
+module_exit(exit_rc_it913x_v1_map)
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Malcolm Priestley tvboxspy@gmail.com");
diff --git a/drivers/media/rc/keymaps/rc-it913x-v2.c b/drivers/media/rc/keymaps/rc-it913x-v2.c
new file mode 100644
index 0000000..28e376e
--- /dev/null
+++ b/drivers/media/rc/keymaps/rc-it913x-v2.c
@@ -0,0 +1,94 @@
+/* ITE Generic remotes Version 2
+ *
+ * Copyright (C) 2012 Malcolm Priestley (tvboxspy@gmail.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <media/rc-map.h>
+#include <linux/module.h>
+
+
+static struct rc_map_table it913x_v2_rc[] = {
+ /* Type 1 */
+ /* 9005 remote */
+ { 0x807f12, KEY_POWER2 }, /* Power (RED POWER BUTTON)*/
+ { 0x807f1a, KEY_VIDEO }, /* Source */
+ { 0x807f1e, KEY_MUTE }, /* Mute */
+ { 0x807f01, KEY_RECORD }, /* Record */
+ { 0x807f02, KEY_CHANNELUP }, /* Channel+ */
+ { 0x807f03, KEY_TIME }, /* TimeShift */
+ { 0x807f04, KEY_VOLUMEUP }, /* Volume- */
+ { 0x807f05, KEY_SCREEN }, /* FullScreen */
+ { 0x807f06, KEY_VOLUMEDOWN }, /* Volume- */
+ { 0x807f07, KEY_0 }, /* 0 */
+ { 0x807f08, KEY_CHANNELDOWN }, /* Channel- */
+ { 0x807f09, KEY_PREVIOUS }, /* Recall */
+ { 0x807f0a, KEY_1 }, /* 1 */
+ { 0x807f1b, KEY_2 }, /* 2 */
+ { 0x807f1f, KEY_3 }, /* 3 */
+ { 0x807f0c, KEY_4 }, /* 4 */
+ { 0x807f0d, KEY_5 }, /* 5 */
+ { 0x807f0e, KEY_6 }, /* 6 */
+ { 0x807f00, KEY_7 }, /* 7 */
+ { 0x807f0f, KEY_8 }, /* 8 */
+ { 0x807f19, KEY_9 }, /* 9 */
+
+ /* Type 2 */
+ /* keys stereo, snapshot unassigned */
+ { 0x866b00, KEY_0 },
+ { 0x866b1b, KEY_1 },
+ { 0x866b02, KEY_2 },
+ { 0x866b03, KEY_3 },
+ { 0x866b04, KEY_4 },
+ { 0x866b05, KEY_5 },
+ { 0x866b06, KEY_6 },
+ { 0x866b07, KEY_7 },
+ { 0x866b08, KEY_8 },
+ { 0x866b09, KEY_9 },
+ { 0x866b12, KEY_POWER },
+ { 0x866b13, KEY_MUTE },
+ { 0x866b0a, KEY_PREVIOUS }, /* Recall */
+ { 0x866b1e, KEY_PAUSE },
+ { 0x866b0c, KEY_VOLUMEUP },
+ { 0x866b18, KEY_VOLUMEDOWN },
+ { 0x866b0b, KEY_CHANNELUP },
+ { 0x866b18, KEY_CHANNELDOWN },
+ { 0x866b10, KEY_ZOOM },
+ { 0x866b1d, KEY_RECORD },
+ { 0x866b0e, KEY_STOP },
+ { 0x866b11, KEY_EPG},
+ { 0x866b1a, KEY_FASTFORWARD },
+ { 0x866b0f, KEY_REWIND },
+ { 0x866b1c, KEY_TV },
+ { 0x866b1b, KEY_TEXT },
+
+};
+
+static struct rc_map_list it913x_v2_map = {
+ .map = {
+ .scan = it913x_v2_rc,
+ .size = ARRAY_SIZE(it913x_v2_rc),
+ .rc_type = RC_TYPE_NEC,
+ .name = RC_MAP_IT913X_V2,
+ }
+};
+
+static int __init init_rc_it913x_v2_map(void)
+{
+ return rc_map_register(&it913x_v2_map);
+}
+
+static void __exit exit_rc_it913x_v2_map(void)
+{
+ rc_map_unregister(&it913x_v2_map);
+}
+
+module_init(init_rc_it913x_v2_map)
+module_exit(exit_rc_it913x_v2_map)
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Malcolm Priestley tvboxspy@gmail.com");
diff --git a/include/media/rc-map.h b/include/media/rc-map.h
index f688bde..5b988d7 100644
--- a/include/media/rc-map.h
+++ b/include/media/rc-map.h
@@ -102,6 +102,8 @@ void rc_map_init(void);
#define RC_MAP_IMON_MCE "rc-imon-mce"
#define RC_MAP_IMON_PAD "rc-imon-pad"
#define RC_MAP_IODATA_BCTV7E "rc-iodata-bctv7e"
+#define RC_MAP_IT913X_V1 "rc-it913x-v1"
+#define RC_MAP_IT913X_V2 "rc-it913x-v2"
#define RC_MAP_KAIOMY "rc-kaiomy"
#define RC_MAP_KWORLD_315U "rc-kworld-315u"
#define RC_MAP_KWORLD_PLUS_TV_ANALOG "rc-kworld-plus-tv-analog"
--
1.7.8.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] IT913X Version 1 and Version 2 keymaps
2012-02-01 22:29 [PATCH 2/2] IT913X Version 1 and Version 2 keymaps Malcolm Priestley
@ 2012-02-06 12:42 ` Antti Palosaari
2012-02-06 17:06 ` Malcolm Priestley
0 siblings, 1 reply; 4+ messages in thread
From: Antti Palosaari @ 2012-02-06 12:42 UTC (permalink / raw)
To: Malcolm Priestley; +Cc: linux-media
On 02/02/2012 12:29 AM, Malcolm Priestley wrote:
> IT913X V1 V2 keymaps
>
> Signed-off-by: Malcolm Priestley<tvboxspy@gmail.com>
>
> ---
> drivers/media/rc/keymaps/Makefile | 2 +
> drivers/media/rc/keymaps/rc-it913x-v1.c | 95 +++++++++++++++++++++++++++++++
> drivers/media/rc/keymaps/rc-it913x-v2.c | 94 ++++++++++++++++++++++++++++++
> include/media/rc-map.h | 2 +
> 4 files changed, 193 insertions(+), 0 deletions(-)
> create mode 100644 drivers/media/rc/keymaps/rc-it913x-v1.c
> create mode 100644 drivers/media/rc/keymaps/rc-it913x-v2.c
>
> diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile
> index 36e4d5e..9514d82 100644
> --- a/drivers/media/rc/keymaps/Makefile
> +++ b/drivers/media/rc/keymaps/Makefile
> @@ -41,6 +41,8 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
> rc-imon-mce.o \
> rc-imon-pad.o \
> rc-iodata-bctv7e.o \
> + rc-it913x-v1.o \
> + rc-it913x-v2.o \
> rc-kaiomy.o \
> rc-kworld-315u.o \
> rc-kworld-plus-tv-analog.o \
> diff --git a/drivers/media/rc/keymaps/rc-it913x-v1.c b/drivers/media/rc/keymaps/rc-it913x-v1.c
> new file mode 100644
> index 0000000..0ac775f
> --- /dev/null
> +++ b/drivers/media/rc/keymaps/rc-it913x-v1.c
> @@ -0,0 +1,95 @@
> +/* ITE Generic remotes Version 1
> + *
> + * Copyright (C) 2012 Malcolm Priestley (tvboxspy@gmail.com)
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +
> +#include<media/rc-map.h>
> +#include<linux/module.h>
> +
> +
> +static struct rc_map_table it913x_v1_rc[] = {
> + /* Type 1 */
> + { 0x61d601, KEY_VIDEO }, /* Source */
> + { 0x61d602, KEY_3 },
> + { 0x61d603, KEY_POWER }, /* ShutDown */
> + { 0x61d604, KEY_1 },
> + { 0x61d605, KEY_5 },
> + { 0x61d606, KEY_6 },
> + { 0x61d607, KEY_CHANNELDOWN }, /* CH- */
> + { 0x61d608, KEY_2 },
> + { 0x61d609, KEY_CHANNELUP }, /* CH+ */
> + { 0x61d60a, KEY_9 },
> + { 0x61d60b, KEY_ZOOM }, /* Zoom */
> + { 0x61d60c, KEY_7 },
> + { 0x61d60d, KEY_8 },
> + { 0x61d60e, KEY_VOLUMEUP }, /* Vol+ */
> + { 0x61d60f, KEY_4 },
> + { 0x61d610, KEY_ESC }, /* [back up arrow] */
> + { 0x61d611, KEY_0 },
> + { 0x61d612, KEY_OK }, /* [enter arrow] */
> + { 0x61d613, KEY_VOLUMEDOWN }, /* Vol- */
> + { 0x61d614, KEY_RECORD }, /* Rec */
> + { 0x61d615, KEY_STOP }, /* Stop */
> + { 0x61d616, KEY_PLAY }, /* Play */
> + { 0x61d617, KEY_MUTE }, /* Mute */
> + { 0x61d618, KEY_UP },
> + { 0x61d619, KEY_DOWN },
> + { 0x61d61a, KEY_LEFT },
> + { 0x61d61b, KEY_RIGHT },
> + { 0x61d61c, KEY_RED },
> + { 0x61d61d, KEY_GREEN },
> + { 0x61d61e, KEY_YELLOW },
> + { 0x61d61f, KEY_BLUE },
> + { 0x61d643, KEY_POWER2 }, /* [red power button] */
That remote is already there. Use existing remote instead of adding new
one with different name. It is RC_MAP_MSI_DIGIVOX_III
> + /* Type 2 - 20 buttons */
> + { 0x807f0d, KEY_0 },
> + { 0x807f04, KEY_1 },
> + { 0x807f05, KEY_2 },
> + { 0x807f06, KEY_3 },
> + { 0x807f07, KEY_4 },
> + { 0x807f08, KEY_5 },
> + { 0x807f09, KEY_6 },
> + { 0x807f0a, KEY_7 },
> + { 0x807f1b, KEY_8 },
> + { 0x807f1f, KEY_9 },
> + { 0x807f12, KEY_POWER },
> + { 0x807f01, KEY_MEDIA_REPEAT}, /* Recall */
> + { 0x807f19, KEY_PAUSE }, /* Timeshift */
> + { 0x807f1e, KEY_VOLUMEUP }, /* 2 x -/+ Keys not marked */
> + { 0x807f03, KEY_VOLUMEDOWN }, /* Volume defined as right hand*/
> + { 0x807f1a, KEY_CHANNELUP },
> + { 0x807f02, KEY_CHANNELDOWN },
> + { 0x807f0c, KEY_ZOOM },
> + { 0x807f00, KEY_RECORD },
> + { 0x807f0e, KEY_STOP },
That is NEC basic - 16 bit, not 24 bit. That remote seems to be here
also. It is RC_MAP_TERRATEC_SLIM_2. Use existing instead of define new.
> +};
> +
> +static struct rc_map_list it913x_v1_map = {
> + .map = {
> + .scan = it913x_v1_rc,
> + .size = ARRAY_SIZE(it913x_v1_rc),
> + .rc_type = RC_TYPE_NEC,
> + .name = RC_MAP_IT913X_V1,
> + }
> +};
> +
> +static int __init init_rc_it913x_v1_map(void)
> +{
> + return rc_map_register(&it913x_v1_map);
> +}
> +
> +static void __exit exit_rc_it913x_v1_map(void)
> +{
> + rc_map_unregister(&it913x_v1_map);
> +}
> +
> +module_init(init_rc_it913x_v1_map)
> +module_exit(exit_rc_it913x_v1_map)
> +
> +MODULE_LICENSE("GPL");
> +MODULE_AUTHOR("Malcolm Priestley tvboxspy@gmail.com");
> diff --git a/drivers/media/rc/keymaps/rc-it913x-v2.c b/drivers/media/rc/keymaps/rc-it913x-v2.c
> new file mode 100644
> index 0000000..28e376e
> --- /dev/null
> +++ b/drivers/media/rc/keymaps/rc-it913x-v2.c
> @@ -0,0 +1,94 @@
> +/* ITE Generic remotes Version 2
> + *
> + * Copyright (C) 2012 Malcolm Priestley (tvboxspy@gmail.com)
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + */
> +
> +#include<media/rc-map.h>
> +#include<linux/module.h>
> +
> +
> +static struct rc_map_table it913x_v2_rc[] = {
> + /* Type 1 */
> + /* 9005 remote */
> + { 0x807f12, KEY_POWER2 }, /* Power (RED POWER BUTTON)*/
> + { 0x807f1a, KEY_VIDEO }, /* Source */
> + { 0x807f1e, KEY_MUTE }, /* Mute */
> + { 0x807f01, KEY_RECORD }, /* Record */
> + { 0x807f02, KEY_CHANNELUP }, /* Channel+ */
> + { 0x807f03, KEY_TIME }, /* TimeShift */
> + { 0x807f04, KEY_VOLUMEUP }, /* Volume- */
> + { 0x807f05, KEY_SCREEN }, /* FullScreen */
> + { 0x807f06, KEY_VOLUMEDOWN }, /* Volume- */
> + { 0x807f07, KEY_0 }, /* 0 */
> + { 0x807f08, KEY_CHANNELDOWN }, /* Channel- */
> + { 0x807f09, KEY_PREVIOUS }, /* Recall */
> + { 0x807f0a, KEY_1 }, /* 1 */
> + { 0x807f1b, KEY_2 }, /* 2 */
> + { 0x807f1f, KEY_3 }, /* 3 */
> + { 0x807f0c, KEY_4 }, /* 4 */
> + { 0x807f0d, KEY_5 }, /* 5 */
> + { 0x807f0e, KEY_6 }, /* 6 */
> + { 0x807f00, KEY_7 }, /* 7 */
> + { 0x807f0f, KEY_8 }, /* 8 */
> + { 0x807f19, KEY_9 }, /* 9 */
That is also 16 bit NEC basic.
> +
> + /* Type 2 */
> + /* keys stereo, snapshot unassigned */
> + { 0x866b00, KEY_0 },
> + { 0x866b1b, KEY_1 },
> + { 0x866b02, KEY_2 },
> + { 0x866b03, KEY_3 },
> + { 0x866b04, KEY_4 },
> + { 0x866b05, KEY_5 },
> + { 0x866b06, KEY_6 },
> + { 0x866b07, KEY_7 },
> + { 0x866b08, KEY_8 },
> + { 0x866b09, KEY_9 },
> + { 0x866b12, KEY_POWER },
> + { 0x866b13, KEY_MUTE },
> + { 0x866b0a, KEY_PREVIOUS }, /* Recall */
> + { 0x866b1e, KEY_PAUSE },
> + { 0x866b0c, KEY_VOLUMEUP },
> + { 0x866b18, KEY_VOLUMEDOWN },
> + { 0x866b0b, KEY_CHANNELUP },
> + { 0x866b18, KEY_CHANNELDOWN },
> + { 0x866b10, KEY_ZOOM },
> + { 0x866b1d, KEY_RECORD },
> + { 0x866b0e, KEY_STOP },
> + { 0x866b11, KEY_EPG},
> + { 0x866b1a, KEY_FASTFORWARD },
> + { 0x866b0f, KEY_REWIND },
> + { 0x866b1c, KEY_TV },
> + { 0x866b1b, KEY_TEXT },
> +
> +};
> +
> +static struct rc_map_list it913x_v2_map = {
> + .map = {
> + .scan = it913x_v2_rc,
> + .size = ARRAY_SIZE(it913x_v2_rc),
> + .rc_type = RC_TYPE_NEC,
> + .name = RC_MAP_IT913X_V2,
> + }
> +};
> +
> +static int __init init_rc_it913x_v2_map(void)
> +{
> + return rc_map_register(&it913x_v2_map);
> +}
> +
> +static void __exit exit_rc_it913x_v2_map(void)
> +{
> + rc_map_unregister(&it913x_v2_map);
> +}
> +
> +module_init(init_rc_it913x_v2_map)
> +module_exit(exit_rc_it913x_v2_map)
> +
> +MODULE_LICENSE("GPL");
> +MODULE_AUTHOR("Malcolm Priestley tvboxspy@gmail.com");
> diff --git a/include/media/rc-map.h b/include/media/rc-map.h
> index f688bde..5b988d7 100644
> --- a/include/media/rc-map.h
> +++ b/include/media/rc-map.h
> @@ -102,6 +102,8 @@ void rc_map_init(void);
> #define RC_MAP_IMON_MCE "rc-imon-mce"
> #define RC_MAP_IMON_PAD "rc-imon-pad"
> #define RC_MAP_IODATA_BCTV7E "rc-iodata-bctv7e"
> +#define RC_MAP_IT913X_V1 "rc-it913x-v1"
> +#define RC_MAP_IT913X_V2 "rc-it913x-v2"
> #define RC_MAP_KAIOMY "rc-kaiomy"
> #define RC_MAP_KWORLD_315U "rc-kworld-315u"
> #define RC_MAP_KWORLD_PLUS_TV_ANALOG "rc-kworld-plus-tv-analog"
regards
Antti
--
http://palosaari.fi/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] IT913X Version 1 and Version 2 keymaps
2012-02-06 12:42 ` Antti Palosaari
@ 2012-02-06 17:06 ` Malcolm Priestley
2012-02-08 13:54 ` Antti Palosaari
0 siblings, 1 reply; 4+ messages in thread
From: Malcolm Priestley @ 2012-02-06 17:06 UTC (permalink / raw)
To: Antti Palosaari; +Cc: linux-media
On Mon, 2012-02-06 at 14:42 +0200, Antti Palosaari wrote:
> On 02/02/2012 12:29 AM, Malcolm Priestley wrote:
> > IT913X V1 V2 keymaps
> >
> > Signed-off-by: Malcolm Priestley<tvboxspy@gmail.com>
> >
> > ---
> > drivers/media/rc/keymaps/Makefile | 2 +
> > drivers/media/rc/keymaps/rc-it913x-v1.c | 95 +++++++++++++++++++++++++++++++
> > drivers/media/rc/keymaps/rc-it913x-v2.c | 94 ++++++++++++++++++++++++++++++
> > include/media/rc-map.h | 2 +
> > 4 files changed, 193 insertions(+), 0 deletions(-)
> > create mode 100644 drivers/media/rc/keymaps/rc-it913x-v1.c
> > create mode 100644 drivers/media/rc/keymaps/rc-it913x-v2.c
> >
> > diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile
> > index 36e4d5e..9514d82 100644
> > --- a/drivers/media/rc/keymaps/Makefile
> > +++ b/drivers/media/rc/keymaps/Makefile
> > @@ -41,6 +41,8 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
> > rc-imon-mce.o \
> > rc-imon-pad.o \
> > rc-iodata-bctv7e.o \
> > + rc-it913x-v1.o \
> > + rc-it913x-v2.o \
> > rc-kaiomy.o \
> > rc-kworld-315u.o \
> > rc-kworld-plus-tv-analog.o \
> > diff --git a/drivers/media/rc/keymaps/rc-it913x-v1.c b/drivers/media/rc/keymaps/rc-it913x-v1.c
> > new file mode 100644
> > index 0000000..0ac775f
> > --- /dev/null
> > +++ b/drivers/media/rc/keymaps/rc-it913x-v1.c
> > @@ -0,0 +1,95 @@
> > +/* ITE Generic remotes Version 1
> > + *
> > + * Copyright (C) 2012 Malcolm Priestley (tvboxspy@gmail.com)
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License as published by
> > + * the Free Software Foundation; either version 2 of the License, or
> > + * (at your option) any later version.
> > + */
> > +
> > +#include<media/rc-map.h>
> > +#include<linux/module.h>
> > +
> > +
> > +static struct rc_map_table it913x_v1_rc[] = {
> > + /* Type 1 */
> > + { 0x61d601, KEY_VIDEO }, /* Source */
> > + { 0x61d602, KEY_3 },
> > + { 0x61d603, KEY_POWER }, /* ShutDown */
> > + { 0x61d604, KEY_1 },
> > + { 0x61d605, KEY_5 },
> > + { 0x61d606, KEY_6 },
> > + { 0x61d607, KEY_CHANNELDOWN }, /* CH- */
> > + { 0x61d608, KEY_2 },
> > + { 0x61d609, KEY_CHANNELUP }, /* CH+ */
> > + { 0x61d60a, KEY_9 },
> > + { 0x61d60b, KEY_ZOOM }, /* Zoom */
> > + { 0x61d60c, KEY_7 },
> > + { 0x61d60d, KEY_8 },
> > + { 0x61d60e, KEY_VOLUMEUP }, /* Vol+ */
> > + { 0x61d60f, KEY_4 },
> > + { 0x61d610, KEY_ESC }, /* [back up arrow] */
> > + { 0x61d611, KEY_0 },
> > + { 0x61d612, KEY_OK }, /* [enter arrow] */
> > + { 0x61d613, KEY_VOLUMEDOWN }, /* Vol- */
> > + { 0x61d614, KEY_RECORD }, /* Rec */
> > + { 0x61d615, KEY_STOP }, /* Stop */
> > + { 0x61d616, KEY_PLAY }, /* Play */
> > + { 0x61d617, KEY_MUTE }, /* Mute */
> > + { 0x61d618, KEY_UP },
> > + { 0x61d619, KEY_DOWN },
> > + { 0x61d61a, KEY_LEFT },
> > + { 0x61d61b, KEY_RIGHT },
> > + { 0x61d61c, KEY_RED },
> > + { 0x61d61d, KEY_GREEN },
> > + { 0x61d61e, KEY_YELLOW },
> > + { 0x61d61f, KEY_BLUE },
> > + { 0x61d643, KEY_POWER2 }, /* [red power button] */
>
> That remote is already there. Use existing remote instead of adding new
> one with different name. It is RC_MAP_MSI_DIGIVOX_III
>
The driver originally used this map.
RC_MAP_MSI_DIGIVOX_III and RC_MAP_KWORLD_315U also are the same map.
>
> > + /* Type 2 - 20 buttons */
> > + { 0x807f0d, KEY_0 },
> > + { 0x807f04, KEY_1 },
> > + { 0x807f05, KEY_2 },
> > + { 0x807f06, KEY_3 },
> > + { 0x807f07, KEY_4 },
> > + { 0x807f08, KEY_5 },
> > + { 0x807f09, KEY_6 },
> > + { 0x807f0a, KEY_7 },
> > + { 0x807f1b, KEY_8 },
> > + { 0x807f1f, KEY_9 },
> > + { 0x807f12, KEY_POWER },
> > + { 0x807f01, KEY_MEDIA_REPEAT}, /* Recall */
> > + { 0x807f19, KEY_PAUSE }, /* Timeshift */
> > + { 0x807f1e, KEY_VOLUMEUP }, /* 2 x -/+ Keys not marked */
> > + { 0x807f03, KEY_VOLUMEDOWN }, /* Volume defined as right hand*/
> > + { 0x807f1a, KEY_CHANNELUP },
> > + { 0x807f02, KEY_CHANNELDOWN },
> > + { 0x807f0c, KEY_ZOOM },
> > + { 0x807f00, KEY_RECORD },
> > + { 0x807f0e, KEY_STOP },
>
> That is NEC basic - 16 bit, not 24 bit. That remote seems to be here
> also. It is RC_MAP_TERRATEC_SLIM_2. Use existing instead of define new.
>
All ITE NEC remotes are 32bit with 0xff00 mask. However, they are
modified to 24 bit or 16 bit.
The both maps need to merged because they share the same product ID.
> > +};
> > +
> > +static struct rc_map_list it913x_v1_map = {
> > + .map = {
> > + .scan = it913x_v1_rc,
> > + .size = ARRAY_SIZE(it913x_v1_rc),
> > + .rc_type = RC_TYPE_NEC,
> > + .name = RC_MAP_IT913X_V1,
> > + }
> > +};
> > +
> > +static int __init init_rc_it913x_v1_map(void)
> > +{
> > + return rc_map_register(&it913x_v1_map);
> > +}
> > +
> > +static void __exit exit_rc_it913x_v1_map(void)
> > +{
> > + rc_map_unregister(&it913x_v1_map);
> > +}
> > +
> > +module_init(init_rc_it913x_v1_map)
> > +module_exit(exit_rc_it913x_v1_map)
> > +
> > +MODULE_LICENSE("GPL");
> > +MODULE_AUTHOR("Malcolm Priestley tvboxspy@gmail.com");
> > diff --git a/drivers/media/rc/keymaps/rc-it913x-v2.c b/drivers/media/rc/keymaps/rc-it913x-v2.c
> > new file mode 100644
> > index 0000000..28e376e
> > --- /dev/null
> > +++ b/drivers/media/rc/keymaps/rc-it913x-v2.c
> > @@ -0,0 +1,94 @@
> > +/* ITE Generic remotes Version 2
> > + *
> > + * Copyright (C) 2012 Malcolm Priestley (tvboxspy@gmail.com)
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License as published by
> > + * the Free Software Foundation; either version 2 of the License, or
> > + * (at your option) any later version.
> > + */
> > +
> > +#include<media/rc-map.h>
> > +#include<linux/module.h>
> > +
> > +
> > +static struct rc_map_table it913x_v2_rc[] = {
> > + /* Type 1 */
> > + /* 9005 remote */
> > + { 0x807f12, KEY_POWER2 }, /* Power (RED POWER BUTTON)*/
> > + { 0x807f1a, KEY_VIDEO }, /* Source */
> > + { 0x807f1e, KEY_MUTE }, /* Mute */
> > + { 0x807f01, KEY_RECORD }, /* Record */
> > + { 0x807f02, KEY_CHANNELUP }, /* Channel+ */
> > + { 0x807f03, KEY_TIME }, /* TimeShift */
> > + { 0x807f04, KEY_VOLUMEUP }, /* Volume- */
> > + { 0x807f05, KEY_SCREEN }, /* FullScreen */
> > + { 0x807f06, KEY_VOLUMEDOWN }, /* Volume- */
> > + { 0x807f07, KEY_0 }, /* 0 */
> > + { 0x807f08, KEY_CHANNELDOWN }, /* Channel- */
> > + { 0x807f09, KEY_PREVIOUS }, /* Recall */
> > + { 0x807f0a, KEY_1 }, /* 1 */
> > + { 0x807f1b, KEY_2 }, /* 2 */
> > + { 0x807f1f, KEY_3 }, /* 3 */
> > + { 0x807f0c, KEY_4 }, /* 4 */
> > + { 0x807f0d, KEY_5 }, /* 5 */
> > + { 0x807f0e, KEY_6 }, /* 6 */
> > + { 0x807f00, KEY_7 }, /* 7 */
> > + { 0x807f0f, KEY_8 }, /* 8 */
> > + { 0x807f19, KEY_9 }, /* 9 */
>
> That is also 16 bit NEC basic.
>
This is a different map.
All the maps will soon need to be 32bit, HID type interfaces need the
32bit map uploaded.
Regards
Malcolm
> > +
> > + /* Type 2 */
> > + /* keys stereo, snapshot unassigned */
> > + { 0x866b00, KEY_0 },
> > + { 0x866b1b, KEY_1 },
> > + { 0x866b02, KEY_2 },
> > + { 0x866b03, KEY_3 },
> > + { 0x866b04, KEY_4 },
> > + { 0x866b05, KEY_5 },
> > + { 0x866b06, KEY_6 },
> > + { 0x866b07, KEY_7 },
> > + { 0x866b08, KEY_8 },
> > + { 0x866b09, KEY_9 },
> > + { 0x866b12, KEY_POWER },
> > + { 0x866b13, KEY_MUTE },
> > + { 0x866b0a, KEY_PREVIOUS }, /* Recall */
> > + { 0x866b1e, KEY_PAUSE },
> > + { 0x866b0c, KEY_VOLUMEUP },
> > + { 0x866b18, KEY_VOLUMEDOWN },
> > + { 0x866b0b, KEY_CHANNELUP },
> > + { 0x866b18, KEY_CHANNELDOWN },
> > + { 0x866b10, KEY_ZOOM },
> > + { 0x866b1d, KEY_RECORD },
> > + { 0x866b0e, KEY_STOP },
> > + { 0x866b11, KEY_EPG},
> > + { 0x866b1a, KEY_FASTFORWARD },
> > + { 0x866b0f, KEY_REWIND },
> > + { 0x866b1c, KEY_TV },
> > + { 0x866b1b, KEY_TEXT },
> > +
> > +};
> > +
> > +static struct rc_map_list it913x_v2_map = {
> > + .map = {
> > + .scan = it913x_v2_rc,
> > + .size = ARRAY_SIZE(it913x_v2_rc),
> > + .rc_type = RC_TYPE_NEC,
> > + .name = RC_MAP_IT913X_V2,
> > + }
> > +};
> > +
> > +static int __init init_rc_it913x_v2_map(void)
> > +{
> > + return rc_map_register(&it913x_v2_map);
> > +}
> > +
> > +static void __exit exit_rc_it913x_v2_map(void)
> > +{
> > + rc_map_unregister(&it913x_v2_map);
> > +}
> > +
> > +module_init(init_rc_it913x_v2_map)
> > +module_exit(exit_rc_it913x_v2_map)
> > +
> > +MODULE_LICENSE("GPL");
> > +MODULE_AUTHOR("Malcolm Priestley tvboxspy@gmail.com");
> > diff --git a/include/media/rc-map.h b/include/media/rc-map.h
> > index f688bde..5b988d7 100644
> > --- a/include/media/rc-map.h
> > +++ b/include/media/rc-map.h
> > @@ -102,6 +102,8 @@ void rc_map_init(void);
> > #define RC_MAP_IMON_MCE "rc-imon-mce"
> > #define RC_MAP_IMON_PAD "rc-imon-pad"
> > #define RC_MAP_IODATA_BCTV7E "rc-iodata-bctv7e"
> > +#define RC_MAP_IT913X_V1 "rc-it913x-v1"
> > +#define RC_MAP_IT913X_V2 "rc-it913x-v2"
> > #define RC_MAP_KAIOMY "rc-kaiomy"
> > #define RC_MAP_KWORLD_315U "rc-kworld-315u"
> > #define RC_MAP_KWORLD_PLUS_TV_ANALOG "rc-kworld-plus-tv-analog"
>
>
> regards
> Antti
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] IT913X Version 1 and Version 2 keymaps
2012-02-06 17:06 ` Malcolm Priestley
@ 2012-02-08 13:54 ` Antti Palosaari
0 siblings, 0 replies; 4+ messages in thread
From: Antti Palosaari @ 2012-02-08 13:54 UTC (permalink / raw)
To: Malcolm Priestley; +Cc: linux-media
On 06.02.2012 19:06, Malcolm Priestley wrote:
> On Mon, 2012-02-06 at 14:42 +0200, Antti Palosaari wrote:
>> On 02/02/2012 12:29 AM, Malcolm Priestley wrote:
>>> IT913X V1 V2 keymaps
>>> +static struct rc_map_table it913x_v1_rc[] = {
>>> + /* Type 1 */
>>
>> That remote is already there. Use existing remote instead of adding new
>> one with different name. It is RC_MAP_MSI_DIGIVOX_III
>>
> The driver originally used this map.
>
> RC_MAP_MSI_DIGIVOX_III and RC_MAP_KWORLD_315U also are the same map.
Yes it is. As you likely saw from the comments I have added:
/* This remote seems to be same as rc-kworld-315u.c. Anyhow, add new
remote since rc-kworld-315u.c lacks NEC extended address byte. */
The reason I was forced to add new keymap instead of fixing
RC_MAP_KWORLD_315U was simple I didn't have em28xx device to test and
fix it at that time. So I added new correct keymap. Fix should be done
for em28xx driver to handle 24bit NEC extended.
>>> + /* Type 2 - 20 buttons */
>>> + { 0x807f0d, KEY_0 },
>>> + { 0x807f0e, KEY_STOP },
>>
>> That is NEC basic - 16 bit, not 24 bit. That remote seems to be here
>> also. It is RC_MAP_TERRATEC_SLIM_2. Use existing instead of define new.
>>
>
> All ITE NEC remotes are 32bit with 0xff00 mask. However, they are
> modified to 24 bit or 16 bit.
That is wrong assumption. NEC sends always physically 32bit. Original
NEC is is still 16bit long as payload. Other 16bit are reduntant and are
used for checksum. If you XOR byte0 and byte1 you got 0xff. Same applies
for byte2 and byte3.
Using 0xff00 you give as example => 0xff XOR 0x00 = 0xFF.
And for remote in question, 0x80 XOR 7f = 0xFF.
> The both maps need to merged because they share the same product ID.
Yes, thats tricky part. I still don't see idea to put all possible
remotes to one file. If you look AF9015 driver you can see same problem.
And maybe many others too. That was one reason for RC-core too. The idea
was to upload keytable from the userspace in that case.
>>> +static struct rc_map_table it913x_v2_rc[] = {
>>> + /* Type 1 */
>>> + /* 9005 remote */
>>> + { 0x807f12, KEY_POWER2 }, /* Power (RED POWER BUTTON)*/
>>
>> That is also 16 bit NEC basic.
>>
> This is a different map.
>
> All the maps will soon need to be 32bit, HID type interfaces need the
> 32bit map uploaded.
It does not matter what HID wants. As those are simply checksums you can
calculate those easily in the driver. See af9015 for example. And some
other drivers too, IIRC DiBcom at least.
IMHO all NEC should be defined as full 32 bit code. I asked that many
times when RC-core was introduced and I was converting af9015 to
RC-core. But it is now differently, only payload bytes are defined to
the keytable and checksum bytes left out. That was spoken many times on
the mailing list. Try to search some discussion, af9015 + rc-core is
good starting point.
regards
Antti
--
http://palosaari.fi/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-02-08 13:54 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-01 22:29 [PATCH 2/2] IT913X Version 1 and Version 2 keymaps Malcolm Priestley
2012-02-06 12:42 ` Antti Palosaari
2012-02-06 17:06 ` Malcolm Priestley
2012-02-08 13:54 ` Antti Palosaari
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox