Beagle Rev C5 support
[pandora-x-loader.git] / board / omap3530beagle / omap3530beagle.c
index c85bebf..102c6d9 100644 (file)
@@ -213,6 +213,7 @@ int beagle_revision(void)
 
 #define MICRON_DDR     0
 #define NUMONYX_MCP    1
+#define MICRON_MCP     2
 int identify_xm_ddr()
 {
        int     mfr, id;
@@ -235,6 +236,8 @@ int identify_xm_ddr()
                return MICRON_DDR;
        if ((mfr == 0x20) && (id == 0xba))
                return NUMONYX_MCP;
+       if ((mfr == 0x2c) && (id == 0xbc))
+               return MICRON_MCP;
 }
 /*********************************************************************
  * config_3430sdram_ddr() - Init DDR on 3430SDP dev board.
@@ -261,6 +264,17 @@ void config_3430sdram_ddr(void)
                        __raw_writel(NUMONYX_V_ACTIMB_165, SDRC_ACTIM_CTRLB_1);
                        __raw_writel(SDP_3430_SDRC_RFR_CTRL_165MHz, SDRC_RFR_CTRL_0);
                        __raw_writel(SDP_3430_SDRC_RFR_CTRL_165MHz, SDRC_RFR_CTRL_1);
+               } else if (identify_xm_ddr() == MICRON_MCP) {
+                       /* Beagleboard Rev C5 */
+                       __raw_writel(0x2, SDRC_CS_CFG); /* 256MB/bank */
+                       __raw_writel(SDP_SDRC_MDCFG_0_DDR_MICRON_XM, SDRC_MCFG_0);
+                       __raw_writel(SDP_SDRC_MDCFG_0_DDR_MICRON_XM, SDRC_MCFG_1);
+                       __raw_writel(MICRON_V_ACTIMA_200, SDRC_ACTIM_CTRLA_0);
+                       __raw_writel(MICRON_V_ACTIMB_200, SDRC_ACTIM_CTRLB_0);
+                       __raw_writel(MICRON_V_ACTIMA_200, SDRC_ACTIM_CTRLA_1);
+                       __raw_writel(MICRON_V_ACTIMB_200, SDRC_ACTIM_CTRLB_1);
+                       __raw_writel(SDP_3430_SDRC_RFR_CTRL_200MHz, SDRC_RFR_CTRL_0);
+                       __raw_writel(SDP_3430_SDRC_RFR_CTRL_200MHz, SDRC_RFR_CTRL_1);
                } else {
                        __raw_writel(0x1, SDRC_CS_CFG); /* 128MB/bank */
                        __raw_writel(SDP_SDRC_MDCFG_0_DDR, SDRC_MCFG_0);
@@ -561,6 +575,8 @@ int misc_init_r(void)
        case REVISION_C4:
                if (identify_xm_ddr() == NUMONYX_MCP)
                        printf("Beagle Rev C4 from Special Computing\n");
+               else if(identify_xm_ddr() == MICRON_MCP)
+                       printf("Beagle Rev C5\n");
                else
                        printf("Beagle Rev C4\n");
                break;