Input: rotary-encoder - set gpio direction for each requested gpio
[safe/jmp/linux-2.6] / drivers / input / misc / rotary_encoder.c
index 3b9f588..4ae0793 100644 (file)
@@ -152,6 +152,13 @@ static int __devinit rotary_encoder_probe(struct platform_device *pdev)
                goto exit_unregister_input;
        }
 
+       err = gpio_direction_input(pdata->gpio_a);
+       if (err) {
+               dev_err(&pdev->dev, "unable to set GPIO %d for input\n",
+                       pdata->gpio_a);
+               goto exit_unregister_input;
+       }
+
        err = gpio_request(pdata->gpio_b, DRV_NAME);
        if (err) {
                dev_err(&pdev->dev, "unable to request GPIO %d\n",
@@ -159,6 +166,13 @@ static int __devinit rotary_encoder_probe(struct platform_device *pdev)
                goto exit_free_gpio_a;
        }
 
+       err = gpio_direction_input(pdata->gpio_b);
+       if (err) {
+               dev_err(&pdev->dev, "unable to set GPIO %d for input\n",
+                       pdata->gpio_b);
+               goto exit_free_gpio_a;
+       }
+
        /* request the IRQs */
        err = request_irq(encoder->irq_a, &rotary_encoder_irq,
                          IORESOURCE_IRQ_HIGHEDGE | IORESOURCE_IRQ_LOWEDGE,