[U-Boot] [PATCH 3/5] fdt: add fdt_add_display_timings(..)

Christian Gmeiner christian.gmeiner at gmail.com
Wed Jan 8 08:24:23 CET 2014


This new function is used to set all display-timings
properties based on fb_videomode.

display-timings {
	timing0 {
		clock-frequency = <25000000>;
		hactive = <640>;
		vactive = <480>;
		hback-porch = <48>;
		hfront-porch = <16>;
		vback-porch = <31>;
		vfront-porch = <12>;
		hsync-len = <96>;
		vsync-len = <2>;
	};
};

Signed-off-by: Christian Gmeiner <christian.gmeiner at gmail.com>
---
 common/fdt_support.c  |   23 +++++++++++++++++++++++
 include/fdt_support.h |    3 +++
 2 files changed, 26 insertions(+)

diff --git a/common/fdt_support.c b/common/fdt_support.c
index 4e32b02..cf81a4b 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -11,6 +11,7 @@
 #include <stdio_dev.h>
 #include <linux/ctype.h>
 #include <linux/types.h>
+#include <linux/fb.h>
 #include <asm/global_data.h>
 #include <libfdt.h>
 #include <fdt_support.h>
@@ -1342,6 +1343,28 @@ err_size:
 #endif
 
 /*
+ * fdt_add_display_timings: add display-timings properties
+ *
+ * @fdt: ptr to device tree
+ * @noff: node to update
+ * @mode: ptr to b_videomode
+ */
+void fdt_add_display_timings(void *fdt, int noff, struct fb_videomode *mode)
+{
+	if (noff != -FDT_ERR_NOTFOUND) {
+		fdt_setprop_u32(fdt, noff, "clock-frequency", mode->pixclock);
+		fdt_setprop_u32(fdt, noff, "hactive", mode->xres);
+		fdt_setprop_u32(fdt, noff, "vactive", mode->yres);
+		fdt_setprop_u32(fdt, noff, "hback-porch", mode->left_margin);
+		fdt_setprop_u32(fdt, noff, "hfront-porch", mode->right_margin);
+		fdt_setprop_u32(fdt, noff, "vback-porch", mode->upper_margin);
+		fdt_setprop_u32(fdt, noff, "vfront-porch", mode->lower_margin);
+		fdt_setprop_u32(fdt, noff, "hsync-len", mode->hsync_len);
+		fdt_setprop_u32(fdt, noff, "vsync-len", mode->vsync_len);
+	}
+}
+
+/*
  * Verify the physical address of device tree node for a given alias
  *
  * This function locates the device tree node of a given alias, and then
diff --git a/include/fdt_support.h b/include/fdt_support.h
index 9871e2f..1c54880 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -82,6 +82,9 @@ int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle);
 unsigned int fdt_create_phandle(void *fdt, int nodeoffset);
 int fdt_add_edid(void *blob, const char *compat, unsigned char *buf);
 
+struct fb_videomode;
+void fdt_add_display_timings(void *blob, int noff, struct fb_videomode *mode);
+
 int fdt_verify_alias_address(void *fdt, int anode, const char *alias,
 			      u64 addr);
 u64 fdt_get_base_address(void *fdt, int node);
-- 
1.7.10.4



More information about the U-Boot mailing list