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

Commit 53ae95f6 authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Tony Lindgren
Browse files

ARM: OMAP3: McBSP: New callback for McBSP2/3 ICLK idle configuration



McBSP2/3 module's sidetone module operates using the module's ICLK clock.
When the Sidetone is in use the interface clock of the module must not
idle. The new callback expects to receive the *clk of the module's ick and
not the id number of the McBSP. This will allow us more cleanups and going
to simplify the ICLK handling.

Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 3b80c9be
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -48,6 +48,17 @@ static int omap3_enable_st_clock(unsigned int id, bool enable)
		return omap2_clk_allow_idle(mcbsp_iclks[id]);
}

static int omap3_mcbsp_force_ick_on(struct clk *clk, bool force_on)
{
	if (!clk)
		return 0;

	if (force_on)
		return omap2_clk_deny_idle(clk);
	else
		return omap2_clk_allow_idle(clk);
}

static int __init omap_init_mcbsp(struct omap_hwmod *oh, void *unused)
{
	int id, count = 1;
@@ -97,6 +108,7 @@ static int __init omap_init_mcbsp(struct omap_hwmod *oh, void *unused)
		oh_device[1] = omap_hwmod_lookup((
		(struct omap_mcbsp_dev_attr *)(oh->dev_attr))->sidetone);
		pdata->enable_st_clock = omap3_enable_st_clock;
		pdata->force_ick_on = omap3_mcbsp_force_ick_on;
		sprintf(clk_name, "mcbsp%d_ick", id);
		mcbsp_iclks[id] = clk_get(NULL, clk_name);
		count++;
+1 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ struct omap_mcbsp_platform_data {
	bool has_wakeup; /* Wakeup capability */
	bool has_ccr; /* Transceiver has configuration control registers */
	int (*enable_st_clock)(unsigned int, bool);
	int (*force_ick_on)(struct clk *clk, bool force_on);
};

/**