1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/drivers/include/mtd_at24cxxx.h

68 lines
1.6 KiB
C

/*
* Copyright (C) 2020 Otto-von-Guericke Universität
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*/
/**
* @defgroup drivers_mtd_at24cxxx MTD wrapper for AT24cxxx family of I2C-EEPROMs
* @ingroup drivers_storage
* @brief MTD wrapper for AT24XXX I2C based EEPROMs
*
* @{
*
* @file
* @brief Interface definition for at24cxxx MTD wrapper
*
*
* @author Fabian Hüßler <fabian.huessler@ovgu.de>
*/
#ifndef MTD_AT24CXXX_H
#define MTD_AT24CXXX_H
#include "at24cxxx.h"
#include "mtd.h"
#ifdef __cplusplus
extern "C"
{
#endif
/**
* @brief Device descriptor for mtd at24cxxx device
*
* This is an extension of the @c mtd_dev_t struct
*/
typedef struct {
mtd_dev_t base; /**< inherit from mtd_dev_t object */
at24cxxx_t *at24cxxx_eeprom; /**< at24cxxx device descriptor */
const at24cxxx_params_t* params; /**< at24cxxx parameters */
} mtd_at24cxxx_t;
/**
* @brief Shortcut initializer for @ref mtd_at24cxxx_t
*/
#define MTD_AT24CXXX_INIT(dev_p, params_p) \
(mtd_at24cxxx_t) { \
.base = { \
.driver = &mtd_at24cxxx_driver \
}, \
.at24cxxx_eeprom = (dev_p), \
.params = (params_p) \
}
/**
* @brief MTD EEPROM driver for at24cxxx EEPROM
*/
extern const mtd_desc_t mtd_at24cxxx_driver;
#ifdef __cplusplus
}
#endif
#endif /* MTD_AT24CXXX_H */
/** @} */