diff options
| author | Wengang Wu <wgw@motorola.com> | 2014-10-01 14:53:27 -0500 |
|---|---|---|
| committer | Wengang Wu <wgw@motorola.com> | 2014-10-01 14:53:27 -0500 |
| commit | 36cbe6d968668e7227349aecff2a969dea8f56f1 (patch) | |
| tree | cde207ae25bb311aabb2ccf68ee381bef37bb573 | |
| parent | d389342e6faafb97c8a2ce317e340fbd1908706a (diff) | |
| download | olio-linux-3.10-36cbe6d968668e7227349aecff2a969dea8f56f1.tar.xz olio-linux-3.10-36cbe6d968668e7227349aecff2a969dea8f56f1.zip | |
IKXCLOCK-4006 Display: support panel dimensions
Change-Id: Id1e594cdceeef43bf820de24a103c49ca6dd4a17
| -rw-r--r--[-rwxr-xr-x] | arch/arm/boot/dts/omap3-minnow.dtsi | 2 | ||||
| -rw-r--r-- | drivers/video/omap2/displays/panel-minnow.c | 20 |
2 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/omap3-minnow.dtsi b/arch/arm/boot/dts/omap3-minnow.dtsi index 76ebb19a666..fbd0571890d 100755..100644 --- a/arch/arm/boot/dts/omap3-minnow.dtsi +++ b/arch/arm/boot/dts/omap3-minnow.dtsi @@ -95,6 +95,8 @@ //pixel_format = <1>; //hs_clk = <90000000 150000000>; /* min max*/ //lp_clk = <7000000 9000000>; /* min max*/ + /* panel dimensions (width and height) in um */ + panel_size_um = <39744 36020>; pinctrl-names = "viopulldown", "viooutput"; pinctrl-0 = <&display_vddio_pulldown>; pinctrl-1 = <&display_vddio_output>; diff --git a/drivers/video/omap2/displays/panel-minnow.c b/drivers/video/omap2/displays/panel-minnow.c index 7f7efce3898..254a5e1e008 100644 --- a/drivers/video/omap2/displays/panel-minnow.c +++ b/drivers/video/omap2/displays/panel-minnow.c @@ -302,6 +302,8 @@ struct minnow_panel_data { int id_panel; int x_offset; int y_offset; + int xres_um; + int yres_um; int reset_ms; int release_ms; @@ -1420,6 +1422,14 @@ static void minnow_panel_get_resolution(struct omap_dss_device *dssdev, *yres = dssdev->panel.timings.y_res; } +static void minnow_panel_get_dimensions(struct omap_dss_device *dssdev, + u32 *xres, u32 *yres) +{ + struct minnow_panel_data *mpd = dev_get_drvdata(&dssdev->dev); + *xres = mpd->xres_um; + *yres = mpd->yres_um; +} + static ssize_t minnow_panel_errors_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -2456,6 +2466,15 @@ static int minnow_panel_dt_init(struct minnow_panel_data *mpd) mpd->dsi_config.lp_clk_max); } + mpd->xres_um = 0; + mpd->yres_um = 0; + if (!of_property_read_u32_array(dt_node, "panel_size_um", range, 2)) { + mpd->xres_um = range[0]; + mpd->yres_um = range[1]; + DTINFO("physical panel width = %d um, height = %d um\n", + mpd->xres_um, mpd->yres_um); + } + return 0; } @@ -3773,6 +3792,7 @@ static struct omap_dss_driver minnow_panel_driver = { .sync = minnow_panel_sync, .get_resolution = minnow_panel_get_resolution, + .get_dimensions = minnow_panel_get_dimensions, .get_recommended_bpp = omapdss_default_get_recommended_bpp, .enable_te = minnow_panel_enable_te, |