1 /** 2 * \file 3 * 4 * \brief Component description for HMATRIXB 5 * 6 * Copyright (c) 2018 Microchip Technology Inc. 7 * 8 * \asf_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"); you may 15 * not use this file except in compliance with the License. 16 * You may obtain a copy of the Licence 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, WITHOUT 22 * 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 * \asf_license_stop 27 * 28 */ 29 30 #ifndef _SAMC21_HMATRIXB_COMPONENT_ 31 #define _SAMC21_HMATRIXB_COMPONENT_ 32 33 /* ========================================================================== */ 34 /** SOFTWARE API DEFINITION FOR HMATRIXB */ 35 /* ========================================================================== */ 36 /** \addtogroup SAMC21_HMATRIXB HSB Matrix */ 37 /*@{*/ 38 39 #define HMATRIXB_I7638 40 #define REV_HMATRIXB 0x214 41 42 /* -------- HMATRIXB_MCFG : (HMATRIXB Offset: 0x000) (R/W 32) Master Configuration -------- */ 43 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 44 typedef union { 45 struct { 46 uint32_t ULBT:3; /*!< bit: 0.. 2 Undefined Length Burst Type */ 47 uint32_t :29; /*!< bit: 3..31 Reserved */ 48 } bit; /*!< Structure used for bit access */ 49 uint32_t reg; /*!< Type used for register access */ 50 } HMATRIXB_MCFG_Type; 51 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 52 53 #define HMATRIXB_MCFG_OFFSET 0x000 /**< \brief (HMATRIXB_MCFG offset) Master Configuration */ 54 #define HMATRIXB_MCFG_RESETVALUE _U_(0x00000002) /**< \brief (HMATRIXB_MCFG reset_value) Master Configuration */ 55 56 #define HMATRIXB_MCFG_ULBT_Pos 0 /**< \brief (HMATRIXB_MCFG) Undefined Length Burst Type */ 57 #define HMATRIXB_MCFG_ULBT_Msk (_U_(0x7) << HMATRIXB_MCFG_ULBT_Pos) 58 #define HMATRIXB_MCFG_ULBT(value) (HMATRIXB_MCFG_ULBT_Msk & ((value) << HMATRIXB_MCFG_ULBT_Pos)) 59 #define HMATRIXB_MCFG_ULBT_INFINITE_Val _U_(0x0) /**< \brief (HMATRIXB_MCFG) Infinite Length */ 60 #define HMATRIXB_MCFG_ULBT_SINGLE_Val _U_(0x1) /**< \brief (HMATRIXB_MCFG) Single Access */ 61 #define HMATRIXB_MCFG_ULBT_FOUR_BEAT_Val _U_(0x2) /**< \brief (HMATRIXB_MCFG) Four Beat Burst */ 62 #define HMATRIXB_MCFG_ULBT_EIGHT_BEAT_Val _U_(0x3) /**< \brief (HMATRIXB_MCFG) Eight Beat Burst */ 63 #define HMATRIXB_MCFG_ULBT_SIXTEEN_BEAT_Val _U_(0x4) /**< \brief (HMATRIXB_MCFG) Sixteen Beat Burst */ 64 #define HMATRIXB_MCFG_ULBT_INFINITE (HMATRIXB_MCFG_ULBT_INFINITE_Val << HMATRIXB_MCFG_ULBT_Pos) 65 #define HMATRIXB_MCFG_ULBT_SINGLE (HMATRIXB_MCFG_ULBT_SINGLE_Val << HMATRIXB_MCFG_ULBT_Pos) 66 #define HMATRIXB_MCFG_ULBT_FOUR_BEAT (HMATRIXB_MCFG_ULBT_FOUR_BEAT_Val << HMATRIXB_MCFG_ULBT_Pos) 67 #define HMATRIXB_MCFG_ULBT_EIGHT_BEAT (HMATRIXB_MCFG_ULBT_EIGHT_BEAT_Val << HMATRIXB_MCFG_ULBT_Pos) 68 #define HMATRIXB_MCFG_ULBT_SIXTEEN_BEAT (HMATRIXB_MCFG_ULBT_SIXTEEN_BEAT_Val << HMATRIXB_MCFG_ULBT_Pos) 69 #define HMATRIXB_MCFG_MASK _U_(0x00000007) /**< \brief (HMATRIXB_MCFG) MASK Register */ 70 71 /* -------- HMATRIXB_SCFG : (HMATRIXB Offset: 0x040) (R/W 32) Slave Configuration -------- */ 72 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 73 typedef union { 74 struct { 75 uint32_t SLOT_CYCLE:8; /*!< bit: 0.. 7 Maximum Number of Allowed Cycles for a Burst */ 76 uint32_t :8; /*!< bit: 8..15 Reserved */ 77 uint32_t DEFMSTR_TYPE:2; /*!< bit: 16..17 Default Master Type */ 78 uint32_t FIXED_DEFMSTR:4; /*!< bit: 18..21 Fixed Index of Default Master */ 79 uint32_t :2; /*!< bit: 22..23 Reserved */ 80 uint32_t ARBT:1; /*!< bit: 24 Arbitration Type */ 81 uint32_t :7; /*!< bit: 25..31 Reserved */ 82 } bit; /*!< Structure used for bit access */ 83 uint32_t reg; /*!< Type used for register access */ 84 } HMATRIXB_SCFG_Type; 85 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 86 87 #define HMATRIXB_SCFG_OFFSET 0x040 /**< \brief (HMATRIXB_SCFG offset) Slave Configuration */ 88 #define HMATRIXB_SCFG_RESETVALUE _U_(0x00000010) /**< \brief (HMATRIXB_SCFG reset_value) Slave Configuration */ 89 90 #define HMATRIXB_SCFG_SLOT_CYCLE_Pos 0 /**< \brief (HMATRIXB_SCFG) Maximum Number of Allowed Cycles for a Burst */ 91 #define HMATRIXB_SCFG_SLOT_CYCLE_Msk (_U_(0xFF) << HMATRIXB_SCFG_SLOT_CYCLE_Pos) 92 #define HMATRIXB_SCFG_SLOT_CYCLE(value) (HMATRIXB_SCFG_SLOT_CYCLE_Msk & ((value) << HMATRIXB_SCFG_SLOT_CYCLE_Pos)) 93 #define HMATRIXB_SCFG_DEFMSTR_TYPE_Pos 16 /**< \brief (HMATRIXB_SCFG) Default Master Type */ 94 #define HMATRIXB_SCFG_DEFMSTR_TYPE_Msk (_U_(0x3) << HMATRIXB_SCFG_DEFMSTR_TYPE_Pos) 95 #define HMATRIXB_SCFG_DEFMSTR_TYPE(value) (HMATRIXB_SCFG_DEFMSTR_TYPE_Msk & ((value) << HMATRIXB_SCFG_DEFMSTR_TYPE_Pos)) 96 #define HMATRIXB_SCFG_DEFMSTR_TYPE_NO_DEFAULT_Val _U_(0x0) /**< \brief (HMATRIXB_SCFG) No Default Master. At the end of current slave access, if no other master request is pending, the slave is deconnected from all masters. This resusts in having a one cycle latency for the first transfer of a burst. */ 97 #define HMATRIXB_SCFG_DEFMSTR_TYPE_LAST_DEFAULT_Val _U_(0x1) /**< \brief (HMATRIXB_SCFG) Last Default Master At the end of current slave access, if no other master request is pending, the slave stay connected with the last master havingaccessed it.This resusts in not having the one cycle latency when the last master re-trying access on the slave. */ 98 #define HMATRIXB_SCFG_DEFMSTR_TYPE_FIXED_DEFAULT_Val _U_(0x2) /**< \brief (HMATRIXB_SCFG) Fixed Default Master At the end of current slave access, if no other master request is pending, the slave connects with fixed master which numberis in FIXED_DEFMSTR register.This resusts in not having the one cycle latency when the fixed master re-trying access on the slave. */ 99 #define HMATRIXB_SCFG_DEFMSTR_TYPE_NO_DEFAULT (HMATRIXB_SCFG_DEFMSTR_TYPE_NO_DEFAULT_Val << HMATRIXB_SCFG_DEFMSTR_TYPE_Pos) 100 #define HMATRIXB_SCFG_DEFMSTR_TYPE_LAST_DEFAULT (HMATRIXB_SCFG_DEFMSTR_TYPE_LAST_DEFAULT_Val << HMATRIXB_SCFG_DEFMSTR_TYPE_Pos) 101 #define HMATRIXB_SCFG_DEFMSTR_TYPE_FIXED_DEFAULT (HMATRIXB_SCFG_DEFMSTR_TYPE_FIXED_DEFAULT_Val << HMATRIXB_SCFG_DEFMSTR_TYPE_Pos) 102 #define HMATRIXB_SCFG_FIXED_DEFMSTR_Pos 18 /**< \brief (HMATRIXB_SCFG) Fixed Index of Default Master */ 103 #define HMATRIXB_SCFG_FIXED_DEFMSTR_Msk (_U_(0xF) << HMATRIXB_SCFG_FIXED_DEFMSTR_Pos) 104 #define HMATRIXB_SCFG_FIXED_DEFMSTR(value) (HMATRIXB_SCFG_FIXED_DEFMSTR_Msk & ((value) << HMATRIXB_SCFG_FIXED_DEFMSTR_Pos)) 105 #define HMATRIXB_SCFG_ARBT_Pos 24 /**< \brief (HMATRIXB_SCFG) Arbitration Type */ 106 #define HMATRIXB_SCFG_ARBT (_U_(0x1) << HMATRIXB_SCFG_ARBT_Pos) 107 #define HMATRIXB_SCFG_ARBT_ROUND_ROBIN_Val _U_(0x0) /**< \brief (HMATRIXB_SCFG) Round-Robin Arbitration */ 108 #define HMATRIXB_SCFG_ARBT_FIXED_PRIORITY_Val _U_(0x1) /**< \brief (HMATRIXB_SCFG) Fixed Priority Arbitration */ 109 #define HMATRIXB_SCFG_ARBT_ROUND_ROBIN (HMATRIXB_SCFG_ARBT_ROUND_ROBIN_Val << HMATRIXB_SCFG_ARBT_Pos) 110 #define HMATRIXB_SCFG_ARBT_FIXED_PRIORITY (HMATRIXB_SCFG_ARBT_FIXED_PRIORITY_Val << HMATRIXB_SCFG_ARBT_Pos) 111 #define HMATRIXB_SCFG_MASK _U_(0x013F00FF) /**< \brief (HMATRIXB_SCFG) MASK Register */ 112 113 /* -------- HMATRIXB_PRAS : (HMATRIXB Offset: 0x080) (R/W 32) PRS Priority A for Slave -------- */ 114 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 115 typedef union { 116 struct { 117 uint32_t M0PR:4; /*!< bit: 0.. 3 Master 0 Priority */ 118 uint32_t M1PR:4; /*!< bit: 4.. 7 Master 1 Priority */ 119 uint32_t M2PR:4; /*!< bit: 8..11 Master 2 Priority */ 120 uint32_t M3PR:4; /*!< bit: 12..15 Master 3 Priority */ 121 uint32_t M4PR:4; /*!< bit: 16..19 Master 4 Priority */ 122 uint32_t M5PR:4; /*!< bit: 20..23 Master 5 Priority */ 123 uint32_t M6PR:4; /*!< bit: 24..27 Master 6 Priority */ 124 uint32_t M7PR:4; /*!< bit: 28..31 Master 7 Priority */ 125 } bit; /*!< Structure used for bit access */ 126 uint32_t reg; /*!< Type used for register access */ 127 } HMATRIXB_PRAS_Type; 128 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 129 130 #define HMATRIXB_PRAS_OFFSET 0x080 /**< \brief (HMATRIXB_PRAS offset) Priority A for Slave */ 131 #define HMATRIXB_PRAS_RESETVALUE _U_(0x00000000) /**< \brief (HMATRIXB_PRAS reset_value) Priority A for Slave */ 132 133 #define HMATRIXB_PRAS_M0PR_Pos 0 /**< \brief (HMATRIXB_PRAS) Master 0 Priority */ 134 #define HMATRIXB_PRAS_M0PR_Msk (_U_(0xF) << HMATRIXB_PRAS_M0PR_Pos) 135 #define HMATRIXB_PRAS_M0PR(value) (HMATRIXB_PRAS_M0PR_Msk & ((value) << HMATRIXB_PRAS_M0PR_Pos)) 136 #define HMATRIXB_PRAS_M1PR_Pos 4 /**< \brief (HMATRIXB_PRAS) Master 1 Priority */ 137 #define HMATRIXB_PRAS_M1PR_Msk (_U_(0xF) << HMATRIXB_PRAS_M1PR_Pos) 138 #define HMATRIXB_PRAS_M1PR(value) (HMATRIXB_PRAS_M1PR_Msk & ((value) << HMATRIXB_PRAS_M1PR_Pos)) 139 #define HMATRIXB_PRAS_M2PR_Pos 8 /**< \brief (HMATRIXB_PRAS) Master 2 Priority */ 140 #define HMATRIXB_PRAS_M2PR_Msk (_U_(0xF) << HMATRIXB_PRAS_M2PR_Pos) 141 #define HMATRIXB_PRAS_M2PR(value) (HMATRIXB_PRAS_M2PR_Msk & ((value) << HMATRIXB_PRAS_M2PR_Pos)) 142 #define HMATRIXB_PRAS_M3PR_Pos 12 /**< \brief (HMATRIXB_PRAS) Master 3 Priority */ 143 #define HMATRIXB_PRAS_M3PR_Msk (_U_(0xF) << HMATRIXB_PRAS_M3PR_Pos) 144 #define HMATRIXB_PRAS_M3PR(value) (HMATRIXB_PRAS_M3PR_Msk & ((value) << HMATRIXB_PRAS_M3PR_Pos)) 145 #define HMATRIXB_PRAS_M4PR_Pos 16 /**< \brief (HMATRIXB_PRAS) Master 4 Priority */ 146 #define HMATRIXB_PRAS_M4PR_Msk (_U_(0xF) << HMATRIXB_PRAS_M4PR_Pos) 147 #define HMATRIXB_PRAS_M4PR(value) (HMATRIXB_PRAS_M4PR_Msk & ((value) << HMATRIXB_PRAS_M4PR_Pos)) 148 #define HMATRIXB_PRAS_M5PR_Pos 20 /**< \brief (HMATRIXB_PRAS) Master 5 Priority */ 149 #define HMATRIXB_PRAS_M5PR_Msk (_U_(0xF) << HMATRIXB_PRAS_M5PR_Pos) 150 #define HMATRIXB_PRAS_M5PR(value) (HMATRIXB_PRAS_M5PR_Msk & ((value) << HMATRIXB_PRAS_M5PR_Pos)) 151 #define HMATRIXB_PRAS_M6PR_Pos 24 /**< \brief (HMATRIXB_PRAS) Master 6 Priority */ 152 #define HMATRIXB_PRAS_M6PR_Msk (_U_(0xF) << HMATRIXB_PRAS_M6PR_Pos) 153 #define HMATRIXB_PRAS_M6PR(value) (HMATRIXB_PRAS_M6PR_Msk & ((value) << HMATRIXB_PRAS_M6PR_Pos)) 154 #define HMATRIXB_PRAS_M7PR_Pos 28 /**< \brief (HMATRIXB_PRAS) Master 7 Priority */ 155 #define HMATRIXB_PRAS_M7PR_Msk (_U_(0xF) << HMATRIXB_PRAS_M7PR_Pos) 156 #define HMATRIXB_PRAS_M7PR(value) (HMATRIXB_PRAS_M7PR_Msk & ((value) << HMATRIXB_PRAS_M7PR_Pos)) 157 #define HMATRIXB_PRAS_MASK _U_(0xFFFFFFFF) /**< \brief (HMATRIXB_PRAS) MASK Register */ 158 159 /* -------- HMATRIXB_PRBS : (HMATRIXB Offset: 0x084) (R/W 32) PRS Priority B for Slave -------- */ 160 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 161 typedef union { 162 struct { 163 uint32_t M8PR:4; /*!< bit: 0.. 3 Master 8 Priority */ 164 uint32_t M9PR:4; /*!< bit: 4.. 7 Master 9 Priority */ 165 uint32_t M10PR:4; /*!< bit: 8..11 Master 10 Priority */ 166 uint32_t M11PR:4; /*!< bit: 12..15 Master 11 Priority */ 167 uint32_t M12PR:4; /*!< bit: 16..19 Master 12 Priority */ 168 uint32_t M13PR:4; /*!< bit: 20..23 Master 13 Priority */ 169 uint32_t M14PR:4; /*!< bit: 24..27 Master 14 Priority */ 170 uint32_t M15PR:4; /*!< bit: 28..31 Master 15 Priority */ 171 } bit; /*!< Structure used for bit access */ 172 uint32_t reg; /*!< Type used for register access */ 173 } HMATRIXB_PRBS_Type; 174 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 175 176 #define HMATRIXB_PRBS_OFFSET 0x084 /**< \brief (HMATRIXB_PRBS offset) Priority B for Slave */ 177 #define HMATRIXB_PRBS_RESETVALUE _U_(0x00000000) /**< \brief (HMATRIXB_PRBS reset_value) Priority B for Slave */ 178 179 #define HMATRIXB_PRBS_M8PR_Pos 0 /**< \brief (HMATRIXB_PRBS) Master 8 Priority */ 180 #define HMATRIXB_PRBS_M8PR_Msk (_U_(0xF) << HMATRIXB_PRBS_M8PR_Pos) 181 #define HMATRIXB_PRBS_M8PR(value) (HMATRIXB_PRBS_M8PR_Msk & ((value) << HMATRIXB_PRBS_M8PR_Pos)) 182 #define HMATRIXB_PRBS_M9PR_Pos 4 /**< \brief (HMATRIXB_PRBS) Master 9 Priority */ 183 #define HMATRIXB_PRBS_M9PR_Msk (_U_(0xF) << HMATRIXB_PRBS_M9PR_Pos) 184 #define HMATRIXB_PRBS_M9PR(value) (HMATRIXB_PRBS_M9PR_Msk & ((value) << HMATRIXB_PRBS_M9PR_Pos)) 185 #define HMATRIXB_PRBS_M10PR_Pos 8 /**< \brief (HMATRIXB_PRBS) Master 10 Priority */ 186 #define HMATRIXB_PRBS_M10PR_Msk (_U_(0xF) << HMATRIXB_PRBS_M10PR_Pos) 187 #define HMATRIXB_PRBS_M10PR(value) (HMATRIXB_PRBS_M10PR_Msk & ((value) << HMATRIXB_PRBS_M10PR_Pos)) 188 #define HMATRIXB_PRBS_M11PR_Pos 12 /**< \brief (HMATRIXB_PRBS) Master 11 Priority */ 189 #define HMATRIXB_PRBS_M11PR_Msk (_U_(0xF) << HMATRIXB_PRBS_M11PR_Pos) 190 #define HMATRIXB_PRBS_M11PR(value) (HMATRIXB_PRBS_M11PR_Msk & ((value) << HMATRIXB_PRBS_M11PR_Pos)) 191 #define HMATRIXB_PRBS_M12PR_Pos 16 /**< \brief (HMATRIXB_PRBS) Master 12 Priority */ 192 #define HMATRIXB_PRBS_M12PR_Msk (_U_(0xF) << HMATRIXB_PRBS_M12PR_Pos) 193 #define HMATRIXB_PRBS_M12PR(value) (HMATRIXB_PRBS_M12PR_Msk & ((value) << HMATRIXB_PRBS_M12PR_Pos)) 194 #define HMATRIXB_PRBS_M13PR_Pos 20 /**< \brief (HMATRIXB_PRBS) Master 13 Priority */ 195 #define HMATRIXB_PRBS_M13PR_Msk (_U_(0xF) << HMATRIXB_PRBS_M13PR_Pos) 196 #define HMATRIXB_PRBS_M13PR(value) (HMATRIXB_PRBS_M13PR_Msk & ((value) << HMATRIXB_PRBS_M13PR_Pos)) 197 #define HMATRIXB_PRBS_M14PR_Pos 24 /**< \brief (HMATRIXB_PRBS) Master 14 Priority */ 198 #define HMATRIXB_PRBS_M14PR_Msk (_U_(0xF) << HMATRIXB_PRBS_M14PR_Pos) 199 #define HMATRIXB_PRBS_M14PR(value) (HMATRIXB_PRBS_M14PR_Msk & ((value) << HMATRIXB_PRBS_M14PR_Pos)) 200 #define HMATRIXB_PRBS_M15PR_Pos 28 /**< \brief (HMATRIXB_PRBS) Master 15 Priority */ 201 #define HMATRIXB_PRBS_M15PR_Msk (_U_(0xF) << HMATRIXB_PRBS_M15PR_Pos) 202 #define HMATRIXB_PRBS_M15PR(value) (HMATRIXB_PRBS_M15PR_Msk & ((value) << HMATRIXB_PRBS_M15PR_Pos)) 203 #define HMATRIXB_PRBS_MASK _U_(0xFFFFFFFF) /**< \brief (HMATRIXB_PRBS) MASK Register */ 204 205 /* -------- HMATRIXB_MRCR : (HMATRIXB Offset: 0x100) (R/W 32) Master Remap Control -------- */ 206 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 207 typedef union { 208 struct { 209 uint32_t RCB0:1; /*!< bit: 0 Remap Command Bit for Master 0 */ 210 uint32_t RCB1:1; /*!< bit: 1 Remap Command Bit for Master 1 */ 211 uint32_t RCB2:1; /*!< bit: 2 Remap Command Bit for Master 2 */ 212 uint32_t RCB3:1; /*!< bit: 3 Remap Command Bit for Master 3 */ 213 uint32_t RCB4:1; /*!< bit: 4 Remap Command Bit for Master 4 */ 214 uint32_t RCB5:1; /*!< bit: 5 Remap Command Bit for Master 5 */ 215 uint32_t RCB6:1; /*!< bit: 6 Remap Command Bit for Master 6 */ 216 uint32_t RCB7:1; /*!< bit: 7 Remap Command Bit for Master 7 */ 217 uint32_t RCB8:1; /*!< bit: 8 Remap Command Bit for Master 8 */ 218 uint32_t RCB9:1; /*!< bit: 9 Remap Command Bit for Master 9 */ 219 uint32_t RCB10:1; /*!< bit: 10 Remap Command Bit for Master 10 */ 220 uint32_t RCB11:1; /*!< bit: 11 Remap Command Bit for Master 11 */ 221 uint32_t RCB12:1; /*!< bit: 12 Remap Command Bit for Master 12 */ 222 uint32_t RCB13:1; /*!< bit: 13 Remap Command Bit for Master 13 */ 223 uint32_t RCB14:1; /*!< bit: 14 Remap Command Bit for Master 14 */ 224 uint32_t RCB15:1; /*!< bit: 15 Remap Command Bit for Master 15 */ 225 uint32_t :16; /*!< bit: 16..31 Reserved */ 226 } bit; /*!< Structure used for bit access */ 227 uint32_t reg; /*!< Type used for register access */ 228 } HMATRIXB_MRCR_Type; 229 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 230 231 #define HMATRIXB_MRCR_OFFSET 0x100 /**< \brief (HMATRIXB_MRCR offset) Master Remap Control */ 232 #define HMATRIXB_MRCR_RESETVALUE _U_(0x00000000) /**< \brief (HMATRIXB_MRCR reset_value) Master Remap Control */ 233 234 #define HMATRIXB_MRCR_RCB0_Pos 0 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 0 */ 235 #define HMATRIXB_MRCR_RCB0 (_U_(0x1) << HMATRIXB_MRCR_RCB0_Pos) 236 #define HMATRIXB_MRCR_RCB0_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 237 #define HMATRIXB_MRCR_RCB0_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 238 #define HMATRIXB_MRCR_RCB0_DIS (HMATRIXB_MRCR_RCB0_DIS_Val << HMATRIXB_MRCR_RCB0_Pos) 239 #define HMATRIXB_MRCR_RCB0_ENA (HMATRIXB_MRCR_RCB0_ENA_Val << HMATRIXB_MRCR_RCB0_Pos) 240 #define HMATRIXB_MRCR_RCB1_Pos 1 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 1 */ 241 #define HMATRIXB_MRCR_RCB1 (_U_(0x1) << HMATRIXB_MRCR_RCB1_Pos) 242 #define HMATRIXB_MRCR_RCB1_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 243 #define HMATRIXB_MRCR_RCB1_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 244 #define HMATRIXB_MRCR_RCB1_DIS (HMATRIXB_MRCR_RCB1_DIS_Val << HMATRIXB_MRCR_RCB1_Pos) 245 #define HMATRIXB_MRCR_RCB1_ENA (HMATRIXB_MRCR_RCB1_ENA_Val << HMATRIXB_MRCR_RCB1_Pos) 246 #define HMATRIXB_MRCR_RCB2_Pos 2 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 2 */ 247 #define HMATRIXB_MRCR_RCB2 (_U_(0x1) << HMATRIXB_MRCR_RCB2_Pos) 248 #define HMATRIXB_MRCR_RCB2_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 249 #define HMATRIXB_MRCR_RCB2_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 250 #define HMATRIXB_MRCR_RCB2_DIS (HMATRIXB_MRCR_RCB2_DIS_Val << HMATRIXB_MRCR_RCB2_Pos) 251 #define HMATRIXB_MRCR_RCB2_ENA (HMATRIXB_MRCR_RCB2_ENA_Val << HMATRIXB_MRCR_RCB2_Pos) 252 #define HMATRIXB_MRCR_RCB3_Pos 3 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 3 */ 253 #define HMATRIXB_MRCR_RCB3 (_U_(0x1) << HMATRIXB_MRCR_RCB3_Pos) 254 #define HMATRIXB_MRCR_RCB3_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 255 #define HMATRIXB_MRCR_RCB3_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 256 #define HMATRIXB_MRCR_RCB3_DIS (HMATRIXB_MRCR_RCB3_DIS_Val << HMATRIXB_MRCR_RCB3_Pos) 257 #define HMATRIXB_MRCR_RCB3_ENA (HMATRIXB_MRCR_RCB3_ENA_Val << HMATRIXB_MRCR_RCB3_Pos) 258 #define HMATRIXB_MRCR_RCB4_Pos 4 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 4 */ 259 #define HMATRIXB_MRCR_RCB4 (_U_(0x1) << HMATRIXB_MRCR_RCB4_Pos) 260 #define HMATRIXB_MRCR_RCB4_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 261 #define HMATRIXB_MRCR_RCB4_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 262 #define HMATRIXB_MRCR_RCB4_DIS (HMATRIXB_MRCR_RCB4_DIS_Val << HMATRIXB_MRCR_RCB4_Pos) 263 #define HMATRIXB_MRCR_RCB4_ENA (HMATRIXB_MRCR_RCB4_ENA_Val << HMATRIXB_MRCR_RCB4_Pos) 264 #define HMATRIXB_MRCR_RCB5_Pos 5 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 5 */ 265 #define HMATRIXB_MRCR_RCB5 (_U_(0x1) << HMATRIXB_MRCR_RCB5_Pos) 266 #define HMATRIXB_MRCR_RCB5_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 267 #define HMATRIXB_MRCR_RCB5_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 268 #define HMATRIXB_MRCR_RCB5_DIS (HMATRIXB_MRCR_RCB5_DIS_Val << HMATRIXB_MRCR_RCB5_Pos) 269 #define HMATRIXB_MRCR_RCB5_ENA (HMATRIXB_MRCR_RCB5_ENA_Val << HMATRIXB_MRCR_RCB5_Pos) 270 #define HMATRIXB_MRCR_RCB6_Pos 6 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 6 */ 271 #define HMATRIXB_MRCR_RCB6 (_U_(0x1) << HMATRIXB_MRCR_RCB6_Pos) 272 #define HMATRIXB_MRCR_RCB6_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 273 #define HMATRIXB_MRCR_RCB6_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 274 #define HMATRIXB_MRCR_RCB6_DIS (HMATRIXB_MRCR_RCB6_DIS_Val << HMATRIXB_MRCR_RCB6_Pos) 275 #define HMATRIXB_MRCR_RCB6_ENA (HMATRIXB_MRCR_RCB6_ENA_Val << HMATRIXB_MRCR_RCB6_Pos) 276 #define HMATRIXB_MRCR_RCB7_Pos 7 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 7 */ 277 #define HMATRIXB_MRCR_RCB7 (_U_(0x1) << HMATRIXB_MRCR_RCB7_Pos) 278 #define HMATRIXB_MRCR_RCB7_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 279 #define HMATRIXB_MRCR_RCB7_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 280 #define HMATRIXB_MRCR_RCB7_DIS (HMATRIXB_MRCR_RCB7_DIS_Val << HMATRIXB_MRCR_RCB7_Pos) 281 #define HMATRIXB_MRCR_RCB7_ENA (HMATRIXB_MRCR_RCB7_ENA_Val << HMATRIXB_MRCR_RCB7_Pos) 282 #define HMATRIXB_MRCR_RCB8_Pos 8 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 8 */ 283 #define HMATRIXB_MRCR_RCB8 (_U_(0x1) << HMATRIXB_MRCR_RCB8_Pos) 284 #define HMATRIXB_MRCR_RCB8_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 285 #define HMATRIXB_MRCR_RCB8_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 286 #define HMATRIXB_MRCR_RCB8_DIS (HMATRIXB_MRCR_RCB8_DIS_Val << HMATRIXB_MRCR_RCB8_Pos) 287 #define HMATRIXB_MRCR_RCB8_ENA (HMATRIXB_MRCR_RCB8_ENA_Val << HMATRIXB_MRCR_RCB8_Pos) 288 #define HMATRIXB_MRCR_RCB9_Pos 9 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 9 */ 289 #define HMATRIXB_MRCR_RCB9 (_U_(0x1) << HMATRIXB_MRCR_RCB9_Pos) 290 #define HMATRIXB_MRCR_RCB9_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 291 #define HMATRIXB_MRCR_RCB9_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 292 #define HMATRIXB_MRCR_RCB9_DIS (HMATRIXB_MRCR_RCB9_DIS_Val << HMATRIXB_MRCR_RCB9_Pos) 293 #define HMATRIXB_MRCR_RCB9_ENA (HMATRIXB_MRCR_RCB9_ENA_Val << HMATRIXB_MRCR_RCB9_Pos) 294 #define HMATRIXB_MRCR_RCB10_Pos 10 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 10 */ 295 #define HMATRIXB_MRCR_RCB10 (_U_(0x1) << HMATRIXB_MRCR_RCB10_Pos) 296 #define HMATRIXB_MRCR_RCB10_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 297 #define HMATRIXB_MRCR_RCB10_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 298 #define HMATRIXB_MRCR_RCB10_DIS (HMATRIXB_MRCR_RCB10_DIS_Val << HMATRIXB_MRCR_RCB10_Pos) 299 #define HMATRIXB_MRCR_RCB10_ENA (HMATRIXB_MRCR_RCB10_ENA_Val << HMATRIXB_MRCR_RCB10_Pos) 300 #define HMATRIXB_MRCR_RCB11_Pos 11 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 11 */ 301 #define HMATRIXB_MRCR_RCB11 (_U_(0x1) << HMATRIXB_MRCR_RCB11_Pos) 302 #define HMATRIXB_MRCR_RCB11_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 303 #define HMATRIXB_MRCR_RCB11_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 304 #define HMATRIXB_MRCR_RCB11_DIS (HMATRIXB_MRCR_RCB11_DIS_Val << HMATRIXB_MRCR_RCB11_Pos) 305 #define HMATRIXB_MRCR_RCB11_ENA (HMATRIXB_MRCR_RCB11_ENA_Val << HMATRIXB_MRCR_RCB11_Pos) 306 #define HMATRIXB_MRCR_RCB12_Pos 12 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 12 */ 307 #define HMATRIXB_MRCR_RCB12 (_U_(0x1) << HMATRIXB_MRCR_RCB12_Pos) 308 #define HMATRIXB_MRCR_RCB12_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 309 #define HMATRIXB_MRCR_RCB12_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 310 #define HMATRIXB_MRCR_RCB12_DIS (HMATRIXB_MRCR_RCB12_DIS_Val << HMATRIXB_MRCR_RCB12_Pos) 311 #define HMATRIXB_MRCR_RCB12_ENA (HMATRIXB_MRCR_RCB12_ENA_Val << HMATRIXB_MRCR_RCB12_Pos) 312 #define HMATRIXB_MRCR_RCB13_Pos 13 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 13 */ 313 #define HMATRIXB_MRCR_RCB13 (_U_(0x1) << HMATRIXB_MRCR_RCB13_Pos) 314 #define HMATRIXB_MRCR_RCB13_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 315 #define HMATRIXB_MRCR_RCB13_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 316 #define HMATRIXB_MRCR_RCB13_DIS (HMATRIXB_MRCR_RCB13_DIS_Val << HMATRIXB_MRCR_RCB13_Pos) 317 #define HMATRIXB_MRCR_RCB13_ENA (HMATRIXB_MRCR_RCB13_ENA_Val << HMATRIXB_MRCR_RCB13_Pos) 318 #define HMATRIXB_MRCR_RCB14_Pos 14 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 14 */ 319 #define HMATRIXB_MRCR_RCB14 (_U_(0x1) << HMATRIXB_MRCR_RCB14_Pos) 320 #define HMATRIXB_MRCR_RCB14_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 321 #define HMATRIXB_MRCR_RCB14_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 322 #define HMATRIXB_MRCR_RCB14_DIS (HMATRIXB_MRCR_RCB14_DIS_Val << HMATRIXB_MRCR_RCB14_Pos) 323 #define HMATRIXB_MRCR_RCB14_ENA (HMATRIXB_MRCR_RCB14_ENA_Val << HMATRIXB_MRCR_RCB14_Pos) 324 #define HMATRIXB_MRCR_RCB15_Pos 15 /**< \brief (HMATRIXB_MRCR) Remap Command Bit for Master 15 */ 325 #define HMATRIXB_MRCR_RCB15 (_U_(0x1) << HMATRIXB_MRCR_RCB15_Pos) 326 #define HMATRIXB_MRCR_RCB15_DIS_Val _U_(0x0) /**< \brief (HMATRIXB_MRCR) Disable remapped address decoding for master */ 327 #define HMATRIXB_MRCR_RCB15_ENA_Val _U_(0x1) /**< \brief (HMATRIXB_MRCR) Enable remapped address decoding for master */ 328 #define HMATRIXB_MRCR_RCB15_DIS (HMATRIXB_MRCR_RCB15_DIS_Val << HMATRIXB_MRCR_RCB15_Pos) 329 #define HMATRIXB_MRCR_RCB15_ENA (HMATRIXB_MRCR_RCB15_ENA_Val << HMATRIXB_MRCR_RCB15_Pos) 330 #define HMATRIXB_MRCR_MASK _U_(0x0000FFFF) /**< \brief (HMATRIXB_MRCR) MASK Register */ 331 332 /* -------- HMATRIXB_SFR : (HMATRIXB Offset: 0x110) (R/W 32) Special Function -------- */ 333 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 334 typedef union { 335 struct { 336 uint32_t SFR:32; /*!< bit: 0..31 Special Function Register */ 337 } bit; /*!< Structure used for bit access */ 338 uint32_t reg; /*!< Type used for register access */ 339 } HMATRIXB_SFR_Type; 340 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 341 342 #define HMATRIXB_SFR_OFFSET 0x110 /**< \brief (HMATRIXB_SFR offset) Special Function */ 343 #define HMATRIXB_SFR_RESETVALUE _U_(0x00000000) /**< \brief (HMATRIXB_SFR reset_value) Special Function */ 344 345 #define HMATRIXB_SFR_SFR_Pos 0 /**< \brief (HMATRIXB_SFR) Special Function Register */ 346 #define HMATRIXB_SFR_SFR_Msk (_U_(0xFFFFFFFF) << HMATRIXB_SFR_SFR_Pos) 347 #define HMATRIXB_SFR_SFR(value) (HMATRIXB_SFR_SFR_Msk & ((value) << HMATRIXB_SFR_SFR_Pos)) 348 #define HMATRIXB_SFR_MASK _U_(0xFFFFFFFF) /**< \brief (HMATRIXB_SFR) MASK Register */ 349 350 /** \brief HmatrixbPrs hardware registers */ 351 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 352 typedef struct { 353 __IO HMATRIXB_PRAS_Type PRAS; /**< \brief Offset: 0x000 (R/W 32) Priority A for Slave */ 354 __IO HMATRIXB_PRBS_Type PRBS; /**< \brief Offset: 0x004 (R/W 32) Priority B for Slave */ 355 } HmatrixbPrs; 356 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 357 358 /** \brief HMATRIXB hardware registers */ 359 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 360 typedef struct { 361 __IO HMATRIXB_MCFG_Type MCFG[16]; /**< \brief Offset: 0x000 (R/W 32) Master Configuration */ 362 __IO HMATRIXB_SCFG_Type SCFG[16]; /**< \brief Offset: 0x040 (R/W 32) Slave Configuration */ 363 HmatrixbPrs Prs[4]; /**< \brief Offset: 0x080 HmatrixbPrs groups [CLK_AHB_ID] */ 364 RoReg8 Reserved1[0x60]; 365 __IO HMATRIXB_MRCR_Type MRCR; /**< \brief Offset: 0x100 (R/W 32) Master Remap Control */ 366 RoReg8 Reserved2[0xC]; 367 __IO HMATRIXB_SFR_Type SFR[16]; /**< \brief Offset: 0x110 (R/W 32) Special Function */ 368 } Hmatrixb; 369 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */ 370 371 /*@}*/ 372 373 #endif /* _SAMC21_HMATRIXB_COMPONENT_ */ 374