From: Enrico Leto Date: Wed, 24 Jan 2024 14:43:49 +0000 (+0100) Subject: siemens: eeprom: clean up definitions X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=5ae54613ebb7b926ea09e8f145d9a40a85d6480e;p=u-boot.git siemens: eeprom: clean up definitions Move the I2C and EEPROM address definitions in common board header. Reviewed-by: Alexander Sverdlin Signed-off-by: Enrico Leto --- diff --git a/board/siemens/capricorn/board.c b/board/siemens/capricorn/board.c index 924c88e8fa..5f7e2b1e89 100644 --- a/board/siemens/capricorn/board.c +++ b/board/siemens/capricorn/board.c @@ -28,6 +28,7 @@ #include #endif #include +#include "../common/eeprom.h" #include "../common/factoryset.h" #define GPIO_PAD_CTRL \ @@ -337,13 +338,11 @@ void board_late_mmc_env_init(void) } #ifndef CONFIG_SPL_BUILD -int factoryset_read_eeprom(int i2c_addr); - static int load_parameters_from_factoryset(void) { int ret; - ret = factoryset_read_eeprom(EEPROM_I2C_ADDR); + ret = factoryset_read_eeprom(SIEMENS_EE_I2C_ADDR); if (ret) return ret; diff --git a/board/siemens/common/board.c b/board/siemens/common/board.c index d077751cbe..420c496581 100644 --- a/board/siemens/common/board.c +++ b/board/siemens/common/board.c @@ -34,7 +34,8 @@ #include #include #include -#include "../common/factoryset.h" +#include "eeprom.h" +#include "factoryset.h" DECLARE_GLOBAL_DATA_PTR; @@ -70,7 +71,6 @@ void sdram_init(void) #endif /* #ifdef CONFIG_SPL_BUILD */ #ifndef CONFIG_SPL_BUILD -#define FACTORYSET_EEPROM_ADDR 0x50 /* * Basic board specific setup. Pinmux has been handled already. */ @@ -88,7 +88,7 @@ int board_init(void) gd->bd->bi_boot_params = CFG_SYS_SDRAM_BASE + 0x100; #ifdef CONFIG_FACTORYSET - factoryset_read_eeprom(FACTORYSET_EEPROM_ADDR); + factoryset_read_eeprom(SIEMENS_EE_I2C_ADDR); #endif gpmc_init(); diff --git a/board/siemens/common/eeprom.h b/board/siemens/common/eeprom.h new file mode 100644 index 0000000000..a21d42789a --- /dev/null +++ b/board/siemens/common/eeprom.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright Siemens AG 2023 + * + * Common board definitions for siemens boards + */ + +#ifndef _COMMON_EEPROM_H_ +#define _COMMON_EEPROM_H_ + +/* EEPROM @ I2C */ +#define SIEMENS_EE_I2C_BUS 0 +#define SIEMENS_EE_I2C_ADDR 0x50 + +/* EEPROM mapping */ +#define SIEMENS_EE_ADDR_NAND_GEO 0x80 +#define SIEMENS_EE_ADDR_DDR3 0x90 +#define SIEMENS_EE_ADDR_CHIP 0x120 +#define SIEMENS_EE_ADDR_FACTORYSET 0x400 + +#endif /* _COMMON_EEPROM_H_ */ diff --git a/board/siemens/common/factoryset.c b/board/siemens/common/factoryset.c index 4e36a6f319..b5befab9f5 100644 --- a/board/siemens/common/factoryset.c +++ b/board/siemens/common/factoryset.c @@ -22,11 +22,11 @@ #include #include #include +#include "eeprom.h" #include "factoryset.h" -#define EEPR_PG_SZ 0x80 -#define EEPROM_FATORYSET_OFFSET 0x400 -#define OFF_PG EEPROM_FATORYSET_OFFSET/EEPR_PG_SZ +#define EEPR_PG_SZ 0x80 +#define OFF_PG (SIEMENS_EE_ADDR_FACTORYSET / EEPR_PG_SZ) /* Global variable that contains necessary information from FactorySet */ struct factorysetcontainer factory_dat; @@ -159,7 +159,7 @@ int factoryset_read_eeprom(int i2c_addr) #endif #if CONFIG_IS_ENABLED(DM_I2C) - ret = uclass_get_device_by_seq(UCLASS_I2C, EEPROM_I2C_BUS, &bus); + ret = uclass_get_device_by_seq(UCLASS_I2C, SIEMENS_EE_I2C_BUS, &bus); if (ret) goto err; @@ -171,14 +171,14 @@ int factoryset_read_eeprom(int i2c_addr) if (ret) goto err; - ret = dm_i2c_read(dev, EEPROM_FATORYSET_OFFSET, hdr, sizeof(hdr)); + ret = dm_i2c_read(dev, SIEMENS_EE_ADDR_FACTORYSET, hdr, sizeof(hdr)); if (ret) goto err; #else if (i2c_probe(i2c_addr)) goto err; - if (i2c_read(i2c_addr, EEPROM_FATORYSET_OFFSET, 2, hdr, sizeof(hdr))) + if (i2c_read(i2c_addr, SIEMENS_EE_ADDR_FACTORYSET, 2, hdr, sizeof(hdr))) goto err; #endif diff --git a/board/siemens/draco/board.c b/board/siemens/draco/board.c index 8b13d23aca..367a300b89 100644 --- a/board/siemens/draco/board.c +++ b/board/siemens/draco/board.c @@ -37,6 +37,7 @@ #include #include #include "board.h" +#include "../common/eeprom.h" #include "../common/factoryset.h" #include @@ -132,16 +133,12 @@ struct am335x_nand_geometry { u8 nand_bus; }; -#define EEPROM_ADDR 0x50 -#define EEPROM_ADDR_DDR3 0x90 -#define EEPROM_ADDR_CHIP 0x120 - static int draco_read_nand_geometry(void) { struct am335x_nand_geometry geo; /* Read NAND geometry */ - if (i2c_read(EEPROM_ADDR, 0x80, 2, + if (i2c_read(SIEMENS_EE_I2C_ADDR, SIEMENS_EE_ADDR_NAND_GEO, 2, (uchar *)&geo, sizeof(struct am335x_nand_geometry))) { printf("Could not read the NAND geomtery; something fundamentally wrong on the I2C bus.\n"); return -EIO; @@ -164,20 +161,20 @@ static int draco_read_nand_geometry(void) static int read_eeprom(void) { /* Check if baseboard eeprom is available */ - if (i2c_probe(EEPROM_ADDR)) { + if (i2c_probe(SIEMENS_EE_I2C_ADDR)) { printf("Could not probe the EEPROM; something fundamentally wrong on the I2C bus.\n"); return 1; } #ifdef CONFIG_SPL_BUILD /* Read Siemens eeprom data (DDR3) */ - if (i2c_read(EEPROM_ADDR, EEPROM_ADDR_DDR3, 2, + if (i2c_read(SIEMENS_EE_I2C_ADDR, SIEMENS_EE_ADDR_DDR3, 2, (uchar *)&settings.ddr3, sizeof(struct ddr3_data))) { printf("Could not read the EEPROM; something fundamentally wrong on the I2C bus.\nUse default DDR3 timings\n"); set_default_ddr3_timings(); } /* Read Siemens eeprom data (CHIP) */ - if (i2c_read(EEPROM_ADDR, EEPROM_ADDR_CHIP, 2, + if (i2c_read(SIEMENS_EE_I2C_ADDR, SIEMENS_EE_ADDR_CHIP, 2, (uchar *)&settings.chip, sizeof(settings.chip))) printf("Could not read chip settings\n"); diff --git a/board/siemens/pxm2/board.c b/board/siemens/pxm2/board.c index 40aee7c8b3..9e85d9b921 100644 --- a/board/siemens/pxm2/board.c +++ b/board/siemens/pxm2/board.c @@ -36,6 +36,7 @@ #include #include #include "board.h" +#include "../common/eeprom.h" #include "../common/factoryset.h" #include "pmic.h" #include diff --git a/board/siemens/rut/board.c b/board/siemens/rut/board.c index bad0b71ce2..49318b3203 100644 --- a/board/siemens/rut/board.c +++ b/board/siemens/rut/board.c @@ -36,6 +36,7 @@ #include #include #include "board.h" +#include "../common/eeprom.h" #include "../common/factoryset.h" /* diff --git a/include/configs/draco-etamin.h b/include/configs/draco-etamin.h index 97585a4fd1..6ae85b575b 100644 --- a/include/configs/draco-etamin.h +++ b/include/configs/draco-etamin.h @@ -69,9 +69,6 @@ /* Physical Memory Map */ #define CFG_MAX_RAM_BANK_SIZE (1024 << 20) /* 1GB */ -#define EEPROM_ADDR_DDR3 0x90 -#define EEPROM_ADDR_CHIP 0x120 - /* nedded by compliance test in read mode */ #undef COMMON_ENV_DFU_ARGS diff --git a/include/configs/draco-rastaban.h b/include/configs/draco-rastaban.h index 0991ebfd00..1b95606cca 100644 --- a/include/configs/draco-rastaban.h +++ b/include/configs/draco-rastaban.h @@ -34,9 +34,6 @@ /* Physical Memory Map */ #define CFG_MAX_RAM_BANK_SIZE (1024 << 20) /* 1GB */ -#define EEPROM_ADDR_DDR3 0x90 -#define EEPROM_ADDR_CHIP 0x120 - /* Default env settings */ #define CFG_EXTRA_ENV_SETTINGS \ "hostname=rastaban\0" \ diff --git a/include/configs/draco-thuban.h b/include/configs/draco-thuban.h index f4c04c55eb..629558e27e 100644 --- a/include/configs/draco-thuban.h +++ b/include/configs/draco-thuban.h @@ -27,9 +27,6 @@ /* Physical Memory Map */ #define CFG_MAX_RAM_BANK_SIZE (1024 << 20) /* 1GB */ -#define EEPROM_ADDR_DDR3 0x90 -#define EEPROM_ADDR_CHIP 0x120 - /* Default env settings */ #define CFG_EXTRA_ENV_SETTINGS \ "hostname=thuban\0" \