Input: axp20x-pek - fix reporting button state as inverted
Currently we are reporting the button state as inverted on all boards with an axp209 pmic, tested on a ba10-tvbox, bananapi, bananapro, cubietruck and utoo-p66 tablet. The axp209 datasheet clearly states that the power button must be connected between the PWRON key and ground. Which means that on a press we will get a falling edge (dbf) irq not a rising one, and likewise on release we will get a rising edge (dbr) irq, not a falling one. This commit swaps the check for the 2 irqs fixing the inverted reporting of the power button state. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Chen-Yu Tsai <wens@csie.org> Acked-by: Carlo Caione <carlo@caione.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
cae705baa4
commit
eeeee40fcc
1 changed files with 6 additions and 2 deletions
|
@ -167,9 +167,13 @@ static irqreturn_t axp20x_pek_irq(int irq, void *pwr)
|
|||
struct input_dev *idev = pwr;
|
||||
struct axp20x_pek *axp20x_pek = input_get_drvdata(idev);
|
||||
|
||||
if (irq == axp20x_pek->irq_dbr)
|
||||
/*
|
||||
* The power-button is connected to ground so a falling edge (dbf)
|
||||
* means it is pressed.
|
||||
*/
|
||||
if (irq == axp20x_pek->irq_dbf)
|
||||
input_report_key(idev, KEY_POWER, true);
|
||||
else if (irq == axp20x_pek->irq_dbf)
|
||||
else if (irq == axp20x_pek->irq_dbr)
|
||||
input_report_key(idev, KEY_POWER, false);
|
||||
|
||||
input_sync(idev);
|
||||
|
|
Loading…
Reference in a new issue