132cf86f6SMauro Carvalho Chehab /* rc-streamzap.c - Keytable for Streamzap PC Remote, for use 232cf86f6SMauro Carvalho Chehab * with the Streamzap PC Remote IR Receiver. 332cf86f6SMauro Carvalho Chehab * 432cf86f6SMauro Carvalho Chehab * Copyright (c) 2010 by Jarod Wilson <jarod@redhat.com> 532cf86f6SMauro Carvalho Chehab * 632cf86f6SMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify 732cf86f6SMauro Carvalho Chehab * it under the terms of the GNU General Public License as published by 832cf86f6SMauro Carvalho Chehab * the Free Software Foundation; either version 2 of the License, or 932cf86f6SMauro Carvalho Chehab * (at your option) any later version. 1032cf86f6SMauro Carvalho Chehab */ 1132cf86f6SMauro Carvalho Chehab 1232cf86f6SMauro Carvalho Chehab #include <media/rc-map.h> 1332cf86f6SMauro Carvalho Chehab 1432cf86f6SMauro Carvalho Chehab static struct ir_scancode streamzap[] = { 1532cf86f6SMauro Carvalho Chehab /* 1632cf86f6SMauro Carvalho Chehab * The Streamzap remote is almost, but not quite, RC-5, as it has an extra 1732cf86f6SMauro Carvalho Chehab * bit in it, which throws the in-kernel RC-5 decoder for a loop. Currently, 1832cf86f6SMauro Carvalho Chehab * an additional RC-5-sz decoder is being deployed to support it, but it 1932cf86f6SMauro Carvalho Chehab * may be possible to merge it back with the standard RC-5 decoder. 2032cf86f6SMauro Carvalho Chehab */ 2132cf86f6SMauro Carvalho Chehab { 0x28c0, KEY_NUMERIC_0 }, 2232cf86f6SMauro Carvalho Chehab { 0x28c1, KEY_NUMERIC_1 }, 2332cf86f6SMauro Carvalho Chehab { 0x28c2, KEY_NUMERIC_2 }, 2432cf86f6SMauro Carvalho Chehab { 0x28c3, KEY_NUMERIC_3 }, 2532cf86f6SMauro Carvalho Chehab { 0x28c4, KEY_NUMERIC_4 }, 2632cf86f6SMauro Carvalho Chehab { 0x28c5, KEY_NUMERIC_5 }, 2732cf86f6SMauro Carvalho Chehab { 0x28c6, KEY_NUMERIC_6 }, 2832cf86f6SMauro Carvalho Chehab { 0x28c7, KEY_NUMERIC_7 }, 2932cf86f6SMauro Carvalho Chehab { 0x28c8, KEY_NUMERIC_8 }, 3032cf86f6SMauro Carvalho Chehab { 0x28c9, KEY_NUMERIC_9 }, 3132cf86f6SMauro Carvalho Chehab { 0x28ca, KEY_POWER }, 3232cf86f6SMauro Carvalho Chehab { 0x28cb, KEY_MUTE }, 3332cf86f6SMauro Carvalho Chehab { 0x28cc, KEY_CHANNELUP }, 3432cf86f6SMauro Carvalho Chehab { 0x28cd, KEY_VOLUMEUP }, 3532cf86f6SMauro Carvalho Chehab { 0x28ce, KEY_CHANNELDOWN }, 3632cf86f6SMauro Carvalho Chehab { 0x28cf, KEY_VOLUMEDOWN }, 3732cf86f6SMauro Carvalho Chehab { 0x28d0, KEY_UP }, 3832cf86f6SMauro Carvalho Chehab { 0x28d1, KEY_LEFT }, 3932cf86f6SMauro Carvalho Chehab { 0x28d2, KEY_OK }, 4032cf86f6SMauro Carvalho Chehab { 0x28d3, KEY_RIGHT }, 4132cf86f6SMauro Carvalho Chehab { 0x28d4, KEY_DOWN }, 4232cf86f6SMauro Carvalho Chehab { 0x28d5, KEY_MENU }, 4332cf86f6SMauro Carvalho Chehab { 0x28d6, KEY_EXIT }, 4432cf86f6SMauro Carvalho Chehab { 0x28d7, KEY_PLAY }, 4532cf86f6SMauro Carvalho Chehab { 0x28d8, KEY_PAUSE }, 4632cf86f6SMauro Carvalho Chehab { 0x28d9, KEY_STOP }, 4732cf86f6SMauro Carvalho Chehab { 0x28da, KEY_BACK }, 4832cf86f6SMauro Carvalho Chehab { 0x28db, KEY_FORWARD }, 4932cf86f6SMauro Carvalho Chehab { 0x28dc, KEY_RECORD }, 5032cf86f6SMauro Carvalho Chehab { 0x28dd, KEY_REWIND }, 5132cf86f6SMauro Carvalho Chehab { 0x28de, KEY_FASTFORWARD }, 5232cf86f6SMauro Carvalho Chehab { 0x28e0, KEY_RED }, 5332cf86f6SMauro Carvalho Chehab { 0x28e1, KEY_GREEN }, 5432cf86f6SMauro Carvalho Chehab { 0x28e2, KEY_YELLOW }, 5532cf86f6SMauro Carvalho Chehab { 0x28e3, KEY_BLUE }, 5632cf86f6SMauro Carvalho Chehab 5732cf86f6SMauro Carvalho Chehab }; 5832cf86f6SMauro Carvalho Chehab 5932cf86f6SMauro Carvalho Chehab static struct rc_keymap streamzap_map = { 6032cf86f6SMauro Carvalho Chehab .map = { 6132cf86f6SMauro Carvalho Chehab .scan = streamzap, 6232cf86f6SMauro Carvalho Chehab .size = ARRAY_SIZE(streamzap), 6352b66144SMauro Carvalho Chehab .rc_type = RC_TYPE_RC5_SZ, 6432cf86f6SMauro Carvalho Chehab .name = RC_MAP_STREAMZAP, 6532cf86f6SMauro Carvalho Chehab } 6632cf86f6SMauro Carvalho Chehab }; 6732cf86f6SMauro Carvalho Chehab 6832cf86f6SMauro Carvalho Chehab static int __init init_rc_map_streamzap(void) 6932cf86f6SMauro Carvalho Chehab { 7032cf86f6SMauro Carvalho Chehab return ir_register_map(&streamzap_map); 7132cf86f6SMauro Carvalho Chehab } 7232cf86f6SMauro Carvalho Chehab 7332cf86f6SMauro Carvalho Chehab static void __exit exit_rc_map_streamzap(void) 7432cf86f6SMauro Carvalho Chehab { 7532cf86f6SMauro Carvalho Chehab ir_unregister_map(&streamzap_map); 7632cf86f6SMauro Carvalho Chehab } 7732cf86f6SMauro Carvalho Chehab 7832cf86f6SMauro Carvalho Chehab module_init(init_rc_map_streamzap) 7932cf86f6SMauro Carvalho Chehab module_exit(exit_rc_map_streamzap) 8032cf86f6SMauro Carvalho Chehab 8132cf86f6SMauro Carvalho Chehab MODULE_LICENSE("GPL"); 8232cf86f6SMauro Carvalho Chehab MODULE_AUTHOR("Jarod Wilson <jarod@redhat.com>"); 83