/** * LCD ON. * * Set LCD On via MIPI interface or I2C-Slave interface. * Set Backlight on. * * @param pdev * * @return int */ static int mipi_d2l_lcd_on(struct platform_device *pdev) { int ret = 0; u32 chip_id; struct msm_fb_data_type *mfd; pr_info("%s.\n", __func__); /* wait for valid clock before sending data over DSI or I2C. */ msleep(30); mfd = platform_get_drvdata(pdev); d2l_mfd = mfd; if (!mfd) return -ENODEV; if (mfd->key != MFD_KEY) return -EINVAL; chip_id = mipi_d2l_read_reg(mfd, IDREG); if (chip_id != TC358764XBG_ID) { pr_err("%s: invalid chip_id=0x%x", __func__, chip_id); return -ENODEV; } ret = mipi_d2l_dsi_init_sequence(mfd); if (ret) return ret; mipi_d2l_write_reg(mfd, GPIOC, d2l_gpio_out_mask); /* Set GPIOs: gpio#4=U/D=0 , gpio#3=L/R=1 , gpio#2,1=CABC=0. */ mipi_d2l_write_reg(mfd, GPIOO, d2l_gpio_out_val); if (bl_level == 0) bl_level = PWM_LEVEL * 2 / 3 ; /* Default ON value */ /* Set backlight via PWM */ if (bl_pwm) { ret = mipi_d2l_set_backlight_level(bl_pwm, bl_level); if (ret) pr_err("%s.mipi_d2l_set_backlight_level.ret=%d", __func__, ret); } pr_info("%s.ret=%d.\n", __func__, ret); return ret; }
/** * LCD ON. * * Set LCD On via MIPI interface or I2C-Slave interface. * Set Backlight on. * * @param pdev * * @return int */ static int mipi_d2l_lcd_on(struct platform_device *pdev) { int ret = 0; u32 chip_id; struct msm_fb_data_type *mfd; pr_info("%s.\n", __func__); /* wait for valid clock before sending data over DSI or I2C. */ msleep(30); mfd = platform_get_drvdata(pdev); d2l_mfd = mfd; if (!mfd) return -ENODEV; if (mfd->key != MFD_KEY) return -EINVAL; chip_id = mipi_d2l_read_reg(mfd, IDREG); if (chip_id != TC358764XBG_ID) { pr_err("%s: invalid chip_id=0x%x", __func__, chip_id); return -ENODEV; } ret = mipi_d2l_dsi_init_sequence(mfd); if (ret) return ret; mipi_d2l_write_reg(mfd, GPIOC, d2l_gpio_out_mask); /* Set GPIOs: gpio#4=U/D=0 , gpio#3=L/R=1 , gpio#2,1=CABC=0. */ mipi_d2l_write_reg(mfd, GPIOO, d2l_gpio_out_val); #if defined(CONFIG_FB_MSM_MIPI_BOEOT_TFT_VIDEO_WSVGA_PT_PANEL) \ || defined(CONFIG_FB_MSM_MIPI_SAMSUNG_TFT_VIDEO_WXGA_PT_PANEL) if ((bl_level == 0) && (!initial_powerseq)) { bl_level = BRIGHTNESS_DEFAULT ; /* Default ON value */ INIT_DELAYED_WORK(&det_work, blenable_work_func); schedule_delayed_work(&det_work, msecs_to_jiffies(250)); } #else if ((bl_level == 0) && (!initial_powerseq)) bl_level = PWM_LEVEL * 2 / 3 ; /* Default ON value */ /* Set backlight via PWM */ if (bl_pwm) { ret = mipi_d2l_set_backlight_level(bl_pwm, bl_level); if (ret) pr_err("%s.mipi_d2l_set_backlight_level.ret=%d", __func__, ret); } #endif pr_info("%s.ret=%d.\n", __func__, ret); /* Set power on flag */ initial_powerseq = 1; return ret; }