summaryrefslogtreecommitdiff
path: root/board/esd/dasa_sim/eeprom.c
diff options
context:
space:
mode:
authorAlbert ARIBAUD <albert.u.boot@aribaud.net>2014-05-09 10:47:05 +0200
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2014-05-09 11:50:14 +0200
commitd2a3e911390f9fc4d8c0ee4b3c7fc75f4fd3fd19 (patch)
treed71aae6d706d1f3b01da5f944e247abe308feea0 /board/esd/dasa_sim/eeprom.c
parent7904b70885f3c589c239f6ac978f299a6744557f (diff)
parent173d294b94cfec10063a5be40934d6d8fb7981ce (diff)
downloadu-boot-imx-d2a3e911390f9fc4d8c0ee4b3c7fc75f4fd3fd19.zip
u-boot-imx-d2a3e911390f9fc4d8c0ee4b3c7fc75f4fd3fd19.tar.gz
u-boot-imx-d2a3e911390f9fc4d8c0ee4b3c7fc75f4fd3fd19.tar.bz2
Merge branch 'u-boot/master'
Conflicts: drivers/net/Makefile (trivial merge)
Diffstat (limited to 'board/esd/dasa_sim/eeprom.c')
-rw-r--r--board/esd/dasa_sim/eeprom.c164
1 files changed, 0 insertions, 164 deletions
diff --git a/board/esd/dasa_sim/eeprom.c b/board/esd/dasa_sim/eeprom.c
deleted file mode 100644
index 1fc78de..0000000
--- a/board/esd/dasa_sim/eeprom.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * (C) Copyright 2001
- * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#include <common.h>
-#include <command.h>
-#include <asm/io.h>
-
-#define EEPROM_CAP 0x50000358
-#define EEPROM_DATA 0x5000035c
-
-
-unsigned int eepromReadLong(int offs)
-{
- unsigned int value;
- unsigned short ret;
- int count;
-
- out_be16((void *)EEPROM_CAP, offs);
-
- count = 0;
-
- for (;;)
- {
- count++;
- ret = in_be16((void *)EEPROM_CAP);
-
- if ((ret & 0x8000) != 0)
- break;
- }
-
- value = in_be32((void *)EEPROM_DATA);
-
- return value;
-}
-
-
-unsigned char eepromReadByte(int offs)
-{
- unsigned int valueLong;
- unsigned char *ptr;
-
- valueLong = eepromReadLong(offs & ~3);
- ptr = (unsigned char *)&valueLong;
-
- return ptr[offs & 3];
-}
-
-
-void eepromWriteLong(int offs, unsigned int value)
-{
- unsigned short ret;
- int count;
-
- count = 0;
-
- out_be32((void *)EEPROM_DATA, value);
- out_be16((void *)EEPROM_CAP, 0x8000 + offs);
-
- for (;;)
- {
- count++;
- ret = in_be16((void *)EEPROM_CAP);
-
- if ((ret & 0x8000) == 0)
- break;
- }
-}
-
-
-void eepromWriteByte(int offs, unsigned char valueByte)
-{
- unsigned int valueLong;
- unsigned char *ptr;
-
- valueLong = eepromReadLong(offs & ~3);
- ptr = (unsigned char *)&valueLong;
-
- ptr[offs & 3] = valueByte;
-
- eepromWriteLong(offs & ~3, valueLong);
-}
-
-
-void i2c_read (uchar *addr, int alen, uchar *buffer, int len)
-{
- int i;
- int len2, ptr;
-
- /* printf("\naddr=%x alen=%x buffer=%x len=%x", addr[0], addr[1], *(short *)addr, alen, buffer, len); /###* test-only */
-
- ptr = *(short *)addr;
-
- /*
- * Read till lword boundary
- */
- len2 = 4 - (*(short *)addr & 0x0003);
- for (i=0; i<len2; i++)
- {
- *buffer++ = eepromReadByte(ptr++);
- }
-
- /*
- * Read all lwords
- */
- len2 = (len - len2) >> 2;
- for (i=0; i<len2; i++)
- {
- *(unsigned int *)buffer = eepromReadLong(ptr);
- buffer += 4;
- ptr += 4;
- }
-
- /*
- * Read last bytes
- */
- len2 = (*(short *)addr + len) & 0x0003;
- for (i=0; i<len2; i++)
- {
- *buffer++ = eepromReadByte(ptr++);
- }
-}
-
-void i2c_write (uchar *addr, int alen, uchar *buffer, int len)
-{
- int i;
- int len2, ptr;
-
- /* printf("\naddr=%x alen=%x buffer=%x len=%x", addr[0], addr[1], *(short *)addr, alen, buffer, len); /###* test-only */
-
- ptr = *(short *)addr;
-
- /*
- * Write till lword boundary
- */
- len2 = 4 - (*(short *)addr & 0x0003);
- for (i=0; i<len2; i++)
- {
- eepromWriteByte(ptr++, *buffer++);
- }
-
- /*
- * Write all lwords
- */
- len2 = (len - len2) >> 2;
- for (i=0; i<len2; i++)
- {
- eepromWriteLong(ptr, *(unsigned int *)buffer);
- buffer += 4;
- ptr += 4;
- }
-
- /*
- * Write last bytes
- */
- len2 = (*(short *)addr + len) & 0x0003;
- for (i=0; i<len2; i++)
- {
- eepromWriteByte(ptr++, *buffer++);
- }
-}