rk30 phone: modify headset detect request irq location
author宋秀杰 <sxj@rock-chips.com>
Sun, 3 Jun 2012 08:38:27 +0000 (16:38 +0800)
committer宋秀杰 <sxj@rock-chips.com>
Sun, 3 Jun 2012 08:38:27 +0000 (16:38 +0800)
drivers/headset_observe/rk_headset.c
drivers/headset_observe/rk_headset_irq_hook_adc.c

index bd2a1ddc653b1c8078bdac4765396f7eb1765608..e9f39d805ed6dd0e21194b940d980c2804203614 100755 (executable)
@@ -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:
index 61e2841e3eebc94756e34fb89373e19262415cb0..53d4a170d60c691125a6e6b9d68c0720a0d381c6 100755 (executable)
@@ -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: