[U-Boot] [PATCH 2/3] sunxi: video: Add support for Hitachi tx18d42vm LCD panels

Ian Campbell ijc at hellion.org.uk
Thu Jan 8 10:04:17 CET 2015


On Thu, 2015-01-08 at 09:39 +0100, Hans de Goede wrote:
> Hi,
> 
> On 08-01-15 09:32, Ian Campbell wrote:
> > On Sun, 2015-01-04 at 21:05 +0100, Hans de Goede wrote:
> >> Hitachi tx18d42vm LCD panels have an onboard controller which needs some
> >> initialization via spi for the panel to become functional as a regular LVDS
> >> panel.
> >>
> >> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> >> ---
> >>   board/sunxi/Kconfig             |  3 ++
> >>   drivers/video/Makefile          |  2 +-
> >>   drivers/video/sunxi_display.c   |  9 ++++++
> >>   drivers/video/sunxi_lcd_panel.c | 68 +++++++++++++++++++++++++++++++++++++++++
> >>   drivers/video/sunxi_lcd_panel.h |  9 ++++++
> >>   5 files changed, 90 insertions(+), 1 deletion(-)
> >>   create mode 100644 drivers/video/sunxi_lcd_panel.c
> >>   create mode 100644 drivers/video/sunxi_lcd_panel.h
> >>
> >> diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
> >> index fdb18a4..e9f62b9 100644
> >> --- a/board/sunxi/Kconfig
> >> +++ b/board/sunxi/Kconfig
> >> @@ -357,6 +357,9 @@ config VIDEO_LCD_PANEL_PARALLEL
> >>   config VIDEO_LCD_PANEL_LVDS
> >>   	bool "Generic lvds interface LCD panel"
> >>
> >> +config VIDEO_LCD_PANEL_HITACHI_TX18D42VM
> >> +	bool "Hitachi tx18d42vm LCD panel"
> >> +
> >>   endchoice
> >>
> >>   config USB_KEYBOARD
> >> diff --git a/drivers/video/Makefile b/drivers/video/Makefile
> >> index 42b1eaa..d4fe1aa 100644
> >> --- a/drivers/video/Makefile
> >> +++ b/drivers/video/Makefile
> >> @@ -39,7 +39,7 @@ obj-$(CONFIG_VIDEO_SANDBOX_SDL) += sandbox_sdl.o
> >>   obj-$(CONFIG_VIDEO_SED13806) += sed13806.o
> >>   obj-$(CONFIG_VIDEO_SM501) += sm501.o
> >>   obj-$(CONFIG_VIDEO_SMI_LYNXEM) += smiLynxEM.o videomodes.o
> >> -obj-$(CONFIG_VIDEO_SUNXI) += sunxi_display.o videomodes.o
> >> +obj-$(CONFIG_VIDEO_SUNXI) += sunxi_display.o sunxi_lcd_panel.o videomodes.o
> >>   obj-$(CONFIG_VIDEO_TEGRA) += tegra.o
> >>   obj-$(CONFIG_VIDEO_VCXK) += bus_vcxk.o
> >>   obj-$(CONFIG_VIDEO_X86) += x86_fb.o
> >> diff --git a/drivers/video/sunxi_display.c b/drivers/video/sunxi_display.c
> >> index 4b63b01..f087c2c 100644
> >> --- a/drivers/video/sunxi_display.c
> >> +++ b/drivers/video/sunxi_display.c
> >> @@ -19,8 +19,13 @@
> >>   #include <fdtdec.h>
> >>   #include <fdt_support.h>
> >>   #include <video_fb.h>
> >> +#include "sunxi_lcd_panel.h"
> >>   #include "videomodes.h"
> >>
> >> +#ifdef CONFIG_VIDEO_LCD_PANEL_HITACHI_TX18D42VM
> >> +#define CONFIG_VIDEO_LCD_PANEL_LVDS
> >> +#endif
> >
> > Your reply to 1/3 made me notice this, which I somehow missed before, I
> > don't think this is the right way to go about this.
> >
> > It seems to me that LCD_PANEL_HITACHI does not belong under the PARALLEL
> > vs LVDS Kconfig choice, rather it should be an independent bool option
> > which depends on PANEL_LVDS.
> 
> Technically you are correct, but from a user pov it seems easier to tell
> the user to select which panel he has, and then the user can chose between a
> bunch of generic ones (generic parallel, generic lvds) and a bunch of specific
> panels which need some extra setup.

Hrm, true.

> If you insist I can live with doing things your way though, either way let
> me know how you want to handle this.

Perhaps have hidden Kconfig options for the baseline LVDS vs PARALLEL
support and then a choice of GENERIC //, GENERIC LVDS, HITACHI TX..,
OTHER MAGIC PANEL with appropriate selects on the hidden options?

Then the generic code would use the hidden options, no need for a weird
#ifdef/#define pair for each non-standard panel (which depending on how
many panels are normal vs. needing magic could get unwieldy).

Ian.



More information about the U-Boot mailing list