diff options
Diffstat (limited to 'drivers/input/misc/rotary_encoder.c')
| -rw-r--r-- | drivers/input/misc/rotary_encoder.c | 14 | 
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/input/misc/rotary_encoder.c b/drivers/input/misc/rotary_encoder.c index 3b9f588fc74..4ae07935985 100644 --- a/drivers/input/misc/rotary_encoder.c +++ b/drivers/input/misc/rotary_encoder.c @@ -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,  |