aboutsummaryrefslogtreecommitdiffstats
path: root/os/ex/Micron/m25q.h
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2016-05-24 13:57:49 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2016-05-24 13:57:49 +0000
commita3c37f98cce0829b9c1f6e00f01f6060b9494c26 (patch)
tree08a4f4ca82e1959813d10fb85b0ed2ab565e07ce /os/ex/Micron/m25q.h
parentb36f9f55856979ae773c8c676c0f6723440e52a1 (diff)
downloadChibiOS-a3c37f98cce0829b9c1f6e00f01f6060b9494c26.tar.gz
ChibiOS-a3c37f98cce0829b9c1f6e00f01f6060b9494c26.tar.bz2
ChibiOS-a3c37f98cce0829b9c1f6e00f01f6060b9494c26.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9508 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/ex/Micron/m25q.h')
-rw-r--r--os/ex/Micron/m25q.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/os/ex/Micron/m25q.h b/os/ex/Micron/m25q.h
index 27ee06afc..865cc32ea 100644
--- a/os/ex/Micron/m25q.h
+++ b/os/ex/Micron/m25q.h
@@ -41,9 +41,10 @@
#define M25Q_CMD_RESET_ENABLE 0x66
#define M25Q_CMD_RESET_MEMORY 0x99
#define M25Q_CMD_READ_ID 0x9F
+#define M25Q_CMD_MULTIPLE_IO_READ_ID 0xAF
#define M25Q_CMD_READ_DISCOVERY_PARAMETER 0x5A
#define M25Q_CMD_READ 0x03
-#define M25Q_CMD_FAST_READ 0x08
+#define M25Q_CMD_FAST_READ 0x0B
#define M25Q_CMD_WRITE_ENABLE 0x06
#define M25Q_CMD_WRITE_DISABLE 0x04
#define M25Q_CMD_READ_STATUS_REGISTER 0x05
@@ -112,6 +113,15 @@
#endif
/**
+ * @brief Number of dummy cycles for fast read (1..15).
+ * @details This is the number of dummy cycles to be used for fast read
+ * operations.
+ */
+#if !defined(M25Q_READ_DUMMY_CYCLES) || defined(__DOXYGEN__)
+#define M25Q_READ_DUMMY_CYCLES 8
+#endif
+
+/**
* @brief Switch QSPI bus width on initialization.
* @details A bus width initialization is performed by writing the
* Enhanced Volatile Configuration Register. If the flash
@@ -185,6 +195,17 @@
#error "M25Q_SHARED_SPI requires SPI_USE_MUTUAL_EXCLUSION"
#endif
+#if (M25Q_BUS_MODE != M25Q_BUS_MODE_SPI) && \
+ (M25Q_BUS_MODE != M25Q_BUS_MODE_QSPI1L) && \
+ (M25Q_BUS_MODE != M25Q_BUS_MODE_QSPI2L) && \
+ (M25Q_BUS_MODE != M25Q_BUS_MODE_QSPI4L)
+#error "invalid M25Q_BUS_MODE selected"
+#endif
+
+#if (M25Q_READ_DUMMY_CYCLES < 1) || (M25Q_READ_DUMMY_CYCLES > 15)
+#error "invalid M25Q_READ_DUMMY_CYCLES value (1..15)"
+#endif
+
/*===========================================================================*/
/* Driver data structures and types. */
/*===========================================================================*/
@@ -250,6 +271,10 @@ typedef struct {
*/
uint32_t qspi_mode;
#endif
+ /**
+ * @brief Device ID and unique ID.
+ */
+ uint8_t device_id[20];
} M25QDriver;
/*===========================================================================*/