Files
luban-lite-t3e-pro/bsp/artinchip/hal/qspi/qspi_internal.h

51 lines
1.6 KiB
C
Raw Normal View History

2023-11-09 20:19:51 +08:00
/*
2024-10-30 16:50:31 +08:00
* Copyright (c) 2022-2024, ArtInChip Technology Co., Ltd
2023-11-09 20:19:51 +08:00
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef _AIC_HAL_QSPI_INTERNAL_H_
#define _AIC_HAL_QSPI_INTERNAL_H_
#include <aic_common.h>
#include <aic_soc.h>
#ifdef __cplusplus
extern "C" {
#endif
2024-10-30 16:50:31 +08:00
#define QSPI_WORK_MODE_SYNC_RX_CPU 0
#define QSPI_WORK_MODE_SYNC_TX_CPU 1
#define QSPI_WORK_MODE_ASYNC_RX_CPU 2
#define QSPI_WORK_MODE_ASYNC_TX_CPU 3
#define QSPI_WORK_MODE_ASYNC_RX_DMA 4
#define QSPI_WORK_MODE_ASYNC_TX_DMA 5
#define QSPI_WORK_MODE_SYNC_DUPLEX_CPU 6
#define QSPI_WORK_MODE_SYNC_DUPLEX_DMA 7
#define QSPI_WORK_MODE_ASYNC_DUPLEX_CPU 8
#define QSPI_WORK_MODE_ASYNC_DUPLEX_DMA 9
2023-11-09 20:19:51 +08:00
#define HAL_QSPI_STATUS_INTERNAL_MSK (0xFFFFUL << 16)
#define HAL_QSPI_STATUS_ASYNC_TDONE (0x1UL << 16)
#define HAL_QSPI_STATUS_ASYNC_DMA_DONE (0x1UL << 17)
#define HAL_QSPI_STATUS_ASYNC_ALL_DONE (HAL_QSPI_STATUS_ASYNC_TDONE | HAL_QSPI_STATUS_ASYNC_DMA_DONE)
#define QSPI_IS_ASYNC_ALL_DONE(sts, msk) ((sts & msk) == msk)
#define PTR2U32(p) ((u32)(unsigned long)(p))
2024-06-04 19:00:30 +08:00
#define QSPI_TRANSFER_DATA_LEN_1M 0x100000
#define QSPI_CPU_DMA_MIN_SPEED_MS (0x800000 >> 10)
2024-10-30 16:50:31 +08:00
void qspi_reg_dump(u32 base);
2023-11-09 20:19:51 +08:00
void show_freq(char *msg, u32 id, u32 hz);
2024-10-30 16:50:31 +08:00
u32 qspi_calc_timeout(u32 bus_hz, u32 len);
u32 qspi_master_get_best_div_param(u32 sclk, u32 bus_hz, u32 *div);
2023-11-09 20:19:51 +08:00
int qspi_fifo_write_data(u32 base, u8 *data, u32 len, u32 tmo);
int qspi_fifo_read_data(u32 base, u8 *data, u32 len, u32 tmo_us);
int qspi_wait_transfer_done(u32 base, u32 tmo);
#ifdef __cplusplus
}
#endif
#endif