162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ 262306a36Sopenharmony_ci// behold-columbus.h - Keytable for behold_columbus Remote Controller 362306a36Sopenharmony_ci// 462306a36Sopenharmony_ci// keymap imported from ir-keymaps.c 562306a36Sopenharmony_ci// 662306a36Sopenharmony_ci// Copyright (c) 2010 by Mauro Carvalho Chehab 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include <media/rc-map.h> 962306a36Sopenharmony_ci#include <linux/module.h> 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci/* Beholder Intl. Ltd. 2008 1262306a36Sopenharmony_ci * Dmitry Belimov d.belimov@google.com 1362306a36Sopenharmony_ci * Keytable is used by BeholdTV Columbus 1462306a36Sopenharmony_ci * The "ascii-art picture" below (in comments, first row 1562306a36Sopenharmony_ci * is the keycode in hex, and subsequent row(s) shows 1662306a36Sopenharmony_ci * the button labels (several variants when appropriate) 1762306a36Sopenharmony_ci * helps to decide which keycodes to assign to the buttons. 1862306a36Sopenharmony_ci */ 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_cistatic struct rc_map_table behold_columbus[] = { 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci /* 0x13 0x11 0x1C 0x12 * 2362306a36Sopenharmony_ci * Mute Source TV/FM Power * 2462306a36Sopenharmony_ci * */ 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci { 0x13, KEY_MUTE }, 2762306a36Sopenharmony_ci { 0x11, KEY_VIDEO }, 2862306a36Sopenharmony_ci { 0x1C, KEY_TUNER }, /* KEY_TV/KEY_RADIO */ 2962306a36Sopenharmony_ci { 0x12, KEY_POWER }, 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci /* 0x01 0x02 0x03 0x0D * 3262306a36Sopenharmony_ci * 1 2 3 Stereo * 3362306a36Sopenharmony_ci * * 3462306a36Sopenharmony_ci * 0x04 0x05 0x06 0x19 * 3562306a36Sopenharmony_ci * 4 5 6 Snapshot * 3662306a36Sopenharmony_ci * * 3762306a36Sopenharmony_ci * 0x07 0x08 0x09 0x10 * 3862306a36Sopenharmony_ci * 7 8 9 Zoom * 3962306a36Sopenharmony_ci * */ 4062306a36Sopenharmony_ci { 0x01, KEY_NUMERIC_1 }, 4162306a36Sopenharmony_ci { 0x02, KEY_NUMERIC_2 }, 4262306a36Sopenharmony_ci { 0x03, KEY_NUMERIC_3 }, 4362306a36Sopenharmony_ci { 0x0D, KEY_SETUP }, /* Setup key */ 4462306a36Sopenharmony_ci { 0x04, KEY_NUMERIC_4 }, 4562306a36Sopenharmony_ci { 0x05, KEY_NUMERIC_5 }, 4662306a36Sopenharmony_ci { 0x06, KEY_NUMERIC_6 }, 4762306a36Sopenharmony_ci { 0x19, KEY_CAMERA }, /* Snapshot key */ 4862306a36Sopenharmony_ci { 0x07, KEY_NUMERIC_7 }, 4962306a36Sopenharmony_ci { 0x08, KEY_NUMERIC_8 }, 5062306a36Sopenharmony_ci { 0x09, KEY_NUMERIC_9 }, 5162306a36Sopenharmony_ci { 0x10, KEY_ZOOM }, 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci /* 0x0A 0x00 0x0B 0x0C * 5462306a36Sopenharmony_ci * RECALL 0 ChannelUp VolumeUp * 5562306a36Sopenharmony_ci * */ 5662306a36Sopenharmony_ci { 0x0A, KEY_AGAIN }, 5762306a36Sopenharmony_ci { 0x00, KEY_NUMERIC_0 }, 5862306a36Sopenharmony_ci { 0x0B, KEY_CHANNELUP }, 5962306a36Sopenharmony_ci { 0x0C, KEY_VOLUMEUP }, 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci /* 0x1B 0x1D 0x15 0x18 * 6262306a36Sopenharmony_ci * Timeshift Record ChannelDown VolumeDown * 6362306a36Sopenharmony_ci * */ 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci { 0x1B, KEY_TIME }, 6662306a36Sopenharmony_ci { 0x1D, KEY_RECORD }, 6762306a36Sopenharmony_ci { 0x15, KEY_CHANNELDOWN }, 6862306a36Sopenharmony_ci { 0x18, KEY_VOLUMEDOWN }, 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci /* 0x0E 0x1E 0x0F 0x1A * 7162306a36Sopenharmony_ci * Stop Pause Previous Next * 7262306a36Sopenharmony_ci * */ 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci { 0x0E, KEY_STOP }, 7562306a36Sopenharmony_ci { 0x1E, KEY_PAUSE }, 7662306a36Sopenharmony_ci { 0x0F, KEY_PREVIOUS }, 7762306a36Sopenharmony_ci { 0x1A, KEY_NEXT }, 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci}; 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_cistatic struct rc_map_list behold_columbus_map = { 8262306a36Sopenharmony_ci .map = { 8362306a36Sopenharmony_ci .scan = behold_columbus, 8462306a36Sopenharmony_ci .size = ARRAY_SIZE(behold_columbus), 8562306a36Sopenharmony_ci .rc_proto = RC_PROTO_UNKNOWN, /* Legacy IR type */ 8662306a36Sopenharmony_ci .name = RC_MAP_BEHOLD_COLUMBUS, 8762306a36Sopenharmony_ci } 8862306a36Sopenharmony_ci}; 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_cistatic int __init init_rc_map_behold_columbus(void) 9162306a36Sopenharmony_ci{ 9262306a36Sopenharmony_ci return rc_map_register(&behold_columbus_map); 9362306a36Sopenharmony_ci} 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_cistatic void __exit exit_rc_map_behold_columbus(void) 9662306a36Sopenharmony_ci{ 9762306a36Sopenharmony_ci rc_map_unregister(&behold_columbus_map); 9862306a36Sopenharmony_ci} 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_cimodule_init(init_rc_map_behold_columbus) 10162306a36Sopenharmony_cimodule_exit(exit_rc_map_behold_columbus) 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ciMODULE_LICENSE("GPL"); 10462306a36Sopenharmony_ciMODULE_AUTHOR("Mauro Carvalho Chehab"); 105