diff options
author | Simon Glass <sjg@chromium.org> | 2017-04-05 16:23:43 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-05-09 20:20:41 -0400 |
commit | d08e42a8cb2a68ed6cdb7c615472934ea674eb15 (patch) | |
tree | 79f44c09e520d8ee31e5e0b750e0987f638456f4 /common | |
parent | 452614556c44d4dc508c3a9f3aff544334fce875 (diff) |
dm: video: Add driver-model support to lcd_simplefb
Allow this to work with CONFIG_DM_VIDEO enabled.
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Anatolij Gustschin <agust@denx.de>
Diffstat (limited to 'common')
-rw-r--r-- | common/lcd_simplefb.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/common/lcd_simplefb.c b/common/lcd_simplefb.c index e479b492b88..d7e9fc9f65c 100644 --- a/common/lcd_simplefb.c +++ b/common/lcd_simplefb.c @@ -8,9 +8,11 @@ */ #include <common.h> +#include <dm.h> #include <lcd.h> #include <fdt_support.h> #include <libfdt.h> +#include <video.h> DECLARE_GLOBAL_DATA_PTR; @@ -20,11 +22,27 @@ static int lcd_dt_simplefb_configure_node(void *blob, int off) int bpix; /* log2 of bits per pixel */ const char *name; ulong fb_base; +#ifdef CONFIG_DM_VIDEO + struct video_uc_platdata *plat; + struct video_priv *uc_priv; + struct udevice *dev; + int ret; + ret = uclass_first_device_err(UCLASS_VIDEO, &dev); + if (ret) + return ret; + uc_priv = dev_get_uclass_priv(dev); + plat = dev_get_uclass_platdata(dev); + xsize = uc_priv->xsize; + ysize = uc_priv->ysize; + bpix = uc_priv->bpix; + fb_base = plat->base; +#else xsize = lcd_get_pixel_width(); ysize = lcd_get_pixel_height(); bpix = LCD_BPP; fb_base = gd->fb_base; +#endif switch (bpix) { case 4: /* VIDEO_BPP16 */ name = "r5g6b5"; |