Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2cb2b512 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: mdss: Configure TE GPIO using gpiomux framework"

parents eeee65e3 3266381a
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -715,6 +715,20 @@ static struct gpiomux_setting lcd_en_sus_cfg = {
	.pull = GPIOMUX_PULL_DOWN,
};

static struct gpiomux_setting lcd_te_act_cfg = {
	.func = GPIOMUX_FUNC_1,
	.drv = GPIOMUX_DRV_2MA,
	.pull = GPIOMUX_PULL_DOWN,
	.dir = GPIOMUX_IN,
};

static struct gpiomux_setting lcd_te_sus_cfg = {
	.func = GPIOMUX_FUNC_1,
	.drv = GPIOMUX_DRV_2MA,
	.pull = GPIOMUX_PULL_DOWN,
	.dir = GPIOMUX_IN,
};

static struct msm_gpiomux_config msm_lcd_configs[] __initdata = {
	{
		.gpio = 96,			/* LCD RESET */
@@ -739,6 +753,16 @@ static struct msm_gpiomux_config msm_lcd_configs[] __initdata = {
	},
};

static struct msm_gpiomux_config msm_lcd_te_configs[] __initdata = {
	{
		.gpio = 12,			/* TEAR ENABLE */
		.settings = {
			[GPIOMUX_ACTIVE]    = &lcd_te_act_cfg,
			[GPIOMUX_SUSPENDED] = &lcd_te_sus_cfg,
		},
	},
};

static struct gpiomux_setting auxpcm_act_cfg = {
	.func = GPIOMUX_FUNC_1,
	.drv = GPIOMUX_DRV_8MA,
@@ -1217,6 +1241,8 @@ void __init apq8084_init_gpiomux(void)
	}
	msm_gpiomux_install_nowrite(msm_lcd_configs,
			ARRAY_SIZE(msm_lcd_configs));
	msm_gpiomux_install(msm_lcd_te_configs,
			ARRAY_SIZE(msm_lcd_te_configs));
	msm_gpiomux_install(apq8084_pri_ter_auxpcm_configs,
			ARRAY_SIZE(apq8084_pri_ter_auxpcm_configs));

+27 −0
Original line number Diff line number Diff line
@@ -238,6 +238,20 @@ static struct gpiomux_setting lcd_rst_sus_cfg = {
	.pull = GPIOMUX_PULL_DOWN,
};

static struct gpiomux_setting lcd_te_act_cfg = {
	.func = GPIOMUX_FUNC_1,
	.drv = GPIOMUX_DRV_2MA,
	.pull = GPIOMUX_PULL_DOWN,
	.dir = GPIOMUX_IN,
};

static struct gpiomux_setting lcd_te_sus_cfg = {
	.func = GPIOMUX_FUNC_1,
	.drv = GPIOMUX_DRV_2MA,
	.pull = GPIOMUX_PULL_DOWN,
	.dir = GPIOMUX_IN,
};

static struct msm_gpiomux_config msm_lcd_configs[] __initdata = {
	{
		.gpio = 25,		/* LCD Reset */
@@ -255,6 +269,16 @@ static struct msm_gpiomux_config msm_lcd_configs[] __initdata = {
	}
};

static struct msm_gpiomux_config msm_lcd_te_configs[] __initdata = {
	{
		.gpio = 24,		/* Tear Enable */
		.settings = {
			[GPIOMUX_ACTIVE]    = &lcd_te_act_cfg,
			[GPIOMUX_SUSPENDED] = &lcd_te_sus_cfg,
		},
	}
};

static struct msm_gpiomux_config msm_blsp_configs[] __initdata = {
	{
		.gpio      = 0,		/* BLSP1 QUP1 SPI_DATA_MOSI */
@@ -926,6 +950,9 @@ void __init msm8226_init_gpiomux(void)
	msm_gpiomux_install_nowrite(msm_lcd_configs,
			ARRAY_SIZE(msm_lcd_configs));

	msm_gpiomux_install(msm_lcd_te_configs,
			ARRAY_SIZE(msm_lcd_te_configs));

	msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs));

	if (of_board_is_skuf())
+5 −0
Original line number Diff line number Diff line
@@ -210,6 +210,9 @@ static struct msm_gpiomux_config msm_lcd_configs[] __initdata = {
			[GPIOMUX_SUSPENDED] = &lcd_en_sus_cfg,
		},
	},
};

static struct msm_gpiomux_config msm_lcd_te_configs[] __initdata = {
	{
		.gpio = 12,
		.settings = {
@@ -760,6 +763,8 @@ void __init msm8610_init_gpiomux(void)
			ARRAY_SIZE(wcnss_5wire_interface));
	msm_gpiomux_install_nowrite(msm_lcd_configs,
				ARRAY_SIZE(msm_lcd_configs));
	msm_gpiomux_install(msm_lcd_te_configs,
				ARRAY_SIZE(msm_lcd_te_configs));
	msm_gpiomux_install(msm_keypad_configs,
				ARRAY_SIZE(msm_keypad_configs));
	msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs));
