]> git.sur5r.net Git - u-boot/commitdiff
video: mb862xx: support Coral-PA controller
authorAnatolij Gustschin <agust@denx.de>
Fri, 27 May 2011 14:08:20 +0000 (16:08 +0200)
committerWolfgang Denk <wd@denx.de>
Thu, 4 Aug 2011 20:55:34 +0000 (22:55 +0200)
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>
drivers/video/mb862xx.c

index edf34aa061330de697874410025a86bc66506497..088365dcec9e057aa692d8d0568c894986658f93 100644 (file)
@@ -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 */