From 297b60346df8beafee954a0fd7c2d64f33f3b9bc Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Sat, 11 May 2024 01:44:05 +0000 Subject: [PATCH] rtl8211F_led_control --- kernel/drivers/headset_observe/rk_headset.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/kernel/drivers/headset_observe/rk_headset.c b/kernel/drivers/headset_observe/rk_headset.c index 5b16db7..64115a5 100644 --- a/kernel/drivers/headset_observe/rk_headset.c +++ b/kernel/drivers/headset_observe/rk_headset.c @@ -155,6 +155,7 @@ int level2 = 0; struct rk_headset_pdata *pdata = headset_info->pdata; static unsigned int old_status = 0; + int ret; printk("---headsetobserve_work---\n"); mutex_lock(&headset_info->mutex_lock[HEADSET]); @@ -182,6 +183,10 @@ headset_info->headset_status ? "in" : "out"); if (headset_info->headset_status == HEADSET_IN) { headset_info->cur_headset_status = BIT_HEADSET_NO_MIC; + ret = gpio_direction_output(pdata->spk_ctl_gpio,0); + if (ret < 0) { + printk("spk_ctl_gpio set direction fail\n"); + } if (pdata->headset_insert_type == HEADSET_IN_HIGH) irq_set_irq_type(headset_info->irq[HEADSET], IRQF_TRIGGER_FALLING); @@ -196,6 +201,10 @@ goto out; } } else if (headset_info->headset_status == HEADSET_OUT) { + ret = gpio_direction_output(pdata->spk_ctl_gpio,1); + if (ret < 0) { + printk("spk_ctl_gpio set direction fail\n"); + } headset_info->hook_status = HOOK_UP; if (headset_info->isHook_irq == enable) { DBG("disable headset_hook irq\n"); -- Gitblit v1.6.2