From cdbefa5475d5dd5c84d2f25fb4eb0010f9737c33 Mon Sep 17 00:00:00 2001 From: xubilv Date: Thu, 30 Apr 2015 14:48:03 +0800 Subject: [PATCH] =?utf8?q?MIPI:=20Provide=20a=20function=EF=BC=8Cget=20scr?= =?utf8?q?een=20type=EF=BC=8Cfor=20frequency=20conversion.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: xubilv --- .../rockchip/transmitter/rk32_mipi_dsi.c | 20 +++++++++++++++++++ include/linux/rk_fb.h | 1 + 2 files changed, 21 insertions(+) diff --git a/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c b/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c index aa2366f36e7f..97881a112f7e 100755 --- a/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c +++ b/drivers/video/rockchip/transmitter/rk32_mipi_dsi.c @@ -85,6 +85,26 @@ static int rk32_mipi_power_down_DDR(void); static int rk32_mipi_power_up_DDR(void); int rk_mipi_screen_standby(u8 enable); +int rockchip_get_screen_type(void) +{ + struct device_node *type_node; + struct device_node *childnode; + u32 val = 0; + + type_node = of_find_node_by_name(NULL, "display-timings"); + if (!type_node) { + pr_err("could not find display-timings node\n"); + return -1; + } + + for_each_child_of_node(type_node, childnode) { + if (!of_property_read_u32(childnode, "screen-type", &val)) + return val; + } + + return 0; +} + static int rk32_dsi_read_reg(struct dsi *dsi, u16 reg, u32 *pval) { if (dsi->ops.id == DWC_DSI_VERSION) diff --git a/include/linux/rk_fb.h b/include/linux/rk_fb.h index 6cc5c9236823..0e2d9eeffcbb 100755 --- a/include/linux/rk_fb.h +++ b/include/linux/rk_fb.h @@ -727,4 +727,5 @@ int rk_fb_get_display_policy(void); int rk_fb_pixel_width(int data_format); void trace_buffer_dump(struct device *dev, struct rk_lcdc_driver *dev_drv); +extern int rockchip_get_screen_type(void); #endif -- 2.34.1