[U-Boot-Users] [PATCH] New Dummy I2C Driver

Ricardo Ribalda Delgado ricardo.ribalda at uam.es
Fri Jul 11 10:40:18 CEST 2008


I didn't add this to the description sorry:


 This driver provides access to a false i2c eeprom.
 This false eeprom could be very useful in boards with
 ddr2 memories and no i2c interfaces.
 Using this driver the user can simulate the spd interface
 of the ddr2 memory and use the ddr2 auto configuration


On Fri, Jul 11, 2008 at 10:38 AM, Ricardo Ribalda Delgado
<ricardo.ribalda at uam.es> wrote:
>
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda at uam.es>
> ---
>  drivers/i2c/Makefile    |    1 +
>  drivers/i2c/dummy_i2c.c |   74 +++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 75 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/i2c/dummy_i2c.c
>
> diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile
> index 534c015..94a0791 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_DUMMY_I2C) += dummy_i2c.o
>
>  COBJS  := $(COBJS-y)
>  SRCS   := $(COBJS:.o=.c)
> diff --git a/drivers/i2c/dummy_i2c.c b/drivers/i2c/dummy_i2c.c
> new file mode 100644
> index 0000000..92493e9
> --- /dev/null
> +++ b/drivers/i2c/dummy_i2c.c
> @@ -0,0 +1,74 @@
> +/*
> +    (C) Copyright 2008
> +    Ricado Ribalda-Universidad Autonoma de Madrid-ricardo.ribalda at uam.es
> +    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>
> +u8 i2c_dummy_buffer[256]={0x80,0x8,0x8,0x0D,0x0A,0x60,0x40,0x0,0x5,\
> +       0x3D,0x50,0x0,0x82,0x10,0x0,0x0,0x0C,0x4,0x18,0x1,0x4,0x0,\
> +       0x1,0x50,0x50,0x0,0x0,0x3C,0x28,0x3C,0x2D,0x40,0x25,0x37,\
> +       0x10,0x22,0x3C,0x1E,0x1E,0x0,0x0,0x3C,0x69,0x80,0x1E,0x28,\
> +       0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,\
> +       0x0,0x12,0xC9,0x2C,'0','0','0','0','0','0','0',0x0,'4','H',\
> +       'T','F','3','2','6','4','H','Y','-','5','3','E','D','3',\
> +       0x3,0x0,0x0,0x0,0x0};
> +
> +void i2c_init(int speed, int slaveaddr){
> +       return ;
> +}
> +
> +int i2c_read(uchar chip, uint addr, int alen, uchar * buffer, int len)
> +{
> +       int i;
> +       if (alen!=1)
> +               return -1;
> +
> +       if (addr+len>0xff)
> +               return -1;
> +
> +       for(i=0;i<len;i++){
> +               buffer[i]=i2c_dummy_buffer[i+addr];
> +       }
> +
> +       return 0;
> +}
> +
> +int i2c_write(uchar chip, uint addr, int alen, uchar * buffer, int len)
> +{
> +       int i;
> +       if (alen!=1)
> +               return -1;
> +
> +       if (addr+len>0xff)
> +               return -1;
> +
> +       for(i=0;i<len;i++){
> +               i2c_dummy_buffer[i+addr]=buffer[i];
> +       }
> +
> +       return 0;
> +}
> +
> +
> +int i2c_probe(uchar chip)
> +{
> +       return 0;
> +}
> +
> --
> 1.5.6.2
>
>



-- 
Ricardo Ribalda
http://www.eps.uam.es/~rribalda/




More information about the U-Boot mailing list