aboutsummaryrefslogtreecommitdiffstats
path: root/halext
diff options
context:
space:
mode:
authorTectu <joel@unormal.org>2012-08-09 03:01:21 +0200
committerTectu <joel@unormal.org>2012-08-09 03:01:21 +0200
commit18581a40deb63aba81b9f1f6ccd7e6d9163034fd (patch)
treefab926e56a114b9f6b6c7cf9944d7f5f7cd9946a /halext
parent55c8323950397d7bb6829f9fbd1a50a61d4913ce (diff)
downloaduGFX-18581a40deb63aba81b9f1f6ccd7e6d9163034fd.tar.gz
uGFX-18581a40deb63aba81b9f1f6ccd7e6d9163034fd.tar.bz2
uGFX-18581a40deb63aba81b9f1f6ccd7e6d9163034fd.zip
touchpad fix
Diffstat (limited to 'halext')
-rw-r--r--halext/drivers/touchpad/touchpadXPT2046/touchpad_lld.c37
-rw-r--r--halext/drivers/touchpad/touchpadXPT2046/xpt2046_lld.c.h72
2 files changed, 31 insertions, 78 deletions
diff --git a/halext/drivers/touchpad/touchpadXPT2046/touchpad_lld.c b/halext/drivers/touchpad/touchpadXPT2046/touchpad_lld.c
index 4dc29dbe..a42f1bf8 100644
--- a/halext/drivers/touchpad/touchpadXPT2046/touchpad_lld.c
+++ b/halext/drivers/touchpad/touchpadXPT2046/touchpad_lld.c
@@ -36,6 +36,9 @@
/* Driver local definitions. */
/*===========================================================================*/
+#define TP_CS_HIGH palSetPad(TP_CS_PORT, TP_CS)
+#define TP_CS_LOW palClearPad(TP_CS_PORT, TP_CS)
+
#ifdef UNUSED
#elif defined(__GNUC__)
# define UNUSED(x) UNUSED_ ## x __attribute__((unused))
@@ -67,8 +70,6 @@ static const SPIConfig spicfg = {
/* Driver local functions. */
/*===========================================================================*/
-#include "xpt2046_lld.c.h"
-
/*===========================================================================*/
/* Driver interrupt handlers. */
/*===========================================================================*/
@@ -94,8 +95,20 @@ void tp_lld_init(TOUCHPADDriver *tp) {
* @notapi
*/
uint16_t tp_lld_read_x(void) {
- /* ToDo */
- return 42;
+ uint8_t txbuf[1];
+ uint8_t rxbuf[2];
+ uint16_t y;
+
+ txbuf[0] = 0x90;
+ TP_CS_LOW;
+ spiSend(&SPID1, 1, txbuf);
+ spiReceive(&SPID1, 2, rxbuf);
+ TP_CS_HIGH;
+
+ y = rxbuf[0] << 4;
+ y |= rxbuf[1] >> 4;
+
+ return y;
}
/*
@@ -104,8 +117,20 @@ uint16_t tp_lld_read_x(void) {
* @notapi
*/
uint16_t tp_lld_read_y(void) {
- /* ToDo */
- return 42;
+ uint8_t txbuf[1];
+ uint8_t rxbuf[2];
+ uint16_t y;
+
+ txbuf[0] = 0x90;
+ TP_CS_LOW;
+ spiSend(&SPID1, 1, txbuf);
+ spiReceive(&SPID1, 2, rxbuf);
+ TP_CS_HIGH;
+
+ y = rxbuf[0] << 4;
+ y |= rxbuf[1] >> 4;
+
+ return y;
}
/* ---- Optional Routines ---- */
diff --git a/halext/drivers/touchpad/touchpadXPT2046/xpt2046_lld.c.h b/halext/drivers/touchpad/touchpadXPT2046/xpt2046_lld.c.h
deleted file mode 100644
index 2b33034a..00000000
--- a/halext/drivers/touchpad/touchpadXPT2046/xpt2046_lld.c.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- ChibiOS-LCD-Driver - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS-LCD-Driver.
-
- ChibiOS-LCD-Driver is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- ChibiOS-LCD-Driver is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _XPT2046_H
-#define _XPT2046_H
-
-#include "ch.h"
-#include "hal.h"
-
-#define TP_CS_HIGH palSetPad(TP_CS_PORT, TP_CS)
-#define TP_CS_LOW palClearPad(TP_CS_PORT, TP_CS)
-
-__inline uint16_t lld_tpReadX(void) {
- uint8_t txbuf[1];
- uint8_t rxbuf[2];
- uint16_t x;
-
- txbuf[0] = 0xd0;
- TP_CS_LOW;
- spiSend(&SPID1, 1, txbuf);
- spiReceive(&SPID1, 2, rxbuf);
- TP_CS_HIGH;
-
- x = rxbuf[0] << 4;
- x |= rxbuf[1] >> 4;
-
- return x;
-}
-
-__inline uint16_t lld_tpReadY(void) {
- uint8_t txbuf[1];
- uint8_t rxbuf[2];
- uint16_t y;
-
- txbuf[0] = 0x90;
- TP_CS_LOW;
- spiSend(&SPID1, 1, txbuf);
- spiReceive(&SPID1, 2, rxbuf);
- TP_CS_HIGH;
-
- y = rxbuf[0] << 4;
- y |= rxbuf[1] >> 4;
-
- return y;
-}
-
-__inline uint16_t lld_tpReadZ(void) {
- /* ToDo */
-
- return 0;
-}
-
-
-#endif /* _XPT2046_H */
-