mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-07 15:15:29 +00:00
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: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
3b80c9bef8
commit
53ae95f6d5
2 changed files with 13 additions and 0 deletions
|
@ -48,6 +48,17 @@ static int omap3_enable_st_clock(unsigned int id, bool enable)
|
||||||
return omap2_clk_allow_idle(mcbsp_iclks[id]);
|
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)
|
static int __init omap_init_mcbsp(struct omap_hwmod *oh, void *unused)
|
||||||
{
|
{
|
||||||
int id, count = 1;
|
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((
|
oh_device[1] = omap_hwmod_lookup((
|
||||||
(struct omap_mcbsp_dev_attr *)(oh->dev_attr))->sidetone);
|
(struct omap_mcbsp_dev_attr *)(oh->dev_attr))->sidetone);
|
||||||
pdata->enable_st_clock = omap3_enable_st_clock;
|
pdata->enable_st_clock = omap3_enable_st_clock;
|
||||||
|
pdata->force_ick_on = omap3_mcbsp_force_ick_on;
|
||||||
sprintf(clk_name, "mcbsp%d_ick", id);
|
sprintf(clk_name, "mcbsp%d_ick", id);
|
||||||
mcbsp_iclks[id] = clk_get(NULL, clk_name);
|
mcbsp_iclks[id] = clk_get(NULL, clk_name);
|
||||||
count++;
|
count++;
|
||||||
|
|
|
@ -45,6 +45,7 @@ struct omap_mcbsp_platform_data {
|
||||||
bool has_wakeup; /* Wakeup capability */
|
bool has_wakeup; /* Wakeup capability */
|
||||||
bool has_ccr; /* Transceiver has configuration control registers */
|
bool has_ccr; /* Transceiver has configuration control registers */
|
||||||
int (*enable_st_clock)(unsigned int, bool);
|
int (*enable_st_clock)(unsigned int, bool);
|
||||||
|
int (*force_ick_on)(struct clk *clk, bool force_on);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue