hal_kpd.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #ifndef KPD_HAL_H
  2. #define KPD_HAL_H
  3. #include <mt-plat/sync_write.h>
  4. /* Keypad registers */
  5. extern void __iomem *kp_base;
  6. #define KP_STA (kp_base + 0x0000)
  7. #define KP_MEM1 (kp_base + 0x0004)
  8. #define KP_MEM2 (kp_base + 0x0008)
  9. #define KP_MEM3 (kp_base + 0x000c)
  10. #define KP_MEM4 (kp_base + 0x0010)
  11. #define KP_MEM5 (kp_base + 0x0014)
  12. #define KP_DEBOUNCE (kp_base + 0x0018)
  13. #define KP_SCAN_TIMING (kp_base + 0x001C)
  14. #define KP_SEL (kp_base + 0x0020)
  15. #define KP_EN (kp_base + 0x0024)
  16. #define KP_COL0_SEL (1 << 10)
  17. #define KP_COL1_SEL (1 << 11)
  18. #define KP_COL2_SEL (1 << 12)
  19. #define KPD_DEBOUNCE_MASK ((1U << 14) - 1)
  20. /*function define*/
  21. void kpd_slide_qwerty_init(void);
  22. void kpd_ldvt_test_init(void);
  23. void long_press_reboot_function_setting(void);
  24. void kpd_auto_test_for_factorymode(void);
  25. void kpd_wakeup_src_setting(int enable);
  26. void kpd_get_keymap_state(u16 state[]);
  27. void kpd_set_debounce(u16 val);
  28. void kpd_init_keymap(u16 keymap[]);
  29. void kpd_init_keymap_state(u16 keymap_state[]);
  30. void kpd_pmic_rstkey_hal(unsigned long pressed);
  31. void kpd_pmic_pwrkey_hal(unsigned long pressed);
  32. void kpd_pwrkey_handler_hal(unsigned long data);
  33. void mt_eint_register(void);
  34. extern struct input_dev *kpd_input_dev;
  35. #ifdef CONFIG_MTK_SMARTBOOK_SUPPORT
  36. void sb_kpd_enable(void);
  37. void sb_kpd_disable(void);
  38. #else
  39. void sb_kpd_enable(void);
  40. void sb_kpd_disable(void);
  41. #endif
  42. #define KPD_NUM_MEMS 5
  43. #define KPD_MEM5_BITS 8
  44. #define KPD_NUM_KEYS 72 /* 4 * 16 + KPD_MEM5_BITS */
  45. #endif