Home | History | Annotate | Download | only in include
      1 /* SPDX-License-Identifier: GPL-2.0+ */
      2 /*
      3  * Copyright (c) 2014 Google, Inc
      4  */
      5 
      6 #ifndef __I2C_EEPROM
      7 #define __I2C_EEPROM
      8 
      9 struct i2c_eeprom_ops {
     10 	int (*read)(struct udevice *dev, int offset, uint8_t *buf, int size);
     11 	int (*write)(struct udevice *dev, int offset, const uint8_t *buf,
     12 		     int size);
     13 };
     14 
     15 struct i2c_eeprom {
     16 	/* The EEPROM's page size in byte */
     17 	unsigned long pagesize;
     18 	/* The EEPROM's page width in bits (pagesize = 2^pagewidth) */
     19 	unsigned pagewidth;
     20 };
     21 
     22 /*
     23  * i2c_eeprom_read() - read bytes from an I2C EEPROM chip
     24  *
     25  * @dev:	Chip to read from
     26  * @offset:	Offset within chip to start reading
     27  * @buf:	Place to put data
     28  * @size:	Number of bytes to read
     29  *
     30  * @return 0 on success, -ve on failure
     31  */
     32 int i2c_eeprom_read(struct udevice *dev, int offset, uint8_t *buf, int size);
     33 
     34 /*
     35  * i2c_eeprom_write() - write bytes to an I2C EEPROM chip
     36  *
     37  * @dev:	Chip to write to
     38  * @offset:	Offset within chip to start writing
     39  * @buf:	Buffer containing data to write
     40  * @size:	Number of bytes to write
     41  *
     42  * @return 0 on success, -ve on failure
     43  */
     44 int i2c_eeprom_write(struct udevice *dev, int offset, uint8_t *buf, int size);
     45 
     46 #endif
     47