1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-27 18:35:55 +02:00

[uboot-xburst] cleanup the lcm init

- cleanup code style
   - remove useless code
   - make the color correct in u-boot

Signed-off-by: Xiangfu Liu <xiangfu@sharism.cc>
This commit is contained in:
Xiangfu Liu 2010-10-27 18:00:57 +08:00
parent 51502be452
commit 3b8d5515c1
4 changed files with 52 additions and 125 deletions

View File

@ -193,7 +193,6 @@ static inline void jz_flush_icache(void)
#define RTC_HWRSR_PIN (1 << 1) /* Wakeup pin status bit */ #define RTC_HWRSR_PIN (1 << 1) /* Wakeup pin status bit */
#define RTC_HWRSR_ALM (1 << 0) /* RTC alarm status bit */ #define RTC_HWRSR_ALM (1 << 0) /* RTC alarm status bit */
/************************************************************************* /*************************************************************************
* CPM (Clock reset and Power control Management) * CPM (Clock reset and Power control Management)
*************************************************************************/ *************************************************************************/

View File

@ -1,7 +1,7 @@
/* /*
* JzRISC lcd controller * JzRISC lcd controller
* *
* xiangfu liu <xiangfu.z@gmail.com> * Xiangfu Liu <xiangfu@sharism.cc>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as * modify it under the terms of the GNU General Public License as
@ -56,7 +56,6 @@ vidinfo_t panel_info = {
}; };
int lcd_line_length; int lcd_line_length;
int lcd_color_fg; int lcd_color_fg;
int lcd_color_bg; int lcd_color_bg;
/* /*
@ -74,8 +73,8 @@ void lcd_disable (void);
static int jz_lcd_init_mem(void *lcdbase, vidinfo_t *vid); static int jz_lcd_init_mem(void *lcdbase, vidinfo_t *vid);
static void jz_lcd_desc_init(vidinfo_t *vid); static void jz_lcd_desc_init(vidinfo_t *vid);
static int jz_lcd_hw_init( vidinfo_t *vid ); static int jz_lcd_hw_init(vidinfo_t *vid);
extern int flush_cache_all(void); extern int flush_cache_all(void);
void lcd_ctrl_init (void *lcdbase) void lcd_ctrl_init (void *lcdbase)
{ {
@ -91,7 +90,6 @@ void lcd_ctrl_init (void *lcdbase)
/* /*
* Before enabled lcd controller, lcd registers should be configured correctly. * Before enabled lcd controller, lcd registers should be configured correctly.
*/ */
void lcd_enable (void) void lcd_enable (void)
{ {
REG_LCD_CTRL &= ~(1<<4); /* LCDCTRL.DIS */ REG_LCD_CTRL &= ~(1<<4); /* LCDCTRL.DIS */

View File

@ -1,7 +1,7 @@
/* /*
* JzRISC lcd controller * JzRISC lcd controller
* *
* xiangfu liu <xiangfu.z@gmail.com> * Xiangfu Liu <xiangfu@sharism.cc>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as * modify it under the terms of the GNU General Public License as
@ -86,126 +86,56 @@ struct lcd_desc{
/* /*
* LCD panel specific definition * LCD panel specific definition
*/ */
#define MODE 0xc9 /* 8bit serial RGB */ #define MODE (0xc9) /* 8bit serial RGB */
#define SPEN (32*2+21) /*LCD_SPL */
#define SPCK (32*2+23) /*LCD_CLS */
#define SPDA (32*2+22) /*LCD_D12 */
#define LCD_RET (32*3+27)
#define __spi_write_reg1(reg, val) \ #define __spi_write_reg1(reg, val) \
do { \ do { \
unsigned char no;\ unsigned char no; \
unsigned short value;\ unsigned short value; \
unsigned char a=0;\ unsigned char a=reg; \
unsigned char b=0;\ unsigned char b=val; \
a=reg;\ __gpio_set_pin(SPEN); \
b=val;\ __gpio_set_pin(SPCK); \
__gpio_set_pin(SPEN);\ __gpio_clear_pin(SPDA); \
__gpio_set_pin(SPCK);\ __gpio_clear_pin(SPEN); \
__gpio_clear_pin(SPDA);\ udelay(25); \
__gpio_clear_pin(SPEN);\ value=((a<<8)|(b&0xFF)); \
udelay(25);\ for(no=0;no<16;no++) \
value=((a<<8)|(b&0xFF));\ { \
for(no=0;no<16;no++)\ __gpio_clear_pin(SPCK); \
{\ if((value&0x8000)==0x8000) \
__gpio_clear_pin(SPCK);\ __gpio_set_pin(SPDA); \
if((value&0x8000)==0x8000)\ else \
__gpio_set_pin(SPDA);\ __gpio_clear_pin(SPDA); \
else\ udelay(25); \
__gpio_clear_pin(SPDA);\ __gpio_set_pin(SPCK); \
udelay(25);\ value=(value<<1); \
__gpio_set_pin(SPCK);\ udelay(25); \
value=(value<<1); \ } \
udelay(25);\ __gpio_set_pin(SPEN); \
}\ udelay(100); \
__gpio_set_pin(SPEN);\
udelay(100);\
} while (0) } while (0)
#define __spi_write_reg(reg, val) \ #define __lcd_display_pin_init() \
do {\ do { \
__spi_write_reg1((reg<<2|2), val);\ __cpm_start_tcu(); \
udelay(100); \ __gpio_as_output(SPEN); /* use SPDA */ \
}while(0) __gpio_as_output(SPCK); /* use SPCK */ \
__gpio_as_output(SPDA); /* use SPDA */ \
#define __lcd_special_pin_init() \
do { \
__gpio_as_output(SPEN); /* use SPDA */\
__gpio_as_output(SPCK); /* use SPCK */\
__gpio_as_output(SPDA); /* use SPDA */\
__gpio_as_output(LCD_RET);\
} while (0) } while (0)
#define __lcd_special_on() \ #define __lcd_display_on() \
do { \ do { \
__spi_write_reg1(0x05, 0x1e); \ __spi_write_reg1(0x05, 0x1e); \
udelay(50);\ __spi_write_reg1(0x05, 0xc6); \
__spi_write_reg1(0x05, 0x5d); \ __spi_write_reg1(0x07, 0x8d); \
__spi_write_reg1(0x0B, 0x81); \ __spi_write_reg1(0x13, 0x01); \
__spi_write_reg1(0x01, 0x95); \ __spi_write_reg1(0x05, 0xc7); \
__spi_write_reg1(0x00, 0x07); \
__spi_write_reg1(0x06, 0x15); \
__spi_write_reg1(0x07, 0x8d); \
__spi_write_reg1(0x04, 0x0f); \
__spi_write_reg1(0x0d, 0x3d); \
__spi_write_reg1(0x10, 0x42); \
__spi_write_reg1(0x11, 0x3a); \
__spi_write_reg1(0x05, 0x5f); \
} while (0) } while (0)
#define __lcd_special_off() \ #define __lcd_display_off() \
do { \ do { \
__spi_write_reg1(0x05, 0x5e); \ __spi_write_reg1(0x05, 0x5e); \
} while (0) } while (0)
#define __lcd_set_backlight_level(n)\
do { \
__gpio_as_output(LCD_RET); \
__gpio_set_pin(LCD_RET); \
} while (0)
#if defined(CONFIG_SAKC)
#define __lcd_close_backlight() \
do { \
__gpio_as_output(GPIO_PWM); \
__gpio_clear_pin(GPIO_PWM); \
} while (0)
#endif
#if defined(CONFIG_SAKC)
#define __lcd_display_pin_init() \
do { \
__cpm_start_tcu(); \
__lcd_special_pin_init(); \
} while (0)
#define __lcd_display_on() \
do { \
__lcd_special_on(); \
} while (0)
#define __lcd_display_off() \
do { \
__lcd_special_off(); \
} while (0)
#else
#define __lcd_display_pin_init() \
do { \
__cpm_start_tcu(); \
__lcd_special_pin_init(); \
} while (0)
#define __lcd_display_on() \
do { \
__gpio_set_pin(GPIO_DISP_OFF_N); \
__lcd_special_on(); \
} while (0)
#define __lcd_display_off() \
do { \
__lcd_special_off(); \
__gpio_clear_pin(GPIO_DISP_OFF_N); \
} while (0)
#endif
#endif /* __QI_LB60_GPM940B0_H__ */ #endif /* __QI_LB60_GPM940B0_H__ */

View File

@ -178,16 +178,13 @@
* GPIO definition * GPIO definition
*/ */
#define GPIO_LCD_CS (2 * 32 + 21) #define GPIO_LCD_CS (2 * 32 + 21)
#define GPIO_DISP_OFF_N (3 * 32 + 21)
#define GPIO_PWM (3 * 32 + 27)
#define GPIO_AMP_EN (3 * 32 + 4) #define GPIO_AMP_EN (3 * 32 + 4)
#define GPIO_SDPW_EN (3 * 32 + 2) #define GPIO_SDPW_EN (3 * 32 + 2)
#define GPIO_SD_DETECT (3 * 32 + 0) #define GPIO_SD_DETECT (3 * 32 + 0)
#define GPIO_USB_DETECT (3 * 32 + 27) #define GPIO_BUZZ_PWM (3 * 32 + 27)
#define GPIO_BUZZ_PWM (3 * 32 + 28) #define GPIO_USB_DETECT (3 * 32 + 28)
#define GPIO_AUDIO_POP (1 * 32 + 29) #define GPIO_AUDIO_POP (1 * 32 + 29)
#define GPIO_COB_TEST (1 * 32 + 30) #define GPIO_COB_TEST (1 * 32 + 30)
@ -199,4 +196,7 @@
#define GPIO_SD_CD_N GPIO_SD_DETECT /* SD Card insert detect */ #define GPIO_SD_CD_N GPIO_SD_DETECT /* SD Card insert detect */
#define GPIO_SD_VCC_EN_N GPIO_SDPW_EN /* SD Card Power Enable */ #define GPIO_SD_VCC_EN_N GPIO_SDPW_EN /* SD Card Power Enable */
#define SPEN GPIO_LCD_CS /* LCDCS :Serial command enable */
#define SPDA (2 * 32 + 22) /* LCDSCL:Serial command clock input */
#define SPCK (2 * 32 + 23) /* LCDSDA:Serial command data input */
#endif /* __CONFIG_NANONOTE_H */ #endif /* __CONFIG_NANONOTE_H */