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

103 lines
3.7 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 MXIC Configuration information. \n
* Author: @CompanyNameTag \n
* History: \n
* 2022-11-15 Create file. \n
*/
#ifndef FLASH_MXIC_CONFIG_H
#define FLASH_MXIC_CONFIG_H
/**
* @defgroup drivers_driver_flash_mxic_config Flash Mxic Config
* @ingroup drivers_driver_flash
* @{
*/
#include "flash_common_config.h"
/* Mxic enter qspi mode cmd config. */
/* MX25R64/MX25R32 mxic flash config. */
static flash_cmd_exe_t g_mxic_mx25rxx_enter_qspi_mode_cmd[] = {
/* Write enable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { FLASH_WREN_CMD } },
/* Write configuration register,enable QPI & enable High performance mode. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 4, { 0x01, 0x40, 0x00, 0x02 } },
/* Waite config done. qspi mode 6 dummy clocks, max 80MHZ. */
{ 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 } }
};
/* MX25U64/MX25U128/MX25U12843 mxic falsh config. */
static flash_cmd_exe_t g_mxic_mx25uxx_enter_qspi_mode_cmd[] = {
/* Enable QPI. QPI mode, MX25U64 dummy clocks 6, max 84MHZ; MX25U128/MX25U12843,dummy clocks 6, max 104MHZ. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x35 } },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
/* MX25U32 mxic falsh config. */
static flash_cmd_exe_t g_mxic_mx25u32_enter_qspi_mode_cmd[] = {
/* Write enable. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { FLASH_WREN_CMD } },
/* Write configuration register,Enable QPI & enable High performance mode. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 2, { 0x01, 0x40 } },
/* Waite config done. dummy clocks 4, max 84MHZ. */
{ 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 } }
};
/* Mxic enter xip mode config. */
/* MX25R64/MX25R32 mxic flash config. */
static flash_qspi_xip_config_t g_mxic_mx25rxx_config = {
/* Enter XIP mode before config. */
WAIT_CYCLES_4, HAL_SPI_INST_LEN_8, HAL_SPI_ADDR_LEN_32, HAL_SPI_TRANS_TYPE_INST_S_ADDR_Q,
/* Enter XIP mode after config. */
WAIT_CYCLES_4, HAL_SPI_INST_LEN_0, HAL_SPI_ADDR_LEN_32, HAL_SPI_TRANS_TYPE_INST_S_ADDR_Q,
/* XIP 32bit addr & wrap config. */
false,
false,
};
/* MX25U64/MX25U128/MX25U12843 mxic falsh config. */
static flash_qspi_xip_config_t g_mxic_mx25uxx_config = {
/* Enter XIP mode before config. */
WAIT_CYCLES_4,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_32,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* Enter XIP mode after config. */
WAIT_CYCLES_4,
HAL_SPI_INST_LEN_0,
HAL_SPI_ADDR_LEN_32,
HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
/* XIP 32bit addr & wrap config. */
false,
false,
};
/* MX25U32 mxic falsh config. */
static flash_qspi_xip_config_t g_mxic_mx25u32_config = {
/* Enter XIP mode before config. */
WAIT_CYCLES_6,
HAL_SPI_INST_LEN_8,
HAL_SPI_ADDR_LEN_24,
HAL_SPI_TRANS_TYPE_INST_S_ADDR_Q,
/* Enter XIP mode after config. */
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,
};
/**
* @}
*/
#endif