wlan_gpio_tgt_api.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. * @mux_config_val: gpio MUX value
  55. * @drive: gpio drive
  56. * @init_enable: gpio init_enable
  57. *
  58. * Return: status of operation
  59. */
  60. QDF_STATUS tgt_gpio_config(struct wlan_objmgr_psoc *psoc, uint32_t gpio_num,
  61. uint32_t input, uint32_t pull_type,
  62. uint32_t intr_mode, uint32_t mux_config_val,
  63. uint32_t drive, uint32_t init_enable);
  64. /**
  65. * tgt_if_gpio_output() - API to send gpio output request
  66. * @psoc: pointer to psoc object
  67. * @gpio_num: gpio pin number
  68. * @set: enable/disable the gpio pin
  69. *
  70. * Return: status of operation
  71. */
  72. QDF_STATUS tgt_gpio_output(struct wlan_objmgr_psoc *psoc, uint32_t gpio_num,
  73. uint32_t set);
  74. #else
  75. static QDF_STATUS tgt_gpio_config(struct wlan_objmgr_psoc *psoc,
  76. uint32_t gpio_num, uint32_t input,
  77. uint32_t pull_type, uint32_t intr_mode)
  78. {
  79. return QDF_STATUS_SUCCESS;
  80. }
  81. static QDF_STATUS tgt_gpio_output(struct wlan_objmgr_psoc *psoc,
  82. uint32_t gpio_num, uint32_t set)
  83. {
  84. return QDF_STATUS_SUCCESS;
  85. }
  86. #endif /* WLAN_FEATURE_GPIO_CFG */
  87. #endif /* __WLAN_GPIO_TGT_API_H__ */