diff options
author | 宋秀杰 <sxj@rock-chips.com> | 2012-06-03 16:38:27 +0800 |
---|---|---|
committer | 宋秀杰 <sxj@rock-chips.com> | 2012-06-03 16:38:27 +0800 |
commit | 863facb1bbefa19ddbc666fedbb76f65d46d7bc2 (patch) | |
tree | d1d1a56e128d7c0f50364c7e83adb979449dd733 /drivers/headset_observe/rk_headset_irq_hook_adc.c | |
parent | 22e9b8cfdeb685d3b3c637d2986b9b6de623f912 (diff) |
rk30 phone: modify headset detect request irq location
Diffstat (limited to 'drivers/headset_observe/rk_headset_irq_hook_adc.c')
-rwxr-xr-x | drivers/headset_observe/rk_headset_irq_hook_adc.c | 73 |
1 files changed, 37 insertions, 36 deletions
diff --git a/drivers/headset_observe/rk_headset_irq_hook_adc.c b/drivers/headset_observe/rk_headset_irq_hook_adc.c index 61e2841e3eeb..53d4a170d60c 100755 --- a/drivers/headset_observe/rk_headset_irq_hook_adc.c +++ b/drivers/headset_observe/rk_headset_irq_hook_adc.c @@ -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: |