qcacmn: Add extra parameters to gpio command
Add extra parameters to gpio wmi command since they are required for smart antenna config. Change-Id: I3b363c7b508862ded8aacffb9e0a39328e8b2b94
This commit is contained in:

committed by
snandini

parent
de94037c5f
commit
a90712e15d
@@ -57,12 +57,16 @@ tgt_set_gpio_output_req(struct wlan_objmgr_psoc *psoc,
|
|||||||
* @input: enable/disable the gpio pin
|
* @input: enable/disable the gpio pin
|
||||||
* @pull_type: gpio pull type
|
* @pull_type: gpio pull type
|
||||||
* @intr_mode: gpio interrupt mode
|
* @intr_mode: gpio interrupt mode
|
||||||
|
* @mux_config_val: gpio MUX value
|
||||||
|
* @drive: gpio drive
|
||||||
|
* @init_enable: gpio init_enable
|
||||||
*
|
*
|
||||||
* Return: status of operation
|
* Return: status of operation
|
||||||
*/
|
*/
|
||||||
QDF_STATUS tgt_gpio_config(struct wlan_objmgr_psoc *psoc, uint32_t gpio_num,
|
QDF_STATUS tgt_gpio_config(struct wlan_objmgr_psoc *psoc, uint32_t gpio_num,
|
||||||
uint32_t input, uint32_t pull_type,
|
uint32_t input, uint32_t pull_type,
|
||||||
uint32_t intr_mode);
|
uint32_t intr_mode, uint32_t mux_config_val,
|
||||||
|
uint32_t drive, uint32_t init_enable);
|
||||||
/**
|
/**
|
||||||
* tgt_if_gpio_output() - API to send gpio output request
|
* tgt_if_gpio_output() - API to send gpio output request
|
||||||
* @psoc: pointer to psoc object
|
* @psoc: pointer to psoc object
|
||||||
|
@@ -59,7 +59,8 @@ QDF_STATUS tgt_set_gpio_output_req(struct wlan_objmgr_psoc *psoc,
|
|||||||
|
|
||||||
QDF_STATUS tgt_gpio_config(struct wlan_objmgr_psoc *psoc, uint32_t gpio_num,
|
QDF_STATUS tgt_gpio_config(struct wlan_objmgr_psoc *psoc, uint32_t gpio_num,
|
||||||
uint32_t input, uint32_t pull_type,
|
uint32_t input, uint32_t pull_type,
|
||||||
uint32_t intr_mode)
|
uint32_t intr_mode, uint32_t mux_config_val,
|
||||||
|
uint32_t drive, uint32_t init_enable)
|
||||||
{
|
{
|
||||||
struct gpio_config_params param;
|
struct gpio_config_params param;
|
||||||
|
|
||||||
@@ -73,6 +74,9 @@ QDF_STATUS tgt_gpio_config(struct wlan_objmgr_psoc *psoc, uint32_t gpio_num,
|
|||||||
param.pin_num = gpio_num;
|
param.pin_num = gpio_num;
|
||||||
param.pin_dir = input;
|
param.pin_dir = input;
|
||||||
param.pin_intr_mode = intr_mode;
|
param.pin_intr_mode = intr_mode;
|
||||||
|
param.mux_config_val = mux_config_val;
|
||||||
|
param.drive = drive;
|
||||||
|
param.init_enable = init_enable;
|
||||||
|
|
||||||
return tgt_set_gpio_config_req(psoc, ¶m);
|
return tgt_set_gpio_config_req(psoc, ¶m);
|
||||||
}
|
}
|
||||||
|
@@ -48,6 +48,15 @@ wlan_cfg80211_gpio_config_policy[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_MAX + 1] = {
|
|||||||
[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_DIR] = {
|
[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_DIR] = {
|
||||||
.type = NLA_U32,
|
.type = NLA_U32,
|
||||||
.len = sizeof(uint32_t) },
|
.len = sizeof(uint32_t) },
|
||||||
|
[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_MUX_CONFIG] = {
|
||||||
|
.type = NLA_U32,
|
||||||
|
.len = sizeof(uint32_t) },
|
||||||
|
[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_DRIVE] = {
|
||||||
|
.type = NLA_U32,
|
||||||
|
.len = sizeof(uint32_t) },
|
||||||
|
[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_INTERNAL_CONFIG] = {
|
||||||
|
.type = NLA_U32,
|
||||||
|
.len = sizeof(uint32_t) },
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -146,6 +155,58 @@ convert_vendor_gpio_output_value(enum qca_gpio_value value)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert_vendor_gpio_drive() - Function to convert vendor
|
||||||
|
* gpio drive
|
||||||
|
* @drive: value of enum gpio_drive
|
||||||
|
*
|
||||||
|
* Convert the vendor gpio drive to wmi unified gpio output drive
|
||||||
|
*
|
||||||
|
* Return: wmi unified gpio output drive config
|
||||||
|
*/
|
||||||
|
static enum gpio_drive
|
||||||
|
convert_vendor_gpio_drive(enum qca_gpio_drive drive)
|
||||||
|
{
|
||||||
|
switch (drive) {
|
||||||
|
case QCA_WLAN_GPIO_DRIVE_2MA:
|
||||||
|
return WMI_HOST_GPIO_DRIVE_2MA;
|
||||||
|
case QCA_WLAN_GPIO_DRIVE_4MA:
|
||||||
|
return WMI_HOST_GPIO_DRIVE_4MA;
|
||||||
|
case QCA_WLAN_GPIO_DRIVE_6MA:
|
||||||
|
return WMI_HOST_GPIO_DRIVE_6MA;
|
||||||
|
case QCA_WLAN_GPIO_DRIVE_8MA:
|
||||||
|
return WMI_HOST_GPIO_DRIVE_8MA;
|
||||||
|
case QCA_WLAN_GPIO_DRIVE_10MA:
|
||||||
|
return WMI_HOST_GPIO_DRIVE_10MA;
|
||||||
|
case QCA_WLAN_GPIO_DRIVE_12MA:
|
||||||
|
return WMI_HOST_GPIO_DRIVE_12MA;
|
||||||
|
case QCA_WLAN_GPIO_DRIVE_14MA:
|
||||||
|
return WMI_HOST_GPIO_DRIVE_14MA;
|
||||||
|
case QCA_WLAN_GPIO_DRIVE_16MA:
|
||||||
|
return WMI_HOST_GPIO_DRIVE_16MA;
|
||||||
|
default:
|
||||||
|
return WMI_HOST_GPIO_DRIVE_2MA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* convert_vendor_gpio_init_enable() - Function to convert vendor
|
||||||
|
* gpio init_enable
|
||||||
|
* @internal_config: Param to decide whether to use internal config
|
||||||
|
*
|
||||||
|
* Convert the vendor internal_config to wmi unified gpio output init_enable
|
||||||
|
*
|
||||||
|
* Return: wmi unified gpio output init_enable config
|
||||||
|
*/
|
||||||
|
static enum gpio_init_enable
|
||||||
|
convert_vendor_gpio_init_enable(uint32_t internal_config)
|
||||||
|
{
|
||||||
|
if(internal_config)
|
||||||
|
return WMI_HOST_GPIO_INIT_DISABLE;
|
||||||
|
else
|
||||||
|
return WMI_HOST_GPIO_INIT_ENABLE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_set_gpio_config() - set the gpio configuration info
|
* wlan_set_gpio_config() - set the gpio configuration info
|
||||||
* @psoc: the pointer of wlan_objmgr_psoc
|
* @psoc: the pointer of wlan_objmgr_psoc
|
||||||
@@ -162,51 +223,80 @@ wlan_set_gpio_config(struct wlan_objmgr_psoc *psoc,
|
|||||||
enum qca_gpio_direction pin_dir;
|
enum qca_gpio_direction pin_dir;
|
||||||
enum qca_gpio_pull_type pull_type;
|
enum qca_gpio_pull_type pull_type;
|
||||||
enum qca_gpio_interrupt_mode intr_mode;
|
enum qca_gpio_interrupt_mode intr_mode;
|
||||||
|
enum qca_gpio_drive drive;
|
||||||
|
uint32_t internal_config;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
|
|
||||||
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_PINNUM];
|
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_PINNUM];
|
||||||
if (!gpio_attr) {
|
if (!gpio_attr) {
|
||||||
osif_err("attr gpio number failed");
|
osif_err_rl("attr gpio number failed");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
cfg_param.pin_num = nla_get_u32(gpio_attr);
|
cfg_param.pin_num = nla_get_u32(gpio_attr);
|
||||||
|
|
||||||
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_DIR];
|
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_DIR];
|
||||||
if (!gpio_attr) {
|
if (!gpio_attr) {
|
||||||
osif_err("attr gpio dir failed");
|
osif_err_rl("attr gpio dir failed");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
pin_dir = nla_get_u32(gpio_attr);
|
pin_dir = nla_get_u32(gpio_attr);
|
||||||
if (pin_dir >= QCA_WLAN_GPIO_DIR_MAX) {
|
if (pin_dir >= QCA_WLAN_GPIO_DIR_MAX) {
|
||||||
osif_err("attr gpio direction invalid");
|
osif_err_rl("attr gpio direction invalid");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
cfg_param.pin_dir = convert_vendor_gpio_direction(pin_dir);
|
cfg_param.pin_dir = convert_vendor_gpio_direction(pin_dir);
|
||||||
|
|
||||||
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_PULL_TYPE];
|
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_PULL_TYPE];
|
||||||
if (!gpio_attr) {
|
if (!gpio_attr) {
|
||||||
osif_err("attr gpio pull failed");
|
osif_err_rl("attr gpio pull failed");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
pull_type = nla_get_u32(gpio_attr);
|
pull_type = nla_get_u32(gpio_attr);
|
||||||
if (pull_type >= QCA_WLAN_GPIO_PULL_MAX) {
|
if (pull_type >= QCA_WLAN_GPIO_PULL_MAX) {
|
||||||
osif_err("attr gpio pull type invalid");
|
osif_err_rl("attr gpio pull type invalid");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
cfg_param.pin_pull_type = convert_vendor_gpio_pull_type(pull_type);
|
cfg_param.pin_pull_type = convert_vendor_gpio_pull_type(pull_type);
|
||||||
|
|
||||||
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_INTR_MODE];
|
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_INTR_MODE];
|
||||||
if (!gpio_attr) {
|
if (!gpio_attr) {
|
||||||
osif_err("attr gpio interrupt mode failed");
|
osif_err_rl("attr gpio interrupt mode failed");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
intr_mode = nla_get_u32(gpio_attr);
|
intr_mode = nla_get_u32(gpio_attr);
|
||||||
if (intr_mode >= QCA_WLAN_GPIO_INTMODE_MAX) {
|
if (intr_mode >= QCA_WLAN_GPIO_INTMODE_MAX) {
|
||||||
osif_err("attr gpio interrupt mode invalid");
|
osif_err_rl("attr gpio interrupt mode invalid");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
cfg_param.pin_intr_mode = convert_vendor_gpio_interrupt_mode(intr_mode);
|
cfg_param.pin_intr_mode = convert_vendor_gpio_interrupt_mode(intr_mode);
|
||||||
|
|
||||||
|
/* Below are optional parameters. Initialize to zero */
|
||||||
|
cfg_param.mux_config_val = WMI_HOST_GPIO_MUX_DEFAULT;
|
||||||
|
cfg_param.drive = WMI_HOST_GPIO_DRIVE_2MA;
|
||||||
|
cfg_param.init_enable = WMI_HOST_GPIO_INIT_DISABLE;
|
||||||
|
|
||||||
|
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_MUX_CONFIG];
|
||||||
|
if (gpio_attr) {
|
||||||
|
cfg_param.mux_config_val = nla_get_u32(gpio_attr);
|
||||||
|
}
|
||||||
|
|
||||||
|
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_DRIVE];
|
||||||
|
if (gpio_attr) {
|
||||||
|
drive = nla_get_u32(gpio_attr);
|
||||||
|
if (drive >= QCA_WLAN_GPIO_DRIVE_MAX) {
|
||||||
|
osif_err_rl("attr gpio drive invalid");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
cfg_param.drive = convert_vendor_gpio_drive(drive);
|
||||||
|
}
|
||||||
|
|
||||||
|
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_INTERNAL_CONFIG];
|
||||||
|
if (gpio_attr) {
|
||||||
|
internal_config = nla_get_u32(gpio_attr);
|
||||||
|
cfg_param.init_enable =
|
||||||
|
convert_vendor_gpio_init_enable(internal_config);
|
||||||
|
}
|
||||||
|
|
||||||
status = ucfg_set_gpio_config(psoc, &cfg_param);
|
status = ucfg_set_gpio_config(psoc, &cfg_param);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@@ -229,19 +319,19 @@ wlan_set_gpio_output(struct wlan_objmgr_psoc *psoc,
|
|||||||
|
|
||||||
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_PINNUM];
|
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_PINNUM];
|
||||||
if (!gpio_attr) {
|
if (!gpio_attr) {
|
||||||
osif_err("attr gpio number failed");
|
osif_err_rl("attr gpio number failed");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
out_param.pin_num = nla_get_u32(gpio_attr);
|
out_param.pin_num = nla_get_u32(gpio_attr);
|
||||||
|
|
||||||
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_VALUE];
|
gpio_attr = attr[QCA_WLAN_VENDOR_ATTR_GPIO_PARAM_VALUE];
|
||||||
if (!gpio_attr) {
|
if (!gpio_attr) {
|
||||||
osif_err("attr gpio value failed");
|
osif_err_rl("attr gpio value failed");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
pin_set = nla_get_u32(gpio_attr);
|
pin_set = nla_get_u32(gpio_attr);
|
||||||
if (pin_set >= QCA_WLAN_GPIO_LEVEL_MAX) {
|
if (pin_set >= QCA_WLAN_GPIO_LEVEL_MAX) {
|
||||||
osif_err("attr gpio level invalid");
|
osif_err_rl("attr gpio level invalid");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
out_param.pin_set = convert_vendor_gpio_output_value(pin_set);
|
out_param.pin_set = convert_vendor_gpio_output_value(pin_set);
|
||||||
@@ -287,11 +377,11 @@ wlan_cfg80211_start_gpio_config(struct wiphy *wiphy,
|
|||||||
} else if (command == QCA_WLAN_VENDOR_GPIO_OUTPUT) {
|
} else if (command == QCA_WLAN_VENDOR_GPIO_OUTPUT) {
|
||||||
ret = wlan_set_gpio_output(psoc, attr);
|
ret = wlan_set_gpio_output(psoc, attr);
|
||||||
} else {
|
} else {
|
||||||
osif_err("Invalid command");
|
osif_err_rl("Invalid command");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
osif_err("Invalid command");
|
osif_err_rl("Invalid command");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -46,6 +46,8 @@
|
|||||||
QDF_TRACE_DEBUG(QDF_MODULE_ID_OS_IF, params)
|
QDF_TRACE_DEBUG(QDF_MODULE_ID_OS_IF, params)
|
||||||
#define osif_rl_debug(params...) \
|
#define osif_rl_debug(params...) \
|
||||||
QDF_TRACE_DEBUG_RL(QDF_MODULE_ID_OS_IF, params)
|
QDF_TRACE_DEBUG_RL(QDF_MODULE_ID_OS_IF, params)
|
||||||
|
#define osif_err_rl(params...) \
|
||||||
|
QDF_TRACE_ERROR_RL(QDF_MODULE_ID_OS_IF, params)
|
||||||
|
|
||||||
#define osif_nofl_alert(params...) \
|
#define osif_nofl_alert(params...) \
|
||||||
QDF_TRACE_FATAL_NO_FL(QDF_MODULE_ID_OS_IF, params)
|
QDF_TRACE_FATAL_NO_FL(QDF_MODULE_ID_OS_IF, params)
|
||||||
|
@@ -3596,6 +3596,52 @@ enum gpio_value {
|
|||||||
WMI_HOST_GPIO_LEVEL_MAX,
|
WMI_HOST_GPIO_LEVEL_MAX,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum gpio_init_enable - GPIO init enable
|
||||||
|
* @WMI_HOST_GPIO_INIT_DISABLE: Disable INIT
|
||||||
|
* @WMI_HOST_GPIO_INIT_ENABLE: Enable INIT
|
||||||
|
* @WMI_HOST_GPIO_INIT_MAX: invalid gpio init_enable
|
||||||
|
*/
|
||||||
|
enum gpio_init_enable {
|
||||||
|
WMI_HOST_GPIO_INIT_DISABLE = 0,
|
||||||
|
WMI_HOST_GPIO_INIT_ENABLE = 1,
|
||||||
|
WMI_HOST_GPIO_INIT_MAX,
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum gpio_drive - GPIO drive
|
||||||
|
* @WMI_HOST_GPIO_DRIVE_2MA: drive 2MA
|
||||||
|
* @WMI_HOST_GPIO_DRIVE_4MA: drive 4MA
|
||||||
|
* @WMI_HOST_GPIO_DRIVE_6MA: drive 6MA
|
||||||
|
* @WMI_HOST_GPIO_DRIVE_8MA: drive 8MA
|
||||||
|
* @WMI_HOST_GPIO_DRIVE_10MA: drive 10MA
|
||||||
|
* @WMI_HOST_GPIO_DRIVE_12MA: drive 12MA
|
||||||
|
* @WMI_HOST_GPIO_DRIVE_14MA: drive 14MA
|
||||||
|
* @WMI_HOST_GPIO_DRIVE_16MA: drive 16MA
|
||||||
|
* @WMI_HOST_GPIO_DRIVE_MAX: invalid gpio drive
|
||||||
|
*/
|
||||||
|
enum gpio_drive {
|
||||||
|
WMI_HOST_GPIO_DRIVE_2MA = 0,
|
||||||
|
WMI_HOST_GPIO_DRIVE_4MA = 1,
|
||||||
|
WMI_HOST_GPIO_DRIVE_6MA = 2,
|
||||||
|
WMI_HOST_GPIO_DRIVE_8MA = 3,
|
||||||
|
WMI_HOST_GPIO_DRIVE_10MA = 4,
|
||||||
|
WMI_HOST_GPIO_DRIVE_12MA = 5,
|
||||||
|
WMI_HOST_GPIO_DRIVE_14MA = 6,
|
||||||
|
WMI_HOST_GPIO_DRIVE_16MA = 7,
|
||||||
|
WMI_HOST_GPIO_DRIVE_MAX,
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum gpio_mux_config - GPIO mux_config
|
||||||
|
* @WMI_HOST_GPIO_MUX_DEFAULT: Default mux value
|
||||||
|
* @WMI_HOST_GPIO_MUX_MAX: maximum allowed gpio mux_config
|
||||||
|
*/
|
||||||
|
enum gpio_mux_config {
|
||||||
|
WMI_HOST_GPIO_MUX_DEFAULT = 0,
|
||||||
|
WMI_HOST_GPIO_MUX_MAX = 15,
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct wmi_host_gpio_input_event - GPIO input event structure
|
* struct wmi_host_gpio_input_event - GPIO input event structure
|
||||||
* @gpio_num: GPIO number which changed state
|
* @gpio_num: GPIO number which changed state
|
||||||
@@ -3616,6 +3662,9 @@ struct gpio_config_params {
|
|||||||
enum gpio_direction pin_dir;
|
enum gpio_direction pin_dir;
|
||||||
enum gpio_pull_type pin_pull_type;
|
enum gpio_pull_type pin_pull_type;
|
||||||
enum gpio_interrupt_mode pin_intr_mode;
|
enum gpio_interrupt_mode pin_intr_mode;
|
||||||
|
enum gpio_mux_config mux_config_val;
|
||||||
|
enum gpio_drive drive;
|
||||||
|
enum gpio_init_enable init_enable;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -157,9 +157,15 @@ send_gpio_config_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
cmd->input = convert_gpio_direction(param->pin_dir);
|
cmd->input = convert_gpio_direction(param->pin_dir);
|
||||||
cmd->pull_type = convert_gpio_pull_type(param->pin_pull_type);
|
cmd->pull_type = convert_gpio_pull_type(param->pin_pull_type);
|
||||||
cmd->intr_mode = convert_gpio_interrupt_mode(param->pin_intr_mode);
|
cmd->intr_mode = convert_gpio_interrupt_mode(param->pin_intr_mode);
|
||||||
|
cmd->mux_config_val = param->mux_config_val;
|
||||||
|
cmd->drive = param->drive;
|
||||||
|
cmd->init_enable = param->init_enable;
|
||||||
|
|
||||||
|
wmi_debug("GPIO num %d, input-dir %d, pull_type %d, intr_mode %d"
|
||||||
|
" mux_config_val %d drive %d init_enable %d",
|
||||||
|
cmd->gpio_num, cmd->input, cmd->pull_type, cmd->intr_mode,
|
||||||
|
cmd->mux_config_val, cmd->drive, cmd->init_enable);
|
||||||
|
|
||||||
wmi_debug("GPIO num %d, input-dir %d, pull_type %d, intr_mode %d",
|
|
||||||
cmd->gpio_num, cmd->input, cmd->pull_type, cmd->intr_mode);
|
|
||||||
wmi_mtrace(WMI_GPIO_CONFIG_CMDID, NO_SESSION, 0);
|
wmi_mtrace(WMI_GPIO_CONFIG_CMDID, NO_SESSION, 0);
|
||||||
ret = wmi_unified_cmd_send(wmi_handle, buf, sizeof(*cmd),
|
ret = wmi_unified_cmd_send(wmi_handle, buf, sizeof(*cmd),
|
||||||
WMI_GPIO_CONFIG_CMDID);
|
WMI_GPIO_CONFIG_CMDID);
|
||||||
|
Reference in New Issue
Block a user