Lines Matching full:headset
54 #define HEADSET 0 macro
71 /* headset private data */
138 schedule_delayed_work(&headset_info->h_delayed_work[HEADSET], in headset_interrupt()
160 mutex_lock(&headset_info->mutex_lock[HEADSET]); in headsetobserve_work()
180 DBG("(headset in is %s)headset status is %s\n", in headsetobserve_work()
186 irq_set_irq_type(headset_info->irq[HEADSET], in headsetobserve_work()
189 irq_set_irq_type(headset_info->irq[HEADSET], in headsetobserve_work()
207 irq_set_irq_type(headset_info->irq[HEADSET], in headsetobserve_work()
210 irq_set_irq_type(headset_info->irq[HEADSET], in headsetobserve_work()
222 mutex_unlock(&headset_info->mutex_lock[HEADSET]); in headsetobserve_work()
233 DBG("Headset is out\n"); in hook_work()
279 struct headset_priv *headset = from_timer(headset, t, headset_timer); in headset_timer_callback() local
280 struct rk_headset_pdata *pdata = headset->pdata; in headset_timer_callback()
283 pr_info("headset_timer_callback, headset->headset_status %d\n", in headset_timer_callback()
284 headset->headset_status); in headset_timer_callback()
285 if (headset->headset_status == HEADSET_OUT) { in headset_timer_callback()
286 pr_info("Headset is out\n"); in headset_timer_callback()
294 headset->isMic = 1; in headset_timer_callback()
296 headset->isHook_irq = enable; in headset_timer_callback()
305 headset->isMic = 0; in headset_timer_callback()
307 pr_info("headset->isMic = %d\n", headset->isMic); in headset_timer_callback()
309 if (headset->isMic == 1) in headset_timer_callback()
324 schedule_delayed_work(&headset_info->h_delayed_work[HEADSET], in headset_early_resume()
355 struct headset_priv *headset; in rk_headset_probe() local
357 headset = devm_kzalloc(&pdev->dev, sizeof(*headset), GFP_KERNEL); in rk_headset_probe()
358 if (!headset) { in rk_headset_probe()
362 headset_info = headset; in rk_headset_probe()
363 headset->pdata = pdata; in rk_headset_probe()
364 headset->headset_status = HEADSET_OUT; in rk_headset_probe()
365 headset->hook_status = HOOK_UP; in rk_headset_probe()
366 headset->isHook_irq = disable; in rk_headset_probe()
367 headset->cur_headset_status = 0; in rk_headset_probe()
368 headset->edev = devm_extcon_dev_allocate(&pdev->dev, headset_cable); in rk_headset_probe()
369 if (IS_ERR(headset->edev)) { in rk_headset_probe()
374 ret = devm_extcon_dev_register(&pdev->dev, headset->edev); in rk_headset_probe()
379 mutex_init(&headset->mutex_lock[HEADSET]); in rk_headset_probe()
380 mutex_init(&headset->mutex_lock[HOOK]); in rk_headset_probe()
381 INIT_DELAYED_WORK(&headset->h_delayed_work[HEADSET], in rk_headset_probe()
383 INIT_DELAYED_WORK(&headset->h_delayed_work[HOOK], hook_work); in rk_headset_probe()
384 headset->isMic = 0; in rk_headset_probe()
385 timer_setup(&headset->headset_timer, headset_timer_callback, 0); in rk_headset_probe()
387 headset->input_dev = devm_input_allocate_device(&pdev->dev); in rk_headset_probe()
388 if (!headset->input_dev) { in rk_headset_probe()
393 headset->input_dev->name = pdev->name; in rk_headset_probe()
394 headset->input_dev->open = rk_hskey_open; in rk_headset_probe()
395 headset->input_dev->close = rk_hskey_close; in rk_headset_probe()
396 headset->input_dev->dev.parent = &pdev->dev; in rk_headset_probe()
398 headset->input_dev->id.vendor = 0x0001; in rk_headset_probe()
399 headset->input_dev->id.product = 0x0001; in rk_headset_probe()
400 headset->input_dev->id.version = 0x0100; in rk_headset_probe()
402 ret = input_register_device(headset->input_dev); in rk_headset_probe()
407 input_set_capability(headset->input_dev, EV_KEY, HOOK_KEY_CODE); in rk_headset_probe()
415 headset->irq[HEADSET] = gpio_to_irq(pdata->headset_gpio); in rk_headset_probe()
417 headset->irq_type[HEADSET] = IRQF_TRIGGER_RISING; in rk_headset_probe()
419 headset->irq_type[HEADSET] = IRQF_TRIGGER_FALLING; in rk_headset_probe()
420 ret = devm_request_irq(&pdev->dev, headset->irq[HEADSET], in rk_headset_probe()
422 headset->irq_type[HEADSET], in rk_headset_probe()
427 enable_irq_wake(headset->irq[HEADSET]); in rk_headset_probe()
429 dev_err(&pdev->dev, "failed init headset, please full headset_gpio function in board\n"); in rk_headset_probe()
434 headset->irq[HOOK] = gpio_to_irq(pdata->hook_gpio); in rk_headset_probe()
435 headset->irq_type[HOOK] = in rk_headset_probe()
439 ret = devm_request_irq(&pdev->dev, headset->irq[HOOK], in rk_headset_probe()
440 hook_interrupt, headset->irq_type[HOOK], in rk_headset_probe()
444 disable_irq(headset->irq[HOOK]); in rk_headset_probe()
446 schedule_delayed_work(&headset->h_delayed_work[HEADSET], in rk_headset_probe()
450 dev_err(&pdev->dev, "failed to headset probe ret=%d\n", ret); in rk_headset_probe()