qcacmn: Add and enable GPIO Component
Add the common GPIO component code for MCC and WIN Change-Id: Id93629856d42afc433844b568deb2fa63a5b67e6
This commit is contained in:
53
gpio/dispatcher/inc/wlan_gpio_tgt_api.h
Normal file
53
gpio/dispatcher/inc/wlan_gpio_tgt_api.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* DOC: wlan_gpio_tgt_api.h
|
||||
*
|
||||
* This header file provide with API declarations to interface with Southbound
|
||||
*/
|
||||
#ifndef __WLAN_GPIO_CFG_TGT_API_H__
|
||||
#define __WLAN_GPIO_CFG_TGT_API_H__
|
||||
|
||||
#ifdef WLAN_FEATURE_GPIO_CFG
|
||||
#include <qdf_status.h>
|
||||
#include <wmi_unified_param.h>
|
||||
struct wlan_objmgr_psoc;
|
||||
|
||||
/**
|
||||
* tgt_set_gpio_config_req(): API to set GPIO configuration to lmac
|
||||
* @psoc: the pointer to psoc object manager
|
||||
* @param: the pointer to gpio cfg info
|
||||
*
|
||||
* Return: status of operation
|
||||
*/
|
||||
QDF_STATUS
|
||||
tgt_set_gpio_config_req(struct wlan_objmgr_psoc *psoc,
|
||||
struct gpio_config_params *param);
|
||||
|
||||
/**
|
||||
* tgt_set_gpio_output_req(): API to set GPIO output info to lmac
|
||||
* @psoc: the pointer to psoc object manager
|
||||
* @param: the pointer to gpio output info
|
||||
*
|
||||
* Return: status of operation
|
||||
*/
|
||||
|
||||
QDF_STATUS
|
||||
tgt_set_gpio_output_req(struct wlan_objmgr_psoc *psoc,
|
||||
struct gpio_output_params *param);
|
||||
#endif /* WLAN_FEATURE_GPIO_CFG */
|
||||
#endif /* __WLAN_GPIO_TGT_API_H__ */
|
66
gpio/dispatcher/inc/wlan_gpio_ucfg_api.h
Normal file
66
gpio/dispatcher/inc/wlan_gpio_ucfg_api.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* DOC: wlan_gpio_ucfg_api.h
|
||||
*
|
||||
* This header file maintain API declaration required for northbound interaction
|
||||
*/
|
||||
|
||||
#ifndef __WLAN_GPIO_CFG_UCFG_API_H__
|
||||
#define __WLAN_GPIO_CFG_UCFG_API_H__
|
||||
|
||||
#include <qdf_status.h>
|
||||
#include <wmi_unified_param.h>
|
||||
struct wlan_objmgr_psoc;
|
||||
|
||||
#ifdef WLAN_FEATURE_GPIO_CFG
|
||||
|
||||
/**
|
||||
* ucfg_set_gpio_config() - API to set gpio config
|
||||
* @psoc: the pointer of psoc object
|
||||
* @param: the pointer of gpio configuration info
|
||||
*
|
||||
* Return:QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
|
||||
*/
|
||||
QDF_STATUS ucfg_set_gpio_config(struct wlan_objmgr_psoc *psoc,
|
||||
struct gpio_config_params *param);
|
||||
|
||||
/**
|
||||
* ucfg_set_gpio_output() - API to set gpio output
|
||||
* @psoc: the pointer of psoc object
|
||||
* @param: the pointer of gpio output info
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
|
||||
*/
|
||||
QDF_STATUS ucfg_set_gpio_output(struct wlan_objmgr_psoc *psoc,
|
||||
struct gpio_output_params *param);
|
||||
#else
|
||||
static inline
|
||||
QDF_STATUS ucfg_set_gpio_config(struct wlan_objmgr_psoc *psoc,
|
||||
struct gpio_config_params *param)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline
|
||||
QDF_STATUS ucfg_set_gpio_output(struct wlan_objmgr_psoc *psoc,
|
||||
struct gpio_output_params *param)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif /* WLAN_FEATURE_GPIO_CFG */
|
||||
#endif /* __WLAN_GPIO_CFG_UCFG_API_H__ */
|
56
gpio/dispatcher/src/wlan_gpio_tgt_api.c
Normal file
56
gpio/dispatcher/src/wlan_gpio_tgt_api.c
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* DOC:wlan_gpio_tgt_api.c
|
||||
*
|
||||
* This file provide API definitions to update gpio configuration from interface
|
||||
*/
|
||||
#include <wlan_gpio_priv_api.h>
|
||||
#include <wlan_gpio_tgt_api.h>
|
||||
|
||||
QDF_STATUS tgt_set_gpio_config_req(struct wlan_objmgr_psoc *psoc,
|
||||
struct gpio_config_params *param)
|
||||
{
|
||||
struct wlan_lmac_if_gpio_tx_ops *gpio_tx_ops;
|
||||
|
||||
if (!psoc) {
|
||||
gpio_err("NULL psoc");
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
gpio_tx_ops = wlan_psoc_get_gpio_txops(psoc);
|
||||
if (!gpio_tx_ops)
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
|
||||
return gpio_tx_ops->set_gpio_config(psoc, param);
|
||||
}
|
||||
|
||||
QDF_STATUS tgt_set_gpio_output_req(struct wlan_objmgr_psoc *psoc,
|
||||
struct gpio_output_params *param)
|
||||
{
|
||||
struct wlan_lmac_if_gpio_tx_ops *gpio_tx_ops;
|
||||
|
||||
if (!psoc) {
|
||||
gpio_err("NULL psoc");
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
gpio_tx_ops = wlan_psoc_get_gpio_txops(psoc);
|
||||
if (!gpio_tx_ops)
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
|
||||
return gpio_tx_ops->set_gpio_output(psoc, param);
|
||||
}
|
38
gpio/dispatcher/src/wlan_gpio_ucfg_api.c
Normal file
38
gpio/dispatcher/src/wlan_gpio_ucfg_api.c
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* DOC: This file contains gpio north bound interface definitions
|
||||
*/
|
||||
#include <wlan_gpio_ucfg_api.h>
|
||||
#include <wlan_gpio_tgt_api.h>
|
||||
#include "qdf_module.h"
|
||||
|
||||
QDF_STATUS
|
||||
ucfg_set_gpio_config(struct wlan_objmgr_psoc *psoc,
|
||||
struct gpio_config_params *param)
|
||||
{
|
||||
return tgt_set_gpio_config_req(psoc, param);
|
||||
}
|
||||
qdf_export_symbol(ucfg_set_gpio_config);
|
||||
|
||||
QDF_STATUS
|
||||
ucfg_set_gpio_output(struct wlan_objmgr_psoc *psoc,
|
||||
struct gpio_output_params *param)
|
||||
{
|
||||
return tgt_set_gpio_output_req(psoc, param);
|
||||
}
|
||||
qdf_export_symbol(ucfg_set_gpio_output);
|
Reference in New Issue
Block a user