summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2019-06-09 18:46:46 +0200
committerStefano Babic <sbabic@denx.de>2019-06-28 00:08:42 +0200
commitf0be8ff45fb89d02ae4aa5b87076edd034cad9fc (patch)
tree138c523da61869c8dca8585aa0a592dadc04c8d1
parent86aa7103b61edf02baad492fa601cd6a3db0e77e (diff)
ARM: imx: m53menlo: Convert to DM VIDEO
Enable DM Video support on iMX53 M53Menlo and fix minor details to restore previous behavior of the system. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Fabio Estevam <fabio.estevam@nxp.com> Cc: Stefano Babic <sbabic@denx.de>
-rw-r--r--board/menlo/m53menlo/m53menlo.c48
-rw-r--r--configs/m53menlo_defconfig7
-rw-r--r--include/configs/m53menlo.h4
3 files changed, 51 insertions, 8 deletions
diff --git a/board/menlo/m53menlo/m53menlo.c b/board/menlo/m53menlo/m53menlo.c
index 340c750a81..31ba44e452 100644
--- a/board/menlo/m53menlo/m53menlo.c
+++ b/board/menlo/m53menlo/m53menlo.c
@@ -7,6 +7,7 @@
*/
#include <common.h>
+#include <dm.h>
#include <asm/io.h>
#include <asm/arch/imx-regs.h>
#include <asm/arch/sys_proto.h>
@@ -28,6 +29,7 @@
#include <spl.h>
#include <splash.h>
#include <usb/ehci-ci.h>
+#include <video_console.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -123,7 +125,6 @@ static void setup_iomux_fec(void)
imx_iomux_v3_setup_multiple_pads(fec_pads, ARRAY_SIZE(fec_pads));
}
-#ifdef CONFIG_VIDEO
static void enable_lvds_clock(struct display_info_t const *dev, const u8 hclk)
{
static struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)MXC_CCM_BASE;
@@ -270,7 +271,6 @@ struct display_info_t const displays[] = {
};
size_t display_count = ARRAY_SIZE(displays);
-#endif
#ifdef CONFIG_SPLASH_SCREEN
static struct splash_location default_splash_locations[] = {
@@ -289,6 +289,50 @@ int splash_screen_prepare(void)
}
#endif
+int board_late_init(void)
+{
+#if defined(CONFIG_VIDEO_IPUV3)
+ struct udevice *dev;
+ int xpos, ypos, ret;
+ char *s;
+ void *dst;
+ ulong addr, len;
+
+ splash_get_pos(&xpos, &ypos);
+
+ s = env_get("splashimage");
+ if (!s)
+ return 0;
+
+ addr = simple_strtoul(s, NULL, 16);
+ dst = malloc(CONFIG_SYS_VIDEO_LOGO_MAX_SIZE);
+ if (!dst)
+ return -ENOMEM;
+
+ ret = splash_screen_prepare();
+ if (ret < 0)
+ return ret;
+
+ len = CONFIG_SYS_VIDEO_LOGO_MAX_SIZE;
+ ret = gunzip(dst + 2, CONFIG_SYS_VIDEO_LOGO_MAX_SIZE - 2,
+ (uchar *)addr, &len);
+ if (ret) {
+ printf("Error: no valid bmp or bmp.gz image at %lx\n", addr);
+ free(dst);
+ return ret;
+ }
+
+ ret = uclass_get_device(UCLASS_VIDEO, 0, &dev);
+ if (ret)
+ return ret;
+
+ ret = video_bmp_display(dev, (ulong)dst + 2, xpos, ypos, true);
+ if (ret)
+ return ret;
+#endif
+ return 0;
+}
+
#define I2C_PAD_CTRL (PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | \
PAD_CTL_PUS_100K_UP | PAD_CTL_ODE)
diff --git a/configs/m53menlo_defconfig b/configs/m53menlo_defconfig
index c9a8b0dff9..5a1fbf5298 100644
--- a/configs/m53menlo_defconfig
+++ b/configs/m53menlo_defconfig
@@ -18,9 +18,8 @@ CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/menlo/m53menlo/imximage.cfg"
CONFIG_BOOTDELAY=1
CONFIG_USE_BOOTARGS=y
CONFIG_BOOTARGS="console=ttymxc0,115200"
-# CONFIG_CONSOLE_MUX is not set
-CONFIG_SYS_CONSOLE_IS_IN_ENV=y
CONFIG_VERSION_VARIABLE=y
+CONFIG_BOARD_LATE_INIT=y
CONFIG_SPL_TEXT_BASE=0x70008000
CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_NAND_SUPPORT=y
@@ -81,8 +80,8 @@ CONFIG_USB_HOST_ETHER=y
CONFIG_USB_ETHER_ASIX=y
CONFIG_USB_ETHER_MCS7830=y
CONFIG_USB_ETHER_SMSC95XX=y
+CONFIG_DM_VIDEO=y
+CONFIG_SYS_WHITE_ON_BLACK=y
CONFIG_VIDEO_IPUV3=y
-CONFIG_VIDEO=y
-# CONFIG_VIDEO_SW_CURSOR is not set
CONFIG_IMX_WATCHDOG=y
CONFIG_FAT_WRITE=y
diff --git a/include/configs/m53menlo.h b/include/configs/m53menlo.h
index fc0b1f480c..7b68c1c0a1 100644
--- a/include/configs/m53menlo.h
+++ b/include/configs/m53menlo.h
@@ -136,7 +136,6 @@
/*
* LCD
*/
-#ifdef CONFIG_VIDEO
#define CONFIG_VIDEO_BMP_RLE8
#define CONFIG_VIDEO_BMP_GZIP
#define CONFIG_SPLASH_SCREEN
@@ -145,7 +144,6 @@
#define CONFIG_BMP_16BPP
#define CONFIG_VIDEO_LOGO
#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (2 << 20)
-#endif
/* LVDS display */
#define CONFIG_SYS_LDB_CLOCK 33260000
@@ -205,6 +203,8 @@
"splashfile=boot/usplash.bmp.gz\0" \
"splashimage=0x88000000\0" \
"splashpos=m,m\0" \
+ "stdout=serial,vidconsole\0" \
+ "stderr=serial,vidconsole\0" \
"addcons=" \
"setenv bootargs ${bootargs} " \
"console=${consdev},${baudrate}\0" \