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
91 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
95 #define QSPI_MAX_XFER_SIZE_ONCE (0xFFFCu)
96 #define DMA_MAX_XFER_SIZE_ONCE (4095u)
105 #ifndef QSPI_SMART_CS_ENABLE
106 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
107 #define QSPI_SMART_CS_ENABLE 1
109 #define QSPI_SMART_CS_ENABLE 0
113 #if QSPI_SMART_CS_ENABLE
114 #define QSPI_SMART_CS_LOW(id) \
116 if(p_qspi_env[id]->p_pin_cfg->cs.enable == APP_QSPI_PIN_ENABLE) \
118 app_io_write_pin(p_qspi_env[id]->p_pin_cfg->cs.type, \
119 p_qspi_env[id]->p_pin_cfg->cs.pin, \
124 #define QSPI_SMART_CS_HIGH(id) \
126 if(p_qspi_env[id]->p_pin_cfg->cs.enable == APP_QSPI_PIN_ENABLE) \
128 app_io_write_pin(p_qspi_env[id]->p_pin_cfg->cs.type, \
129 p_qspi_env[id]->p_pin_cfg->cs.pin, \
134 #define QSPI_SMART_CS_LOW(id)
135 #define QSPI_SMART_CS_HIGH(id)
155 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
172 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
173 APP_QSPI_EVT_ASYNC_WR_SCRN_CPLT,
174 APP_QSPI_EVT_ASYNC_WR_SCRN_FAIL,
178 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
183 APP_QSPI_MMAP_ENDIAN_MODE_0 = 0,
184 APP_QSPI_MMAP_ENDIAN_MODE_1,
185 APP_QSPI_MMAP_ENDIAN_MODE_2,
186 } app_qspi_mmap_endian_mode_e;
192 APP_QSPI_DEVICE_UNSET = 0,
193 APP_QSPI_DEVICE_FLASH = 1,
194 APP_QSPI_DEVICE_PSRAM = 2,
201 PSRAM_MMAP_CMD_QREAD_0BH = 0x00,
202 PSRAM_MMAP_CMD_QREAD_EBH = 0x01,
203 PSRAM_MMAP_CMD_READ_MAX
204 } app_qspi_psram_mmap_rd_cmd_e;
210 PSRAM_MMAP_CMD_QWRITE_02H = 0x00,
211 PSRAM_MMAP_CMD_QWRITE_38H = 0x01,
212 PSRAM_MMAP_CMD_WRITE_MAX
213 } app_qspi_psram_mmap_wr_cmd_e;
219 FLASH_MMAP_CMD_DREAD_3BH = 0x00,
220 FLASH_MMAP_CMD_2READ_BBH = 0x01,
221 FLASH_MMAP_CMD_2READ_BBH_SIOO = 0x02,
223 FLASH_MMAP_CMD_QREAD_6BH = 0x03,
224 FLASH_MMAP_CMD_4READ_EBH = 0x04,
225 FLASH_MMAP_CMD_4READ_EBH_SIOO = 0x05,
226 FLASH_MMAP_CMD_READ_MAX,
227 } app_qspi_flash_mmap_rd_cmd_e;
233 DRAW_TYPE_IF_NONE = 0x00,
234 DRAW_TYPE_IF_DUAL_SCREEN,
235 DRAW_TYPE_IF_VERI_LINKED_SCREEN,
236 } app_qspi_draw_screen_interface_type_e;
243 QSPI0_PIN_GROUP_0 = 0x00,
251 QSPI1_PIN_GROUP_0 = 0x01,
259 QSPI2_PIN_GROUP_0 = 0x02,
287 app_qspi_device_e dev_type;
288 app_qspi_psram_mmap_wr_cmd_e psram_wr;
290 app_qspi_flash_mmap_rd_cmd_e flash_rd;
291 app_qspi_psram_mmap_rd_cmd_e psram_rd;
294 } app_qspi_mmap_device_t;
331 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
332 uint32_t wait_timeout_ms;
348 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
354 uint32_t instruction;
357 uint32_t leading_address;
360 uint32_t ongoing_address;
363 uint32_t instruction_size;
366 uint32_t address_size;
369 uint32_t dummy_cycles;
375 uint32_t instruction_address_mode;
383 } app_qspi_screen_command_t;
403 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
408 unsigned int scrn_pixel_stride;
409 unsigned int scrn_pixel_width;
410 unsigned int scrn_pixel_height;
411 unsigned int scrn_pixel_depth;
412 } app_qspi_screen_info_t;
419 uint32_t first_frame_start_address;
420 uint32_t second_frame_start_address;
421 uint32_t scroll_coordinate;
422 bool is_horizontal_scroll;
423 } app_qspi_screen_scroll_t;
428 typedef struct _screen_veri_link_scroll_t {
429 uint32_t frame_ahb_start_address;
430 uint32_t frame_offset_lines;
431 uint32_t frame_draw_lines;
432 struct _screen_veri_link_scroll_t * next;
433 } app_qspi_screen_veri_link_scroll_t;
439 uint32_t frame_ahb_start_address;
440 uint32_t frame_offset_lines;
441 uint32_t frame_draw_lines;
442 } app_qspi_screen_block_t;
448 app_qspi_screen_scroll_t scroll_config;
449 uint32_t image_1_ahb_address;
450 uint32_t image_2_ahb_address;
451 uint32_t this_send_lines;
452 uint32_t total_sent_lines;
453 uint32_t sent_line_order;
454 } dual_screen_scroll_t;
460 app_qspi_screen_veri_link_scroll_t vl_scroll;
461 app_qspi_screen_veri_link_scroll_t * p_cur_scroll;
462 uint32_t total_sent_lines;
463 } veri_linked_screen_scroll_t;
469 app_qspi_draw_screen_interface_type_e if_type;
472 uint32_t llp_cfg_right_shift_bit;
473 uint32_t llp_cfg_ctrl_low;
474 app_qspi_screen_info_t screen_info;
475 app_qspi_screen_command_t qspi_screen_command;
477 dual_screen_scroll_t dual_ss;
478 veri_linked_screen_scroll_t veri_linked_ss;
480 } app_qspi_async_draw_screen_info_t;
487 uint32_t src_img_address;
491 uint32_t src_img_x_delta;
493 uint32_t src_img_y_delta;
494 uint32_t dst_buff_address;
495 uint32_t dst_buff_width;
496 uint32_t dst_buff_height;
499 uint32_t pixel_depth;
500 } blit_image_config_t;
522 #ifdef APP_DRIVER_WAKEUP_CALL_FUN
545 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
554 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
555 app_qspi_mmap_device_t mounted_mmap_device;
557 volatile uint8_t mmap_endian_mode;
558 volatile bool is_mmap_inited;
559 volatile bool is_mmap_prefetch_en;
561 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
562 volatile bool is_used_dma;
563 volatile bool is_dma_mode_m2m;
568 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
569 volatile bool is_dma_done;
570 volatile bool is_async_write_screen;
588 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
644 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
655 bool app_qspi_config_memory_mappped(
app_qspi_id_t id, app_qspi_mmap_device_t dev);
667 bool app_qspi_active_memory_mappped(
app_qspi_id_t id,
bool is_active);
769 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
804 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
839 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
874 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
889 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
899 bool app_qspi_mmap_set_endian_mode(
app_qspi_id_t id, app_qspi_mmap_endian_mode_e mode);
910 uint8_t app_qspi_mmap_read_u8(
app_qspi_id_t id, uint32_t address) ;
921 uint16_t app_qspi_mmap_read_u16(
app_qspi_id_t id, uint32_t address);
932 uint32_t app_qspi_mmap_read_u32(
app_qspi_id_t id, uint32_t address);
945 bool app_qspi_mmap_read_block(
app_qspi_id_t id, uint32_t address, uint8_t * buffer, uint32_t length);
960 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)