162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2017 Sanechips Technology Co., Ltd. 462306a36Sopenharmony_ci * Copyright 2017 Linaro Ltd. 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include <linux/module.h> 862306a36Sopenharmony_ci#include <media/rc-map.h> 962306a36Sopenharmony_ci 1062306a36Sopenharmony_cistatic struct rc_map_table zx_irdec_table[] = { 1162306a36Sopenharmony_ci { 0x01, KEY_NUMERIC_1 }, 1262306a36Sopenharmony_ci { 0x02, KEY_NUMERIC_2 }, 1362306a36Sopenharmony_ci { 0x03, KEY_NUMERIC_3 }, 1462306a36Sopenharmony_ci { 0x04, KEY_NUMERIC_4 }, 1562306a36Sopenharmony_ci { 0x05, KEY_NUMERIC_5 }, 1662306a36Sopenharmony_ci { 0x06, KEY_NUMERIC_6 }, 1762306a36Sopenharmony_ci { 0x07, KEY_NUMERIC_7 }, 1862306a36Sopenharmony_ci { 0x08, KEY_NUMERIC_8 }, 1962306a36Sopenharmony_ci { 0x09, KEY_NUMERIC_9 }, 2062306a36Sopenharmony_ci { 0x31, KEY_NUMERIC_0 }, 2162306a36Sopenharmony_ci { 0x16, KEY_DELETE }, 2262306a36Sopenharmony_ci { 0x0a, KEY_MODE }, /* Input method */ 2362306a36Sopenharmony_ci { 0x0c, KEY_VOLUMEUP }, 2462306a36Sopenharmony_ci { 0x18, KEY_VOLUMEDOWN }, 2562306a36Sopenharmony_ci { 0x0b, KEY_CHANNELUP }, 2662306a36Sopenharmony_ci { 0x15, KEY_CHANNELDOWN }, 2762306a36Sopenharmony_ci { 0x0d, KEY_PAGEUP }, 2862306a36Sopenharmony_ci { 0x13, KEY_PAGEDOWN }, 2962306a36Sopenharmony_ci { 0x46, KEY_FASTFORWARD }, 3062306a36Sopenharmony_ci { 0x43, KEY_REWIND }, 3162306a36Sopenharmony_ci { 0x44, KEY_PLAYPAUSE }, 3262306a36Sopenharmony_ci { 0x45, KEY_STOP }, 3362306a36Sopenharmony_ci { 0x49, KEY_OK }, 3462306a36Sopenharmony_ci { 0x47, KEY_UP }, 3562306a36Sopenharmony_ci { 0x4b, KEY_DOWN }, 3662306a36Sopenharmony_ci { 0x48, KEY_LEFT }, 3762306a36Sopenharmony_ci { 0x4a, KEY_RIGHT }, 3862306a36Sopenharmony_ci { 0x4d, KEY_MENU }, 3962306a36Sopenharmony_ci { 0x56, KEY_APPSELECT }, /* Application */ 4062306a36Sopenharmony_ci { 0x4c, KEY_BACK }, 4162306a36Sopenharmony_ci { 0x1e, KEY_INFO }, 4262306a36Sopenharmony_ci { 0x4e, KEY_F1 }, 4362306a36Sopenharmony_ci { 0x4f, KEY_F2 }, 4462306a36Sopenharmony_ci { 0x50, KEY_F3 }, 4562306a36Sopenharmony_ci { 0x51, KEY_F4 }, 4662306a36Sopenharmony_ci { 0x1c, KEY_AUDIO }, 4762306a36Sopenharmony_ci { 0x12, KEY_MUTE }, 4862306a36Sopenharmony_ci { 0x11, KEY_DOT }, /* Location */ 4962306a36Sopenharmony_ci { 0x1d, KEY_SETUP }, 5062306a36Sopenharmony_ci { 0x40, KEY_POWER }, 5162306a36Sopenharmony_ci}; 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_cistatic struct rc_map_list zx_irdec_map = { 5462306a36Sopenharmony_ci .map = { 5562306a36Sopenharmony_ci .scan = zx_irdec_table, 5662306a36Sopenharmony_ci .size = ARRAY_SIZE(zx_irdec_table), 5762306a36Sopenharmony_ci .rc_proto = RC_PROTO_NEC, 5862306a36Sopenharmony_ci .name = RC_MAP_ZX_IRDEC, 5962306a36Sopenharmony_ci } 6062306a36Sopenharmony_ci}; 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_cistatic int __init init_rc_map_zx_irdec(void) 6362306a36Sopenharmony_ci{ 6462306a36Sopenharmony_ci return rc_map_register(&zx_irdec_map); 6562306a36Sopenharmony_ci} 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_cistatic void __exit exit_rc_map_zx_irdec(void) 6862306a36Sopenharmony_ci{ 6962306a36Sopenharmony_ci rc_map_unregister(&zx_irdec_map); 7062306a36Sopenharmony_ci} 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_cimodule_init(init_rc_map_zx_irdec) 7362306a36Sopenharmony_cimodule_exit(exit_rc_map_zx_irdec) 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ciMODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>"); 7662306a36Sopenharmony_ciMODULE_LICENSE("GPL v2"); 77