Innolux 10.4”
인치 LCD 와 CR-LIF2-RT104R001_V1 보드를 준비합니다.
“LSA40AT9001” LCD Datsheet를 보면 타이밍이 나옵니다.
타이밍을 맞추도록 합니다.
전에 Configuration 파일을 수정을 합니다.
“drivers/video/Kconfig”
config FB_INNO_104INCH_800X600 tristate "Mango LSA40AT9001 10.4INCH 800x600 Display" depends on FB_DA8XX
---help--- This is the frame buffer device driver for the 10.4inch 800_600 found on DA8xx/OMAP-L1xx SoCs. |
“drivers/video/da8xx-fb.c” 파일에 아래 내용 추가
#ifdef CONFIG_FB_INNO_104INCH_800X600 /* Innolux 10.4" Distplay */ [4] = { .name = "INNO_LSA40AT9001", .width = 800, .height = 600, .hfp = 60,//354,//210, .hbp = 60,//46, .hsw = 200,//40,//1, .vfp = 5,//77,//12, .vbp = 5,//23, .vsw = 25,//20,//1, .pxl_clk = 50000000,//40MHz .invert_pxl_clk = 0, },
#endif |
"arch/arm/mach-omap2/board-am335xevm.c" 파일에 내용 추가
#ifdef CONFIG_FB_INNO_104INCH_800X600 struct da8xx_lcdc_platform_data INNO_LSA40AT9001_pdata = { .manu_name = "INNO", .controller_data = &lcd_cfg, .panel_power_ctrl= lcd_pwr_ctl,
.type = "INNO_LSA40AT9001", }; #endif
|
그리고 , 아래 내용 추가 합니다.
static void lcdc_init(int evm_id, int profile) { struct da8xx_lcdc_platform_data *lcdc_pdata;
MANGO_DBG_DEFAULT;
setup_pin_mux(lcdc_pin_mux);
if (conf_disp_pll(250000000)) { pr_info("Failed configure display PLL, not attempting to" "register LCDC\n"); return; } MANGO_DBG("evm_id=%d\n",evm_id);
switch (evm_id) { case GEN_PURP_EVM: case GEN_PURP_DDR3_EVM: lcdc_pdata = &TFC_S9700RTWV35TR_01B_pdata; break; case EVM_SK: #ifdef CONFIG_FB_INNO_7INCH_800X480 lcdc_pdata=&INO_EJ050NA_pdata; #endif #ifdef CONFIG_FB_INNO_7INCH_1024X600 lcdc_pdata=&INNO_AT070TNA2_pdata; ft_touch_init();//crazyboys 20150520 #endif #ifdef
CONFIG_FB_INNO_104INCH_800X600
lcdc_pdata=&INNO_LSA40AT9001_pdata; #endif |
커널 configuration을 합니다.
CONFIG_TOUCHSCREEN_TI_TSC=y CONFIG_FB_INNO_104INCH_800X600=y |
컴파일 후 이미지를 SD card에 Write 후 확인 해 보면 됩니다.
전압을 확인 결과
AVDD : 10.3V
VGH : 18V
VGL : - 7.3V
테스트 결과
# fb-test |
# ts_calibrate |
명령으로 터치 보정을 합니다.
터치 테스트는 아래 명령으로 테스트 하면 됩니다.
# ts_test |
명령을 실행하면, 아래와 같이 화면이 나옵니다.
내용