Revision 8ef6367e hw/tsc210x.c
b/hw/tsc210x.c | ||
---|---|---|
130 | 130 |
#define Y_TRANSFORM(value) \ |
131 | 131 |
((150 + ((int) (value) * (3037 - 150) / 32768)) << 4) |
132 | 132 |
#define Z1_TRANSFORM(s) \ |
133 |
((400 - (s)->x + ((s)->pressure << 9)) << 4)
|
|
133 |
((400 - ((s)->x >> 7) + ((s)->pressure << 10)) << 4)
|
|
134 | 134 |
#define Z2_TRANSFORM(s) \ |
135 |
((4000 + (s)->y - ((s)->pressure << 10)) << 4) |
|
135 |
((4000 + ((s)->y >> 7) - ((s)->pressure << 10)) << 4) |
|
136 |
|
|
136 | 137 |
#define BAT1_VAL 0x8660 |
137 | 138 |
#define BAT2_VAL 0x0000 |
138 | 139 |
#define AUX1_VAL 0x35c0 |
... | ... | |
367 | 368 |
|
368 | 369 |
case 0x05: /* BAT1 */ |
369 | 370 |
s->dav &= 0xffbf; |
370 |
return TSC_CUT_RESOLUTION(BAT1_VAL, s->precision); |
|
371 |
return TSC_CUT_RESOLUTION(BAT1_VAL, s->precision) + |
|
372 |
(s->noise & 6); |
|
371 | 373 |
|
372 | 374 |
case 0x06: /* BAT2 */ |
373 | 375 |
s->dav &= 0xffdf; |
... | ... | |
383 | 385 |
|
384 | 386 |
case 0x09: /* TEMP1 */ |
385 | 387 |
s->dav &= 0xfffb; |
386 |
return TSC_CUT_RESOLUTION(TEMP1_VAL, s->precision); |
|
388 |
return TSC_CUT_RESOLUTION(TEMP1_VAL, s->precision) - |
|
389 |
(s->noise & 5); |
|
387 | 390 |
|
388 | 391 |
case 0x0a: /* TEMP2 */ |
389 | 392 |
s->dav &= 0xfffd; |
390 |
return TSC_CUT_RESOLUTION(TEMP2_VAL, s->precision); |
|
393 |
return TSC_CUT_RESOLUTION(TEMP2_VAL, s->precision) ^ |
|
394 |
(s->noise & 3); |
|
391 | 395 |
|
392 | 396 |
case 0x0b: /* DAC */ |
393 | 397 |
s->dav &= 0xfffe; |
Also available in: Unified diff