uboot/include/i2c_eeprom.h
<<
>>
Prefs
   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
   9struct 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        int (*size)(struct udevice *dev);
  14};
  15
  16struct i2c_eeprom {
  17        /* The EEPROM's page size in byte */
  18        unsigned long pagesize;
  19        /* The EEPROM's capacity in bytes */
  20        unsigned long size;
  21};
  22
  23/*
  24 * i2c_eeprom_read() - read bytes from an I2C EEPROM chip
  25 *
  26 * @dev:        Chip to read from
  27 * @offset:     Offset within chip to start reading
  28 * @buf:        Place to put data
  29 * @size:       Number of bytes to read
  30 *
  31 * @return 0 on success, -ve on failure
  32 */
  33int i2c_eeprom_read(struct udevice *dev, int offset, uint8_t *buf, int size);
  34
  35/*
  36 * i2c_eeprom_write() - write bytes to an I2C EEPROM chip
  37 *
  38 * @dev:        Chip to write to
  39 * @offset:     Offset within chip to start writing
  40 * @buf:        Buffer containing data to write
  41 * @size:       Number of bytes to write
  42 *
  43 * @return 0 on success, -ve on failure
  44 */
  45int i2c_eeprom_write(struct udevice *dev, int offset, uint8_t *buf, int size);
  46
  47/*
  48 * i2c_eeprom_size() - get size of I2C EEPROM chip
  49 *
  50 * @dev:        Chip to query
  51 *
  52 * @return +ve size in bytes on success, -ve on failure
  53 */
  54int i2c_eeprom_size(struct udevice *dev);
  55
  56#endif
  57