wlan_gpio_tgt_api.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /*
  2. * Copyright (c) 2020, The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for any
  5. * purpose with or without fee is hereby granted, provided that the above
  6. * copyright notice and this permission notice appear in all copies.
  7. *
  8. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  9. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  10. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  11. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  12. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  13. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  14. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  15. */
  16. /**
  17. * DOC: wlan_gpio_tgt_api.h
  18. *
  19. * This header file provide with API declarations to interface with Southbound
  20. */
  21. #ifndef __WLAN_GPIO_CFG_TGT_API_H__
  22. #define __WLAN_GPIO_CFG_TGT_API_H__
  23. #ifdef WLAN_FEATURE_GPIO_CFG
  24. #include <qdf_status.h>
  25. #include <wmi_unified_param.h>
  26. struct wlan_objmgr_psoc;
  27. /**
  28. * tgt_set_gpio_config_req(): API to set GPIO configuration to lmac
  29. * @psoc: the pointer to psoc object manager
  30. * @param: the pointer to gpio cfg info
  31. *
  32. * Return: status of operation
  33. */
  34. QDF_STATUS
  35. tgt_set_gpio_config_req(struct wlan_objmgr_psoc *psoc,
  36. struct gpio_config_params *param);
  37. /**
  38. * tgt_set_gpio_output_req(): API to set GPIO output info to lmac
  39. * @psoc: the pointer to psoc object manager
  40. * @param: the pointer to gpio output info
  41. *
  42. * Return: status of operation
  43. */
  44. QDF_STATUS
  45. tgt_set_gpio_output_req(struct wlan_objmgr_psoc *psoc,
  46. struct gpio_output_params *param);
  47. /**
  48. * tgt_if_gpio_config() - API to send gpio config request
  49. * @psoc: pointer to psoc object
  50. * @gpio_num: gpio pin number
  51. * @input: enable/disable the gpio pin
  52. * @pull_type: gpio pull type
  53. * @intr_mode: gpio interrupt mode
  54. *
  55. * Return: status of operation
  56. */
  57. QDF_STATUS tgt_gpio_config(struct wlan_objmgr_psoc *psoc, uint32_t gpio_num,
  58. uint32_t input, uint32_t pull_type,
  59. uint32_t intr_mode);
  60. /**
  61. * tgt_if_gpio_output() - API to send gpio output request
  62. * @psoc: pointer to psoc object
  63. * @gpio_num: gpio pin number
  64. * @set: enable/disable the gpio pin
  65. *
  66. * Return: status of operation
  67. */
  68. QDF_STATUS tgt_gpio_output(struct wlan_objmgr_psoc *psoc, uint32_t gpio_num,
  69. uint32_t set);
  70. #else
  71. static QDF_STATUS tgt_gpio_config(struct wlan_objmgr_psoc *psoc,
  72. uint32_t gpio_num, uint32_t input,
  73. uint32_t pull_type, uint32_t intr_mode)
  74. {
  75. return QDF_STATUS_SUCCESS;
  76. }
  77. static QDF_STATUS tgt_gpio_output(struct wlan_objmgr_psoc *psoc,
  78. uint32_t gpio_num, uint32_t set)
  79. {
  80. return QDF_STATUS_SUCCESS;
  81. }
  82. #endif /* WLAN_FEATURE_GPIO_CFG */
  83. #endif /* __WLAN_GPIO_TGT_API_H__ */