61 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
68 #ifdef HAL_QSPI_MODULE_ENABLED
83 #define APP_QSPI_PIN_ENABLE 1
84 #define APP_QSPI_PIN_DISABLE 0
87 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
91 #define QSPI_MAX_XFER_SIZE_ONCE (0xFFFCu)
92 #define DMA_MAX_XFER_SIZE_ONCE (4095u)
95 #define APP_STORAGE_RAM_ID 0xf
113 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
128 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
129 APP_QSPI_EVT_ASYNC_WR_SCRN_CPLT,
130 APP_QSPI_EVT_ASYNC_WR_SCRN_FAIL,
134 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
139 APP_QSPI_MMAP_ENDIAN_MODE_0 = 0,
140 APP_QSPI_MMAP_ENDIAN_MODE_1,
141 APP_QSPI_MMAP_ENDIAN_MODE_2,
142 } app_qspi_mmap_endian_mode_e;
148 APP_QSPI_DEVICE_UNSET = 0,
149 APP_QSPI_DEVICE_FLASH = 1,
150 APP_QSPI_DEVICE_PSRAM = 2,
157 PSRAM_MMAP_CMD_QREAD_0BH = 0x00,
158 PSRAM_MMAP_CMD_QREAD_EBH = 0x01,
159 PSRAM_MMAP_CMD_READ_MAX
160 } app_qspi_psram_mmap_rd_cmd_e;
166 PSRAM_MMAP_CMD_QWRITE_02H = 0x00,
167 PSRAM_MMAP_CMD_QWRITE_38H = 0x01,
168 PSRAM_MMAP_CMD_WRITE_MAX
169 } app_qspi_psram_mmap_wr_cmd_e;
175 FLASH_MMAP_CMD_DREAD_3BH = 0x00,
176 FLASH_MMAP_CMD_2READ_BBH = 0x01,
177 FLASH_MMAP_CMD_2READ_BBH_SIOO = 0x02,
179 FLASH_MMAP_CMD_QREAD_6BH = 0x03,
180 FLASH_MMAP_CMD_4READ_EBH = 0x04,
181 FLASH_MMAP_CMD_4READ_EBH_SIOO = 0x05,
182 FLASH_MMAP_CMD_READ_MAX,
183 } app_qspi_flash_mmap_rd_cmd_e;
189 DRAW_TYPE_IF_NONE = 0x00,
190 DRAW_TYPE_IF_DUAL_SCREEN,
191 DRAW_TYPE_IF_VERI_LINKED_SCREEN,
192 } app_qspi_draw_screen_interface_type_e;
199 QSPI0_PIN_GROUP_0 = 0x00,
207 QSPI1_PIN_GROUP_0 = 0x01,
215 QSPI2_PIN_GROUP_0 = 0x02,
243 app_qspi_device_e dev_type;
244 app_qspi_psram_mmap_wr_cmd_e psram_wr;
246 app_qspi_flash_mmap_rd_cmd_e flash_rd;
247 app_qspi_psram_mmap_rd_cmd_e psram_rd;
250 } app_qspi_mmap_device_t;
287 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
288 uint32_t wait_timeout_ms;
304 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
310 uint32_t instruction;
313 uint32_t leading_address;
316 uint32_t ongoing_address;
319 uint32_t instruction_size;
322 uint32_t address_size;
325 uint32_t dummy_cycles;
331 uint32_t instruction_address_mode;
339 } app_qspi_screen_command_t;
359 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
364 unsigned int scrn_pixel_width;
365 unsigned int scrn_pixel_height;
366 unsigned int scrn_pixel_depth;
367 } app_qspi_screen_info_t;
374 uint32_t first_frame_start_address;
375 uint32_t second_frame_start_address;
376 uint32_t scroll_coordinate;
377 bool is_horizontal_scroll;
378 } app_qspi_screen_scroll_t;
383 typedef struct _screen_veri_link_scroll_t {
384 uint32_t frame_ahb_start_address;
385 uint32_t frame_offset_lines;
386 uint32_t frame_draw_lines;
387 struct _screen_veri_link_scroll_t * next;
388 } app_qspi_screen_veri_link_scroll_t;
394 uint32_t frame_ahb_start_address;
395 uint32_t frame_offset_lines;
396 uint32_t frame_draw_lines;
397 } app_qspi_screen_block_t;
403 app_qspi_screen_scroll_t scroll_config;
404 uint32_t image_1_ahb_address;
405 uint32_t image_2_ahb_address;
406 uint32_t this_send_lines;
407 uint32_t total_sent_lines;
408 uint32_t sent_line_order;
409 } dual_screen_scroll_t;
415 app_qspi_screen_veri_link_scroll_t vl_scroll;
416 app_qspi_screen_veri_link_scroll_t * p_cur_scroll;
417 uint32_t total_sent_lines;
418 } veri_linked_screen_scroll_t;
424 app_qspi_draw_screen_interface_type_e if_type;
427 uint32_t llp_cfg_right_shift_bit;
428 uint32_t llp_cfg_ctrl_low;
429 app_qspi_screen_info_t screen_info;
430 app_qspi_screen_command_t qspi_screen_command;
432 dual_screen_scroll_t dual_ss;
433 veri_linked_screen_scroll_t veri_linked_ss;
435 } app_qspi_async_draw_screen_info_t;
442 uint32_t src_img_address;
446 uint32_t src_img_x_delta;
448 uint32_t src_img_y_delta;
449 uint32_t dst_buff_address;
450 uint32_t dst_buff_width;
451 uint32_t dst_buff_height;
454 uint32_t pixel_depth;
455 } blit_image_config_t;
477 #ifdef APP_DRIVER_WAKEUP_CALL_FUN
500 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
509 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
510 app_qspi_mmap_device_t mounted_mmap_device;
512 volatile uint8_t mmap_endian_mode;
513 volatile bool is_mmap_inited;
514 volatile bool is_mmap_prefetch_en;
516 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
517 volatile bool is_used_dma;
518 volatile bool is_dma_mode_m2m;
523 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
524 volatile bool is_dma_done;
525 volatile bool is_async_write_screen;
543 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
599 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
610 bool app_qspi_config_memory_mappped(
app_qspi_id_t id, app_qspi_mmap_device_t dev);
622 bool app_qspi_active_memory_mappped(
app_qspi_id_t id,
bool is_active);
724 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
759 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
794 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
829 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
844 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
854 bool app_qspi_mmap_set_endian_mode(
app_qspi_id_t id, app_qspi_mmap_endian_mode_e mode);
865 uint8_t app_qspi_mmap_read_u8(
app_qspi_id_t id, uint32_t address) ;
876 uint16_t app_qspi_mmap_read_u16(
app_qspi_id_t id, uint32_t address);
887 uint32_t app_qspi_mmap_read_u32(
app_qspi_id_t id, uint32_t address);
900 bool app_qspi_mmap_read_block(
app_qspi_id_t id, uint32_t address, uint8_t * buffer, uint32_t length);
915 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)