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_ */