mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-04 20:26:13 +02:00
siemens: eeprom: clean up definitions
Move the I2C and EEPROM address definitions in common board header. Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com> Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
This commit is contained in:
parent
9152a51e3c
commit
5ae54613eb
@ -28,6 +28,7 @@
|
||||
#include <asm/arch-imx8/clock.h>
|
||||
#endif
|
||||
#include <linux/delay.h>
|
||||
#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;
|
||||
|
||||
|
||||
@ -34,7 +34,8 @@
|
||||
#include <cpsw.h>
|
||||
#include <watchdog.h>
|
||||
#include <asm/mach-types.h>
|
||||
#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();
|
||||
|
||||
21
board/siemens/common/eeprom.h
Normal file
21
board/siemens/common/eeprom.h
Normal file
@ -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_ */
|
||||
@ -22,11 +22,11 @@
|
||||
#include <net.h>
|
||||
#include <errno.h>
|
||||
#include <g_dnl.h>
|
||||
#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
|
||||
|
||||
|
||||
@ -37,6 +37,7 @@
|
||||
#include <watchdog.h>
|
||||
#include <linux/delay.h>
|
||||
#include "board.h"
|
||||
#include "../common/eeprom.h"
|
||||
#include "../common/factoryset.h"
|
||||
#include <nand.h>
|
||||
|
||||
@ -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");
|
||||
|
||||
|
||||
@ -36,6 +36,7 @@
|
||||
#include <cpsw.h>
|
||||
#include <watchdog.h>
|
||||
#include "board.h"
|
||||
#include "../common/eeprom.h"
|
||||
#include "../common/factoryset.h"
|
||||
#include "pmic.h"
|
||||
#include <nand.h>
|
||||
|
||||
@ -36,6 +36,7 @@
|
||||
#include <watchdog.h>
|
||||
#include <linux/delay.h>
|
||||
#include "board.h"
|
||||
#include "../common/eeprom.h"
|
||||
#include "../common/factoryset.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
|
||||
|
||||
@ -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" \
|
||||
|
||||
@ -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" \
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user