headset driver: remove gpio info pdata.
author邱建斌 <qjb@rock-chips.com>
Wed, 4 Sep 2013 11:38:11 +0000 (19:38 +0800)
committer邱建斌 <qjb@rock-chips.com>
Wed, 4 Sep 2013 11:38:11 +0000 (19:38 +0800)
drivers/headset_observe/rk_headset.c
drivers/headset_observe/rk_headset.h

index 8a017e662f1488cb435dd080fcb9f2d4633a948b..21cac4ee505af1cb0c395b73b0c837ef4463b001 100755 (executable)
@@ -448,9 +448,13 @@ static int rockchip_headsetobserve_probe(struct platform_device *pdev)
 #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(pdata->Headset_gpio == NULL){
+                       dev_err(&pdev->dev,"failed init hook,please full hook_io_init function in board\n");
+                       goto failed_free_dev;
+               }       
+               ret = pdata->headset_io_init(pdata->Headset_gpio);
                if (ret) 
-                       goto failed_free;       
+                       goto failed_free_dev;   
 
                headset->irq[HEADSET] = gpio_to_irq(pdata->Headset_gpio);
 
@@ -467,9 +471,13 @@ static int rockchip_headsetobserve_probe(struct platform_device *pdev)
                goto failed_free_dev;
 //------------------------------------------------------------------
        if (pdata->Hook_gpio) {
-               ret = pdata->hook_io_init(pdata->Hook_gpio, pdata->hook_gpio_info.iomux_name, pdata->hook_gpio_info.iomux_mode);
+               if(pdata->hook_io_init == NULL){
+                       dev_err(&pdev->dev,"failed init hook,please full hook_io_init function in board\n");
+                       goto failed_free_dev;
+               }       
+               ret = pdata->hook_io_init(pdata->Hook_gpio);
                if (ret) 
-                       goto failed_free;
+                       goto failed_free_dev;
                headset->irq[HOOK] = gpio_to_irq(pdata->Hook_gpio);
                headset->irq_type[HOOK] = pdata->Hook_down_type == HOOK_DOWN_HIGH ? IRQF_TRIGGER_RISING : IRQF_TRIGGER_FALLING;
                        
index 6c5d7a6f1dca6150ca5a63d7a6417cfc496a66fe..1afd36897779d7b61e0cf507ee4da5ac0751d85e 100755 (executable)
@@ -22,11 +22,9 @@ struct rk_headset_pdata{
        unsigned int Hook_down_type; //Hook key down status   
        int     hook_key_code;
        unsigned int Headset_gpio;//Detection Headset--Must be set
-       unsigned int headset_in_type;// Headphones into the state level--Must be set    
-       struct io_info headset_gpio_info;
-       struct io_info hook_gpio_info;
-       int (*headset_io_init)(int, char *, int);
-       int (*hook_io_init)(int, char *, int);
+       unsigned int headset_in_type;// Headphones into the state level--Must be set
+       int (*headset_io_init)(int);
+       int (*hook_io_init)(int);
 };
 
 #endif