sm501: add inversion controls for VBIASEN and FPEN
Add flags to allow the driver to invert the sense of both VBIASEN and FPEN signals comming from the SM501. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
968910bd03
commit
206c5d69d0
|
@ -663,15 +663,25 @@ static void sm501fb_panel_power(struct sm501fb_info *fbi, int to)
|
|||
sm501fb_sync_regs(fbi);
|
||||
mdelay(10);
|
||||
|
||||
/* VBIASEN */
|
||||
|
||||
if (!(pd->flags & SM501FB_FLAG_PANEL_NO_VBIASEN)) {
|
||||
control |= SM501_DC_PANEL_CONTROL_BIAS; /* VBIASEN */
|
||||
if (pd->flags & SM501FB_FLAG_PANEL_INV_VBIASEN)
|
||||
control &= ~SM501_DC_PANEL_CONTROL_BIAS;
|
||||
else
|
||||
control |= SM501_DC_PANEL_CONTROL_BIAS;
|
||||
|
||||
writel(control, ctrl_reg);
|
||||
sm501fb_sync_regs(fbi);
|
||||
mdelay(10);
|
||||
}
|
||||
|
||||
if (!(pd->flags & SM501FB_FLAG_PANEL_NO_FPEN)) {
|
||||
control |= SM501_DC_PANEL_CONTROL_FPEN;
|
||||
if (pd->flags & SM501FB_FLAG_PANEL_INV_FPEN)
|
||||
control &= ~SM501_DC_PANEL_CONTROL_FPEN;
|
||||
else
|
||||
control |= SM501_DC_PANEL_CONTROL_FPEN;
|
||||
|
||||
writel(control, ctrl_reg);
|
||||
sm501fb_sync_regs(fbi);
|
||||
mdelay(10);
|
||||
|
@ -679,14 +689,22 @@ static void sm501fb_panel_power(struct sm501fb_info *fbi, int to)
|
|||
} else if (!to && (control & SM501_DC_PANEL_CONTROL_VDD) != 0) {
|
||||
/* disable panel power */
|
||||
if (!(pd->flags & SM501FB_FLAG_PANEL_NO_FPEN)) {
|
||||
control &= ~SM501_DC_PANEL_CONTROL_FPEN;
|
||||
if (pd->flags & SM501FB_FLAG_PANEL_INV_FPEN)
|
||||
control |= SM501_DC_PANEL_CONTROL_FPEN;
|
||||
else
|
||||
control &= ~SM501_DC_PANEL_CONTROL_FPEN;
|
||||
|
||||
writel(control, ctrl_reg);
|
||||
sm501fb_sync_regs(fbi);
|
||||
mdelay(10);
|
||||
}
|
||||
|
||||
if (!(pd->flags & SM501FB_FLAG_PANEL_NO_VBIASEN)) {
|
||||
control &= ~SM501_DC_PANEL_CONTROL_BIAS;
|
||||
if (pd->flags & SM501FB_FLAG_PANEL_INV_VBIASEN)
|
||||
control |= SM501_DC_PANEL_CONTROL_BIAS;
|
||||
else
|
||||
control &= ~SM501_DC_PANEL_CONTROL_BIAS;
|
||||
|
||||
writel(control, ctrl_reg);
|
||||
sm501fb_sync_regs(fbi);
|
||||
mdelay(10);
|
||||
|
|
|
@ -73,6 +73,8 @@ extern unsigned long sm501_gpio_get(struct device *dev,
|
|||
#define SM501FB_FLAG_USE_HWACCEL (1<<3)
|
||||
#define SM501FB_FLAG_PANEL_NO_FPEN (1<<4)
|
||||
#define SM501FB_FLAG_PANEL_NO_VBIASEN (1<<5)
|
||||
#define SM501FB_FLAG_PANEL_INV_FPEN (1<<6)
|
||||
#define SM501FB_FLAG_PANEL_INV_VBIASEN (1<<7)
|
||||
|
||||
struct sm501_platdata_fbsub {
|
||||
struct fb_videomode *def_mode;
|
||||
|
|
Loading…
Reference in New Issue