diff options
author | Sebastian Reichel <sebastian.reichel@collabora.co.uk> | 2017-07-24 19:33:07 +0200 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2017-12-19 10:32:00 +0200 |
commit | d95c5a0e0154afca1930cf2d5ee2be73442e9f66 (patch) | |
tree | c58c2ca5d5fe050f6d6ea4c9b2477d712b19162d /drivers/gpu/drm/omapdrm/displays | |
parent | 82fa10d46be9d1b3ce5e5bf7b8ee2e38dc166029 (diff) |
drm/omap: panel-dsi-cm: add physical size support
Add support to load physical size information from DT using
the properties defined by the common panel binding.
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/displays')
-rw-r--r-- | drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c index b98ea9e31ffa..84591396451c 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c @@ -66,6 +66,9 @@ struct panel_drv_data { bool use_dsi_backlight; + int width_mm; + int height_mm; + struct omap_dsi_pin_config pin_config; /* runtime variables */ @@ -1163,6 +1166,15 @@ static int dsicm_check_timings(struct omap_dss_device *dssdev, return ret; } +static void dsicm_get_size(struct omap_dss_device *dssdev, + unsigned int *width, unsigned int *height) +{ + struct panel_drv_data *ddata = to_panel_data(dssdev); + + *width = ddata->width_mm; + *height = ddata->height_mm; +} + static struct omap_dss_driver dsicm_ops = { .connect = dsicm_connect, .disconnect = dsicm_disconnect, @@ -1175,6 +1187,7 @@ static struct omap_dss_driver dsicm_ops = { .get_timings = dsicm_get_timings, .check_timings = dsicm_check_timings, + .get_size = dsicm_get_size, .enable_te = dsicm_enable_te, .get_te = dsicm_get_te, @@ -1216,6 +1229,12 @@ static int dsicm_probe_of(struct platform_device *pdev) "failed to get video timing, using defaults\n"); } + ddata->width_mm = 0; + of_property_read_u32(node, "width-mm", &ddata->width_mm); + + ddata->height_mm = 0; + of_property_read_u32(node, "height-mm", &ddata->height_mm); + in = omapdss_of_find_source_for_first_ep(node); if (IS_ERR(in)) { dev_err(&pdev->dev, "failed to find video source\n"); |