提交 d804452b 编写于 作者: H Hannes Petermaier 提交者: Tom Rini

board/BuR/tseries: take usage of CONFIG_LCD_ROTATION

We take use of the new LCD_ROTATION feature.
The information about how the display is rotated is taken from B&R specific
(/factory-settings/rotation) information in the devicetree.

The information there is stored as string (cw, ud, ccw, none) since starting
support of this devices and cannot be changed, so we have to convert it into

none = 0
cw   = 1
ud   = 2
ccw  = 3
Signed-off-by: NHannes Petermaier <oe5hpm@oevsv.at>
上级 87f02d5a
......@@ -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) ||
......
......@@ -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}; " \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册