This driver provides access to a simulated i2c eeprom. This simulated eeprom could be very useful in boards with ddr2 memories and no i2c interfaces.
Using this driver the user can simulate a spd eeprom of a ddr2 memory and use the ddr2 auto config. User can use the macros CONFIG_EEPROM_SIMUL_LEN and CONFIG_EEPROM_SIMUL_DATA to define the content of the simulated eeprom Signed-off-by: Ricardo Ribalda Delgado <[EMAIL PROTECTED]> --- drivers/i2c/Makefile | 1 + drivers/i2c/eeprom_simul.c | 68 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 0 deletions(-) create mode 100644 drivers/i2c/eeprom_simul.c diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile index 534c015..2aeabe5 100644 --- a/drivers/i2c/Makefile +++ b/drivers/i2c/Makefile @@ -30,6 +30,7 @@ COBJS-y += omap1510_i2c.o COBJS-y += omap24xx_i2c.o COBJS-y += tsi108_i2c.o COBJS-y += mxc_i2c.o +COBJS-$(CONFIG_EEPROM_SIMUL) += eeprom_simul.o COBJS := $(COBJS-y) SRCS := $(COBJS:.o=.c) diff --git a/drivers/i2c/eeprom_simul.c b/drivers/i2c/eeprom_simul.c new file mode 100644 index 0000000..aecd0e5 --- /dev/null +++ b/drivers/i2c/eeprom_simul.c @@ -0,0 +1,68 @@ +/* + (C) Copyright 2008 + Ricado Ribalda-Universidad Autonoma de [EMAIL PROTECTED] + This work has been supported by: Q-Technology http://qtec.com/ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include <common.h> +#include <i2c.h> + +#ifndef CONFIG_EEPROM_SIMUL_LEN +#define CONFIG_EEPROM_SIMUL_LEN 256 +#endif + +u8 eeprom_simul_buffer[CONFIG_EEPROM_SIMUL_LEN] +#ifdef CONFIG_EEPROM_SIMUL_DATA + = CONFIG_EEPROM_SIMUL_DATA +#endif +; + +void i2c_init(int speed, int slaveaddr){ + return ; +} + +int i2c_read(uchar chip, uint addr, int alen, uchar * buffer, int len) +{ + int i; + + if (addr+len>CONFIG_EEPROM_SIMUL_LEN) + return -1; + + for(i=0;i<len;i++){ + buffer[i]=eeprom_simul_buffer[i+addr]; + } + + return 0; +} +int i2c_write(uchar chip, uint addr, int alen, uchar * buffer, int len) +{ + int i; + + if (addr+len>CONFIG_EEPROM_SIMUL_LEN) + return -1; + + for(i=0;i<len;i++){ + eeprom_simul_buffer[i+addr]=buffer[i]; + } + + return 0; +} + +int i2c_probe(uchar chip) +{ + return 0; +} + -- 1.5.6.2 ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users