1
2
3
4
5
6#ifndef __I2C_EEPROM
7#define __I2C_EEPROM
8
9struct udevice;
10
11struct i2c_eeprom_ops {
12 int (*read)(struct udevice *dev, int offset, uint8_t *buf, int size);
13 int (*write)(struct udevice *dev, int offset, const uint8_t *buf,
14 int size);
15 int (*size)(struct udevice *dev);
16};
17
18struct i2c_eeprom {
19
20 unsigned long pagesize;
21
22 unsigned long size;
23};
24
25#if CONFIG_IS_ENABLED(I2C_EEPROM)
26
27
28
29
30
31
32
33
34
35
36int i2c_eeprom_read(struct udevice *dev, int offset, uint8_t *buf, int size);
37
38
39
40
41
42
43
44
45
46
47
48int i2c_eeprom_write(struct udevice *dev, int offset, const uint8_t *buf,
49 int size);
50
51
52
53
54
55
56
57
58int i2c_eeprom_size(struct udevice *dev);
59
60#else
61
62static inline int i2c_eeprom_read(struct udevice *dev, int offset, uint8_t *buf,
63 int size)
64{
65 return -ENOSYS;
66}
67
68static inline int i2c_eeprom_write(struct udevice *dev, int offset,
69 const uint8_t *buf, int size)
70{
71 return -ENOSYS;
72}
73
74static inline int i2c_eeprom_size(struct udevice *dev)
75{
76 return -ENOSYS;
77}
78
79#endif
80
81#endif
82