+27 −0
Original line number Diff line number Diff line
@@ -271,6 +271,20 @@ static struct gpiomux_setting lcd_en_sus_cfg = {
	.pull = GPIOMUX_PULL_DOWN,
};

static struct gpiomux_setting lcd_te_act_cfg = {
	.func = GPIOMUX_FUNC_1,
	.drv = GPIOMUX_DRV_2MA,
	.pull = GPIOMUX_PULL_DOWN,
	.dir = GPIOMUX_IN,
};

static struct gpiomux_setting lcd_te_sus_cfg = {
	.func = GPIOMUX_FUNC_1,
	.drv = GPIOMUX_DRV_2MA,
	.pull = GPIOMUX_PULL_DOWN,
	.dir = GPIOMUX_IN,
};

static struct gpiomux_setting atmel_resout_sus_cfg = {
	.func = GPIOMUX_FUNC_GPIO,
	.drv = GPIOMUX_DRV_6MA,
@@ -584,6 +598,16 @@ static struct msm_gpiomux_config msm_lcd_configs[] __initdata = {
	},
};

static struct msm_gpiomux_config msm_lcd_te_configs[] __initdata = {
	{
		.gpio = 12,
		.settings = {
			[GPIOMUX_ACTIVE]    = &lcd_te_act_cfg,
			[GPIOMUX_SUSPENDED] = &lcd_te_sus_cfg,
		},
	},
};

static struct msm_gpiomux_config msm_epm_configs[] __initdata = {
	{
		.gpio      = 81,		/* EPM enable */
@@ -1545,6 +1569,9 @@ void __init msm_8974_init_gpiomux(void)
	if (of_board_is_fluid())
		msm_gpiomux_install(msm_mhl_configs,
				    ARRAY_SIZE(msm_mhl_configs));
	else
		msm_gpiomux_install(msm_lcd_te_configs,
				    ARRAY_SIZE(msm_lcd_te_configs));

	if (of_board_is_liquid() ||
	    (of_board_is_dragonboard() && machine_is_apq8074()))
+0 −34
Original line number Diff line number Diff line
@@ -64,7 +64,6 @@ static int dsi_panel_handler(struct mdss_panel_data *pdata, int enable)
				panel_data);

	if (enable && pdata->panel_info.panel_power_on == 0) {
		dsi_ctrl_gpio_request(ctrl_pdata);
		mdss_dsi_panel_reset(pdata, 1);
		pdata->panel_info.panel_power_on = 1;
		rc = ctrl_pdata->on(pdata);
@@ -76,7 +75,6 @@ static int dsi_panel_handler(struct mdss_panel_data *pdata, int enable)
		rc = ctrl_pdata->off(pdata);
		pdata->panel_info.panel_power_on = 0;
		mdss_dsi_panel_reset(pdata, 0);
		dsi_ctrl_gpio_free(ctrl_pdata);
	}
	return rc;
}
@@ -157,15 +155,6 @@ static int dsi_parse_gpio(struct platform_device *pdev,
		pr_err("%s:%d, Disp_en gpio not specified\n",
						__func__, __LINE__);

	ctrl_pdata->disp_te_gpio = -1;
	if (ctrl_pdata->panel_data.panel_info.mipi.mode == DSI_CMD_MODE) {
		ctrl_pdata->disp_te_gpio = of_get_named_gpio(np,
						"qcom,platform-te-gpio", 0);
		if (!gpio_is_valid(ctrl_pdata->disp_te_gpio))
			pr_err("%s:%d, Disp_te gpio not specified\n",
							__func__, __LINE__);
	}

	ctrl_pdata->rst_gpio = of_get_named_gpio(np,
					"qcom,platform-reset-gpio", 0);
	if (!gpio_is_valid(ctrl_pdata->rst_gpio))
@@ -207,29 +196,6 @@ void dsi_ctrl_config_deinit(struct platform_device *pdev,
	module_power->num_vreg = 0;
}

int dsi_ctrl_gpio_request(struct mdss_dsi_ctrl_pdata *ctrl_pdata)
{
	int rc = 0;

	if (gpio_is_valid(ctrl_pdata->disp_te_gpio)) {
		rc = gpio_request(ctrl_pdata->disp_te_gpio, "disp_te");
		if (rc)
			ctrl_pdata->disp_te_gpio_requested = 0;
		else
			ctrl_pdata->disp_te_gpio_requested = 1;
	}

	return rc;
}

void dsi_ctrl_gpio_free(struct mdss_dsi_ctrl_pdata *ctrl_pdata)
{
	if (ctrl_pdata->disp_te_gpio_requested) {
		gpio_free(ctrl_pdata->disp_te_gpio);
		ctrl_pdata->disp_te_gpio_requested = 0;
	}
}

static int dsi_parse_vreg(struct device *dev, struct dss_module_power *mp)
{
	int i = 0, rc = 0;
Loading