|
SmartSnippets DA1459x SDK
|
Go to the documentation of this file.
40 #ifndef _QSPI_COMMON_V2_H_
41 #define _QSPI_COMMON_V2_H_
47 #if __DBG_QSPI_ENABLED
48 #define __DBG_QSPI_VOLATILE__ volatile
49 #pragma message "qspi_automode.{h c} debugging mode enabled"
51 #define __DBG_QSPI_VOLATILE__
54 #define QSPI_WRITE_STATUS_REG_OPCODE (0x01)
55 #define QSPI_WRITE_DISABLE_OPCODE (0x04)
56 #define QSPI_READ_STATUS_REG_OPCODE (0x05)
57 #define QSPI_WRITE_ENABLE_OPCODE (0x06)
58 #define QSPI_RESET_EN_OPCODE (0x66)
59 #define QSPI_RESET_OPCODE (0x99)
60 #define QSPI_READ3B_OPCODE (0x03)
61 #define QSPI_FAST_READ_QUAD_OPCODE (0xEB)
62 #define QSPI_BLOCK_ERASE_OPCODE (0x52)
63 #define QSPI_CHIP_ERASE_OPCODE (0xC7)
64 #define QSPI_SECTOR_ERASE_OPCODE (0x20)
65 #define QSPI_PAGE_PROGRAM_QPI_OPCODE (0x02)
66 #define QSPI_PAGE_PROGRAM_QUAD_OPCODE (0x32)
67 #define QSPI_READ_JEDEC_ID_OPCODE (0x9F)
68 #define QSPI_EXIT_CONTINUOUS_MODE_BYTE (0xFF)
69 #define QSPI_EXIT_CONTINUOUS_MODE_WORD (0xFFFFFFFF)
71 #define QSPI_RELEASE_POWER_DOWN_OPCODE (0xAB)
72 #define QSPI_ENTER_POWER_DOWN_OPCODE (0xB9)
74 #define QSPI_ENTER_QPI_OPCODE (0x38)
75 #define QSPI_EXIT_QPI_OPCODE (0xFF)
78 #define QSPI_STATUS_REG_BUSY_BIT (0)
79 #define QSPI_STATUS_REG_BUSY_MASK (1 << QSPI_STATUS_REG_BUSY_BIT)
82 #define QSPI_STATUS_REG_WEL_BIT (1)
83 #define QSPI_STATUS_REG_WEL_MASK (1 << QSPI_STATUS_REG_WEL_BIT)
85 #define QSPI_MEMORY_SIZE_1Mbit (1024 * 1024)
86 #define QSPI_MEMORY_SIZE_2Mbits (2 * QSPI_MEMORY_SIZE_1Mbit)
87 #define QSPI_MEMORY_SIZE_4Mbits (4 * QSPI_MEMORY_SIZE_1Mbit)
88 #define QSPI_MEMORY_SIZE_8Mbits (8 * QSPI_MEMORY_SIZE_1Mbit)
89 #define QSPI_MEMORY_SIZE_16Mbits (16 * QSPI_MEMORY_SIZE_1Mbit)
90 #define QSPI_MEMORY_SIZE_32Mbits (32 * QSPI_MEMORY_SIZE_1Mbit)
91 #define QSPI_MEMORY_SIZE_64Mbits (64 * QSPI_MEMORY_SIZE_1Mbit)
92 #define QSPI_MEMORY_SIZE_128Mbits (128 * QSPI_MEMORY_SIZE_1Mbit)
93 #define QSPI_MEMORY_SIZE_256Mbits (256 * QSPI_MEMORY_SIZE_1Mbit)
94 #define QSPI_MEMORY_SIZE_512Mbits (512 * QSPI_MEMORY_SIZE_1Mbit)
95 #define QSPI_MEMORY_SIZE_1Gbit (1024 * QSPI_MEMORY_SIZE_1Mbit)
97 #define PRODUCT_HEADER_STRUCT(_N_) \
100 uint32_t burstcmdB; \
101 uint16_t flash_config_section; \
102 uint16_t flash_config_length; \
103 uint8_t config_seq[_N_]; \
109 typedef bool (* qspi_exit_qpi_cb_t) (
HW_QSPIC_ID id);
111 typedef bool (* qspi_is_suspended_cb_t) (
HW_QSPIC_ID id);
113 typedef uint8_t (* qspi_read_status_reg_cb_t) (
HW_QSPIC_ID id);
114 typedef void (* qspi_write_status_reg_cb_t) (
HW_QSPIC_ID id, uint8_t value);
132 qspi_initialize_cb_t initialize_cb;
133 qspi_sys_clk_cfg_cb_t sys_clk_cfg_cb;
135 qspi_exit_qpi_cb_t exit_qpi_cb;
137 qspi_get_dummy_bytes_cb_t get_dummy_bytes_cb;
139 qspi_is_suspended_cb_t is_suspended_cb;
141 qspi_is_busy_cb_t is_busy_cb;
142 qspi_read_status_reg_cb_t read_status_reg_cb;
143 qspi_write_status_reg_cb_t write_status_reg_cb;
HW_QSPI_CLK_MODE clk_mode
Definition: qspi_common_v2.h:170
void * HW_QSPIC_ID
QSPI Controller ID.
Definition: hw_qspi_v2.h:439
jedec_id_t jedec
Definition: qspi_common_v2.h:167
hw_qspi_read_instr_config_t read_instr_cfg
Definition: qspi_common_v2.h:171
qspi_delay_t delay
Definition: qspi_common_v2.h:178
hw_qspi_read_status_instr_config_t read_status_instr_cfg
Definition: qspi_common_v2.h:173
QSPIC read status instruction configuration structure (auto access mode)
Definition: hw_qspi_v2.h:378
QSPIC write enable instruction configuration structure (auto access mode)
Definition: hw_qspi_v2.h:394
uint16_t power_down_usec
Definition: qspi_common_v2.h:151
uint8_t density_mask
Definition: qspi_common_v2.h:123
uint16_t power_up_usec
Definition: qspi_common_v2.h:158
uint32_t size_bits
Definition: qspi_common_v2.h:168
hw_qspi_write_enable_instr_config_t write_enable_instr_cfg
Definition: qspi_common_v2.h:174
QSPI memory callbacks struct.
Definition: qspi_common_v2.h:131
QSPIC Page Program instruction configuration structure (manual access mode)
Definition: hw_qspi_v2.h:402
QSPIC Erase suspend/resume instruction structure (auto access mode)
Definition: hw_qspi_v2.h:412
enum sysclk_type sys_clk_t
The system clock type.
uint8_t manufacturer_id
Definition: qspi_common_v2.h:120
HW_QSPI_BUSY_LEVEL
QSPIC device busy status setting.
Definition: hw_qspi_v2.h:94
uint16_t release_power_down_usec
Definition: qspi_common_v2.h:154
bool resume_before_writing_regs
Definition: qspi_common_v2.h:180
HW_QSPI_ADDR_SIZE
QSPIC memory address size.
Definition: hw_qspi_v2.h:68
uint16_t reset_usec
Definition: qspi_common_v2.h:150
qspi_callback_t callback
Definition: qspi_common_v2.h:179
hw_qspi_erase_instr_config_t erase_instr_cfg
Definition: qspi_common_v2.h:172
hw_qspi_suspend_resume_instr_config_t suspend_resume_instr_cfg
Definition: qspi_common_v2.h:176
Low Level Driver of QSPI controllers.
QSPIC Erase instruction configuration structure (auto access mode)
Definition: hw_qspi_v2.h:360
JEDEC ID struct.
Definition: qspi_common_v2.h:119
HW_QSPI_CLK_MODE
QSPIC clock mode.
Definition: hw_qspi_v2.h:112
uint8_t density
Definition: qspi_common_v2.h:122
Read instruction configuration structure (auto access mode)
Definition: hw_qspi_v2.h:342
hw_qspi_page_program_instr_config_t page_program_instr_cfg
Definition: qspi_common_v2.h:175
QSPI memory delays.
Definition: qspi_common_v2.h:149
HW_QSPI_ADDR_SIZE address_size
Definition: qspi_common_v2.h:169
uint8_t type
Definition: qspi_common_v2.h:121
QSPI memory configuration structure.
Definition: qspi_common_v2.h:166