From 737ac5be9743e37b80133706faf02e959e803459 Mon Sep 17 00:00:00 2001 From: inmarket Date: Mon, 28 Oct 2013 19:06:16 +1000 Subject: Create uGFX board directories which include example Makefiles. Currently only done for the Olimex-SAM7EX256 board. --- .../gadc/AT91SAM7/gadc_lld_board_olimexsam7ex256.h | 33 ---- drivers/gadc/AT91SAM7/gadc_lld_board_template.h | 37 ++++ drivers/gadc/AT91SAM7/gadc_lld_config.h | 12 +- .../gaudin/gadc/gaudin_lld_board_olimexsam7ex256.h | 47 ----- drivers/gaudin/gadc/gaudin_lld_board_template.h | 50 ++++++ drivers/gaudin/gadc/gaudin_lld_config.h | 11 +- .../board_Nokia6610GE12_olimexsam7ex256.h | 186 -------------------- .../board_Nokia6610GE8_olimexsam7ex256.h | 195 --------------------- .../GADC/ginput_lld_dial_board_olimexsam7ex256.h | 35 ---- .../dial/GADC/ginput_lld_dial_board_template.h | 36 ++++ drivers/ginput/dial/GADC/ginput_lld_dial_config.h | 11 +- .../toggle/Pal/ginput_lld_toggle_board_example.h | 48 ----- .../Pal/ginput_lld_toggle_board_olimexsam7ex256.h | 44 ----- .../toggle/Pal/ginput_lld_toggle_board_template.h | 48 +++++ .../ginput/toggle/Pal/ginput_lld_toggle_config.h | 11 +- 15 files changed, 179 insertions(+), 625 deletions(-) delete mode 100644 drivers/gadc/AT91SAM7/gadc_lld_board_olimexsam7ex256.h create mode 100644 drivers/gadc/AT91SAM7/gadc_lld_board_template.h delete mode 100644 drivers/gaudin/gadc/gaudin_lld_board_olimexsam7ex256.h create mode 100644 drivers/gaudin/gadc/gaudin_lld_board_template.h delete mode 100644 drivers/gdisp/Nokia6610GE12/board_Nokia6610GE12_olimexsam7ex256.h delete mode 100644 drivers/gdisp/Nokia6610GE8/board_Nokia6610GE8_olimexsam7ex256.h delete mode 100644 drivers/ginput/dial/GADC/ginput_lld_dial_board_olimexsam7ex256.h create mode 100644 drivers/ginput/dial/GADC/ginput_lld_dial_board_template.h delete mode 100644 drivers/ginput/toggle/Pal/ginput_lld_toggle_board_example.h delete mode 100644 drivers/ginput/toggle/Pal/ginput_lld_toggle_board_olimexsam7ex256.h create mode 100644 drivers/ginput/toggle/Pal/ginput_lld_toggle_board_template.h (limited to 'drivers') diff --git a/drivers/gadc/AT91SAM7/gadc_lld_board_olimexsam7ex256.h b/drivers/gadc/AT91SAM7/gadc_lld_board_olimexsam7ex256.h deleted file mode 100644 index 8f047015..00000000 --- a/drivers/gadc/AT91SAM7/gadc_lld_board_olimexsam7ex256.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -/** - * @file drivers/gadc/AT91SAM7/gadc_lld_board_olimexsam7ex256.h - * @brief GADC Driver config file. - * - * @addtogroup GADC - * @{ - */ - -#ifndef _GADC_LLD_BOARD_OLIMEXSAM7EX256_H -#define _GADC_LLD_BOARD_OLIMEXSAM7EX256_H - -#if GFX_USE_GADC - -/*===========================================================================*/ -/* Analogue devices on this board */ -/*===========================================================================*/ - -#define GADC_PHYSDEV_MICROPHONE 0x00000080 -#define GADC_PHYSDEV_DIAL 0x00000040 -#define GADC_PHYSDEV_TEMPERATURE 0x00000020 - -#endif /* GFX_USE_GADC */ - -#endif /* _GADC_LLD_BOARD_OLIMEXSAM7EX256_H */ -/** @} */ - diff --git a/drivers/gadc/AT91SAM7/gadc_lld_board_template.h b/drivers/gadc/AT91SAM7/gadc_lld_board_template.h new file mode 100644 index 00000000..045c0ed7 --- /dev/null +++ b/drivers/gadc/AT91SAM7/gadc_lld_board_template.h @@ -0,0 +1,37 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +/** + * @file drivers/gadc/AT91SAM7/gadc_lld_board_template.h + * @brief GADC Driver config file. + * + * @addtogroup GADC + * @{ + */ + +#ifndef _GADC_LLD_BOARD_H +#define _GADC_LLD_BOARD_H + +#if GFX_USE_GADC + +/*===========================================================================*/ +/* Analogue devices on this board */ +/*===========================================================================*/ + +/** + * @brief The physical devices that are accessible via GADC and their physical device numbers. + * @note The numbers below are examples for this template file + */ +#define GADC_PHYSDEV_MICROPHONE 0x00000080 +#define GADC_PHYSDEV_DIAL 0x00000040 +#define GADC_PHYSDEV_TEMPERATURE 0x00000020 + +#endif /* GFX_USE_GADC */ + +#endif /* _GADC_LLD_BOARD_H */ +/** @} */ + diff --git a/drivers/gadc/AT91SAM7/gadc_lld_config.h b/drivers/gadc/AT91SAM7/gadc_lld_config.h index 8c6e1cc0..ba6cbda2 100644 --- a/drivers/gadc/AT91SAM7/gadc_lld_config.h +++ b/drivers/gadc/AT91SAM7/gadc_lld_config.h @@ -52,16 +52,8 @@ */ #define GADC_SAMPLE_FORMAT ARRAY_DATA_10BITUNSIGNED -/* Pull in board specific defines */ -#if defined(GADC_USE_CUSTOM_BOARD) && GADC_USE_CUSTOM_BOARD - /* Include the user supplied board definitions */ - #include "gadc_lld_board.h" -#elif defined(BOARD_OLIMEX_SAM7_EX256) - #include "gadc_lld_board_olimexsam7ex256.h" -#else - /* Include the user supplied board definitions */ - #include "gadc_lld_board.h" -#endif +/* Include the user supplied board definitions */ +#include "gadc_lld_board.h" #endif /* GFX_USE_GADC */ diff --git a/drivers/gaudin/gadc/gaudin_lld_board_olimexsam7ex256.h b/drivers/gaudin/gadc/gaudin_lld_board_olimexsam7ex256.h deleted file mode 100644 index a98f392c..00000000 --- a/drivers/gaudin/gadc/gaudin_lld_board_olimexsam7ex256.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -/** - * @file drivers/gaudin/gadc/gaudin_lld_board_olimexsam7ex256.h - * @brief GAUDIN Driver board config file for the Olimex SAM7EX256 board - * - * @addtogroup GAUDIN - * @{ - */ - -#ifndef _GAUDIN_LLD_BOARD_OLIMEXSAM7EX256_H -#define _GAUDIN_LLD_BOARD_OLIMEXSAM7EX256_H - -/*===========================================================================*/ -/* Audio inputs on this board */ -/*===========================================================================*/ - -/** - * @brief The number of audio channels supported by this driver - */ -#define GAUDIN_NUM_CHANNELS 1 - -/** - * @brief The list of audio channels and their uses - * @{ - */ -#define GAUDIN_MICROPHONE 0 -/** @} */ - -/** - * @brief The following defines are for the low level driver use only - * @{ - */ -#ifdef GAUDIN_LLD_IMPLEMENTATION - static uint32_t gaudin_lld_physdevs[GAUDIN_NUM_CHANNELS] = { - GADC_PHYSDEV_MICROPHONE, - }; -#endif -/** @} */ - -#endif /* _GAUDIN_LLD_BOARD_OLIMEXSAM7EX256_H */ -/** @} */ diff --git a/drivers/gaudin/gadc/gaudin_lld_board_template.h b/drivers/gaudin/gadc/gaudin_lld_board_template.h new file mode 100644 index 00000000..89cc0c12 --- /dev/null +++ b/drivers/gaudin/gadc/gaudin_lld_board_template.h @@ -0,0 +1,50 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +/** + * @file drivers/gaudin/gadc/gaudin_lld_board_template.h + * @brief GAUDIN Driver board config board file + * + * @addtogroup GAUDIN + * @{ + */ + +#ifndef _GAUDIN_LLD_BOARD_H +#define _GAUDIN_LLD_BOARD_H + +/*===========================================================================*/ +/* Audio inputs on this board */ +/*===========================================================================*/ + +/** + * @brief The number of audio channels supported by this driver + * @note This is an example + */ +#define GAUDIN_NUM_CHANNELS 1 + +/** + * @brief The list of audio channels and their uses + * @note This is an example + * @{ + */ +#define GAUDIN_MICROPHONE 0 +/** @} */ + +/** + * @brief The audio channel to GADC physical device assignment + * @note This is an example + * @{ + */ +#ifdef GAUDIN_LLD_IMPLEMENTATION + static uint32_t gaudin_lld_physdevs[GAUDIN_NUM_CHANNELS] = { + GADC_PHYSDEV_MICROPHONE, + }; +#endif +/** @} */ + +#endif /* _GAUDIN_LLD_BOARD_H */ +/** @} */ diff --git a/drivers/gaudin/gadc/gaudin_lld_config.h b/drivers/gaudin/gadc/gaudin_lld_config.h index f10e0575..a9fd02ae 100644 --- a/drivers/gaudin/gadc/gaudin_lld_config.h +++ b/drivers/gaudin/gadc/gaudin_lld_config.h @@ -50,15 +50,8 @@ typedef adcsample_t audin_sample_t; * For the GAUDIN driver that uses GADC - all the remaining config definitions are specific * to the board. */ -#if defined(GADC_USE_CUSTOM_BOARD) && GADC_USE_CUSTOM_BOARD - /* Include the user supplied board definitions */ - #include "gaudin_lld_board.h" -#elif defined(BOARD_OLIMEX_SAM7_EX256) - #include "gaudin_lld_board_olimexsam7ex256.h" -#else - /* Include the user supplied board definitions */ - #include "gaudin_lld_board.h" -#endif +/* Include the user supplied board definitions */ +#include "gaudin_lld_board.h" #endif /* GFX_USE_GAUDIN */ diff --git a/drivers/gdisp/Nokia6610GE12/board_Nokia6610GE12_olimexsam7ex256.h b/drivers/gdisp/Nokia6610GE12/board_Nokia6610GE12_olimexsam7ex256.h deleted file mode 100644 index 5b9ff6f6..00000000 --- a/drivers/gdisp/Nokia6610GE12/board_Nokia6610GE12_olimexsam7ex256.h +++ /dev/null @@ -1,186 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -/** - * @file drivers/gdisp/Nokia6610GE8/board_Nokia6610GE12_olimexsam7ex256.h - * @brief GDISP Graphic Driver subsystem board interface for the Olimex SAM7-EX256 board. - */ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -/* - * Set various display properties. These properties mostly depend on the exact controller chip you get. - * The defaults should work for most controllers. - */ -//#define GDISP_SCREEN_HEIGHT 130 // The visible display height -//#define GDISP_SCREEN_WIDTH 130 // The visible display width -//#define GDISP_RAM_X_OFFSET 0 // The x offset of the visible area -//#define GDISP_RAM_Y_OFFSET 2 // The y offset of the visible area -//#define GDISP_SLEEP_POS 50 // The position of the sleep mode partial display -//#define GDISP_INITIAL_CONTRAST 50 // The initial contrast percentage -//#define GDISP_INITIAL_BACKLIGHT 100 // The initial backlight percentage - -// For a multiple display configuration we would put all this in a structure and then -// set g->board to that structure. - -// ****************************************************** -// Pointers to AT91SAM7X256 peripheral data structures -// ****************************************************** -static volatile AT91PS_PIO pPIOA = AT91C_BASE_PIOA; -static volatile AT91PS_PIO pPIOB = AT91C_BASE_PIOB; -static volatile AT91PS_SPI pSPI = AT91C_BASE_SPI0; -static volatile AT91PS_PMC pPMC = AT91C_BASE_PMC; -static volatile AT91PS_PDC pPDC = AT91C_BASE_PDC_SPI0; - -/* The PWM backlight control is non-linear on this board. - * We pick values here that make it look a bit more linear. - */ -#define PWM_TOP_VALUE 500 -#define PWM_BOTTOM_VALUE 200 - -#define PWM_VALUE(x) (PWM_BOTTOM_VALUE+(PWM_TOP_VALUE-PWM_BOTTOM_VALUE)*(x)/100) - -/* PWM configuration structure. The LCD Backlight is on PWM1/PB20 ie PWM2/PIN1 in ChibiOS speak */ -static const PWMConfig pwmcfg = { - 1000000, /* 1 MHz PWM clock frequency. Ignored as we are using PWM_MCK_DIV_n */ - 1000, /* PWM period is 1000 cycles. */ - NULL, - { - {PWM_MCK_DIV_1 | PWM_OUTPUT_ACTIVE_HIGH | PWM_OUTPUT_PIN1 | PWM_DISABLEPULLUP_PIN1, NULL}, - }, -}; - -static bool_t pwmRunning = FALSE; - -static inline void init_board(GDisplay *g) { - - // As we are not using multiple displays we set g->board to NULL as we don't use it. - g->board = 0; - - switch(g->controllerdisplay) { - case 0: // Set up for Display 0 - // ********************************************************************************************* - // InitSpi( ) - // - // Sets up SPI channel 0 for communications to Nokia 6610 LCD Display - // - // I/O ports used: PA2 = LCD Reset (set to low to reset) - // PA12 = LCD chip select (set to low to select the LCD chip) - // PA16 = SPI0_MISO Master In - Slave Out (not used in LCD interface) - // PA17 = SPI0_MOSI Master Out - Slave In pin (Serial Data to LCD slave) - // PA18 = SPI0_SPCK Serial Clock (to LCD slave) - // PB20 = backlight control (normally PWM control, 1 = full on) - // - // *********************************************************************************************} - - /* This code should really use the ChibiOS driver for these functions */ - - // Pin for backlight - pPIOB->PIO_CODR = PIOB_LCD_BL_MASK; // Set PB20 to LOW - pPIOB->PIO_OER = PIOB_LCD_BL_MASK; // Configure PB20 as output - - // Reset pin - pPIOA->PIO_SODR = PIOA_LCD_RESET_MASK; // Set PA2 to HIGH - pPIOA->PIO_OER = PIOA_LCD_RESET_MASK; // Configure PA2 as output - - // CS pin - this seems to be ignored - // pPIOA->PIO_SODR = 1<<12; // Set PA2 to HIGH - // pPIOA->PIO_OER = 1<<12; // Configure PA2 as output - - // Init SPI0 - // Disable the following pins from PIO control (will be used instead by the SPI0 peripheral) - // BIT12 = PA12 -> SPI0_NPCS0 chip select - // BIT16 = PA16 -> SPI0_MISO Master In - Slave Out (not used in LCD interface) - // BIT17 = PA17 -> SPI0_MOSI Master Out - Slave In pin (Serial Data to LCD slave) - // BIT18 = PA18 -> SPI0_SPCK Serial Clock (to LCD slave) - pPIOA->PIO_PDR = (1<<12) | (1<<16) | (1<<17) | (1<<18); - pPIOA->PIO_ASR = (1<<12) | (1<<16) | (1<<17) | (1<<18); - pPIOA->PIO_BSR = 0; - - //enable the clock of SPI - pPMC->PMC_PCER = 1 << AT91C_ID_SPI0; - - // Fixed mode - pSPI->SPI_CR = 0x81; //SPI Enable, Software reset - pSPI->SPI_CR = 0x01; //SPI Enable - pSPI->SPI_MR = 0xE0011; //Master mode, fixed select, disable decoder, PCS=1110 - pSPI->SPI_CSR[0] = 0x01010311; //9bit, CPOL=1, ClockPhase=0, SCLK = 48Mhz/3 = 16MHz - - /* Display backlight control at 100% */ - pwmRunning = FALSE; - palSetPad(IOPORT2, PIOB_LCD_BL); - break; - } -} - -static inline void post_init_board(GDisplay *g) { - (void) g; -} - -static inline void setpin_reset(GDisplay *g, bool_t state) { - (void) g; - if (state) - palClearPad(IOPORT1, PIOA_LCD_RESET); - else - palSetPad(IOPORT1, PIOA_LCD_RESET); -} - -static inline void set_backlight(GDisplay *g, uint8_t percent) { - (void) g; - - if (percent == 100) { - /* Turn the pin on - No PWM */ - if (pwmRunning) { - pwmStop(&PWMD2); - pwmRunning = FALSE; - } - palSetPad(IOPORT2, PIOB_LCD_BL); - } else if (percent == 0) { - /* Turn the pin off - No PWM */ - if (pwmRunning) { - pwmStop(&PWMD2); - pwmRunning = FALSE; - } - palClearPad(IOPORT2, PIOB_LCD_BL); - } else { - /* Use the PWM */ - if (!pwmRunning) { - pwmStart(&PWMD2, &pwmcfg); - pwmRunning = TRUE; - } - pwmEnableChannel(&PWMD2, 0, PWM_VALUE(percent)); - } -} - -static inline void acquire_bus(GDisplay *g) { - (void) g; -} - -static inline void release_bus(GDisplay *g) { - (void) g; -} - -static inline void write_index(GDisplay *g, uint16_t cmd) { - (void) g; - - // wait for the previous transfer to complete - while((pSPI->SPI_SR & AT91C_SPI_TXEMPTY) == 0); - // send the command - pSPI->SPI_TDR = cmd & 0xFF; -} - -static inline void write_data(GDisplay *g, uint16_t data) { - (void) g; - - // wait for the previous transfer to complete - while((pSPI->SPI_SR & AT91C_SPI_TXEMPTY) == 0); - // send the data - pSPI->SPI_TDR = data | 0x0100; -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/drivers/gdisp/Nokia6610GE8/board_Nokia6610GE8_olimexsam7ex256.h b/drivers/gdisp/Nokia6610GE8/board_Nokia6610GE8_olimexsam7ex256.h deleted file mode 100644 index 12dbc9a5..00000000 --- a/drivers/gdisp/Nokia6610GE8/board_Nokia6610GE8_olimexsam7ex256.h +++ /dev/null @@ -1,195 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -/** - * @file drivers/gdisp/Nokia6610GE8/board_Nokia6610GE8_olimexsam7ex256.h - * @brief GDISP Graphic Driver subsystem board interface for the Olimex SAM7-EX256 board. - */ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -/* - * Set various display properties. These properties mostly depend on the exact controller chip you get. - * The defaults should work for most controllers. - */ -//#define GDISP_GE8_BROKEN_CONTROLLER FALSE // Uncomment this out if you have a controller thats not window wrap broken. -//#define GDISP_SCREEN_HEIGHT 130 // The visible display height -//#define GDISP_SCREEN_WIDTH 130 // The visible display width -//#define GDISP_RAM_X_OFFSET 0 // The x offset of the visible area -//#define GDISP_RAM_Y_OFFSET 2 // The y offset of the visible area -//#define GDISP_SLEEP_SIZE 32 // The size of the sleep mode partial display -//#define GDISP_SLEEP_POS 50 // The position of the sleep mode partial display -//#define GDISP_INITIAL_CONTRAST 38 // The initial contrast percentage -//#define GDISP_INITIAL_BACKLIGHT 100 // The initial backlight percentage - -// For a multiple display configuration we would put all this in a structure and then -// set g->board to that structure. - -// ****************************************************** -// Pointers to AT91SAM7X256 peripheral data structures -// ****************************************************** -static volatile AT91PS_PIO pPIOA = AT91C_BASE_PIOA; -static volatile AT91PS_PIO pPIOB = AT91C_BASE_PIOB; -static volatile AT91PS_SPI pSPI = AT91C_BASE_SPI0; -static volatile AT91PS_PMC pPMC = AT91C_BASE_PMC; -static volatile AT91PS_PDC pPDC = AT91C_BASE_PDC_SPI0; - -/* The PWM backlight control is non-linear on this board. - * We pick values here that make it look a bit more linear. - */ -#define PWM_TOP_VALUE 500 -#define PWM_BOTTOM_VALUE 200 - -#define PWM_VALUE(x) (PWM_BOTTOM_VALUE+(PWM_TOP_VALUE-PWM_BOTTOM_VALUE)*(x)/100) - -/* PWM configuration structure. The LCD Backlight is on PWM1/PB20 ie PWM2/PIN1 in ChibiOS speak */ -static const PWMConfig pwmcfg = { - 1000000, /* 1 MHz PWM clock frequency. Ignored as we are using PWM_MCK_DIV_n */ - 1000, /* PWM period is 1000 cycles. */ - NULL, - { - {PWM_MCK_DIV_1 | PWM_OUTPUT_ACTIVE_HIGH | PWM_OUTPUT_PIN1 | PWM_DISABLEPULLUP_PIN1, NULL}, - }, -}; - -static bool_t pwmRunning = FALSE; - -/** - * @brief Initialise the board for the display. - * @notes Performs the following functions: - * 1. initialise the spi port used by your display - * 2. initialise the reset pin (initial state not-in-reset) - * 3. initialise the chip select pin (initial state not-active) - * 4. initialise the backlight pin (initial state back-light off) - * - * @notapi - */ -static inline void init_board(GDisplay *g) { - - // As we are not using multiple displays we set g->board to NULL as we don't use it. - g->board = 0; - - switch(g->controllerdisplay) { - case 0: // Set up for Display 0 - // ********************************************************************************************* - // InitSpi( ) - // - // Sets up SPI channel 0 for communications to Nokia 6610 LCD Display - // - // I/O ports used: PA2 = LCD Reset (set to low to reset) - // PA12 = LCD chip select (set to low to select the LCD chip) - // PA16 = SPI0_MISO Master In - Slave Out (not used in LCD interface) - // PA17 = SPI0_MOSI Master Out - Slave In pin (Serial Data to LCD slave) - // PA18 = SPI0_SPCK Serial Clock (to LCD slave) - // PB20 = backlight control (normally PWM control, 1 = full on) - // - // *********************************************************************************************} - - /* This code should really use the ChibiOS driver for these functions */ - - // Pin for backlight - pPIOB->PIO_CODR = PIOB_LCD_BL_MASK; // Set PB20 to LOW - pPIOB->PIO_OER = PIOB_LCD_BL_MASK; // Configure PB20 as output - - // Reset pin - pPIOA->PIO_SODR = PIOA_LCD_RESET_MASK; // Set PA2 to HIGH - pPIOA->PIO_OER = PIOA_LCD_RESET_MASK; // Configure PA2 as output - - // CS pin - this seems to be ignored - // pPIOA->PIO_SODR = 1<<12; // Set PA2 to HIGH - // pPIOA->PIO_OER = 1<<12; // Configure PA2 as output - - // Init SPI0 - // Disable the following pins from PIO control (will be used instead by the SPI0 peripheral) - // BIT12 = PA12 -> SPI0_NPCS0 chip select - // BIT16 = PA16 -> SPI0_MISO Master In - Slave Out (not used in LCD interface) - // BIT17 = PA17 -> SPI0_MOSI Master Out - Slave In pin (Serial Data to LCD slave) - // BIT18 = PA18 -> SPI0_SPCK Serial Clock (to LCD slave) - pPIOA->PIO_PDR = (1<<12) | (1<<16) | (1<<17) | (1<<18); - pPIOA->PIO_ASR = (1<<12) | (1<<16) | (1<<17) | (1<<18); - pPIOA->PIO_BSR = 0; - - //enable the clock of SPI - pPMC->PMC_PCER = 1 << AT91C_ID_SPI0; - - // Fixed mode - pSPI->SPI_CR = 0x81; //SPI Enable, Software reset - pSPI->SPI_CR = 0x01; //SPI Enable - pSPI->SPI_MR = 0xE0011; //Master mode, fixed select, disable decoder, PCS=1110 - pSPI->SPI_CSR[0] = 0x01010311; //9bit, CPOL=1, ClockPhase=0, SCLK = 48Mhz/3 = 16MHz - - /* Display backlight control at 100% */ - pwmRunning = FALSE; - palSetPad(IOPORT2, PIOB_LCD_BL); - break; - } -} - -static inline void post_init_board(GDisplay *g) { - (void) g; -} - -static inline void setpin_reset(GDisplay *g, bool_t state) { - (void) g; - if (state) - palClearPad(IOPORT1, PIOA_LCD_RESET); - else - palSetPad(IOPORT1, PIOA_LCD_RESET); -} - -static inline void set_backlight(GDisplay *g, uint8_t percent) { - (void) g; - if (percent == 100) { - /* Turn the pin on - No PWM */ - if (pwmRunning) { - pwmStop(&PWMD2); - pwmRunning = FALSE; - } - palSetPad(IOPORT2, PIOB_LCD_BL); - } else if (percent == 0) { - /* Turn the pin off - No PWM */ - if (pwmRunning) { - pwmStop(&PWMD2); - pwmRunning = FALSE; - } - palClearPad(IOPORT2, PIOB_LCD_BL); - } else { - /* Use the PWM */ - if (!pwmRunning) { - pwmStart(&PWMD2, &pwmcfg); - pwmRunning = TRUE; - } - pwmEnableChannel(&PWMD2, 0, PWM_VALUE(percent)); - } -} - -static inline void acquire_bus(GDisplay *g) { - (void) g; -} - -static inline void release_bus(GDisplay *g) { - (void) g; -} - -static inline void write_index(GDisplay *g, uint16_t index) { - (void) g; - // wait for the previous transfer to complete - while((pSPI->SPI_SR & AT91C_SPI_TXEMPTY) == 0); - // send the command - pSPI->SPI_TDR = index & 0xFF; -} - -static inline void write_data(GDisplay *g, uint16_t data) { - (void) g; - // wait for the previous transfer to complete - while((pSPI->SPI_SR & AT91C_SPI_TXEMPTY) == 0); - // send the data - pSPI->SPI_TDR = data | 0x0100; -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/drivers/ginput/dial/GADC/ginput_lld_dial_board_olimexsam7ex256.h b/drivers/ginput/dial/GADC/ginput_lld_dial_board_olimexsam7ex256.h deleted file mode 100644 index 09ca3dc0..00000000 --- a/drivers/ginput/dial/GADC/ginput_lld_dial_board_olimexsam7ex256.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -/** - * @file drivers/ginput/dial/GADC/ginput_lld_dial_board_olimexsam7ex256.h - * @brief GINPUT Dial Driver config file. - * - * @defgroup Dial Dial - * @ingroup GINPUT - * @{ - */ - -#ifndef _GINPUT_LLD_DIAL_BOARD_OLIMEXSAM7EX256_H -#define _GINPUT_LLD_DIAL_BOARD_OLIMEXSAM7EX256_H - -#if GFX_USE_GINPUT && GINPUT_NEED_DIAL - -/*===========================================================================*/ -/* Analogue devices on this board */ -/*===========================================================================*/ - -#define GINPUT_DIAL_NUM_PORTS 1 -#define GINPUT_DIAL_DEVICE0 GADC_PHYSDEV_DIAL -#define GINPUT_DIAL_POLL_PERIOD 200 -#define GINPUT_DIAL_CYCLE_POLL FALSE - -#endif /* GFX_USE_GINPUT && GINPUT_NEED_DIAL */ - -#endif /* _GINPUT_LLD_DIAL_BOARD_OLIMEXSAM7EX256_H */ -/** @} */ - diff --git a/drivers/ginput/dial/GADC/ginput_lld_dial_board_template.h b/drivers/ginput/dial/GADC/ginput_lld_dial_board_template.h new file mode 100644 index 00000000..202b5386 --- /dev/null +++ b/drivers/ginput/dial/GADC/ginput_lld_dial_board_template.h @@ -0,0 +1,36 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +/** + * @file drivers/ginput/dial/GADC/ginput_lld_dial_board_template.h + * @brief GINPUT Dial Driver config file. + * + * @defgroup Dial Dial + * @ingroup GINPUT + * @{ + */ + +#ifndef _GINPUT_LLD_DIAL_BOARD_H +#define _GINPUT_LLD_DIAL_BOARD_H + +#if GFX_USE_GINPUT && GINPUT_NEED_DIAL + +/*===========================================================================*/ +/* Analogue devices on this board */ +/*===========================================================================*/ + +/* Example values */ +#define GINPUT_DIAL_NUM_PORTS 1 +#define GINPUT_DIAL_DEVICE0 GADC_PHYSDEV_DIAL +#define GINPUT_DIAL_POLL_PERIOD 200 +#define GINPUT_DIAL_CYCLE_POLL FALSE + +#endif /* GFX_USE_GINPUT && GINPUT_NEED_DIAL */ + +#endif /* _GINPUT_LLD_DIAL_BOARD_H */ +/** @} */ + diff --git a/drivers/ginput/dial/GADC/ginput_lld_dial_config.h b/drivers/ginput/dial/GADC/ginput_lld_dial_config.h index 3dc7bfca..3e54b4ca 100644 --- a/drivers/ginput/dial/GADC/ginput_lld_dial_config.h +++ b/drivers/ginput/dial/GADC/ginput_lld_dial_config.h @@ -21,15 +21,8 @@ #define GINPUT_DIAL_MAX_VALUE ((1<