83 lines
2.8 KiB
C
83 lines
2.8 KiB
C
#ifndef __HARDWARE_SSI_REG_H__
|
|
#define __HARDWARE_SSI_REG_H__
|
|
|
|
#include "reg.h"
|
|
|
|
#define SSI_CTRLR0_TMOD_POS (8U)
|
|
#define SSI_CTRLR0_TMOD_VALUE_TX_AND_RX_MASK (0x0 << SSI_CTRLR0_TMOD_POS)
|
|
#define SSI_CTRLR0_TMOD_VALUE_TX_ONLY_MASK (0x1 << SSI_CTRLR0_TMOD_POS)
|
|
#define SSI_CTRLR0_TMOD_VALUE_RX_ONLY_MASK (0x2 << SSI_CTRLR0_TMOD_POS)
|
|
#define SSI_CTRLR0_TMOD_VALUE_EEPROM_READ_MASK (0x3 << SSI_CTRLR0_TMOD_POS)
|
|
#define SSI_CTRLR0_DFS_32_POS (16U)
|
|
#define SSI_CTRLR0_SPI_FRF_POS (21U)
|
|
#define SSI_CTRLR0_SPI_FRF_VALUE_STD_MASK (0x0 << SSI_CTRLR0_SPI_FRF_POS)
|
|
#define SSI_CTRLR0_SPI_FRF_VALUE_DUAL_MASK (0x1 << SSI_CTRLR0_SPI_FRF_POS)
|
|
#define SSI_CTRLR0_SPI_FRF_VALUE_QUAD_MASK (0x2 << SSI_CTRLR0_SPI_FRF_POS)
|
|
|
|
#define SSI_SPI_CTRLR0_TRANS_TYPE_POS (0U)
|
|
#define SSI_SPI_CTRLR0_TRANS_TYPE_VALUE_1C1A_MASK (0x0 << SSI_SPI_CTRLR0_TRANS_TYPE_POS)
|
|
#define SSI_SPI_CTRLR0_TRANS_TYPE_VALUE_1C2A_MASK (0x1 << SSI_SPI_CTRLR0_TRANS_TYPE_POS)
|
|
#define SSI_SPI_CTRLR0_TRANS_TYPE_VALUE_2C2A_MASK (0x2 << SSI_SPI_CTRLR0_TRANS_TYPE_POS)
|
|
#define SSI_SPI_CTRLR0_ADDR_L_POS (2U)
|
|
#define SSI_SPI_CTRLR0_INST_L_POS (8U)
|
|
#define SSI_SPI_CTRLR0_INST_L_VALUE_NONE_MASK (0x0 << SSI_SPI_CTRLR0_INST_L_POS)
|
|
#define SSI_SPI_CTRLR0_INST_L_VALUE_4B_MASK (0x1 << SSI_SPI_CTRLR0_INST_L_POS)
|
|
#define SSI_SPI_CTRLR0_INST_L_VALUE_8B_MASK (0x2 << SSI_SPI_CTRLR0_INST_L_POS)
|
|
#define SSI_SPI_CTRLR0_INST_L_VALUE_16_MASKB (0x3 << SSI_SPI_CTRLR0_INST_L_POS)
|
|
#define SSI_SPI_CTRLR0_WAIT_CYCLES_POS (11U)
|
|
#define SSI_SPI_CTRLR0_XIP_CMD_POS (24U)
|
|
|
|
#define SSI_SR_BUSY (1 << 0)
|
|
#define SSI_SR_TFNF (1 << 1)
|
|
#define SSI_SR_TFE (1 << 2)
|
|
#define SSI_SR_RFNE (1 << 3)
|
|
#define SSI_SR_RFF (1 << 4)
|
|
#define SSI_SR_TXE (1 << 5)
|
|
#define SSI_SR_DCOL (1 << 6)
|
|
|
|
typedef struct {
|
|
io_rw_32 ctrlr0;
|
|
io_rw_32 ctrlr1;
|
|
io_rw_32 ssienr;
|
|
io_rw_32 mwcr;
|
|
io_rw_32 ser;
|
|
io_rw_32 baudr;
|
|
io_rw_32 txftlr;
|
|
io_rw_32 rxftlr;
|
|
io_rw_32 txflr;
|
|
io_rw_32 rxflr;
|
|
io_rw_32 sr;
|
|
io_rw_32 imr;
|
|
io_rw_32 isr;
|
|
io_rw_32 risr;
|
|
io_rw_32 txoicr;
|
|
io_rw_32 rxoicr;
|
|
io_rw_32 rxuicr;
|
|
io_rw_32 msticr;
|
|
io_rw_32 icr;
|
|
io_rw_32 dmacr;
|
|
io_rw_32 dmatdlr;
|
|
io_rw_32 dmardlr;
|
|
io_rw_32 idr;
|
|
io_rw_32 ssi_version_id;
|
|
io_rw_32 dr0;
|
|
uint32_t _pad[(0xf0 - 0x60) / 4 - 1];
|
|
io_rw_32 rx_sample_dly;
|
|
io_rw_32 spi_ctrlr0;
|
|
io_rw_32 txd_drive_edge;
|
|
} ssi_hw_t;
|
|
|
|
#define ssi_hw ((ssi_hw_t *const)XIP_SSI_BASE)
|
|
#define ssi_hw_set ((ssi_hw_t *const)hw_set_alias_untyped(ssi_hw))
|
|
#define ssi_hw_clear ((ssi_hw_t *const)hw_clear_alias_untyped(ssi_hw))
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __HARDWARE_SSI_REG_H__ */
|