From ea08eeccae9297f7aabd2ef7f0c2517ac4549acc Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Tue, 20 Feb 2024 01:18:26 +0000
Subject: [PATCH] write in 30M
---
kernel/drivers/headset_observe/rockchip_headset_core.c | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/kernel/drivers/headset_observe/rockchip_headset_core.c b/kernel/drivers/headset_observe/rockchip_headset_core.c
index 3c2eeb7..547c71a 100644
--- a/kernel/drivers/headset_observe/rockchip_headset_core.c
+++ b/kernel/drivers/headset_observe/rockchip_headset_core.c
@@ -73,6 +73,34 @@
HEADSET_IN_LOW :
HEADSET_IN_HIGH;
}
+
+ /* spk-ctl */
+ ret = of_get_named_gpio_flags(node, "spk_ctl_gpio", 0, &flags);
+ if (ret < 0) {
+ dev_err(&pdev->dev, "Can not read property headset_gpio\n");
+ goto err;
+ } else {
+ pdata->spk_ctl_gpio = ret;
+ ret = devm_gpio_request(&pdev->dev, pdata->spk_ctl_gpio,
+ "spk_ctl_gpio");
+ if (ret < 0) {
+ dev_err(&pdev->dev, "spk_ctl_gpio request fail\n");
+ goto err;
+ }
+
+ ret = gpio_get_value(pdata->headset_gpio);
+ printk(" headset_gpio value : %d\n",ret);
+ if (ret == 0)
+ ret = gpio_direction_output(pdata->spk_ctl_gpio,0);
+ else
+ ret = gpio_direction_output(pdata->spk_ctl_gpio,1);
+ if (ret < 0) {
+ dev_err(&pdev->dev,
+ "spk_ctl_gpio set direction fail\n");
+ goto err;
+ }
+ }
+
/* hook */
ret = of_get_named_gpio_flags(node, "hook_gpio", 0, &pdata->hook_gpio);
if (ret < 0) {
--
Gitblit v1.6.2