mcu_hi3321_watch/include/driver/flash/flash_gigadevice_config.h
2025-05-26 20:15:20 +08:00

154 lines
5.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n
*
* Description: Provides flash GIGADEVICE Configuration information. \n
* Author: @CompanyNameTag \n
* History: \n
* 2022-11-15 Create file. \n
*/
#ifndef FLASH_GIGADEVICE_CONFIG_H
#define FLASH_GIGADEVICE_CONFIG_H
/**
* @defgroup drivers_driver_flash_gigadevice_config Flash Gigadevice Config
* @ingroup drivers_driver_flash
* @{
*/
#include "flash_common_config.h"
/* Gigadevice enter qspi mode cmd config. */
/* GD25WQ64/GD25LE64EX gigadevice flash config. */
static flash_cmd_exe_t g_gigadevice_gd25wq64_enter_qspi_mode_cmd[] = {
/* Write enable for Volatils status register. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x50 } },
/* Write volatile configuration register,config XIP disable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { 0x01, 0x00, 0x02 } },
/* Waite config done. qspi mode, max 104MHZ. */
{ FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR1_CMD, 0, 0 } },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
/* GD25LX128 gigadevice flash config. */
static flash_cmd_exe_t g_gigadevice_gd25lq128_enter_qspi_mode_cmd[] = {
/* Write enable for Volatils status register. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x50 } },
/* Write volatile configuration register,config XIP disable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { 0x01, 0x00, 0x02 } },
/* Enable QPI. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x38 } },
/* Set dummy 6, maxinum read freq 108MHZ. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 2, { 0xC0, 0x10} },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
/* GD25LQ256 gigadevice flash config. */
static flash_cmd_exe_t g_gigadevice_gd25lq256_enter_qspi_mode_cmd[] = {
/* Write enable for Volatils status register. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x50 } },
/* Write volatile configuration register,config XIP disable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { 0x01, 0x00, 0x02 } },
/* Write enable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { FLASH_WREN_CMD } },
/* ENTER 4-BYTE ADDRESS MODE. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0xB7 } },
/* Waite config done. */
{ FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR1_CMD, 0, 0 } },
/* Enable QPI. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x38 } },
/* Set dummy 6, maxinum read freq 108MHZ. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 2, { 0xC0, 0x10} },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
/* GD25LQ32D gigadevice flash config. */
static flash_cmd_exe_t g_gigadevice_gd25lq32d_enter_qspi_mode_cmd[] = {
/* Write enable for Volatils status register. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x50 } },
/* Write volatile configuration register,config XIP disable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { 0x01, 0x00, 0x02 } },
/* Enable QPI. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x38 } },
/* Set dummy 6, maxinum read freq 108MHZ. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_QUAD, 2, { 0xC0, 0x20} },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
/* Gigadevice enter xip mode config. */
/* GD25WQ64 gigadevice flash config. */
static flash_qspi_xip_config_t g_gigadevice_gd25wq64_config = {
/* The config that before enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_S_ADDR_Q,
/* The config that after enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_S_ADDR_Q,
/* XIP 32bit addr & wrap config. */
false,
false,
};
/* GD25LE64EX gigadevice flash config. */
static flash_qspi_xip_config_t g_gigadevice_gd25le64_config = {
/* The config that before enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_S_ADDR_Q,
/* The config that after enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_S_ADDR_Q,
/* XIP 32bit addr & wrap config. */
false,
false,
};
/* GD25LX128/GD25LQ32D gigadevice flash config. */
static flash_qspi_xip_config_t g_gigadevice_gd25lx_config = {
/* The config that before enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* The config that after enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* XIP 32bit addr & wrap config. */
false,
false,
};
/* GD25LQ256 gigadevice flash config. */
static flash_qspi_xip_config_t g_gigadevice_gd25lq256_config = {
/* The config that before enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_0,
HAL_SPI_ADDR_LEN_32,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* The config that after enter XIP mode. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_32,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* XIP 32bit addr & wrap config. */
true,
false,
};
/**
* @}
*/
#endif