static void lcm_suspend(void) { unsigned int data_array[16]; data_array[0]=0x00280500; // Display Off dsi_set_cmdq(data_array, 1, 1); data_array[0] = 0x00100500; // Sleep In dsi_set_cmdq(data_array, 1, 1); #if 1 DSI_Enter_ULPM(1); /* Enter low power mode */ MDELAY(60); //SET_RESET_PIN(0); mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO); MDELAY(150); dct_pmic_VGP2_enable(0); /* [Ted 5-28] Disable VCI power to prevent lcd polarization */ lcm_is_init = false; #else SET_RESET_PIN(1); SET_RESET_PIN(0); MDELAY(1); // 1ms SET_RESET_PIN(1); MDELAY(120); lcm_util.set_gpio_out(GPIO_LCD_ENN, GPIO_OUT_ZERO); lcm_util.set_gpio_out(GPIO_LCD_ENP, GPIO_OUT_ZERO); #endif }
static void lcm_init(void) { #ifdef BUILD_LK printf("%s, LK\n",__func__); #else printk("%s, kernel\n",__func__); #endif lcm_is_init = true; dct_pmic_VGP2_enable(1); MDELAY(10); mt_set_gpio_mode(GPIO112,GPIO_MODE_00); mt_set_gpio_dir(GPIO112,GPIO_DIR_OUT); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(5); //SET_RESET_PIN(1); mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO); MDELAY(5); //SET_RESET_PIN(0); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(5); //SET_RESET_PIN(1); mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO); MDELAY(5); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(20); TC358768_DCS_write_1A_1P(0xFF, 0xEE); TC358768_DCS_write_1A_1P(0xFB, 0x01); TC358768_DCS_write_1A_1P(0x18, 0x40); MDELAY(10); TC358768_DCS_write_1A_1P(0X18, 0X00); MDELAY(20); init_lcm_registers(); }
static void lcm_init(void) { //SET_RESET_PIN(0); //MDELAY(20); //SET_RESET_PIN(1); //MDELAY(20); lcm_is_init = true; dct_pmic_VGP2_enable(1); MDELAY(5); mt_set_gpio_mode(GPIO112,GPIO_MODE_00); mt_set_gpio_dir(GPIO112,GPIO_DIR_OUT); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(5); //SET_RESET_PIN(0); mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO); MDELAY(5); //SET_RESET_PIN(1); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(20); dsi_set_cmdq_V3(lcm_initialization_setting,sizeof(lcm_initialization_setting)/sizeof(lcm_initialization_setting[0]),1); #ifdef BUILD_LK printf("[LK]---cmd---hx8394_hd720_dsi_vdo_truly----%s------\n",__func__); #else printk("[KERNEL]---cmd---hx8394_hd720_dsi_vdo_truly----%s------\n",__func__); #endif }
static void lcm_suspend(void) { unsigned int data_array[16]; //unsigned char buffer[2]; #ifdef BUILD_LK printf("%s, LK\n",__func__); #else printk("%s, kernel\n",__func__); #endif data_array[0]=0x00280500; // Display Off dsi_set_cmdq(data_array, 1, 1); data_array[0] = 0x00100500; // Sleep In dsi_set_cmdq(data_array, 1, 1); DSI_Enter_ULPM(1); /* Enter low power mode */ //Note: we need set PMIC related GPIO to 0, or LCM panel would be current leakage // dsi_lcm_set_gpio_out(GPIO139, GPIO_OUT_ZERO); MDELAY(60); //SET_RESET_PIN(0); mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO); MDELAY(150); dct_pmic_VGP2_enable(0); /* [Ted 5-28] Disable VCI power to prevent lcd polarization */ lcm_is_init = false; }
static unsigned int lcm_compare_id(void) { unsigned int id_vol3 = 0xffffffff; dct_pmic_VGP2_enable(1); MDELAY(10); //SET_RESET_PIN(1); mt_set_gpio_mode(GPIO112,GPIO_MODE_00); mt_set_gpio_dir(GPIO112,GPIO_DIR_OUT); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(5); //SET_RESET_PIN(0); mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO); MDELAY(5); //SET_RESET_PIN(1); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(5); id_vol3 = GN_IMM_GetOneChannelValue(0, 20); LCM_DEBUG("trust_nt35596 lcm_compare_id(id_vol)= %d. \n", id_vol3); if((id_vol3>700) && (id_vol3<900)) //Trust id pin voltage is about 0.8v { return 1; } else { return 0; } }
static void lcm_init(void) { // Enable EN_PWR for NT50198 PMIC // dsi_lcm_set_gpio_mode(GPIO139, GPIO_MODE_GPIO); // dsi_lcm_set_gpio_dir(GPIO139, GPIO_DIR_OUT); // dsi_lcm_set_gpio_out(GPIO139, GPIO_OUT_ONE); //note: // we need set PMIC related GPIO to power on D-IC, or LCM panel not work #ifdef BUILD_LK printf("%s, LK\n",__func__); #else printk("%s, kernel\n",__func__); #endif lcm_is_init = true; dct_pmic_VGP2_enable(1); MDELAY(10); //SET_RESET_PIN(1); mt_set_gpio_mode(GPIO112,GPIO_MODE_00); mt_set_gpio_dir(GPIO112,GPIO_DIR_OUT); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(5); //SET_RESET_PIN(0); mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO); MDELAY(5); //SET_RESET_PIN(1); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(5); mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO); MDELAY(5); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(20); TC358768_DCS_write_1A_1P(0xFF, 0xEE); TC358768_DCS_write_1A_1P(0xFB, 0x01); TC358768_DCS_write_1A_1P(0x18, 0x40); MDELAY(10); TC358768_DCS_write_1A_1P(0X18, 0X00); MDELAY(20); init_lcm_registers(); }
static unsigned int lcm_compare_id(void) { unsigned char buffer[5] = {0}; unsigned int data_array[16]; dct_pmic_VGP2_enable(1); MDELAY(5); //SET_RESET_PIN(1); mt_set_gpio_mode(GPIO112,GPIO_MODE_00); mt_set_gpio_dir(GPIO112,GPIO_DIR_OUT); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(5); //SET_RESET_PIN(0); mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO); MDELAY(5); //SET_RESET_PIN(1); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(5); data_array[0] = 0x00023700;// read id return 1 byte dsi_set_cmdq(&data_array, 1, 1); read_reg_v2(0xf4, buffer, 5); #ifdef BUILD_LK printf("%s, LK nt35590 debug: nt35590 id = 0x%08x\n", __func__, data_array[0]); #else printk("%s, kernel nt35590 horse debug: nt35590 id = 0x%08x\n", __func__, data_array[0]); #endif if(buffer[0]== LCM_ID_NT35596) return 1; else return 0; }
static unsigned int lcm_compare_id(void) { unsigned char buffer[5] = {0}; unsigned int data_array[16]; dct_pmic_VGP2_enable(1); MDELAY(5); //SET_RESET_PIN(1); mt_set_gpio_mode(GPIO112,GPIO_MODE_00); mt_set_gpio_dir(GPIO112,GPIO_DIR_OUT); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(5); //SET_RESET_PIN(0); mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO); MDELAY(5); //SET_RESET_PIN(1); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(5); data_array[0] = 0x00053700;// read id return 1 byte dsi_set_cmdq(&data_array, 1, 1); read_reg_v2(0xBF, buffer, 5); #ifdef BUILD_LK printf("r63315 compare_id buf[0]=0x%x,buf[1]=0x%x,buf[2]=0x%x,buf[3]=0x%x,buf[4]=0x%x\n",buffer[0],buffer[1],buffer[2],buffer[3],buffer[4]); #else printk("r63315 compare_id buf[0]=0x%x,buf[1]=0x%x,buf[2]=0x%x,buf[3]=0x%x,buf[4]=0x%x\n",buffer[0],buffer[1],buffer[2],buffer[3],buffer[4]); #endif if ( (0x33 == buffer[2]) && (0x15 == buffer[3]) ) { return 1; } return 0; }
static unsigned int lcm_compare_id(void) { #if 0 unsigned int ret = 0; ret = mt_get_gpio_in(GPIO92); #if defined(BUILD_LK) printf("%s, [jx]hx8394a GPIO92 = %d \n", __func__, ret); #endif return (ret == 0)?1:0; #else unsigned int id=0; unsigned char buffer[2] = {0,0}; unsigned int array[16]; dct_pmic_VGP2_enable(1); mt_set_gpio_mode(GPIO112,GPIO_MODE_00); mt_set_gpio_dir(GPIO112,GPIO_DIR_OUT); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(5); //SET_RESET_PIN(0); mt_set_gpio_out(GPIO112,GPIO_OUT_ZERO); MDELAY(50); //SET_RESET_PIN(1); mt_set_gpio_out(GPIO112,GPIO_OUT_ONE); MDELAY(105); array[0] = 0x00043902; array[1] = 0x9483FFB9;// page enable dsi_set_cmdq(&array, 2, 1); MDELAY(10); array[0] = 0x00023902; array[1] = 0x000013BA; dsi_set_cmdq(array, 2, 1); MDELAY(10); array[0] = 0x00013700;// return byte number dsi_set_cmdq(&array, 1, 1); MDELAY(10); read_reg_v2(0xF4, buffer, 1); id = buffer[0]; #ifdef BUILD_LK printf("[LK]---cmd---hx8394_hd720_dsi_vdo_truly----%s------[0x%x]\n",__func__,buffer[0]); #else printk("[KERNEL]---cmd---hx8394_hd720_dsi_vdo_truly----%s------[0x%x]\n",__func__,buffer[0]); #endif if(id==HX8394_LCM_ID) { int adcdata[4]; int lcmadc=0; IMM_GetOneChannelValue(0,adcdata,&lcmadc); lcmadc = lcmadc * 1500/4096; #ifdef BUILD_LK printf("[LK]---cmd---hx8394_hd720_dsi_vdo_truly----%s------adc[%d]\n",__func__,lcmadc); #else printk("[KERNEL]---cmd---hx8394_hd720_dsi_vdo_truly----%s------adc[%d]\n",__func__,lcmadc); #endif if(lcmadc < 200) return 1; } return 0;//(id == HX8394_LCM_ID)?1:0; #endif }