#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__*/