aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/include/ee25xx.h
diff options
context:
space:
mode:
authorFabien Poussin <fabien.poussin@gmail.com>2016-02-16 00:22:40 +0100
committerFabien Poussin <fabien.poussin@gmail.com>2016-02-16 00:22:40 +0100
commit9028916e8b89dcf9f8b41cefbd075efdf80cbac6 (patch)
tree22546566b72e2a8f17e950383412e3a5c02850b7 /os/hal/include/ee25xx.h
parent771feb098db86458340ab2665dfb23bef970ace6 (diff)
downloadChibiOS-Contrib-9028916e8b89dcf9f8b41cefbd075efdf80cbac6.tar.gz
ChibiOS-Contrib-9028916e8b89dcf9f8b41cefbd075efdf80cbac6.tar.bz2
ChibiOS-Contrib-9028916e8b89dcf9f8b41cefbd075efdf80cbac6.zip
EEPROM: Initial commit
Diffstat (limited to 'os/hal/include/ee25xx.h')
-rw-r--r--os/hal/include/ee25xx.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/os/hal/include/ee25xx.h b/os/hal/include/ee25xx.h
new file mode 100644
index 0000000..fc2ad6f
--- /dev/null
+++ b/os/hal/include/ee25xx.h
@@ -0,0 +1,63 @@
+/*
+ Copyright 2012 Uladzimir Pylinski aka barthess.
+ You may use this work without restrictions, as long as this notice is included.
+ The work is provided "as is" without warranty of any kind, neither express nor implied.
+*/
+
+#ifndef EE25XX_H
+#define EE25XX_H
+
+#include "hal.h"
+
+#if defined(HAL_USE_EEPROM) && HAL_USE_EEPROM && EEPROM_USE_EE25XX
+
+#define EEPROM_DEV_25XX 25
+
+/**
+ * @extends EepromFileConfig
+ */
+typedef struct {
+ _eeprom_file_config_data
+ /**
+ * Driver connected to IC.
+ */
+ SPIDriver *spip;
+ /**
+ * Config associated with SPI driver.
+ */
+ const SPIConfig *spicfg;
+} SPIEepromFileConfig;
+
+/**
+ * @brief @p SPIEepromFileStream specific data.
+ */
+#define _eeprom_file_stream_data_spi \
+ _eeprom_file_stream_data
+
+/**
+ * @extends EepromFileStream
+ *
+ * @brief EEPROM file stream driver class for SPI device.
+ */
+typedef struct {
+ const struct EepromFileStreamVMT *vmt;
+ _eeprom_file_stream_data_spi
+ /* Overwritten parent data member. */
+ const SPIEepromFileConfig *cfg;
+} SPIEepromFileStream;
+
+/**
+ * Open SPI EEPROM IC as file and return pointer to the file stream object
+ * @note Fucntion allways successfully open file. All checking makes
+ * in read/write functions.
+ */
+EepromFileStream *SPIEepromFileOpen(SPIEepromFileStream *efs,
+ const SPIEepromFileConfig *eepcfg,
+ const EepromDevice *eepdev);
+
+#define SPIEepromFileOpen(efs, eepcfg, eepdev) \
+ EepromFileOpen((EepromFileStream *)efs, (EepromFileConfig *)eepcfg, eepdev);
+
+#endif /* #if defined(EEPROM_USE_EE25XX) && EEPROM_USE_EE25XX */
+
+#endif // EE25XX_H