示例#1
0
/*
 * Send Power Off commands to L4F00242T03
 *
 */
static void lcd_poweroff(void)
{
	const u16 slpin = 0x10;
	const u16 disoff = 0x28;
	ipu_channel_params_t param;

	if (!lcd_on)
		return;

	dev_dbg(lcd_dev, "turning off LCD\n");

	if (lcd_spi) {
		msleep(60);
		spi_write(lcd_spi, (const u8 *)&disoff, 1);
		msleep(60);
		spi_write(lcd_spi, (const u8 *)&slpin, 1);
	} else {
		memset(&param, 0, sizeof(param));
		ipu_init_channel(DIRECT_ASYNC1, &param);
		ipu_disp_direct_write(DIRECT_ASYNC1, disoff, 0);
		msleep(60);
		ipu_disp_direct_write(DIRECT_ASYNC1, slpin, 0);
		msleep(1);
		ipu_uninit_channel(DIRECT_ASYNC1);
	}
	lcd_on = 0;
}
示例#2
0
/*
 * Send init commands to L4F00242T03
 *
 */
static void lcd_init(void)
{
	const u16 cmd[] = { 0x36, param(0), 0x3A, param(0x60) };

	dev_dbg(lcd_dev, "initializing LCD\n");
	if (lcd_spi) {
		spi_write(lcd_spi, (const u8 *)cmd, ARRAY_SIZE(cmd));
	} else {
		ipu_disp_direct_write(DIRECT_ASYNC1, 0x36, 0);
		ipu_disp_direct_write(DIRECT_ASYNC1, 0x100, 0);
		ipu_disp_direct_write(DIRECT_ASYNC1, 0x3A, 0);
		ipu_disp_direct_write(DIRECT_ASYNC1, 0x160, 0);
		msleep(1);
		ipu_uninit_channel(DIRECT_ASYNC1);
	}
}