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

Commit d1f5857e authored by Tomi Valkeinen's avatar Tomi Valkeinen
Browse files

OMAP: DSS2: DSI: Add DSI pad muxing support



Add dsi_mux_pads function pointer to omap_dss_board_info, and use the
function pointer in DSI code to configure the DSI pads either to normal
DSI operation, or to pull down when in ULPS.

Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 22d6d676
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -244,6 +244,8 @@ static struct
	void __iomem	*base;
	int irq;

	void (*dsi_mux_pads)(bool enable);

	struct dsi_clock_info current_cinfo;

	bool vdds_dsi_enabled;
@@ -2035,6 +2037,9 @@ static int dsi_cio_init(struct omap_dss_device *dssdev)

	DSSDBGF();

	if (dsi.dsi_mux_pads)
		dsi.dsi_mux_pads(true);

	dsi_enable_scp_clk();

	/* A dummy read using the SCP interface to any DSIPHY register is
@@ -2122,6 +2127,8 @@ static int dsi_cio_init(struct omap_dss_device *dssdev)
		dsi_cio_disable_lane_override();
err_scp_clk_dom:
	dsi_disable_scp_clk();
	if (dsi.dsi_mux_pads)
		dsi.dsi_mux_pads(false);
	return r;
}

@@ -2129,6 +2136,8 @@ static void dsi_cio_uninit(void)
{
	dsi_cio_power(DSI_COMPLEXIO_POWER_OFF);
	dsi_disable_scp_clk();
	if (dsi.dsi_mux_pads)
		dsi.dsi_mux_pads(false);
}

static int _dsi_wait_reset(void)
@@ -3993,10 +4002,16 @@ static void dsi_calc_clock_param_ranges(void)

static int dsi_init(struct platform_device *pdev)
{
	struct omap_display_platform_data *dss_plat_data;
	struct omap_dss_board_info *board_info;
	u32 rev;
	int r, i;
	struct resource *dsi_mem;

	dss_plat_data = pdev->dev.platform_data;
	board_info = dss_plat_data->board_data;
	dsi.dsi_mux_pads = board_info->dsi_mux_pads;

	spin_lock_init(&dsi.irq_lock);
	spin_lock_init(&dsi.errors_lock);
	dsi.errors = 0;
+1 −0
Original line number Diff line number Diff line
@@ -233,6 +233,7 @@ struct omap_dss_board_info {
	int num_devices;
	struct omap_dss_device **devices;
	struct omap_dss_device *default_device;
	void (*dsi_mux_pads)(bool enable);
};

#if defined(CONFIG_OMAP2_DSS_MODULE) || defined(CONFIG_OMAP2_DSS)