Input: ads7846 - power down ADC a bit later
Submit a seperate request for powering down the ADC in ads7846, doing it after the last read request. Otherwise some of the read values are incorrect. Signed-off-by: Imre Deak <imre.deak@nokia.com> Signed-off-by: Juha Yrjola <juha.yrjola@nokia.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
438f2a7401
commit
53a0ef89e9
|
@ -72,10 +72,11 @@ struct ads7846 {
|
||||||
u16 vref_delay_usecs;
|
u16 vref_delay_usecs;
|
||||||
u16 x_plate_ohms;
|
u16 x_plate_ohms;
|
||||||
|
|
||||||
u8 read_x, read_y, read_z1, read_z2;
|
u8 read_x, read_y, read_z1, read_z2, pwrdown;
|
||||||
|
u16 dummy; /* for the pwrdown read */
|
||||||
struct ts_event tc;
|
struct ts_event tc;
|
||||||
|
|
||||||
struct spi_transfer xfer[8];
|
struct spi_transfer xfer[10];
|
||||||
struct spi_message msg;
|
struct spi_message msg;
|
||||||
|
|
||||||
spinlock_t lock;
|
spinlock_t lock;
|
||||||
|
@ -125,7 +126,9 @@ struct ads7846 {
|
||||||
#define READ_Y (READ_12BIT_DFR(y) | ADS_PD10_ADC_ON)
|
#define READ_Y (READ_12BIT_DFR(y) | ADS_PD10_ADC_ON)
|
||||||
#define READ_Z1 (READ_12BIT_DFR(z1) | ADS_PD10_ADC_ON)
|
#define READ_Z1 (READ_12BIT_DFR(z1) | ADS_PD10_ADC_ON)
|
||||||
#define READ_Z2 (READ_12BIT_DFR(z2) | ADS_PD10_ADC_ON)
|
#define READ_Z2 (READ_12BIT_DFR(z2) | ADS_PD10_ADC_ON)
|
||||||
#define READ_X (READ_12BIT_DFR(x) | ADS_PD10_PDOWN) /* LAST */
|
|
||||||
|
#define READ_X (READ_12BIT_DFR(x) | ADS_PD10_ADC_ON)
|
||||||
|
#define PWRDOWN (READ_12BIT_DFR(y) | ADS_PD10_PDOWN) /* LAST */
|
||||||
|
|
||||||
/* single-ended samples need to first power up reference voltage;
|
/* single-ended samples need to first power up reference voltage;
|
||||||
* we leave both ADC and VREF powered
|
* we leave both ADC and VREF powered
|
||||||
|
@ -541,6 +544,18 @@ static int __devinit ads7846_probe(struct spi_device *spi)
|
||||||
x++;
|
x++;
|
||||||
x->rx_buf = &ts->tc.x;
|
x->rx_buf = &ts->tc.x;
|
||||||
x->len = 2;
|
x->len = 2;
|
||||||
|
spi_message_add_tail(x, &ts->msg);
|
||||||
|
|
||||||
|
/* power down */
|
||||||
|
x++;
|
||||||
|
ts->pwrdown = PWRDOWN;
|
||||||
|
x->tx_buf = &ts->pwrdown;
|
||||||
|
x->len = 1;
|
||||||
|
spi_message_add_tail(x, &ts->msg);
|
||||||
|
|
||||||
|
x++;
|
||||||
|
x->rx_buf = &ts->dummy;
|
||||||
|
x->len = 2;
|
||||||
CS_CHANGE(*x);
|
CS_CHANGE(*x);
|
||||||
spi_message_add_tail(x, &ts->msg);
|
spi_message_add_tail(x, &ts->msg);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue