FreeCalypso > hg > fc-selenite
diff src/cs/drivers/drv_app/r2d/lcds/c139/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/c139/r2d_task_init_i.c Sun Jul 15 04:39:26 2018 +0000 @@ -0,0 +1,51 @@ +#include "r2d/lcds/c139/colors.h" + +#define R2D_MB_PRIM_SIZE 2000 + +extern void c139_lcd_ctrl_cmd(UINT8 cmd, UINT8 param); +extern void c139_set_lcd_addr_region(UINT8 xstart, UINT8 xend, + UINT8 ystart, UINT8 yend); +extern void c139_lcd_send_pix(UINT16 pixval); + +void uwire_init_lcd(void) +{ + * ( UINT16 *) CNTL_RST &= ~(0x04); // releases reset_out + * ( UINT16 *) CNTL_RST |= (0x04); // set reset_out to 0 + rvf_delay(RVF_MS_TO_TICKS(5)); // waits for 5 ms + * ( UINT16 *) CNTL_RST &= ~(0x04); // releases reset_out + + * (volatile UINT16 *) SR1 = CS0_FRQ_FINT_2; + * (volatile UINT16 *) SR3 = SR3_CLK_EN; // enables the uwire clock + * (volatile UINT16 *) CSR = INDEX_CS0; // selects CS0 +} + +static void r2d_refresh_task_init(void) +{ + UINT16 i; + + uwire_init_lcd(); + rvf_delay(RVF_MS_TO_TICKS(5)); // waits for 5 ms + + /* LCD controller init */ + c139_lcd_ctrl_cmd(0x3F, 0x01); + c139_lcd_ctrl_cmd(0x20, 0x03); + c139_lcd_ctrl_cmd(0x31, 0x03); + + /* initial hw framebuffer clearing */ + c139_set_lcd_addr_region(0, 95, 0, 63); + for (i = 0; i < 96 * 64; i++) + c139_lcd_send_pix(LCD16_COLOR_BORDER); +} + +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); + r2d_g_dithering_matrix[0]=0; + r2d_g_dithering_matrix[1]=2; + r2d_g_dithering_matrix[2]=3; + r2d_g_dithering_matrix[3]=1; +}