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.
 
 
 
 

357 lines
13 KiB

#ifndef __SCP1_DEFINE_H__
#define __SCP1_DEFINE_H__
//-----------------------------------------------------------------------------
// scp1 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_scp1_cfg_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_cfg_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_cfg_TypeDef;
typedef struct
{
uint32_t value:8;
uint32_t reserved_31_8:24;
} REG_scp1_tx_data_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_tx_data_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_tx_data_TypeDef;
typedef struct
{
uint32_t value:8;
uint32_t reserved_31_8:24;
} REG_scp1_rx_data_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_rx_data_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_rx_data_TypeDef;
typedef struct
{
uint32_t en:2;
uint32_t reserved_31_2:30;
} REG_scp1_dbg_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_dbg_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_dbg_TypeDef;
typedef struct
{
uint32_t value:15;
uint32_t reserved_31_15:17;
} REG_scp1_ping_count_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_ping_count_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_ping_count_TypeDef;
typedef struct
{
uint32_t all:1;
uint32_t logic:1;
uint32_t reserved_31_2:30;
} REG_scp1_rst_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_rst_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_rst_TypeDef;
typedef struct
{
uint32_t rx_state:4;
uint32_t tx_state:4;
uint32_t reserved_31_8:24;
} REG_scp1_fsm_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_fsm_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_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_scp1_config_ui_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_config_ui_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_config_ui_TypeDef;
typedef struct
{
uint32_t value:6;
uint32_t reserved_31_6:26;
} REG_scp1_rx_int_mask_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_rx_int_mask_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_rx_int_mask_TypeDef;
typedef struct
{
uint32_t value:4;
uint32_t reserved_31_4:28;
} REG_scp1_tx_int_mask_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_tx_int_mask_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_tx_int_mask_TypeDef;
typedef struct
{
uint32_t value:6;
uint32_t reserved_31_6:26;
} REG_scp1_rx_int_flag_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_rx_int_flag_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_rx_int_flag_TypeDef;
typedef struct
{
uint32_t value:4;
uint32_t reserved_31_4:28;
} REG_scp1_tx_int_flag_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_tx_int_flag_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_tx_int_flag_TypeDef;
typedef struct
{
uint32_t value:7;
uint32_t reserved_31_7:25;
} REG_scp1_reset_width_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_reset_width_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_reset_width_TypeDef;
typedef struct
{
uint32_t value:1;
uint32_t reserved_31_1:31;
} REG_scp1_crc_rx_bitfiled_TypeDef;
typedef struct
{
union {
__IO REG_scp1_crc_rx_bitfiled_TypeDef bf;//bitfiled
__IO uint32_t word;
};
} REG_scp1_crc_rx_TypeDef;
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// memory map
#define REG_SCP1_CFG_BASE 0X40007800
#define REG_SCP1_TX_DATA_BASE 0X40007804
#define REG_SCP1_RX_DATA_BASE 0X4000780C
#define REG_SCP1_DBG_BASE 0X40007810
#define REG_SCP1_PING_COUNT_BASE 0X40007814
#define REG_SCP1_RST_BASE 0X40007818
#define REG_SCP1_FSM_BASE 0X4000781C
#define REG_SCP1_CONFIG_UI_BASE 0X40007820
#define REG_SCP1_RX_INT_MASK_BASE 0X40007824
#define REG_SCP1_TX_INT_MASK_BASE 0X40007828
#define REG_SCP1_RX_INT_FLAG_BASE 0X4000782C
#define REG_SCP1_TX_INT_FLAG_BASE 0X40007830
#define REG_SCP1_RESET_WIDTH_BASE 0X40007834
#define REG_SCP1_CRC_RX_BASE 0X40007838
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// declaration
#define REG_SCP1_CFG ((REG_scp1_cfg_TypeDef *) REG_SCP1_CFG_BASE)
#define REG_SCP1_TX_DATA ((REG_scp1_tx_data_TypeDef *) REG_SCP1_TX_DATA_BASE)
#define REG_SCP1_RX_DATA ((REG_scp1_rx_data_TypeDef *) REG_SCP1_RX_DATA_BASE)
#define REG_SCP1_DBG ((REG_scp1_dbg_TypeDef *) REG_SCP1_DBG_BASE)
#define REG_SCP1_PING_COUNT ((REG_scp1_ping_count_TypeDef *) REG_SCP1_PING_COUNT_BASE)
#define REG_SCP1_RST ((REG_scp1_rst_TypeDef *) REG_SCP1_RST_BASE)
#define REG_SCP1_FSM ((REG_scp1_fsm_TypeDef *) REG_SCP1_FSM_BASE)
#define REG_SCP1_CONFIG_UI ((REG_scp1_config_ui_TypeDef *) REG_SCP1_CONFIG_UI_BASE)
#define REG_SCP1_RX_INT_MASK ((REG_scp1_rx_int_mask_TypeDef *) REG_SCP1_RX_INT_MASK_BASE)
#define REG_SCP1_TX_INT_MASK ((REG_scp1_tx_int_mask_TypeDef *) REG_SCP1_TX_INT_MASK_BASE)
#define REG_SCP1_RX_INT_FLAG ((REG_scp1_rx_int_flag_TypeDef *) REG_SCP1_RX_INT_FLAG_BASE)
#define REG_SCP1_TX_INT_FLAG ((REG_scp1_tx_int_flag_TypeDef *) REG_SCP1_TX_INT_FLAG_BASE)
#define REG_SCP1_RESET_WIDTH ((REG_scp1_reset_width_TypeDef *) REG_SCP1_RESET_WIDTH_BASE)
#define REG_SCP1_CRC_RX ((REG_scp1_crc_rx_TypeDef *) REG_SCP1_CRC_RX_BASE)
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// set
#define REG_SCP1_CFG_TX_PING_EN_POS 0
#define REG_SCP1_CFG_TX_PING_EN_MSK (0x1ul << REG_SCP1_CFG_TX_PING_EN_POS)
#define REG_SCP1_CFG_TX_PING_EN_SET(num) (((num) << REG_SCP1_CFG_TX_PING_EN_POS ) & REG_SCP1_CFG_TX_PING_EN_MSK)
#define REG_SCP1_CFG_TX_RESET_POS 1
#define REG_SCP1_CFG_TX_RESET_MSK (0x1ul << REG_SCP1_CFG_TX_RESET_POS)
#define REG_SCP1_CFG_TX_RESET_SET(num) (((num) << REG_SCP1_CFG_TX_RESET_POS ) & REG_SCP1_CFG_TX_RESET_MSK)
#define REG_SCP1_CFG_TX_DATA_EN_POS 2
#define REG_SCP1_CFG_TX_DATA_EN_MSK (0x1ul << REG_SCP1_CFG_TX_DATA_EN_POS)
#define REG_SCP1_CFG_TX_DATA_EN_SET(num) (((num) << REG_SCP1_CFG_TX_DATA_EN_POS ) & REG_SCP1_CFG_TX_DATA_EN_MSK)
#define REG_SCP1_CFG_PING_LOW_POS 16
#define REG_SCP1_CFG_PING_LOW_MSK (0x3ul << REG_SCP1_CFG_PING_LOW_POS)
#define REG_SCP1_CFG_PING_LOW_SET(num) (((num) << REG_SCP1_CFG_PING_LOW_POS ) & REG_SCP1_CFG_PING_LOW_MSK)
#define REG_SCP1_CFG_UI_TIME_SKEW_POS 19
#define REG_SCP1_CFG_UI_TIME_SKEW_MSK (0x6ul << REG_SCP1_CFG_UI_TIME_SKEW_POS)
#define REG_SCP1_CFG_UI_TIME_SKEW_SET(num) (((num) << REG_SCP1_CFG_UI_TIME_SKEW_POS ) & REG_SCP1_CFG_UI_TIME_SKEW_MSK)
#define REG_SCP1_CFG_SLV_WAIT_TXPING_POS 25
#define REG_SCP1_CFG_SLV_WAIT_TXPING_MSK (0x2ul << REG_SCP1_CFG_SLV_WAIT_TXPING_POS)
#define REG_SCP1_CFG_SLV_WAIT_TXPING_SET(num) (((num) << REG_SCP1_CFG_SLV_WAIT_TXPING_POS ) & REG_SCP1_CFG_SLV_WAIT_TXPING_MSK)
#define REG_SCP1_CFG_MASTER_EN_POS 28
#define REG_SCP1_CFG_MASTER_EN_MSK (0x1ul << REG_SCP1_CFG_MASTER_EN_POS)
#define REG_SCP1_CFG_MASTER_EN_SET(num) (((num) << REG_SCP1_CFG_MASTER_EN_POS ) & REG_SCP1_CFG_MASTER_EN_MSK)
#define REG_SCP1_CFG_SYNC_WIDTH_POS 29
#define REG_SCP1_CFG_SYNC_WIDTH_MSK (0x1ul << REG_SCP1_CFG_SYNC_WIDTH_POS)
#define REG_SCP1_CFG_SYNC_WIDTH_SET(num) (((num) << REG_SCP1_CFG_SYNC_WIDTH_POS ) & REG_SCP1_CFG_SYNC_WIDTH_MSK)
#define REG_SCP1_CFG_MASTER_WAIT_EXT_POS 30
#define REG_SCP1_CFG_MASTER_WAIT_EXT_MSK (0x1ul << REG_SCP1_CFG_MASTER_WAIT_EXT_POS)
#define REG_SCP1_CFG_MASTER_WAIT_EXT_SET(num) (((num) << REG_SCP1_CFG_MASTER_WAIT_EXT_POS ) & REG_SCP1_CFG_MASTER_WAIT_EXT_MSK)
#define REG_SCP1_CFG_AFC_MODE_POS 31
#define REG_SCP1_CFG_AFC_MODE_MSK (0x1ul << REG_SCP1_CFG_AFC_MODE_POS)
#define REG_SCP1_CFG_AFC_MODE_SET(num) (((num) << REG_SCP1_CFG_AFC_MODE_POS ) & REG_SCP1_CFG_AFC_MODE_MSK)
#define REG_SCP1_TX_DATA__POS 0
#define REG_SCP1_TX_DATA__MSK (0x8ul << REG_SCP1_TX_DATA__POS)
#define REG_SCP1_TX_DATA__SET(num) (((num) << REG_SCP1_TX_DATA__POS ) & REG_SCP1_TX_DATA__MSK)
#define REG_SCP1_DBG_EN_POS 0
#define REG_SCP1_DBG_EN_MSK (0x2ul << REG_SCP1_DBG_EN_POS)
#define REG_SCP1_DBG_EN_SET(num) (((num) << REG_SCP1_DBG_EN_POS ) & REG_SCP1_DBG_EN_MSK)
#define REG_SCP1_RST_ALL_POS 0
#define REG_SCP1_RST_ALL_MSK (0x1ul << REG_SCP1_RST_ALL_POS)
#define REG_SCP1_RST_ALL_SET(num) (((num) << REG_SCP1_RST_ALL_POS ) & REG_SCP1_RST_ALL_MSK)
#define REG_SCP1_RST_LOGIC_POS 1
#define REG_SCP1_RST_LOGIC_MSK (0x1ul << REG_SCP1_RST_LOGIC_POS)
#define REG_SCP1_RST_LOGIC_SET(num) (((num) << REG_SCP1_RST_LOGIC_POS ) & REG_SCP1_RST_LOGIC_MSK)
#define REG_SCP1_CONFIG_UI_LENGTH_POS 0
#define REG_SCP1_CONFIG_UI_LENGTH_MSK (0x8ul << REG_SCP1_CONFIG_UI_LENGTH_POS)
#define REG_SCP1_CONFIG_UI_LENGTH_SET(num) (((num) << REG_SCP1_CONFIG_UI_LENGTH_POS ) & REG_SCP1_CONFIG_UI_LENGTH_MSK)
#define REG_SCP1_CONFIG_UI_EN_POS 16
#define REG_SCP1_CONFIG_UI_EN_MSK (0x1ul << REG_SCP1_CONFIG_UI_EN_POS)
#define REG_SCP1_CONFIG_UI_EN_SET(num) (((num) << REG_SCP1_CONFIG_UI_EN_POS ) & REG_SCP1_CONFIG_UI_EN_MSK)
#define REG_SCP1_RX_INT_MASK__POS 0
#define REG_SCP1_RX_INT_MASK__MSK (0x6ul << REG_SCP1_RX_INT_MASK__POS)
#define REG_SCP1_RX_INT_MASK__SET(num) (((num) << REG_SCP1_RX_INT_MASK__POS ) & REG_SCP1_RX_INT_MASK__MSK)
#define REG_SCP1_TX_INT_MASK__POS 0
#define REG_SCP1_TX_INT_MASK__MSK (0x4ul << REG_SCP1_TX_INT_MASK__POS)
#define REG_SCP1_TX_INT_MASK__SET(num) (((num) << REG_SCP1_TX_INT_MASK__POS ) & REG_SCP1_TX_INT_MASK__MSK)
#define REG_SCP1_RESET_WIDTH__POS 0
#define REG_SCP1_RESET_WIDTH__MSK (0x7ul << REG_SCP1_RESET_WIDTH__POS)
#define REG_SCP1_RESET_WIDTH__SET(num) (((num) << REG_SCP1_RESET_WIDTH__POS ) & REG_SCP1_RESET_WIDTH__MSK)
//-----------------------------------------------------------------------------
#endif /*__SCP1_DEFINE_H__*/