2019-05-27 08:55:01 +02:00
// SPDX-License-Identifier: GPL-2.0-or-later
2011-03-24 12:58:48 -03:00
/* rc-tivo.c - Keytable for TiVo remotes
*
* Copyright ( c ) 2011 by Jarod Wilson < jarod @ redhat . com >
*/
# include <media/rc-map.h>
2011-07-03 14:03:12 -04:00
# include <linux/module.h>
2011-03-24 12:58:48 -03:00
/*
* Initial mapping is for the TiVo remote included in the Nero LiquidTV bundle ,
* which also ships with a TiVo - branded IR transceiver , supported by the mceusb
* driver . Note that the remote uses an NEC - ish protocol , but instead of having
2016-12-15 07:37:48 -02:00
* a command / not_command pair , it has a vendor ID of 0x3085 , but some keys , the
2011-03-24 12:58:48 -03:00
* NEC extended checksums do pass , so the table presently has the intended
* values and the checksum - passed versions for those keys .
*/
static struct rc_map_table tivo [ ] = {
2016-12-15 07:37:48 -02:00
{ 0x3085f009 , KEY_MEDIA } , /* TiVo Button */
{ 0x3085e010 , KEY_POWER2 } , /* TV Power */
{ 0x3085e011 , KEY_TV } , /* Live TV/Swap */
{ 0x3085c034 , KEY_VIDEO_NEXT } , /* TV Input */
{ 0x3085e013 , KEY_INFO } ,
{ 0x3085a05f , KEY_CYCLEWINDOWS } , /* Window */
2011-03-24 12:58:48 -03:00
{ 0x0085305f , KEY_CYCLEWINDOWS } ,
2016-12-15 07:37:48 -02:00
{ 0x3085c036 , KEY_EPG } , /* Guide */
2011-03-24 12:58:48 -03:00
2016-12-15 07:37:48 -02:00
{ 0x3085e014 , KEY_UP } ,
{ 0x3085e016 , KEY_DOWN } ,
{ 0x3085e017 , KEY_LEFT } ,
{ 0x3085e015 , KEY_RIGHT } ,
2011-03-24 12:58:48 -03:00
2016-12-15 07:37:48 -02:00
{ 0x3085e018 , KEY_SCROLLDOWN } , /* Red Thumbs Down */
{ 0x3085e019 , KEY_SELECT } ,
{ 0x3085e01a , KEY_SCROLLUP } , /* Green Thumbs Up */
2011-03-24 12:58:48 -03:00
2016-12-15 07:37:48 -02:00
{ 0x3085e01c , KEY_VOLUMEUP } ,
{ 0x3085e01d , KEY_VOLUMEDOWN } ,
{ 0x3085e01b , KEY_MUTE } ,
{ 0x3085d020 , KEY_RECORD } ,
{ 0x3085e01e , KEY_CHANNELUP } ,
{ 0x3085e01f , KEY_CHANNELDOWN } ,
2011-03-24 12:58:48 -03:00
{ 0x0085301f , KEY_CHANNELDOWN } ,
2016-12-15 07:37:48 -02:00
{ 0x3085d021 , KEY_PLAY } ,
{ 0x3085d023 , KEY_PAUSE } ,
{ 0x3085d025 , KEY_SLOW } ,
{ 0x3085d022 , KEY_REWIND } ,
{ 0x3085d024 , KEY_FASTFORWARD } ,
{ 0x3085d026 , KEY_PREVIOUS } ,
{ 0x3085d027 , KEY_NEXT } , /* ->| */
2011-03-24 12:58:48 -03:00
2016-12-15 07:37:48 -02:00
{ 0x3085b044 , KEY_ZOOM } , /* Aspect */
{ 0x3085b048 , KEY_STOP } ,
{ 0x3085b04a , KEY_DVD } , /* DVD Menu */
2011-03-24 12:58:48 -03:00
2016-12-15 07:37:48 -02:00
{ 0x3085d028 , KEY_NUMERIC_1 } ,
{ 0x3085d029 , KEY_NUMERIC_2 } ,
{ 0x3085d02a , KEY_NUMERIC_3 } ,
{ 0x3085d02b , KEY_NUMERIC_4 } ,
{ 0x3085d02c , KEY_NUMERIC_5 } ,
{ 0x3085d02d , KEY_NUMERIC_6 } ,
{ 0x3085d02e , KEY_NUMERIC_7 } ,
{ 0x3085d02f , KEY_NUMERIC_8 } ,
2011-03-24 12:58:48 -03:00
{ 0x0085302f , KEY_NUMERIC_8 } ,
2016-12-15 07:37:48 -02:00
{ 0x3085c030 , KEY_NUMERIC_9 } ,
{ 0x3085c031 , KEY_NUMERIC_0 } ,
{ 0x3085c033 , KEY_ENTER } ,
{ 0x3085c032 , KEY_CLEAR } ,
2011-03-24 12:58:48 -03:00
} ;
static struct rc_map_list tivo_map = {
. map = {
2017-08-07 16:20:58 -04:00
. scan = tivo ,
. size = ARRAY_SIZE ( tivo ) ,
2018-07-17 17:33:05 -04:00
. rc_proto = RC_PROTO_NEC32 ,
2017-08-07 16:20:58 -04:00
. name = RC_MAP_TIVO ,
2011-03-24 12:58:48 -03:00
}
} ;
static int __init init_rc_map_tivo ( void )
{
return rc_map_register ( & tivo_map ) ;
}
static void __exit exit_rc_map_tivo ( void )
{
rc_map_unregister ( & tivo_map ) ;
}
module_init ( init_rc_map_tivo )
module_exit ( exit_rc_map_tivo )
MODULE_LICENSE ( " GPL " ) ;
MODULE_AUTHOR ( " Jarod Wilson <jarod@redhat.com> " ) ;