Пример #1
0
static int msm_fb_dsi_client_reset(void)
{
	int rc = 0;

	if (machine_is_msm7627a_qrd1())
		rc = msm_fb_dsi_client_qrd1_reset();
	else if (machine_is_msm7627a_evb() || machine_is_msm8625_evb()
						|| machine_is_msm8625_evt())
		rc = msm_fb_dsi_client_qrd3_reset();
	else
		rc = msm_fb_dsi_client_msm_reset();

	return rc;

}
static int msm_fb_dsi_client_reset(void)
{
	int rc = 0;

	if (machine_is_msm8225_cellon())
		rc = msm_fb_dsi_client_cellon_reset();
	else if (machine_is_msm7627a_qrd1())
		rc = msm_fb_dsi_client_qrd1_reset();
	else if (machine_is_msm7627a_evb() || machine_is_msm8625_evb() || 
			machine_is_msm8625_qrd5()|| machine_is_msm7x27a_qrd5a() || 
			machine_is_msm8625_evt())
		rc = msm_fb_dsi_client_qrd3_reset();
	else if (machine_is_msm8625_skua())
		rc = msm_fb_dsi_client_skua_reset();
	else
		rc = msm_fb_dsi_client_msm_reset();

	return rc;
}
static int msm_fb_dsi_client_reset(void)
{
	int rc = 0;
#if 1 // #suwg.
	printk("xxx %s \n",__func__);
	return rc;
#endif
	if (machine_is_msm7627a_qrd1())
		rc = msm_fb_dsi_client_qrd1_reset();
	else if (machine_is_msm7627a_evb() || machine_is_msm8625_evb()
                        || machine_is_msm8625_qrd5() || machine_is_msm7x27a_qrd5a())
		rc = msm_fb_dsi_client_qrd3_reset();
        else if (machine_is_msm8625q_skud() || machine_is_msm8625q_evbd())
                rc = msm_fb_dsi_client_skud_reset();
        else if (machine_is_msm8625q_skue())
                rc = msm_fb_dsi_client_skue_reset();
	else
		rc = msm_fb_dsi_client_msm_reset();

	return rc;

}
static int mipi_dsi_panel_msm_power(int on)
{
	int rc = 0;





	/* Power off, Reset Pin pull LOW must before power source off */
	//if ((!on) || (!dsi_gpio_initialized)){
	if (!on){
		rc = msm_fb_dsi_client_msm_reset(1);
		if (rc < 0) {
			pr_err("[DISPLAY] %s: Failed to pull low lcm reset\n", __func__);
			goto fail_gpio2;
		}
	}

	/* I2C-controlled GPIO Expander -init of the GPIOs very late */
	if (unlikely(!dsi_gpio_initialized)) {

		rc = regulator_bulk_get(NULL, ARRAY_SIZE(fih_regs_dsi), fih_regs_dsi);
		if (rc) {
			pr_err("[DISPLAY]%s: could not get regulators: %d\n",
					__func__, rc);
			goto fail_gpio2;
		}

		rc = regulator_bulk_set_voltage(ARRAY_SIZE(fih_regs_dsi),
						fih_regs_dsi);
		if (rc) {
			pr_err("[DISPLAY]%s: could not set voltages: %d\n",
					__func__, rc);
			goto fail_vreg;
		}

		msm_fb_dsi_client_msm_reset(1);

		dsi_gpio_initialized = 1;
	}

	rc = on ? regulator_bulk_enable(ARRAY_SIZE(fih_regs_dsi), fih_regs_dsi) :
		  regulator_bulk_disable(ARRAY_SIZE(fih_regs_dsi), fih_regs_dsi);

	if (rc)
		pr_err("[DISPLAY]%s: could not %sable regulators: %d\n",
				__func__, on ? "en" : "dis", rc);

printk(KERN_INFO "[DISPLAY]%s: X\n", __func__);

	return rc;
fail_vreg:
	regulator_bulk_free(ARRAY_SIZE(fih_regs_dsi), fih_regs_dsi);
fail_gpio2:
	//gpio_free(GPIO_BACKLIGHT_EN);
//fail_gpio1:
	//gpio_free(GPIO_DISPLAY_PWR_EN);
	dsi_gpio_initialized = 0;
    printk(KERN_ERR "[DISPLAY]%s: X, failed\n", __func__);

	return rc;
}