16#ifndef ZEPHYR_INCLUDE_DRIVERS_EEPROM_H_
17#define ZEPHYR_INCLUDE_DRIVERS_EEPROM_H_
45typedef int (*eeprom_api_read)(
const struct device *dev,
off_t offset,
53typedef int (*eeprom_api_write)(
const struct device *dev,
off_t offset,
54 const void *
data,
size_t len);
60typedef size_t (*eeprom_api_size)(
const struct device *dev);
62__subsystem
struct eeprom_driver_api {
64 eeprom_api_write write;
83static inline int z_impl_eeprom_read(
const struct device *dev,
off_t offset,
84 void *data,
size_t len)
86 const struct eeprom_driver_api *api =
87 (
const struct eeprom_driver_api *)dev->
api;
89 return api->read(dev, offset, data, len);
106static inline int z_impl_eeprom_write(
const struct device *dev,
off_t offset,
107 const void *data,
size_t len)
109 const struct eeprom_driver_api *api =
110 (
const struct eeprom_driver_api *)dev->
api;
112 return api->write(dev, offset, data, len);
124static inline size_t z_impl_eeprom_get_size(
const struct device *dev)
126 const struct eeprom_driver_api *api =
127 (
const struct eeprom_driver_api *)dev->
api;
129 return api->size(dev);
140#include <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:387
void * data
Address of the device instance private data.
Definition: device.h:397
const void * api
Address of the API structure exposed by the device instance.
Definition: device.h:393