aqt1000-irq.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /* Copyright (c) 2018, The Linux Foundation. All rights reserved.
  3. */
  4. #ifndef __AQT1000_IRQ_H_
  5. #define __AQT1000_IRQ_H_
  6. #include <linux/types.h>
  7. #include <linux/interrupt.h>
  8. #include <linux/regmap.h>
  9. enum {
  10. /* INTR_CTRL_INT_MASK_2 */
  11. AQT1000_IRQ_MBHC_BUTTON_RELEASE_DET = 0,
  12. AQT1000_IRQ_MBHC_BUTTON_PRESS_DET,
  13. AQT1000_IRQ_MBHC_ELECT_INS_REM_DET,
  14. AQT1000_IRQ_MBHC_ELECT_INS_REM_LEG_DET,
  15. AQT1000_IRQ_MBHC_SW_DET,
  16. AQT1000_IRQ_HPH_PA_OCPL_FAULT,
  17. AQT1000_IRQ_HPH_PA_OCPR_FAULT,
  18. AQT1000_IRQ_HPH_PA_CNPL_COMPLETE,
  19. /* INTR_CTRL_INT_MASK_3 */
  20. AQT1000_IRQ_HPH_PA_CNPR_COMPLETE,
  21. AQT1000_CDC_HPHL_SURGE,
  22. AQT1000_CDC_HPHR_SURGE,
  23. AQT1000_NUM_IRQS,
  24. };
  25. int aqt_request_irq(struct aqt1000 *aqt, int irq, const char *name,
  26. irq_handler_t handler, void *data);
  27. void aqt_free_irq(struct aqt1000 *aqt, int irq, void *data);
  28. int aqt_irq_init(struct aqt1000 *aqt);
  29. int aqt_irq_exit(struct aqt1000 *aqt);
  30. void aqt_enable_irq(struct aqt1000 *aqt, int irq);
  31. void aqt_disable_irq(struct aqt1000 *aqt, int irq);
  32. #endif /* __AQT1000_IRQ_H_ */