mirror of
https://github.com/armbian/linux.git
synced 2026-01-06 10:13:00 -08:00
rk30 phone: modify headset detect request irq location
This commit is contained in:
@@ -453,42 +453,7 @@ static int rockchip_headsetobserve_probe(struct platform_device *pdev)
|
||||
setup_timer(&headset->headset_timer, headset_timer_callback, (unsigned long)headset);
|
||||
// headset->headset_timer.expires = jiffies + 1000;
|
||||
// add_timer(&headset->headset_timer);
|
||||
//------------------------------------------------------------------
|
||||
if (pdata->Headset_gpio) {
|
||||
ret = gpio_request(pdata->Headset_gpio, NULL);
|
||||
if (ret)
|
||||
goto failed_free;
|
||||
gpio_pull_updown(pdata->Headset_gpio, PullDisable);
|
||||
gpio_direction_input(pdata->Headset_gpio);
|
||||
headset->irq[HEADSET] = gpio_to_irq(pdata->Headset_gpio);
|
||||
|
||||
if(pdata->headset_in_type == HEADSET_IN_HIGH)
|
||||
headset->irq_type[HEADSET] = IRQF_TRIGGER_RISING;
|
||||
else
|
||||
headset->irq_type[HEADSET] = IRQF_TRIGGER_FALLING;
|
||||
ret = request_irq(headset->irq[HEADSET], headset_interrupt, headset->irq_type[HEADSET], "headset_input", NULL);
|
||||
if (ret)
|
||||
goto failed_free;
|
||||
enable_irq_wake(headset->irq[HEADSET]);
|
||||
}
|
||||
else
|
||||
goto failed_free;
|
||||
//------------------------------------------------------------------
|
||||
if (pdata->Hook_gpio) {
|
||||
ret = gpio_request(pdata->Hook_gpio , NULL);
|
||||
if (ret)
|
||||
goto failed_free;
|
||||
gpio_pull_updown(pdata->Hook_gpio, PullDisable);
|
||||
gpio_direction_input(pdata->Hook_gpio);
|
||||
headset->irq[HOOK] = gpio_to_irq(pdata->Hook_gpio);
|
||||
headset->irq_type[HOOK] = IRQF_TRIGGER_FALLING;
|
||||
|
||||
ret = request_irq(headset->irq[HOOK], Hook_interrupt, headset->irq_type[HOOK] , "headset_hook", NULL);
|
||||
if (ret)
|
||||
goto failed_free;
|
||||
disable_irq(headset->irq[HOOK]);
|
||||
}
|
||||
//------------------------------------------------------------------
|
||||
// Create and register the input driver.
|
||||
headset->input_dev = input_allocate_device();
|
||||
if (!headset->input_dev) {
|
||||
@@ -534,6 +499,43 @@ static int rockchip_headsetobserve_probe(struct platform_device *pdev)
|
||||
register_early_suspend(&hs_early_suspend);
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------
|
||||
if (pdata->Headset_gpio) {
|
||||
ret = gpio_request(pdata->Headset_gpio, NULL);
|
||||
if (ret)
|
||||
goto failed_free_dev;
|
||||
gpio_pull_updown(pdata->Headset_gpio, PullDisable);
|
||||
gpio_direction_input(pdata->Headset_gpio);
|
||||
headset->irq[HEADSET] = gpio_to_irq(pdata->Headset_gpio);
|
||||
|
||||
if(pdata->headset_in_type == HEADSET_IN_HIGH)
|
||||
headset->irq_type[HEADSET] = IRQF_TRIGGER_RISING;
|
||||
else
|
||||
headset->irq_type[HEADSET] = IRQF_TRIGGER_FALLING;
|
||||
ret = request_irq(headset->irq[HEADSET], headset_interrupt, headset->irq_type[HEADSET], "headset_input", NULL);
|
||||
if (ret)
|
||||
goto failed_free_dev;
|
||||
enable_irq_wake(headset->irq[HEADSET]);
|
||||
}
|
||||
else
|
||||
goto failed_free_dev;
|
||||
//------------------------------------------------------------------
|
||||
if (pdata->Hook_gpio) {
|
||||
ret = gpio_request(pdata->Hook_gpio , NULL);
|
||||
if (ret)
|
||||
goto failed_free_dev;
|
||||
gpio_pull_updown(pdata->Hook_gpio, PullDisable);
|
||||
gpio_direction_input(pdata->Hook_gpio);
|
||||
headset->irq[HOOK] = gpio_to_irq(pdata->Hook_gpio);
|
||||
headset->irq_type[HOOK] = IRQF_TRIGGER_FALLING;
|
||||
|
||||
ret = request_irq(headset->irq[HOOK], Hook_interrupt, headset->irq_type[HOOK] , "headset_hook", NULL);
|
||||
if (ret)
|
||||
goto failed_free_dev;
|
||||
disable_irq(headset->irq[HOOK]);
|
||||
}
|
||||
//------------------------------------------------------------------
|
||||
|
||||
return 0;
|
||||
|
||||
failed_free_dev:
|
||||
|
||||
@@ -437,42 +437,7 @@ static int rockchip_headsetobserve_probe(struct platform_device *pdev)
|
||||
headset->isMic = 0;
|
||||
setup_timer(&headset->headset_timer, headset_timer_callback, (unsigned long)headset);
|
||||
|
||||
//------------------------------------------------------------------
|
||||
if (pdata->Headset_gpio) {
|
||||
|
||||
ret = pdata->headset_io_init(pdata->Headset_gpio, pdata->headset_gpio_info.iomux_name, pdata->headset_gpio_info.iomux_mode);
|
||||
if (ret)
|
||||
goto failed_free;
|
||||
|
||||
headset->irq[HEADSET] = gpio_to_irq(pdata->Headset_gpio);
|
||||
|
||||
if(pdata->headset_in_type == HEADSET_IN_HIGH)
|
||||
headset->irq_type[HEADSET] = IRQF_TRIGGER_RISING;
|
||||
else
|
||||
headset->irq_type[HEADSET] = IRQF_TRIGGER_FALLING;
|
||||
ret = request_irq(headset->irq[HEADSET], headset_interrupt, headset->irq_type[HEADSET], "headset_input", NULL);
|
||||
if (ret)
|
||||
goto failed_free;
|
||||
enable_irq_wake(headset->irq[HEADSET]);
|
||||
}
|
||||
else
|
||||
goto failed_free;
|
||||
//------------------------------------------------------------------
|
||||
|
||||
if(pdata->Hook_adc_chn>=0 && 2>=pdata->Hook_adc_chn)
|
||||
{
|
||||
printk("hook adc register\n");
|
||||
headset->client = adc_register(pdata->Hook_adc_chn, hook_adc_callback, (void *)headset);
|
||||
if(!headset->client) {
|
||||
printk("hook adc register error\n");
|
||||
ret = -EINVAL;
|
||||
goto failed_free;
|
||||
}
|
||||
setup_timer(&headset->hook_timer,
|
||||
hook_timer_callback, (unsigned long)headset);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------
|
||||
|
||||
// Create and register the input driver.
|
||||
headset->input_dev = input_allocate_device();
|
||||
if (!headset->input_dev) {
|
||||
@@ -518,6 +483,42 @@ static int rockchip_headsetobserve_probe(struct platform_device *pdev)
|
||||
register_early_suspend(&hs_early_suspend);
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------
|
||||
if (pdata->Headset_gpio) {
|
||||
|
||||
ret = pdata->headset_io_init(pdata->Headset_gpio, pdata->headset_gpio_info.iomux_name, pdata->headset_gpio_info.iomux_mode);
|
||||
if (ret)
|
||||
goto failed_free_dev;
|
||||
|
||||
headset->irq[HEADSET] = gpio_to_irq(pdata->Headset_gpio);
|
||||
|
||||
if(pdata->headset_in_type == HEADSET_IN_HIGH)
|
||||
headset->irq_type[HEADSET] = IRQF_TRIGGER_RISING;
|
||||
else
|
||||
headset->irq_type[HEADSET] = IRQF_TRIGGER_FALLING;
|
||||
ret = request_irq(headset->irq[HEADSET], headset_interrupt, headset->irq_type[HEADSET], "headset_input", NULL);
|
||||
if (ret)
|
||||
goto failed_free_dev;
|
||||
enable_irq_wake(headset->irq[HEADSET]);
|
||||
}
|
||||
else
|
||||
goto failed_free_dev;
|
||||
//------------------------------------------------------------------
|
||||
|
||||
if(pdata->Hook_adc_chn>=0 && 2>=pdata->Hook_adc_chn)
|
||||
{
|
||||
printk("hook adc register\n");
|
||||
headset->client = adc_register(pdata->Hook_adc_chn, hook_adc_callback, (void *)headset);
|
||||
if(!headset->client) {
|
||||
printk("hook adc register error\n");
|
||||
ret = -EINVAL;
|
||||
goto failed_free_dev;
|
||||
}
|
||||
setup_timer(&headset->hook_timer,
|
||||
hook_timer_callback, (unsigned long)headset);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------
|
||||
return 0;
|
||||
|
||||
failed_free_dev:
|
||||
|
||||
Reference in New Issue
Block a user