]> git.sur5r.net Git - u-boot/blobdiff - board/freescale/mx51evk/mx51evk.c
Merge branch 'post' of git://git.denx.de/u-boot-blackfin
[u-boot] / board / freescale / mx51evk / mx51evk.c
index c8d7d3964e3f368ba41e6faa92189c9fca843e88..8da1ee8b1aa15c016b41d2dae6ab041254140d69 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <common.h>
 #include <asm/io.h>
+#include <asm/gpio.h>
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/mx5x_pins.h>
 #include <asm/arch/iomux.h>
@@ -52,9 +53,9 @@ u32 get_board_rev(void)
 
 int dram_init(void)
 {
-       gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
-       gd->bd->bi_dram[0].size = get_ram_size((long *)PHYS_SDRAM_1,
-                       PHYS_SDRAM_1_SIZE);
+       /* dram_init must store complete ramsize in gd->ram_size */
+       gd->ram_size = get_ram_size((void *)CONFIG_SYS_SDRAM_BASE,
+                               PHYS_SDRAM_1_SIZE);
        return 0;
 }
 
@@ -180,7 +181,6 @@ static void setup_iomux_spi(void)
 static void power_init(void)
 {
        unsigned int val;
-       unsigned int reg;
        struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)MXC_CCM_BASE;
 
        /* Write needed to Power Gate 2 register */
@@ -188,27 +188,27 @@ static void power_init(void)
        val &= ~PWGT2SPIEN;
        pmic_reg_write(REG_POWER_MISC, val);
 
-       /* Write needed to update Charger 0 */
-       pmic_reg_write(REG_CHARGE, VCHRG0 | VCHRG1 | VCHRG2 |
-               ICHRG0 | ICHRG1 | ICHRG2 | ICHRG3 | ICHRGTR0 |
-               OVCTRL1 | UCHEN | CHRGLEDEN | CYCLB);
+       /* Externally powered */
+       val = pmic_reg_read(REG_CHARGE);
+       val |= ICHRG0 | ICHRG1 | ICHRG2 | ICHRG3 | CHGAUTOB;
+       pmic_reg_write(REG_CHARGE, val);
 
        /* power up the system first */
        pmic_reg_write(REG_POWER_MISC, PWUP);
 
        /* Set core voltage to 1.1V */
        val = pmic_reg_read(REG_SW_0);
-       val = (val & (~0x1F)) | 0x14;
+       val = (val & ~SWx_VOLT_MASK) | SWx_1_100V;
        pmic_reg_write(REG_SW_0, val);
 
        /* Setup VCC (SW2) to 1.25 */
        val = pmic_reg_read(REG_SW_1);
-       val = (val & (~0x1F)) | 0x1A;
+       val = (val & ~SWx_VOLT_MASK) | SWx_1_250V;
        pmic_reg_write(REG_SW_1, val);
 
        /* Setup 1V2_DIG1 (SW3) to 1.25 */
        val = pmic_reg_read(REG_SW_2);
-       val = (val & (~0x1F)) | 0x1A;
+       val = (val & ~SWx_VOLT_MASK) | SWx_1_250V;
        pmic_reg_write(REG_SW_2, val);
        udelay(50);
 
@@ -249,13 +249,7 @@ static void power_init(void)
        pmic_reg_write(REG_MODE_1, val);
        udelay(200);
 
-       reg = readl(GPIO2_BASE_ADDR + 0x0);
-       reg &= ~0x4000;  /* Lower reset line */
-       writel(reg, GPIO2_BASE_ADDR + 0x0);
-
-       reg = readl(GPIO2_BASE_ADDR + 0x4);
-       reg |= 0x4000;  /* configure GPIO lines as output */
-       writel(reg, GPIO2_BASE_ADDR + 0x4);
+       gpio_direction_output(46, 0);
 
        /* Reset the ethernet controller over GPIO */
        writel(0x1, IOMUXC_BASE_ADDR + 0x0AC);
@@ -267,9 +261,7 @@ static void power_init(void)
 
        udelay(500);
 
-       reg = readl(GPIO2_BASE_ADDR + 0x0);
-       reg |= 0x4000;
-       writel(reg, GPIO2_BASE_ADDR + 0x0);
+       gpio_set_value(46, 1);
 }
 
 #ifdef CONFIG_FSL_ESDHC
@@ -278,9 +270,9 @@ int board_mmc_getcd(u8 *cd, struct mmc *mmc)
        struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
 
        if (cfg->esdhc_base == MMC_SDHC1_BASE_ADDR)
-               *cd = readl(GPIO1_BASE_ADDR) & 0x01;
+               *cd = gpio_get_value(0);
        else
-               *cd = readl(GPIO1_BASE_ADDR) & 0x40;
+               *cd = gpio_get_value(6);
 
        return 0;
 }
@@ -399,17 +391,21 @@ int board_mmc_init(bd_t *bis)
 }
 #endif
 
+int board_early_init_f(void)
+{
+       setup_iomux_uart();
+       setup_iomux_fec();
+
+       return 0;
+}
+
 int board_init(void)
 {
        system_rev = get_cpu_rev();
 
-       gd->bd->bi_arch_number = MACH_TYPE_MX51_BABBAGE;
        /* address of boot parameters */
        gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
 
-       setup_iomux_uart();
-       setup_iomux_fec();
-
        return 0;
 }
 
@@ -426,41 +422,7 @@ int board_late_init(void)
 
 int checkboard(void)
 {
-       puts("Board: MX51EVK ");
-
-       switch (system_rev & 0xff) {
-       case CHIP_REV_3_0:
-               puts("3.0 [");
-               break;
-       case CHIP_REV_2_5:
-               puts("2.5 [");
-               break;
-       case CHIP_REV_2_0:
-               puts("2.0 [");
-               break;
-       case CHIP_REV_1_1:
-               puts("1.1 [");
-               break;
-       case CHIP_REV_1_0:
-       default:
-               puts("1.0 [");
-               break;
-       }
+       puts("Board: MX51EVK\n");
 
-       switch (__raw_readl(SRC_BASE_ADDR + 0x8)) {
-       case 0x0001:
-               puts("POR");
-               break;
-       case 0x0009:
-               puts("RST");
-               break;
-       case 0x0010:
-       case 0x0011:
-               puts("WDOG");
-               break;
-       default:
-               puts("unknown");
-       }
-       puts("]\n");
        return 0;
 }