17#ifndef ZEPHYR_INCLUDE_DRIVERS_EEPROM_H_
18#define ZEPHYR_INCLUDE_DRIVERS_EEPROM_H_
48typedef int (*eeprom_api_read)(
const struct device *dev,
off_t offset,
56typedef int (*eeprom_api_write)(
const struct device *dev,
off_t offset,
57 const void *
data,
size_t len);
63typedef size_t (*eeprom_api_size)(
const struct device *dev);
65__subsystem
struct eeprom_driver_api {
67 eeprom_api_write write;
86static inline int z_impl_eeprom_read(
const struct device *dev,
off_t offset,
87 void *data,
size_t len)
89 const struct eeprom_driver_api *api =
90 (
const struct eeprom_driver_api *)dev->
api;
92 return api->read(dev, offset, data, len);
109static inline int z_impl_eeprom_write(
const struct device *dev,
off_t offset,
110 const void *data,
size_t len)
112 const struct eeprom_driver_api *api =
113 (
const struct eeprom_driver_api *)dev->
api;
115 return api->write(dev, offset, data, len);
127static inline size_t z_impl_eeprom_get_size(
const struct device *dev)
129 const struct eeprom_driver_api *api =
130 (
const struct eeprom_driver_api *)dev->
api;
132 return api->size(dev);
143#include <zephyr/syscalls/eeprom.h>
int eeprom_write(const struct device *dev, off_t offset, const void *data, size_t len)
Write data to EEPROM.
size_t eeprom_get_size(const struct device *dev)
Get the size of the EEPROM in bytes.
int eeprom_read(const struct device *dev, off_t offset, void *data, size_t len)
Read data from EEPROM.
__INTPTR_TYPE__ off_t
Definition types.h:36
Size of off_t must be equal or less than size of size_t
Definition retained_mem.h:29
Runtime device structure (in ROM) per driver instance.
Definition device.h:510
void * data
Address of the device instance private data.
Definition device.h:520
const void * api
Address of the API structure exposed by the device instance.
Definition device.h:516