qts_core_common.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
  4. */
  5. enum qts_client {
  6. QTS_CLIENT_PRIMARY_TOUCH,
  7. QTS_CLIENT_SECONDARY_TOUCH,
  8. QTS_CLIENT_MAX
  9. };
  10. enum qts_bus_type {
  11. QTS_BUS_TYPE_NONE,
  12. QTS_BUS_TYPE_I2C,
  13. QTS_BUS_TYPE_SPI,
  14. QTS_BUS_TYPE_SPI_V2,
  15. QTS_BUS_TYPE_MAX
  16. };
  17. struct qts_vendor_callback_ops {
  18. int (*suspend)(void *data);
  19. int (*resume)(void *data);
  20. int (*enable_touch_irq)(void *data, bool en);
  21. irqreturn_t (*irq_handler)(int irq, void *data);
  22. int (*get_irq_num)(void *data);
  23. int (*pre_la_tui_enable)(void *data);
  24. int (*post_la_tui_enable)(void *data);
  25. int (*pre_la_tui_disable)(void *data);
  26. int (*post_la_tui_disable)(void *data);
  27. int (*pre_le_tui_enable)(void *data);
  28. int (*post_le_tui_enable)(void *data);
  29. int (*pre_le_tui_disable)(void *data);
  30. int (*post_le_tui_disable)(void *data);
  31. };
  32. struct qts_vendor_data {
  33. struct i2c_client *client;
  34. struct spi_device *spi;
  35. void *vendor_data;
  36. struct qts_vendor_callback_ops qts_vendor_ops;
  37. u32 client_type;
  38. u32 bus_type;
  39. bool schedule_suspend;
  40. bool schedule_resume;
  41. };
  42. int qts_client_register(struct qts_vendor_data qts_vendor_data);