aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/lib/peripherals/flash/hal_jesd216_flash.h
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2016-06-05 08:05:25 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2016-06-05 08:05:25 +0000
commit07d81aae52dc92707aa732de75baf8b9fa5988b5 (patch)
treeb37c79271a06373b4ff2686c5bb2387099ebca2e /os/hal/lib/peripherals/flash/hal_jesd216_flash.h
parent63f5989cd28e0ffd997b9d599c0d96b6402f5aa5 (diff)
downloadChibiOS-07d81aae52dc92707aa732de75baf8b9fa5988b5.tar.gz
ChibiOS-07d81aae52dc92707aa732de75baf8b9fa5988b5.tar.bz2
ChibiOS-07d81aae52dc92707aa732de75baf8b9fa5988b5.zip
Better abstracted flash bus code.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9581 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/lib/peripherals/flash/hal_jesd216_flash.h')
-rw-r--r--os/hal/lib/peripherals/flash/hal_jesd216_flash.h66
1 files changed, 39 insertions, 27 deletions
diff --git a/os/hal/lib/peripherals/flash/hal_jesd216_flash.h b/os/hal/lib/peripherals/flash/hal_jesd216_flash.h
index 69d8a8533..bb2214e81 100644
--- a/os/hal/lib/peripherals/flash/hal_jesd216_flash.h
+++ b/os/hal/lib/peripherals/flash/hal_jesd216_flash.h
@@ -35,29 +35,36 @@
* @name Common command codes
* @{
*/
-#define JESD216_CMD_READ_ID 0x9F
-#define JESD216_CMD_READ 0x03
-#define JESD216_CMD_WRITE_ENABLE 0x06
-#define JESD216_CMD_WRITE_DISABLE 0x04
-#define JESD216_CMD_READ_STATUS_REGISTER 0x05
-#define JESD216_CMD_WRITE_STATUS_REGISTER 0x01
-#define JESD216_CMD_PAGE_PROGRAM 0x02
-#define JESD216_CMD_ERASE_4K 0x20
-#define JESD216_CMD_ERASE_BULK 0xC7
-#define JESD216_CMD_PROGRAM_ERASE_RESUME 0x7A
-#define JESD216_CMD_PROGRAM_ERASE_SUSPEND 0x75
-#define JESD216_CMD_READ_OTP_ARRAY 0x4B
-#define JESD216_CMD_PROGRAM_OTP_ARRAY 0x42
+#define JESD216_CMD_READ_ID 0x9FU
+#define JESD216_CMD_READ 0x03U
+#define JESD216_CMD_WRITE_ENABLE 0x06U
+#define JESD216_CMD_WRITE_DISABLE 0x04U
+#define JESD216_CMD_READ_STATUS_REGISTER 0x05U
+#define JESD216_CMD_WRITE_STATUS_REGISTER 0x01U
+#define JESD216_CMD_PAGE_PROGRAM 0x02U
+#define JESD216_CMD_ERASE_4K 0x20U
+#define JESD216_CMD_ERASE_BULK 0xC7U
+#define JESD216_CMD_PROGRAM_ERASE_RESUME 0x7AU
+#define JESD216_CMD_PROGRAM_ERASE_SUSPEND 0x75U
+#define JESD216_CMD_READ_OTP_ARRAY 0x4BU
+#define JESD216_CMD_PROGRAM_OTP_ARRAY 0x42U
+/** @} */
+
+/**
+ * @name Command options
+ * @{
+ */
+#define JESD216_CMD_EXTENDED_ADDRESSING 0x80000000U
/** @} */
/**
* @name Bus interface.
* @{
*/
-#define JESD216_BUS_MODE_SPI 0
-#define JESD216_BUS_MODE_QSPI1L 1
-#define JESD216_BUS_MODE_QSPI2L 2
-#define JESD216_BUS_MODE_QSPI4L 4
+#define JESD216_BUS_MODE_SPI 0U
+#define JESD216_BUS_MODE_QSPI1L 1U
+#define JESD216_BUS_MODE_QSPI2L 2U
+#define JESD216_BUS_MODE_QSPI4L 4U
/** @} */
/*===========================================================================*/
@@ -184,17 +191,22 @@ typedef struct {
#ifdef __cplusplus
extern "C" {
#endif
- void jesd216_cmd(BUSDriver *busp, uint8_t cmd);
- void jesd216_cmd_receive(BUSDriver *busp, uint8_t cmd, size_t n, uint8_t *p);
- void jesd216_cmd_send(BUSDriver *busp, uint8_t cmd, size_t n, const uint8_t *p);
- void jesd216_cmd_addr(BUSDriver *busp, uint8_t cmd, flash_address_t addr);
- void jesd216_cmd_addr_send(BUSDriver *busp, uint8_t cmd, flash_address_t addr,
- size_t n, const uint8_t *p);
- void jesd216_cmd_addr_receive(BUSDriver *busp, uint8_t cmd, flash_address_t addr,
- size_t n, uint8_t *p);
+ void jesd216_start(BUSDriver *busp, const BUSConfig *config);
+ void jesd216_stop(BUSDriver *busp);
+ void jesd216_cmd(BUSDriver *busp, uint32_t cmd);
+ void jesd216_cmd_receive(BUSDriver *busp, uint32_t cmd,
+ size_t n, uint8_t *p);
+ void jesd216_cmd_send(BUSDriver *busp, uint32_t cmd,
+ size_t n, const uint8_t *p);
+ void jesd216_cmd_addr(BUSDriver *busp, uint32_t cmd, flash_address_t addr);
+ void jesd216_cmd_addr_send(BUSDriver *busp, uint32_t cmd,
+ flash_address_t addr, size_t n, const uint8_t *p);
+ void jesd216_cmd_addr_receive(BUSDriver *busp, uint32_t cmd,
+ flash_address_t addr, size_t n, uint8_t *p);
#if JESD216_BUS_MODE != JESD216_BUS_MODE_SPI
- void jesd216_cmd_addr_dummy_receive(BUSDriver *busp, uint8_t cmd, flash_address_t addr,
- uint8_t dummy, size_t n, uint8_t *p);
+ void jesd216_cmd_addr_dummy_receive(BUSDriver *busp, uint32_t cmd,
+ flash_address_t addr, uint8_t dummy,
+ size_t n, uint8_t *p);
#endif /* JESD216_BUS_MODE != JESD216_BUS_MODE_SPI */
#if JESD216_SHARED_BUS == TRUE
void jesd216_bus_acquire(BUSDriver *busp);