sm501fb: Ensure panel interface is not tristated when setup
When we setup the panel interface whilst configuring the framebuffer, we should ensure the panel interface is not in tristate, in case the bootloader or previous setup has not enabled it. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f22e521f29
commit
eb78f9b3fa
2 changed files with 23 additions and 0 deletions
|
@ -777,6 +777,11 @@ static int sm501fb_set_par_pnl(struct fb_info *info)
|
|||
writel(control, fbi->regs + SM501_DC_PANEL_CONTROL);
|
||||
sm501fb_sync_regs(fbi);
|
||||
|
||||
/* ensure the panel interface is not tristated at this point */
|
||||
|
||||
sm501_modify_reg(fbi->dev->parent, SM501_SYSTEM_CONTROL,
|
||||
0, SM501_SYSCTRL_PANEL_TRISTATE);
|
||||
|
||||
/* power the panel up */
|
||||
sm501fb_panel_power(fbi, 1);
|
||||
return 0;
|
||||
|
|
|
@ -15,6 +15,24 @@
|
|||
|
||||
/* config 1 */
|
||||
#define SM501_SYSTEM_CONTROL (0x000000)
|
||||
|
||||
#define SM501_SYSCTRL_PANEL_TRISTATE (1<<0)
|
||||
#define SM501_SYSCTRL_MEM_TRISTATE (1<<1)
|
||||
#define SM501_SYSCTRL_CRT_TRISTATE (1<<2)
|
||||
|
||||
#define SM501_SYSCTRL_PCI_SLAVE_BURST_MASK (3<<4)
|
||||
#define SM501_SYSCTRL_PCI_SLAVE_BURST_1 (0<<4)
|
||||
#define SM501_SYSCTRL_PCI_SLAVE_BURST_2 (1<<4)
|
||||
#define SM501_SYSCTRL_PCI_SLAVE_BURST_4 (2<<4)
|
||||
#define SM501_SYSCTRL_PCI_SLAVE_BURST_8 (3<<4)
|
||||
|
||||
#define SM501_SYSCTRL_PCI_CLOCK_RUN_EN (1<<6)
|
||||
#define SM501_SYSCTRL_PCI_RETRY_DISABLE (1<<7)
|
||||
#define SM501_SYSCTRL_PCI_SUBSYS_LOCK (1<<11)
|
||||
#define SM501_SYSCTRL_PCI_BURST_READ_EN (1<<15)
|
||||
|
||||
/* miscellaneous control */
|
||||
|
||||
#define SM501_MISC_CONTROL (0x000004)
|
||||
|
||||
#define SM501_MISC_BUS_SH (0x0)
|
||||
|
|
Loading…
Reference in a new issue