Thread (11 messages) 11 messages, 6 authors, 2012-10-16

Re: [PATCH V5 1/2] video: exynos_dp: Add device tree support to DP driver

From: Tomasz Figa <hidden>
Date: 2012-10-12 21:54:48
Also in: linux-devicetree, linux-samsung-soc

Dnia piątek, 12 października 2012 23:44:05 Sylwester Nawrocki pisze:
On 10/12/2012 10:47 PM, Ajay Kumar wrote:
quoted
This patch enables device tree based discovery support for DP driver.
The driver is modified to handle platform data in both the cases:
with DT and non-DT.

Signed-off-by: Ajay Kumar<redacted>
Acked-by: Jingoo Han<redacted>
---

  drivers/video/exynos/exynos_dp_core.c |  161
  ++++++++++++++++++++++++++++++---
  drivers/video/exynos/exynos_dp_core.h |    2 +
  2 files changed, 149 insertions(+), 14 deletions(-)
diff --git a/drivers/video/exynos/exynos_dp_core.c
b/drivers/video/exynos/exynos_dp_core.c index d55470e..62932ba 100644
--- a/drivers/video/exynos/exynos_dp_core.c
+++ b/drivers/video/exynos/exynos_dp_core.c
@@ -18,6 +18,7 @@

  #include<linux/io.h>
  #include<linux/interrupt.h>
  #include<linux/delay.h>

+#include<linux/of.h>

  #include<video/exynos_dp.h>
@@ -856,6 +857,99 @@ static irqreturn_t exynos_dp_irq_handler(int irq,
void *arg)> 
  	return IRQ_HANDLED;
  
  }

+#ifdef CONFIG_OF
+struct exynos_dp_platdata *exynos_dp_dt_parse_pdata(struct device
*dev)
+{
+	struct device_node *dp_node = dev->of_node;
+	struct exynos_dp_platdata *pd;
+	struct video_info *dp_video_config;
+
+	pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL);
+	if (!pd) {
+		dev_err(dev, "memory allocation for pdata failed\n");
+		return ERR_PTR(-ENOMEM);
+	}
+	dp_video_config = devm_kzalloc(dev,
+				sizeof(*dp_video_config), GFP_KERNEL);
+
+	if (!dp_video_config) {
+		dev_err(dev, "memory allocation for video config failed\n");
+		return ERR_PTR(-ENOMEM);
+	}
+	pd->video_info = dp_video_config;
+
+	if (of_get_property(dp_node, "hsync-active-high", NULL))
+		dp_video_config->h_sync_polarity = 1;
+
+	if (of_get_property(dp_node, "vsync-active-high", NULL))
+		dp_video_config->v_sync_polarity = 1;
+
+	if (of_get_property(dp_node, "interlaced", NULL))
+		dp_video_config->interlaced = 1;
of_property_read_bool() could also be used here.
Wouldn't it make the property mandatory?

I would just use of_find_property here, instead of of_get_property.

Best regards,
Tomasz Figa
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help