From 07f34835358ef65de310934ae726b66c7ca46f68 Mon Sep 17 00:00:00 2001 From: Andrew Hannam Date: Thu, 6 Dec 2012 18:45:54 +1000 Subject: Restructure Create global include file called gfx.h which knows about sub-system dependancies. Deprecate Touchscreen (GINPUT touch is now working properly) Merge Graph into GWIN Change directory structure to reflect sub-system structure Many small bugs fixed Split Nokia6610 gdisp driver into GE8 and GE12 controller versions Fixed broken demos. GFX sub-systems are now clearly defined and new ones should be much easier to add. --- drivers/ginput/toggle/Pal/ginput_lld_toggle.c | 6 +-- .../toggle/Pal/ginput_lld_toggle_board_example.h | 57 ++++++++++------------ .../Pal/ginput_lld_toggle_board_olimexsam7ex256.h | 26 +++++----- .../ginput/toggle/Pal/ginput_lld_toggle_config.h | 5 +- .../MCU/ginput_lld_mouse_board_olimex_stm32_lcd.h | 10 ++-- 5 files changed, 49 insertions(+), 55 deletions(-) (limited to 'drivers/ginput') diff --git a/drivers/ginput/toggle/Pal/ginput_lld_toggle.c b/drivers/ginput/toggle/Pal/ginput_lld_toggle.c index 560d11b9..a3a360d8 100644 --- a/drivers/ginput/toggle/Pal/ginput_lld_toggle.c +++ b/drivers/ginput/toggle/Pal/ginput_lld_toggle.c @@ -28,13 +28,13 @@ #include "ch.h" #include "hal.h" +#include "gfx.h" #if (GFX_USE_GINPUT && GINPUT_NEED_TOGGLE) /*|| defined(__DOXYGEN__)*/ -// Declare the static members in the following include file -#define GINPUT_TOGGLE_DECLARE_CONFIG +#include "ginput/lld/toggle.h" -#include "lld/ginput/toggle.h" +GINPUT_TOGGLE_DECLARE_STRUCTURE(); /** * @brief Initialise the port. diff --git a/drivers/ginput/toggle/Pal/ginput_lld_toggle_board_example.h b/drivers/ginput/toggle/Pal/ginput_lld_toggle_board_example.h index 46d32b47..a96178b0 100644 --- a/drivers/ginput/toggle/Pal/ginput_lld_toggle_board_example.h +++ b/drivers/ginput/toggle/Pal/ginput_lld_toggle_board_example.h @@ -29,37 +29,32 @@ #ifndef _GDISP_LLD_TOGGLE_BOARD_H #define _GDISP_LLD_TOGGLE_BOARD_H -#ifndef _GINPUT_LLD_TOGGLE_CONFIG_H - // Visible in ginput.h - - #define GINPUT_TOGGLE_SW1 0 // Switch 1 - #define GINPUT_TOGGLE_SW2 1 // Switch 2 - #define GINPUT_TOGGLE_UP 2 // Joystick Up - #define GINPUT_TOGGLE_DOWN 3 // Joystick Down - #define GINPUT_TOGGLE_LEFT 4 // Joystick Left - #define GINPUT_TOGGLE_RIGHT 5 // Joystick Right - #define GINPUT_TOGGLE_CENTER 6 // Joystick Center - -#elif !defined(GINPUT_TOGGLE_DECLARE_CONFIG) - // Visible in ginput_lld.h - - #define GINPUT_TOGGLE_NUM_PORTS 7 // The total number of toggle inputs - -#else - // Visible in ginput_lld_toggle.c - - GToggleConfig GInputToggleConfigTable[] = { - {AT91C_BASE_PIOB, // Switch 1 and Switch 2 - PIOB_SW1_MASK|PIOB_SW2_MASK, - PIOB_SW1_MASK|PIOB_SW2_MASK, - PAL_MODE_INPUT}, - {AT91C_BASE_PIOA, // B1..4 Joystick - PIOA_B1_MASK|PIOA_B2_MASK|PIOA_B3_MASK|PIOA_B4_MASK|PIOA_B5_MASK, - PIOA_B1_MASK|PIOA_B2_MASK|PIOA_B3_MASK|PIOA_B4_MASK|PIOA_B5_MASK, - PAL_MODE_INPUT}, - }; - -#endif +#error "GINPUT Toggle Pal Driver: You need to define your board definitions" + +// The below are example values + +#define GINPUT_TOGGLE_NUM_PORTS 7 // The total number of toggle inputs +#define GINPUT_TOGGLE_CONFIG_ENTRIES 2 // The total number of GToggleConfig entries + +#define GINPUT_TOGGLE_SW1 0 // Switch 1 +#define GINPUT_TOGGLE_SW2 1 // Switch 2 +#define GINPUT_TOGGLE_UP 2 // Joystick Up +#define GINPUT_TOGGLE_DOWN 3 // Joystick Down +#define GINPUT_TOGGLE_LEFT 4 // Joystick Left +#define GINPUT_TOGGLE_RIGHT 5 // Joystick Right +#define GINPUT_TOGGLE_CENTER 6 // Joystick Center + +#define GINPUT_TOGGLE_DECLARE_STRUCTURE() \ + const GToggleConfig GInputToggleConfigTable[GINPUT_TOGGLE_CONFIG_ENTRIES] = { \ + {AT91C_BASE_PIOB, /* Switch 1 and Switch 2 */ \ + PIOB_SW1_MASK|PIOB_SW2_MASK, \ + PIOB_SW1_MASK|PIOB_SW2_MASK, \ + PAL_MODE_INPUT}, \ + {AT91C_BASE_PIOA, /* B1..4 Joystick */ \ + PIOA_B1_MASK|PIOA_B2_MASK|PIOA_B3_MASK|PIOA_B4_MASK|PIOA_B5_MASK, \ + PIOA_B1_MASK|PIOA_B2_MASK|PIOA_B3_MASK|PIOA_B4_MASK|PIOA_B5_MASK, \ + PAL_MODE_INPUT}, \ + } #endif /* _GDISP_LLD_TOGGLE_BOARD_H */ /** @} */ diff --git a/drivers/ginput/toggle/Pal/ginput_lld_toggle_board_olimexsam7ex256.h b/drivers/ginput/toggle/Pal/ginput_lld_toggle_board_olimexsam7ex256.h index b767f32c..3ba5858d 100644 --- a/drivers/ginput/toggle/Pal/ginput_lld_toggle_board_olimexsam7ex256.h +++ b/drivers/ginput/toggle/Pal/ginput_lld_toggle_board_olimexsam7ex256.h @@ -40,21 +40,17 @@ #define GINPUT_TOGGLE_RIGHT 5 // Joystick Right #define GINPUT_TOGGLE_CENTER 6 // Joystick Center -#ifdef GINPUT_TOGGLE_DECLARE_CONFIG - // Visible in ginput_lld_toggle.c - - const GToggleConfig GInputToggleConfigTable[GINPUT_TOGGLE_CONFIG_ENTRIES] = { - {AT91C_BASE_PIOB, // Switch 1 and Switch 2 - PIOB_SW1_MASK|PIOB_SW2_MASK, - PIOB_SW1_MASK|PIOB_SW2_MASK, - PAL_MODE_INPUT}, - {AT91C_BASE_PIOA, // B1..4 Joystick - PIOA_B1_MASK|PIOA_B2_MASK|PIOA_B3_MASK|PIOA_B4_MASK|PIOA_B5_MASK, - PIOA_B1_MASK|PIOA_B2_MASK|PIOA_B3_MASK|PIOA_B4_MASK|PIOA_B5_MASK, - PAL_MODE_INPUT}, - }; - -#endif +#define GINPUT_TOGGLE_DECLARE_STRUCTURE() \ + const GToggleConfig GInputToggleConfigTable[GINPUT_TOGGLE_CONFIG_ENTRIES] = { \ + {AT91C_BASE_PIOB, /* Switch 1 and Switch 2 */ \ + PIOB_SW1_MASK|PIOB_SW2_MASK, \ + PIOB_SW1_MASK|PIOB_SW2_MASK, \ + PAL_MODE_INPUT}, \ + {AT91C_BASE_PIOA, /* B1..4 Joystick */ \ + PIOA_B1_MASK|PIOA_B2_MASK|PIOA_B3_MASK|PIOA_B4_MASK|PIOA_B5_MASK, \ + PIOA_B1_MASK|PIOA_B2_MASK|PIOA_B3_MASK|PIOA_B4_MASK|PIOA_B5_MASK, \ + PAL_MODE_INPUT}, \ + } #endif /* _GDISP_LLD_TOGGLE_BOARD_H */ /** @} */ diff --git a/drivers/ginput/toggle/Pal/ginput_lld_toggle_config.h b/drivers/ginput/toggle/Pal/ginput_lld_toggle_config.h index a3fcf22e..774be200 100644 --- a/drivers/ginput/toggle/Pal/ginput_lld_toggle_config.h +++ b/drivers/ginput/toggle/Pal/ginput_lld_toggle_config.h @@ -31,7 +31,10 @@ #if GFX_USE_GINPUT && GINPUT_NEED_TOGGLE -#if defined(BOARD_OLIMEX_SAM7_EX256) +#if GINPUT_TOGGLE_USE_CUSTOM_BOARD + /* Include the user supplied board definitions */ + #include "ginput_lld_toggle_board.h" +#elif defined(BOARD_OLIMEX_SAM7_EX256) #include "ginput_lld_toggle_board_olimexsam7ex256.h" #else /* Include the user supplied board definitions */ diff --git a/drivers/ginput/touch/MCU/ginput_lld_mouse_board_olimex_stm32_lcd.h b/drivers/ginput/touch/MCU/ginput_lld_mouse_board_olimex_stm32_lcd.h index fa3dca7e..2fa6fe44 100644 --- a/drivers/ginput/touch/MCU/ginput_lld_mouse_board_olimex_stm32_lcd.h +++ b/drivers/ginput/touch/MCU/ginput_lld_mouse_board_olimex_stm32_lcd.h @@ -105,7 +105,7 @@ static __inline void release_bus(void) { * * @notapi */ -static uint16_t read_x_value(void) { +static __inline uint16_t read_x_value(void) { uint16_t val1, val2; adcsample_t samples[ADC_NUM_CHANNELS * ADC_BUF_DEPTH]; @@ -113,7 +113,7 @@ static uint16_t read_x_value(void) { palSetPadMode(GPIOC, 1, PAL_MODE_INPUT_ANALOG); palSetPadMode(GPIOC, 2, PAL_MODE_OUTPUT_PUSHPULL); palSetPadMode(GPIOC, 3, PAL_MODE_OUTPUT_PUSHPULL); - + palSetPad(GPIOC, 2); palClearPad(GPIOC, 3); chThdSleepMilliseconds(1); @@ -135,7 +135,7 @@ static uint16_t read_x_value(void) { * * @notapi */ -static uint16_t read_y_value(void) { +static __inline uint16_t read_y_value(void) { uint16_t val1, val2; adcsample_t samples[ADC_NUM_CHANNELS * ADC_BUF_DEPTH]; @@ -143,8 +143,8 @@ static uint16_t read_y_value(void) { palSetPadMode(GPIOC, 3, PAL_MODE_INPUT_ANALOG); palSetPadMode(GPIOC, 0, PAL_MODE_OUTPUT_PUSHPULL); palSetPadMode(GPIOC, 1, PAL_MODE_OUTPUT_PUSHPULL); - - palSetPad(GPIOC, 1); + + palSetPad(GPIOC, 1); palClearPad(GPIOC, 0); chThdSleepMilliseconds(1); adcConvert(&ADCD1, &adc_y_config, samples, ADC_BUF_DEPTH); -- cgit v1.2.3