Beagle Rev C5 support
authorJoel Fernandes <agnel.joel@gmail.com>
Fri, 15 Jul 2011 05:52:01 +0000 (11:22 +0530)
committerAnand Gadiyar <gadiyar@ti.com>
Fri, 15 Jul 2011 05:52:01 +0000 (11:22 +0530)
This patch adds Rev C5 support for a new memory chip that was added to
the Beagleboard Revision C5. The chip is 256MB SDRAM and the following
patch enables it.

The micron memory chip part is: MT29C4G48MAZAPAKQ-5 IT.

Signed-off-by: Joel A Fernandes <joelagnel@ti.com>
Signed-off-by: Koen Kooi <k-kooi@ti.com>
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
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;