MLK-24040: drm: imx: pavi: Combine pai and pvi powerup/down function

Combine pvi and pai power up/down functions to pavi_powerup/down
function. Move clock enable/disable function to power function.

Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
This commit is contained in:
Sandor Yu 2020-05-15 10:08:30 +08:00
parent ea4f7e2d01
commit 3a91e9d0de
3 changed files with 23 additions and 35 deletions

View File

@ -273,7 +273,7 @@ static int imx8mp_hdmi_phy_init(struct dw_hdmi *dw_hdmi, void *data,
dw_hdmi_phy_reset(dw_hdmi);
/* enable PVI */
imx8mp_hdmi_pvi_powerup();
imx8mp_hdmi_pavi_powerup();
imx8mp_hdmi_pvi_enable(mode);
/* HDMI PHY power up */
@ -302,7 +302,7 @@ static void imx8mp_hdmi_phy_disable(struct dw_hdmi *dw_hdmi, void *data)
/* disable PVI */
imx8mp_hdmi_pvi_disable();
imx8mp_hdmi_pvi_powerdown();
imx8mp_hdmi_pavi_powerdown();
/* TODO */
regmap_read(hdmi->regmap, 0x200, &val);
@ -337,14 +337,12 @@ static int imx8mp_hdmimix_setup(struct imx_hdmi *hdmi)
void imx8mp_hdmi_enable_audio(struct dw_hdmi *dw_hdmi, void *data, int channel)
{
imx8mp_hdmi_pai_powerup();
imx8mp_hdmi_pai_enable(channel);
}
void imx8mp_hdmi_disable_audio(struct dw_hdmi *dw_hdmi, void *data)
{
imx8mp_hdmi_pai_disable();
imx8mp_hdmi_pai_powerdown();
}
static const struct dw_hdmi_phy_ops imx8mp_hdmi_phy_ops = {

View File

@ -44,8 +44,6 @@ static struct imx8mp_hdmi_pavi *gpavi;
/* PAI APIs */
void imx8mp_hdmi_pai_enable(int channel)
{
clk_prepare_enable(gpavi->clk_pai);
/* PAI set */
writel((0x3030000 | ((channel-1) << 8)),
gpavi->base + HTX_PAI_CTRL_EXT);
@ -59,32 +57,12 @@ void imx8mp_hdmi_pai_disable(void)
{
/* stop PAI */
writel(0, gpavi->base + HTX_PAI_CTRL);
clk_disable_unprepare(gpavi->clk_pai);
}
EXPORT_SYMBOL(imx8mp_hdmi_pai_disable);
void imx8mp_hdmi_pai_powerup(void)
{
/* deassert pai reset */
if (!gpavi->reset_pai)
reset_control_deassert(gpavi->reset_pai);
}
EXPORT_SYMBOL(imx8mp_hdmi_pai_powerup);
void imx8mp_hdmi_pai_powerdown(void)
{
/* set pai reset */
if (!gpavi->reset_pai)
reset_control_assert(gpavi->reset_pai);
}
EXPORT_SYMBOL(imx8mp_hdmi_pai_powerdown);
/* PVI APIs */
void imx8mp_hdmi_pvi_enable(struct drm_display_mode *mode)
{
clk_prepare_enable(gpavi->clk_pvi);
writel(0x00000003, gpavi->base + HTX_PVI_IRQ_MASK);
writel(0x08970464, gpavi->base + HTX_TMG_GEN_DISP_LRC);
writel(0x00bf0029, gpavi->base + HTX_TMG_GEN_DE_ULC);
@ -113,25 +91,38 @@ void imx8mp_hdmi_pvi_disable(void)
{
/* Stop PVI */
writel(0x0, gpavi->base + HTX_PVI_CTRL);
clk_disable_unprepare(gpavi->clk_pvi);
}
EXPORT_SYMBOL(imx8mp_hdmi_pvi_disable);
void imx8mp_hdmi_pvi_powerup(void)
void imx8mp_hdmi_pavi_powerup(void)
{
clk_prepare_enable(gpavi->clk_pvi);
clk_prepare_enable(gpavi->clk_pai);
/* deassert pai reset */
if (!gpavi->reset_pai)
reset_control_deassert(gpavi->reset_pai);
/* deassert pvi reset */
if (!gpavi->reset_pvi)
reset_control_deassert(gpavi->reset_pvi);
}
EXPORT_SYMBOL(imx8mp_hdmi_pvi_powerup);
EXPORT_SYMBOL(imx8mp_hdmi_pavi_powerup);
void imx8mp_hdmi_pvi_powerdown(void)
void imx8mp_hdmi_pavi_powerdown(void)
{
/* set pvi reset */
if (!gpavi->reset_pvi)
reset_control_assert(gpavi->reset_pvi);
/* set pai reset */
if (!gpavi->reset_pai)
reset_control_assert(gpavi->reset_pai);
clk_disable_unprepare(gpavi->clk_pai);
clk_disable_unprepare(gpavi->clk_pvi);
}
EXPORT_SYMBOL(imx8mp_hdmi_pvi_powerdown);
EXPORT_SYMBOL(imx8mp_hdmi_pavi_powerdown);
struct imx8mp_hdmi_pavi *imx8mp_hdmi_pavi_init(void)
{

View File

@ -26,13 +26,12 @@ struct imx8mp_hdmi_pavi {
void imx8mp_hdmi_pai_enable(int channel);
void imx8mp_hdmi_pai_disable(void);
void imx8mp_hdmi_pai_powerup(void);
void imx8mp_hdmi_pai_powerdown(void);
void imx8mp_hdmi_pvi_enable(struct drm_display_mode *mode);
void imx8mp_hdmi_pvi_disable(void);
void imx8mp_hdmi_pvi_powerup(void);
void imx8mp_hdmi_pvi_powerdown(void);
void imx8mp_hdmi_pavi_powerup(void);
void imx8mp_hdmi_pavi_powerdown(void);
struct imx8mp_hdmi_pavi *imx8mp_hdmi_pavi_init(void);