Line data Source code
1 1 : /**
2 : * @file
3 : *
4 : * @brief Public APIs for the I2C EEPROM Target driver.
5 : */
6 :
7 : /*
8 : * Copyright (c) 2017 BayLibre, SAS
9 : *
10 : * SPDX-License-Identifier: Apache-2.0
11 : */
12 : #ifndef ZEPHYR_INCLUDE_DRIVERS_I2C_TARGET_EEPROM_H_
13 : #define ZEPHYR_INCLUDE_DRIVERS_I2C_TARGET_EEPROM_H_
14 :
15 : /**
16 : * @brief I2C EEPROM Target Driver API
17 : * @defgroup i2c_eeprom_target_api I2C EEPROM Target Driver API
18 : * @since 1.13
19 : * @version 1.0.0
20 : * @ingroup io_interfaces
21 : * @{
22 : */
23 :
24 : /**
25 : * @brief Program memory of the virtual EEPROM
26 : *
27 : * @param dev Pointer to the device structure for the driver instance.
28 : * @param eeprom_data Pointer of data to program into the virtual eeprom memory
29 : * @param length Length of data to program into the virtual eeprom memory
30 : *
31 : * @retval 0 If successful.
32 : * @retval -EINVAL Invalid data size
33 : */
34 1 : int eeprom_target_program(const struct device *dev, const uint8_t *eeprom_data,
35 : unsigned int length);
36 :
37 : /**
38 : * @brief Read single byte of virtual EEPROM memory
39 : *
40 : * @param dev Pointer to the device structure for the driver instance.
41 : * @param eeprom_data Pointer of byte where to store the virtual eeprom memory
42 : * @param offset Offset into EEPROM memory where to read the byte
43 : *
44 : * @retval 0 If successful.
45 : * @retval -EINVAL Invalid data pointer or offset
46 : */
47 1 : int eeprom_target_read(const struct device *dev, uint8_t *eeprom_data,
48 : unsigned int offset);
49 :
50 : /**
51 : * @brief Change the address of eeprom target at runtime
52 : *
53 : * @param dev Pointer to the device structure for the driver instance.
54 : * @param addr New address to assign to the eeprom target device
55 : *
56 : * @retval 0 Is successful
57 : * @retval -EINVAL If parameters are invalid
58 : * @retval -EIO General input / output error during i2c_taget_register
59 : * @retval -ENOSYS If target mode is not implemented
60 : */
61 1 : int eeprom_target_set_addr(const struct device *dev, uint8_t addr);
62 :
63 : /**
64 : * @}
65 : */
66 :
67 : #endif /* ZEPHYR_INCLUDE_DRIVERS_I2C_TARGET_EEPROM_H_ */
|