56 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5332X)
57 #include "gr533x_hal.h"
67 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
74 #ifdef HAL_QSPI_MODULE_ENABLED
89 #define APP_QSPI_PIN_ENABLE 1
90 #define APP_QSPI_PIN_DISABLE 0
93 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
97 #define QSPI_MAX_XFER_SIZE_ONCE (0xFFFCu)
98 #define DMA_MAX_XFER_SIZE_ONCE (4095u)
119 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
136 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
137 APP_QSPI_EVT_ASYNC_WR_SCRN_CPLT,
138 APP_QSPI_EVT_ASYNC_WR_SCRN_FAIL,
142 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
147 APP_QSPI_MMAP_ENDIAN_MODE_0 = 0,
148 APP_QSPI_MMAP_ENDIAN_MODE_1,
149 APP_QSPI_MMAP_ENDIAN_MODE_2,
150 } app_qspi_mmap_endian_mode_e;
156 APP_QSPI_DEVICE_UNSET = 0,
157 APP_QSPI_DEVICE_FLASH = 1,
158 APP_QSPI_DEVICE_PSRAM = 2,
165 PSRAM_MMAP_CMD_QREAD_0BH = 0x00,
166 PSRAM_MMAP_CMD_QREAD_EBH = 0x01,
167 PSRAM_MMAP_CMD_READ_MAX
168 } app_qspi_psram_mmap_rd_cmd_e;
174 PSRAM_MMAP_CMD_QWRITE_02H = 0x00,
175 PSRAM_MMAP_CMD_QWRITE_38H = 0x01,
176 PSRAM_MMAP_CMD_WRITE_MAX
177 } app_qspi_psram_mmap_wr_cmd_e;
183 FLASH_MMAP_CMD_DREAD_3BH = 0x00,
184 FLASH_MMAP_CMD_2READ_BBH = 0x01,
185 FLASH_MMAP_CMD_2READ_BBH_SIOO = 0x02,
187 FLASH_MMAP_CMD_QREAD_6BH = 0x03,
188 FLASH_MMAP_CMD_4READ_EBH = 0x04,
189 FLASH_MMAP_CMD_4READ_EBH_SIOO = 0x05,
190 FLASH_MMAP_CMD_READ_MAX,
191 } app_qspi_flash_mmap_rd_cmd_e;
197 DRAW_TYPE_IF_NONE = 0x00,
198 DRAW_TYPE_IF_DUAL_SCREEN,
199 DRAW_TYPE_IF_VERI_LINKED_SCREEN,
200 } app_qspi_draw_screen_interface_type_e;
207 QSPI0_PIN_GROUP_0 = 0x00,
208 QSPI1_PIN_GROUP_0 = 0x01,
209 QSPI2_PIN_GROUP_0 = 0x02,
231 app_qspi_device_e dev_type;
232 app_qspi_psram_mmap_wr_cmd_e psram_wr;
234 app_qspi_flash_mmap_rd_cmd_e flash_rd;
235 app_qspi_psram_mmap_rd_cmd_e psram_rd;
238 } app_qspi_mmap_device_t;
275 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
276 uint32_t wait_timeout_ms;
292 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
298 uint32_t instruction;
301 uint32_t leading_address;
304 uint32_t ongoing_address;
307 uint32_t instruction_size;
310 uint32_t address_size;
313 uint32_t dummy_cycles;
319 uint32_t instruction_address_mode;
327 } app_qspi_screen_command_t;
347 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
352 unsigned int scrn_pixel_stride;
353 unsigned int scrn_pixel_width;
354 unsigned int scrn_pixel_height;
355 unsigned int scrn_pixel_depth;
356 } app_qspi_screen_info_t;
363 uint32_t first_frame_start_address;
364 uint32_t second_frame_start_address;
365 uint32_t scroll_coordinate;
366 bool is_horizontal_scroll;
367 } app_qspi_screen_scroll_t;
372 typedef struct _screen_veri_link_scroll_t {
373 uint32_t frame_ahb_start_address;
374 uint32_t frame_offset_lines;
375 uint32_t frame_draw_lines;
376 struct _screen_veri_link_scroll_t * next;
377 } app_qspi_screen_veri_link_scroll_t;
383 uint32_t frame_ahb_start_address;
384 uint32_t frame_offset_lines;
385 uint32_t frame_draw_lines;
386 } app_qspi_screen_block_t;
392 app_qspi_screen_scroll_t scroll_config;
393 uint32_t image_1_ahb_address;
394 uint32_t image_2_ahb_address;
395 uint32_t this_send_lines;
396 uint32_t total_sent_lines;
397 uint32_t sent_line_order;
398 } dual_screen_scroll_t;
404 app_qspi_screen_veri_link_scroll_t vl_scroll;
405 app_qspi_screen_veri_link_scroll_t * p_cur_scroll;
406 uint32_t total_sent_lines;
407 } veri_linked_screen_scroll_t;
413 app_qspi_draw_screen_interface_type_e if_type;
416 uint32_t llp_cfg_right_shift_bit;
417 uint32_t llp_cfg_ctrl_low;
418 app_qspi_screen_info_t screen_info;
419 app_qspi_screen_command_t qspi_screen_command;
421 dual_screen_scroll_t dual_ss;
422 veri_linked_screen_scroll_t veri_linked_ss;
424 } app_qspi_async_draw_screen_info_t;
431 uint32_t src_img_address;
435 uint32_t src_img_x_delta;
437 uint32_t src_img_y_delta;
438 uint32_t dst_buff_address;
439 uint32_t dst_buff_width;
440 uint32_t dst_buff_height;
443 uint32_t pixel_depth;
444 } blit_image_config_t;
466 #ifdef APP_DRIVER_WAKEUP_CALL_FUN
489 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
498 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
499 app_qspi_mmap_device_t mounted_mmap_device;
501 volatile uint8_t mmap_endian_mode;
502 volatile bool is_mmap_inited;
503 volatile bool is_mmap_prefetch_en;
505 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
506 volatile bool is_used_dma;
507 volatile bool is_dma_mode_m2m;
512 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
513 volatile bool is_dma_done;
514 volatile bool is_async_write_screen;
532 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
588 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
599 bool app_qspi_config_memory_mappped(
app_qspi_id_t id, app_qspi_mmap_device_t dev);
611 bool app_qspi_active_memory_mappped(
app_qspi_id_t id,
bool is_active);
713 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
748 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
783 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
818 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)
833 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5526X) || (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR5525X)
843 bool app_qspi_mmap_set_endian_mode(
app_qspi_id_t id, app_qspi_mmap_endian_mode_e mode);
854 uint8_t app_qspi_mmap_read_u8(
app_qspi_id_t id, uint32_t address) ;
865 uint16_t app_qspi_mmap_read_u16(
app_qspi_id_t id, uint32_t address);
876 uint32_t app_qspi_mmap_read_u32(
app_qspi_id_t id, uint32_t address);
889 bool app_qspi_mmap_read_block(
app_qspi_id_t id, uint32_t address, uint8_t * buffer, uint32_t length);
904 #if (APP_DRIVER_CHIP_TYPE == APP_DRIVER_GR551X)