提交 969111e9 编写于 作者: N Nicolas Ferre 提交者: Dmitry Torokhov

Input: ads7846 - add support for the ads7843 touchscreen

The ads7843 support has now become almost trivial since the last
rework.
Signed-off-by: NNicolas Ferre <nicolas.ferre@rfo.atmel.com>
Acked-by: NDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
上级 bebb8a2b
...@@ -39,7 +39,8 @@ ...@@ -39,7 +39,8 @@
/* /*
* This code has been heavily tested on a Nokia 770, and lightly * This code has been heavily tested on a Nokia 770, and lightly
* tested on other ads7846 devices (OSK/Mistral, Lubbock). * tested on other ads7846 devices (OSK/Mistral, Lubbock).
* Support for ads7843 and ads7845 has only been stubbed in. * Support for ads7843 tested on Atmel at91sam926x-EK.
* Support for ads7845 has only been stubbed in.
* *
* IRQ handling needs a workaround because of a shortcoming in handling * IRQ handling needs a workaround because of a shortcoming in handling
* edge triggered IRQs on some platforms like the OMAP1/2. These * edge triggered IRQs on some platforms like the OMAP1/2. These
...@@ -246,18 +247,16 @@ static int ads7846_read12_ser(struct device *dev, unsigned command) ...@@ -246,18 +247,16 @@ static int ads7846_read12_ser(struct device *dev, unsigned command)
/* REVISIT: take a few more samples, and compare ... */ /* REVISIT: take a few more samples, and compare ... */
/* maybe off internal vREF */ /* converter in low power mode & enable PENIRQ */
if (use_internal) { req->ref_off = PWRDOWN;
req->ref_off = REF_OFF; req->xfer[4].tx_buf = &req->ref_off;
req->xfer[4].tx_buf = &req->ref_off; req->xfer[4].len = 1;
req->xfer[4].len = 1; spi_message_add_tail(&req->xfer[4], &req->msg);
spi_message_add_tail(&req->xfer[4], &req->msg);
req->xfer[5].rx_buf = &req->scratch;
req->xfer[5].rx_buf = &req->scratch; req->xfer[5].len = 2;
req->xfer[5].len = 2; CS_CHANGE(req->xfer[5]);
CS_CHANGE(req->xfer[5]); spi_message_add_tail(&req->xfer[5], &req->msg);
spi_message_add_tail(&req->xfer[5], &req->msg);
}
ts->irq_disabled = 1; ts->irq_disabled = 1;
disable_irq(spi->irq); disable_irq(spi->irq);
...@@ -536,6 +535,9 @@ static void ads7846_rx(void *ads) ...@@ -536,6 +535,9 @@ static void ads7846_rx(void *ads)
} else } else
Rt = 0; Rt = 0;
if (ts->model == 7843)
Rt = ts->pressure_max / 2;
/* Sample found inconsistent by debouncing or pressure is beyond /* Sample found inconsistent by debouncing or pressure is beyond
* the maximum. Don't report it to user space, repeat at least * the maximum. Don't report it to user space, repeat at least
* once more the measurement * once more the measurement
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册