From cf3b8e4ed25d74d03cc6e246fe0f4ee129b17bc1 Mon Sep 17 00:00:00 2001 From: inmarket Date: Mon, 13 Oct 2014 16:37:04 +1000 Subject: Add GMouse parameter to ADS7843 mouse driver to enable multiple drivers. Tidy up naming. --- drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843.c | 29 ++++++++-------------- .../ADS7843/gmouse_lld_ADS7843_board_template.h | 12 ++++++--- 2 files changed, 19 insertions(+), 22 deletions(-) (limited to 'drivers/ginput/touch') diff --git a/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843.c b/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843.c index 72cd6f67..ac315262 100644 --- a/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843.c +++ b/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843.c @@ -15,39 +15,32 @@ // Get the hardware interface #include "gmouse_lld_ADS7843_board.h" -// If the board file doesn't specify how many extra bytes it wants - assume 0 -#ifndef BOARD_DATA_SIZE - #define BOARD_DATA_SIZE 0 -#endif - #define CMD_X 0xD1 #define CMD_Y 0x91 #define CMD_ENABLE_IRQ 0x80 -void read_xyz(GMouse* m, GMouseReading* pdr) +static void MouseXYZ(GMouse* m, GMouseReading* pdr) { (void)m; // No buttons pdr->buttons = 0; + pdr->z = 0; - if (getpin_pressed()) { + if (getpin_pressed(m)) { pdr->z = 1; // Set to Z_MAX as we are pressed - aquire_bus(); + aquire_bus(m); - read_value(CMD_X); // Dummy read - disable PenIRQ - pdr->x = read_value(CMD_X); // Read X-Value + read_value(m, CMD_X); // Dummy read - disable PenIRQ + pdr->x = read_value(m, CMD_X); // Read X-Value - read_value(CMD_Y); // Dummy read - disable PenIRQ - pdr->y = read_value(CMD_Y); // Read Y-Value + read_value(m, CMD_Y); // Dummy read - disable PenIRQ + pdr->y = read_value(m, CMD_Y); // Read Y-Value - read_value(CMD_ENABLE_IRQ); // Enable IRQ + read_value(m, CMD_ENABLE_IRQ); // Enable IRQ - release_bus(); - } else { - // Don't touch x and y values here - pdr->z = 0; + release_bus(m); } } @@ -77,7 +70,7 @@ const GMouseVMT const GMOUSE_DRIVER_VMT[1] = {{ }, init_board, // init 0, // deinit - read_xyz, // get + MouseXYZ, // get 0, // calsave 0 // calload }}; diff --git a/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843_board_template.h b/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843_board_template.h index 7b762310..5a09b5bd 100644 --- a/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843_board_template.h +++ b/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843_board_template.h @@ -8,6 +8,7 @@ #ifndef _GINPUT_LLD_MOUSE_BOARD_H #define _GINPUT_LLD_MOUSE_BOARD_H +// Resolution and Accuracy Settings #define GMOUSE_ADS7843_PEN_CALIBRATE_ERROR 2 #define GMOUSE_ADS7843_PEN_CLICK_ERROR 2 #define GMOUSE_ADS7843_PEN_MOVE_ERROR 2 @@ -15,23 +16,26 @@ #define GMOUSE_ADS7843_FINGER_CLICK_ERROR 4 #define GMOUSE_ADS7843_FINGER_MOVE_ERROR 4 +// How much extra data to allocate at the end of the GMouse structure for the board's use +#define GMOUSE_ADS7843_BOARD_DATA_SIZE 0 + static bool_t init_board(GMouse* m, unsigned driverinstance) { } -static inline bool_t getpin_pressed(void) { +static inline bool_t getpin_pressed(GMouse* m) { } -static inline void aquire_bus(void) { +static inline void aquire_bus(GMouse* m) { } -static inline void release_bus(void) { +static inline void release_bus(GMouse* m) { } -static inline uint16_t read_value(uint16_t port) { +static inline uint16_t read_value(GMouse* m, uint16_t port) { } -- cgit v1.2.3