rendered paste bodystatic void lcd_write_reg(int reg, int data)
{
GPIOA |= 0x400;
outw(0, 0x50010000);
outw(reg<<1,0x50010000);
GPIOA &= ~0x400;
outw((data & 0xff00) >> 7, 0x50010008);
outw((data << 24)>>23, 0x50010008);
}
static void lcd_delay(int x)
{
int i;
x *= 0xc35;
for (i=0;i<x*8;i++) {};
}
void lcd_init_device(void)
{
/* lcd init 1 */
lcd_write_reg(0x0, 0x1);
lcd_delay(0xf);
lcd_write_reg(0x7, 0x0);
lcd_delay(0xa);
lcd_write_reg(0x11, 0x2);
lcd_write_reg(0x12, 0xa);
lcd_write_reg(0x13, 0xc5a);
lcd_write_reg(0x10, 0x4);
lcd_write_reg(0x10, 0x134);
lcd_write_reg(0x11, 0x111);
lcd_write_reg(0x12, 0x1c);
lcd_delay(0x28);
lcd_write_reg(0x13, 0x2c40);
lcd_write_reg(0x10, 0x510);
lcd_delay(0x3c);
/* lcd init 2 */
lcd_write_reg(0x1, 0x113);
lcd_write_reg(0x2, 0x700);
lcd_write_reg(0x3, 0x1038);
lcd_write_reg(0x8, 0x3c8);
lcd_write_reg(0x9, 0x0);
lcd_write_reg(0xb, 0x3);
lcd_write_reg(0x21, 0x0);
lcd_write_reg(0x30, 0x406);
lcd_write_reg(0x31, 0x303);
lcd_write_reg(0x32, 0x0);
lcd_write_reg(0x33, 0x305);
lcd_write_reg(0x34, 0x404);
lcd_write_reg(0x35, 0x0);
lcd_write_reg(0x36, 0x0);
lcd_write_reg(0x37, 0x503);
lcd_write_reg(0x38, 0x1d05);
lcd_write_reg(0x39, 0x1d05);
lcd_write_reg(0x41, 0x0);
lcd_write_reg(0x42, 0x9f00);
lcd_write_reg(0x34, 0x9f00);
lcd_write_reg(0x44, 0x7f00);
lcd_write_reg(0x45, 0x9f00);
/* lcd init 3 */
lcd_write_reg(0x10, 0x4510);
lcd_write_reg(0x7, 0x5);
lcd_delay(0x28);
lcd_write_reg(0x7, 0x25);
lcd_write_reg(0x7, 0x27);
lcd_delay(0x28);
lcd_write_reg(0x7, 0x37);
}