Commit d95c5a0e authored by Sebastian Reichel's avatar Sebastian Reichel Committed by Tomi Valkeinen

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: default avatarSebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 82fa10d4
...@@ -66,6 +66,9 @@ struct panel_drv_data { ...@@ -66,6 +66,9 @@ struct panel_drv_data {
bool use_dsi_backlight; bool use_dsi_backlight;
int width_mm;
int height_mm;
struct omap_dsi_pin_config pin_config; struct omap_dsi_pin_config pin_config;
/* runtime variables */ /* runtime variables */
...@@ -1163,6 +1166,15 @@ static int dsicm_check_timings(struct omap_dss_device *dssdev, ...@@ -1163,6 +1166,15 @@ static int dsicm_check_timings(struct omap_dss_device *dssdev,
return ret; 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 = { static struct omap_dss_driver dsicm_ops = {
.connect = dsicm_connect, .connect = dsicm_connect,
.disconnect = dsicm_disconnect, .disconnect = dsicm_disconnect,
...@@ -1175,6 +1187,7 @@ static struct omap_dss_driver dsicm_ops = { ...@@ -1175,6 +1187,7 @@ static struct omap_dss_driver dsicm_ops = {
.get_timings = dsicm_get_timings, .get_timings = dsicm_get_timings,
.check_timings = dsicm_check_timings, .check_timings = dsicm_check_timings,
.get_size = dsicm_get_size,
.enable_te = dsicm_enable_te, .enable_te = dsicm_enable_te,
.get_te = dsicm_get_te, .get_te = dsicm_get_te,
...@@ -1216,6 +1229,12 @@ static int dsicm_probe_of(struct platform_device *pdev) ...@@ -1216,6 +1229,12 @@ static int dsicm_probe_of(struct platform_device *pdev)
"failed to get video timing, using defaults\n"); "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); in = omapdss_of_find_source_for_first_ep(node);
if (IS_ERR(in)) { if (IS_ERR(in)) {
dev_err(&pdev->dev, "failed to find video source\n"); dev_err(&pdev->dev, "failed to find video source\n");
......
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