|
|
|
@ -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> |
|
|
|
@ -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 */ |
|
|
|
@ -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; |
|
|
|
|
} |
|
|
|
|