arm64/dts: update the wlan_antenna driver code for boston

add the code to support get the gpio status.
adb shell "cat /sys/devices/platform/soc/soc:wlan_antenna/wlan_antenna_en"
low

adb shell "cat /sys/devices/platform/soc/soc:wlan_antenna/wlan_antenna_en"
high

Change-Id: If1e1826e5afa9779bae44a8339eb74f4bbc11e6f
Signed-off-by: Zhiye Li <lizy90@motorola.com>
Reviewed-on: https://gerrit.mot.com/2795396
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Yeqing Wang <wangyq13@motorola.com>
Reviewed-by: Bin Liu <liubin7@motorola.com>
Reviewed-by: Tao Sun <suntao2@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
Zhiye Li 2023-11-15 15:05:39 +08:00 • committed by lizy90
commit ee730f8640

View file

@ -25,13 +25,15 @@
#include <linux/platform_device.h>
#include <linux/of.h>
#include <linux/pinctrl/consumer.h>
#include <linux/gpio.h>
#include <linux/of_gpio.h>
#define DRIVER_VERSION "0.0.1"
struct wlan_antenna_drvdata {
struct device *dev;
struct pinctrl *pinctrl;
int wlan_antenna_gpio;
struct pinctrl_state *pstate_active;
struct pinctrl_state *pstate_suspend;
};
@ -47,7 +49,10 @@ static ssize_t wlan_antenna_en_read(struct device *dev,
return -EINVAL;
}
return snprintf(buf, PAGE_SIZE, "wlan_antenna: not support!\n");
if (gpio_get_value(data->wlan_antenna_gpio))
return snprintf(buf, PAGE_SIZE, "high\n");
else
return snprintf(buf, PAGE_SIZE, "low\n");
}
static ssize_t wlan_antenna_en_write(struct device *dev,
@ -77,8 +82,6 @@ static ssize_t wlan_antenna_en_write(struct device *dev,
if(ret) {
pr_err("wlan_antenna failed to set pinctrl!\n");
} else {
pr_info("wlan_antenna success set pinctrl\n");
}
return count;
@ -108,6 +111,13 @@ static int wlan_antenna_probe(struct platform_device *pdev)
drvdata->dev = &pdev->dev;
platform_set_drvdata(pdev, drvdata);
drvdata->wlan_antenna_gpio = of_get_named_gpio(dev->of_node, "qcom,wlan_antenna-gpio", 0);
ret = gpio_request(drvdata->wlan_antenna_gpio, "wlan_antenna_gpio");
if (ret) {
pr_err("%s, unable to request gpio %d (%d)\n", __func__, drvdata->wlan_antenna_gpio, ret);
return ret;
}
/* Get pinctrl if target uses pinctrl */
drvdata->pinctrl = devm_pinctrl_get(dev);
if (IS_ERR_OR_NULL(drvdata->pinctrl)) {