summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonne <[email protected]>2020-04-15 21:03:43 +0800
committerJonne <[email protected]>2020-04-15 21:03:43 +0800
commit4b035622ce411ce53455eba96ba3d0835b3e2997 (patch)
tree321cf44209af7fbd3ebada6323d8a5dd2fc5e9a9
parentc0947d443a11175d1c33d805b0dbf03e7f3f708c (diff)
1. Modify the file indention
2. Modify the license head
-rw-r--r--bsp/mini2440/applications/main.c14
-rw-r--r--bsp/mini2440/applications/mnt.c40
-rw-r--r--bsp/mini2440/drivers/SConscript2
-rw-r--r--bsp/mini2440/drivers/lcd_a70.c242
-rw-r--r--bsp/mini2440/drivers/lcd_n35.c234
-rw-r--r--bsp/mini2440/drivers/lcd_t35.c244
-rw-r--r--bsp/mini2440/drivers/lcd_t43.c239
-rw-r--r--bsp/mini2440/drivers/lcd_x35.c234
-rw-r--r--bsp/mini2440/drivers/s3cmci.c9
-rw-r--r--bsp/mini2440/drivers/touch.c722
-rw-r--r--bsp/mini2440/drivers/touch.h16
11 files changed, 993 insertions, 1003 deletions
diff --git a/bsp/mini2440/applications/main.c b/bsp/mini2440/applications/main.c
index 923f014469..94a3f4ccea 100644
--- a/bsp/mini2440/applications/main.c
+++ b/bsp/mini2440/applications/main.c
@@ -11,16 +11,16 @@
int main(void)
{
- rt_device_t device;
+ rt_device_t device;
- printf("hello rt-thread\n");
+ printf("hello rt-thread\n");
#ifdef PKG_USING_GUIENGINE
- device = rt_device_find("lcd");
- if (device)
- {
- rtgui_graphic_set_device(device);
- }
+ device = rt_device_find("lcd");
+ if (device)
+ {
+ rtgui_graphic_set_device(device);
+ }
#endif
diff --git a/bsp/mini2440/applications/mnt.c b/bsp/mini2440/applications/mnt.c
index 2e1ae80692..14949abff4 100644
--- a/bsp/mini2440/applications/mnt.c
+++ b/bsp/mini2440/applications/mnt.c
@@ -6,29 +6,29 @@
int mnt_init(void)
{
- rt_uint32_t tryCnt = 5;
- rt_device_t dev;
+ rt_uint32_t tryCnt = 5;
+ rt_device_t dev;
- while(tryCnt--)
- {
- dev = rt_device_find("sd0");
- if(dev != RT_NULL)
- {
- break;
- }
- rt_thread_mdelay(500);
- }
+ while(tryCnt--)
+ {
+ dev = rt_device_find("sd0");
+ if(dev != RT_NULL)
+ {
+ break;
+ }
+ rt_thread_mdelay(500);
+ }
- if(dfs_mount("sd0", "/", "elm", 0, 0) == 0)
- {
- rt_kprintf("File System initialized!\n");
- }
- else
- {
- rt_kprintf("File System initialzation failed!\n");
- }
+ if(dfs_mount("sd0", "/", "elm", 0, 0) == 0)
+ {
+ rt_kprintf("File System initialized!\n");
+ }
+ else
+ {
+ rt_kprintf("File System initialzation failed!\n");
+ }
- return RT_EOK;
+ return RT_EOK;
}
INIT_ENV_EXPORT(mnt_init);
#endif
diff --git a/bsp/mini2440/drivers/SConscript b/bsp/mini2440/drivers/SConscript
index 902b48320d..2ea54187ed 100644
--- a/bsp/mini2440/drivers/SConscript
+++ b/bsp/mini2440/drivers/SConscript
@@ -27,7 +27,7 @@ if GetDepend('RT_MINI2440_LCD_X35'):
src += ['lcd_x35.c']
if GetDepend('PKG_USING_GUIENGINE'):
- src += ['touch.c']
+ src += ['touch.c']
if GetDepend('RT_USING_SDIO'):
src += ['s3cmci.c']
diff --git a/bsp/mini2440/drivers/lcd_a70.c b/bsp/mini2440/drivers/lcd_a70.c
index 7ebcf6a047..5020012b2f 100644
--- a/bsp/mini2440/drivers/lcd_a70.c
+++ b/bsp/mini2440/drivers/lcd_a70.c
@@ -34,81 +34,81 @@
#define SCR_XSIZE LCD_WIDTH
#define SCR_YSIZE LCD_HEIGHT
-#define RT_HW_LCD_WIDTH LCD_WIDTH
-#define RT_HW_LCD_HEIGHT LCD_HEIGHT
+#define RT_HW_LCD_WIDTH LCD_WIDTH
+#define RT_HW_LCD_HEIGHT LCD_HEIGHT
-#define MVAL (13)
-#define MVAL_USED (0) //0=each frame 1=rate by MVAL
-#define INVVDEN (1) //0=normal 1=inverted
-#define BSWP (0) //Byte swap control
-#define HWSWP (1) //Half word swap control
+#define MVAL (13)
+#define MVAL_USED (0) //0=each frame 1=rate by MVAL
+#define INVVDEN (1) //0=normal 1=inverted
+#define BSWP (0) //Byte swap control
+#define HWSWP (1) //Half word swap control
-#define GPB1_TO_OUT() (GPBUP &= 0xfffd, GPBCON &= 0xfffffff3, GPBCON |= 0x00000004)
-#define GPB1_TO_1() (GPBDAT |= 0x0002)
-#define GPB1_TO_0() (GPBDAT &= 0xfffd)
+#define GPB1_TO_OUT() (GPBUP &= 0xfffd, GPBCON &= 0xfffffff3, GPBCON |= 0x00000004)
+#define GPB1_TO_1() (GPBDAT |= 0x0002)
+#define GPB1_TO_0() (GPBDAT &= 0xfffd)
#define S3C2410_LCDCON1_CLKVAL(x) ((x) << 8)
-#define S3C2410_LCDCON1_MMODE (1<<7)
-#define S3C2410_LCDCON1_DSCAN4 (0<<5)
-#define S3C2410_LCDCON1_STN4 (1<<5)
-#define S3C2410_LCDCON1_STN8 (2<<5)
-#define S3C2410_LCDCON1_TFT (3<<5)
+#define S3C2410_LCDCON1_MMODE (1<<7)
+#define S3C2410_LCDCON1_DSCAN4 (0<<5)
+#define S3C2410_LCDCON1_STN4 (1<<5)
+#define S3C2410_LCDCON1_STN8 (2<<5)
+#define S3C2410_LCDCON1_TFT (3<<5)
-#define S3C2410_LCDCON1_STN1BPP (0<<1)
+#define S3C2410_LCDCON1_STN1BPP (0<<1)
#define S3C2410_LCDCON1_STN2GREY (1<<1)
#define S3C2410_LCDCON1_STN4GREY (2<<1)
-#define S3C2410_LCDCON1_STN8BPP (3<<1)
+#define S3C2410_LCDCON1_STN8BPP (3<<1)
#define S3C2410_LCDCON1_STN12BPP (4<<1)
-#define S3C2410_LCDCON1_TFT1BPP (8<<1)
-#define S3C2410_LCDCON1_TFT2BPP (9<<1)
-#define S3C2410_LCDCON1_TFT4BPP (10<<1)
-#define S3C2410_LCDCON1_TFT8BPP (11<<1)
+#define S3C2410_LCDCON1_TFT1BPP (8<<1)
+#define S3C2410_LCDCON1_TFT2BPP (9<<1)
+#define S3C2410_LCDCON1_TFT4BPP (10<<1)
+#define S3C2410_LCDCON1_TFT8BPP (11<<1)
#define S3C2410_LCDCON1_TFT16BPP (12<<1)
#define S3C2410_LCDCON1_TFT24BPP (13<<1)
-#define S3C2410_LCDCON1_ENVID (1)
+#define S3C2410_LCDCON1_ENVID (1)
#define S3C2410_LCDCON1_MODEMASK 0x1E
-#define S3C2410_LCDCON2_VBPD(x) ((x) << 24)
+#define S3C2410_LCDCON2_VBPD(x) ((x) << 24)
#define S3C2410_LCDCON2_LINEVAL(x) ((x) << 14)
-#define S3C2410_LCDCON2_VFPD(x) ((x) << 6)
-#define S3C2410_LCDCON2_VSPW(x) ((x) << 0)
+#define S3C2410_LCDCON2_VFPD(x) ((x) << 6)
+#define S3C2410_LCDCON2_VSPW(x) ((x) << 0)
#define S3C2410_LCDCON2_GET_VBPD(x) ( ((x) >> 24) & 0xFF)
#define S3C2410_LCDCON2_GET_VFPD(x) ( ((x) >> 6) & 0xFF)
#define S3C2410_LCDCON2_GET_VSPW(x) ( ((x) >> 0) & 0x3F)
-#define S3C2410_LCDCON3_HBPD(x) ((x) << 19)
-#define S3C2410_LCDCON3_WDLY(x) ((x) << 19)
+#define S3C2410_LCDCON3_HBPD(x) ((x) << 19)
+#define S3C2410_LCDCON3_WDLY(x) ((x) << 19)
#define S3C2410_LCDCON3_HOZVAL(x) ((x) << 8)
-#define S3C2410_LCDCON3_HFPD(x) ((x) << 0)
+#define S3C2410_LCDCON3_HFPD(x) ((x) << 0)
#define S3C2410_LCDCON3_LINEBLANK(x)((x) << 0)
#define S3C2410_LCDCON3_GET_HBPD(x) ( ((x) >> 19) & 0x7F)
#define S3C2410_LCDCON3_GET_HFPD(x) ( ((x) >> 0) & 0xFF)
-#define S3C2410_LCDCON4_MVAL(x) ((x) << 8)
-#define S3C2410_LCDCON4_HSPW(x) ((x) << 0)
-#define S3C2410_LCDCON4_WLH(x) ((x) << 0)
+#define S3C2410_LCDCON4_MVAL(x) ((x) << 8)
+#define S3C2410_LCDCON4_HSPW(x) ((x) << 0)
+#define S3C2410_LCDCON4_WLH(x) ((x) << 0)
#define S3C2410_LCDCON4_GET_HSPW(x) ( ((x) >> 0) & 0xFF)
-#define S3C2410_LCDCON5_BPP24BL (1<<12)
-#define S3C2410_LCDCON5_FRM565 (1<<11)
-#define S3C2410_LCDCON5_INVVCLK (1<<10)
+#define S3C2410_LCDCON5_BPP24BL (1<<12)
+#define S3C2410_LCDCON5_FRM565 (1<<11)
+#define S3C2410_LCDCON5_INVVCLK (1<<10)
#define S3C2410_LCDCON5_INVVLINE (1<<9)
#define S3C2410_LCDCON5_INVVFRAME (1<<8)
-#define S3C2410_LCDCON5_INVVD (1<<7)
-#define S3C2410_LCDCON5_INVVDEN (1<<6)
+#define S3C2410_LCDCON5_INVVD (1<<7)
+#define S3C2410_LCDCON5_INVVDEN (1<<6)
#define S3C2410_LCDCON5_INVPWREN (1<<5)
-#define S3C2410_LCDCON5_INVLEND (1<<4)
-#define S3C2410_LCDCON5_PWREN (1<<3)
-#define S3C2410_LCDCON5_ENLEND (1<<2)
-#define S3C2410_LCDCON5_BSWP (1<<1)
-#define S3C2410_LCDCON5_HWSWP (1<<0)
-#define S3C2410_LCDINT_FRSYNC (1<<1)
+#define S3C2410_LCDCON5_INVLEND (1<<4)
+#define S3C2410_LCDCON5_PWREN (1<<3)
+#define S3C2410_LCDCON5_ENLEND (1<<2)
+#define S3C2410_LCDCON5_BSWP (1<<1)
+#define S3C2410_LCDCON5_HWSWP (1<<0)
+#define S3C2410_LCDINT_FRSYNC (1<<1)
static volatile rt_uint16_t _rt_framebuffer[RT_HW_LCD_HEIGHT][RT_HW_LCD_WIDTH];
//static volatile rt_uint16_t _rt_hw_framebuffer[RT_HW_LCD_HEIGHT][RT_HW_LCD_WIDTH];
@@ -127,123 +127,123 @@ static void lcd_power_enable(int invpwren, int pwren)
static void lcd_envid_on_off(int onoff)
{
- if(onoff==1)
- /*ENVID=ON*/
- LCDCON1|=1;
- else
- /*ENVID Off*/
- LCDCON1 =LCDCON1 & 0x3fffe;
+ if(onoff==1)
+ /*ENVID=ON*/
+ LCDCON1|=1;
+ else
+ /*ENVID Off*/
+ LCDCON1 =LCDCON1 & 0x3fffe;
}
//********************** BOARD LCD backlight ****************************
static void LcdBkLtSet(rt_uint32_t HiRatio)
{
-#define FREQ_PWM1 1000
- if(!HiRatio)
- {
- GPBCON = GPBCON & (~(3<<2)) | (1<<2) ; //GPB1����Ϊoutput
- GPBDAT &= ~(1<<1);
- return;
- }
- GPBCON = GPBCON & (~(3<<2)) | (2<<2) ;
+#define FREQ_PWM1 1000
+ if(!HiRatio)
+ {
+ GPBCON = GPBCON & (~(3<<2)) | (1<<2) ;
+ GPBDAT &= ~(1<<1);
+ return;
+ }
+ GPBCON = GPBCON & (~(3<<2)) | (2<<2) ;
- if( HiRatio > 100 ) HiRatio = 100 ;
+ if( HiRatio > 100 ) HiRatio = 100 ;
- TCON = TCON & (~(0xf<<8)) ; // clear manual update bit, stop Timer1
+ TCON = TCON & (~(0xf<<8)) ; // clear manual update bit, stop Timer1
- TCFG0 &= 0xffffff00; // set Timer 0&1 prescaler 0
- TCFG0 |= 15; //prescaler = 15+1
+ TCFG0 &= 0xffffff00; // set Timer 0&1 prescaler 0
+ TCFG0 |= 15; //prescaler = 15+1
- TCFG1 &= 0xffffff0f; // set Timer 1 MUX 1/16
- TCFG1 |= 0x00000030; // set Timer 1 MUX 1/16
+ TCFG1 &= 0xffffff0f; // set Timer 1 MUX 1/16
+ TCFG1 |= 0x00000030; // set Timer 1 MUX 1/16
- TCNTB1 = ( 100000000>>8 )/FREQ_PWM1; //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
- TCMPB1 = ( TCNTB1*(100-HiRatio))/100 ; //if set inverter on, when TCNT2<=TCMP2, TOUT is low, TCNT2>TCMP2, TOUT is high
+ TCNTB1 = ( 100000000>>8 )/FREQ_PWM1; //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
+ TCMPB1 = ( TCNTB1*(100-HiRatio))/100 ; //if set inverter on, when TCNT2<=TCMP2, TOUT is low, TCNT2>TCMP2, TOUT is high
- TCON = TCON & (~(0xf<<8)) | (0x0e<<8) ;
- TCON = TCON & (~(0xf<<8)) | (0x0d<<8) ;
+ TCON = TCON & (~(0xf<<8)) | (0x0e<<8) ;
+ TCON = TCON & (~(0xf<<8)) | (0x0d<<8) ;
}
/* RT-Thread Device Interface */
static rt_err_t rt_lcd_init (rt_device_t dev)
-{
- GPB1_TO_OUT();
- GPB1_TO_1();
+{
+ GPB1_TO_OUT();
+ GPB1_TO_1();
- GPCUP = 0x00000000;
- GPCCON = 0xaaaa02a9;
+ GPCUP = 0x00000000;
+ GPCCON = 0xaaaa02a9;
- GPDUP = 0x00000000;
- GPDCON = 0xaaaaaaaa;
+ GPDUP = 0x00000000;
+ GPDCON = 0xaaaaaaaa;
-#define M5D(n) ((n)&0x1fffff)
+#define M5D(n) ((n)&0x1fffff)
#define LCD_ADDR ((rt_uint32_t)_rt_framebuffer)
- LCDCON1 = (LCD_PIXCLOCK << 8) | (3 << 5) | (12 << 1);
- LCDCON2 = (LCD_UPPER_MARGIN << 24) | ((LCD_HEIGHT - 1) << 14) | (LCD_LOWER_MARGIN << 6) | (LCD_VSYNC_LEN << 0);
- LCDCON3 = (LCD_RIGHT_MARGIN << 19) | ((LCD_WIDTH - 1) << 8) | (LCD_LEFT_MARGIN << 0);
- LCDCON4 = (13 << 8) | (LCD_HSYNC_LEN << 0);
+ LCDCON1 = (LCD_PIXCLOCK << 8) | (3 << 5) | (12 << 1);
+ LCDCON2 = (LCD_UPPER_MARGIN << 24) | ((LCD_HEIGHT - 1) << 14) | (LCD_LOWER_MARGIN << 6) | (LCD_VSYNC_LEN << 0);
+ LCDCON3 = (LCD_RIGHT_MARGIN << 19) | ((LCD_WIDTH - 1) << 8) | (LCD_LEFT_MARGIN << 0);
+ LCDCON4 = (13 << 8) | (LCD_HSYNC_LEN << 0);
#if !defined(LCD_CON5)
#define LCD_CON5 ((1<<11) | (1 << 9) | (1 << 8) | (1 << 3) | (1 << 0))
#endif
- LCDCON5 = LCD_CON5;
+ LCDCON5 = LCD_CON5;
- LCDSADDR1 = ((LCD_ADDR >> 22) << 21) | ((M5D(LCD_ADDR >> 1)) << 0);
- LCDSADDR2 = M5D((LCD_ADDR + LCD_WIDTH * LCD_HEIGHT * 2) >> 1);
- LCDSADDR3 = LCD_WIDTH;
+ LCDSADDR1 = ((LCD_ADDR >> 22) << 21) | ((M5D(LCD_ADDR >> 1)) << 0);
+ LCDSADDR2 = M5D((LCD_ADDR + LCD_WIDTH * LCD_HEIGHT * 2) >> 1);
+ LCDSADDR3 = LCD_WIDTH;
- LCDINTMSK |= (3);
- LPCSEL &= (~7) ;
- TPAL=0;
+ LCDINTMSK |= (3);
+ LPCSEL &= (~7) ;
+ TPAL=0;
- LcdBkLtSet(70) ;
- lcd_power_enable(0, 1);
- lcd_envid_on_off(1);
+ LcdBkLtSet(70) ;
+ lcd_power_enable(0, 1);
+ lcd_envid_on_off(1);
- return RT_EOK;
+ return RT_EOK;
}
static rt_err_t rt_lcd_control (rt_device_t dev, int cmd, void *args)
{
- switch (cmd)
- {
- case RTGRAPHIC_CTRL_RECT_UPDATE:
- break;
- case RTGRAPHIC_CTRL_POWERON:
- break;
- case RTGRAPHIC_CTRL_POWEROFF:
- break;
- case RTGRAPHIC_CTRL_GET_INFO:
- rt_memcpy(args, &_lcd_info, sizeof(_lcd_info));
- break;
- case RTGRAPHIC_CTRL_SET_MODE:
- break;
- }
+ switch (cmd)
+ {
+ case RTGRAPHIC_CTRL_RECT_UPDATE:
+ break;
+ case RTGRAPHIC_CTRL_POWERON:
+ break;
+ case RTGRAPHIC_CTRL_POWEROFF:
+ break;
+ case RTGRAPHIC_CTRL_GET_INFO:
+ rt_memcpy(args, &_lcd_info, sizeof(_lcd_info));
+ break;
+ case RTGRAPHIC_CTRL_SET_MODE:
+ break;
+ }
- return RT_EOK;
+ return RT_EOK;
}
int rt_hw_lcd_init(void)
{
- rt_device_t lcd = rt_malloc(sizeof(struct rt_device));
- if (lcd == RT_NULL)
+ rt_device_t lcd = rt_malloc(sizeof(struct rt_device));
+ if (lcd == RT_NULL)
return -RT_ERROR; /* no memory yet */
- _lcd_info.bits_per_pixel = 16;
- _lcd_info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565P;
- _lcd_info.framebuffer = (void*)_rt_framebuffer;
- _lcd_info.width = LCD_WIDTH;
- _lcd_info.height = LCD_HEIGHT;
+ _lcd_info.bits_per_pixel = 16;
+ _lcd_info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565P;
+ _lcd_info.framebuffer = (void*)_rt_framebuffer;
+ _lcd_info.width = LCD_WIDTH;
+ _lcd_info.height = LCD_HEIGHT;
- /* init device structure */
- lcd->type = RT_Device_Class_Unknown;
- lcd->init = rt_lcd_init;
- lcd->open = RT_NULL;
- lcd->close = RT_NULL;
- lcd->control = rt_lcd_control;
- lcd->user_data = (void*)&_lcd_info;
-
- /* register lcd device to RT-Thread */
- rt_device_register(lcd, "lcd", RT_DEVICE_FLAG_RDWR);
+ /* init device structure */
+ lcd->type = RT_Device_Class_Unknown;
+ lcd->init = rt_lcd_init;
+ lcd->open = RT_NULL;
+ lcd->close = RT_NULL;
+ lcd->control = rt_lcd_control;
+ lcd->user_data = (void*)&_lcd_info;
+
+ /* register lcd device to RT-Thread */
+ rt_device_register(lcd, "lcd", RT_DEVICE_FLAG_RDWR);
}
INIT_BOARD_EXPORT(rt_hw_lcd_init);
diff --git a/bsp/mini2440/drivers/lcd_n35.c b/bsp/mini2440/drivers/lcd_n35.c
index 57d792ea39..1a3af23c09 100644
--- a/bsp/mini2440/drivers/lcd_n35.c
+++ b/bsp/mini2440/drivers/lcd_n35.c
@@ -34,82 +34,82 @@
#define SCR_XSIZE LCD_WIDTH
#define SCR_YSIZE LCD_HEIGHT
-#define RT_HW_LCD_WIDTH LCD_WIDTH
-#define RT_HW_LCD_HEIGHT LCD_HEIGHT
+#define RT_HW_LCD_WIDTH LCD_WIDTH
+#define RT_HW_LCD_HEIGHT LCD_HEIGHT
-#define MVAL (13)
-#define MVAL_USED (0) //0=each frame 1=rate by MVAL
-#define INVVDEN (1) //0=normal 1=inverted
-#define BSWP (0) //Byte swap control
-#define HWSWP (1) //Half word swap control
+#define MVAL (13)
+#define MVAL_USED (0) //0=each frame 1=rate by MVAL
+#define INVVDEN (1) //0=normal 1=inverted
+#define BSWP (0) //Byte swap control
+#define HWSWP (1) //Half word swap control
-#define GPB1_TO_OUT() (GPBUP &= 0xfffd, GPBCON &= 0xfffffff3, GPBCON |= 0x00000004)
-#define GPB1_TO_1() (GPBDAT |= 0x0002)
-#define GPB1_TO_0() (GPBDAT &= 0xfffd)
+#define GPB1_TO_OUT() (GPBUP &= 0xfffd, GPBCON &= 0xfffffff3, GPBCON |= 0x00000004)
+#define GPB1_TO_1() (GPBDAT |= 0x0002)
+#define GPB1_TO_0() (GPBDAT &= 0xfffd)
#define S3C2410_LCDCON1_CLKVAL(x) ((x) << 8)
-#define S3C2410_LCDCON1_MMODE (1<<7)
-#define S3C2410_LCDCON1_DSCAN4 (0<<5)
-#define S3C2410_LCDCON1_STN4 (1<<5)
-#define S3C2410_LCDCON1_STN8 (2<<5)
-#define S3C2410_LCDCON1_TFT (3<<5)
+#define S3C2410_LCDCON1_MMODE (1<<7)
+#define S3C2410_LCDCON1_DSCAN4 (0<<5)
+#define S3C2410_LCDCON1_STN4 (1<<5)
+#define S3C2410_LCDCON1_STN8 (2<<5)
+#define S3C2410_LCDCON1_TFT (3<<5)
-#define S3C2410_LCDCON1_STN1BPP (0<<1)
+#define S3C2410_LCDCON1_STN1BPP (0<<1)
#define S3C2410_LCDCON1_STN2GREY (1<<1)
#define S3C2410_LCDCON1_STN4GREY (2<<1)
-#define S3C2410_LCDCON1_STN8BPP (3<<1)
+#define S3C2410_LCDCON1_STN8BPP (3<<1)
#define S3C2410_LCDCON1_STN12BPP (4<<1)
-#define S3C2410_LCDCON1_TFT1BPP (8<<1)
-#define S3C2410_LCDCON1_TFT2BPP (9<<1)
-#define S3C2410_LCDCON1_TFT4BPP (10<<1)
-#define S3C2410_LCDCON1_TFT8BPP (11<<1)
+#define S3C2410_LCDCON1_TFT1BPP (8<<1)
+#define S3C2410_LCDCON1_TFT2BPP (9<<1)
+#define S3C2410_LCDCON1_TFT4BPP (10<<1)
+#define S3C2410_LCDCON1_TFT8BPP (11<<1)
#define S3C2410_LCDCON1_TFT16BPP (12<<1)
#define S3C2410_LCDCON1_TFT24BPP (13<<1)
-#define S3C2410_LCDCON1_ENVID (1)
+#define S3C2410_LCDCON1_ENVID (1)
#define S3C2410_LCDCON1_MODEMASK 0x1E
-#define S3C2410_LCDCON2_VBPD(x) ((x) << 24)
+#define S3C2410_LCDCON2_VBPD(x) ((x) << 24)
#define S3C2410_LCDCON2_LINEVAL(x) ((x) << 14)
-#define S3C2410_LCDCON2_VFPD(x) ((x) << 6)
-#define S3C2410_LCDCON2_VSPW(x) ((x) << 0)
+#define S3C2410_LCDCON2_VFPD(x) ((x) << 6)
+#define S3C2410_LCDCON2_VSPW(x) ((x) << 0)
#define S3C2410_LCDCON2_GET_VBPD(x) ( ((x) >> 24) & 0xFF)
#define S3C2410_LCDCON2_GET_VFPD(x) ( ((x) >> 6) & 0xFF)
#define S3C2410_LCDCON2_GET_VSPW(x) ( ((x) >> 0) & 0x3F)
-#define S3C2410_LCDCON3_HBPD(x) ((x) << 19)
-#define S3C2410_LCDCON3_WDLY(x) ((x) << 19)
+#define S3C2410_LCDCON3_HBPD(x) ((x) << 19)
+#define S3C2410_LCDCON3_WDLY(x) ((x) << 19)
#define S3C2410_LCDCON3_HOZVAL(x) ((x) << 8)
-#define S3C2410_LCDCON3_HFPD(x) ((x) << 0)
+#define S3C2410_LCDCON3_HFPD(x) ((x) << 0)
#define S3C2410_LCDCON3_LINEBLANK(x)((x) << 0)
#define S3C2410_LCDCON3_GET_HBPD(x) ( ((x) >> 19) & 0x7F)
#define S3C2410_LCDCON3_GET_HFPD(x) ( ((x) >> 0) & 0xFF)
-#define S3C2410_LCDCON4_MVAL(x) ((x) << 8)
-#define S3C2410_LCDCON4_HSPW(x) ((x) << 0)
-#define S3C2410_LCDCON4_WLH(x) ((x) << 0)
+#define S3C2410_LCDCON4_MVAL(x) ((x) << 8)
+#define S3C2410_LCDCON4_HSPW(x) ((x) << 0)
+#define S3C2410_LCDCON4_WLH(x) ((x) << 0)
#define S3C2410_LCDCON4_GET_HSPW(x) ( ((x) >> 0) & 0xFF)
-#define S3C2410_LCDCON5_BPP24BL (1<<12)
-#define S3C2410_LCDCON5_FRM565 (1<<11)
-#define S3C2410_LCDCON5_INVVCLK (1<<10)
+#define S3C2410_LCDCON5_BPP24BL (1<<12)
+#define S3C2410_LCDCON5_FRM565 (1<<11)
+#define S3C2410_LCDCON5_INVVCLK (1<<10)
#define S3C2410_LCDCON5_INVVLINE (1<<9)
#define S3C2410_LCDCON5_INVVFRAME (1<<8)
-#define S3C2410_LCDCON5_INVVD (1<<7)
-#define S3C2410_LCDCON5_INVVDEN (1<<6)
+#define S3C2410_LCDCON5_INVVD (1<<7)
+#define S3C2410_LCDCON5_INVVDEN (1<<6)
#define S3C2410_LCDCON5_INVPWREN (1<<5)
-#define S3C2410_LCDCON5_INVLEND (1<<4)
-#define S3C2410_LCDCON5_PWREN (1<<3)
-#define S3C2410_LCDCON5_ENLEND (1<<2)
-#define S3C2410_LCDCON5_BSWP (1<<1)
-#define S3C2410_LCDCON5_HWSWP (1<<0)
+#define S3C2410_LCDCON5_INVLEND (1<<4)
+#define S3C2410_LCDCON5_PWREN (1<<3)
+#define S3C2410_LCDCON5_ENLEND (1<<2)
+#define S3C2410_LCDCON5_BSWP (1<<1)
+#define S3C2410_LCDCON5_HWSWP (1<<0)
-#define S3C2410_LCDINT_FRSYNC (1<<1)
+#define S3C2410_LCDINT_FRSYNC (1<<1)
static volatile rt_uint16_t _rt_framebuffer[RT_HW_LCD_HEIGHT][RT_HW_LCD_WIDTH];
//static volatile rt_uint16_t _rt_hw_framebuffer[RT_HW_LCD_HEIGHT][RT_HW_LCD_WIDTH];
@@ -128,61 +128,61 @@ static void lcd_power_enable(int invpwren, int pwren)
static void lcd_envid_on_off(int onoff)
{
- if(onoff==1)
- /*ENVID=ON*/
- LCDCON1|=1;
- else
- /*ENVID Off*/
- LCDCON1 =LCDCON1 & 0x3fffe;
+ if(onoff==1)
+ /*ENVID=ON*/
+ LCDCON1|=1;
+ else
+ /*ENVID Off*/
+ LCDCON1 =LCDCON1 & 0x3fffe;
}
//********************** BOARD LCD backlight ****************************
static void LcdBkLtSet(rt_uint32_t HiRatio)
{
-#define FREQ_PWM1 1000
- if(!HiRatio)
- {
- GPBCON = GPBCON & (~(3<<2)) | (1<<2) ; //GPB1����Ϊoutput
- GPBDAT &= ~(1<<1);
- return;
- }
- GPBCON = GPBCON & (~(3<<2)) | (2<<2) ;
+#define FREQ_PWM1 1000
+ if(!HiRatio)
+ {
+ GPBCON = GPBCON & (~(3<<2)) | (1<<2) ;
+ GPBDAT &= ~(1<<1);
+ return;
+ }
+ GPBCON = GPBCON & (~(3<<2)) | (2<<2) ;
- if( HiRatio > 100 ) HiRatio = 100 ;
+ if( HiRatio > 100 ) HiRatio = 100 ;
- TCON = TCON & (~(0xf<<8)) ; // clear manual update bit, stop Timer1
+ TCON = TCON & (~(0xf<<8)) ; // clear manual update bit, stop Timer1
- TCFG0 &= 0xffffff00; // set Timer 0&1 prescaler 0
- TCFG0 |= 15; //prescaler = 15+1
+ TCFG0 &= 0xffffff00; // set Timer 0&1 prescaler 0
+ TCFG0 |= 15; //prescaler = 15+1
- TCFG1 &= 0xffffff0f; // set Timer 1 MUX 1/16
- TCFG1 |= 0x00000030; // set Timer 1 MUX 1/16
+ TCFG1 &= 0xffffff0f; // set Timer 1 MUX 1/16
+ TCFG1 |= 0x00000030; // set Timer 1 MUX 1/16
- TCNTB1 = ( 100000000>>8 )/FREQ_PWM1; //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
- TCMPB1 = ( TCNTB1*(100-HiRatio))/100 ; //if set inverter on, when TCNT2<=TCMP2, TOUT is low, TCNT2>TCMP2, TOUT is high
+ TCNTB1 = ( 100000000>>8 )/FREQ_PWM1; //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
+ TCMPB1 = ( TCNTB1*(100-HiRatio))/100 ; //if set inverter on, when TCNT2<=TCMP2, TOUT is low, TCNT2>TCMP2, TOUT is high
- TCON = TCON & (~(0xf<<8)) | (0x0e<<8) ;
- TCON = TCON & (~(0xf<<8)) | (0x0d<<8) ;
+ TCON = TCON & (~(0xf<<8)) | (0x0e<<8) ;
+ TCON = TCON & (~(0xf<<8)) | (0x0d<<8) ;
}
/* RT-Thread Device Interface */
static rt_err_t rt_lcd_init (rt_device_t dev)
-{
- GPB1_TO_OUT();
- GPB1_TO_1();
+{
+ GPB1_TO_OUT();
+ GPB1_TO_1();
- GPCUP = 0x00000000;
- GPCCON = 0xaaaa02a9;
+ GPCUP = 0x00000000;
+ GPCCON = 0xaaaa02a9;
- GPDUP = 0x00000000;
- GPDCON = 0xaaaaaaaa;
+ GPDUP = 0x00000000;
+ GPDCON = 0xaaaaaaaa;
-#define M5D(n) ((n)&0x1fffff)
+#define M5D(n) ((n)&0x1fffff)
#define LCD_ADDR ((rt_uint32_t)_rt_framebuffer)
- LCDCON1 = (LCD_PIXCLOCK << 8) | (3 << 5) | (12 << 1);
- LCDCON2 = (LCD_UPPER_MARGIN << 24) | ((LCD_HEIGHT - 1) << 14) | (LCD_LOWER_MARGIN << 6) | (LCD_VSYNC_LEN << 0);
- LCDCON3 = (LCD_RIGHT_MARGIN << 19) | ((LCD_WIDTH - 1) << 8) | (LCD_LEFT_MARGIN << 0);
- LCDCON4 = (13 << 8) | (LCD_HSYNC_LEN << 0);
+ LCDCON1 = (LCD_PIXCLOCK << 8) | (3 << 5) | (12 << 1);
+ LCDCON2 = (LCD_UPPER_MARGIN << 24) | ((LCD_HEIGHT - 1) << 14) | (LCD_LOWER_MARGIN << 6) | (LCD_VSYNC_LEN << 0);
+ LCDCON3 = (LCD_RIGHT_MARGIN << 19) | ((LCD_WIDTH - 1) << 8) | (LCD_LEFT_MARGIN << 0);
+ LCDCON4 = (13 << 8) | (LCD_HSYNC_LEN << 0);
#if !defined(LCD_CON5)
#define LCD_CON5 ((1<<11) | (1 << 9) | (1 << 8) | (1 << 3) | (1 << 0))
#endif
@@ -192,59 +192,59 @@ static rt_err_t rt_lcd_init (rt_device_t dev)
LCDSADDR2 = M5D((LCD_ADDR + LCD_WIDTH * LCD_HEIGHT * 2) >> 1);
LCDSADDR3 = LCD_WIDTH;
- LCDINTMSK |= (3);
- LPCSEL &= (~7) ;
- TPAL=0;
+ LCDINTMSK |= (3);
+ LPCSEL &= (~7) ;
+ TPAL=0;
- LcdBkLtSet(70) ;
- lcd_power_enable(0, 1);
- lcd_envid_on_off(1);
+ LcdBkLtSet(70) ;
+ lcd_power_enable(0, 1);
+ lcd_envid_on_off(1);
- return RT_EOK;
+ return RT_EOK;
}
static rt_err_t rt_lcd_control (rt_device_t dev, int cmd, void *args)
{
- switch (cmd)
- {
- case RTGRAPHIC_CTRL_RECT_UPDATE:
- break;
- case RTGRAPHIC_CTRL_POWERON:
- break;
- case RTGRAPHIC_CTRL_POWEROFF:
- break;
- case RTGRAPHIC_CTRL_GET_INFO:
- rt_memcpy(args, &_lcd_info, sizeof(_lcd_info));
- break;
- case RTGRAPHIC_CTRL_SET_MODE:
- break;
- }
+ switch (cmd)
+ {
+ case RTGRAPHIC_CTRL_RECT_UPDATE:
+ break;
+ case RTGRAPHIC_CTRL_POWERON:
+ break;
+ case RTGRAPHIC_CTRL_POWEROFF:
+ break;
+ case RTGRAPHIC_CTRL_GET_INFO:
+ rt_memcpy(args, &_lcd_info, sizeof(_lcd_info));
+ break;
+ case RTGRAPHIC_CTRL_SET_MODE:
+ break;
+ }
- return RT_EOK;
+ return RT_EOK;
}
int rt_hw_lcd_init(void)
{
- rt_device_t lcd = rt_malloc(sizeof(struct rt_device));
- if (lcd == RT_NULL)
+ rt_device_t lcd = rt_malloc(sizeof(struct rt_device));
+ if (lcd == RT_NULL)
return -RT_ERROR; /* no memory yet */
- _lcd_info.bits_per_pixel = 16;
- _lcd_info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565P;
- _lcd_info.framebuffer = (void*)_rt_framebuffer;
- _lcd_info.width = LCD_WIDTH;
- _lcd_info.height = LCD_HEIGHT;
+ _lcd_info.bits_per_pixel = 16;
+ _lcd_info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565P;
+ _lcd_info.framebuffer = (void*)_rt_framebuffer;
+ _lcd_info.width = LCD_WIDTH;
+ _lcd_info.height = LCD_HEIGHT;
- /* init device structure */
- lcd->type = RT_Device_Class_Unknown;
- lcd->init = rt_lcd_init;
- lcd->open = RT_NULL;
- lcd->close = RT_NULL;
- lcd->control = rt_lcd_control;
- lcd->user_data = (void*)&_lcd_info;
-
- /* register lcd device to RT-Thread */
- rt_device_register(lcd, "lcd", RT_DEVICE_FLAG_RDWR);
+ /* init device structure */
+ lcd->type = RT_Device_Class_Unknown;
+ lcd->init = rt_lcd_init;
+ lcd->open = RT_NULL;
+ lcd->close = RT_NULL;
+ lcd->control = rt_lcd_control;
+ lcd->user_data = (void*)&_lcd_info;
+
+ /* register lcd device to RT-Thread */
+ rt_device_register(lcd, "lcd", RT_DEVICE_FLAG_RDWR);
}
INIT_BOARD_EXPORT(rt_hw_lcd_init);
diff --git a/bsp/mini2440/drivers/lcd_t35.c b/bsp/mini2440/drivers/lcd_t35.c
index fdcab887f5..c13a3c030f 100644
--- a/bsp/mini2440/drivers/lcd_t35.c
+++ b/bsp/mini2440/drivers/lcd_t35.c
@@ -34,82 +34,82 @@
#define SCR_XSIZE LCD_WIDTH
#define SCR_YSIZE LCD_HEIGHT
-#define RT_HW_LCD_WIDTH LCD_WIDTH
-#define RT_HW_LCD_HEIGHT LCD_HEIGHT
+#define RT_HW_LCD_WIDTH LCD_WIDTH
+#define RT_HW_LCD_HEIGHT LCD_HEIGHT
-#define MVAL (13)
-#define MVAL_USED (0) //0=each frame 1=rate by MVAL
-#define INVVDEN (1) //0=normal 1=inverted
-#define BSWP (0) //Byte swap control
-#define HWSWP (1) //Half word swap control
+#define MVAL (13)
+#define MVAL_USED (0) //0=each frame 1=rate by MVAL
+#define INVVDEN (1) //0=normal 1=inverted
+#define BSWP (0) //Byte swap control
+#define HWSWP (1) //Half word swap control
-#define GPB1_TO_OUT() (GPBUP &= 0xfffd, GPBCON &= 0xfffffff3, GPBCON |= 0x00000004)
-#define GPB1_TO_1() (GPBDAT |= 0x0002)
-#define GPB1_TO_0() (GPBDAT &= 0xfffd)
+#define GPB1_TO_OUT() (GPBUP &= 0xfffd, GPBCON &= 0xfffffff3, GPBCON |= 0x00000004)
+#define GPB1_TO_1() (GPBDAT |= 0x0002)
+#define GPB1_TO_0() (GPBDAT &= 0xfffd)
#define S3C2410_LCDCON1_CLKVAL(x) ((x) << 8)
-#define S3C2410_LCDCON1_MMODE (1<<7)
-#define S3C2410_LCDCON1_DSCAN4 (0<<5)
-#define S3C2410_LCDCON1_STN4 (1<<5)
-#define S3C2410_LCDCON1_STN8 (2<<5)
-#define S3C2410_LCDCON1_TFT (3<<5)
+#define S3C2410_LCDCON1_MMODE (1<<7)
+#define S3C2410_LCDCON1_DSCAN4 (0<<5)
+#define S3C2410_LCDCON1_STN4 (1<<5)
+#define S3C2410_LCDCON1_STN8 (2<<5)
+#define S3C2410_LCDCON1_TFT (3<<5)
-#define S3C2410_LCDCON1_STN1BPP (0<<1)
+#define S3C2410_LCDCON1_STN1BPP (0<<1)
#define S3C2410_LCDCON1_STN2GREY (1<<1)
#define S3C2410_LCDCON1_STN4GREY (2<<1)
-#define S3C2410_LCDCON1_STN8BPP (3<<1)
+#define S3C2410_LCDCON1_STN8BPP (3<<1)
#define S3C2410_LCDCON1_STN12BPP (4<<1)
-#define S3C2410_LCDCON1_TFT1BPP (8<<1)
-#define S3C2410_LCDCON1_TFT2BPP (9<<1)
-#define S3C2410_LCDCON1_TFT4BPP (10<<1)
-#define S3C2410_LCDCON1_TFT8BPP (11<<1)
+#define S3C2410_LCDCON1_TFT1BPP (8<<1)
+#define S3C2410_LCDCON1_TFT2BPP (9<<1)
+#define S3C2410_LCDCON1_TFT4BPP (10<<1)
+#define S3C2410_LCDCON1_TFT8BPP (11<<1)
#define S3C2410_LCDCON1_TFT16BPP (12<<1)
#define S3C2410_LCDCON1_TFT24BPP (13<<1)
-#define S3C2410_LCDCON1_ENVID (1)
+#define S3C2410_LCDCON1_ENVID (1)
#define S3C2410_LCDCON1_MODEMASK 0x1E
-#define S3C2410_LCDCON2_VBPD(x) ((x) << 24)
+#define S3C2410_LCDCON2_VBPD(x) ((x) << 24)
#define S3C2410_LCDCON2_LINEVAL(x) ((x) << 14)
-#define S3C2410_LCDCON2_VFPD(x) ((x) << 6)
-#define S3C2410_LCDCON2_VSPW(x) ((x) << 0)
+#define S3C2410_LCDCON2_VFPD(x) ((x) << 6)
+#define S3C2410_LCDCON2_VSPW(x) ((x) << 0)
#define S3C2410_LCDCON2_GET_VBPD(x) ( ((x) >> 24) & 0xFF)
#define S3C2410_LCDCON2_GET_VFPD(x) ( ((x) >> 6) & 0xFF)
#define S3C2410_LCDCON2_GET_VSPW(x) ( ((x) >> 0) & 0x3F)
-#define S3C2410_LCDCON3_HBPD(x) ((x) << 19)
-#define S3C2410_LCDCON3_WDLY(x) ((x) << 19)
+#define S3C2410_LCDCON3_HBPD(x) ((x) << 19)
+#define S3C2410_LCDCON3_WDLY(x) ((x) << 19)
#define S3C2410_LCDCON3_HOZVAL(x) ((x) << 8)
-#define S3C2410_LCDCON3_HFPD(x) ((x) << 0)
+#define S3C2410_LCDCON3_HFPD(x) ((x) << 0)
#define S3C2410_LCDCON3_LINEBLANK(x)((x) << 0)
#define S3C2410_LCDCON3_GET_HBPD(x) ( ((x) >> 19) & 0x7F)
#define S3C2410_LCDCON3_GET_HFPD(x) ( ((x) >> 0) & 0xFF)
-#define S3C2410_LCDCON4_MVAL(x) ((x) << 8)
-#define S3C2410_LCDCON4_HSPW(x) ((x) << 0)
-#define S3C2410_LCDCON4_WLH(x) ((x) << 0)
+#define S3C2410_LCDCON4_MVAL(x) ((x) << 8)
+#define S3C2410_LCDCON4_HSPW(x) ((x) << 0)
+#define S3C2410_LCDCON4_WLH(x) ((x) << 0)
#define S3C2410_LCDCON4_GET_HSPW(x) ( ((x) >> 0) & 0xFF)
-#define S3C2410_LCDCON5_BPP24BL (1<<12)
-#define S3C2410_LCDCON5_FRM565 (1<<11)
-#define S3C2410_LCDCON5_INVVCLK (1<<10)
+#define S3C2410_LCDCON5_BPP24BL (1<<12)
+#define S3C2410_LCDCON5_FRM565 (1<<11)
+#define S3C2410_LCDCON5_INVVCLK (1<<10)
#define S3C2410_LCDCON5_INVVLINE (1<<9)
#define S3C2410_LCDCON5_INVVFRAME (1<<8)
-#define S3C2410_LCDCON5_INVVD (1<<7)
-#define S3C2410_LCDCON5_INVVDEN (1<<6)
+#define S3C2410_LCDCON5_INVVD (1<<7)
+#define S3C2410_LCDCON5_INVVDEN (1<<6)
#define S3C2410_LCDCON5_INVPWREN (1<<5)
-#define S3C2410_LCDCON5_INVLEND (1<<4)
-#define S3C2410_LCDCON5_PWREN (1<<3)
-#define S3C2410_LCDCON5_ENLEND (1<<2)
-#define S3C2410_LCDCON5_BSWP (1<<1)
-#define S3C2410_LCDCON5_HWSWP (1<<0)
+#define S3C2410_LCDCON5_INVLEND (1<<4)
+#define S3C2410_LCDCON5_PWREN (1<<3)
+#define S3C2410_LCDCON5_ENLEND (1<<2)
+#define S3C2410_LCDCON5_BSWP (1<<1)
+#define S3C2410_LCDCON5_HWSWP (1<<0)
-#define S3C2410_LCDINT_FRSYNC (1<<1)
+#define S3C2410_LCDINT_FRSYNC (1<<1)
volatile rt_uint16_t _rt_framebuffer[RT_HW_LCD_HEIGHT][RT_HW_LCD_WIDTH];
//volatile rt_uint16_t _rt_hw_framebuffer[RT_HW_LCD_HEIGHT][RT_HW_LCD_WIDTH];
@@ -128,124 +128,124 @@ static void lcd_power_enable(int invpwren, int pwren)
static void lcd_envid_on_off(int onoff)
{
- if(onoff==1)
- /*ENVID=ON*/
- LCDCON1|=1;
- else
- /*ENVID Off*/
- LCDCON1 =LCDCON1 & 0x3fffe;
+ if(onoff==1)
+ /*ENVID=ON*/
+ LCDCON1|=1;
+ else
+ /*ENVID Off*/
+ LCDCON1 =LCDCON1 & 0x3fffe;
}
//********************** BOARD LCD backlight ****************************
static void LcdBkLtSet(rt_uint32_t HiRatio)
{
-#define FREQ_PWM1 1000
- if(!HiRatio)
- {
- GPBCON = GPBCON & (~(3<<2)) | (1<<2) ; //GPB1����Ϊoutput
- GPBDAT &= ~(1<<1);
- return;
- }
- GPBCON = GPBCON & (~(3<<2)) | (2<<2) ;
+#define FREQ_PWM1 1000
+ if(!HiRatio)
+ {
+ GPBCON = GPBCON & (~(3<<2)) | (1<<2) ;
+ GPBDAT &= ~(1<<1);
+ return;
+ }
+ GPBCON = GPBCON & (~(3<<2)) | (2<<2) ;
- if( HiRatio > 100 ) HiRatio = 100 ;
+ if( HiRatio > 100 ) HiRatio = 100 ;
- TCON = TCON & (~(0xf<<8)) ; // clear manual update bit, stop Timer1
+ TCON = TCON & (~(0xf<<8)) ; // clear manual update bit, stop Timer1
- TCFG0 &= 0xffffff00; // set Timer 0&1 prescaler 0
- TCFG0 |= 15; //prescaler = 15+1
+ TCFG0 &= 0xffffff00; // set Timer 0&1 prescaler 0
+ TCFG0 |= 15; //prescaler = 15+1
- TCFG1 &= 0xffffff0f; // set Timer 1 MUX 1/16
- TCFG1 |= 0x00000030; // set Timer 1 MUX 1/16
+ TCFG1 &= 0xffffff0f; // set Timer 1 MUX 1/16
+ TCFG1 |= 0x00000030; // set Timer 1 MUX 1/16
- TCNTB1 = ( 100000000>>8 )/FREQ_PWM1; //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
- TCMPB1 = ( TCNTB1*(100-HiRatio))/100 ; //if set inverter on, when TCNT2<=TCMP2, TOUT is low, TCNT2>TCMP2, TOUT is high
+ TCNTB1 = ( 100000000>>8 )/FREQ_PWM1; //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
+ TCMPB1 = ( TCNTB1*(100-HiRatio))/100 ; //if set inverter on, when TCNT2<=TCMP2, TOUT is low, TCNT2>TCMP2, TOUT is high
- TCON = TCON & (~(0xf<<8)) | (0x0e<<8) ;
- TCON = TCON & (~(0xf<<8)) | (0x0d<<8) ;
+ TCON = TCON & (~(0xf<<8)) | (0x0e<<8) ;
+ TCON = TCON & (~(0xf<<8)) | (0x0d<<8) ;
}
/* RT-Thread Device Interface */
static rt_err_t rt_lcd_init (rt_device_t dev)
-{
- GPB1_TO_OUT();
- GPB1_TO_1();
+{
+ GPB1_TO_OUT();
+ GPB1_TO_1();
- GPCUP = 0x00000000;
- GPCCON = 0xaaaa02a9;
+ GPCUP = 0x00000000;
+ GPCCON = 0xaaaa02a9;
- GPDUP = 0x00000000;
- GPDCON = 0xaaaaaaaa;
+ GPDUP = 0x00000000;
+ GPDCON = 0xaaaaaaaa;
-#define M5D(n) ((n)&0x1fffff)
+#define M5D(n) ((n)&0x1fffff)
#define LCD_ADDR ((rt_uint32_t)_rt_framebuffer)
- LCDCON1 = (LCD_PIXCLOCK << 8) | (3 << 5) | (12 << 1);
- LCDCON2 = (LCD_UPPER_MARGIN << 24) | ((LCD_HEIGHT - 1) << 14) | (LCD_LOWER_MARGIN << 6) | (LCD_VSYNC_LEN << 0);
- LCDCON3 = (LCD_RIGHT_MARGIN << 19) | ((LCD_WIDTH - 1) << 8) | (LCD_LEFT_MARGIN << 0);
- LCDCON4 = (13 << 8) | (LCD_HSYNC_LEN << 0);
+ LCDCON1 = (LCD_PIXCLOCK << 8) | (3 << 5) | (12 << 1);
+ LCDCON2 = (LCD_UPPER_MARGIN << 24) | ((LCD_HEIGHT - 1) << 14) | (LCD_LOWER_MARGIN << 6) | (LCD_VSYNC_LEN << 0);
+ LCDCON3 = (LCD_RIGHT_MARGIN << 19) | ((LCD_WIDTH - 1) << 8) | (LCD_LEFT_MARGIN << 0);
+ LCDCON4 = (13 << 8) | (LCD_HSYNC_LEN << 0);
#if !defined(LCD_CON5)
#define LCD_CON5 ((1<<11) | (1 << 9) | (1 << 8) | (1 << 3) | (1 << 0))
#endif
- LCDCON5 = LCD_CON5;
+ LCDCON5 = LCD_CON5;
- LCDSADDR1 = ((LCD_ADDR >> 22) << 21) | ((M5D(LCD_ADDR >> 1)) << 0);
- LCDSADDR2 = M5D((LCD_ADDR + LCD_WIDTH * LCD_HEIGHT * 2) >> 1);
- LCDSADDR3 = LCD_WIDTH;
+ LCDSADDR1 = ((LCD_ADDR >> 22) << 21) | ((M5D(LCD_ADDR >> 1)) << 0);
+ LCDSADDR2 = M5D((LCD_ADDR + LCD_WIDTH * LCD_HEIGHT * 2) >> 1);
+ LCDSADDR3 = LCD_WIDTH;
- LCDINTMSK |= (3);
- LPCSEL &= (~7) ;
- TPAL=0;
+ LCDINTMSK |= (3);
+ LPCSEL &= (~7) ;
+ TPAL=0;
- LcdBkLtSet(70) ;
- lcd_power_enable(0, 1);
- lcd_envid_on_off(1);
+ LcdBkLtSet(70) ;
+ lcd_power_enable(0, 1);
+ lcd_envid_on_off(1);
- return RT_EOK;
+ return RT_EOK;
}
static rt_err_t rt_lcd_control (rt_device_t dev, int cmd, void *args)
{
- switch (cmd)
- {
- case RTGRAPHIC_CTRL_RECT_UPDATE:
- break;
- case RTGRAPHIC_CTRL_POWERON:
- break;
- case RTGRAPHIC_CTRL_POWEROFF:
- break;
- case RTGRAPHIC_CTRL_GET_INFO:
- rt_memcpy(args, &_lcd_info, sizeof(_lcd_info));
- break;
- case RTGRAPHIC_CTRL_SET_MODE:
- break;
- }
+ switch (cmd)
+ {
+ case RTGRAPHIC_CTRL_RECT_UPDATE:
+ break;
+ case RTGRAPHIC_CTRL_POWERON:
+ break;
+ case RTGRAPHIC_CTRL_POWEROFF:
+ break;
+ case RTGRAPHIC_CTRL_GET_INFO:
+ rt_memcpy(args, &_lcd_info, sizeof(_lcd_info));
+ break;
+ case RTGRAPHIC_CTRL_SET_MODE:
+ break;
+ }
- return RT_EOK;
+ return RT_EOK;
}
int rt_hw_lcd_init(void)
{
- rt_device_t lcd = rt_malloc(sizeof(struct rt_device));
- if (lcd == RT_NULL)
- return -RT_ERROR; /* no memory yet */
+ rt_device_t lcd = rt_malloc(sizeof(struct rt_device));
+ if (lcd == RT_NULL)
+ return -RT_ERROR; /* no memory yet */
- _lcd_info.bits_per_pixel = 16;
- _lcd_info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565P;
- _lcd_info.framebuffer = (void*)_rt_framebuffer;
- _lcd_info.width = LCD_WIDTH;
- _lcd_info.height = LCD_HEIGHT;
+ _lcd_info.bits_per_pixel = 16;
+ _lcd_info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565P;
+ _lcd_info.framebuffer = (void*)_rt_framebuffer;
+ _lcd_info.width = LCD_WIDTH;
+ _lcd_info.height = LCD_HEIGHT;
- /* init device structure */
- lcd->type = RT_Device_Class_Unknown;
- lcd->init = rt_lcd_init;
- lcd->open = RT_NULL;
- lcd->close = RT_NULL;
- lcd->control = rt_lcd_control;
- lcd->user_data = (void*)&_lcd_info;
-
- /* register lcd device to RT-Thread */
- rt_device_register(lcd, "lcd", RT_DEVICE_FLAG_RDWR);
+ /* init device structure */
+ lcd->type = RT_Device_Class_Unknown;
+ lcd->init = rt_lcd_init;
+ lcd->open = RT_NULL;
+ lcd->close = RT_NULL;
+ lcd->control = rt_lcd_control;
+ lcd->user_data = (void*)&_lcd_info;
+
+ /* register lcd device to RT-Thread */
+ rt_device_register(lcd, "lcd", RT_DEVICE_FLAG_RDWR);
}
INIT_BOARD_EXPORT(rt_hw_lcd_init);
diff --git a/bsp/mini2440/drivers/lcd_t43.c b/bsp/mini2440/drivers/lcd_t43.c
index 54abc12f3e..42b22c36c2 100644
--- a/bsp/mini2440/drivers/lcd_t43.c
+++ b/bsp/mini2440/drivers/lcd_t43.c
@@ -1,17 +1,12 @@
/*
- * File : lcd_t43.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2010, RT-Thread Develop Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2020-04-12 Jonne first version from 4.3 inch lcd(480x272)
*/
-
#include <rtthread.h>
#include <s3c24x0.h>
@@ -36,79 +31,79 @@
#define RT_HW_LCD_WIDTH LCD_WIDTH
#define RT_HW_LCD_HEIGHT LCD_HEIGHT
-#define MVAL (13)
-#define MVAL_USED (0) //0=each frame 1=rate by MVAL
-#define INVVDEN (1) //0=normal 1=inverted
-#define BSWP (0) //Byte swap control
-#define HWSWP (1) //Half word swap control
+#define MVAL (13)
+#define MVAL_USED (0) //0=each frame 1=rate by MVAL
+#define INVVDEN (1) //0=normal 1=inverted
+#define BSWP (0) //Byte swap control
+#define HWSWP (1) //Half word swap control
-#define GPB1_TO_OUT() (GPBUP &= 0xfffd, GPBCON &= 0xfffffff3, GPBCON |= 0x00000004)
-#define GPB1_TO_1() (GPBDAT |= 0x0002)
-#define GPB1_TO_0() (GPBDAT &= 0xfffd)
+#define GPB1_TO_OUT() (GPBUP &= 0xfffd, GPBCON &= 0xfffffff3, GPBCON |= 0x00000004)
+#define GPB1_TO_1() (GPBDAT |= 0x0002)
+#define GPB1_TO_0() (GPBDAT &= 0xfffd)
#define S3C2410_LCDCON1_CLKVAL(x) ((x) << 8)
-#define S3C2410_LCDCON1_MMODE (1<<7)
-#define S3C2410_LCDCON1_DSCAN4 (0<<5)
-#define S3C2410_LCDCON1_STN4 (1<<5)
-#define S3C2410_LCDCON1_STN8 (2<<5)
-#define S3C2410_LCDCON1_TFT (3<<5)
+#define S3C2410_LCDCON1_MMODE (1<<7)
+#define S3C2410_LCDCON1_DSCAN4 (0<<5)
+#define S3C2410_LCDCON1_STN4 (1<<5)
+#define S3C2410_LCDCON1_STN8 (2<<5)
+#define S3C2410_LCDCON1_TFT (3<<5)
-#define S3C2410_LCDCON1_STN1BPP (0<<1)
+#define S3C2410_LCDCON1_STN1BPP (0<<1)
#define S3C2410_LCDCON1_STN2GREY (1<<1)
#define S3C2410_LCDCON1_STN4GREY (2<<1)
-#define S3C2410_LCDCON1_STN8BPP (3<<1)
+#define S3C2410_LCDCON1_STN8BPP (3<<1)
#define S3C2410_LCDCON1_STN12BPP (4<<1)
-#define S3C2410_LCDCON1_TFT1BPP (8<<1)
-#define S3C2410_LCDCON1_TFT2BPP (9<<1)
-#define S3C2410_LCDCON1_TFT4BPP (10<<1)
-#define S3C2410_LCDCON1_TFT8BPP (11<<1)
+#define S3C2410_LCDCON1_TFT1BPP (8<<1)
+#define S3C2410_LCDCON1_TFT2BPP (9<<1)
+#define S3C2410_LCDCON1_TFT4BPP (10<<1)
+#define S3C2410_LCDCON1_TFT8BPP (11<<1)
#define S3C2410_LCDCON1_TFT16BPP (12<<1)
#define S3C2410_LCDCON1_TFT24BPP (13<<1)
-#define S3C2410_LCDCON1_ENVID (1)
+#define S3C2410_LCDCON1_ENVID (1)
#define S3C2410_LCDCON1_MODEMASK 0x1E
-#define S3C2410_LCDCON2_VBPD(x) ((x) << 24)
+#define S3C2410_LCDCON2_VBPD(x) ((x) << 24)
#define S3C2410_LCDCON2_LINEVAL(x) ((x) << 14)
-#define S3C2410_LCDCON2_VFPD(x) ((x) << 6)
-#define S3C2410_LCDCON2_VSPW(x) ((x) << 0)
+#define S3C2410_LCDCON2_VFPD(x) ((x) << 6)
+#define S3C2410_LCDCON2_VSPW(x) ((x) << 0)
#define S3C2410_LCDCON2_GET_VBPD(x) ( ((x) >> 24) & 0xFF)
#define S3C2410_LCDCON2_GET_VFPD(x) ( ((x) >> 6) & 0xFF)
#define S3C2410_LCDCON2_GET_VSPW(x) ( ((x) >> 0) & 0x3F)
-#define S3C2410_LCDCON3_HBPD(x) ((x) << 19)
-#define S3C2410_LCDCON3_WDLY(x) ((x) << 19)
+#define S3C2410_LCDCON3_HBPD(x) ((x) << 19)
+#define S3C2410_LCDCON3_WDLY(x) ((x) << 19)
#define S3C2410_LCDCON3_HOZVAL(x) ((x) << 8)
-#define S3C2410_LCDCON3_HFPD(x) ((x) << 0)
+#define S3C2410_LCDCON3_HFPD(x) ((x) << 0)
#define S3C2410_LCDCON3_LINEBLANK(x)((x) << 0)
#define S3C2410_LCDCON3_GET_HBPD(x) ( ((x) >> 19) & 0x7F)
#define S3C2410_LCDCON3_GET_HFPD(x) ( ((x) >> 0) & 0xFF)
-#define S3C2410_LCDCON4_MVAL(x) ((x) << 8)
-#define S3C2410_LCDCON4_HSPW(x) ((x) << 0)
-#define S3C2410_LCDCON4_WLH(x) ((x) << 0)
+#define S3C2410_LCDCON4_MVAL(x) ((x) << 8)
+#define S3C2410_LCDCON4_HSPW(x) ((x) << 0)
+#define S3C2410_LCDCON4_WLH(x) ((x) << 0)
#define S3C2410_LCDCON4_GET_HSPW(x) ( ((x) >> 0) & 0xFF)
-#define S3C2410_LCDCON5_BPP24BL (1<<12)
-#define S3C2410_LCDCON5_FRM565 (1<<11)
-#define S3C2410_LCDCON5_INVVCLK (1<<10)
+#define S3C2410_LCDCON5_BPP24BL (1<<12)
+#define S3C2410_LCDCON5_FRM565 (1<<11)
+#define S3C2410_LCDCON5_INVVCLK (1<<10)
#define S3C2410_LCDCON5_INVVLINE (1<<9)
#define S3C2410_LCDCON5_INVVFRAME (1<<8)
-#define S3C2410_LCDCON5_INVVD (1<<7)
-#define S3C2410_LCDCON5_INVVDEN (1<<6)
+#define S3C2410_LCDCON5_INVVD (1<<7)
+#define S3C2410_LCDCON5_INVVDEN (1<<6)
#define S3C2410_LCDCON5_INVPWREN (1<<5)
-#define S3C2410_LCDCON5_INVLEND (1<<4)
-#define S3C2410_LCDCON5_PWREN (1<<3)
-#define S3C2410_LCDCON5_ENLEND (1<<2)
-#define S3C2410_LCDCON5_BSWP (1<<1)
-#define S3C2410_LCDCON5_HWSWP (1<<0)
+#define S3C2410_LCDCON5_INVLEND (1<<4)
+#define S3C2410_LCDCON5_PWREN (1<<3)
+#define S3C2410_LCDCON5_ENLEND (1<<2)
+#define S3C2410_LCDCON5_BSWP (1<<1)
+#define S3C2410_LCDCON5_HWSWP (1<<0)
-#define S3C2410_LCDINT_FRSYNC (1<<1)
+#define S3C2410_LCDINT_FRSYNC (1<<1)
static volatile rt_uint16_t _rt_framebuffer[RT_HW_LCD_HEIGHT][RT_HW_LCD_WIDTH];
//static volatile rt_uint16_t _rt_hw_framebuffer[RT_HW_LCD_HEIGHT][RT_HW_LCD_WIDTH];
@@ -127,61 +122,61 @@ static void lcd_power_enable(int invpwren, int pwren)
static void lcd_envid_on_off(int onoff)
{
- if(onoff==1)
- /*ENVID=ON*/
- LCDCON1|=1;
- else
- /*ENVID Off*/
- LCDCON1 =LCDCON1 & 0x3fffe;
+ if(onoff==1)
+ /*ENVID=ON*/
+ LCDCON1|=1;
+ else
+ /*ENVID Off*/
+ LCDCON1 =LCDCON1 & 0x3fffe;
}
//********************** BOARD LCD backlight ****************************
static void LcdBkLtSet(rt_uint32_t HiRatio)
{
-#define FREQ_PWM1 1000
- if(!HiRatio)
- {
- GPBCON = GPBCON & (~(3<<2)) | (1<<2) ;
- GPBDAT &= ~(1<<1);
- return;
- }
- GPBCON = GPBCON & (~(3<<2)) | (2<<2) ;
+#define FREQ_PWM1 1000
+ if(!HiRatio)
+ {
+ GPBCON = GPBCON & (~(3<<2)) | (1<<2) ;
+ GPBDAT &= ~(1<<1);
+ return;
+ }
+ GPBCON = GPBCON & (~(3<<2)) | (2<<2) ;
- if( HiRatio > 100 ) HiRatio = 100 ;
+ if( HiRatio > 100 ) HiRatio = 100 ;
- TCON = TCON & (~(0xf<<8)) ; // clear manual update bit, stop Timer1
+ TCON = TCON & (~(0xf<<8)) ; // clear manual update bit, stop Timer1
- TCFG0 &= 0xffffff00; // set Timer 0&1 prescaler 0
- TCFG0 |= 15; //prescaler = 15+1
+ TCFG0 &= 0xffffff00; // set Timer 0&1 prescaler 0
+ TCFG0 |= 15; //prescaler = 15+1
- TCFG1 &= 0xffffff0f; // set Timer 1 MUX 1/16
- TCFG1 |= 0x00000030; // set Timer 1 MUX 1/16
+ TCFG1 &= 0xffffff0f; // set Timer 1 MUX 1/16
+ TCFG1 |= 0x00000030; // set Timer 1 MUX 1/16
- TCNTB1 = ( 100000000>>8 )/FREQ_PWM1; //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
- TCMPB1 = ( TCNTB1*(100-HiRatio))/100 ; //if set inverter on, when TCNT2<=TCMP2, TOUT is low, TCNT2>TCMP2, TOUT is high
+ TCNTB1 = ( 100000000>>8 )/FREQ_PWM1; //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
+ TCMPB1 = ( TCNTB1*(100-HiRatio))/100 ; //if set inverter on, when TCNT2<=TCMP2, TOUT is low, TCNT2>TCMP2, TOUT is high
- TCON = TCON & (~(0xf<<8)) | (0x0e<<8) ;
- TCON = TCON & (~(0xf<<8)) | (0x0d<<8) ;
+ TCON = TCON & (~(0xf<<8)) | (0x0e<<8) ;
+ TCON = TCON & (~(0xf<<8)) | (0x0d<<8) ;
}
/* RT-Thread Device Interface */
static rt_err_t rt_lcd_init (rt_device_t dev)
-{
- GPB1_TO_OUT();
- GPB1_TO_1();
+{
+ GPB1_TO_OUT();
+ GPB1_TO_1();
- GPCUP = 0x00000000;
- GPCCON = 0xaaaa02a9;
+ GPCUP = 0x00000000;
+ GPCCON = 0xaaaa02a9;
- GPDUP = 0x00000000;
- GPDCON = 0xaaaaaaaa;
+ GPDUP = 0x00000000;
+ GPDCON = 0xaaaaaaaa;
-#define M5D(n) ((n)&0x1fffff)
+#define M5D(n) ((n)&0x1fffff)
#define LCD_ADDR ((rt_uint32_t)_rt_framebuffer)
- LCDCON1 = (LCD_PIXCLOCK << 8) | (3 << 5) | (12 << 1);
- LCDCON2 = ((LCD_UPPER_MARGIN - 1) << 24) | ((LCD_HEIGHT - 1) << 14) | ((LCD_LOWER_MARGIN - 1) << 6) | ((LCD_VSYNC_LEN - 1) << 0);
- LCDCON3 = ((LCD_RIGHT_MARGIN - 1) << 19) | ((LCD_WIDTH - 1) << 8) | ((LCD_LEFT_MARGIN - 1) << 0);
- LCDCON4 = (13 << 8) | ((LCD_HSYNC_LEN - 1) << 0);
+ LCDCON1 = (LCD_PIXCLOCK << 8) | (3 << 5) | (12 << 1);
+ LCDCON2 = ((LCD_UPPER_MARGIN - 1) << 24) | ((LCD_HEIGHT - 1) << 14) | ((LCD_LOWER_MARGIN - 1) << 6) | ((LCD_VSYNC_LEN - 1) << 0);
+ LCDCON3 = ((LCD_RIGHT_MARGIN - 1) << 19) | ((LCD_WIDTH - 1) << 8) | ((LCD_LEFT_MARGIN - 1) << 0);
+ LCDCON4 = (13 << 8) | ((LCD_HSYNC_LEN - 1) << 0);
#if !defined(LCD_CON5)
#define LCD_CON5 ((1<<11) | (0<<10) | (1<<9) | (1<<8) | (1<<0))
#endif
@@ -191,59 +186,59 @@ static rt_err_t rt_lcd_init (rt_device_t dev)
LCDSADDR2 = M5D((LCD_ADDR + LCD_WIDTH * LCD_HEIGHT * 2) >> 1);
LCDSADDR3 = LCD_WIDTH;
- LCDINTMSK |= (3);
- LPCSEL &= (~7) ;
- TPAL=0;
+ LCDINTMSK |= (3);
+ LPCSEL &= (~7) ;
+ TPAL=0;
- LcdBkLtSet(70) ;
- lcd_power_enable(0, 1);
- lcd_envid_on_off(1);
+ LcdBkLtSet(70) ;
+ lcd_power_enable(0, 1);
+ lcd_envid_on_off(1);
- return RT_EOK;
+ return RT_EOK;
}
static rt_err_t rt_lcd_control (rt_device_t dev, int cmd, void *args)
{
- switch (cmd)
- {
- case RTGRAPHIC_CTRL_RECT_UPDATE:
- break;
- case RTGRAPHIC_CTRL_POWERON:
- break;
- case RTGRAPHIC_CTRL_POWEROFF:
- break;
- case RTGRAPHIC_CTRL_GET_INFO:
- rt_memcpy(args, &_lcd_info, sizeof(_lcd_info));
- break;
- case RTGRAPHIC_CTRL_SET_MODE:
- break;
- }
+ switch (cmd)
+ {
+ case RTGRAPHIC_CTRL_RECT_UPDATE:
+ break;
+ case RTGRAPHIC_CTRL_POWERON:
+ break;
+ case RTGRAPHIC_CTRL_POWEROFF:
+ break;
+ case RTGRAPHIC_CTRL_GET_INFO:
+ rt_memcpy(args, &_lcd_info, sizeof(_lcd_info));
+ break;
+ case RTGRAPHIC_CTRL_SET_MODE:
+ break;
+ }
- return RT_EOK;
+ return RT_EOK;
}
int rt_hw_lcd_init(void)
{
- rt_device_t lcd = rt_malloc(sizeof(struct rt_device));
- if (lcd == RT_NULL)
+ rt_device_t lcd = rt_malloc(sizeof(struct rt_device));
+ if (lcd == RT_NULL)
return -RT_ERROR; /* no memory yet */
- _lcd_info.bits_per_pixel = 16;
- _lcd_info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565P;
- _lcd_info.framebuffer = (void*)_rt_framebuffer;
- _lcd_info.width = LCD_WIDTH;
- _lcd_info.height = LCD_HEIGHT;
+ _lcd_info.bits_per_pixel = 16;
+ _lcd_info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565P;
+ _lcd_info.framebuffer = (void*)_rt_framebuffer;
+ _lcd_info.width = LCD_WIDTH;
+ _lcd_info.height = LCD_HEIGHT;
- /* init device structure */
- lcd->type = RT_Device_Class_Unknown;
- lcd->init = rt_lcd_init;
- lcd->open = RT_NULL;
- lcd->close = RT_NULL;
- lcd->control = rt_lcd_control;
- lcd->user_data = (void*)&_lcd_info;
-
- /* register lcd device to RT-Thread */
- rt_device_register(lcd, "lcd", RT_DEVICE_FLAG_RDWR);
+ /* init device structure */
+ lcd->type = RT_Device_Class_Unknown;
+ lcd->init = rt_lcd_init;
+ lcd->open = RT_NULL;
+ lcd->close = RT_NULL;
+ lcd->control = rt_lcd_control;
+ lcd->user_data = (void*)&_lcd_info;
+
+ /* register lcd device to RT-Thread */
+ rt_device_register(lcd, "lcd", RT_DEVICE_FLAG_RDWR);
}
INIT_BOARD_EXPORT(rt_hw_lcd_init);
diff --git a/bsp/mini2440/drivers/lcd_x35.c b/bsp/mini2440/drivers/lcd_x35.c
index e625905130..b4a8fda23c 100644
--- a/bsp/mini2440/drivers/lcd_x35.c
+++ b/bsp/mini2440/drivers/lcd_x35.c
@@ -36,82 +36,82 @@
#define SCR_XSIZE LCD_WIDTH
#define SCR_YSIZE LCD_HEIGHT
-#define RT_HW_LCD_WIDTH LCD_WIDTH
-#define RT_HW_LCD_HEIGHT LCD_HEIGHT
+#define RT_HW_LCD_WIDTH LCD_WIDTH
+#define RT_HW_LCD_HEIGHT LCD_HEIGHT
-#define MVAL (13)
-#define MVAL_USED (0) //0=each frame 1=rate by MVAL
-#define INVVDEN (1) //0=normal 1=inverted
-#define BSWP (0) //Byte swap control
-#define HWSWP (1) //Half word swap control
+#define MVAL (13)
+#define MVAL_USED (0) //0=each frame 1=rate by MVAL
+#define INVVDEN (1) //0=normal 1=inverted
+#define BSWP (0) //Byte swap control
+#define HWSWP (1) //Half word swap control
-#define GPB1_TO_OUT() (GPBUP &= 0xfffd, GPBCON &= 0xfffffff3, GPBCON |= 0x00000004)
-#define GPB1_TO_1() (GPBDAT |= 0x0002)
-#define GPB1_TO_0() (GPBDAT &= 0xfffd)
+#define GPB1_TO_OUT() (GPBUP &= 0xfffd, GPBCON &= 0xfffffff3, GPBCON |= 0x00000004)
+#define GPB1_TO_1() (GPBDAT |= 0x0002)
+#define GPB1_TO_0() (GPBDAT &= 0xfffd)
#define S3C2410_LCDCON1_CLKVAL(x) ((x) << 8)
-#define S3C2410_LCDCON1_MMODE (1<<7)
-#define S3C2410_LCDCON1_DSCAN4 (0<<5)
-#define S3C2410_LCDCON1_STN4 (1<<5)
-#define S3C2410_LCDCON1_STN8 (2<<5)
-#define S3C2410_LCDCON1_TFT (3<<5)
+#define S3C2410_LCDCON1_MMODE (1<<7)
+#define S3C2410_LCDCON1_DSCAN4 (0<<5)
+#define S3C2410_LCDCON1_STN4 (1<<5)
+#define S3C2410_LCDCON1_STN8 (2<<5)
+#define S3C2410_LCDCON1_TFT (3<<5)
-#define S3C2410_LCDCON1_STN1BPP (0<<1)
+#define S3C2410_LCDCON1_STN1BPP (0<<1)
#define S3C2410_LCDCON1_STN2GREY (1<<1)
#define S3C2410_LCDCON1_STN4GREY (2<<1)
-#define S3C2410_LCDCON1_STN8BPP (3<<1)
+#define S3C2410_LCDCON1_STN8BPP (3<<1)
#define S3C2410_LCDCON1_STN12BPP (4<<1)
-#define S3C2410_LCDCON1_TFT1BPP (8<<1)
-#define S3C2410_LCDCON1_TFT2BPP (9<<1)
-#define S3C2410_LCDCON1_TFT4BPP (10<<1)
-#define S3C2410_LCDCON1_TFT8BPP (11<<1)
+#define S3C2410_LCDCON1_TFT1BPP (8<<1)
+#define S3C2410_LCDCON1_TFT2BPP (9<<1)
+#define S3C2410_LCDCON1_TFT4BPP (10<<1)
+#define S3C2410_LCDCON1_TFT8BPP (11<<1)
#define S3C2410_LCDCON1_TFT16BPP (12<<1)
#define S3C2410_LCDCON1_TFT24BPP (13<<1)
-#define S3C2410_LCDCON1_ENVID (1)
+#define S3C2410_LCDCON1_ENVID (1)
#define S3C2410_LCDCON1_MODEMASK 0x1E
-#define S3C2410_LCDCON2_VBPD(x) ((x) << 24)
+#define S3C2410_LCDCON2_VBPD(x) ((x) << 24)
#define S3C2410_LCDCON2_LINEVAL(x) ((x) << 14)
-#define S3C2410_LCDCON2_VFPD(x) ((x) << 6)
-#define S3C2410_LCDCON2_VSPW(x) ((x) << 0)
+#define S3C2410_LCDCON2_VFPD(x) ((x) << 6)
+#define S3C2410_LCDCON2_VSPW(x) ((x) << 0)
#define S3C2410_LCDCON2_GET_VBPD(x) ( ((x) >> 24) & 0xFF)
#define S3C2410_LCDCON2_GET_VFPD(x) ( ((x) >> 6) & 0xFF)
#define S3C2410_LCDCON2_GET_VSPW(x) ( ((x) >> 0) & 0x3F)
-#define S3C2410_LCDCON3_HBPD(x) ((x) << 19)
-#define S3C2410_LCDCON3_WDLY(x) ((x) << 19)
+#define S3C2410_LCDCON3_HBPD(x) ((x) << 19)
+#define S3C2410_LCDCON3_WDLY(x) ((x) << 19)
#define S3C2410_LCDCON3_HOZVAL(x) ((x) << 8)
-#define S3C2410_LCDCON3_HFPD(x) ((x) << 0)
+#define S3C2410_LCDCON3_HFPD(x) ((x) << 0)
#define S3C2410_LCDCON3_LINEBLANK(x)((x) << 0)
#define S3C2410_LCDCON3_GET_HBPD(x) ( ((x) >> 19) & 0x7F)
#define S3C2410_LCDCON3_GET_HFPD(x) ( ((x) >> 0) & 0xFF)
-#define S3C2410_LCDCON4_MVAL(x) ((x) << 8)
-#define S3C2410_LCDCON4_HSPW(x) ((x) << 0)
-#define S3C2410_LCDCON4_WLH(x) ((x) << 0)
+#define S3C2410_LCDCON4_MVAL(x) ((x) << 8)
+#define S3C2410_LCDCON4_HSPW(x) ((x) << 0)
+#define S3C2410_LCDCON4_WLH(x) ((x) << 0)
#define S3C2410_LCDCON4_GET_HSPW(x) ( ((x) >> 0) & 0xFF)
-#define S3C2410_LCDCON5_BPP24BL (1<<12)
-#define S3C2410_LCDCON5_FRM565 (1<<11)
-#define S3C2410_LCDCON5_INVVCLK (1<<10)
+#define S3C2410_LCDCON5_BPP24BL (1<<12)
+#define S3C2410_LCDCON5_FRM565 (1<<11)
+#define S3C2410_LCDCON5_INVVCLK (1<<10)
#define S3C2410_LCDCON5_INVVLINE (1<<9)
#define S3C2410_LCDCON5_INVVFRAME (1<<8)
-#define S3C2410_LCDCON5_INVVD (1<<7)
-#define S3C2410_LCDCON5_INVVDEN (1<<6)
+#define S3C2410_LCDCON5_INVVD (1<<7)
+#define S3C2410_LCDCON5_INVVDEN (1<<6)
#define S3C2410_LCDCON5_INVPWREN (1<<5)
-#define S3C2410_LCDCON5_INVLEND (1<<4)
-#define S3C2410_LCDCON5_PWREN (1<<3)
-#define S3C2410_LCDCON5_ENLEND (1<<2)
-#define S3C2410_LCDCON5_BSWP (1<<1)
-#define S3C2410_LCDCON5_HWSWP (1<<0)
+#define S3C2410_LCDCON5_INVLEND (1<<4)
+#define S3C2410_LCDCON5_PWREN (1<<3)
+#define S3C2410_LCDCON5_ENLEND (1<<2)
+#define S3C2410_LCDCON5_BSWP (1<<1)
+#define S3C2410_LCDCON5_HWSWP (1<<0)
-#define S3C2410_LCDINT_FRSYNC (1<<1)
+#define S3C2410_LCDINT_FRSYNC (1<<1)
static volatile rt_uint16_t _rt_framebuffer[RT_HW_LCD_HEIGHT][RT_HW_LCD_WIDTH];
//static volatile rt_uint16_t _rt_hw_framebuffer[RT_HW_LCD_HEIGHT][RT_HW_LCD_WIDTH];
@@ -130,61 +130,61 @@ static void lcd_power_enable(int invpwren, int pwren)
static void lcd_envid_on_off(int onoff)
{
- if(onoff==1)
- /*ENVID=ON*/
- LCDCON1|=1;
- else
- /*ENVID Off*/
- LCDCON1 =LCDCON1 & 0x3fffe;
+ if(onoff==1)
+ /*ENVID=ON*/
+ LCDCON1|=1;
+ else
+ /*ENVID Off*/
+ LCDCON1 =LCDCON1 & 0x3fffe;
}
//********************** BOARD LCD backlight ****************************
static void LcdBkLtSet(rt_uint32_t HiRatio)
{
-#define FREQ_PWM1 1000
- if(!HiRatio)
- {
- GPBCON = GPBCON & (~(3<<2)) | (1<<2) ; //GPB1����Ϊoutput
- GPBDAT &= ~(1<<1);
- return;
- }
- GPBCON = GPBCON & (~(3<<2)) | (2<<2) ;
+#define FREQ_PWM1 1000
+ if(!HiRatio)
+ {
+ GPBCON = GPBCON & (~(3<<2)) | (1<<2) ;
+ GPBDAT &= ~(1<<1);
+ return;
+ }
+ GPBCON = GPBCON & (~(3<<2)) | (2<<2) ;
- if( HiRatio > 100 ) HiRatio = 100 ;
+ if( HiRatio > 100 ) HiRatio = 100 ;
- TCON = TCON & (~(0xf<<8)) ; // clear manual update bit, stop Timer1
+ TCON = TCON & (~(0xf<<8)) ; // clear manual update bit, stop Timer1
- TCFG0 &= 0xffffff00; // set Timer 0&1 prescaler 0
- TCFG0 |= 15; //prescaler = 15+1
+ TCFG0 &= 0xffffff00; // set Timer 0&1 prescaler 0
+ TCFG0 |= 15; //prescaler = 15+1
- TCFG1 &= 0xffffff0f; // set Timer 1 MUX 1/16
- TCFG1 |= 0x00000030; // set Timer 1 MUX 1/16
+ TCFG1 &= 0xffffff0f; // set Timer 1 MUX 1/16
+ TCFG1 |= 0x00000030; // set Timer 1 MUX 1/16
- TCNTB1 = ( 100000000>>8 )/FREQ_PWM1; //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
- TCMPB1 = ( TCNTB1*(100-HiRatio))/100 ; //if set inverter on, when TCNT2<=TCMP2, TOUT is low, TCNT2>TCMP2, TOUT is high
+ TCNTB1 = ( 100000000>>8 )/FREQ_PWM1; //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
+ TCMPB1 = ( TCNTB1*(100-HiRatio))/100 ; //if set inverter on, when TCNT2<=TCMP2, TOUT is low, TCNT2>TCMP2, TOUT is high
- TCON = TCON & (~(0xf<<8)) | (0x0e<<8) ;
- TCON = TCON & (~(0xf<<8)) | (0x0d<<8) ;
+ TCON = TCON & (~(0xf<<8)) | (0x0e<<8) ;
+ TCON = TCON & (~(0xf<<8)) | (0x0d<<8) ;
}
/* RT-Thread Device Interface */
static rt_err_t rt_lcd_init (rt_device_t dev)
-{
- GPB1_TO_OUT();
- GPB1_TO_1();
+{
+ GPB1_TO_OUT();
+ GPB1_TO_1();
- GPCUP = 0x00000000;
- GPCCON = 0xaaaa02a9;
+ GPCUP = 0x00000000;
+ GPCCON = 0xaaaa02a9;
- GPDUP = 0x00000000;
- GPDCON = 0xaaaaaaaa;
+ GPDUP = 0x00000000;
+ GPDCON = 0xaaaaaaaa;
-#define M5D(n) ((n)&0x1fffff)
+#define M5D(n) ((n)&0x1fffff)
#define LCD_ADDR ((rt_uint32_t)_rt_framebuffer)
- LCDCON1 = (LCD_PIXCLOCK << 8) | (3 << 5) | (12 << 1);
- LCDCON2 = (LCD_UPPER_MARGIN << 24) | ((LCD_HEIGHT - 1) << 14) | (LCD_LOWER_MARGIN << 6) | (LCD_VSYNC_LEN << 0);
- LCDCON3 = (LCD_RIGHT_MARGIN << 19) | ((LCD_WIDTH - 1) << 8) | (LCD_LEFT_MARGIN << 0);
- LCDCON4 = (13 << 8) | (LCD_HSYNC_LEN << 0);
+ LCDCON1 = (LCD_PIXCLOCK << 8) | (3 << 5) | (12 << 1);
+ LCDCON2 = (LCD_UPPER_MARGIN << 24) | ((LCD_HEIGHT - 1) << 14) | (LCD_LOWER_MARGIN << 6) | (LCD_VSYNC_LEN << 0);
+ LCDCON3 = (LCD_RIGHT_MARGIN << 19) | ((LCD_WIDTH - 1) << 8) | (LCD_LEFT_MARGIN << 0);
+ LCDCON4 = (13 << 8) | (LCD_HSYNC_LEN << 0);
#define LCD_CON5 (S3C2410_LCDCON5_FRM565 | S3C2410_LCDCON5_INVVDEN | S3C2410_LCDCON5_INVVFRAME | \
S3C2410_LCDCON5_INVVLINE | S3C2410_LCDCON5_INVVCLK | S3C2410_LCDCON5_PWREN| S3C2410_LCDCON5_HWSWP)
@@ -198,59 +198,59 @@ S3C2410_LCDCON5_INVVLINE | S3C2410_LCDCON5_INVVCLK | S3C2410_LCDCON5_PWREN| S3C2
LCDSADDR2 = M5D((LCD_ADDR + LCD_WIDTH * LCD_HEIGHT * 2) >> 1);
LCDSADDR3 = LCD_WIDTH;
- LCDINTMSK |= (3);
- LPCSEL &= (~7) ;
- TPAL=0;
+ LCDINTMSK |= (3);
+ LPCSEL &= (~7) ;
+ TPAL=0;
- LcdBkLtSet(70) ;
- lcd_power_enable(0, 1);
- lcd_envid_on_off(1);
+ LcdBkLtSet(70) ;
+ lcd_power_enable(0, 1);
+ lcd_envid_on_off(1);
- return RT_EOK;
+ return RT_EOK;
}
static rt_err_t rt_lcd_control (rt_device_t dev, int cmd, void *args)
{
- switch (cmd)
- {
- case RTGRAPHIC_CTRL_RECT_UPDATE:
- break;
- case RTGRAPHIC_CTRL_POWERON:
- break;
- case RTGRAPHIC_CTRL_POWEROFF:
- break;
- case RTGRAPHIC_CTRL_GET_INFO:
- rt_memcpy(args, &_lcd_info, sizeof(_lcd_info));
- break;
- case RTGRAPHIC_CTRL_SET_MODE:
- break;
- }
+ switch (cmd)
+ {
+ case RTGRAPHIC_CTRL_RECT_UPDATE:
+ break;
+ case RTGRAPHIC_CTRL_POWERON:
+ break;
+ case RTGRAPHIC_CTRL_POWEROFF:
+ break;
+ case RTGRAPHIC_CTRL_GET_INFO:
+ rt_memcpy(args, &_lcd_info, sizeof(_lcd_info));
+ break;
+ case RTGRAPHIC_CTRL_SET_MODE:
+ break;
+ }
- return RT_EOK;
+ return RT_EOK;
}
int rt_hw_lcd_init(void)
{
- rt_device_t lcd = rt_malloc(sizeof(struct rt_device));
- if (lcd == RT_NULL)
+ rt_device_t lcd = rt_malloc(sizeof(struct rt_device));
+ if (lcd == RT_NULL)
return -RT_ERROR; /* no memory yet */
- _lcd_info.bits_per_pixel = 16;
- _lcd_info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565P;
- _lcd_info.framebuffer = (void*)_rt_framebuffer;
- _lcd_info.width = LCD_WIDTH;
- _lcd_info.height = LCD_HEIGHT;
+ _lcd_info.bits_per_pixel = 16;
+ _lcd_info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565P;
+ _lcd_info.framebuffer = (void*)_rt_framebuffer;
+ _lcd_info.width = LCD_WIDTH;
+ _lcd_info.height = LCD_HEIGHT;
- /* init device structure */
- lcd->type = RT_Device_Class_Unknown;
- lcd->init = rt_lcd_init;
- lcd->open = RT_NULL;
- lcd->close = RT_NULL;
- lcd->control = rt_lcd_control;
- lcd->user_data = (void*)&_lcd_info;
-
- /* register lcd device to RT-Thread */
- rt_device_register(lcd, "lcd", RT_DEVICE_FLAG_RDWR);
+ /* init device structure */
+ lcd->type = RT_Device_Class_Unknown;
+ lcd->init = rt_lcd_init;
+ lcd->open = RT_NULL;
+ lcd->close = RT_NULL;
+ lcd->control = rt_lcd_control;
+ lcd->user_data = (void*)&_lcd_info;
+
+ /* register lcd device to RT-Thread */
+ rt_device_register(lcd, "lcd", RT_DEVICE_FLAG_RDWR);
}
INIT_BOARD_EXPORT(rt_hw_lcd_init);
diff --git a/bsp/mini2440/drivers/s3cmci.c b/bsp/mini2440/drivers/s3cmci.c
index 2333c74495..b5b6f58414 100644
--- a/bsp/mini2440/drivers/s3cmci.c
+++ b/bsp/mini2440/drivers/s3cmci.c
@@ -1,17 +1,12 @@
/*
- * File : s3cmci.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2010, RT-Thread Develop Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2020-04-15 Jonne first version for s3c2440 mmc controller
*/
-
#include <rthw.h>
#include <rtthread.h>
#include <rtdevice.h>
diff --git a/bsp/mini2440/drivers/touch.c b/bsp/mini2440/drivers/touch.c
index b2d09ff7a5..404169a43f 100644
--- a/bsp/mini2440/drivers/touch.c
+++ b/bsp/mini2440/drivers/touch.c
@@ -27,485 +27,485 @@
#include "touch.h"
/* ADCCON Register Bits */
-#define S3C2410_ADCCON_ECFLG (1<<15)
-#define S3C2410_ADCCON_PRSCEN (1<<14)
-#define S3C2410_ADCCON_PRSCVL(x) (((x)&0xFF)<<6)
-#define S3C2410_ADCCON_PRSCVLMASK (0xFF<<6)
-#define S3C2410_ADCCON_SELMUX(x) (((x)&0x7)<<3)
-#define S3C2410_ADCCON_MUXMASK (0x7<<3)
-#define S3C2410_ADCCON_STDBM (1<<2)
-#define S3C2410_ADCCON_READ_START (1<<1)
-#define S3C2410_ADCCON_ENABLE_START (1<<0)
-#define S3C2410_ADCCON_STARTMASK (0x3<<0)
+#define S3C2410_ADCCON_ECFLG (1<<15)
+#define S3C2410_ADCCON_PRSCEN (1<<14)
+#define S3C2410_ADCCON_PRSCVL(x) (((x)&0xFF)<<6)
+#define S3C2410_ADCCON_PRSCVLMASK (0xFF<<6)
+#define S3C2410_ADCCON_SELMUX(x) (((x)&0x7)<<3)
+#define S3C2410_ADCCON_MUXMASK (0x7<<3)
+#define S3C2410_ADCCON_STDBM (1<<2)
+#define S3C2410_ADCCON_READ_START (1<<1)
+#define S3C2410_ADCCON_ENABLE_START (1<<0)
+#define S3C2410_ADCCON_STARTMASK (0x3<<0)
/* ADCTSC Register Bits */
-#define S3C2410_ADCTSC_UD_SEN (1<<8) /* ghcstop add for s3c2440a */
-#define S3C2410_ADCTSC_YM_SEN (1<<7)
-#define S3C2410_ADCTSC_YP_SEN (1<<6)
-#define S3C2410_ADCTSC_XM_SEN (1<<5)
-#define S3C2410_ADCTSC_XP_SEN (1<<4)
-#define S3C2410_ADCTSC_PULL_UP_DISABLE (1<<3)
-#define S3C2410_ADCTSC_AUTO_PST (1<<2)
-#define S3C2410_ADCTSC_XY_PST(x) (((x)&0x3)<<0)
+#define S3C2410_ADCTSC_UD_SEN (1<<8) /* ghcstop add for s3c2440a */
+#define S3C2410_ADCTSC_YM_SEN (1<<7)
+#define S3C2410_ADCTSC_YP_SEN (1<<6)
+#define S3C2410_ADCTSC_XM_SEN (1<<5)
+#define S3C2410_ADCTSC_XP_SEN (1<<4)
+#define S3C2410_ADCTSC_PULL_UP_DISABLE (1<<3)
+#define S3C2410_ADCTSC_AUTO_PST (1<<2)
+#define S3C2410_ADCTSC_XY_PST(x) (((x)&0x3)<<0)
/* ADCDAT0 Bits */
-#define S3C2410_ADCDAT0_UPDOWN (1<<15)
-#define S3C2410_ADCDAT0_AUTO_PST (1<<14)
-#define S3C2410_ADCDAT0_XY_PST (0x3<<12)
-#define S3C2410_ADCDAT0_XPDATA_MASK (0x03FF)
+#define S3C2410_ADCDAT0_UPDOWN (1<<15)
+#define S3C2410_ADCDAT0_AUTO_PST (1<<14)
+#define S3C2410_ADCDAT0_XY_PST (0x3<<12)
+#define S3C2410_ADCDAT0_XPDATA_MASK (0x03FF)
/* ADCDAT1 Bits */
-#define S3C2410_ADCDAT1_UPDOWN (1<<15)
-#define S3C2410_ADCDAT1_AUTO_PST (1<<14)
-#define S3C2410_ADCDAT1_XY_PST (0x3<<12)
-#define S3C2410_ADCDAT1_YPDATA_MASK (0x03FF)
+#define S3C2410_ADCDAT1_UPDOWN (1<<15)
+#define S3C2410_ADCDAT1_AUTO_PST (1<<14)
+#define S3C2410_ADCDAT1_XY_PST (0x3<<12)
+#define S3C2410_ADCDAT1_YPDATA_MASK (0x03FF)
#define WAIT4INT(x) (((x)<<8) | \
- S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \
- S3C2410_ADCTSC_XY_PST(3))
+ S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \
+ S3C2410_ADCTSC_XY_PST(3))
-#define AUTOPST (S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \
- S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0))
+#define AUTOPST (S3C2410_ADCTSC_YM_SEN | S3C2410_ADCTSC_YP_SEN | S3C2410_ADCTSC_XP_SEN | \
+ S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0))
-#define X_MIN 74
-#define X_MAX 934
-#define Y_MIN 920
-#define Y_MAX 89
+#define X_MIN 74
+#define X_MAX 934
+#define Y_MIN 920
+#define Y_MAX 89
struct s3c2410ts
{
- long xp;
- long yp;
- int count;
- int shift;
+ long xp;
+ long yp;
+ int count;
+ int shift;
- int delay;
- int presc;
+ int delay;
+ int presc;
- char phys[32];
+ char phys[32];
};
static struct s3c2410ts ts;
struct rtgui_touch_device
{
- struct rt_device parent;
+ struct rt_device parent;
- rt_timer_t poll_timer;
- rt_uint16_t x, y;
+ rt_timer_t poll_timer;
+ rt_uint16_t x, y;
- rt_bool_t calibrating;
- rt_touch_calibration_func_t calibration_func;
+ rt_bool_t calibrating;
+ rt_touch_calibration_func_t calibration_func;
- rt_touch_eventpost_func_t eventpost_func;
- void *eventpost_param;
+ rt_touch_eventpost_func_t eventpost_func;
+ void *eventpost_param;
- rt_uint16_t min_x, max_x;
- rt_uint16_t min_y, max_y;
+ rt_uint16_t min_x, max_x;
+ rt_uint16_t min_y, max_y;
- rt_uint16_t width;
- rt_uint16_t height;
-
- rt_bool_t first_down_report;
+ rt_uint16_t width;
+ rt_uint16_t height;
+
+ rt_bool_t first_down_report;
};
static struct rtgui_touch_device *touch = RT_NULL;
#ifdef PKG_USING_GUIENGINE
static void report_touch_input(int updown)
{
- struct rtgui_event_mouse emouse;
+ struct rtgui_event_mouse emouse;
- RTGUI_EVENT_MOUSE_BUTTON_INIT(&emouse);
- emouse.wid = RT_NULL;
+ RTGUI_EVENT_MOUSE_BUTTON_INIT(&emouse);
+ emouse.wid = RT_NULL;
- /* set emouse button */
- emouse.button = RTGUI_MOUSE_BUTTON_LEFT;
- emouse.parent.sender = RT_NULL;
-
- if (updown)
- {
- ts.xp = ts.xp / ts.count;
- ts.yp = ts.yp / ts.count;;
+ /* set emouse button */
+ emouse.button = RTGUI_MOUSE_BUTTON_LEFT;
+ emouse.parent.sender = RT_NULL;
+
+ if (updown)
+ {
+ ts.xp = ts.xp / ts.count;
+ ts.yp = ts.yp / ts.count;;
- #ifdef TOUCH_SWAP_XY
- ts.xp = ts.xp + ts.yp;
- ts.yp = ts.xp - ts.yp;
- ts.xp = ts.xp - ts.yp;
- #endif
+ #ifdef TOUCH_SWAP_XY
+ ts.xp = ts.xp + ts.yp;
+ ts.yp = ts.xp - ts.yp;
+ ts.xp = ts.xp - ts.yp;
+ #endif
- if ((touch->calibrating == RT_TRUE) && (touch->calibration_func != RT_NULL))
- {
- touch->x = ts.xp;
- touch->y = ts.yp;
- }
- else
- {
- if (touch->max_x > touch->min_x)
- {
- touch->x = touch->width * (ts.xp-touch->min_x)/(touch->max_x-touch->min_x);
- }
- else
- {
- touch->x = touch->width * ( touch->min_x - ts.xp ) / (touch->min_x-touch->max_x);
- }
+ if ((touch->calibrating == RT_TRUE) && (touch->calibration_func != RT_NULL))
+ {
+ touch->x = ts.xp;
+ touch->y = ts.yp;
+ }
+ else
+ {
+ if (touch->max_x > touch->min_x)
+ {
+ touch->x = touch->width * (ts.xp-touch->min_x)/(touch->max_x-touch->min_x);
+ }
+ else
+ {
+ touch->x = touch->width * ( touch->min_x - ts.xp ) / (touch->min_x-touch->max_x);
+ }
- if (touch->max_y > touch->min_y)
- {
- touch->y = touch->height * ( ts.yp - touch->min_y ) / (touch->max_y-touch->min_y);
- }
- else
- {
- touch->y = touch->height * ( touch->min_y - ts.yp ) / (touch->min_y-touch->max_y);
- }
- }
+ if (touch->max_y > touch->min_y)
+ {
+ touch->y = touch->height * ( ts.yp - touch->min_y ) / (touch->max_y-touch->min_y);
+ }
+ else
+ {
+ touch->y = touch->height * ( touch->min_y - ts.yp ) / (touch->min_y-touch->max_y);
+ }
+ }
- emouse.x = touch->x;
- emouse.y = touch->y;
- if (touch->first_down_report == RT_TRUE)
- {
- emouse.parent.type = RTGUI_EVENT_MOUSE_BUTTON;
- emouse.button |= RTGUI_MOUSE_BUTTON_DOWN;
- }
- else
- {
- emouse.parent.type = RTGUI_EVENT_MOUSE_MOTION;
- emouse.button = 0;
- }
- }
- else
- {
- emouse.x = touch->x;
- emouse.y = touch->y;
- emouse.parent.type = RTGUI_EVENT_MOUSE_BUTTON;
- emouse.button |= RTGUI_MOUSE_BUTTON_UP;
- if ((touch->calibrating == RT_TRUE) && (touch->calibration_func != RT_NULL))
- {
- /* callback function */
- touch->calibration_func(emouse.x, emouse.y);
- }
- }
+ emouse.x = touch->x;
+ emouse.y = touch->y;
+ if (touch->first_down_report == RT_TRUE)
+ {
+ emouse.parent.type = RTGUI_EVENT_MOUSE_BUTTON;
+ emouse.button |= RTGUI_MOUSE_BUTTON_DOWN;
+ }
+ else
+ {
+ emouse.parent.type = RTGUI_EVENT_MOUSE_MOTION;
+ emouse.button = 0;
+ }
+ }
+ else
+ {
+ emouse.x = touch->x;
+ emouse.y = touch->y;
+ emouse.parent.type = RTGUI_EVENT_MOUSE_BUTTON;
+ emouse.button |= RTGUI_MOUSE_BUTTON_UP;
+ if ((touch->calibrating == RT_TRUE) && (touch->calibration_func != RT_NULL))
+ {
+ /* callback function */
+ touch->calibration_func(emouse.x, emouse.y);
+ }
+ }
- /* rt_kprintf("touch %s: ts.x: %d, ts.y: %d\n", updown? "down" : "up",
- touch->x, touch->y); */
-
- /* send event to server */
- if (touch->calibrating != RT_TRUE)
- {
- rtgui_server_post_event((&emouse.parent), sizeof(emouse));
- }
+ /* rt_kprintf("touch %s: ts.x: %d, ts.y: %d\n", updown? "down" : "up",
+ touch->x, touch->y); */
+
+ /* send event to server */
+ if (touch->calibrating != RT_TRUE)
+ {
+ rtgui_server_post_event((&emouse.parent), sizeof(emouse));
+ }
}
#else
static void report_touch_input(int updown)
{
- struct rt_touch_event touch_event;
+ struct rt_touch_event touch_event;
- if (updown)
- {
- ts.xp = ts.xp / ts.count;
- ts.yp = ts.yp / ts.count;
+ if (updown)
+ {
+ ts.xp = ts.xp / ts.count;
+ ts.yp = ts.yp / ts.count;
- if ((touch->calibrating == RT_TRUE) && (touch->calibration_func != RT_NULL))
- {
- touch->x = ts.xp;
- touch->y = ts.yp;
- }
- else
- {
- if (touch->max_x > touch->min_x)
- {
- touch->x = touch->width * ( ts.xp - touch->min_x ) / (touch->max_x-touch->min_x);
- }
- else
- {
- touch->x = touch->width * ( touch->min_x - ts.xp ) / (touch->min_x-touch->max_x);
- }
+ if ((touch->calibrating == RT_TRUE) && (touch->calibration_func != RT_NULL))
+ {
+ touch->x = ts.xp;
+ touch->y = ts.yp;
+ }
+ else
+ {
+ if (touch->max_x > touch->min_x)
+ {
+ touch->x = touch->width * ( ts.xp - touch->min_x ) / (touch->max_x-touch->min_x);
+ }
+ else
+ {
+ touch->x = touch->width * ( touch->min_x - ts.xp ) / (touch->min_x-touch->max_x);
+ }
- if (touch->max_y > touch->min_y)
- {
- touch->y = touch->height * ( ts.yp - touch->min_y ) / (touch->max_y-touch->min_y);
- }
- else
- {
- touch->y = touch->height * ( touch->min_y - ts.yp ) / (touch->min_y-touch->max_y);
- }
- }
+ if (touch->max_y > touch->min_y)
+ {
+ touch->y = touch->height * ( ts.yp - touch->min_y ) / (touch->max_y-touch->min_y);
+ }
+ else
+ {
+ touch->y = touch->height * ( touch->min_y - ts.yp ) / (touch->min_y-touch->max_y);
+ }
+ }
- touch_event.x = touch->x;
- touch_event.y = touch->y;
- touch_event.pressed = 1;
+ touch_event.x = touch->x;
+ touch_event.y = touch->y;
+ touch_event.pressed = 1;
- if (touch->first_down_report == RT_TRUE)
- {
- if (touch->calibrating != RT_TRUE && touch->eventpost_func)
- {
- touch->eventpost_func(touch->eventpost_param, &touch_event);
- }
- }
- }
- else
- {
- touch_event.x = touch->x;
- touch_event.y = touch->y;
- touch_event.pressed = 0;
-
- if ((touch->calibrating == RT_TRUE) && (touch->calibration_func != RT_NULL))
- {
- /* callback function */
- touch->calibration_func(touch_event.x, touch_event.y);
- }
+ if (touch->first_down_report == RT_TRUE)
+ {
+ if (touch->calibrating != RT_TRUE && touch->eventpost_func)
+ {
+ touch->eventpost_func(touch->eventpost_param, &touch_event);
+ }
+ }
+ }
+ else
+ {
+ touch_event.x = touch->x;
+ touch_event.y = touch->y;
+ touch_event.pressed = 0;
+
+ if ((touch->calibrating == RT_TRUE) && (touch->calibration_func != RT_NULL))
+ {
+ /* callback function */
+ touch->calibration_func(touch_event.x, touch_event.y);
+ }
- if (touch->calibrating != RT_TRUE && touch->eventpost_func)
- {
- touch->eventpost_func(touch->eventpost_param, &touch_event);
- }
- }
+ if (touch->calibrating != RT_TRUE && touch->eventpost_func)
+ {
+ touch->eventpost_func(touch->eventpost_param, &touch_event);
+ }
+ }
}
#endif
static void touch_timer_fire(void *parameter)
{
- rt_uint32_t data0;
- rt_uint32_t data1;
- int updown;
+ rt_uint32_t data0;
+ rt_uint32_t data1;
+ int updown;
- data0 = ADCDAT0;
- data1 = ADCDAT1;
+ data0 = ADCDAT0;
+ data1 = ADCDAT1;
- updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN));
+ updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN));
- if (updown)
- {
- if (ts.count != 0)
- {
- report_touch_input(updown);
- }
+ if (updown)
+ {
+ if (ts.count != 0)
+ {
+ report_touch_input(updown);
+ }
- ts.xp = 0;
- ts.yp = 0;
- ts.count = 0;
+ ts.xp = 0;
+ ts.yp = 0;
+ ts.count = 0;
- ADCTSC = S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST;
- ADCCON |= S3C2410_ADCCON_ENABLE_START;
- }
+ ADCTSC = S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST;
+ ADCCON |= S3C2410_ADCCON_ENABLE_START;
+ }
}
static void s3c2410_adc_stylus_action(void)
{
- rt_uint32_t data0;
- rt_uint32_t data1;
+ rt_uint32_t data0;
+ rt_uint32_t data1;
- data0 = ADCDAT0;
- data1 = ADCDAT1;
-
- ts.xp += data0 & S3C2410_ADCDAT0_XPDATA_MASK;
- ts.yp += data1 & S3C2410_ADCDAT1_YPDATA_MASK;
- ts.count ++;
+ data0 = ADCDAT0;
+ data1 = ADCDAT1;
+
+ ts.xp += data0 & S3C2410_ADCDAT0_XPDATA_MASK;
+ ts.yp += data1 & S3C2410_ADCDAT1_YPDATA_MASK;
+ ts.count ++;
- if (ts.count < (1<<ts.shift))
- {
- ADCTSC = S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST;
- ADCCON |= S3C2410_ADCCON_ENABLE_START;
- }
- else
- {
- if (touch->first_down_report)
- {
- report_touch_input(1);
- ts.xp = 0;
- ts.yp = 0;
- ts.count = 0;
- touch->first_down_report = 0;
- }
- /* start timer */
- rt_timer_start(touch->poll_timer);
- ADCTSC = WAIT4INT(1);
- }
+ if (ts.count < (1<<ts.shift))
+ {
+ ADCTSC = S3C2410_ADCTSC_PULL_UP_DISABLE | AUTOPST;
+ ADCCON |= S3C2410_ADCCON_ENABLE_START;
+ }
+ else
+ {
+ if (touch->first_down_report)
+ {
+ report_touch_input(1);
+ ts.xp = 0;
+ ts.yp = 0;
+ ts.count = 0;
+ touch->first_down_report = 0;
+ }
+ /* start timer */
+ rt_timer_start(touch->poll_timer);
+ ADCTSC = WAIT4INT(1);
+ }
- SUBSRCPND |= BIT_SUB_ADC;
+ SUBSRCPND |= BIT_SUB_ADC;
}
static void s3c2410_intc_stylus_updown(void)
{
- rt_uint32_t data0;
- rt_uint32_t data1;
- int updown;
+ rt_uint32_t data0;
+ rt_uint32_t data1;
+ int updown;
- data0 = ADCDAT0;
- data1 = ADCDAT1;
+ data0 = ADCDAT0;
+ data1 = ADCDAT1;
- updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN));
+ updown = (!(data0 & S3C2410_ADCDAT0_UPDOWN)) && (!(data1 & S3C2410_ADCDAT0_UPDOWN));
- /* rt_kprintf("stylus: %s\n", updown? "down" : "up"); */
+ /* rt_kprintf("stylus: %s\n", updown? "down" : "up"); */
- if (updown)
- {
- touch_timer_fire(0);
- }
- else
- {
- /* stop timer */
- rt_timer_stop(touch->poll_timer);
- touch->first_down_report = RT_TRUE;
- if (ts.xp >= 0 && ts.yp >= 0)
- {
- report_touch_input(updown);
- }
- ts.count = 0;
- ADCTSC = WAIT4INT(0);
- }
+ if (updown)
+ {
+ touch_timer_fire(0);
+ }
+ else
+ {
+ /* stop timer */
+ rt_timer_stop(touch->poll_timer);
+ touch->first_down_report = RT_TRUE;
+ if (ts.xp >= 0 && ts.yp >= 0)
+ {
+ report_touch_input(updown);
+ }
+ ts.count = 0;
+ ADCTSC = WAIT4INT(0);
+ }
- SUBSRCPND |= BIT_SUB_TC;
+ SUBSRCPND |= BIT_SUB_TC;
}
static void rt_touch_handler(int irqno, void *param)
{
- if (SUBSRCPND & BIT_SUB_ADC)
- {
- /* INT_SUB_ADC */
- s3c2410_adc_stylus_action();
- }
+ if (SUBSRCPND & BIT_SUB_ADC)
+ {
+ /* INT_SUB_ADC */
+ s3c2410_adc_stylus_action();
+ }
- if (SUBSRCPND & BIT_SUB_TC)
- {
- /* INT_SUB_TC */
- s3c2410_intc_stylus_updown();
- }
+ if (SUBSRCPND & BIT_SUB_TC)
+ {
+ /* INT_SUB_TC */
+ s3c2410_intc_stylus_updown();
+ }
- /* clear interrupt */
- INTPND |= (1ul << INTADC);
+ /* clear interrupt */
+ INTPND |= (1ul << INTADC);
}
/* RT-Thread Device Interface */
static rt_err_t rtgui_touch_init(rt_device_t dev)
{
- /* init touch screen structure */
- rt_memset(&ts, 0, sizeof(struct s3c2410ts));
+ /* init touch screen structure */
+ rt_memset(&ts, 0, sizeof(struct s3c2410ts));
- ts.delay = 50000;
- ts.presc = 9;
- ts.shift = 2;
- ts.count = 0;
- ts.xp = ts.yp = 0;
+ ts.delay = 50000;
+ ts.presc = 9;
+ ts.shift = 2;
+ ts.count = 0;
+ ts.xp = ts.yp = 0;
- ADCCON = S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(ts.presc);
- ADCDLY = ts.delay;
+ ADCCON = S3C2410_ADCCON_PRSCEN | S3C2410_ADCCON_PRSCVL(ts.presc);
+ ADCDLY = ts.delay;
- ADCTSC = WAIT4INT(0);
+ ADCTSC = WAIT4INT(0);
- rt_hw_interrupt_install(INTADC, rt_touch_handler, RT_NULL , "INTADC");
- rt_hw_interrupt_umask(INTADC);
+ rt_hw_interrupt_install(INTADC, rt_touch_handler, RT_NULL , "INTADC");
+ rt_hw_interrupt_umask(INTADC);
- /* clear interrupt */
- INTPND |= (1ul << INTADC);
+ /* clear interrupt */
+ INTPND |= (1ul << INTADC);
- SUBSRCPND |= BIT_SUB_TC;
- SUBSRCPND |= BIT_SUB_ADC;
+ SUBSRCPND |= BIT_SUB_TC;
+ SUBSRCPND |= BIT_SUB_ADC;
- /* install interrupt handler */
- INTSUBMSK &= ~BIT_SUB_ADC;
- INTSUBMSK &= ~BIT_SUB_TC;
+ /* install interrupt handler */
+ INTSUBMSK &= ~BIT_SUB_ADC;
+ INTSUBMSK &= ~BIT_SUB_TC;
- touch->first_down_report = RT_TRUE;
+ touch->first_down_report = RT_TRUE;
- return RT_EOK;
+ return RT_EOK;
}
static rt_err_t rtgui_touch_control(rt_device_t dev, int cmd, void *args)
{
- switch (cmd)
- {
- case RT_TOUCH_CALIBRATION:
- touch->calibrating = RT_TRUE;
- touch->calibration_func = (rt_touch_calibration_func_t)args;
- break;
+ switch (cmd)
+ {
+ case RT_TOUCH_CALIBRATION:
+ touch->calibrating = RT_TRUE;
+ touch->calibration_func = (rt_touch_calibration_func_t)args;
+ break;
- case RT_TOUCH_NORMAL:
- touch->calibrating = RT_FALSE;
- break;
+ case RT_TOUCH_NORMAL:
+ touch->calibrating = RT_FALSE;
+ break;
- case RT_TOUCH_CALIBRATION_DATA:
- {
- struct calibration_data *data;
+ case RT_TOUCH_CALIBRATION_DATA:
+ {
+ struct calibration_data *data;
- data = (struct calibration_data *)args;
+ data = (struct calibration_data *)args;
- /* update */
- touch->min_x = data->min_x;
- touch->max_x = data->max_x;
- touch->min_y = data->min_y;
- touch->max_y = data->max_y;
+ /* update */
+ touch->min_x = data->min_x;
+ touch->max_x = data->max_x;
+ touch->min_y = data->min_y;
+ touch->max_y = data->max_y;
- /*
- rt_kprintf("min_x = %d, max_x = %d, min_y = %d, max_y = %d\n",
- touch->min_x, touch->max_x, touch->min_y, touch->max_y);
- */
- }
- break;
+ /*
+ rt_kprintf("min_x = %d, max_x = %d, min_y = %d, max_y = %d\n",
+ touch->min_x, touch->max_x, touch->min_y, touch->max_y);
+ */
+ }
+ break;
- case RT_TOUCH_EVENTPOST:
- touch->eventpost_func = (rt_touch_eventpost_func_t)args;
- break;
+ case RT_TOUCH_EVENTPOST:
+ touch->eventpost_func = (rt_touch_eventpost_func_t)args;
+ break;
- case RT_TOUCH_EVENTPOST_PARAM:
- touch->eventpost_param = args;
- break;
- }
+ case RT_TOUCH_EVENTPOST_PARAM:
+ touch->eventpost_param = args;
+ break;
+ }
- return RT_EOK;
+ return RT_EOK;
}
int rtgui_touch_hw_init(void)
{
- rt_err_t result = RT_FALSE;
- rt_device_t device = RT_NULL;
- struct rt_device_graphic_info info;
+ rt_err_t result = RT_FALSE;
+ rt_device_t device = RT_NULL;
+ struct rt_device_graphic_info info;
- touch = (struct rtgui_touch_device *)rt_malloc(sizeof(struct rtgui_touch_device));
- if (touch == RT_NULL)
- return -RT_ERROR; /* no memory yet */
+ touch = (struct rtgui_touch_device *)rt_malloc(sizeof(struct rtgui_touch_device));
+ if (touch == RT_NULL)
+ return -RT_ERROR; /* no memory yet */
- /* clear device structure */
- rt_memset(&(touch->parent), 0, sizeof(struct rt_device));
- touch->calibrating = RT_FALSE;
- touch->min_x = X_MIN;
- touch->max_x = X_MAX;
- touch->min_y = Y_MIN;
- touch->max_y = Y_MAX;
- touch->eventpost_func = RT_NULL;
- touch->eventpost_param = RT_NULL;
+ /* clear device structure */
+ rt_memset(&(touch->parent), 0, sizeof(struct rt_device));
+ touch->calibrating = RT_FALSE;
+ touch->min_x = X_MIN;
+ touch->max_x = X_MAX;
+ touch->min_y = Y_MIN;
+ touch->max_y = Y_MAX;
+ touch->eventpost_func = RT_NULL;
+ touch->eventpost_param = RT_NULL;
- /* init device structure */
- touch->parent.type = RT_Device_Class_Unknown;
- touch->parent.init = rtgui_touch_init;
- touch->parent.control = rtgui_touch_control;
- touch->parent.user_data = RT_NULL;
+ /* init device structure */
+ touch->parent.type = RT_Device_Class_Unknown;
+ touch->parent.init = rtgui_touch_init;
+ touch->parent.control = rtgui_touch_control;
+ touch->parent.user_data = RT_NULL;
- device = rt_device_find("lcd");
- if (device == RT_NULL)
- {
- rt_kprintf("No lcd found\n");
- return -RT_ERROR; /* no this device */
- }
+ device = rt_device_find("lcd");
+ if (device == RT_NULL)
+ {
+ rt_kprintf("No lcd found\n");
+ return -RT_ERROR; /* no this device */
+ }
- /* get graphic device info */
- result = rt_device_control(device, RTGRAPHIC_CTRL_GET_INFO, &info);
- if (result != RT_EOK)
- {
- /* get device information failed */
- rt_kprintf("Get graphic device info failed\n");
- return -RT_ERROR;
- }
+ /* get graphic device info */
+ result = rt_device_control(device, RTGRAPHIC_CTRL_GET_INFO, &info);
+ if (result != RT_EOK)
+ {
+ /* get device information failed */
+ rt_kprintf("Get graphic device info failed\n");
+ return -RT_ERROR;
+ }
- touch->width = info.width;
- touch->height = info.height;
-
- /* create 1/8 second timer */
- touch->poll_timer = rt_timer_create("touch", touch_timer_fire, RT_NULL,
- RT_TICK_PER_SECOND/8, RT_TIMER_FLAG_PERIODIC);
+ touch->width = info.width;
+ touch->height = info.height;
+
+ /* create 1/8 second timer */
+ touch->poll_timer = rt_timer_create("touch", touch_timer_fire, RT_NULL,
+ RT_TICK_PER_SECOND/8, RT_TIMER_FLAG_PERIODIC);
- /* register touch device to RT-Thread */
- rt_device_register(&(touch->parent), "touch", RT_DEVICE_FLAG_RDWR);
+ /* register touch device to RT-Thread */
+ rt_device_register(&(touch->parent), "touch", RT_DEVICE_FLAG_RDWR);
- return RT_EOK;
+ return RT_EOK;
}
INIT_PREV_EXPORT(rtgui_touch_hw_init);
diff --git a/bsp/mini2440/drivers/touch.h b/bsp/mini2440/drivers/touch.h
index c0e1238148..19d10bf36d 100644
--- a/bsp/mini2440/drivers/touch.h
+++ b/bsp/mini2440/drivers/touch.h
@@ -3,23 +3,23 @@
#include <rtthread.h>
-#define RT_TOUCH_NORMAL 0
-#define RT_TOUCH_CALIBRATION_DATA 1
-#define RT_TOUCH_CALIBRATION 2
+#define RT_TOUCH_NORMAL 0
+#define RT_TOUCH_CALIBRATION_DATA 1
+#define RT_TOUCH_CALIBRATION 2
#define RT_TOUCH_EVENTPOST 3
#define RT_TOUCH_EVENTPOST_PARAM 4
struct calibration_data
{
- rt_uint16_t min_x, max_x;
- rt_uint16_t min_y, max_y;
+ rt_uint16_t min_x, max_x;
+ rt_uint16_t min_y, max_y;
};
struct rt_touch_event
{
- rt_uint16_t x;
- rt_uint16_t y;
- int pressed;
+ rt_uint16_t x;
+ rt_uint16_t y;
+ int pressed;
};
typedef void (*rt_touch_calibration_func_t)(rt_uint16_t x, rt_uint16_t y);