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:
parent
ea4f7e2d01
commit
3a91e9d0de
|
@ -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 = {
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue