summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatolij Gustschin <agust@denx.de>2011-05-27 16:08:20 +0200
committerWolfgang Denk <wd@denx.de>2011-08-04 22:55:34 +0200
commitd7ffd27a6e52e33e59f0acdc0898bac3d3d91548 (patch)
treed10149e59f716568ce45c7199eacf0e3e9acd01f
parent3b4a226305636a067d8da6022c011df008a6e0d7 (diff)
downloadu-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.c32
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 */