keypad_mapping_table.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. /********************************************************************
  2. ** File Name: keypad_mapping_table.h
  3. **
  4. ** File Description:
  5. **
  6. ** Copyright(c) 2011 Sunplus-prof Technologies - All Rights Reserved
  7. **
  8. ** History Information Description
  9. ** Date Author Modification
  10. **
  11. ********************************************************************/
  12. #ifndef _KEYPAD_MAPPING_TABLE_H_
  13. #define _KEYPAD_MAPPING_TABLE_H_
  14. #include "customize.h"
  15. /********************************************************************
  16. Enum
  17. ********************************************************************/
  18. /********************************************************************
  19. Const
  20. ********************************************************************/
  21. // Keypad related constant
  22. typedef enum _KeyIndex_
  23. {
  24. KEYINDEX_UP = 0,
  25. KEYINDEX_DOWN,
  26. KEYINDEX_RIGHT,
  27. KEYINDEX_LEFT,
  28. KEYINDEX_MENU,
  29. KEYINDEX_SOURCE,
  30. KEYINDEX_POWER,
  31. KEYINDEX_OTHER,
  32. }KeyIndex_E;
  33. typedef enum _KeyCount_
  34. {
  35. KEYCOUNT_5 = 0,
  36. KEYCOUNT_7,
  37. KEYCOUNT_8,
  38. }KeyCount_E;
  39. #define keypadNum 8
  40. #define TableNum 1
  41. #define KEYPAD_POSITION1 KEYINDEX_LEFT
  42. #define KEYPAD_POSITION2 KEYINDEX_RIGHT
  43. #define KEYPAD_POSITION3 KEYINDEX_DOWN
  44. #define KEYPAD_POSITION4 KEYINDEX_UP
  45. #define KEYPAD_POSITION5 KEYINDEX_MENU
  46. #define KEYPAD_POSITION6 KEYINDEX_SOURCE
  47. #define KEYPAD_POSITION7 KEYINDEX_POWER
  48. #define KEYPAD_POSITION8 KEYINDEX_OTHER
  49. #define ACTUAL_KEYPAD_NUM KEYCOUNT_7
  50. #define KEYPAD_ADC_K0 0x4
  51. #define KEYPAD_ADC_K1 0x8
  52. #define KEYPAD_ADC_K2 0x10
  53. #define KEYPAD_ADC_K3 0x20
  54. #define KEYPAD_ADC_K4 0x40
  55. #define KEYPAD_ADC_K5 0x80
  56. #define KEYPAD_ADC_K6 0x1
  57. #define ADC0_POWER_ON_KEY KEYPAD_ADC_K6
  58. #define ADC1_POWER_ON_KEY (KEYPAD_ADC_K6)<<16
  59. #ifdef CONFIG_QSD_CHECK_KP_01
  60. #define KEYPAD_PWR_ON_KEY ADC0_POWER_ON_KEY|ADC1_POWER_ON_KEY
  61. #else
  62. #define KEYPAD_PWR_ON_KEY ADC0_POWER_ON_KEY
  63. #endif
  64. /*0~0.33 | 0.33 ~ 0.66 | 0.66 ~ 0.99 | 0.99 ~ 1.32 | 1.32 ~ 1.65 | 1.65V ~ 1.98 | 1.98 ~ 2.31 | 2.31 ~ 2.64 | 2.64 ~ 2.97 */
  65. #define KEYPAD0_VOLTAGE_B0 (0x00)
  66. #define KEYPAD0_VOLTAGE_B1 (0x00)
  67. #define KEYPAD0_VOLTAGE_B2 (0x00)
  68. #define KEYPAD1_VOLTAGE_B0 (0x00)
  69. #define KEYPAD1_VOLTAGE_B1 (0x00)
  70. #define KEYPAD1_VOLTAGE_B2 (0x00)
  71. /*******************************************************************************
  72. (CHIP 531)
  73. * IC keypad Range setting rules
  74. * voltage range(keycode)
  75. * 0V ~ 0.33V 0x001
  76. * 0.33V ~ 0.66V 0x002
  77. * 0.66V ~ 0.99V 0x004
  78. * 0.99V ~ 1.32V 0x008
  79. * 1.32V ~ 1.65V 0x010
  80. * 1.65V ~ 1.98V 0x020
  81. * 1.98V ~ 2.31V 0x040
  82. * 2.31V ~ 2.64V 0x080
  83. * 2.64V ~ 2.97V 0x100
  84. * 2.97V ~ 3.3V none
  85. ******************************************************************************/
  86. /*******************************************************************************
  87. (CHIP 533 or 131)
  88. * IC keypad Range setting rules
  89. (voltage/3.3) = (register / 255)
  90. EX,
  91. voltage Dec Hex
  92. 0.33V 26 1A
  93. 0.66V 51 33
  94. 0.99V 77 4D
  95. 1.32V 102 66
  96. 1.65V 128 80
  97. 1.98V 153 99
  98. 2.31V 179 B3
  99. 2.64V 204 CC
  100. 2.97V 230 E6
  101. ******************************************************************************/
  102. //keypad range
  103. #define FAC_MLKEY_0_LEVEL 0x5D411715 //0x664D331A //level0~3
  104. #define FAC_MLKEY_4_LEVEL 0xDAC49D7A //0xCCB39980 //level4~7
  105. #define FAC_MLKEY_8_LEVEL 0xdd //0xE6 //level8
  106. #define R_MLKEY_0_LEVEL 0x5D411715 //0x664D331A //level0~3
  107. #define R_MLKEY_4_LEVEL 0xE3C49D7A //0xCCB39980 //level4~7
  108. #define R_MLKEY_8_LEVEL 0xE6 //0xE6 //level8
  109. /********************************************************************
  110. Struct
  111. ********************************************************************/
  112. typedef struct
  113. {
  114. UINT8 bSystemAppIndex;
  115. UINT32 dGUIObjIndex;
  116. UINT8 bEvent;
  117. UINT8 bNewEvent;
  118. }KEYPAD_CONVERT_t;
  119. typedef struct _KEYPAD_Param_t{
  120. UINT8 u8ADC;
  121. UINT16 range;
  122. UINT32 Event;
  123. }KEYPAD_PARAM_t;
  124. typedef struct _KEYPAD_Info_t {
  125. KEYPAD_PARAM_t KeypadMap[keypadNum];
  126. UINT32 KPPowerKey;
  127. UINT8 KPVrefKey0_b0;
  128. UINT8 KPVrefKey0_b1;
  129. UINT8 KPVrefKey0_b2;
  130. UINT8 KPVrefKey1_b0;
  131. UINT8 KPVrefKey1_b1;
  132. UINT8 KPVrefKey1_b2;
  133. } KEYPAD_Info_t;
  134. /********************************************************************
  135. Extern Global Variables
  136. ********************************************************************/
  137. extern KEYPAD_PARAM_t KeypadMap_final[keypadNum];
  138. #ifdef SUPPORT_FACTORY_AUTO_TEST
  139. extern KEYPAD_PARAM_t KeypadMapFac_final[keypadNum];
  140. #endif
  141. extern int Keypad_EventConvert(UINT32 *pbEvent);
  142. #endif