|
|
|
@ -65,11 +65,19 @@ int board_early_init_f(void) |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#define ETHERNET_PHY_RESET 176 /* GPIO 5 22 */ |
|
|
|
|
|
|
|
|
|
int board_init(void) |
|
|
|
|
{ |
|
|
|
|
/* adress of boot parameters */ |
|
|
|
|
gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100; |
|
|
|
|
|
|
|
|
|
/* Force ethernet PHY out of reset */ |
|
|
|
|
gpio_request(ETHERNET_PHY_RESET, "phy_reset"); |
|
|
|
|
gpio_direction_output(ETHERNET_PHY_RESET, 0); |
|
|
|
|
mdelay(10); |
|
|
|
|
gpio_direction_output(ETHERNET_PHY_RESET, 1); |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -108,12 +116,25 @@ const struct rmobile_sysinfo sysinfo = { |
|
|
|
|
|
|
|
|
|
void reset_cpu(ulong addr) |
|
|
|
|
{ |
|
|
|
|
u8 val; |
|
|
|
|
struct udevice *dev; |
|
|
|
|
const u8 pmic_bus = 6; |
|
|
|
|
const u8 pmic_addr = 0x5a; |
|
|
|
|
u8 data; |
|
|
|
|
int ret; |
|
|
|
|
|
|
|
|
|
ret = i2c_get_chip_for_busnum(pmic_bus, pmic_addr, 1, &dev); |
|
|
|
|
if (ret) |
|
|
|
|
hang(); |
|
|
|
|
|
|
|
|
|
ret = dm_i2c_read(dev, 0x13, &data, 1); |
|
|
|
|
if (ret) |
|
|
|
|
hang(); |
|
|
|
|
|
|
|
|
|
data |= BIT(1); |
|
|
|
|
|
|
|
|
|
i2c_set_bus_num(2); /* PowerIC connected to ch2 */ |
|
|
|
|
i2c_read(CONFIG_SYS_I2C_POWERIC_ADDR, 0x13, 1, &val, 1); |
|
|
|
|
val |= 0x02; |
|
|
|
|
i2c_write(CONFIG_SYS_I2C_POWERIC_ADDR, 0x13, 1, &val, 1); |
|
|
|
|
ret = dm_i2c_write(dev, 0x13, &data, 1); |
|
|
|
|
if (ret) |
|
|
|
|
hang(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_SPL_BUILD |
|
|
|
|