drm/exynos: mipi-dsi: add exynos3250 SoC support.
authorInki Dae <inki.dae@samsung.com>
Tue, 12 Aug 2014 12:55:08 +0000 (21:55 +0900)
committerChanho Park <chanho61.park@samsung.com>
Tue, 18 Nov 2014 03:00:30 +0000 (12:00 +0900)
Change-Id: I2b2618cba75472e07f32a873ec516103a9e2b9d8
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_dsi.c

index 03efe88..ea3d7b7 100644 (file)
@@ -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);