dpdk-fm10k/drivers/raw/ifpga/base/opae_at24_eeprom.c
Stephen Hemminger 06710448c9 remove blank lines at end of file
Remove trailing blank lines. They serve no purpose and are just
editor leftovers.
These can cause git to complain about whitespace errors during merges.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2019-11-26 00:12:08 +01:00

88 lines
1.4 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2010-2019 Intel Corporation
*/
#include "opae_osdep.h"
#include "opae_i2c.h"
#include "opae_at24_eeprom.h"
#define AT24_READ_RETRY 10
static int at24_eeprom_read_and_try(struct altera_i2c_dev *dev,
unsigned int slave_addr,
u32 offset, u8 *buf, u32 len)
{
int i;
int ret = 0;
for (i = 0; i < AT24_READ_RETRY; i++) {
ret = i2c_read16(dev, slave_addr, offset,
buf, len);
if (ret == 0)
break;
opae_udelay(100);
}
return ret;
}
int at24_eeprom_read(struct altera_i2c_dev *dev, unsigned int slave_addr,
u32 offset, u8 *buf, int count)
{
int len;
int status;
int read_count = 0;
if (!count)
return count;
if (count > AT24C512_IO_LIMIT)
len = AT24C512_IO_LIMIT;
else
len = count;
while (count) {
status = at24_eeprom_read_and_try(dev, slave_addr, offset,
buf, len);
if (status)
break;
buf += len;
offset += len;
count -= len;
read_count += len;
}
return read_count;
}
int at24_eeprom_write(struct altera_i2c_dev *dev, unsigned int slave_addr,
u32 offset, u8 *buf, int count)
{
int len;
int status;
int write_count = 0;
if (!count)
return count;
if (count > AT24C512_PAGE_SIZE)
len = AT24C512_PAGE_SIZE;
else
len = count;
while (count) {
status = i2c_write16(dev, slave_addr, offset, buf, len);
if (status)
break;
buf += len;
offset += len;
count -= len;
write_count += len;
}
return write_count;
}