You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
356 lines
13 KiB
356 lines
13 KiB
#ifndef __SCP_DEFINE_H__
|
|
#define __SCP_DEFINE_H__
|
|
//-----------------------------------------------------------------------------
|
|
// scp registers definition
|
|
//-----------------------------------------------------------------------------
|
|
#pragma anon_unions
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// registers structures
|
|
typedef struct
|
|
{
|
|
uint32_t tx_ping_en:1;
|
|
uint32_t tx_reset:1;
|
|
uint32_t tx_data_en:1;
|
|
uint32_t reserved_15_3:13;
|
|
uint32_t ping_low:3;
|
|
uint32_t ui_time_skew:6;
|
|
uint32_t slv_wait_txping:2;
|
|
uint32_t reserved_27_27:1;
|
|
uint32_t master_en:1;
|
|
uint32_t sync_width:1;
|
|
uint32_t master_wait_ext:1;
|
|
uint32_t afc_mode:1;
|
|
} REG_scp_cfg_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_cfg_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_cfg_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t value:8;
|
|
uint32_t reserved_31_8:24;
|
|
} REG_scp_tx_data_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_tx_data_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_tx_data_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t value:8;
|
|
uint32_t reserved_31_8:24;
|
|
} REG_scp_rx_data_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_rx_data_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_rx_data_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t en:2;
|
|
uint32_t reserved_31_2:30;
|
|
} REG_scp_dbg_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_dbg_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_dbg_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t value:15;
|
|
uint32_t reserved_31_15:17;
|
|
} REG_scp_ping_count_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_ping_count_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_ping_count_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t all:1;
|
|
uint32_t logic:1;
|
|
uint32_t reserved_31_2:30;
|
|
} REG_scp_rst_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_rst_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_rst_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t rx_state:4;
|
|
uint32_t tx_state:4;
|
|
uint32_t reserved_31_8:24;
|
|
} REG_scp_fsm_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_fsm_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_fsm_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t length:8;
|
|
uint32_t reserved_15_8:8;
|
|
uint32_t en:1;
|
|
uint32_t reserved_31_17:15;
|
|
} REG_scp_config_ui_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_config_ui_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_config_ui_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t value:6;
|
|
uint32_t reserved_31_6:26;
|
|
} REG_scp_rx_int_mask_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_rx_int_mask_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_rx_int_mask_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t value:4;
|
|
uint32_t reserved_31_4:28;
|
|
} REG_scp_tx_int_mask_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_tx_int_mask_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_tx_int_mask_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t value:6;
|
|
uint32_t reserved_31_6:26;
|
|
} REG_scp_rx_int_flag_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_rx_int_flag_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_rx_int_flag_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t value:4;
|
|
uint32_t reserved_31_4:28;
|
|
} REG_scp_tx_int_flag_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_tx_int_flag_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_tx_int_flag_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t value:7;
|
|
uint32_t reserved_31_7:25;
|
|
} REG_scp_reset_width_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_reset_width_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_reset_width_TypeDef;
|
|
|
|
|
|
typedef struct
|
|
{
|
|
uint32_t value:1;
|
|
uint32_t reserved_31_1:31;
|
|
} REG_scp_crc_rx_bitfiled_TypeDef;
|
|
|
|
typedef struct
|
|
{
|
|
union {
|
|
__IO REG_scp_crc_rx_bitfiled_TypeDef bf;//bitfiled
|
|
__IO uint32_t word;
|
|
};
|
|
} REG_scp_crc_rx_TypeDef;
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// memory map
|
|
#define REG_SCP_CFG_BASE 0X40007000
|
|
#define REG_SCP_TX_DATA_BASE 0X40007004
|
|
#define REG_SCP_RX_DATA_BASE 0X4000700C
|
|
#define REG_SCP_DBG_BASE 0X40007010
|
|
#define REG_SCP_PING_COUNT_BASE 0X40007014
|
|
#define REG_SCP_RST_BASE 0X40007018
|
|
#define REG_SCP_FSM_BASE 0X4000701C
|
|
#define REG_SCP_CONFIG_UI_BASE 0X40007020
|
|
#define REG_SCP_RX_INT_MASK_BASE 0X40007024
|
|
#define REG_SCP_TX_INT_MASK_BASE 0X40007028
|
|
#define REG_SCP_RX_INT_FLAG_BASE 0X4000702C
|
|
#define REG_SCP_TX_INT_FLAG_BASE 0X40007030
|
|
#define REG_SCP_RESET_WIDTH_BASE 0X40007034
|
|
#define REG_SCP_CRC_RX_BASE 0X40007038
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// declaration
|
|
#define REG_SCP_CFG ((REG_scp_cfg_TypeDef *) REG_SCP_CFG_BASE)
|
|
#define REG_SCP_TX_DATA ((REG_scp_tx_data_TypeDef *) REG_SCP_TX_DATA_BASE)
|
|
#define REG_SCP_RX_DATA ((REG_scp_rx_data_TypeDef *) REG_SCP_RX_DATA_BASE)
|
|
#define REG_SCP_DBG ((REG_scp_dbg_TypeDef *) REG_SCP_DBG_BASE)
|
|
#define REG_SCP_PING_COUNT ((REG_scp_ping_count_TypeDef *) REG_SCP_PING_COUNT_BASE)
|
|
#define REG_SCP_RST ((REG_scp_rst_TypeDef *) REG_SCP_RST_BASE)
|
|
#define REG_SCP_FSM ((REG_scp_fsm_TypeDef *) REG_SCP_FSM_BASE)
|
|
#define REG_SCP_CONFIG_UI ((REG_scp_config_ui_TypeDef *) REG_SCP_CONFIG_UI_BASE)
|
|
#define REG_SCP_RX_INT_MASK ((REG_scp_rx_int_mask_TypeDef *) REG_SCP_RX_INT_MASK_BASE)
|
|
#define REG_SCP_TX_INT_MASK ((REG_scp_tx_int_mask_TypeDef *) REG_SCP_TX_INT_MASK_BASE)
|
|
#define REG_SCP_RX_INT_FLAG ((REG_scp_rx_int_flag_TypeDef *) REG_SCP_RX_INT_FLAG_BASE)
|
|
#define REG_SCP_TX_INT_FLAG ((REG_scp_tx_int_flag_TypeDef *) REG_SCP_TX_INT_FLAG_BASE)
|
|
#define REG_SCP_RESET_WIDTH ((REG_scp_reset_width_TypeDef *) REG_SCP_RESET_WIDTH_BASE)
|
|
#define REG_SCP_CRC_RX ((REG_scp_crc_rx_TypeDef *) REG_SCP_CRC_RX_BASE)
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// set
|
|
#define REG_SCP_CFG_TX_PING_EN_POS 0
|
|
#define REG_SCP_CFG_TX_PING_EN_MSK (0x1ul << REG_SCP_CFG_TX_PING_EN_POS)
|
|
#define REG_SCP_CFG_TX_PING_EN_SET(num) (((num) << REG_SCP_CFG_TX_PING_EN_POS ) & REG_SCP_CFG_TX_PING_EN_MSK)
|
|
|
|
#define REG_SCP_CFG_TX_RESET_POS 1
|
|
#define REG_SCP_CFG_TX_RESET_MSK (0x1ul << REG_SCP_CFG_TX_RESET_POS)
|
|
#define REG_SCP_CFG_TX_RESET_SET(num) (((num) << REG_SCP_CFG_TX_RESET_POS ) & REG_SCP_CFG_TX_RESET_MSK)
|
|
|
|
#define REG_SCP_CFG_TX_DATA_EN_POS 2
|
|
#define REG_SCP_CFG_TX_DATA_EN_MSK (0x1ul << REG_SCP_CFG_TX_DATA_EN_POS)
|
|
#define REG_SCP_CFG_TX_DATA_EN_SET(num) (((num) << REG_SCP_CFG_TX_DATA_EN_POS ) & REG_SCP_CFG_TX_DATA_EN_MSK)
|
|
|
|
#define REG_SCP_CFG_PING_LOW_POS 16
|
|
#define REG_SCP_CFG_PING_LOW_MSK (0x3ul << REG_SCP_CFG_PING_LOW_POS)
|
|
#define REG_SCP_CFG_PING_LOW_SET(num) (((num) << REG_SCP_CFG_PING_LOW_POS ) & REG_SCP_CFG_PING_LOW_MSK)
|
|
|
|
#define REG_SCP_CFG_UI_TIME_SKEW_POS 19
|
|
#define REG_SCP_CFG_UI_TIME_SKEW_MSK (0x6ul << REG_SCP_CFG_UI_TIME_SKEW_POS)
|
|
#define REG_SCP_CFG_UI_TIME_SKEW_SET(num) (((num) << REG_SCP_CFG_UI_TIME_SKEW_POS ) & REG_SCP_CFG_UI_TIME_SKEW_MSK)
|
|
|
|
#define REG_SCP_CFG_SLV_WAIT_TXPING_POS 25
|
|
#define REG_SCP_CFG_SLV_WAIT_TXPING_MSK (0x2ul << REG_SCP_CFG_SLV_WAIT_TXPING_POS)
|
|
#define REG_SCP_CFG_SLV_WAIT_TXPING_SET(num) (((num) << REG_SCP_CFG_SLV_WAIT_TXPING_POS ) & REG_SCP_CFG_SLV_WAIT_TXPING_MSK)
|
|
|
|
#define REG_SCP_CFG_MASTER_EN_POS 28
|
|
#define REG_SCP_CFG_MASTER_EN_MSK (0x1ul << REG_SCP_CFG_MASTER_EN_POS)
|
|
#define REG_SCP_CFG_MASTER_EN_SET(num) (((num) << REG_SCP_CFG_MASTER_EN_POS ) & REG_SCP_CFG_MASTER_EN_MSK)
|
|
|
|
#define REG_SCP_CFG_SYNC_WIDTH_POS 29
|
|
#define REG_SCP_CFG_SYNC_WIDTH_MSK (0x1ul << REG_SCP_CFG_SYNC_WIDTH_POS)
|
|
#define REG_SCP_CFG_SYNC_WIDTH_SET(num) (((num) << REG_SCP_CFG_SYNC_WIDTH_POS ) & REG_SCP_CFG_SYNC_WIDTH_MSK)
|
|
|
|
#define REG_SCP_CFG_MASTER_WAIT_EXT_POS 30
|
|
#define REG_SCP_CFG_MASTER_WAIT_EXT_MSK (0x1ul << REG_SCP_CFG_MASTER_WAIT_EXT_POS)
|
|
#define REG_SCP_CFG_MASTER_WAIT_EXT_SET(num) (((num) << REG_SCP_CFG_MASTER_WAIT_EXT_POS ) & REG_SCP_CFG_MASTER_WAIT_EXT_MSK)
|
|
|
|
#define REG_SCP_CFG_AFC_MODE_POS 31
|
|
#define REG_SCP_CFG_AFC_MODE_MSK (0x1ul << REG_SCP_CFG_AFC_MODE_POS)
|
|
#define REG_SCP_CFG_AFC_MODE_SET(num) (((num) << REG_SCP_CFG_AFC_MODE_POS ) & REG_SCP_CFG_AFC_MODE_MSK)
|
|
|
|
#define REG_SCP_TX_DATA__POS 0
|
|
#define REG_SCP_TX_DATA__MSK (0x8ul << REG_SCP_TX_DATA__POS)
|
|
#define REG_SCP_TX_DATA__SET(num) (((num) << REG_SCP_TX_DATA__POS ) & REG_SCP_TX_DATA__MSK)
|
|
|
|
#define REG_SCP_DBG_EN_POS 0
|
|
#define REG_SCP_DBG_EN_MSK (0x2ul << REG_SCP_DBG_EN_POS)
|
|
#define REG_SCP_DBG_EN_SET(num) (((num) << REG_SCP_DBG_EN_POS ) & REG_SCP_DBG_EN_MSK)
|
|
|
|
#define REG_SCP_RST_ALL_POS 0
|
|
#define REG_SCP_RST_ALL_MSK (0x1ul << REG_SCP_RST_ALL_POS)
|
|
#define REG_SCP_RST_ALL_SET(num) (((num) << REG_SCP_RST_ALL_POS ) & REG_SCP_RST_ALL_MSK)
|
|
|
|
#define REG_SCP_RST_LOGIC_POS 1
|
|
#define REG_SCP_RST_LOGIC_MSK (0x1ul << REG_SCP_RST_LOGIC_POS)
|
|
#define REG_SCP_RST_LOGIC_SET(num) (((num) << REG_SCP_RST_LOGIC_POS ) & REG_SCP_RST_LOGIC_MSK)
|
|
|
|
#define REG_SCP_CONFIG_UI_LENGTH_POS 0
|
|
#define REG_SCP_CONFIG_UI_LENGTH_MSK (0x8ul << REG_SCP_CONFIG_UI_LENGTH_POS)
|
|
#define REG_SCP_CONFIG_UI_LENGTH_SET(num) (((num) << REG_SCP_CONFIG_UI_LENGTH_POS ) & REG_SCP_CONFIG_UI_LENGTH_MSK)
|
|
|
|
#define REG_SCP_CONFIG_UI_EN_POS 16
|
|
#define REG_SCP_CONFIG_UI_EN_MSK (0x1ul << REG_SCP_CONFIG_UI_EN_POS)
|
|
#define REG_SCP_CONFIG_UI_EN_SET(num) (((num) << REG_SCP_CONFIG_UI_EN_POS ) & REG_SCP_CONFIG_UI_EN_MSK)
|
|
|
|
#define REG_SCP_RX_INT_MASK__POS 0
|
|
#define REG_SCP_RX_INT_MASK__MSK (0x6ul << REG_SCP_RX_INT_MASK__POS)
|
|
#define REG_SCP_RX_INT_MASK__SET(num) (((num) << REG_SCP_RX_INT_MASK__POS ) & REG_SCP_RX_INT_MASK__MSK)
|
|
|
|
#define REG_SCP_TX_INT_MASK__POS 0
|
|
#define REG_SCP_TX_INT_MASK__MSK (0x4ul << REG_SCP_TX_INT_MASK__POS)
|
|
#define REG_SCP_TX_INT_MASK__SET(num) (((num) << REG_SCP_TX_INT_MASK__POS ) & REG_SCP_TX_INT_MASK__MSK)
|
|
|
|
#define REG_SCP_RESET_WIDTH__POS 0
|
|
#define REG_SCP_RESET_WIDTH__MSK (0x7ul << REG_SCP_RESET_WIDTH__POS)
|
|
#define REG_SCP_RESET_WIDTH__SET(num) (((num) << REG_SCP_RESET_WIDTH__POS ) & REG_SCP_RESET_WIDTH__MSK)
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
#endif /*__SCP_DEFINE_H__*/
|
|
|