[Cc'ing Yoichi Yuasa and linux-fbdev] On 04/18/2012 02:13 PM, Steven J. Hill wrote: > From: "Steven J. Hill" <sjhill@xxxxxxxx> > > Add support for LCD panel on MIPS SEAD-3 development platform. > > Signed-off-by: Douglas Leung <douglas@xxxxxxxx> > Signed-off-by: Chris Dearman <chris@xxxxxxxx> > Signed-off-by: Steven J. Hill <sjhill@xxxxxxxx> Looks good to me. I will apply it in a few days if nobody is against it. Best regards, Florian Tobias Schandinat > --- > drivers/video/Kconfig | 2 +- > drivers/video/cobalt_lcdfb.c | 45 +++++++++++++++++++++++++++++++++++++++++- > 2 files changed, 45 insertions(+), 2 deletions(-) > > diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig > index a8a897a..e921a45 100644 > --- a/drivers/video/Kconfig > +++ b/drivers/video/Kconfig > @@ -2210,7 +2210,7 @@ config FB_XILINX > > config FB_COBALT > tristate "Cobalt server LCD frame buffer support" > - depends on FB && MIPS_COBALT > + depends on FB && (MIPS_COBALT || MIPS_SEAD3) > > config FB_SH7760 > bool "SH7760/SH7763/SH7720/SH7721 LCDC support" > diff --git a/drivers/video/cobalt_lcdfb.c b/drivers/video/cobalt_lcdfb.c > index f56699d..eae46f6 100644 > --- a/drivers/video/cobalt_lcdfb.c > +++ b/drivers/video/cobalt_lcdfb.c > @@ -1,7 +1,8 @@ > /* > - * Cobalt server LCD frame buffer driver. > + * Cobalt/SEAD3 LCD frame buffer driver. > * > * Copyright (C) 2008 Yoichi Yuasa <yuasa@xxxxxxxxxxxxxx> > + * Copyright (C) 2012 MIPS Technologies, Inc. > * > * This program is free software; you can redistribute it and/or modify > * it under the terms of the GNU General Public License as published by > @@ -62,6 +63,7 @@ > #define LCD_CUR_POS(x) ((x) & LCD_CUR_POS_MASK) > #define LCD_TEXT_POS(x) ((x) | LCD_TEXT_MODE) > > +#ifdef CONFIG_MIPS_COBALT > static inline void lcd_write_control(struct fb_info *info, u8 control) > { > writel((u32)control << 24, info->screen_base); > @@ -81,6 +83,47 @@ static inline u8 lcd_read_data(struct fb_info *info) > { > return readl(info->screen_base + LCD_DATA_REG_OFFSET) >> 24; > } > +#else > + > +#define LCD_CTL 0x00 > +#define LCD_DATA 0x08 > +#define CPLD_STATUS 0x10 > +#define CPLD_DATA 0x18 > + > +static inline void cpld_wait(struct fb_info *info) > +{ > + do { > + } while (readl(info->screen_base + CPLD_STATUS) & 1); > +} > + > +static inline void lcd_write_control(struct fb_info *info, u8 control) > +{ > + cpld_wait(info); > + writel(control, info->screen_base + LCD_CTL); > +} > + > +static inline u8 lcd_read_control(struct fb_info *info) > +{ > + cpld_wait(info); > + readl(info->screen_base + LCD_CTL); > + cpld_wait(info); > + return readl(info->screen_base + CPLD_DATA) & 0xff; > +} > + > +static inline void lcd_write_data(struct fb_info *info, u8 data) > +{ > + cpld_wait(info); > + writel(data, info->screen_base + LCD_DATA); > +} > + > +static inline u8 lcd_read_data(struct fb_info *info) > +{ > + cpld_wait(info); > + readl(info->screen_base + LCD_DATA); > + cpld_wait(info); > + return readl(info->screen_base + CPLD_DATA) & 0xff; > +} > +#endif > > static int lcd_busy_wait(struct fb_info *info) > { -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html