Commit 6a296e20 authored by Shirish S's avatar Shirish S Committed by Inki Dae

drm/exynos: add hdmiphy power on/off sequence

This patch implements the power on/off sequence
of HDMI PHY in exynos5420 and exynos5250 as provided
by the hardware team.

This has been verified for mulitple iterations of
S2R.
Signed-off-by: default avatarShirish S <s.shirish@samsung.com>
Signed-off-by: default avatarRahul Sharma <Rahul.Sharma@samsung.com>
Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
parent 85a64f7c
...@@ -1683,16 +1683,44 @@ static void hdmiphy_conf_reset(struct hdmi_context *hdata) ...@@ -1683,16 +1683,44 @@ static void hdmiphy_conf_reset(struct hdmi_context *hdata)
static void hdmiphy_poweron(struct hdmi_context *hdata) static void hdmiphy_poweron(struct hdmi_context *hdata)
{ {
if (hdata->type == HDMI_TYPE14) if (hdata->type != HDMI_TYPE14)
hdmi_reg_writemask(hdata, HDMI_PHY_CON_0, 0, return;
HDMI_PHY_POWER_OFF_EN);
DRM_DEBUG_KMS("\n");
/* For PHY Mode Setting */
hdmiphy_reg_writeb(hdata, HDMIPHY_MODE_SET_DONE,
HDMI_PHY_ENABLE_MODE_SET);
/* Phy Power On */
hdmiphy_reg_writeb(hdata, HDMIPHY_POWER,
HDMI_PHY_POWER_ON);
/* For PHY Mode Setting */
hdmiphy_reg_writeb(hdata, HDMIPHY_MODE_SET_DONE,
HDMI_PHY_DISABLE_MODE_SET);
/* PHY SW Reset */
hdmiphy_conf_reset(hdata);
} }
static void hdmiphy_poweroff(struct hdmi_context *hdata) static void hdmiphy_poweroff(struct hdmi_context *hdata)
{ {
if (hdata->type == HDMI_TYPE14) if (hdata->type != HDMI_TYPE14)
hdmi_reg_writemask(hdata, HDMI_PHY_CON_0, ~0, return;
HDMI_PHY_POWER_OFF_EN);
DRM_DEBUG_KMS("\n");
/* PHY SW Reset */
hdmiphy_conf_reset(hdata);
/* For PHY Mode Setting */
hdmiphy_reg_writeb(hdata, HDMIPHY_MODE_SET_DONE,
HDMI_PHY_ENABLE_MODE_SET);
/* PHY Power Off */
hdmiphy_reg_writeb(hdata, HDMIPHY_POWER,
HDMI_PHY_POWER_OFF);
/* For PHY Mode Setting */
hdmiphy_reg_writeb(hdata, HDMIPHY_MODE_SET_DONE,
HDMI_PHY_DISABLE_MODE_SET);
} }
static void hdmiphy_conf_apply(struct hdmi_context *hdata) static void hdmiphy_conf_apply(struct hdmi_context *hdata)
......
...@@ -579,7 +579,12 @@ ...@@ -579,7 +579,12 @@
#define HDMI_TG_3D HDMI_TG_BASE(0x00F0) #define HDMI_TG_3D HDMI_TG_BASE(0x00F0)
/* HDMI PHY Registers Offsets*/ /* HDMI PHY Registers Offsets*/
#define HDMIPHY_MODE_SET_DONE (0x7C >> 2) #define HDMIPHY_POWER (0x74 >> 2)
#define HDMIPHY_MODE_SET_DONE (0x7c >> 2)
/* HDMI PHY Values */
#define HDMI_PHY_POWER_ON 0x80
#define HDMI_PHY_POWER_OFF 0xff
/* HDMI PHY Values */ /* HDMI PHY Values */
#define HDMI_PHY_DISABLE_MODE_SET 0x80 #define HDMI_PHY_DISABLE_MODE_SET 0x80
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment