diff options
Diffstat (limited to 'drivers/gdisp/ILI9481')
-rw-r--r-- | drivers/gdisp/ILI9481/gdisp_lld.c | 10 | ||||
-rw-r--r-- | drivers/gdisp/ILI9481/gdisp_lld_board_example_fsmc.h | 152 | ||||
-rw-r--r-- | drivers/gdisp/ILI9481/gdisp_lld_board_template.h (renamed from drivers/gdisp/ILI9481/gdisp_lld_board_example.h) | 24 | ||||
-rw-r--r-- | drivers/gdisp/ILI9481/readme.txt | 15 |
4 files changed, 10 insertions, 191 deletions
diff --git a/drivers/gdisp/ILI9481/gdisp_lld.c b/drivers/gdisp/ILI9481/gdisp_lld.c index 27c314d1..e9f42b4d 100644 --- a/drivers/gdisp/ILI9481/gdisp_lld.c +++ b/drivers/gdisp/ILI9481/gdisp_lld.c @@ -44,15 +44,7 @@ /* Driver local functions. */ /*===========================================================================*/ -#if defined(GDISP_USE_CUSTOM_BOARD) && GDISP_USE_CUSTOM_BOARD - /* Include the user supplied board definitions */ - #include "gdisp_lld_board.h" -#elif defined(BOARD_FIREBULL_STM32_F103) - #include "gdisp_lld_board_firebullstm32f103.h" -#else - /* Include the user supplied board definitions */ - #include "gdisp_lld_board.h" -#endif +#include "gdisp_lld_board.h" // Some common routines and macros #define write_reg(reg, data) { write_index(reg); write_data(data); } diff --git a/drivers/gdisp/ILI9481/gdisp_lld_board_example_fsmc.h b/drivers/gdisp/ILI9481/gdisp_lld_board_example_fsmc.h deleted file mode 100644 index de45c89d..00000000 --- a/drivers/gdisp/ILI9481/gdisp_lld_board_example_fsmc.h +++ /dev/null @@ -1,152 +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://chibios-gfx.com/license.html - */ - -/** - * @file drivers/gdisp/ILI9481/gdisp_lld_board_example_fsmc.h - * @brief GDISP Graphics Driver subsystem low level driver source for - * the ILI9481 and compatible HVGA display - * - * @addtogroup GDISP - * @{ - */ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -#define GDISP_REG ((volatile uint16_t *) 0x60000000)[0] /* RS = 0 */ -#define GDISP_RAM ((volatile uint16_t *) 0x60020000)[0] /* RS = 1 */ - -/** - * @brief Initialise the board for the display. - * @notes Performs the following functions: - * 1. initialise the io 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(void) { - const unsigned char FSMC_Bank; - - #if defined(STM32F1XX) || defined(STM32F3XX) - /* FSMC setup for F1/F3 */ - rccEnableAHB(RCC_AHBENR_FSMCEN, 0); - - #if defined(GDISP_USE_DMA) && defined(GDISP_DMA_STREAM) - #error "DMA not implemented for F1/F3 Devices" - #endif - #elif defined(STM32F4XX) || defined(STM32F2XX) - /* STM32F2-F4 FSMC init */ - rccEnableAHB3(RCC_AHB3ENR_FSMCEN, 0); - - #if defined(GDISP_USE_DMA) && defined(GDISP_DMA_STREAM) - if (dmaStreamAllocate(GDISP_DMA_STREAM, 0, NULL, NULL)) gfxExit(); - dmaStreamSetMemory0(GDISP_DMA_STREAM, &GDISP_RAM); - dmaStreamSetMode(GDISP_DMA_STREAM, STM32_DMA_CR_PL(0) | STM32_DMA_CR_PSIZE_HWORD | STM32_DMA_CR_MSIZE_HWORD | STM32_DMA_CR_DIR_M2M); - #endif - #else - #error "FSMC not implemented for this device" - #endif - - /* set pins to FSMC mode */ - IOBus busD = {GPIOD, (1 << 0) | (1 << 1) | (1 << 4) | (1 << 5) | (1 << 7) | (1 << 8) | - (1 << 9) | (1 << 10) | (1 << 11) | (1 << 14) | (1 << 15), 0}; - - IOBus busE = {GPIOE, (1 << 7) | (1 << 8) | (1 << 9) | (1 << 10) | (1 << 11) | (1 << 12) | - (1 << 13) | (1 << 14) | (1 << 15), 0}; - - palSetBusMode(&busD, PAL_MODE_ALTERNATE(12)); - palSetBusMode(&busE, PAL_MODE_ALTERNATE(12)); - - FSMC_Bank = 0; - - /* FSMC timing */ - FSMC_Bank1->BTCR[FSMC_Bank+1] = (FSMC_BTR1_ADDSET_1 | FSMC_BTR1_ADDSET_3) \ - | (FSMC_BTR1_DATAST_1 | FSMC_BTR1_DATAST_3) \ - | (FSMC_BTR1_BUSTURN_1 | FSMC_BTR1_BUSTURN_3) ; - - /* Bank1 NOR/SRAM control register configuration - * This is actually not needed as already set by default after reset */ - FSMC_Bank1->BTCR[FSMC_Bank] = FSMC_BCR1_MWID_0 | FSMC_BCR1_WREN | FSMC_BCR1_MBKEN; -} - -/** - * @brief Set or clear the lcd reset pin. - * - * @param[in] state TRUE = lcd in reset, FALSE = normal operation - * - * @notapi - */ -static inline void setpin_reset(bool_t state) { - (void) state; - /* Nothing to do here */ -} - -/** - * @brief Set the lcd back-light level. - * - * @param[in] percent 0 to 100% - * - * @notapi - */ -static inline void set_backlight(uint8_t percent) { - (void) percent; - /* Nothing to do here */ -} - -/** - * @brief Take exclusive control of the bus - * - * @notapi - */ -static inline void acquire_bus(void) { - /* Nothing to do here */ -} - -/** - * @brief Release exclusive control of the bus - * - * @notapi - */ -static inline void release_bus(void) { - /* Nothing to do here */ -} - -/** - * @brief Send data to the index register. - * - * @param[in] index The index register to set - * - * @notapi - */ -static inline void write_index(uint16_t index) { GDISP_REG = index; } - -/** - * @brief Send data to the lcd. - * - * @param[in] data The data to send - * - * @notapi - */ -static inline void write_data(uint16_t data) { GDISP_RAM = data; } - -#if GDISP_HARDWARE_READPIXEL || GDISP_HARDWARE_SCROLL || defined(__DOXYGEN__) -/** - * @brief Read data from the lcd. - * - * @return The data from the lcd - * @note The chip select may need to be asserted/de-asserted - * around the actual spi read - * - * @notapi - */ -static inline uint16_t read_data(void) { return GDISP_RAM; } -#endif - -#endif /* _GDISP_LLD_BOARD_H */ -/** @} */ diff --git a/drivers/gdisp/ILI9481/gdisp_lld_board_example.h b/drivers/gdisp/ILI9481/gdisp_lld_board_template.h index 8755f5a7..d287907a 100644 --- a/drivers/gdisp/ILI9481/gdisp_lld_board_example.h +++ b/drivers/gdisp/ILI9481/gdisp_lld_board_template.h @@ -6,7 +6,7 @@ */ /** - * @file drivers/gdisp/ILI9481/gdisp_lld_board_example.h + * @file drivers/gdisp/ILI9481/gdisp_lld_board_template.h * @brief GDISP Graphics Driver subsystem low level driver source for * the ILI9481 and compatible HVGA display * @@ -23,8 +23,7 @@ * @notapi */ static inline void init_board(void) { - /* Code here */ -#error "ILI9481: You must supply a definition for init_board for your board" + } /** @@ -35,8 +34,7 @@ static inline void init_board(void) { * @notapi */ static inline void setpin_reset(bool_t state) { - /* Code here */ -#error "ILI9481: You must supply a definition for setpin_reset for your board" + } /** @@ -47,8 +45,7 @@ static inline void setpin_reset(bool_t state) { * @notapi */ static inline void set_backlight(uint8_t percent) { - /* Code here */ -#error "ILI9481: You must supply a definition for set_backlight for your board" + } /** @@ -57,7 +54,7 @@ static inline void set_backlight(uint8_t percent) { * @notapi */ static inline void acquire_bus(void) { -#error "ILI9481: You must supply a definition for acquire_bus for your board" + } /** @@ -66,7 +63,7 @@ static inline void acquire_bus(void) { * @notapi */ static inline void release_bus(void) { -#error "ILI9481: You must supply a definition for release_bus for your board" + } /** @@ -77,8 +74,7 @@ static inline void release_bus(void) { * @notapi */ static inline void write_index(uint16_t index) { - /* Code here */ -#error "ILI9481: You must supply a definition for write_index for your board" + } /** @@ -89,8 +85,7 @@ static inline void write_index(uint16_t index) { * @notapi */ static inline void write_data(uint16_t data) { - /* Code here */ -#error "ILI9481: You must supply a definition for write_data for your board" + } #if GDISP_HARDWARE_READPIXEL || GDISP_HARDWARE_SCROLL || defined(__DOXYGEN__) @@ -104,8 +99,7 @@ static inline void write_data(uint16_t data) { * @notapi */ static inline uint16_t read_data(void) { - /* Code here */ -#error "ILI9481: You must supply a definition for read_data for your board" + } #endif diff --git a/drivers/gdisp/ILI9481/readme.txt b/drivers/gdisp/ILI9481/readme.txt deleted file mode 100644 index 235c2582..00000000 --- a/drivers/gdisp/ILI9481/readme.txt +++ /dev/null @@ -1,15 +0,0 @@ -To use this driver: - -1. Add in your gfxconf.h: - a) #define GFX_USE_GDISP TRUE - - b) Any optional high level driver defines (see gdisp.h) eg: GDISP_NEED_MULTITHREAD - - c) If you are not using a known board then create a gdisp_lld_board.h file - and ensure it is on your include path. - Use the gdisp_lld_board_example.h or gdisp_lld_board_fsmc.h file as a basis. - Currently known boards are: - BOARD_FIREBULL_STM32_F103 - GPIO interface: requires GDISP_CMD_PORT and GDISP_DATA_PORT to be defined - -2. To your makefile add the following lines: - include $(GFXLIB)/drivers/gdisp/ILI9481/gdisp_lld.mk |