diff options
author | Anatolij Gustschin <agust@denx.de> | 2011-05-27 16:08:20 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2011-08-04 22:55:34 +0200 |
commit | d7ffd27a6e52e33e59f0acdc0898bac3d3d91548 (patch) | |
tree | d10149e59f716568ce45c7199eacf0e3e9acd01f | |
parent | 3b4a226305636a067d8da6022c011df008a6e0d7 (diff) | |
download | u-boot-imx-d7ffd27a6e52e33e59f0acdc0898bac3d3d91548.zip u-boot-imx-d7ffd27a6e52e33e59f0acdc0898bac3d3d91548.tar.gz u-boot-imx-d7ffd27a6e52e33e59f0acdc0898bac3d3d91548.tar.bz2 |
video: mb862xx: support Coral-PA controller
Add detection of Coral-PA and configure Coral CCF an MMR parameters
using CONFIG_SYS_MB862xx_CCF and CONFIG_SYS_MB862xx_MMR macros.
Use CCF and MMR parameters for Coral-P Eval. Board if the appropriate
macros weren't defined.
Signed-off-by: Anatolij Gustschin <agust@denx.de>
-rw-r--r-- | drivers/video/mb862xx.c | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/drivers/video/mb862xx.c b/drivers/video/mb862xx.c index edf34aa..088365d 100644 --- a/drivers/video/mb862xx.c +++ b/drivers/video/mb862xx.c @@ -189,10 +189,19 @@ static void de_init (void) } #if defined(CONFIG_VIDEO_CORALP) +/* use CCF and MMR parameters for Coral-P Eval. Board as default */ +#ifndef CONFIG_SYS_MB862xx_CCF +#define CONFIG_SYS_MB862xx_CCF 0x00090000 +#endif +#ifndef CONFIG_SYS_MB862xx_MMR +#define CONFIG_SYS_MB862xx_MMR 0x11d7fa13 +#endif + unsigned int pci_video_init (void) { GraphicDevice *dev = &mb862xx; pci_dev_t devbusfn; + u16 device; if ((devbusfn = pci_find_devices (supported, 0)) < 0) { puts ("PCI video controller not found!\n"); @@ -212,10 +221,25 @@ unsigned int pci_video_init (void) dev->pciBase = dev->frameAdrs; - /* Setup clocks and memory mode for Coral-P Eval. Board */ - HOST_WR_REG (GC_CCF, 0x00090000); + puts("Coral-"); + + pci_read_config_word(devbusfn, PCI_DEVICE_ID, &device); + switch (device) { + case PCI_DEVICE_ID_CORAL_P: + puts("P\n"); + break; + case PCI_DEVICE_ID_CORAL_PA: + puts("PA\n"); + break; + default: + puts("Unknown\n"); + return 0; + } + + /* Setup clocks and memory mode for Coral-P(A) */ + HOST_WR_REG(GC_CCF, CONFIG_SYS_MB862xx_CCF); udelay (200); - HOST_WR_REG (GC_MMR, 0x11d7fa13); + HOST_WR_REG(GC_MMR, CONFIG_SYS_MB862xx_MMR); udelay (100); return dev->frameAdrs; } @@ -235,8 +259,6 @@ unsigned int card_init (void) if (!pci_video_init ()) return 0; - puts ("CoralP\n"); - tmp = 0; videomode = 0x310; /* get video mode via environment */ |