16#ifndef ZEPHYR_INCLUDE_DRIVERS_EEPROM_H_
17#define ZEPHYR_INCLUDE_DRIVERS_EEPROM_H_
47typedef int (*eeprom_api_read)(
const struct device *dev,
off_t offset,
55typedef int (*eeprom_api_write)(
const struct device *dev,
off_t offset,
56 const void *
data,
size_t len);
62typedef size_t (*eeprom_api_size)(
const struct device *dev);
64__subsystem
struct eeprom_driver_api {
66 eeprom_api_write write;
85static inline int z_impl_eeprom_read(
const struct device *dev,
off_t offset,
86 void *data,
size_t len)
88 const struct eeprom_driver_api *api =
89 (
const struct eeprom_driver_api *)dev->
api;
91 return api->read(dev, offset, data, len);
108static inline int z_impl_eeprom_write(
const struct device *dev,
off_t offset,
109 const void *data,
size_t len)
111 const struct eeprom_driver_api *api =
112 (
const struct eeprom_driver_api *)dev->
api;
114 return api->write(dev, offset, data, len);
126static inline size_t z_impl_eeprom_get_size(
const struct device *dev)
128 const struct eeprom_driver_api *api =
129 (
const struct eeprom_driver_api *)dev->
api;
131 return api->size(dev);
142#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:28
Runtime device structure (in ROM) per driver instance.
Definition: device.h:403
void * data
Address of the device instance private data.
Definition: device.h:413
const void * api
Address of the API structure exposed by the device instance.
Definition: device.h:409