1 /** 2 * \file 3 * 4 * \brief Component description for SSC 5 * 6 * Copyright (c) 2019 Microchip Technology Inc. 7 * 8 * \license_start 9 * 10 * \page License 11 * 12 * SPDX-License-Identifier: Apache-2.0 13 * 14 * Licensed under the Apache License, Version 2.0 (the "License"); 15 * you may not use this file except in compliance with the License. 16 * You may obtain a copy of the License at 17 * 18 * http://www.apache.org/licenses/LICENSE-2.0 19 * 20 * Unless required by applicable law or agreed to in writing, software 21 * distributed under the License is distributed on an "AS IS" BASIS, 22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 23 * See the License for the specific language governing permissions and 24 * limitations under the License. 25 * 26 * \license_stop 27 * 28 */ 29 30 /* file generated from device description version 2019-01-18T21:19:59Z */ 31 #ifndef _SAME70_SSC_COMPONENT_H_ 32 #define _SAME70_SSC_COMPONENT_H_ 33 #define _SAME70_SSC_COMPONENT_ /**< \deprecated Backward compatibility for ASF */ 34 35 /** \addtogroup SAME_SAME70 Synchronous Serial Controller 36 * @{ 37 */ 38 /* ========================================================================== */ 39 /** SOFTWARE API DEFINITION FOR SSC */ 40 /* ========================================================================== */ 41 #ifndef COMPONENT_TYPEDEF_STYLE 42 #define COMPONENT_TYPEDEF_STYLE 'R' /**< Defines default style of typedefs for the component header files ('R' = RFO, 'N' = NTO)*/ 43 #endif 44 45 #define SSC_6078 /**< (SSC) Module ID */ 46 #define REV_SSC Q /**< (SSC) Module revision */ 47 48 /* -------- SSC_CR : (SSC Offset: 0x00) (/W 32) Control Register -------- */ 49 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 50 #if COMPONENT_TYPEDEF_STYLE == 'N' 51 typedef union { 52 struct { 53 uint32_t RXEN:1; /**< bit: 0 Receive Enable */ 54 uint32_t RXDIS:1; /**< bit: 1 Receive Disable */ 55 uint32_t :6; /**< bit: 2..7 Reserved */ 56 uint32_t TXEN:1; /**< bit: 8 Transmit Enable */ 57 uint32_t TXDIS:1; /**< bit: 9 Transmit Disable */ 58 uint32_t :5; /**< bit: 10..14 Reserved */ 59 uint32_t SWRST:1; /**< bit: 15 Software Reset */ 60 uint32_t :16; /**< bit: 16..31 Reserved */ 61 } bit; /**< Structure used for bit access */ 62 uint32_t reg; /**< Type used for register access */ 63 } SSC_CR_Type; 64 #endif 65 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 66 67 #define SSC_CR_OFFSET (0x00) /**< (SSC_CR) Control Register Offset */ 68 69 #define SSC_CR_RXEN_Pos 0 /**< (SSC_CR) Receive Enable Position */ 70 #define SSC_CR_RXEN_Msk (_U_(0x1) << SSC_CR_RXEN_Pos) /**< (SSC_CR) Receive Enable Mask */ 71 #define SSC_CR_RXEN SSC_CR_RXEN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_CR_RXEN_Msk instead */ 72 #define SSC_CR_RXDIS_Pos 1 /**< (SSC_CR) Receive Disable Position */ 73 #define SSC_CR_RXDIS_Msk (_U_(0x1) << SSC_CR_RXDIS_Pos) /**< (SSC_CR) Receive Disable Mask */ 74 #define SSC_CR_RXDIS SSC_CR_RXDIS_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_CR_RXDIS_Msk instead */ 75 #define SSC_CR_TXEN_Pos 8 /**< (SSC_CR) Transmit Enable Position */ 76 #define SSC_CR_TXEN_Msk (_U_(0x1) << SSC_CR_TXEN_Pos) /**< (SSC_CR) Transmit Enable Mask */ 77 #define SSC_CR_TXEN SSC_CR_TXEN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_CR_TXEN_Msk instead */ 78 #define SSC_CR_TXDIS_Pos 9 /**< (SSC_CR) Transmit Disable Position */ 79 #define SSC_CR_TXDIS_Msk (_U_(0x1) << SSC_CR_TXDIS_Pos) /**< (SSC_CR) Transmit Disable Mask */ 80 #define SSC_CR_TXDIS SSC_CR_TXDIS_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_CR_TXDIS_Msk instead */ 81 #define SSC_CR_SWRST_Pos 15 /**< (SSC_CR) Software Reset Position */ 82 #define SSC_CR_SWRST_Msk (_U_(0x1) << SSC_CR_SWRST_Pos) /**< (SSC_CR) Software Reset Mask */ 83 #define SSC_CR_SWRST SSC_CR_SWRST_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_CR_SWRST_Msk instead */ 84 #define SSC_CR_MASK _U_(0x8303) /**< \deprecated (SSC_CR) Register MASK (Use SSC_CR_Msk instead) */ 85 #define SSC_CR_Msk _U_(0x8303) /**< (SSC_CR) Register Mask */ 86 87 88 /* -------- SSC_CMR : (SSC Offset: 0x04) (R/W 32) Clock Mode Register -------- */ 89 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 90 #if COMPONENT_TYPEDEF_STYLE == 'N' 91 typedef union { 92 struct { 93 uint32_t DIV:12; /**< bit: 0..11 Clock Divider */ 94 uint32_t :20; /**< bit: 12..31 Reserved */ 95 } bit; /**< Structure used for bit access */ 96 uint32_t reg; /**< Type used for register access */ 97 } SSC_CMR_Type; 98 #endif 99 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 100 101 #define SSC_CMR_OFFSET (0x04) /**< (SSC_CMR) Clock Mode Register Offset */ 102 103 #define SSC_CMR_DIV_Pos 0 /**< (SSC_CMR) Clock Divider Position */ 104 #define SSC_CMR_DIV_Msk (_U_(0xFFF) << SSC_CMR_DIV_Pos) /**< (SSC_CMR) Clock Divider Mask */ 105 #define SSC_CMR_DIV(value) (SSC_CMR_DIV_Msk & ((value) << SSC_CMR_DIV_Pos)) 106 #define SSC_CMR_MASK _U_(0xFFF) /**< \deprecated (SSC_CMR) Register MASK (Use SSC_CMR_Msk instead) */ 107 #define SSC_CMR_Msk _U_(0xFFF) /**< (SSC_CMR) Register Mask */ 108 109 110 /* -------- SSC_RCMR : (SSC Offset: 0x10) (R/W 32) Receive Clock Mode Register -------- */ 111 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 112 #if COMPONENT_TYPEDEF_STYLE == 'N' 113 typedef union { 114 struct { 115 uint32_t CKS:2; /**< bit: 0..1 Receive Clock Selection */ 116 uint32_t CKO:3; /**< bit: 2..4 Receive Clock Output Mode Selection */ 117 uint32_t CKI:1; /**< bit: 5 Receive Clock Inversion */ 118 uint32_t CKG:2; /**< bit: 6..7 Receive Clock Gating Selection */ 119 uint32_t START:4; /**< bit: 8..11 Receive Start Selection */ 120 uint32_t STOP:1; /**< bit: 12 Receive Stop Selection */ 121 uint32_t :3; /**< bit: 13..15 Reserved */ 122 uint32_t STTDLY:8; /**< bit: 16..23 Receive Start Delay */ 123 uint32_t PERIOD:8; /**< bit: 24..31 Receive Period Divider Selection */ 124 } bit; /**< Structure used for bit access */ 125 uint32_t reg; /**< Type used for register access */ 126 } SSC_RCMR_Type; 127 #endif 128 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 129 130 #define SSC_RCMR_OFFSET (0x10) /**< (SSC_RCMR) Receive Clock Mode Register Offset */ 131 132 #define SSC_RCMR_CKS_Pos 0 /**< (SSC_RCMR) Receive Clock Selection Position */ 133 #define SSC_RCMR_CKS_Msk (_U_(0x3) << SSC_RCMR_CKS_Pos) /**< (SSC_RCMR) Receive Clock Selection Mask */ 134 #define SSC_RCMR_CKS(value) (SSC_RCMR_CKS_Msk & ((value) << SSC_RCMR_CKS_Pos)) 135 #define SSC_RCMR_CKS_MCK_Val _U_(0x0) /**< (SSC_RCMR) Divided Clock */ 136 #define SSC_RCMR_CKS_TK_Val _U_(0x1) /**< (SSC_RCMR) TK Clock signal */ 137 #define SSC_RCMR_CKS_RK_Val _U_(0x2) /**< (SSC_RCMR) RK pin */ 138 #define SSC_RCMR_CKS_MCK (SSC_RCMR_CKS_MCK_Val << SSC_RCMR_CKS_Pos) /**< (SSC_RCMR) Divided Clock Position */ 139 #define SSC_RCMR_CKS_TK (SSC_RCMR_CKS_TK_Val << SSC_RCMR_CKS_Pos) /**< (SSC_RCMR) TK Clock signal Position */ 140 #define SSC_RCMR_CKS_RK (SSC_RCMR_CKS_RK_Val << SSC_RCMR_CKS_Pos) /**< (SSC_RCMR) RK pin Position */ 141 #define SSC_RCMR_CKO_Pos 2 /**< (SSC_RCMR) Receive Clock Output Mode Selection Position */ 142 #define SSC_RCMR_CKO_Msk (_U_(0x7) << SSC_RCMR_CKO_Pos) /**< (SSC_RCMR) Receive Clock Output Mode Selection Mask */ 143 #define SSC_RCMR_CKO(value) (SSC_RCMR_CKO_Msk & ((value) << SSC_RCMR_CKO_Pos)) 144 #define SSC_RCMR_CKO_NONE_Val _U_(0x0) /**< (SSC_RCMR) None, RK pin is an input */ 145 #define SSC_RCMR_CKO_CONTINUOUS_Val _U_(0x1) /**< (SSC_RCMR) Continuous Receive Clock, RK pin is an output */ 146 #define SSC_RCMR_CKO_TRANSFER_Val _U_(0x2) /**< (SSC_RCMR) Receive Clock only during data transfers, RK pin is an output */ 147 #define SSC_RCMR_CKO_NONE (SSC_RCMR_CKO_NONE_Val << SSC_RCMR_CKO_Pos) /**< (SSC_RCMR) None, RK pin is an input Position */ 148 #define SSC_RCMR_CKO_CONTINUOUS (SSC_RCMR_CKO_CONTINUOUS_Val << SSC_RCMR_CKO_Pos) /**< (SSC_RCMR) Continuous Receive Clock, RK pin is an output Position */ 149 #define SSC_RCMR_CKO_TRANSFER (SSC_RCMR_CKO_TRANSFER_Val << SSC_RCMR_CKO_Pos) /**< (SSC_RCMR) Receive Clock only during data transfers, RK pin is an output Position */ 150 #define SSC_RCMR_CKI_Pos 5 /**< (SSC_RCMR) Receive Clock Inversion Position */ 151 #define SSC_RCMR_CKI_Msk (_U_(0x1) << SSC_RCMR_CKI_Pos) /**< (SSC_RCMR) Receive Clock Inversion Mask */ 152 #define SSC_RCMR_CKI SSC_RCMR_CKI_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_RCMR_CKI_Msk instead */ 153 #define SSC_RCMR_CKG_Pos 6 /**< (SSC_RCMR) Receive Clock Gating Selection Position */ 154 #define SSC_RCMR_CKG_Msk (_U_(0x3) << SSC_RCMR_CKG_Pos) /**< (SSC_RCMR) Receive Clock Gating Selection Mask */ 155 #define SSC_RCMR_CKG(value) (SSC_RCMR_CKG_Msk & ((value) << SSC_RCMR_CKG_Pos)) 156 #define SSC_RCMR_CKG_CONTINUOUS_Val _U_(0x0) /**< (SSC_RCMR) None */ 157 #define SSC_RCMR_CKG_EN_RF_LOW_Val _U_(0x1) /**< (SSC_RCMR) Receive Clock enabled only if RF Low */ 158 #define SSC_RCMR_CKG_EN_RF_HIGH_Val _U_(0x2) /**< (SSC_RCMR) Receive Clock enabled only if RF High */ 159 #define SSC_RCMR_CKG_CONTINUOUS (SSC_RCMR_CKG_CONTINUOUS_Val << SSC_RCMR_CKG_Pos) /**< (SSC_RCMR) None Position */ 160 #define SSC_RCMR_CKG_EN_RF_LOW (SSC_RCMR_CKG_EN_RF_LOW_Val << SSC_RCMR_CKG_Pos) /**< (SSC_RCMR) Receive Clock enabled only if RF Low Position */ 161 #define SSC_RCMR_CKG_EN_RF_HIGH (SSC_RCMR_CKG_EN_RF_HIGH_Val << SSC_RCMR_CKG_Pos) /**< (SSC_RCMR) Receive Clock enabled only if RF High Position */ 162 #define SSC_RCMR_START_Pos 8 /**< (SSC_RCMR) Receive Start Selection Position */ 163 #define SSC_RCMR_START_Msk (_U_(0xF) << SSC_RCMR_START_Pos) /**< (SSC_RCMR) Receive Start Selection Mask */ 164 #define SSC_RCMR_START(value) (SSC_RCMR_START_Msk & ((value) << SSC_RCMR_START_Pos)) 165 #define SSC_RCMR_START_CONTINUOUS_Val _U_(0x0) /**< (SSC_RCMR) Continuous, as soon as the receiver is enabled, and immediately after the end of transfer of the previous data. */ 166 #define SSC_RCMR_START_TRANSMIT_Val _U_(0x1) /**< (SSC_RCMR) Transmit start */ 167 #define SSC_RCMR_START_RF_LOW_Val _U_(0x2) /**< (SSC_RCMR) Detection of a low level on RF signal */ 168 #define SSC_RCMR_START_RF_HIGH_Val _U_(0x3) /**< (SSC_RCMR) Detection of a high level on RF signal */ 169 #define SSC_RCMR_START_RF_FALLING_Val _U_(0x4) /**< (SSC_RCMR) Detection of a falling edge on RF signal */ 170 #define SSC_RCMR_START_RF_RISING_Val _U_(0x5) /**< (SSC_RCMR) Detection of a rising edge on RF signal */ 171 #define SSC_RCMR_START_RF_LEVEL_Val _U_(0x6) /**< (SSC_RCMR) Detection of any level change on RF signal */ 172 #define SSC_RCMR_START_RF_EDGE_Val _U_(0x7) /**< (SSC_RCMR) Detection of any edge on RF signal */ 173 #define SSC_RCMR_START_CMP_0_Val _U_(0x8) /**< (SSC_RCMR) Compare 0 */ 174 #define SSC_RCMR_START_CONTINUOUS (SSC_RCMR_START_CONTINUOUS_Val << SSC_RCMR_START_Pos) /**< (SSC_RCMR) Continuous, as soon as the receiver is enabled, and immediately after the end of transfer of the previous data. Position */ 175 #define SSC_RCMR_START_TRANSMIT (SSC_RCMR_START_TRANSMIT_Val << SSC_RCMR_START_Pos) /**< (SSC_RCMR) Transmit start Position */ 176 #define SSC_RCMR_START_RF_LOW (SSC_RCMR_START_RF_LOW_Val << SSC_RCMR_START_Pos) /**< (SSC_RCMR) Detection of a low level on RF signal Position */ 177 #define SSC_RCMR_START_RF_HIGH (SSC_RCMR_START_RF_HIGH_Val << SSC_RCMR_START_Pos) /**< (SSC_RCMR) Detection of a high level on RF signal Position */ 178 #define SSC_RCMR_START_RF_FALLING (SSC_RCMR_START_RF_FALLING_Val << SSC_RCMR_START_Pos) /**< (SSC_RCMR) Detection of a falling edge on RF signal Position */ 179 #define SSC_RCMR_START_RF_RISING (SSC_RCMR_START_RF_RISING_Val << SSC_RCMR_START_Pos) /**< (SSC_RCMR) Detection of a rising edge on RF signal Position */ 180 #define SSC_RCMR_START_RF_LEVEL (SSC_RCMR_START_RF_LEVEL_Val << SSC_RCMR_START_Pos) /**< (SSC_RCMR) Detection of any level change on RF signal Position */ 181 #define SSC_RCMR_START_RF_EDGE (SSC_RCMR_START_RF_EDGE_Val << SSC_RCMR_START_Pos) /**< (SSC_RCMR) Detection of any edge on RF signal Position */ 182 #define SSC_RCMR_START_CMP_0 (SSC_RCMR_START_CMP_0_Val << SSC_RCMR_START_Pos) /**< (SSC_RCMR) Compare 0 Position */ 183 #define SSC_RCMR_STOP_Pos 12 /**< (SSC_RCMR) Receive Stop Selection Position */ 184 #define SSC_RCMR_STOP_Msk (_U_(0x1) << SSC_RCMR_STOP_Pos) /**< (SSC_RCMR) Receive Stop Selection Mask */ 185 #define SSC_RCMR_STOP SSC_RCMR_STOP_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_RCMR_STOP_Msk instead */ 186 #define SSC_RCMR_STTDLY_Pos 16 /**< (SSC_RCMR) Receive Start Delay Position */ 187 #define SSC_RCMR_STTDLY_Msk (_U_(0xFF) << SSC_RCMR_STTDLY_Pos) /**< (SSC_RCMR) Receive Start Delay Mask */ 188 #define SSC_RCMR_STTDLY(value) (SSC_RCMR_STTDLY_Msk & ((value) << SSC_RCMR_STTDLY_Pos)) 189 #define SSC_RCMR_PERIOD_Pos 24 /**< (SSC_RCMR) Receive Period Divider Selection Position */ 190 #define SSC_RCMR_PERIOD_Msk (_U_(0xFF) << SSC_RCMR_PERIOD_Pos) /**< (SSC_RCMR) Receive Period Divider Selection Mask */ 191 #define SSC_RCMR_PERIOD(value) (SSC_RCMR_PERIOD_Msk & ((value) << SSC_RCMR_PERIOD_Pos)) 192 #define SSC_RCMR_MASK _U_(0xFFFF1FFF) /**< \deprecated (SSC_RCMR) Register MASK (Use SSC_RCMR_Msk instead) */ 193 #define SSC_RCMR_Msk _U_(0xFFFF1FFF) /**< (SSC_RCMR) Register Mask */ 194 195 196 /* -------- SSC_RFMR : (SSC Offset: 0x14) (R/W 32) Receive Frame Mode Register -------- */ 197 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 198 #if COMPONENT_TYPEDEF_STYLE == 'N' 199 typedef union { 200 struct { 201 uint32_t DATLEN:5; /**< bit: 0..4 Data Length */ 202 uint32_t LOOP:1; /**< bit: 5 Loop Mode */ 203 uint32_t :1; /**< bit: 6 Reserved */ 204 uint32_t MSBF:1; /**< bit: 7 Most Significant Bit First */ 205 uint32_t DATNB:4; /**< bit: 8..11 Data Number per Frame */ 206 uint32_t :4; /**< bit: 12..15 Reserved */ 207 uint32_t FSLEN:4; /**< bit: 16..19 Receive Frame Sync Length */ 208 uint32_t FSOS:3; /**< bit: 20..22 Receive Frame Sync Output Selection */ 209 uint32_t :1; /**< bit: 23 Reserved */ 210 uint32_t FSEDGE:1; /**< bit: 24 Frame Sync Edge Detection */ 211 uint32_t :3; /**< bit: 25..27 Reserved */ 212 uint32_t FSLEN_EXT:4; /**< bit: 28..31 FSLEN Field Extension */ 213 } bit; /**< Structure used for bit access */ 214 uint32_t reg; /**< Type used for register access */ 215 } SSC_RFMR_Type; 216 #endif 217 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 218 219 #define SSC_RFMR_OFFSET (0x14) /**< (SSC_RFMR) Receive Frame Mode Register Offset */ 220 221 #define SSC_RFMR_DATLEN_Pos 0 /**< (SSC_RFMR) Data Length Position */ 222 #define SSC_RFMR_DATLEN_Msk (_U_(0x1F) << SSC_RFMR_DATLEN_Pos) /**< (SSC_RFMR) Data Length Mask */ 223 #define SSC_RFMR_DATLEN(value) (SSC_RFMR_DATLEN_Msk & ((value) << SSC_RFMR_DATLEN_Pos)) 224 #define SSC_RFMR_LOOP_Pos 5 /**< (SSC_RFMR) Loop Mode Position */ 225 #define SSC_RFMR_LOOP_Msk (_U_(0x1) << SSC_RFMR_LOOP_Pos) /**< (SSC_RFMR) Loop Mode Mask */ 226 #define SSC_RFMR_LOOP SSC_RFMR_LOOP_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_RFMR_LOOP_Msk instead */ 227 #define SSC_RFMR_MSBF_Pos 7 /**< (SSC_RFMR) Most Significant Bit First Position */ 228 #define SSC_RFMR_MSBF_Msk (_U_(0x1) << SSC_RFMR_MSBF_Pos) /**< (SSC_RFMR) Most Significant Bit First Mask */ 229 #define SSC_RFMR_MSBF SSC_RFMR_MSBF_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_RFMR_MSBF_Msk instead */ 230 #define SSC_RFMR_DATNB_Pos 8 /**< (SSC_RFMR) Data Number per Frame Position */ 231 #define SSC_RFMR_DATNB_Msk (_U_(0xF) << SSC_RFMR_DATNB_Pos) /**< (SSC_RFMR) Data Number per Frame Mask */ 232 #define SSC_RFMR_DATNB(value) (SSC_RFMR_DATNB_Msk & ((value) << SSC_RFMR_DATNB_Pos)) 233 #define SSC_RFMR_FSLEN_Pos 16 /**< (SSC_RFMR) Receive Frame Sync Length Position */ 234 #define SSC_RFMR_FSLEN_Msk (_U_(0xF) << SSC_RFMR_FSLEN_Pos) /**< (SSC_RFMR) Receive Frame Sync Length Mask */ 235 #define SSC_RFMR_FSLEN(value) (SSC_RFMR_FSLEN_Msk & ((value) << SSC_RFMR_FSLEN_Pos)) 236 #define SSC_RFMR_FSOS_Pos 20 /**< (SSC_RFMR) Receive Frame Sync Output Selection Position */ 237 #define SSC_RFMR_FSOS_Msk (_U_(0x7) << SSC_RFMR_FSOS_Pos) /**< (SSC_RFMR) Receive Frame Sync Output Selection Mask */ 238 #define SSC_RFMR_FSOS(value) (SSC_RFMR_FSOS_Msk & ((value) << SSC_RFMR_FSOS_Pos)) 239 #define SSC_RFMR_FSOS_NONE_Val _U_(0x0) /**< (SSC_RFMR) None, RF pin is an input */ 240 #define SSC_RFMR_FSOS_NEGATIVE_Val _U_(0x1) /**< (SSC_RFMR) Negative Pulse, RF pin is an output */ 241 #define SSC_RFMR_FSOS_POSITIVE_Val _U_(0x2) /**< (SSC_RFMR) Positive Pulse, RF pin is an output */ 242 #define SSC_RFMR_FSOS_LOW_Val _U_(0x3) /**< (SSC_RFMR) Driven Low during data transfer, RF pin is an output */ 243 #define SSC_RFMR_FSOS_HIGH_Val _U_(0x4) /**< (SSC_RFMR) Driven High during data transfer, RF pin is an output */ 244 #define SSC_RFMR_FSOS_TOGGLING_Val _U_(0x5) /**< (SSC_RFMR) Toggling at each start of data transfer, RF pin is an output */ 245 #define SSC_RFMR_FSOS_NONE (SSC_RFMR_FSOS_NONE_Val << SSC_RFMR_FSOS_Pos) /**< (SSC_RFMR) None, RF pin is an input Position */ 246 #define SSC_RFMR_FSOS_NEGATIVE (SSC_RFMR_FSOS_NEGATIVE_Val << SSC_RFMR_FSOS_Pos) /**< (SSC_RFMR) Negative Pulse, RF pin is an output Position */ 247 #define SSC_RFMR_FSOS_POSITIVE (SSC_RFMR_FSOS_POSITIVE_Val << SSC_RFMR_FSOS_Pos) /**< (SSC_RFMR) Positive Pulse, RF pin is an output Position */ 248 #define SSC_RFMR_FSOS_LOW (SSC_RFMR_FSOS_LOW_Val << SSC_RFMR_FSOS_Pos) /**< (SSC_RFMR) Driven Low during data transfer, RF pin is an output Position */ 249 #define SSC_RFMR_FSOS_HIGH (SSC_RFMR_FSOS_HIGH_Val << SSC_RFMR_FSOS_Pos) /**< (SSC_RFMR) Driven High during data transfer, RF pin is an output Position */ 250 #define SSC_RFMR_FSOS_TOGGLING (SSC_RFMR_FSOS_TOGGLING_Val << SSC_RFMR_FSOS_Pos) /**< (SSC_RFMR) Toggling at each start of data transfer, RF pin is an output Position */ 251 #define SSC_RFMR_FSEDGE_Pos 24 /**< (SSC_RFMR) Frame Sync Edge Detection Position */ 252 #define SSC_RFMR_FSEDGE_Msk (_U_(0x1) << SSC_RFMR_FSEDGE_Pos) /**< (SSC_RFMR) Frame Sync Edge Detection Mask */ 253 #define SSC_RFMR_FSEDGE SSC_RFMR_FSEDGE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_RFMR_FSEDGE_Msk instead */ 254 #define SSC_RFMR_FSEDGE_POSITIVE_Val _U_(0x0) /**< (SSC_RFMR) Positive Edge Detection */ 255 #define SSC_RFMR_FSEDGE_NEGATIVE_Val _U_(0x1) /**< (SSC_RFMR) Negative Edge Detection */ 256 #define SSC_RFMR_FSEDGE_POSITIVE (SSC_RFMR_FSEDGE_POSITIVE_Val << SSC_RFMR_FSEDGE_Pos) /**< (SSC_RFMR) Positive Edge Detection Position */ 257 #define SSC_RFMR_FSEDGE_NEGATIVE (SSC_RFMR_FSEDGE_NEGATIVE_Val << SSC_RFMR_FSEDGE_Pos) /**< (SSC_RFMR) Negative Edge Detection Position */ 258 #define SSC_RFMR_FSLEN_EXT_Pos 28 /**< (SSC_RFMR) FSLEN Field Extension Position */ 259 #define SSC_RFMR_FSLEN_EXT_Msk (_U_(0xF) << SSC_RFMR_FSLEN_EXT_Pos) /**< (SSC_RFMR) FSLEN Field Extension Mask */ 260 #define SSC_RFMR_FSLEN_EXT(value) (SSC_RFMR_FSLEN_EXT_Msk & ((value) << SSC_RFMR_FSLEN_EXT_Pos)) 261 #define SSC_RFMR_MASK _U_(0xF17F0FBF) /**< \deprecated (SSC_RFMR) Register MASK (Use SSC_RFMR_Msk instead) */ 262 #define SSC_RFMR_Msk _U_(0xF17F0FBF) /**< (SSC_RFMR) Register Mask */ 263 264 265 /* -------- SSC_TCMR : (SSC Offset: 0x18) (R/W 32) Transmit Clock Mode Register -------- */ 266 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 267 #if COMPONENT_TYPEDEF_STYLE == 'N' 268 typedef union { 269 struct { 270 uint32_t CKS:2; /**< bit: 0..1 Transmit Clock Selection */ 271 uint32_t CKO:3; /**< bit: 2..4 Transmit Clock Output Mode Selection */ 272 uint32_t CKI:1; /**< bit: 5 Transmit Clock Inversion */ 273 uint32_t CKG:2; /**< bit: 6..7 Transmit Clock Gating Selection */ 274 uint32_t START:4; /**< bit: 8..11 Transmit Start Selection */ 275 uint32_t :4; /**< bit: 12..15 Reserved */ 276 uint32_t STTDLY:8; /**< bit: 16..23 Transmit Start Delay */ 277 uint32_t PERIOD:8; /**< bit: 24..31 Transmit Period Divider Selection */ 278 } bit; /**< Structure used for bit access */ 279 uint32_t reg; /**< Type used for register access */ 280 } SSC_TCMR_Type; 281 #endif 282 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 283 284 #define SSC_TCMR_OFFSET (0x18) /**< (SSC_TCMR) Transmit Clock Mode Register Offset */ 285 286 #define SSC_TCMR_CKS_Pos 0 /**< (SSC_TCMR) Transmit Clock Selection Position */ 287 #define SSC_TCMR_CKS_Msk (_U_(0x3) << SSC_TCMR_CKS_Pos) /**< (SSC_TCMR) Transmit Clock Selection Mask */ 288 #define SSC_TCMR_CKS(value) (SSC_TCMR_CKS_Msk & ((value) << SSC_TCMR_CKS_Pos)) 289 #define SSC_TCMR_CKS_MCK_Val _U_(0x0) /**< (SSC_TCMR) Divided Clock */ 290 #define SSC_TCMR_CKS_RK_Val _U_(0x1) /**< (SSC_TCMR) RK Clock signal */ 291 #define SSC_TCMR_CKS_TK_Val _U_(0x2) /**< (SSC_TCMR) TK pin */ 292 #define SSC_TCMR_CKS_MCK (SSC_TCMR_CKS_MCK_Val << SSC_TCMR_CKS_Pos) /**< (SSC_TCMR) Divided Clock Position */ 293 #define SSC_TCMR_CKS_RK (SSC_TCMR_CKS_RK_Val << SSC_TCMR_CKS_Pos) /**< (SSC_TCMR) RK Clock signal Position */ 294 #define SSC_TCMR_CKS_TK (SSC_TCMR_CKS_TK_Val << SSC_TCMR_CKS_Pos) /**< (SSC_TCMR) TK pin Position */ 295 #define SSC_TCMR_CKO_Pos 2 /**< (SSC_TCMR) Transmit Clock Output Mode Selection Position */ 296 #define SSC_TCMR_CKO_Msk (_U_(0x7) << SSC_TCMR_CKO_Pos) /**< (SSC_TCMR) Transmit Clock Output Mode Selection Mask */ 297 #define SSC_TCMR_CKO(value) (SSC_TCMR_CKO_Msk & ((value) << SSC_TCMR_CKO_Pos)) 298 #define SSC_TCMR_CKO_NONE_Val _U_(0x0) /**< (SSC_TCMR) None, TK pin is an input */ 299 #define SSC_TCMR_CKO_CONTINUOUS_Val _U_(0x1) /**< (SSC_TCMR) Continuous Transmit Clock, TK pin is an output */ 300 #define SSC_TCMR_CKO_TRANSFER_Val _U_(0x2) /**< (SSC_TCMR) Transmit Clock only during data transfers, TK pin is an output */ 301 #define SSC_TCMR_CKO_NONE (SSC_TCMR_CKO_NONE_Val << SSC_TCMR_CKO_Pos) /**< (SSC_TCMR) None, TK pin is an input Position */ 302 #define SSC_TCMR_CKO_CONTINUOUS (SSC_TCMR_CKO_CONTINUOUS_Val << SSC_TCMR_CKO_Pos) /**< (SSC_TCMR) Continuous Transmit Clock, TK pin is an output Position */ 303 #define SSC_TCMR_CKO_TRANSFER (SSC_TCMR_CKO_TRANSFER_Val << SSC_TCMR_CKO_Pos) /**< (SSC_TCMR) Transmit Clock only during data transfers, TK pin is an output Position */ 304 #define SSC_TCMR_CKI_Pos 5 /**< (SSC_TCMR) Transmit Clock Inversion Position */ 305 #define SSC_TCMR_CKI_Msk (_U_(0x1) << SSC_TCMR_CKI_Pos) /**< (SSC_TCMR) Transmit Clock Inversion Mask */ 306 #define SSC_TCMR_CKI SSC_TCMR_CKI_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_TCMR_CKI_Msk instead */ 307 #define SSC_TCMR_CKG_Pos 6 /**< (SSC_TCMR) Transmit Clock Gating Selection Position */ 308 #define SSC_TCMR_CKG_Msk (_U_(0x3) << SSC_TCMR_CKG_Pos) /**< (SSC_TCMR) Transmit Clock Gating Selection Mask */ 309 #define SSC_TCMR_CKG(value) (SSC_TCMR_CKG_Msk & ((value) << SSC_TCMR_CKG_Pos)) 310 #define SSC_TCMR_CKG_CONTINUOUS_Val _U_(0x0) /**< (SSC_TCMR) None */ 311 #define SSC_TCMR_CKG_EN_TF_LOW_Val _U_(0x1) /**< (SSC_TCMR) Transmit Clock enabled only if TF Low */ 312 #define SSC_TCMR_CKG_EN_TF_HIGH_Val _U_(0x2) /**< (SSC_TCMR) Transmit Clock enabled only if TF High */ 313 #define SSC_TCMR_CKG_CONTINUOUS (SSC_TCMR_CKG_CONTINUOUS_Val << SSC_TCMR_CKG_Pos) /**< (SSC_TCMR) None Position */ 314 #define SSC_TCMR_CKG_EN_TF_LOW (SSC_TCMR_CKG_EN_TF_LOW_Val << SSC_TCMR_CKG_Pos) /**< (SSC_TCMR) Transmit Clock enabled only if TF Low Position */ 315 #define SSC_TCMR_CKG_EN_TF_HIGH (SSC_TCMR_CKG_EN_TF_HIGH_Val << SSC_TCMR_CKG_Pos) /**< (SSC_TCMR) Transmit Clock enabled only if TF High Position */ 316 #define SSC_TCMR_START_Pos 8 /**< (SSC_TCMR) Transmit Start Selection Position */ 317 #define SSC_TCMR_START_Msk (_U_(0xF) << SSC_TCMR_START_Pos) /**< (SSC_TCMR) Transmit Start Selection Mask */ 318 #define SSC_TCMR_START(value) (SSC_TCMR_START_Msk & ((value) << SSC_TCMR_START_Pos)) 319 #define SSC_TCMR_START_CONTINUOUS_Val _U_(0x0) /**< (SSC_TCMR) Continuous, as soon as a word is written in the SSC_THR (if Transmit is enabled), and immediately after the end of transfer of the previous data */ 320 #define SSC_TCMR_START_RECEIVE_Val _U_(0x1) /**< (SSC_TCMR) Receive start */ 321 #define SSC_TCMR_START_TF_LOW_Val _U_(0x2) /**< (SSC_TCMR) Detection of a low level on TF signal */ 322 #define SSC_TCMR_START_TF_HIGH_Val _U_(0x3) /**< (SSC_TCMR) Detection of a high level on TF signal */ 323 #define SSC_TCMR_START_TF_FALLING_Val _U_(0x4) /**< (SSC_TCMR) Detection of a falling edge on TF signal */ 324 #define SSC_TCMR_START_TF_RISING_Val _U_(0x5) /**< (SSC_TCMR) Detection of a rising edge on TF signal */ 325 #define SSC_TCMR_START_TF_LEVEL_Val _U_(0x6) /**< (SSC_TCMR) Detection of any level change on TF signal */ 326 #define SSC_TCMR_START_TF_EDGE_Val _U_(0x7) /**< (SSC_TCMR) Detection of any edge on TF signal */ 327 #define SSC_TCMR_START_CONTINUOUS (SSC_TCMR_START_CONTINUOUS_Val << SSC_TCMR_START_Pos) /**< (SSC_TCMR) Continuous, as soon as a word is written in the SSC_THR (if Transmit is enabled), and immediately after the end of transfer of the previous data Position */ 328 #define SSC_TCMR_START_RECEIVE (SSC_TCMR_START_RECEIVE_Val << SSC_TCMR_START_Pos) /**< (SSC_TCMR) Receive start Position */ 329 #define SSC_TCMR_START_TF_LOW (SSC_TCMR_START_TF_LOW_Val << SSC_TCMR_START_Pos) /**< (SSC_TCMR) Detection of a low level on TF signal Position */ 330 #define SSC_TCMR_START_TF_HIGH (SSC_TCMR_START_TF_HIGH_Val << SSC_TCMR_START_Pos) /**< (SSC_TCMR) Detection of a high level on TF signal Position */ 331 #define SSC_TCMR_START_TF_FALLING (SSC_TCMR_START_TF_FALLING_Val << SSC_TCMR_START_Pos) /**< (SSC_TCMR) Detection of a falling edge on TF signal Position */ 332 #define SSC_TCMR_START_TF_RISING (SSC_TCMR_START_TF_RISING_Val << SSC_TCMR_START_Pos) /**< (SSC_TCMR) Detection of a rising edge on TF signal Position */ 333 #define SSC_TCMR_START_TF_LEVEL (SSC_TCMR_START_TF_LEVEL_Val << SSC_TCMR_START_Pos) /**< (SSC_TCMR) Detection of any level change on TF signal Position */ 334 #define SSC_TCMR_START_TF_EDGE (SSC_TCMR_START_TF_EDGE_Val << SSC_TCMR_START_Pos) /**< (SSC_TCMR) Detection of any edge on TF signal Position */ 335 #define SSC_TCMR_STTDLY_Pos 16 /**< (SSC_TCMR) Transmit Start Delay Position */ 336 #define SSC_TCMR_STTDLY_Msk (_U_(0xFF) << SSC_TCMR_STTDLY_Pos) /**< (SSC_TCMR) Transmit Start Delay Mask */ 337 #define SSC_TCMR_STTDLY(value) (SSC_TCMR_STTDLY_Msk & ((value) << SSC_TCMR_STTDLY_Pos)) 338 #define SSC_TCMR_PERIOD_Pos 24 /**< (SSC_TCMR) Transmit Period Divider Selection Position */ 339 #define SSC_TCMR_PERIOD_Msk (_U_(0xFF) << SSC_TCMR_PERIOD_Pos) /**< (SSC_TCMR) Transmit Period Divider Selection Mask */ 340 #define SSC_TCMR_PERIOD(value) (SSC_TCMR_PERIOD_Msk & ((value) << SSC_TCMR_PERIOD_Pos)) 341 #define SSC_TCMR_MASK _U_(0xFFFF0FFF) /**< \deprecated (SSC_TCMR) Register MASK (Use SSC_TCMR_Msk instead) */ 342 #define SSC_TCMR_Msk _U_(0xFFFF0FFF) /**< (SSC_TCMR) Register Mask */ 343 344 345 /* -------- SSC_TFMR : (SSC Offset: 0x1c) (R/W 32) Transmit Frame Mode Register -------- */ 346 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 347 #if COMPONENT_TYPEDEF_STYLE == 'N' 348 typedef union { 349 struct { 350 uint32_t DATLEN:5; /**< bit: 0..4 Data Length */ 351 uint32_t DATDEF:1; /**< bit: 5 Data Default Value */ 352 uint32_t :1; /**< bit: 6 Reserved */ 353 uint32_t MSBF:1; /**< bit: 7 Most Significant Bit First */ 354 uint32_t DATNB:4; /**< bit: 8..11 Data Number per Frame */ 355 uint32_t :4; /**< bit: 12..15 Reserved */ 356 uint32_t FSLEN:4; /**< bit: 16..19 Transmit Frame Sync Length */ 357 uint32_t FSOS:3; /**< bit: 20..22 Transmit Frame Sync Output Selection */ 358 uint32_t FSDEN:1; /**< bit: 23 Frame Sync Data Enable */ 359 uint32_t FSEDGE:1; /**< bit: 24 Frame Sync Edge Detection */ 360 uint32_t :3; /**< bit: 25..27 Reserved */ 361 uint32_t FSLEN_EXT:4; /**< bit: 28..31 FSLEN Field Extension */ 362 } bit; /**< Structure used for bit access */ 363 uint32_t reg; /**< Type used for register access */ 364 } SSC_TFMR_Type; 365 #endif 366 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 367 368 #define SSC_TFMR_OFFSET (0x1C) /**< (SSC_TFMR) Transmit Frame Mode Register Offset */ 369 370 #define SSC_TFMR_DATLEN_Pos 0 /**< (SSC_TFMR) Data Length Position */ 371 #define SSC_TFMR_DATLEN_Msk (_U_(0x1F) << SSC_TFMR_DATLEN_Pos) /**< (SSC_TFMR) Data Length Mask */ 372 #define SSC_TFMR_DATLEN(value) (SSC_TFMR_DATLEN_Msk & ((value) << SSC_TFMR_DATLEN_Pos)) 373 #define SSC_TFMR_DATDEF_Pos 5 /**< (SSC_TFMR) Data Default Value Position */ 374 #define SSC_TFMR_DATDEF_Msk (_U_(0x1) << SSC_TFMR_DATDEF_Pos) /**< (SSC_TFMR) Data Default Value Mask */ 375 #define SSC_TFMR_DATDEF SSC_TFMR_DATDEF_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_TFMR_DATDEF_Msk instead */ 376 #define SSC_TFMR_MSBF_Pos 7 /**< (SSC_TFMR) Most Significant Bit First Position */ 377 #define SSC_TFMR_MSBF_Msk (_U_(0x1) << SSC_TFMR_MSBF_Pos) /**< (SSC_TFMR) Most Significant Bit First Mask */ 378 #define SSC_TFMR_MSBF SSC_TFMR_MSBF_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_TFMR_MSBF_Msk instead */ 379 #define SSC_TFMR_DATNB_Pos 8 /**< (SSC_TFMR) Data Number per Frame Position */ 380 #define SSC_TFMR_DATNB_Msk (_U_(0xF) << SSC_TFMR_DATNB_Pos) /**< (SSC_TFMR) Data Number per Frame Mask */ 381 #define SSC_TFMR_DATNB(value) (SSC_TFMR_DATNB_Msk & ((value) << SSC_TFMR_DATNB_Pos)) 382 #define SSC_TFMR_FSLEN_Pos 16 /**< (SSC_TFMR) Transmit Frame Sync Length Position */ 383 #define SSC_TFMR_FSLEN_Msk (_U_(0xF) << SSC_TFMR_FSLEN_Pos) /**< (SSC_TFMR) Transmit Frame Sync Length Mask */ 384 #define SSC_TFMR_FSLEN(value) (SSC_TFMR_FSLEN_Msk & ((value) << SSC_TFMR_FSLEN_Pos)) 385 #define SSC_TFMR_FSOS_Pos 20 /**< (SSC_TFMR) Transmit Frame Sync Output Selection Position */ 386 #define SSC_TFMR_FSOS_Msk (_U_(0x7) << SSC_TFMR_FSOS_Pos) /**< (SSC_TFMR) Transmit Frame Sync Output Selection Mask */ 387 #define SSC_TFMR_FSOS(value) (SSC_TFMR_FSOS_Msk & ((value) << SSC_TFMR_FSOS_Pos)) 388 #define SSC_TFMR_FSOS_NONE_Val _U_(0x0) /**< (SSC_TFMR) None, TF pin is an input */ 389 #define SSC_TFMR_FSOS_NEGATIVE_Val _U_(0x1) /**< (SSC_TFMR) Negative Pulse, TF pin is an output */ 390 #define SSC_TFMR_FSOS_POSITIVE_Val _U_(0x2) /**< (SSC_TFMR) Positive Pulse, TF pin is an output */ 391 #define SSC_TFMR_FSOS_LOW_Val _U_(0x3) /**< (SSC_TFMR) Driven Low during data transfer */ 392 #define SSC_TFMR_FSOS_HIGH_Val _U_(0x4) /**< (SSC_TFMR) Driven High during data transfer */ 393 #define SSC_TFMR_FSOS_TOGGLING_Val _U_(0x5) /**< (SSC_TFMR) Toggling at each start of data transfer */ 394 #define SSC_TFMR_FSOS_NONE (SSC_TFMR_FSOS_NONE_Val << SSC_TFMR_FSOS_Pos) /**< (SSC_TFMR) None, TF pin is an input Position */ 395 #define SSC_TFMR_FSOS_NEGATIVE (SSC_TFMR_FSOS_NEGATIVE_Val << SSC_TFMR_FSOS_Pos) /**< (SSC_TFMR) Negative Pulse, TF pin is an output Position */ 396 #define SSC_TFMR_FSOS_POSITIVE (SSC_TFMR_FSOS_POSITIVE_Val << SSC_TFMR_FSOS_Pos) /**< (SSC_TFMR) Positive Pulse, TF pin is an output Position */ 397 #define SSC_TFMR_FSOS_LOW (SSC_TFMR_FSOS_LOW_Val << SSC_TFMR_FSOS_Pos) /**< (SSC_TFMR) Driven Low during data transfer Position */ 398 #define SSC_TFMR_FSOS_HIGH (SSC_TFMR_FSOS_HIGH_Val << SSC_TFMR_FSOS_Pos) /**< (SSC_TFMR) Driven High during data transfer Position */ 399 #define SSC_TFMR_FSOS_TOGGLING (SSC_TFMR_FSOS_TOGGLING_Val << SSC_TFMR_FSOS_Pos) /**< (SSC_TFMR) Toggling at each start of data transfer Position */ 400 #define SSC_TFMR_FSDEN_Pos 23 /**< (SSC_TFMR) Frame Sync Data Enable Position */ 401 #define SSC_TFMR_FSDEN_Msk (_U_(0x1) << SSC_TFMR_FSDEN_Pos) /**< (SSC_TFMR) Frame Sync Data Enable Mask */ 402 #define SSC_TFMR_FSDEN SSC_TFMR_FSDEN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_TFMR_FSDEN_Msk instead */ 403 #define SSC_TFMR_FSEDGE_Pos 24 /**< (SSC_TFMR) Frame Sync Edge Detection Position */ 404 #define SSC_TFMR_FSEDGE_Msk (_U_(0x1) << SSC_TFMR_FSEDGE_Pos) /**< (SSC_TFMR) Frame Sync Edge Detection Mask */ 405 #define SSC_TFMR_FSEDGE SSC_TFMR_FSEDGE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_TFMR_FSEDGE_Msk instead */ 406 #define SSC_TFMR_FSEDGE_POSITIVE_Val _U_(0x0) /**< (SSC_TFMR) Positive Edge Detection */ 407 #define SSC_TFMR_FSEDGE_NEGATIVE_Val _U_(0x1) /**< (SSC_TFMR) Negative Edge Detection */ 408 #define SSC_TFMR_FSEDGE_POSITIVE (SSC_TFMR_FSEDGE_POSITIVE_Val << SSC_TFMR_FSEDGE_Pos) /**< (SSC_TFMR) Positive Edge Detection Position */ 409 #define SSC_TFMR_FSEDGE_NEGATIVE (SSC_TFMR_FSEDGE_NEGATIVE_Val << SSC_TFMR_FSEDGE_Pos) /**< (SSC_TFMR) Negative Edge Detection Position */ 410 #define SSC_TFMR_FSLEN_EXT_Pos 28 /**< (SSC_TFMR) FSLEN Field Extension Position */ 411 #define SSC_TFMR_FSLEN_EXT_Msk (_U_(0xF) << SSC_TFMR_FSLEN_EXT_Pos) /**< (SSC_TFMR) FSLEN Field Extension Mask */ 412 #define SSC_TFMR_FSLEN_EXT(value) (SSC_TFMR_FSLEN_EXT_Msk & ((value) << SSC_TFMR_FSLEN_EXT_Pos)) 413 #define SSC_TFMR_MASK _U_(0xF1FF0FBF) /**< \deprecated (SSC_TFMR) Register MASK (Use SSC_TFMR_Msk instead) */ 414 #define SSC_TFMR_Msk _U_(0xF1FF0FBF) /**< (SSC_TFMR) Register Mask */ 415 416 417 /* -------- SSC_RHR : (SSC Offset: 0x20) (R/ 32) Receive Holding Register -------- */ 418 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 419 #if COMPONENT_TYPEDEF_STYLE == 'N' 420 typedef union { 421 struct { 422 uint32_t RDAT:32; /**< bit: 0..31 Receive Data */ 423 } bit; /**< Structure used for bit access */ 424 uint32_t reg; /**< Type used for register access */ 425 } SSC_RHR_Type; 426 #endif 427 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 428 429 #define SSC_RHR_OFFSET (0x20) /**< (SSC_RHR) Receive Holding Register Offset */ 430 431 #define SSC_RHR_RDAT_Pos 0 /**< (SSC_RHR) Receive Data Position */ 432 #define SSC_RHR_RDAT_Msk (_U_(0xFFFFFFFF) << SSC_RHR_RDAT_Pos) /**< (SSC_RHR) Receive Data Mask */ 433 #define SSC_RHR_RDAT(value) (SSC_RHR_RDAT_Msk & ((value) << SSC_RHR_RDAT_Pos)) 434 #define SSC_RHR_MASK _U_(0xFFFFFFFF) /**< \deprecated (SSC_RHR) Register MASK (Use SSC_RHR_Msk instead) */ 435 #define SSC_RHR_Msk _U_(0xFFFFFFFF) /**< (SSC_RHR) Register Mask */ 436 437 438 /* -------- SSC_THR : (SSC Offset: 0x24) (/W 32) Transmit Holding Register -------- */ 439 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 440 #if COMPONENT_TYPEDEF_STYLE == 'N' 441 typedef union { 442 struct { 443 uint32_t TDAT:32; /**< bit: 0..31 Transmit Data */ 444 } bit; /**< Structure used for bit access */ 445 uint32_t reg; /**< Type used for register access */ 446 } SSC_THR_Type; 447 #endif 448 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 449 450 #define SSC_THR_OFFSET (0x24) /**< (SSC_THR) Transmit Holding Register Offset */ 451 452 #define SSC_THR_TDAT_Pos 0 /**< (SSC_THR) Transmit Data Position */ 453 #define SSC_THR_TDAT_Msk (_U_(0xFFFFFFFF) << SSC_THR_TDAT_Pos) /**< (SSC_THR) Transmit Data Mask */ 454 #define SSC_THR_TDAT(value) (SSC_THR_TDAT_Msk & ((value) << SSC_THR_TDAT_Pos)) 455 #define SSC_THR_MASK _U_(0xFFFFFFFF) /**< \deprecated (SSC_THR) Register MASK (Use SSC_THR_Msk instead) */ 456 #define SSC_THR_Msk _U_(0xFFFFFFFF) /**< (SSC_THR) Register Mask */ 457 458 459 /* -------- SSC_RSHR : (SSC Offset: 0x30) (R/ 32) Receive Sync. Holding Register -------- */ 460 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 461 #if COMPONENT_TYPEDEF_STYLE == 'N' 462 typedef union { 463 struct { 464 uint32_t RSDAT:16; /**< bit: 0..15 Receive Synchronization Data */ 465 uint32_t :16; /**< bit: 16..31 Reserved */ 466 } bit; /**< Structure used for bit access */ 467 uint32_t reg; /**< Type used for register access */ 468 } SSC_RSHR_Type; 469 #endif 470 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 471 472 #define SSC_RSHR_OFFSET (0x30) /**< (SSC_RSHR) Receive Sync. Holding Register Offset */ 473 474 #define SSC_RSHR_RSDAT_Pos 0 /**< (SSC_RSHR) Receive Synchronization Data Position */ 475 #define SSC_RSHR_RSDAT_Msk (_U_(0xFFFF) << SSC_RSHR_RSDAT_Pos) /**< (SSC_RSHR) Receive Synchronization Data Mask */ 476 #define SSC_RSHR_RSDAT(value) (SSC_RSHR_RSDAT_Msk & ((value) << SSC_RSHR_RSDAT_Pos)) 477 #define SSC_RSHR_MASK _U_(0xFFFF) /**< \deprecated (SSC_RSHR) Register MASK (Use SSC_RSHR_Msk instead) */ 478 #define SSC_RSHR_Msk _U_(0xFFFF) /**< (SSC_RSHR) Register Mask */ 479 480 481 /* -------- SSC_TSHR : (SSC Offset: 0x34) (R/W 32) Transmit Sync. Holding Register -------- */ 482 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 483 #if COMPONENT_TYPEDEF_STYLE == 'N' 484 typedef union { 485 struct { 486 uint32_t TSDAT:16; /**< bit: 0..15 Transmit Synchronization Data */ 487 uint32_t :16; /**< bit: 16..31 Reserved */ 488 } bit; /**< Structure used for bit access */ 489 uint32_t reg; /**< Type used for register access */ 490 } SSC_TSHR_Type; 491 #endif 492 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 493 494 #define SSC_TSHR_OFFSET (0x34) /**< (SSC_TSHR) Transmit Sync. Holding Register Offset */ 495 496 #define SSC_TSHR_TSDAT_Pos 0 /**< (SSC_TSHR) Transmit Synchronization Data Position */ 497 #define SSC_TSHR_TSDAT_Msk (_U_(0xFFFF) << SSC_TSHR_TSDAT_Pos) /**< (SSC_TSHR) Transmit Synchronization Data Mask */ 498 #define SSC_TSHR_TSDAT(value) (SSC_TSHR_TSDAT_Msk & ((value) << SSC_TSHR_TSDAT_Pos)) 499 #define SSC_TSHR_MASK _U_(0xFFFF) /**< \deprecated (SSC_TSHR) Register MASK (Use SSC_TSHR_Msk instead) */ 500 #define SSC_TSHR_Msk _U_(0xFFFF) /**< (SSC_TSHR) Register Mask */ 501 502 503 /* -------- SSC_RC0R : (SSC Offset: 0x38) (R/W 32) Receive Compare 0 Register -------- */ 504 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 505 #if COMPONENT_TYPEDEF_STYLE == 'N' 506 typedef union { 507 struct { 508 uint32_t CP0:16; /**< bit: 0..15 Receive Compare Data 0 */ 509 uint32_t :16; /**< bit: 16..31 Reserved */ 510 } bit; /**< Structure used for bit access */ 511 uint32_t reg; /**< Type used for register access */ 512 } SSC_RC0R_Type; 513 #endif 514 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 515 516 #define SSC_RC0R_OFFSET (0x38) /**< (SSC_RC0R) Receive Compare 0 Register Offset */ 517 518 #define SSC_RC0R_CP0_Pos 0 /**< (SSC_RC0R) Receive Compare Data 0 Position */ 519 #define SSC_RC0R_CP0_Msk (_U_(0xFFFF) << SSC_RC0R_CP0_Pos) /**< (SSC_RC0R) Receive Compare Data 0 Mask */ 520 #define SSC_RC0R_CP0(value) (SSC_RC0R_CP0_Msk & ((value) << SSC_RC0R_CP0_Pos)) 521 #define SSC_RC0R_MASK _U_(0xFFFF) /**< \deprecated (SSC_RC0R) Register MASK (Use SSC_RC0R_Msk instead) */ 522 #define SSC_RC0R_Msk _U_(0xFFFF) /**< (SSC_RC0R) Register Mask */ 523 524 525 /* -------- SSC_RC1R : (SSC Offset: 0x3c) (R/W 32) Receive Compare 1 Register -------- */ 526 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 527 #if COMPONENT_TYPEDEF_STYLE == 'N' 528 typedef union { 529 struct { 530 uint32_t CP1:16; /**< bit: 0..15 Receive Compare Data 1 */ 531 uint32_t :16; /**< bit: 16..31 Reserved */ 532 } bit; /**< Structure used for bit access */ 533 uint32_t reg; /**< Type used for register access */ 534 } SSC_RC1R_Type; 535 #endif 536 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 537 538 #define SSC_RC1R_OFFSET (0x3C) /**< (SSC_RC1R) Receive Compare 1 Register Offset */ 539 540 #define SSC_RC1R_CP1_Pos 0 /**< (SSC_RC1R) Receive Compare Data 1 Position */ 541 #define SSC_RC1R_CP1_Msk (_U_(0xFFFF) << SSC_RC1R_CP1_Pos) /**< (SSC_RC1R) Receive Compare Data 1 Mask */ 542 #define SSC_RC1R_CP1(value) (SSC_RC1R_CP1_Msk & ((value) << SSC_RC1R_CP1_Pos)) 543 #define SSC_RC1R_MASK _U_(0xFFFF) /**< \deprecated (SSC_RC1R) Register MASK (Use SSC_RC1R_Msk instead) */ 544 #define SSC_RC1R_Msk _U_(0xFFFF) /**< (SSC_RC1R) Register Mask */ 545 546 547 /* -------- SSC_SR : (SSC Offset: 0x40) (R/ 32) Status Register -------- */ 548 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 549 #if COMPONENT_TYPEDEF_STYLE == 'N' 550 typedef union { 551 struct { 552 uint32_t TXRDY:1; /**< bit: 0 Transmit Ready */ 553 uint32_t TXEMPTY:1; /**< bit: 1 Transmit Empty */ 554 uint32_t :2; /**< bit: 2..3 Reserved */ 555 uint32_t RXRDY:1; /**< bit: 4 Receive Ready */ 556 uint32_t OVRUN:1; /**< bit: 5 Receive Overrun */ 557 uint32_t :2; /**< bit: 6..7 Reserved */ 558 uint32_t CP0:1; /**< bit: 8 Compare 0 */ 559 uint32_t CP1:1; /**< bit: 9 Compare 1 */ 560 uint32_t TXSYN:1; /**< bit: 10 Transmit Sync */ 561 uint32_t RXSYN:1; /**< bit: 11 Receive Sync */ 562 uint32_t :4; /**< bit: 12..15 Reserved */ 563 uint32_t TXEN:1; /**< bit: 16 Transmit Enable */ 564 uint32_t RXEN:1; /**< bit: 17 Receive Enable */ 565 uint32_t :14; /**< bit: 18..31 Reserved */ 566 } bit; /**< Structure used for bit access */ 567 struct { 568 uint32_t :8; /**< bit: 0..7 Reserved */ 569 uint32_t CP:2; /**< bit: 8..9 Compare x */ 570 uint32_t :22; /**< bit: 10..31 Reserved */ 571 } vec; /**< Structure used for vec access */ 572 uint32_t reg; /**< Type used for register access */ 573 } SSC_SR_Type; 574 #endif 575 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 576 577 #define SSC_SR_OFFSET (0x40) /**< (SSC_SR) Status Register Offset */ 578 579 #define SSC_SR_TXRDY_Pos 0 /**< (SSC_SR) Transmit Ready Position */ 580 #define SSC_SR_TXRDY_Msk (_U_(0x1) << SSC_SR_TXRDY_Pos) /**< (SSC_SR) Transmit Ready Mask */ 581 #define SSC_SR_TXRDY SSC_SR_TXRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_SR_TXRDY_Msk instead */ 582 #define SSC_SR_TXEMPTY_Pos 1 /**< (SSC_SR) Transmit Empty Position */ 583 #define SSC_SR_TXEMPTY_Msk (_U_(0x1) << SSC_SR_TXEMPTY_Pos) /**< (SSC_SR) Transmit Empty Mask */ 584 #define SSC_SR_TXEMPTY SSC_SR_TXEMPTY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_SR_TXEMPTY_Msk instead */ 585 #define SSC_SR_RXRDY_Pos 4 /**< (SSC_SR) Receive Ready Position */ 586 #define SSC_SR_RXRDY_Msk (_U_(0x1) << SSC_SR_RXRDY_Pos) /**< (SSC_SR) Receive Ready Mask */ 587 #define SSC_SR_RXRDY SSC_SR_RXRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_SR_RXRDY_Msk instead */ 588 #define SSC_SR_OVRUN_Pos 5 /**< (SSC_SR) Receive Overrun Position */ 589 #define SSC_SR_OVRUN_Msk (_U_(0x1) << SSC_SR_OVRUN_Pos) /**< (SSC_SR) Receive Overrun Mask */ 590 #define SSC_SR_OVRUN SSC_SR_OVRUN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_SR_OVRUN_Msk instead */ 591 #define SSC_SR_CP0_Pos 8 /**< (SSC_SR) Compare 0 Position */ 592 #define SSC_SR_CP0_Msk (_U_(0x1) << SSC_SR_CP0_Pos) /**< (SSC_SR) Compare 0 Mask */ 593 #define SSC_SR_CP0 SSC_SR_CP0_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_SR_CP0_Msk instead */ 594 #define SSC_SR_CP1_Pos 9 /**< (SSC_SR) Compare 1 Position */ 595 #define SSC_SR_CP1_Msk (_U_(0x1) << SSC_SR_CP1_Pos) /**< (SSC_SR) Compare 1 Mask */ 596 #define SSC_SR_CP1 SSC_SR_CP1_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_SR_CP1_Msk instead */ 597 #define SSC_SR_TXSYN_Pos 10 /**< (SSC_SR) Transmit Sync Position */ 598 #define SSC_SR_TXSYN_Msk (_U_(0x1) << SSC_SR_TXSYN_Pos) /**< (SSC_SR) Transmit Sync Mask */ 599 #define SSC_SR_TXSYN SSC_SR_TXSYN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_SR_TXSYN_Msk instead */ 600 #define SSC_SR_RXSYN_Pos 11 /**< (SSC_SR) Receive Sync Position */ 601 #define SSC_SR_RXSYN_Msk (_U_(0x1) << SSC_SR_RXSYN_Pos) /**< (SSC_SR) Receive Sync Mask */ 602 #define SSC_SR_RXSYN SSC_SR_RXSYN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_SR_RXSYN_Msk instead */ 603 #define SSC_SR_TXEN_Pos 16 /**< (SSC_SR) Transmit Enable Position */ 604 #define SSC_SR_TXEN_Msk (_U_(0x1) << SSC_SR_TXEN_Pos) /**< (SSC_SR) Transmit Enable Mask */ 605 #define SSC_SR_TXEN SSC_SR_TXEN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_SR_TXEN_Msk instead */ 606 #define SSC_SR_RXEN_Pos 17 /**< (SSC_SR) Receive Enable Position */ 607 #define SSC_SR_RXEN_Msk (_U_(0x1) << SSC_SR_RXEN_Pos) /**< (SSC_SR) Receive Enable Mask */ 608 #define SSC_SR_RXEN SSC_SR_RXEN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_SR_RXEN_Msk instead */ 609 #define SSC_SR_MASK _U_(0x30F33) /**< \deprecated (SSC_SR) Register MASK (Use SSC_SR_Msk instead) */ 610 #define SSC_SR_Msk _U_(0x30F33) /**< (SSC_SR) Register Mask */ 611 612 #define SSC_SR_CP_Pos 8 /**< (SSC_SR Position) Compare x */ 613 #define SSC_SR_CP_Msk (_U_(0x3) << SSC_SR_CP_Pos) /**< (SSC_SR Mask) CP */ 614 #define SSC_SR_CP(value) (SSC_SR_CP_Msk & ((value) << SSC_SR_CP_Pos)) 615 616 /* -------- SSC_IER : (SSC Offset: 0x44) (/W 32) Interrupt Enable Register -------- */ 617 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 618 #if COMPONENT_TYPEDEF_STYLE == 'N' 619 typedef union { 620 struct { 621 uint32_t TXRDY:1; /**< bit: 0 Transmit Ready Interrupt Enable */ 622 uint32_t TXEMPTY:1; /**< bit: 1 Transmit Empty Interrupt Enable */ 623 uint32_t :2; /**< bit: 2..3 Reserved */ 624 uint32_t RXRDY:1; /**< bit: 4 Receive Ready Interrupt Enable */ 625 uint32_t OVRUN:1; /**< bit: 5 Receive Overrun Interrupt Enable */ 626 uint32_t :2; /**< bit: 6..7 Reserved */ 627 uint32_t CP0:1; /**< bit: 8 Compare 0 Interrupt Enable */ 628 uint32_t CP1:1; /**< bit: 9 Compare 1 Interrupt Enable */ 629 uint32_t TXSYN:1; /**< bit: 10 Tx Sync Interrupt Enable */ 630 uint32_t RXSYN:1; /**< bit: 11 Rx Sync Interrupt Enable */ 631 uint32_t :20; /**< bit: 12..31 Reserved */ 632 } bit; /**< Structure used for bit access */ 633 struct { 634 uint32_t :8; /**< bit: 0..7 Reserved */ 635 uint32_t CP:2; /**< bit: 8..9 Compare x Interrupt Enable */ 636 uint32_t :22; /**< bit: 10..31 Reserved */ 637 } vec; /**< Structure used for vec access */ 638 uint32_t reg; /**< Type used for register access */ 639 } SSC_IER_Type; 640 #endif 641 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 642 643 #define SSC_IER_OFFSET (0x44) /**< (SSC_IER) Interrupt Enable Register Offset */ 644 645 #define SSC_IER_TXRDY_Pos 0 /**< (SSC_IER) Transmit Ready Interrupt Enable Position */ 646 #define SSC_IER_TXRDY_Msk (_U_(0x1) << SSC_IER_TXRDY_Pos) /**< (SSC_IER) Transmit Ready Interrupt Enable Mask */ 647 #define SSC_IER_TXRDY SSC_IER_TXRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IER_TXRDY_Msk instead */ 648 #define SSC_IER_TXEMPTY_Pos 1 /**< (SSC_IER) Transmit Empty Interrupt Enable Position */ 649 #define SSC_IER_TXEMPTY_Msk (_U_(0x1) << SSC_IER_TXEMPTY_Pos) /**< (SSC_IER) Transmit Empty Interrupt Enable Mask */ 650 #define SSC_IER_TXEMPTY SSC_IER_TXEMPTY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IER_TXEMPTY_Msk instead */ 651 #define SSC_IER_RXRDY_Pos 4 /**< (SSC_IER) Receive Ready Interrupt Enable Position */ 652 #define SSC_IER_RXRDY_Msk (_U_(0x1) << SSC_IER_RXRDY_Pos) /**< (SSC_IER) Receive Ready Interrupt Enable Mask */ 653 #define SSC_IER_RXRDY SSC_IER_RXRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IER_RXRDY_Msk instead */ 654 #define SSC_IER_OVRUN_Pos 5 /**< (SSC_IER) Receive Overrun Interrupt Enable Position */ 655 #define SSC_IER_OVRUN_Msk (_U_(0x1) << SSC_IER_OVRUN_Pos) /**< (SSC_IER) Receive Overrun Interrupt Enable Mask */ 656 #define SSC_IER_OVRUN SSC_IER_OVRUN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IER_OVRUN_Msk instead */ 657 #define SSC_IER_CP0_Pos 8 /**< (SSC_IER) Compare 0 Interrupt Enable Position */ 658 #define SSC_IER_CP0_Msk (_U_(0x1) << SSC_IER_CP0_Pos) /**< (SSC_IER) Compare 0 Interrupt Enable Mask */ 659 #define SSC_IER_CP0 SSC_IER_CP0_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IER_CP0_Msk instead */ 660 #define SSC_IER_CP1_Pos 9 /**< (SSC_IER) Compare 1 Interrupt Enable Position */ 661 #define SSC_IER_CP1_Msk (_U_(0x1) << SSC_IER_CP1_Pos) /**< (SSC_IER) Compare 1 Interrupt Enable Mask */ 662 #define SSC_IER_CP1 SSC_IER_CP1_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IER_CP1_Msk instead */ 663 #define SSC_IER_TXSYN_Pos 10 /**< (SSC_IER) Tx Sync Interrupt Enable Position */ 664 #define SSC_IER_TXSYN_Msk (_U_(0x1) << SSC_IER_TXSYN_Pos) /**< (SSC_IER) Tx Sync Interrupt Enable Mask */ 665 #define SSC_IER_TXSYN SSC_IER_TXSYN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IER_TXSYN_Msk instead */ 666 #define SSC_IER_RXSYN_Pos 11 /**< (SSC_IER) Rx Sync Interrupt Enable Position */ 667 #define SSC_IER_RXSYN_Msk (_U_(0x1) << SSC_IER_RXSYN_Pos) /**< (SSC_IER) Rx Sync Interrupt Enable Mask */ 668 #define SSC_IER_RXSYN SSC_IER_RXSYN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IER_RXSYN_Msk instead */ 669 #define SSC_IER_MASK _U_(0xF33) /**< \deprecated (SSC_IER) Register MASK (Use SSC_IER_Msk instead) */ 670 #define SSC_IER_Msk _U_(0xF33) /**< (SSC_IER) Register Mask */ 671 672 #define SSC_IER_CP_Pos 8 /**< (SSC_IER Position) Compare x Interrupt Enable */ 673 #define SSC_IER_CP_Msk (_U_(0x3) << SSC_IER_CP_Pos) /**< (SSC_IER Mask) CP */ 674 #define SSC_IER_CP(value) (SSC_IER_CP_Msk & ((value) << SSC_IER_CP_Pos)) 675 676 /* -------- SSC_IDR : (SSC Offset: 0x48) (/W 32) Interrupt Disable Register -------- */ 677 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 678 #if COMPONENT_TYPEDEF_STYLE == 'N' 679 typedef union { 680 struct { 681 uint32_t TXRDY:1; /**< bit: 0 Transmit Ready Interrupt Disable */ 682 uint32_t TXEMPTY:1; /**< bit: 1 Transmit Empty Interrupt Disable */ 683 uint32_t :2; /**< bit: 2..3 Reserved */ 684 uint32_t RXRDY:1; /**< bit: 4 Receive Ready Interrupt Disable */ 685 uint32_t OVRUN:1; /**< bit: 5 Receive Overrun Interrupt Disable */ 686 uint32_t :2; /**< bit: 6..7 Reserved */ 687 uint32_t CP0:1; /**< bit: 8 Compare 0 Interrupt Disable */ 688 uint32_t CP1:1; /**< bit: 9 Compare 1 Interrupt Disable */ 689 uint32_t TXSYN:1; /**< bit: 10 Tx Sync Interrupt Enable */ 690 uint32_t RXSYN:1; /**< bit: 11 Rx Sync Interrupt Enable */ 691 uint32_t :20; /**< bit: 12..31 Reserved */ 692 } bit; /**< Structure used for bit access */ 693 struct { 694 uint32_t :8; /**< bit: 0..7 Reserved */ 695 uint32_t CP:2; /**< bit: 8..9 Compare x Interrupt Disable */ 696 uint32_t :22; /**< bit: 10..31 Reserved */ 697 } vec; /**< Structure used for vec access */ 698 uint32_t reg; /**< Type used for register access */ 699 } SSC_IDR_Type; 700 #endif 701 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 702 703 #define SSC_IDR_OFFSET (0x48) /**< (SSC_IDR) Interrupt Disable Register Offset */ 704 705 #define SSC_IDR_TXRDY_Pos 0 /**< (SSC_IDR) Transmit Ready Interrupt Disable Position */ 706 #define SSC_IDR_TXRDY_Msk (_U_(0x1) << SSC_IDR_TXRDY_Pos) /**< (SSC_IDR) Transmit Ready Interrupt Disable Mask */ 707 #define SSC_IDR_TXRDY SSC_IDR_TXRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IDR_TXRDY_Msk instead */ 708 #define SSC_IDR_TXEMPTY_Pos 1 /**< (SSC_IDR) Transmit Empty Interrupt Disable Position */ 709 #define SSC_IDR_TXEMPTY_Msk (_U_(0x1) << SSC_IDR_TXEMPTY_Pos) /**< (SSC_IDR) Transmit Empty Interrupt Disable Mask */ 710 #define SSC_IDR_TXEMPTY SSC_IDR_TXEMPTY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IDR_TXEMPTY_Msk instead */ 711 #define SSC_IDR_RXRDY_Pos 4 /**< (SSC_IDR) Receive Ready Interrupt Disable Position */ 712 #define SSC_IDR_RXRDY_Msk (_U_(0x1) << SSC_IDR_RXRDY_Pos) /**< (SSC_IDR) Receive Ready Interrupt Disable Mask */ 713 #define SSC_IDR_RXRDY SSC_IDR_RXRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IDR_RXRDY_Msk instead */ 714 #define SSC_IDR_OVRUN_Pos 5 /**< (SSC_IDR) Receive Overrun Interrupt Disable Position */ 715 #define SSC_IDR_OVRUN_Msk (_U_(0x1) << SSC_IDR_OVRUN_Pos) /**< (SSC_IDR) Receive Overrun Interrupt Disable Mask */ 716 #define SSC_IDR_OVRUN SSC_IDR_OVRUN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IDR_OVRUN_Msk instead */ 717 #define SSC_IDR_CP0_Pos 8 /**< (SSC_IDR) Compare 0 Interrupt Disable Position */ 718 #define SSC_IDR_CP0_Msk (_U_(0x1) << SSC_IDR_CP0_Pos) /**< (SSC_IDR) Compare 0 Interrupt Disable Mask */ 719 #define SSC_IDR_CP0 SSC_IDR_CP0_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IDR_CP0_Msk instead */ 720 #define SSC_IDR_CP1_Pos 9 /**< (SSC_IDR) Compare 1 Interrupt Disable Position */ 721 #define SSC_IDR_CP1_Msk (_U_(0x1) << SSC_IDR_CP1_Pos) /**< (SSC_IDR) Compare 1 Interrupt Disable Mask */ 722 #define SSC_IDR_CP1 SSC_IDR_CP1_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IDR_CP1_Msk instead */ 723 #define SSC_IDR_TXSYN_Pos 10 /**< (SSC_IDR) Tx Sync Interrupt Enable Position */ 724 #define SSC_IDR_TXSYN_Msk (_U_(0x1) << SSC_IDR_TXSYN_Pos) /**< (SSC_IDR) Tx Sync Interrupt Enable Mask */ 725 #define SSC_IDR_TXSYN SSC_IDR_TXSYN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IDR_TXSYN_Msk instead */ 726 #define SSC_IDR_RXSYN_Pos 11 /**< (SSC_IDR) Rx Sync Interrupt Enable Position */ 727 #define SSC_IDR_RXSYN_Msk (_U_(0x1) << SSC_IDR_RXSYN_Pos) /**< (SSC_IDR) Rx Sync Interrupt Enable Mask */ 728 #define SSC_IDR_RXSYN SSC_IDR_RXSYN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IDR_RXSYN_Msk instead */ 729 #define SSC_IDR_MASK _U_(0xF33) /**< \deprecated (SSC_IDR) Register MASK (Use SSC_IDR_Msk instead) */ 730 #define SSC_IDR_Msk _U_(0xF33) /**< (SSC_IDR) Register Mask */ 731 732 #define SSC_IDR_CP_Pos 8 /**< (SSC_IDR Position) Compare x Interrupt Disable */ 733 #define SSC_IDR_CP_Msk (_U_(0x3) << SSC_IDR_CP_Pos) /**< (SSC_IDR Mask) CP */ 734 #define SSC_IDR_CP(value) (SSC_IDR_CP_Msk & ((value) << SSC_IDR_CP_Pos)) 735 736 /* -------- SSC_IMR : (SSC Offset: 0x4c) (R/ 32) Interrupt Mask Register -------- */ 737 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 738 #if COMPONENT_TYPEDEF_STYLE == 'N' 739 typedef union { 740 struct { 741 uint32_t TXRDY:1; /**< bit: 0 Transmit Ready Interrupt Mask */ 742 uint32_t TXEMPTY:1; /**< bit: 1 Transmit Empty Interrupt Mask */ 743 uint32_t :2; /**< bit: 2..3 Reserved */ 744 uint32_t RXRDY:1; /**< bit: 4 Receive Ready Interrupt Mask */ 745 uint32_t OVRUN:1; /**< bit: 5 Receive Overrun Interrupt Mask */ 746 uint32_t :2; /**< bit: 6..7 Reserved */ 747 uint32_t CP0:1; /**< bit: 8 Compare 0 Interrupt Mask */ 748 uint32_t CP1:1; /**< bit: 9 Compare 1 Interrupt Mask */ 749 uint32_t TXSYN:1; /**< bit: 10 Tx Sync Interrupt Mask */ 750 uint32_t RXSYN:1; /**< bit: 11 Rx Sync Interrupt Mask */ 751 uint32_t :20; /**< bit: 12..31 Reserved */ 752 } bit; /**< Structure used for bit access */ 753 struct { 754 uint32_t :8; /**< bit: 0..7 Reserved */ 755 uint32_t CP:2; /**< bit: 8..9 Compare x Interrupt Mask */ 756 uint32_t :22; /**< bit: 10..31 Reserved */ 757 } vec; /**< Structure used for vec access */ 758 uint32_t reg; /**< Type used for register access */ 759 } SSC_IMR_Type; 760 #endif 761 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 762 763 #define SSC_IMR_OFFSET (0x4C) /**< (SSC_IMR) Interrupt Mask Register Offset */ 764 765 #define SSC_IMR_TXRDY_Pos 0 /**< (SSC_IMR) Transmit Ready Interrupt Mask Position */ 766 #define SSC_IMR_TXRDY_Msk (_U_(0x1) << SSC_IMR_TXRDY_Pos) /**< (SSC_IMR) Transmit Ready Interrupt Mask Mask */ 767 #define SSC_IMR_TXRDY SSC_IMR_TXRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IMR_TXRDY_Msk instead */ 768 #define SSC_IMR_TXEMPTY_Pos 1 /**< (SSC_IMR) Transmit Empty Interrupt Mask Position */ 769 #define SSC_IMR_TXEMPTY_Msk (_U_(0x1) << SSC_IMR_TXEMPTY_Pos) /**< (SSC_IMR) Transmit Empty Interrupt Mask Mask */ 770 #define SSC_IMR_TXEMPTY SSC_IMR_TXEMPTY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IMR_TXEMPTY_Msk instead */ 771 #define SSC_IMR_RXRDY_Pos 4 /**< (SSC_IMR) Receive Ready Interrupt Mask Position */ 772 #define SSC_IMR_RXRDY_Msk (_U_(0x1) << SSC_IMR_RXRDY_Pos) /**< (SSC_IMR) Receive Ready Interrupt Mask Mask */ 773 #define SSC_IMR_RXRDY SSC_IMR_RXRDY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IMR_RXRDY_Msk instead */ 774 #define SSC_IMR_OVRUN_Pos 5 /**< (SSC_IMR) Receive Overrun Interrupt Mask Position */ 775 #define SSC_IMR_OVRUN_Msk (_U_(0x1) << SSC_IMR_OVRUN_Pos) /**< (SSC_IMR) Receive Overrun Interrupt Mask Mask */ 776 #define SSC_IMR_OVRUN SSC_IMR_OVRUN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IMR_OVRUN_Msk instead */ 777 #define SSC_IMR_CP0_Pos 8 /**< (SSC_IMR) Compare 0 Interrupt Mask Position */ 778 #define SSC_IMR_CP0_Msk (_U_(0x1) << SSC_IMR_CP0_Pos) /**< (SSC_IMR) Compare 0 Interrupt Mask Mask */ 779 #define SSC_IMR_CP0 SSC_IMR_CP0_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IMR_CP0_Msk instead */ 780 #define SSC_IMR_CP1_Pos 9 /**< (SSC_IMR) Compare 1 Interrupt Mask Position */ 781 #define SSC_IMR_CP1_Msk (_U_(0x1) << SSC_IMR_CP1_Pos) /**< (SSC_IMR) Compare 1 Interrupt Mask Mask */ 782 #define SSC_IMR_CP1 SSC_IMR_CP1_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IMR_CP1_Msk instead */ 783 #define SSC_IMR_TXSYN_Pos 10 /**< (SSC_IMR) Tx Sync Interrupt Mask Position */ 784 #define SSC_IMR_TXSYN_Msk (_U_(0x1) << SSC_IMR_TXSYN_Pos) /**< (SSC_IMR) Tx Sync Interrupt Mask Mask */ 785 #define SSC_IMR_TXSYN SSC_IMR_TXSYN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IMR_TXSYN_Msk instead */ 786 #define SSC_IMR_RXSYN_Pos 11 /**< (SSC_IMR) Rx Sync Interrupt Mask Position */ 787 #define SSC_IMR_RXSYN_Msk (_U_(0x1) << SSC_IMR_RXSYN_Pos) /**< (SSC_IMR) Rx Sync Interrupt Mask Mask */ 788 #define SSC_IMR_RXSYN SSC_IMR_RXSYN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_IMR_RXSYN_Msk instead */ 789 #define SSC_IMR_MASK _U_(0xF33) /**< \deprecated (SSC_IMR) Register MASK (Use SSC_IMR_Msk instead) */ 790 #define SSC_IMR_Msk _U_(0xF33) /**< (SSC_IMR) Register Mask */ 791 792 #define SSC_IMR_CP_Pos 8 /**< (SSC_IMR Position) Compare x Interrupt Mask */ 793 #define SSC_IMR_CP_Msk (_U_(0x3) << SSC_IMR_CP_Pos) /**< (SSC_IMR Mask) CP */ 794 #define SSC_IMR_CP(value) (SSC_IMR_CP_Msk & ((value) << SSC_IMR_CP_Pos)) 795 796 /* -------- SSC_WPMR : (SSC Offset: 0xe4) (R/W 32) Write Protection Mode Register -------- */ 797 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 798 #if COMPONENT_TYPEDEF_STYLE == 'N' 799 typedef union { 800 struct { 801 uint32_t WPEN:1; /**< bit: 0 Write Protection Enable */ 802 uint32_t :7; /**< bit: 1..7 Reserved */ 803 uint32_t WPKEY:24; /**< bit: 8..31 Write Protection Key */ 804 } bit; /**< Structure used for bit access */ 805 uint32_t reg; /**< Type used for register access */ 806 } SSC_WPMR_Type; 807 #endif 808 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 809 810 #define SSC_WPMR_OFFSET (0xE4) /**< (SSC_WPMR) Write Protection Mode Register Offset */ 811 812 #define SSC_WPMR_WPEN_Pos 0 /**< (SSC_WPMR) Write Protection Enable Position */ 813 #define SSC_WPMR_WPEN_Msk (_U_(0x1) << SSC_WPMR_WPEN_Pos) /**< (SSC_WPMR) Write Protection Enable Mask */ 814 #define SSC_WPMR_WPEN SSC_WPMR_WPEN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_WPMR_WPEN_Msk instead */ 815 #define SSC_WPMR_WPKEY_Pos 8 /**< (SSC_WPMR) Write Protection Key Position */ 816 #define SSC_WPMR_WPKEY_Msk (_U_(0xFFFFFF) << SSC_WPMR_WPKEY_Pos) /**< (SSC_WPMR) Write Protection Key Mask */ 817 #define SSC_WPMR_WPKEY(value) (SSC_WPMR_WPKEY_Msk & ((value) << SSC_WPMR_WPKEY_Pos)) 818 #define SSC_WPMR_WPKEY_PASSWD_Val _U_(0x535343) /**< (SSC_WPMR) Writing any other value in this field aborts the write operation of the WPEN bit.Always reads as 0. */ 819 #define SSC_WPMR_WPKEY_PASSWD (SSC_WPMR_WPKEY_PASSWD_Val << SSC_WPMR_WPKEY_Pos) /**< (SSC_WPMR) Writing any other value in this field aborts the write operation of the WPEN bit.Always reads as 0. Position */ 820 #define SSC_WPMR_MASK _U_(0xFFFFFF01) /**< \deprecated (SSC_WPMR) Register MASK (Use SSC_WPMR_Msk instead) */ 821 #define SSC_WPMR_Msk _U_(0xFFFFFF01) /**< (SSC_WPMR) Register Mask */ 822 823 824 /* -------- SSC_WPSR : (SSC Offset: 0xe8) (R/ 32) Write Protection Status Register -------- */ 825 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 826 #if COMPONENT_TYPEDEF_STYLE == 'N' 827 typedef union { 828 struct { 829 uint32_t WPVS:1; /**< bit: 0 Write Protection Violation Status */ 830 uint32_t :7; /**< bit: 1..7 Reserved */ 831 uint32_t WPVSRC:16; /**< bit: 8..23 Write Protect Violation Source */ 832 uint32_t :8; /**< bit: 24..31 Reserved */ 833 } bit; /**< Structure used for bit access */ 834 uint32_t reg; /**< Type used for register access */ 835 } SSC_WPSR_Type; 836 #endif 837 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 838 839 #define SSC_WPSR_OFFSET (0xE8) /**< (SSC_WPSR) Write Protection Status Register Offset */ 840 841 #define SSC_WPSR_WPVS_Pos 0 /**< (SSC_WPSR) Write Protection Violation Status Position */ 842 #define SSC_WPSR_WPVS_Msk (_U_(0x1) << SSC_WPSR_WPVS_Pos) /**< (SSC_WPSR) Write Protection Violation Status Mask */ 843 #define SSC_WPSR_WPVS SSC_WPSR_WPVS_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use SSC_WPSR_WPVS_Msk instead */ 844 #define SSC_WPSR_WPVSRC_Pos 8 /**< (SSC_WPSR) Write Protect Violation Source Position */ 845 #define SSC_WPSR_WPVSRC_Msk (_U_(0xFFFF) << SSC_WPSR_WPVSRC_Pos) /**< (SSC_WPSR) Write Protect Violation Source Mask */ 846 #define SSC_WPSR_WPVSRC(value) (SSC_WPSR_WPVSRC_Msk & ((value) << SSC_WPSR_WPVSRC_Pos)) 847 #define SSC_WPSR_MASK _U_(0xFFFF01) /**< \deprecated (SSC_WPSR) Register MASK (Use SSC_WPSR_Msk instead) */ 848 #define SSC_WPSR_Msk _U_(0xFFFF01) /**< (SSC_WPSR) Register Mask */ 849 850 851 #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) 852 #if COMPONENT_TYPEDEF_STYLE == 'R' 853 /** \brief SSC hardware registers */ 854 typedef struct { 855 __O uint32_t SSC_CR; /**< (SSC Offset: 0x00) Control Register */ 856 __IO uint32_t SSC_CMR; /**< (SSC Offset: 0x04) Clock Mode Register */ 857 __I uint8_t Reserved1[8]; 858 __IO uint32_t SSC_RCMR; /**< (SSC Offset: 0x10) Receive Clock Mode Register */ 859 __IO uint32_t SSC_RFMR; /**< (SSC Offset: 0x14) Receive Frame Mode Register */ 860 __IO uint32_t SSC_TCMR; /**< (SSC Offset: 0x18) Transmit Clock Mode Register */ 861 __IO uint32_t SSC_TFMR; /**< (SSC Offset: 0x1C) Transmit Frame Mode Register */ 862 __I uint32_t SSC_RHR; /**< (SSC Offset: 0x20) Receive Holding Register */ 863 __O uint32_t SSC_THR; /**< (SSC Offset: 0x24) Transmit Holding Register */ 864 __I uint8_t Reserved2[8]; 865 __I uint32_t SSC_RSHR; /**< (SSC Offset: 0x30) Receive Sync. Holding Register */ 866 __IO uint32_t SSC_TSHR; /**< (SSC Offset: 0x34) Transmit Sync. Holding Register */ 867 __IO uint32_t SSC_RC0R; /**< (SSC Offset: 0x38) Receive Compare 0 Register */ 868 __IO uint32_t SSC_RC1R; /**< (SSC Offset: 0x3C) Receive Compare 1 Register */ 869 __I uint32_t SSC_SR; /**< (SSC Offset: 0x40) Status Register */ 870 __O uint32_t SSC_IER; /**< (SSC Offset: 0x44) Interrupt Enable Register */ 871 __O uint32_t SSC_IDR; /**< (SSC Offset: 0x48) Interrupt Disable Register */ 872 __I uint32_t SSC_IMR; /**< (SSC Offset: 0x4C) Interrupt Mask Register */ 873 __I uint8_t Reserved3[148]; 874 __IO uint32_t SSC_WPMR; /**< (SSC Offset: 0xE4) Write Protection Mode Register */ 875 __I uint32_t SSC_WPSR; /**< (SSC Offset: 0xE8) Write Protection Status Register */ 876 } Ssc; 877 878 #elif COMPONENT_TYPEDEF_STYLE == 'N' 879 /** \brief SSC hardware registers */ 880 typedef struct { 881 __O SSC_CR_Type SSC_CR; /**< Offset: 0x00 ( /W 32) Control Register */ 882 __IO SSC_CMR_Type SSC_CMR; /**< Offset: 0x04 (R/W 32) Clock Mode Register */ 883 __I uint8_t Reserved1[8]; 884 __IO SSC_RCMR_Type SSC_RCMR; /**< Offset: 0x10 (R/W 32) Receive Clock Mode Register */ 885 __IO SSC_RFMR_Type SSC_RFMR; /**< Offset: 0x14 (R/W 32) Receive Frame Mode Register */ 886 __IO SSC_TCMR_Type SSC_TCMR; /**< Offset: 0x18 (R/W 32) Transmit Clock Mode Register */ 887 __IO SSC_TFMR_Type SSC_TFMR; /**< Offset: 0x1C (R/W 32) Transmit Frame Mode Register */ 888 __I SSC_RHR_Type SSC_RHR; /**< Offset: 0x20 (R/ 32) Receive Holding Register */ 889 __O SSC_THR_Type SSC_THR; /**< Offset: 0x24 ( /W 32) Transmit Holding Register */ 890 __I uint8_t Reserved2[8]; 891 __I SSC_RSHR_Type SSC_RSHR; /**< Offset: 0x30 (R/ 32) Receive Sync. Holding Register */ 892 __IO SSC_TSHR_Type SSC_TSHR; /**< Offset: 0x34 (R/W 32) Transmit Sync. Holding Register */ 893 __IO SSC_RC0R_Type SSC_RC0R; /**< Offset: 0x38 (R/W 32) Receive Compare 0 Register */ 894 __IO SSC_RC1R_Type SSC_RC1R; /**< Offset: 0x3C (R/W 32) Receive Compare 1 Register */ 895 __I SSC_SR_Type SSC_SR; /**< Offset: 0x40 (R/ 32) Status Register */ 896 __O SSC_IER_Type SSC_IER; /**< Offset: 0x44 ( /W 32) Interrupt Enable Register */ 897 __O SSC_IDR_Type SSC_IDR; /**< Offset: 0x48 ( /W 32) Interrupt Disable Register */ 898 __I SSC_IMR_Type SSC_IMR; /**< Offset: 0x4C (R/ 32) Interrupt Mask Register */ 899 __I uint8_t Reserved3[148]; 900 __IO SSC_WPMR_Type SSC_WPMR; /**< Offset: 0xE4 (R/W 32) Write Protection Mode Register */ 901 __I SSC_WPSR_Type SSC_WPSR; /**< Offset: 0xE8 (R/ 32) Write Protection Status Register */ 902 } Ssc; 903 904 #else /* COMPONENT_TYPEDEF_STYLE */ 905 #error Unknown component typedef style 906 #endif /* COMPONENT_TYPEDEF_STYLE */ 907 908 #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */ 909 /** @} end of Synchronous Serial Controller */ 910 911 #endif /* _SAME70_SSC_COMPONENT_H_ */ 912