Skip to contentSkip to conversation

New Dummy I2C Driver

PATCH New Ricardo Ribalda Delgado 3 participants 4 messages Jul 11, 2008 I2C

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 New Dummy I2C Driver

---
 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
drivers/i2c/Makefile +1 -0
index 534c015..94a0791 100644
@@ -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)
drivers/i2c/dummy_i2c.c new file +74 -0

74 lines not on this page · raw message

Signature · 1 line
1.5.6.2
#1 lore raw

PATCH 1/1 New Dummy I2C Driver

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

Quoted 104 lines · Ricardo Ribalda Delgado
---
 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
drivers/i2c/Makefile +1 -0
index 534c015..94a0791 100644
@@ -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)
drivers/i2c/dummy_i2c.c new file +74 -1
new file mode 100644
index 0000000..92493e9
@@ -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

Signature · 2 lines
Ricardo Ribalda
http://www.eps.uam.es/~rribalda/
#2 lore raw

PATCH 1/1 New Dummy I2C Driver

Quoted 7 lines · Ricardo Ribalda Delgado

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

Problem is, that those SPD values in this driver are board specific. Other boards with other DIMM(s) would need other EEPROM values. So it doesn't make sense to add this in such a common file for me. And I really don't like the name "dummy_i2c.c".

Which SDRAM controller is used on your 440/Virtex SoC? Is it an IBM compatible one? Or an IP core from Xilinx? I suggest you take a look at the similar implementation selectable via CFG_SIMULATE_SPD_EEPROM (used on bamboo).

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================

#3 lore raw

PATCH 1/1 New Dummy I2C Driver

Hi Stefan and Ricardo,

Quoted 8 lines
Quoted 7 lines

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

Quoted 4 lines

Problem is, that those SPD values in this driver are board specific. Other boards with other DIMM(s) would need other EEPROM values. So it doesn't make sense to add this in such a common file for me. And I really don't like the name "dummy_i2c.c".

The dummy driver could be useful but without board specific values as Stefan wrote. The name is awful. If is board specific setting you have to move it to board specific path. (board/xilinx/ml507)

M

Quoted 7 lines

Which SDRAM controller is used on your 440/Virtex SoC? Is it an IBM compatible one? Or an IP core from Xilinx? I suggest you take a look at the similar implementation selectable via CFG_SIMULATE_SPD_EEPROM (used on bamboo).

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================

-------------------------------------------------------------------------
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 at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users