|
|
|
@ -15,13 +15,17 @@ |
|
|
|
|
#include <asm/arch/sys_proto.h> |
|
|
|
|
#include <asm/gpio.h> |
|
|
|
|
#include <asm/imx-common/iomux-v3.h> |
|
|
|
|
#include <asm/imx-common/mxc_i2c.h> |
|
|
|
|
#include <asm/io.h> |
|
|
|
|
#include <linux/sizes.h> |
|
|
|
|
#include <common.h> |
|
|
|
|
#include <watchdog.h> |
|
|
|
|
#include <fsl_esdhc.h> |
|
|
|
|
#include <i2c.h> |
|
|
|
|
#include <mmc.h> |
|
|
|
|
#include <usb.h> |
|
|
|
|
#include <power/pmic.h> |
|
|
|
|
#include <power/max77696_pmic.h> |
|
|
|
|
|
|
|
|
|
DECLARE_GLOBAL_DATA_PTR; |
|
|
|
|
|
|
|
|
@ -35,6 +39,11 @@ DECLARE_GLOBAL_DATA_PTR; |
|
|
|
|
PAD_CTL_SRE_FAST | PAD_CTL_HYS | \
|
|
|
|
|
PAD_CTL_LVE) |
|
|
|
|
|
|
|
|
|
#define I2C_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ |
|
|
|
|
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
|
|
|
|
PAD_CTL_DSE_40ohm | PAD_CTL_HYS | \
|
|
|
|
|
PAD_CTL_ODE | PAD_CTL_SRE_FAST) |
|
|
|
|
|
|
|
|
|
int dram_init(void) |
|
|
|
|
{ |
|
|
|
|
gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE); |
|
|
|
@ -88,6 +97,45 @@ int board_usb_phy_mode(int port) |
|
|
|
|
return USB_INIT_DEVICE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* I2C1 for PMIC */ |
|
|
|
|
#define I2C_PMIC 0 |
|
|
|
|
#define PC MUX_PAD_CTRL(I2C_PAD_CTRL) |
|
|
|
|
struct i2c_pads_info i2c_pad_info1 = { |
|
|
|
|
.sda = { |
|
|
|
|
.i2c_mode = MX6_PAD_I2C1_SDA__I2C1_SDA | PC, |
|
|
|
|
.gpio_mode = MX6_PAD_I2C1_SDA__GPIO_3_13 | PC, |
|
|
|
|
.gp = IMX_GPIO_NR(3, 13), |
|
|
|
|
}, |
|
|
|
|
.scl = { |
|
|
|
|
.i2c_mode = MX6_PAD_I2C1_SCL__I2C1_SCL | PC, |
|
|
|
|
.gpio_mode = MX6_PAD_I2C1_SCL__GPIO_3_12 | PC, |
|
|
|
|
.gp = IMX_GPIO_NR(3, 12), |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
int power_init_board(void) |
|
|
|
|
{ |
|
|
|
|
struct pmic *p; |
|
|
|
|
int ret; |
|
|
|
|
unsigned int reg; |
|
|
|
|
|
|
|
|
|
ret = power_max77696_init(I2C_PMIC); |
|
|
|
|
if (ret) |
|
|
|
|
return ret; |
|
|
|
|
|
|
|
|
|
p = pmic_get("MAX77696"); |
|
|
|
|
if (!p) |
|
|
|
|
return -EINVAL; |
|
|
|
|
|
|
|
|
|
ret = pmic_reg_read(p, CID, ®); |
|
|
|
|
if (ret) |
|
|
|
|
return ret; |
|
|
|
|
|
|
|
|
|
printf("PMIC: MAX77696 detected, rev=0x%x\n", reg); |
|
|
|
|
|
|
|
|
|
return pmic_probe(p); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int board_early_init_f(void) |
|
|
|
|
{ |
|
|
|
|
setup_iomux_uart(); |
|
|
|
@ -99,6 +147,8 @@ int board_init(void) |
|
|
|
|
/* address of boot parameters */ |
|
|
|
|
gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; |
|
|
|
|
|
|
|
|
|
setup_i2c(0, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1); |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|