FreeCalypso > hg > fc-selenite
diff src/cs/drivers/drv_app/r2d/lcds/ColorBoard/r2d_task_init_i.c @ 0:b6a5e36de839
src/cs: initial import from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 15 Jul 2018 04:39:26 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/drivers/drv_app/r2d/lcds/ColorBoard/r2d_task_init_i.c Sun Jul 15 04:39:26 2018 +0000 @@ -0,0 +1,78 @@ +/* Used by refresh task to extract bytes from the +framebuffer */ + + + + +#define R2D_MB_PRIM_SIZE 3000 + + +#define MASTER_CMD(data) *(volatile unsigned char*)0x2000005 = (data) +#define MASTER_DATA(data) *(volatile unsigned char*)0x2000004 = (data) +#define SLAVE_CMD(data) *(volatile unsigned char*)0x2000003 = (data) +#define SLAVE_DATA(data) *(volatile unsigned char*)0x2000002 = (data) + + +static void r2d_refresh_task_init(void) +{ + + INT16 x,y; + +#ifndef _WINDOWS + // Coded on 5 bits for the wait states + //*(volatile short*)0xfffffb0a = 0xe80 | 0x1f; // max waitstates and dummy cycles on CS3 and CS4 + //*(volatile short*)0xfffffb06 = 0xe80 | 0x1f; // and config. as 8-bit I/O + + *(volatile short*)0xfffffb0a = 0xe80 | 0x3; // max waitstates and dummy cycles on CS3 and CS4 + *(volatile short*)0xfffffb06 = 0xe80 | 0x3; // and config. as 8-bit I/O + + MASTER_CMD(0xF4); // RE register set + MASTER_CMD(0xB6); // electronic volume set (lower) (b5) + MASTER_CMD(0xA0); // electronic volume set (upper) (a9) + MASTER_CMD(0xF0); // RE register set + MASTER_CMD(0xE2); // Bias ratio set = 1/7 (e2) + MASTER_CMD(0xD3); // Booster set = 4x + MASTER_CMD(0x66); // 7 line alternated + MASTER_CMD(0x70); // 7 line alternated + + MASTER_CMD(0xBA); // power control (DC, AMP = ON) + + for (x=0;x<300;x++) + for (y=0;y<300;y++) ; // Delay while initializing + + //functions master + MASTER_CMD(0xf4); // RE register set + MASTER_CMD(0x60); // common start line + MASTER_CMD(0xf0); // RE register set + MASTER_CMD(0x40); // display start line lower + MASTER_CMD(0x50); // display start line upper + MASTER_CMD(0xc7); // display duty cycle = 1/66 + + //functions slave + SLAVE_CMD(0xf4); // RE register set + SLAVE_CMD(0x60); // common start line + SLAVE_CMD(0xf0); // RE register set + SLAVE_CMD(0x40); // display start line lower + SLAVE_CMD(0x50); // display start line upper + SLAVE_CMD(0xc7); // display duty cycle = 1/66 + + MASTER_CMD(0x81); // display ON master + SLAVE_CMD(0x89); // display ON slave (89) +#endif +} + +static void r2d_refresh_task_kill(void) +{ +} + +static void r2d_dithering_init(void) +{ + R2D_MALLOC(r2d_mb_id,UINT32,sizeof(UINT32)*4,r2d_g_dithering_matrix); + if (r2d_g_dithering_matrix!=NULL) + { + r2d_g_dithering_matrix[0]=0; + r2d_g_dithering_matrix[1]=2; + r2d_g_dithering_matrix[2]=3; + r2d_g_dithering_matrix[3]=1; + } +}