Input: ad7879 - fix default x/y axis assignment
The X/Y position measurements read from the controller are interpreted
wrong. The first measurement X+ contains the Y position, and the second
measurement Y+ the X position (see also Table 11 Register Table in the
data sheet).
The problem is already known and a swap option has been introduced:
commit 6680884a44
("Input: ad7879 - add option to correct xy axis")
However, the meaning of the new boolean is inverted since the underlying
values are already swapped. Let ts->swap_xy set to true actually be the
swapped configuration of the two axis.
Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
Родитель
4774f40093
Коммит
5f2940c4a5
|
@ -94,8 +94,8 @@
|
|||
#define AD7879_TEMP_BIT (1<<1)
|
||||
|
||||
enum {
|
||||
AD7879_SEQ_XPOS = 0,
|
||||
AD7879_SEQ_YPOS = 1,
|
||||
AD7879_SEQ_YPOS = 0,
|
||||
AD7879_SEQ_XPOS = 1,
|
||||
AD7879_SEQ_Z1 = 2,
|
||||
AD7879_SEQ_Z2 = 3,
|
||||
AD7879_NR_SENSE = 4,
|
||||
|
@ -517,7 +517,9 @@ struct ad7879 *ad7879_probe(struct device *dev, u8 devid, unsigned int irq,
|
|||
ts->dev = dev;
|
||||
ts->input = input_dev;
|
||||
ts->irq = irq;
|
||||
ts->swap_xy = pdata->swap_xy;
|
||||
|
||||
/* Use swapped axis by default (backward compatibility) */
|
||||
ts->swap_xy = !pdata->swap_xy;
|
||||
|
||||
setup_timer(&ts->timer, ad7879_timer, (unsigned long) ts);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче