From d74055596833ecf9c73babc97d9818093679e26c Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu Date: Fri, 2 Mar 2012 12:58:33 +0900 Subject: [PATCH] sh: r0p7734: Add support I2C controller This read MAC address from Serial EEPROM and set. Signed-off-by: Nobuhiro Iwamatsu Signed-off-by: Nobuhiro Iwamatsu --- board/renesas/r0p7734/r0p7734.c | 20 +++++++++++++++++++- include/configs/r0p7734.h | 17 +++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/board/renesas/r0p7734/r0p7734.c b/board/renesas/r0p7734/r0p7734.c index 80f4329e00..c1bde549ae 100644 --- a/board/renesas/r0p7734/r0p7734.c +++ b/board/renesas/r0p7734/r0p7734.c @@ -25,6 +25,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -55,6 +56,24 @@ int board_init(void) if (r & MSTPSR1_GETHER) writel((r & ~MSTPSR1_GETHER), MSTPCR1); #endif + + return 0; +} + +int board_late_init(void) +{ + u8 mac[6]; + + /* Read Mac Address and set*/ + i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); + i2c_set_bus_num(CONFIG_SYS_I2C_MODULE); + + /* Read MAC address */ + i2c_read(0x50, 0x10, 0, mac, 6); + + if (is_valid_ether_addr(mac)) + eth_setenv_enetaddr("ethaddr", mac); + return 0; } @@ -75,4 +94,3 @@ int board_eth_init(bd_t *bis) return rc; } #endif - diff --git a/include/configs/r0p7734.h b/include/configs/r0p7734.h index d73cc4d3ca..aa3193da72 100644 --- a/include/configs/r0p7734.h +++ b/include/configs/r0p7734.h @@ -34,6 +34,7 @@ #define CONFIG_400MHZ_MODE 1 /* #define CONFIG_533MHZ_MODE 1 */ +#define CONFIG_BOARD_LATE_INIT #define CONFIG_SYS_TEXT_BASE 0x8FFC0000 #define CONFIG_CMD_FLASH @@ -67,6 +68,22 @@ # define CONFIG_SMC911X_BASE (0x84000000) #endif + +/* I2C */ +#define CONFIG_CMD_I2C +#define CONFIG_SH_SH7734_I2C 1 +#define CONFIG_HARD_I2C 1 +#define CONFIG_I2C_MULTI_BUS 1 +#define CONFIG_SYS_MAX_I2C_BUS 2 +#define CONFIG_SYS_I2C_MODULE 0 +#define CONFIG_SYS_I2C_SPEED 100000 /* 100 kHz */ +#define CONFIG_SYS_I2C_SLAVE 0x50 +#define CONFIG_SH_I2C_DATA_HIGH 4 +#define CONFIG_SH_I2C_DATA_LOW 5 +#define CONFIG_SH_I2C_CLOCK 500000000 +#define CONFIG_SH_I2C_BASE0 0xFFC70000 +#define CONFIG_SH_I2C_BASE1 0xFFC7100 + /* undef to save memory */ #define CONFIG_SYS_LONGHELP /* Monitor Command Prompt */ -- 2.25.1