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

104 lines
3.4 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 DOSILICON Configuration information. \n
* Author: @CompanyNameTag \n
* History: \n
* 2022-11-15 Create file. \n
*/
#ifndef FLASH_DOSILICON_CONFIG_H
#define FLASH_DOSILICON_CONFIG_H
/**
* @defgroup drivers_driver_flash_dosilicon_config Flash Dosilicon Config
* @ingroup drivers_driver_flash
* @{
*/
#include "flash_common_config.h"
/* DOSILICON enter qspi mode cmd config. */
/* FM25M64/FM25M4AA DOSILICON flash config. */
static flash_cmd_exe_t g_dosilicon_fm25m64_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 } },
/* Wait config done. */
{ FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR1_CMD, 0, 0 } },
/* Enable QPI. dummy clocks 4, max 80MHZ. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x38 } },
/* End cmd, will not execute and need return. */
{ FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM, 0, { 0 } }
};
/* DS25M4AB DOSILICON flash config. */
static flash_cmd_exe_t g_dosilicon_ds25m4ab_enter_qspi_mode_cmd[] = {
/* Write enable for Volatils status register. */
{ FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x50 } },
{ 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 clocks 6, MAX 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 } }
};
/* DOSILICON enter xip mode config. */
/* FM25M64 DOSILICON flash config. */
static flash_qspi_xip_config_t g_dosilicon_fm25m64_config = {
/* The config that before enter XIP mode. */
WAIT_CYCLES_4,
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_4,
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,
};
/* FM25M4AA DOSILICON flash config. */
static flash_qspi_xip_config_t g_dosilicon_fm25m4aa_config = {
/* The config that before enter XIP mode. */
WAIT_CYCLES_4,
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_4,
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,
};
/* DS25M4AB DOSILICON flash config. */
static flash_qspi_xip_config_t g_dosilicon_ds25m4ab_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,
};
/**
* @}
*/
#endif