board: ge: Move VPD EEPROM configuration to the defconfig
Use standard configuration logic to define EEPROM constants. Names are based on VPD_EEPROM_ prefix because EEPROM_ is already used by i2c_eeprom driver. Signed-off-by: Denis Zalevskiy <denis.zalevskiy@ge.com> Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.com>
This commit is contained in:
parent
33a6c8d4e6
commit
4c55208350
@ -15,4 +15,6 @@ config SYS_SOC
|
||||
config SYS_CONFIG_NAME
|
||||
default "ge_bx50v3"
|
||||
|
||||
source "board/ge/common/Kconfig"
|
||||
|
||||
endif
|
||||
|
@ -38,15 +38,6 @@ struct vpd_cache;
|
||||
static int confidx = 3; /* Default to b850v3. */
|
||||
static struct vpd_cache vpd;
|
||||
|
||||
#ifndef CONFIG_SYS_I2C_EEPROM_ADDR
|
||||
# define CONFIG_SYS_I2C_EEPROM_ADDR 0x50
|
||||
# define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SYS_I2C_EEPROM_BUS
|
||||
#define CONFIG_SYS_I2C_EEPROM_BUS 4
|
||||
#endif
|
||||
|
||||
#define NC_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
|
||||
PAD_CTL_HYS)
|
||||
@ -634,11 +625,11 @@ static void process_vpd(struct vpd_cache *vpd)
|
||||
static int read_vpd(void)
|
||||
{
|
||||
int res;
|
||||
int size = 1024;
|
||||
static const int size = CONFIG_SYS_VPD_EEPROM_SIZE;
|
||||
uint8_t *data;
|
||||
unsigned int current_i2c_bus = i2c_get_bus_num();
|
||||
|
||||
res = i2c_set_bus_num(CONFIG_SYS_I2C_EEPROM_BUS);
|
||||
res = i2c_set_bus_num(CONFIG_SYS_VPD_EEPROM_I2C_BUS);
|
||||
if (res < 0)
|
||||
return res;
|
||||
|
||||
@ -646,8 +637,8 @@ static int read_vpd(void)
|
||||
if (!data)
|
||||
return -ENOMEM;
|
||||
|
||||
res = i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0,
|
||||
CONFIG_SYS_I2C_EEPROM_ADDR_LEN, data, size);
|
||||
res = i2c_read(CONFIG_SYS_VPD_EEPROM_I2C_ADDR, 0,
|
||||
CONFIG_SYS_VPD_EEPROM_I2C_ADDR_LEN, data, size);
|
||||
|
||||
if (res == 0) {
|
||||
memset(&vpd, 0, sizeof(vpd));
|
||||
|
14
board/ge/common/Kconfig
Normal file
14
board/ge/common/Kconfig
Normal file
@ -0,0 +1,14 @@
|
||||
config SYS_VPD_EEPROM_I2C_ADDR
|
||||
hex "I2C address of the EEPROM device used for VPD"
|
||||
help
|
||||
VPD = Vital Product Data
|
||||
|
||||
config SYS_VPD_EEPROM_I2C_BUS
|
||||
int "I2C bus of the EEPROM device used for VPD."
|
||||
|
||||
config SYS_VPD_EEPROM_SIZE
|
||||
int "Size in bytes of the EEPROM device used for VPD"
|
||||
|
||||
config SYS_VPD_EEPROM_I2C_ADDR_LEN
|
||||
int "Number of bytes to use for VPD EEPROM address"
|
||||
default 1
|
@ -13,4 +13,6 @@ config SYS_SOC
|
||||
config SYS_CONFIG_NAME
|
||||
default "mx53ppd"
|
||||
|
||||
source "board/ge/common/Kconfig"
|
||||
|
||||
endif
|
||||
|
@ -40,13 +40,6 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
/* Index of I2C1, SEGMENT 1 (see CONFIG_SYS_I2C_BUSES). */
|
||||
#define VPD_EEPROM_BUS 2
|
||||
|
||||
/* Address of 24C08 EEPROM. */
|
||||
#define VPD_EEPROM_ADDR 0x50
|
||||
#define VPD_EEPROM_ADDR_LEN 1
|
||||
|
||||
static u32 mx53_dram_size[2];
|
||||
|
||||
phys_size_t get_effective_memsize(void)
|
||||
@ -332,11 +325,11 @@ static int read_vpd(void)
|
||||
{
|
||||
struct vpd_cache vpd;
|
||||
int res;
|
||||
int size = 1024;
|
||||
static const int size = CONFIG_SYS_VPD_EEPROM_SIZE;
|
||||
u8 *data;
|
||||
unsigned int current_i2c_bus = i2c_get_bus_num();
|
||||
|
||||
res = i2c_set_bus_num(VPD_EEPROM_BUS);
|
||||
res = i2c_set_bus_num(CONFIG_SYS_VPD_EEPROM_I2C_BUS);
|
||||
if (res < 0)
|
||||
return res;
|
||||
|
||||
@ -344,7 +337,8 @@ static int read_vpd(void)
|
||||
if (!data)
|
||||
return -ENOMEM;
|
||||
|
||||
res = i2c_read(VPD_EEPROM_ADDR, 0, VPD_EEPROM_ADDR_LEN, data, size);
|
||||
res = i2c_read(CONFIG_SYS_VPD_EEPROM_I2C_ADDR, 0,
|
||||
CONFIG_SYS_VPD_EEPROM_I2C_ADDR_LEN, data, size);
|
||||
if (res == 0) {
|
||||
memset(&vpd, 0, sizeof(vpd));
|
||||
vpd_reader(size, data, &vpd, vpd_callback);
|
||||
|
@ -8,6 +8,15 @@ CONFIG_FIT=y
|
||||
CONFIG_BOOTDELAY=1
|
||||
CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
||||
CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y
|
||||
|
||||
# monitor's EEPROM is connected to the bus through the mux channel 1
|
||||
# (the number is the offset in CONFIG_SYS_I2C_BUSES)
|
||||
CONFIG_SYS_VPD_EEPROM_I2C_BUS=4
|
||||
# Address of Atmel 24C08 EEPROM
|
||||
CONFIG_SYS_VPD_EEPROM_I2C_ADDR=0x50
|
||||
CONFIG_SYS_VPD_EEPROM_I2C_ADDR_LEN=1
|
||||
CONFIG_SYS_VPD_EEPROM_SIZE=1024
|
||||
|
||||
CONFIG_SUPPORT_RAW_INITRD=y
|
||||
CONFIG_BOARD_EARLY_INIT_F=y
|
||||
CONFIG_LAST_STAGE_INIT=y
|
||||
|
@ -9,6 +9,16 @@ CONFIG_BOOTDELAY=1
|
||||
# CONFIG_CONSOLE_MUX is not set
|
||||
CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
||||
CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y
|
||||
|
||||
# monitor's EEPROM is connected to the bus through the mux channel 1
|
||||
# (the number is the offset in CONFIG_SYS_I2C_BUSES)
|
||||
# (there is also Frame EEPROM connected to the channel 4 (bus 4))
|
||||
CONFIG_SYS_VPD_EEPROM_I2C_BUS=2
|
||||
# Address of Atmel 24C08 EEPROM
|
||||
CONFIG_SYS_VPD_EEPROM_I2C_ADDR=0x50
|
||||
CONFIG_SYS_VPD_EEPROM_I2C_ADDR_LEN=1
|
||||
CONFIG_SYS_VPD_EEPROM_SIZE=1024
|
||||
|
||||
CONFIG_SUPPORT_RAW_INITRD=y
|
||||
CONFIG_MISC_INIT_R=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
|
Loading…
Reference in New Issue
Block a user