56 #if (APP_DRIVER_CHIP_TYPE != APP_DRIVER_GR5405) && (APP_DRIVER_CHIP_TYPE != APP_DRIVER_GR5332X)
65 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
72 #ifdef HAL_QSPI_MODULE_ENABLED
87 #define APP_QSPI_PIN_ENABLE 1
88 #define APP_QSPI_PIN_DISABLE 0
90 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
94 #define QSPI_MAX_XFER_SIZE_ONCE (0xFFFCu)
95 #define DMA_MAX_XFER_SIZE_ONCE (4095u)
100 #ifndef QSPI_SMART_CS_ENABLE
104 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
105 #define QSPI_SMART_CS_ENABLE 1
107 #define QSPI_SMART_CS_ENABLE 0
111 #if QSPI_SMART_CS_ENABLE
115 #define QSPI_SMART_CS_LOW(id) \
117 if(p_qspi_env[id]->p_pin_cfg->cs.enable == APP_QSPI_PIN_ENABLE) \
119 app_io_write_pin(p_qspi_env[id]->p_pin_cfg->cs.type, \
120 p_qspi_env[id]->p_pin_cfg->cs.pin, \
128 #define QSPI_SMART_CS_HIGH(id) \
130 if(p_qspi_env[id]->p_pin_cfg->cs.enable == APP_QSPI_PIN_ENABLE) \
132 app_io_write_pin(p_qspi_env[id]->p_pin_cfg->cs.type, \
133 p_qspi_env[id]->p_pin_cfg->cs.pin, \
138 #define QSPI_SMART_CS_LOW(id)
139 #define QSPI_SMART_CS_HIGH(id)
158 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
175 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
176 APP_QSPI_EVT_ASYNC_WR_SCRN_CPLT,
177 APP_QSPI_EVT_ASYNC_WR_SCRN_FAIL,
181 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
186 APP_QSPI_MMAP_ENDIAN_MODE_0 = 0,
187 APP_QSPI_MMAP_ENDIAN_MODE_1,
188 APP_QSPI_MMAP_ENDIAN_MODE_2,
189 } app_qspi_mmap_endian_mode_e;
195 APP_QSPI_DEVICE_UNSET = 0,
196 APP_QSPI_DEVICE_FLASH = 1,
197 APP_QSPI_DEVICE_PSRAM = 2,
204 PSRAM_MMAP_CMD_QREAD_0BH = 0x00,
205 PSRAM_MMAP_CMD_QREAD_EBH = 0x01,
206 PSRAM_MMAP_CMD_READ_MAX
207 } app_qspi_psram_mmap_rd_cmd_e;
213 PSRAM_MMAP_CMD_QWRITE_02H = 0x00,
214 PSRAM_MMAP_CMD_QWRITE_38H = 0x01,
215 PSRAM_MMAP_CMD_WRITE_MAX
216 } app_qspi_psram_mmap_wr_cmd_e;
222 FLASH_MMAP_CMD_DREAD_3BH = 0x00,
223 FLASH_MMAP_CMD_2READ_BBH = 0x01,
224 FLASH_MMAP_CMD_2READ_BBH_SIOO = 0x02,
226 FLASH_MMAP_CMD_QREAD_6BH = 0x03,
227 FLASH_MMAP_CMD_4READ_EBH = 0x04,
228 FLASH_MMAP_CMD_4READ_EBH_SIOO = 0x05,
229 FLASH_MMAP_CMD_READ_MAX,
230 } app_qspi_flash_mmap_rd_cmd_e;
236 DRAW_TYPE_IF_NONE = 0x00,
237 DRAW_TYPE_IF_DUAL_SCREEN,
238 DRAW_TYPE_IF_VERI_LINKED_SCREEN,
239 } app_qspi_draw_screen_interface_type_e;
246 QSPI0_PIN_GROUP_0 = 0x00,
254 QSPI1_PIN_GROUP_0 = 0x01,
262 QSPI2_PIN_GROUP_0 = 0x02,
290 app_qspi_device_e dev_type;
291 app_qspi_psram_mmap_wr_cmd_e psram_wr;
293 app_qspi_flash_mmap_rd_cmd_e flash_rd;
294 app_qspi_psram_mmap_rd_cmd_e psram_rd;
297 } app_qspi_mmap_device_t;
334 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
335 uint32_t wait_timeout_ms;
351 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
357 uint32_t instruction;
360 uint32_t leading_address;
363 uint32_t ongoing_address;
366 uint32_t instruction_size;
369 uint32_t address_size;
372 uint32_t dummy_cycles;
378 uint32_t instruction_address_mode;
386 } app_qspi_screen_command_t;
406 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
411 unsigned int scrn_pixel_stride;
412 unsigned int scrn_pixel_width;
413 unsigned int scrn_pixel_height;
414 unsigned int scrn_pixel_depth;
415 } app_qspi_screen_info_t;
422 uint32_t first_frame_start_address;
423 uint32_t second_frame_start_address;
424 uint32_t scroll_coordinate;
425 bool is_horizontal_scroll;
426 } app_qspi_screen_scroll_t;
431 typedef struct _screen_veri_link_scroll_t {
432 uint32_t frame_ahb_start_address;
433 uint32_t frame_offset_lines;
434 uint32_t frame_draw_lines;
435 struct _screen_veri_link_scroll_t * next;
436 } app_qspi_screen_veri_link_scroll_t;
442 uint32_t frame_ahb_start_address;
443 uint32_t frame_offset_lines;
444 uint32_t frame_draw_lines;
445 } app_qspi_screen_block_t;
451 app_qspi_screen_scroll_t scroll_config;
452 uint32_t image_1_ahb_address;
453 uint32_t image_2_ahb_address;
454 uint32_t this_send_lines;
455 uint32_t total_sent_lines;
456 uint32_t sent_line_order;
457 } dual_screen_scroll_t;
463 app_qspi_screen_veri_link_scroll_t vl_scroll;
464 app_qspi_screen_veri_link_scroll_t * p_cur_scroll;
465 uint32_t total_sent_lines;
466 } veri_linked_screen_scroll_t;
472 app_qspi_draw_screen_interface_type_e if_type;
475 uint32_t llp_cfg_right_shift_bit;
476 uint32_t llp_cfg_ctrl_low;
477 app_qspi_screen_info_t screen_info;
478 app_qspi_screen_command_t qspi_screen_command;
480 dual_screen_scroll_t dual_ss;
481 veri_linked_screen_scroll_t veri_linked_ss;
483 } app_qspi_async_draw_screen_info_t;
490 uint32_t src_img_address;
494 uint32_t src_img_x_delta;
496 uint32_t src_img_y_delta;
497 uint32_t dst_buff_address;
498 uint32_t dst_buff_width;
499 uint32_t dst_buff_height;
502 uint32_t pixel_depth;
503 } blit_image_config_t;
525 #ifdef APP_DRIVER_WAKEUP_CALL_FUN
548 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
557 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
558 app_qspi_mmap_device_t mounted_mmap_device;
560 volatile uint8_t mmap_endian_mode;
561 volatile bool is_mmap_inited;
562 volatile bool is_mmap_prefetch_en;
564 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
565 volatile bool is_used_dma;
566 volatile bool is_dma_mode_m2m;
571 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
572 volatile bool is_dma_done;
573 volatile bool is_async_write_screen;
591 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
647 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
658 bool app_qspi_config_memory_mappped(
app_qspi_id_t id, app_qspi_mmap_device_t dev);
670 bool app_qspi_active_memory_mappped(
app_qspi_id_t id,
bool is_active);
772 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
807 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
842 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
877 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
892 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
902 bool app_qspi_mmap_set_endian_mode(
app_qspi_id_t id, app_qspi_mmap_endian_mode_e mode);
913 uint8_t app_qspi_mmap_read_u8(
app_qspi_id_t id, uint32_t address) ;
924 uint16_t app_qspi_mmap_read_u16(
app_qspi_id_t id, uint32_t address);
935 uint32_t app_qspi_mmap_read_u32(
app_qspi_id_t id, uint32_t address);
948 bool app_qspi_mmap_read_block(
app_qspi_id_t id, uint32_t address, uint8_t * buffer, uint32_t length);
963 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)