void lcd_init_device() { iomux_lcd(); /* setup pins for 16bit lcd interface */ lcdctrl_init(); /* basic lcdc module configuration */ lcdctrl_bypass(1); /* run in bypass mode - all writes goes directly to lcd controller */ lcd_display_init(); }
static void lcd_v2_set_gram_area(int x, int y, int width, int height) { (void) x; (void) y; (void) width; (void) height; lcdctrl_bypass(1); LCDC_CTRL |= RGB24B; lcd_cmd(0x22); LCDC_CTRL &= ~RGB24B; }
static void lcd_v1_set_gram_area(int x, int y, int width, int height) { lcdctrl_bypass(1); LCDC_CTRL |= RGB24B; lcd_write_reg(0x03, x); lcd_write_reg(0x05, width-1); lcd_write_reg(0x07, y); lcd_write_reg(0x09, height-1); lcd_cmd(0x22); LCDC_CTRL &= ~RGB24B; }
static void lcd_v1_enable (bool on) { if (on == display_on) return; lcdctrl_bypass(1); LCDC_CTRL |= RGB24B; if (on) { lcd_write_reg(0x18, 0x44); lcd_write_reg(0x21, 0x01); lcd_write_reg(0x01, 0x00); lcd_write_reg(0x1C, 0x03); lcd_write_reg(0x19, 0x06); udelay(5); lcd_write_reg(0x26, 0x84); udelay(40); lcd_write_reg(0x26, 0xB8); udelay(40); lcd_write_reg(0x26, 0xBC); } else { lcd_write_reg(0x26, 0xB8); udelay(40); lcd_write_reg(0x19, 0x01); udelay(40); lcd_write_reg(0x26, 0xA4); udelay(40); lcd_write_reg(0x26, 0x84); udelay(40); lcd_write_reg(0x1C, 0x00); lcd_write_reg(0x01, 0x02); lcd_write_reg(0x21, 0x00); } display_on = on; LCDC_CTRL &= ~RGB24B; }