aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/touchpad/ads7843_lld.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/touchpad/ads7843_lld.c')
-rw-r--r--drivers/touchpad/ads7843_lld.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/drivers/touchpad/ads7843_lld.c b/drivers/touchpad/ads7843_lld.c
new file mode 100644
index 00000000..76e11123
--- /dev/null
+++ b/drivers/touchpad/ads7843_lld.c
@@ -0,0 +1,43 @@
+#include "ads7843_lld.h"
+
+#ifdef TOUCHPAD_USE_ADS7843
+
+__inline uint16_t lld_readX(void) {
+ uint8_t txbuf[1];
+ uint8_t rxbuf[2];
+ uint16_t x;
+
+ txbuf[0] = 0xd0;
+ SET_CS(0);
+ spiSend(&SPID1, 1, txbuf);
+ spiReceive(&SPID1, 2, rxbuf);
+ SET_CS(1);
+
+ x = rxbuf[0] << 4;
+ x |= rxbuf[1] >> 4;
+
+ return x;
+}
+
+__inline uint16_t lld_readY(void) {
+ uint8_t txbuf[1];
+ uint8_t rxbuf[2];
+ uint16_t y;
+
+ txbuf[0] = 0x90;
+ SET_CS(0);
+ spiSend(&SPID1, 1, txbuf);
+ spiReceive(&SPID1, 2, rxbuf);
+ SET_CS(1);
+
+ y = rxbuf[0] << 4;
+ y |= rxbuf[1] >> 4;
+
+ return y;
+}
+
+__inline uint16_t lld_readZ(void) {
+ return 0;
+}
+
+#endif