diff options
Diffstat (limited to 'board/renesas/alt/alt.c')
-rw-r--r-- | board/renesas/alt/alt.c | 70 |
1 files changed, 29 insertions, 41 deletions
diff --git a/board/renesas/alt/alt.c b/board/renesas/alt/alt.c index 9d8e8f96be..8cc17e9581 100644 --- a/board/renesas/alt/alt.c +++ b/board/renesas/alt/alt.c @@ -15,6 +15,8 @@ #include <asm/arch/sys_proto.h> #include <asm/gpio.h> #include <asm/arch/rmobile.h> +#include <asm/arch/rcar-mstp.h> +#include <asm/arch/mmc.h> #include <netdev.h> #include <miiphy.h> #include <i2c.h> @@ -37,51 +39,37 @@ void s_init(void) qos_init(); } -#define MSTPSR1 0xE6150038 -#define SMSTPCR1 0xE6150134 #define TMU0_MSTP125 (1 << 25) - -#define MSTPSR7 0xE61501C4 -#define SMSTPCR7 0xE615014C -#define SCIF0_MSTP719 (1 << 19) - -#define MSTPSR8 0xE61509A0 -#define SMSTPCR8 0xE6150990 +#define SCIF2_MSTP719 (1 << 19) #define ETHER_MSTP813 (1 << 13) - -#define mstp_setbits(type, addr, saddr, set) \ - out_##type((saddr), in_##type(addr) | (set)) -#define mstp_clrbits(type, addr, saddr, clear) \ - out_##type((saddr), in_##type(addr) & ~(clear)) -#define mstp_setbits_le32(addr, saddr, set) \ - mstp_setbits(le32, addr, saddr, set) -#define mstp_clrbits_le32(addr, saddr, clear) \ - mstp_clrbits(le32, addr, saddr, clear) +#define IIC1_MSTP323 (1 << 23) +#define MMC0_MSTP315 (1 << 15) int board_early_init_f(void) { /* TMU */ mstp_clrbits_le32(MSTPSR1, SMSTPCR1, TMU0_MSTP125); - /* SCIF0 */ - mstp_clrbits_le32(MSTPSR7, SMSTPCR7, SCIF0_MSTP719); + /* SCIF2 */ + mstp_clrbits_le32(MSTPSR7, SMSTPCR7, SCIF2_MSTP719); /* ETHER */ mstp_clrbits_le32(MSTPSR8, SMSTPCR8, ETHER_MSTP813); - return 0; -} + /* IIC1 / sh-i2c ch1 */ + mstp_clrbits_le32(MSTPSR3, SMSTPCR3, IIC1_MSTP323); -void arch_preboot_os(void) -{ - /* Disable TMU0 */ - mstp_setbits_le32(MSTPSR1, SMSTPCR1, TMU0_MSTP125); +#ifdef CONFIG_SH_MMCIF + /* MMC */ + mstp_clrbits_le32(MSTPSR3, SMSTPCR3, MMC0_MSTP315); +#endif + return 0; } int board_init(void) { /* adress of boot parameters */ - gd->bd->bi_boot_params = ALT_SDRAM_BASE + 0x100; + gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100; /* Init PFC controller */ r8a7794_pinmux_init(); @@ -138,9 +126,21 @@ int board_eth_init(bd_t *bis) #endif } +int board_mmc_init(bd_t *bis) +{ + int ret = 0; + +#ifdef CONFIG_SH_MMCIF + gpio_request(GPIO_GP_4_31, NULL); + gpio_set_value(GPIO_GP_4_31, 1); + + ret = mmcif_mmc_init(); +#endif + return ret; +} + int dram_init(void) { - gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE; gd->ram_size = CONFIG_SYS_SDRAM_SIZE; return 0; @@ -150,23 +150,11 @@ const struct rmobile_sysinfo sysinfo = { CONFIG_RMOBILE_BOARD_STRING }; -void dram_init_banksize(void) -{ - gd->bd->bi_dram[0].start = ALT_SDRAM_BASE; - gd->bd->bi_dram[0].size = ALT_SDRAM_SIZE; -} - -int board_late_init(void) -{ - return 0; -} - void reset_cpu(ulong addr) { u8 val; - i2c_set_bus_num(1); /* PowerIC connected to ch3 */ - i2c_init(400000, 0); + i2c_set_bus_num(1); /* PowerIC connected to ch1 */ i2c_read(CONFIG_SYS_I2C_POWERIC_ADDR, 0x13, 1, &val, 1); val |= 0x02; i2c_write(CONFIG_SYS_I2C_POWERIC_ADDR, 0x13, 1, &val, 1); |