Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5deeac99 authored by Andrew Clayton's avatar Andrew Clayton Committed by Dmitry Torokhov
Browse files

Input: rotary-encoder - set gpio direction for each requested gpio



Even with the correct pin mux settings, you still need to explicitly
set the gpio direction. Call gpio_direction_input() after each
requested gpio.

Signed-off-by: default avatarAndrew Clayton <andrew@digital-domain.net>
Signed-off-by: default avatarMark Somerville <mark@scottishclimbs.com>
Tested-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: default avatarDaniel Mack <daniel@caiaq.de>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 8f8be243
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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,