diff options
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc24xx/misc/lcd.c')
-rw-r--r-- | c/src/lib/libbsp/arm/lpc24xx/misc/lcd.c | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/misc/lcd.c b/c/src/lib/libbsp/arm/lpc24xx/misc/lcd.c deleted file mode 100644 index 9474eec18a..0000000000 --- a/c/src/lib/libbsp/arm/lpc24xx/misc/lcd.c +++ /dev/null @@ -1,122 +0,0 @@ -/** - * @file - * - * @ingroup lpc24xx_lcd - * - * @brief LCD support. - */ - -/* - * Copyright (c) 2010-2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@embedded-brains.de> - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#include <assert.h> - -#include <bsp/lpc24xx.h> -#include <bsp/lcd.h> -#include <bsp/lpc-lcd.h> -#include <bsp/utility.h> -#include <bsp/system-clocks.h> - -#ifdef ARM_MULTILIB_ARCH_V4 - #define LCD_ENABLE BSP_BIT32(0) -#endif - -rtems_status_code lpc24xx_lcd_set_mode( - lpc24xx_lcd_mode mode, - const lpc24xx_pin_range *pins -) -{ - rtems_status_code sc = RTEMS_SUCCESSFUL; - bool enable = false; - - switch (mode) { - case LCD_MODE_STN_4_BIT: - case LCD_MODE_STN_8_BIT: - case LCD_MODE_STN_DUAL_PANEL_4_BIT: - case LCD_MODE_STN_DUAL_PANEL_8_BIT: - case LCD_MODE_TFT_12_BIT_4_4_4: - case LCD_MODE_TFT_16_BIT_5_6_5: - case LCD_MODE_TFT_16_BIT_1_5_5_5: - case LCD_MODE_TFT_24_BIT: - enable = true; - break; - case LCD_MODE_DISABLED: - enable = false; - break; - default: - sc = RTEMS_IO_ERROR; - break; - } - - if (sc == RTEMS_SUCCESSFUL) { - if (enable) { - sc = lpc24xx_module_enable(LPC24XX_MODULE_LCD, LPC24XX_MODULE_PCLK_DEFAULT); - assert(sc == RTEMS_SUCCESSFUL); - - #ifdef ARM_MULTILIB_ARCH_V4 - PINSEL11 = BSP_FLD32(mode, 1, 3) | LCD_ENABLE; - #endif - - sc = lpc24xx_pin_config(pins, LPC24XX_PIN_SET_FUNCTION); - assert(sc == RTEMS_SUCCESSFUL); - } else { - if (lpc24xx_lcd_current_mode() != LCD_MODE_DISABLED) { - uint32_t lcd_ctrl = LCD_CTRL; - - /* Disable power */ - lcd_ctrl &= ~BSP_BIT32(11); - LCD_CTRL = lcd_ctrl; - - lpc24xx_micro_seconds_delay(100000); - - /* Disable all signals */ - lcd_ctrl &= ~BSP_BIT32(0); - LCD_CTRL = lcd_ctrl; - } - - sc = lpc24xx_pin_config(pins, LPC24XX_PIN_SET_INPUT); - assert(sc == RTEMS_SUCCESSFUL); - - #ifdef ARM_MULTILIB_ARCH_V4 - PINSEL11 = 0; - #endif - - sc = lpc24xx_module_disable(LPC24XX_MODULE_LCD); - assert(sc == RTEMS_SUCCESSFUL); - } - } - - return sc; -} - -lpc24xx_lcd_mode lpc24xx_lcd_current_mode(void) -{ - #ifdef ARM_MULTILIB_ARCH_V4 - uint32_t pinsel11 = PINSEL11; - - if ((PCONP & BSP_BIT32(20)) != 0 && (pinsel11 & LCD_ENABLE) != 0) { - return BSP_FLD32GET(pinsel11, 1, 3); - } else { - return LCD_MODE_DISABLED; - } - #else - volatile lpc17xx_scb *scb = &LPC17XX_SCB; - - if ((scb->pconp & LPC17XX_SCB_PCONP_LCD) != 0) { - return LCD_CTRL & 0xae; - } else { - return LCD_MODE_DISABLED; - } - #endif -} |