From 3c1e596bc1b766fff4ccf46f3f3898018c1bb3d1 Mon Sep 17 00:00:00 2001 From: Markinus Date: Sat, 28 Aug 2010 01:53:50 +0200 Subject: [PATCH] htcleo: add panel file and configuration --- arch/arm/configs/htcleo_defconfig | 2 +- arch/arm/mach-msm/Makefile | 2 +- arch/arm/mach-msm/board-htcleo-panel.c | 975 +++++++++++++++++++++++++ arch/arm/mach-msm/board-htcleo.h | 3 + 4 files changed, 980 insertions(+), 2 deletions(-) create mode 100644 arch/arm/mach-msm/board-htcleo-panel.c diff --git a/arch/arm/configs/htcleo_defconfig b/arch/arm/configs/htcleo_defconfig index 9728e724..b1461681 100644 --- a/arch/arm/configs/htcleo_defconfig +++ b/arch/arm/configs/htcleo_defconfig @@ -254,7 +254,7 @@ CONFIG_MSM_QDSP6=y CONFIG_WIFI_CONTROL_FUNC=y # CONFIG_WIFI_MEM_PREALLOC is not set # CONFIG_VIRTUAL_KPANIC_PARTITION is not set -CONFIG_HTC_FB_CONSOLE=y +# CONFIG_HTC_FB_CONSOLE is not set CONFIG_VERY_EARLY_CONSOLE=y CONFIG_HTCLEO_ENABLE_MULTI_TOUCH=y # CONFIG_ENABLE_BRAVO_UART_DRV is not set diff --git a/arch/arm/mach-msm/Makefile b/arch/arm/mach-msm/Makefile index 9a1d5161..34e9442d 100644 --- a/arch/arm/mach-msm/Makefile +++ b/arch/arm/mach-msm/Makefile @@ -100,7 +100,7 @@ obj-$(CONFIG_MACH_BRAVOC) += board-bravoc-rfkill.o board-bravoc-audio.o obj-$(CONFIG_MACH_BRAVOC) += board-bravoc-wifi.o htc_awb_cal.o obj-$(CONFIG_MACH_BRAVOC) += board-bravoc-microp.o -obj-$(CONFIG_MACH_HTCLEO) += board-htcleo.o board-htcleo-spi.o +obj-$(CONFIG_MACH_HTCLEO) += board-htcleo.o board-htcleo-spi.o board-htcleo-panel.o # MSM7x30 boards obj-$(CONFIG_ARCH_MSM7X30) += panel-samsungwvga-tl2796a.o panel-samsungwvga-s6e63m0.o panel-sonywvga-s6d16a0x21-7x30.o diff --git a/arch/arm/mach-msm/board-htcleo-panel.c b/arch/arm/mach-msm/board-htcleo-panel.c new file mode 100644 index 00000000..40d7f6ad --- /dev/null +++ b/arch/arm/mach-msm/board-htcleo-panel.c @@ -0,0 +1,975 @@ +/* linux/arch/arm/mach-msm/board-htcleo-panel.c +* +* Copyright (C) 2010 Cotulla +* +* This software is licensed under the terms of the GNU General Public +* License version 2, as published by the Free Software Foundation, and +* may be copied, distributed, and modified under those terms. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +#include "proc_comm.h" +#include "board-htcleo.h" +#include "devices.h" + + +typedef uint16_t UINT; + +struct spi_cmd +{ + uint16_t reg; + uint16_t val; + uint16_t delay; +} __attribute__((packed)); + + +#define PANELTYPE_UNKNOWN 0 +#define PANELTYPE_AUO 1 +#define PANELTYPE_SHARP 2 + +int htcleo_panel_type = -1; +int board_id = -1; +static struct vreg *vreg_lcd; + + +#define LCM_DELAY(a) msleep(a) + +// from board-htcleo-spi.c +extern void qspi_enable(); +extern void qspi_disable(); +extern int qspi_send_9bit(unsigned char id, unsigned data); +extern int qspi_send_16bit(unsigned char id, unsigned data); +extern int qspi_send(unsigned char id, unsigned data); + +static DEFINE_MUTEX(panel_lock); + +////////////////////////////////////////////////////////////////////////// + + +static uint8_t AUO_INIT_NORMAL[2124] = +{ + 0x01, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x86, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x86, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x12, 0x00, 0x01, 0x00, 0x01, 0x00, 0xC2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2A, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, + 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3B, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2A, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, 0x01, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x78, 0x00, 0x01, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + + +static uint8_t AUO_INIT_2V8[2178] = +{ + 0x01, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x86, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x86, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x31, 0x00, 0x01, 0x00, 0x01, 0x00, 0xC2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2A, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, + 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3B, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2A, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, 0x01, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x78, 0x00, 0x01, 0x00, 0xC1, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x32, 0x00, 0x14, 0x00, + 0x01, 0x00, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00 +}; + + +static uint8_t AUO_INIT_3V0[2178] = +{ + 0x01, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x86, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x86, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x31, 0x00, 0x01, 0x00, 0x01, 0x00, 0xC2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2A, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, + 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3B, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0E, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x2A, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x27, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x57, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3F, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x56, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0xB8, 0x00, + 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, 0x01, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x78, 0x00, 0x01, 0x00, 0xC1, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, + 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x42, 0x00, 0x14, 0x00, + 0x01, 0x00, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00 +}; + +static uint8_t AUO_DEINIT[36] = +{ + 0x01, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x64, 0x00 +}; + +////////////////////////////////////////////////////////////////////////// + +static uint8_t SHARP_INIT[60] = +{ + 0x00, 0x00, 0x11, 0x00, 0x6E, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xB9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00 +}; + + +static uint8_t SHARP_DEINIT[12] = +{ + 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 +}; + + +////////////////////////////////////////////////////////////////////////// +// SPI GPIO config +////////////////////////////////////////////////////////////////////////// + + +#define SPI_CLK 17 +#define SPI_DO 18 +#define SPI_DI 19 +#define SPI_CS 20 + +#define LCM_GPIO_CFG(gpio, func) \ + PCOM_GPIO_CFG(gpio, func, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_16MA) + +static uint32_t spi_on_gpio_table[] = +{ + LCM_GPIO_CFG(SPI_CLK, 1), + LCM_GPIO_CFG(SPI_CS, 1), + LCM_GPIO_CFG(SPI_DO, 1), + PCOM_GPIO_CFG(SPI_DI, 1, GPIO_INPUT, GPIO_NO_PULL, GPIO_16MA), +}; + +static uint32_t spi_off_gpio_table[] = +{ + LCM_GPIO_CFG(SPI_CLK, 0), + LCM_GPIO_CFG(SPI_CS, 0), + LCM_GPIO_CFG(SPI_DO, 0), + PCOM_GPIO_CFG(SPI_DI, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_16MA), +}; + +static int spi_gpio_switch(int on) +{ + config_gpio_table(!!on ? spi_on_gpio_table : spi_off_gpio_table, + ARRAY_SIZE(spi_on_gpio_table)); + return 0; +} + +////////////////////////////////////////////////////////////////////////// +// LCM GPIO config +////////////////////////////////////////////////////////////////////////// + +static uint32_t display_on_gpio_table[] = +{ + LCM_GPIO_CFG(HTCLEO_LCD_R1, 1), + LCM_GPIO_CFG(HTCLEO_LCD_R2, 1), + LCM_GPIO_CFG(HTCLEO_LCD_R3, 1), + LCM_GPIO_CFG(HTCLEO_LCD_R4, 1), + LCM_GPIO_CFG(HTCLEO_LCD_R5, 1), + LCM_GPIO_CFG(HTCLEO_LCD_G0, 1), + LCM_GPIO_CFG(HTCLEO_LCD_G1, 1), + LCM_GPIO_CFG(HTCLEO_LCD_G2, 1), + LCM_GPIO_CFG(HTCLEO_LCD_G3, 1), + LCM_GPIO_CFG(HTCLEO_LCD_G4, 1), + LCM_GPIO_CFG(HTCLEO_LCD_G5, 1), + LCM_GPIO_CFG(HTCLEO_LCD_B1, 1), + LCM_GPIO_CFG(HTCLEO_LCD_B2, 1), + LCM_GPIO_CFG(HTCLEO_LCD_B3, 1), + LCM_GPIO_CFG(HTCLEO_LCD_B4, 1), + LCM_GPIO_CFG(HTCLEO_LCD_B5, 1), + LCM_GPIO_CFG(HTCLEO_LCD_PCLK, 1), + LCM_GPIO_CFG(HTCLEO_LCD_VSYNC, 1), + LCM_GPIO_CFG(HTCLEO_LCD_HSYNC, 1), + LCM_GPIO_CFG(HTCLEO_LCD_DE, 1), +}; + + +static uint32_t display_off_gpio_table[] = +{ + LCM_GPIO_CFG(HTCLEO_LCD_R1, 0), + LCM_GPIO_CFG(HTCLEO_LCD_R2, 0), + LCM_GPIO_CFG(HTCLEO_LCD_R3, 0), + LCM_GPIO_CFG(HTCLEO_LCD_R4, 0), + LCM_GPIO_CFG(HTCLEO_LCD_R5, 0), + LCM_GPIO_CFG(HTCLEO_LCD_G0, 0), + LCM_GPIO_CFG(HTCLEO_LCD_G1, 0), + LCM_GPIO_CFG(HTCLEO_LCD_G2, 0), + LCM_GPIO_CFG(HTCLEO_LCD_G3, 0), + LCM_GPIO_CFG(HTCLEO_LCD_G4, 0), + LCM_GPIO_CFG(HTCLEO_LCD_G5, 0), + LCM_GPIO_CFG(HTCLEO_LCD_B1, 0), + LCM_GPIO_CFG(HTCLEO_LCD_B2, 0), + LCM_GPIO_CFG(HTCLEO_LCD_B3, 0), + LCM_GPIO_CFG(HTCLEO_LCD_B4, 0), + LCM_GPIO_CFG(HTCLEO_LCD_B5, 0), + LCM_GPIO_CFG(HTCLEO_LCD_PCLK, 0), + LCM_GPIO_CFG(HTCLEO_LCD_VSYNC, 0), + LCM_GPIO_CFG(HTCLEO_LCD_HSYNC, 0), + LCM_GPIO_CFG(HTCLEO_LCD_DE, 0), +}; + +static int panel_gpio_switch(int on) +{ + config_gpio_table(!!on ? display_on_gpio_table : display_off_gpio_table, + ARRAY_SIZE(display_on_gpio_table)); + return 0; +} + + +////////////////////////////////////////////////////////////////////////// + +static void auo_panel_cfg_setup(int on) +{ + int i, ret; + int spisize; + struct spi_cmd *spiseq; + + if (on) + { + if (board_id >= 4) + { + spiseq = (struct spi_cmd*)AUO_INIT_NORMAL; + spisize = ARRAY_SIZE(AUO_INIT_NORMAL) / 6; + } + else if (board_id >= 3) // 3V + { + spiseq = (struct spi_cmd*)AUO_INIT_3V0; + spisize = ARRAY_SIZE(AUO_INIT_3V0) / 6; + } + else // 2.8V + { + spiseq = (struct spi_cmd*)AUO_INIT_2V8; + spisize = ARRAY_SIZE(AUO_INIT_2V8) / 6; + } + } + else + { + spiseq = (struct spi_cmd*)AUO_DEINIT; + spisize = ARRAY_SIZE(AUO_DEINIT) / 6; + } + + qspi_enable(); + for (i = 0; i < spisize; i++) + { + ret = qspi_send_16bit(spiseq[i].reg, spiseq[i].val); + if (ret < 0) + { + printk("%s: spi_write fail!\n", __func__); + } + if (spiseq[i].delay) + { + LCM_DELAY(spiseq[i].delay); + } + } + qspi_disable(); +} + +static int auo_panel_init(struct msm_lcdc_panel_ops *ops) +{ + printk("%s\n", __func__); + return 0; +} + +static int auo_panel_unblank(struct msm_lcdc_panel_ops *ops) +{ + printk("%s\n", __func__); + + mutex_lock(&panel_lock); + + gpio_set_value(HTCLEO_GPIO_LCM_POWER, 1); + LCM_DELAY(2); + vreg_enable(vreg_lcd); + LCM_DELAY(2); + + gpio_set_value(HTCLEO_GPIO_LCM_RESET, 1); + LCM_DELAY(1); + gpio_set_value(HTCLEO_GPIO_LCM_RESET, 0); + LCM_DELAY(1); + gpio_set_value(HTCLEO_GPIO_LCM_RESET, 1); + LCM_DELAY(25); + + spi_gpio_switch(1); + panel_gpio_switch(1); + + LCM_DELAY(33); + + auo_panel_cfg_setup(1); + + LCM_DELAY(1); + + mutex_unlock(&panel_lock); + return 0; +} + +static int auo_panel_blank(struct msm_lcdc_panel_ops *ops) +{ + printk("%s\n", __func__); + mutex_lock(&panel_lock); + + auo_panel_cfg_setup(0); + + spi_gpio_switch(0); + panel_gpio_switch(0); + + gpio_set_value(HTCLEO_GPIO_LCM_RESET, 0); + LCM_DELAY(70); + vreg_disable(vreg_lcd); + gpio_set_value(HTCLEO_GPIO_LCM_POWER, 0); + + mutex_unlock(&panel_lock); + + return 0; +} + +////////////////////////////////////////////////////////////////////////// + +static void sharp_panel_cfg_setup(int on) +{ + int i, ret; + int spisize; + struct spi_cmd *spiseq; + + if (on) + { + spiseq = (struct spi_cmd*)SHARP_INIT; + spisize = ARRAY_SIZE(SHARP_INIT) / 6; + } + else + { + spiseq = (struct spi_cmd*)SHARP_DEINIT; + spisize = ARRAY_SIZE(SHARP_DEINIT) / 6; + } + + qspi_enable(); + for (i = 0; i < spisize; i++) + { + ret = qspi_send_9bit(spiseq[i].reg, spiseq[i].val); + if (ret < 0) + { + printk("%s: spi_write fail!\n", __func__); + } + if (spiseq[i].delay) + { + LCM_DELAY(spiseq[i].delay); + } + } + qspi_disable(); +} + +static int sharp_panel_init(struct msm_lcdc_panel_ops *ops) +{ + pr_info("%s\n", __func__); + return 0; +} + +static int sharp_panel_unblank(struct msm_lcdc_panel_ops *ops) +{ + pr_info("%s\n", __func__); + + mutex_lock(&panel_lock); + + gpio_set_value(HTCLEO_GPIO_LCM_POWER, 1); + + LCM_DELAY(2); + + vreg_enable(vreg_lcd); + + LCM_DELAY(2); + + gpio_set_value(HTCLEO_GPIO_LCM_RESET, 1); + + spi_gpio_switch(1); + panel_gpio_switch(1); + + LCM_DELAY(40); + + sharp_panel_cfg_setup(1); + + LCM_DELAY(57); + + mutex_unlock(&panel_lock); + return 0; + +} + +static int sharp_panel_blank(struct msm_lcdc_panel_ops *ops) +{ + pr_info("%s\n", __func__); + mutex_lock(&panel_lock); + + sharp_panel_cfg_setup(0); + + LCM_DELAY(60); + + spi_gpio_switch(0); + panel_gpio_switch(0); + + gpio_set_value(HTCLEO_GPIO_LCM_RESET, 0); + LCM_DELAY(2); + vreg_disable(vreg_lcd); + gpio_set_value(HTCLEO_GPIO_LCM_POWER, 0); + + mutex_unlock(&panel_lock); + return 0; +} + +////////////////////////////////////////////////////////////////////////// + +static int unk_panel_init(struct msm_lcdc_panel_ops *ops) +{ + return 0; +} + +static int unk_panel_unblank(struct msm_lcdc_panel_ops *ops) +{ + return 0; +} + +static int unk_panel_blank(struct msm_lcdc_panel_ops *ops) +{ + return 0; +} + +////////////////////////////////////////////////////////////////////////// + +static void detect_panel_type(void) +{ + uint32_t type; + void __iomem *glob_base; + + if (htcleo_panel_type != -1) + { + return; + } + + glob_base = ioremap(MSM_PANEL_PHYS, MSM_PANEL_SIZE); + type = readl(glob_base + 0x1034); + board_id = readl(glob_base + 0x1030); + iounmap(glob_base); + + printk("panel type is %d :", type); + printk("board id is %d :", board_id); + + if (type == 1) // AUO + { + printk(" AUO\n"); + htcleo_panel_type = PANELTYPE_AUO; + } + else if (type == 10) // SHARP + { + printk(" SHARP\n"); + htcleo_panel_type = PANELTYPE_SHARP; + } + else + { + printk(" UNKNOWN, stop system now\n"); + htcleo_panel_type = PANELTYPE_UNKNOWN; + BUG(); + } +} + +////////////////////////////////////////////////////////////////////////// + +static struct resource resources_msm_fb[] = +{ + { + .start = MSM_FB_BASE, + .end = MSM_FB_BASE + MSM_FB_SIZE - 1, + .flags = IORESOURCE_MEM, + }, +}; + + +static struct msm_lcdc_panel_ops unk_lcdc_panel_ops = +{ + .init = unk_panel_init, + .blank = unk_panel_blank, + .unblank = unk_panel_unblank, +}; + +static struct msm_lcdc_panel_ops auo_lcdc_panel_ops = +{ + .init = auo_panel_init, + .blank = auo_panel_blank, + .unblank = auo_panel_unblank, +}; + +static struct msm_lcdc_panel_ops sharp_lcdc_panel_ops = +{ + .init = sharp_panel_init, + .blank = sharp_panel_blank, + .unblank = sharp_panel_unblank, +}; + +static struct msm_lcdc_timing htcleo_lcdc_timing = +{ + .clk_rate = 24576000, + .hsync_pulse_width = 2, + .hsync_back_porch = 30, + .hsync_front_porch = 2, + .hsync_skew = 0, + .vsync_pulse_width = 2, + .vsync_back_porch = 5, + .vsync_front_porch = 2, + .vsync_act_low = 1, + .hsync_act_low = 1, + .den_act_low = 0, +}; + +static struct msm_fb_data htcleo_lcdc_fb_data = +{ + .xres = 480, + .yres = 800, + .width = 48, + .height = 80, + .output_format = 0, +}; + +static struct msm_lcdc_platform_data htcleo_lcdc_platform_data = +{ + .panel_ops = &auo_lcdc_panel_ops, + .timing = &htcleo_lcdc_timing, + .fb_id = 0, + .fb_data = &htcleo_lcdc_fb_data, + .fb_resource= &resources_msm_fb[0], +}; + +static struct platform_device htcleo_lcdc_device = +{ + .name = "msm_mdp_lcdc", + .id = -1, + .dev = + { + .platform_data = &htcleo_lcdc_platform_data, + }, +}; + + +int __init htcleo_init_panel(void) +{ + int ret=0; + pr_info("Init Panel\n"); + if (!machine_is_htcleo()) + return 0; + + vreg_lcd = vreg_get(0, "gp4"); + if (IS_ERR(vreg_lcd)) + { + return PTR_ERR(vreg_lcd); + } + + detect_panel_type(); + + ret = platform_device_register(&msm_device_mdp); + if (ret != 0) + return ret; + + if (htcleo_panel_type == PANELTYPE_AUO) + htcleo_lcdc_platform_data.panel_ops = &auo_lcdc_panel_ops; + else if (htcleo_panel_type == PANELTYPE_SHARP) + htcleo_lcdc_platform_data.panel_ops = &sharp_lcdc_panel_ops; + else + htcleo_lcdc_platform_data.panel_ops = &unk_lcdc_panel_ops; + + ret = platform_device_register(&htcleo_lcdc_device); + if (ret != 0) + return ret; + + return 0; +} + +device_initcall(htcleo_init_panel); diff --git a/arch/arm/mach-msm/board-htcleo.h b/arch/arm/mach-msm/board-htcleo.h index 20aee92f..36435646 100644 --- a/arch/arm/mach-msm/board-htcleo.h +++ b/arch/arm/mach-msm/board-htcleo.h @@ -57,6 +57,9 @@ #define MSM_RAM_CONSOLE_BASE (MSM_EBI1_BANK0_BASE + MSM_EBI1_BANK0_SIZE - MSM_RAM_CONSOLE_SIZE) //0x2FFC0000 */ +#define MSM_PANEL_PHYS 0x00080000 +#define MSM_PANEL_SIZE 0x00080000 + /* End EBI region */ #define HTCLEO_GPIO_PS_HOLD 25