summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/BuR/common/common.c23
-rw-r--r--include/configs/tseries.h8
2 files changed, 28 insertions, 3 deletions
diff --git a/board/BuR/common/common.c b/board/BuR/common/common.c
index 23a98e4fdf..3036f86781 100644
--- a/board/BuR/common/common.c
+++ b/board/BuR/common/common.c
@@ -52,6 +52,9 @@ int load_lcdtiming(struct am335x_lcdpanel *panel)
struct am335x_lcdpanel pnltmp;
#ifdef CONFIG_USE_FDT
u32 dtbprop;
+ char buf[32];
+ const char *nodep = 0;
+ int nodeoff;
if (gd->fdt_blob == NULL) {
printf("%s: don't have a valid gd->fdt_blob!\n", __func__);
@@ -97,6 +100,25 @@ int load_lcdtiming(struct am335x_lcdpanel *panel)
dtbprop = FDTPROP(PATHTIM, "de-active");
if (dtbprop == 0)
pnltmp.pol |= DE_INVERT;
+
+ nodeoff = fdt_path_offset(gd->fdt_blob, "/factory-settings");
+ if (nodeoff >= 0) {
+ nodep = fdt_getprop(gd->fdt_blob, nodeoff, "rotation", NULL);
+ if (nodep != 0) {
+ if (strcmp(nodep, "cw") == 0)
+ panel_info.vl_rot = 1;
+ else if (strcmp(nodep, "ud") == 0)
+ panel_info.vl_rot = 2;
+ else if (strcmp(nodep, "ccw") == 0)
+ panel_info.vl_rot = 3;
+ else
+ panel_info.vl_rot = 0;
+ }
+ } else {
+ puts("no 'factory-settings / rotation' in dtb!\n");
+ }
+ snprintf(buf, sizeof(buf), "fbcon=rotate:%d", panel_info.vl_rot);
+ setenv("optargs_rot", buf);
#else
pnltmp.hactive = getenv_ulong("ds1_hactive", 10, ~0UL);
pnltmp.vactive = getenv_ulong("ds1_vactive", 10, ~0UL);
@@ -111,6 +133,7 @@ int load_lcdtiming(struct am335x_lcdpanel *panel)
pnltmp.pol = getenv_ulong("ds1_pol", 16, ~0UL);
pnltmp.pup_delay = getenv_ulong("ds1_pupdelay", 10, ~0UL);
pnltmp.pon_delay = getenv_ulong("ds1_tondelay", 10, ~0UL);
+ panel_info.vl_rot = getenv_ulong("ds1_rotation", 10, 0);
#endif
if (
~0UL == (pnltmp.hactive) ||
diff --git a/include/configs/tseries.h b/include/configs/tseries.h
index 1e41a12a6c..4406e6fafb 100644
--- a/include/configs/tseries.h
+++ b/include/configs/tseries.h
@@ -17,6 +17,7 @@
#define CONFIG_AM335X_LCD
#define CONFIG_LCD
#define CONFIG_LCD_NOSTDOUT
+#define CONFIG_LCD_ROTATION
#define CONFIG_SYS_WHITE_ON_BLACK
#define LCD_BPP LCD_COLOR32
@@ -105,6 +106,7 @@
"mtdparts=" MTDPARTS_DEFAULT "\0" \
"nandargs=setenv bootargs console=${console} " \
"${optargs} " \
+ "${optargs_rot} " \
"root=mtd6 " \
"rootfstype=jffs2\0" \
"kernelsize=0x400000\0" \
@@ -127,9 +129,9 @@
"bmp display ${loadaddr} 0 0\0" \
"logo1=ext4load mmc 0:1 ${loadaddr} /PPTLogo.bmp.gz && " \
"bmp display ${loadaddr} 0 0\0" \
-"mmcroot0=setenv bootargs ${optargs} console=${console}\0" \
-"mmcroot1=setenv bootargs ${optargs} console=${console} root=/dev/mmcblk0p2 " \
- "rootfstype=ext4\0" \
+"mmcroot0=setenv bootargs ${optargs_rot} ${optargs} console=${console}\0" \
+"mmcroot1=setenv bootargs ${optargs_rot} ${optargs} console=${console} " \
+ "root=/dev/mmcblk0p2 rootfstype=ext4\0" \
"mmcboot0=echo booting Updatesystem from mmc (ext4-fs) ...; " \
"ext4load mmc 0:1 ${loadaddr} /${kernel}; " \
"ext4load mmc 0:1 ${ramaddr} /${ramdisk}; " \