summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInki Dae <inki.dae@samsung.com>2014-08-12 21:55:08 +0900
committerInki Dae <inki.dae@samsung.com>2014-08-12 21:55:08 +0900
commit0397e615639aa6d70d7e196b944ddf58f0603c83 (patch)
tree3544b10ce21a31d7d59164ec5fd1ccb31b90a7ea
parent0a88cf3ec8b2c2600c8878a065d9dc32576cd5e6 (diff)
downloadlinux-3.10-0397e615639aa6d70d7e196b944ddf58f0603c83.tar.gz
linux-3.10-0397e615639aa6d70d7e196b944ddf58f0603c83.tar.bz2
linux-3.10-0397e615639aa6d70d7e196b944ddf58f0603c83.zip
drm/exynos: mipi-dsi: add exynos3250 SoC support.
Change-Id: I2b2618cba75472e07f32a873ec516103a9e2b9d8 Signed-off-by: Inki Dae <inki.dae@samsung.com>
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_dsi.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index 03efe88d29f..ea3d7b78757 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -297,6 +297,11 @@ struct exynos_dsi {
#define host_to_dsi(host) container_of(host, struct exynos_dsi, dsi_host)
#define connector_to_dsi(c) container_of(c, struct exynos_dsi, connector)
+static struct exynos_dsi_driver_data exynos3_dsi_driver_data = {
+ .plltmr_reg = 0x50,
+ .has_freqband = 1,
+};
+
static struct exynos_dsi_driver_data exynos4_dsi_driver_data = {
.plltmr_reg = 0x50,
.has_freqband = 1,
@@ -307,6 +312,8 @@ static struct exynos_dsi_driver_data exynos5_dsi_driver_data = {
};
static struct of_device_id exynos_dsi_of_match[] = {
+ { .compatible = "samsung,exynos3250-mipi-dsi",
+ .data = &exynos3_dsi_driver_data },
{ .compatible = "samsung,exynos4210-mipi-dsi",
.data = &exynos4_dsi_driver_data },
{ .compatible = "samsung,exynos5420-mipi-dsi",
@@ -1241,6 +1248,8 @@ static int exynos_dsi_enable(struct exynos_dsi *dsi)
if (dsi->state & DSIM_STATE_ENABLED)
return 0;
+ pm_runtime_get_sync(dsi->dev);
+
ret = exynos_dsi_poweron(dsi);
if (ret < 0)
return ret;
@@ -1268,6 +1277,8 @@ static void exynos_dsi_disable(struct exynos_dsi *dsi)
drm_panel_disable(dsi->panel);
exynos_dsi_poweroff(dsi);
+ pm_runtime_put_sync(dsi->dev);
+
dsi->state &= ~DSIM_STATE_ENABLED;
}
@@ -1586,6 +1597,9 @@ static int exynos_dsi_probe(struct platform_device *pdev)
exynos_dsi_display.ctx = dsi;
+ pm_runtime_enable(&pdev->dev);
+ pm_runtime_get_sync(&pdev->dev);
+
platform_set_drvdata(pdev, &exynos_dsi_display);
exynos_drm_display_register(&exynos_dsi_display);