2 ** ###################################################################
3 ** Compilers: Keil ARM C/C++ Compiler
4 ** Freescale C/C++ for Embedded ARM
6 ** IAR ANSI C/C++ Compiler for ARM
8 ** Reference manual: K64P144M120SF5RM, Rev.2, January 2014
9 ** Version: rev. 2.5, 2014-02-10
13 ** Extension to the CMSIS register access layer header.
15 ** Copyright (c) 2014 Freescale Semiconductor, Inc.
16 ** All rights reserved.
18 ** Redistribution and use in source and binary forms, with or without modification,
19 ** are permitted provided that the following conditions are met:
21 ** o Redistributions of source code must retain the above copyright notice, this list
22 ** of conditions and the following disclaimer.
24 ** o Redistributions in binary form must reproduce the above copyright notice, this
25 ** list of conditions and the following disclaimer in the documentation and/or
26 ** other materials provided with the distribution.
28 ** o Neither the name of Freescale Semiconductor, Inc. nor the names of its
29 ** contributors may be used to endorse or promote products derived from this
30 ** software without specific prior written permission.
32 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
33 ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
34 ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
35 ** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
36 ** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
37 ** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
38 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
39 ** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
40 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
41 ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
43 ** http: www.freescale.com
44 ** mail: support@freescale.com
47 ** - rev. 1.0 (2013-08-12)
49 ** - rev. 2.0 (2013-10-29)
50 ** Register accessor macros added to the memory map.
51 ** Symbols for Processor Expert memory map compatibility added to the memory map.
52 ** Startup file for gcc has been updated according to CMSIS 3.2.
53 ** System initialization updated.
54 ** MCG - registers updated.
55 ** PORTA, PORTB, PORTC, PORTE - registers for digital filter removed.
56 ** - rev. 2.1 (2013-10-30)
57 ** Definition of BITBAND macros updated to support peripherals with 32-bit acces disabled.
58 ** - rev. 2.2 (2013-12-09)
59 ** DMA - EARS register removed.
60 ** AIPS0, AIPS1 - MPRA register updated.
61 ** - rev. 2.3 (2014-01-24)
62 ** Update according to reference manual rev. 2
63 ** ENET, MCG, MCM, SIM, USB - registers updated
64 ** - rev. 2.4 (2014-02-10)
65 ** The declaration of clock configurations has been moved to separate header file system_MK64F12.h
66 ** Update of SystemInit() and SystemCoreClockUpdate() functions.
67 ** - rev. 2.5 (2014-02-10)
68 ** The declaration of clock configurations has been moved to separate header file system_MK64F12.h
69 ** Update of SystemInit() and SystemCoreClockUpdate() functions.
70 ** Module access macro module_BASES replaced by module_BASE_PTRS.
72 ** ###################################################################
76 * WARNING! DO NOT EDIT THIS FILE DIRECTLY!
78 * This file was generated automatically and any changes may be lost.
80 #ifndef __HW_AXBS_REGISTERS_H__
81 #define __HW_AXBS_REGISTERS_H__
84 #include "fsl_bitaccess.h"
91 * Registers defined in this header file:
92 * - HW_AXBS_PRSn - Priority Registers Slave
93 * - HW_AXBS_CRSn - Control Register
94 * - HW_AXBS_MGPCR0 - Master General Purpose Control Register
95 * - HW_AXBS_MGPCR1 - Master General Purpose Control Register
96 * - HW_AXBS_MGPCR2 - Master General Purpose Control Register
97 * - HW_AXBS_MGPCR3 - Master General Purpose Control Register
98 * - HW_AXBS_MGPCR4 - Master General Purpose Control Register
99 * - HW_AXBS_MGPCR5 - Master General Purpose Control Register
101 * - hw_axbs_t - Struct containing all module registers.
104 #define HW_AXBS_INSTANCE_COUNT (1U) /*!< Number of instances of the AXBS module. */
106 /*******************************************************************************
107 * HW_AXBS_PRSn - Priority Registers Slave
108 ******************************************************************************/
111 * @brief HW_AXBS_PRSn - Priority Registers Slave (RW)
113 * Reset value: 0x00543210U
115 * The priority registers (PRSn) set the priority of each master port on a per
116 * slave port basis and reside in each slave port. The priority register can be
117 * accessed only with 32-bit accesses. After the CRSn[RO] bit is set, the PRSn
118 * register can only be read; attempts to write to it have no effect on PRSn and
119 * result in a bus-error response to the master initiating the write. Two available
120 * masters must not be programmed with the same priority level. Attempts to
121 * program two or more masters with the same priority level result in a bus-error
122 * response and the PRSn is not updated. Valid values for the Mn priority fields
123 * depend on which masters are available on the chip. This information can be found in
124 * the chip-specific information for the crossbar. If the chip contains less
125 * than five masters, values 0 to 3 are valid. Writing other values will result in
126 * an error. If the chip contains five or more masters, valid values are 0 to n-1,
127 * where n is the number of masters attached to the AXBS module. Other values
128 * will result in an error.
130 typedef union _hw_axbs_prsn
133 struct _hw_axbs_prsn_bitfields
135 uint32_t M0
: 3; /*!< [2:0] Master 0 Priority. Sets the arbitration
136 * priority for this port on the associated slave port. */
137 uint32_t RESERVED0
: 1; /*!< [3] */
138 uint32_t M1
: 3; /*!< [6:4] Master 1 Priority. Sets the arbitration
139 * priority for this port on the associated slave port. */
140 uint32_t RESERVED1
: 1; /*!< [7] */
141 uint32_t M2
: 3; /*!< [10:8] Master 2 Priority. Sets the arbitration
142 * priority for this port on the associated slave port. */
143 uint32_t RESERVED2
: 1; /*!< [11] */
144 uint32_t M3
: 3; /*!< [14:12] Master 3 Priority. Sets the arbitration
145 * priority for this port on the associated slave port. */
146 uint32_t RESERVED3
: 1; /*!< [15] */
147 uint32_t M4
: 3; /*!< [18:16] Master 4 Priority. Sets the arbitration
148 * priority for this port on the associated slave port. */
149 uint32_t RESERVED4
: 1; /*!< [19] */
150 uint32_t M5
: 3; /*!< [22:20] Master 5 Priority. Sets the arbitration
151 * priority for this port on the associated slave port. */
152 uint32_t RESERVED5
: 9; /*!< [31:23] */
157 * @name Constants and macros for entire AXBS_PRSn register
160 #define HW_AXBS_PRSn_COUNT (5U)
162 #define HW_AXBS_PRSn_ADDR(x, n) ((x) + 0x0U + (0x100U * (n)))
164 #define HW_AXBS_PRSn(x, n) (*(__IO hw_axbs_prsn_t *) HW_AXBS_PRSn_ADDR(x, n))
165 #define HW_AXBS_PRSn_RD(x, n) (HW_AXBS_PRSn(x, n).U)
166 #define HW_AXBS_PRSn_WR(x, n, v) (HW_AXBS_PRSn(x, n).U = (v))
167 #define HW_AXBS_PRSn_SET(x, n, v) (HW_AXBS_PRSn_WR(x, n, HW_AXBS_PRSn_RD(x, n) | (v)))
168 #define HW_AXBS_PRSn_CLR(x, n, v) (HW_AXBS_PRSn_WR(x, n, HW_AXBS_PRSn_RD(x, n) & ~(v)))
169 #define HW_AXBS_PRSn_TOG(x, n, v) (HW_AXBS_PRSn_WR(x, n, HW_AXBS_PRSn_RD(x, n) ^ (v)))
173 * Constants & macros for individual AXBS_PRSn bitfields
177 * @name Register AXBS_PRSn, field M0[2:0] (RW)
180 * - 000 - This master has level 1, or highest, priority when accessing the
182 * - 001 - This master has level 2 priority when accessing the slave port.
183 * - 010 - This master has level 3 priority when accessing the slave port.
184 * - 011 - This master has level 4 priority when accessing the slave port.
185 * - 100 - This master has level 5 priority when accessing the slave port.
186 * - 101 - This master has level 6 priority when accessing the slave port.
187 * - 110 - This master has level 7 priority when accessing the slave port.
188 * - 111 - This master has level 8, or lowest, priority when accessing the slave
192 #define BP_AXBS_PRSn_M0 (0U) /*!< Bit position for AXBS_PRSn_M0. */
193 #define BM_AXBS_PRSn_M0 (0x00000007U) /*!< Bit mask for AXBS_PRSn_M0. */
194 #define BS_AXBS_PRSn_M0 (3U) /*!< Bit field size in bits for AXBS_PRSn_M0. */
196 /*! @brief Read current value of the AXBS_PRSn_M0 field. */
197 #define BR_AXBS_PRSn_M0(x, n) (HW_AXBS_PRSn(x, n).B.M0)
199 /*! @brief Format value for bitfield AXBS_PRSn_M0. */
200 #define BF_AXBS_PRSn_M0(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_PRSn_M0) & BM_AXBS_PRSn_M0)
202 /*! @brief Set the M0 field to a new value. */
203 #define BW_AXBS_PRSn_M0(x, n, v) (HW_AXBS_PRSn_WR(x, n, (HW_AXBS_PRSn_RD(x, n) & ~BM_AXBS_PRSn_M0) | BF_AXBS_PRSn_M0(v)))
207 * @name Register AXBS_PRSn, field M1[6:4] (RW)
210 * - 000 - This master has level 1, or highest, priority when accessing the
212 * - 001 - This master has level 2 priority when accessing the slave port.
213 * - 010 - This master has level 3 priority when accessing the slave port.
214 * - 011 - This master has level 4 priority when accessing the slave port.
215 * - 100 - This master has level 5 priority when accessing the slave port.
216 * - 101 - This master has level 6 priority when accessing the slave port.
217 * - 110 - This master has level 7 priority when accessing the slave port.
218 * - 111 - This master has level 8, or lowest, priority when accessing the slave
222 #define BP_AXBS_PRSn_M1 (4U) /*!< Bit position for AXBS_PRSn_M1. */
223 #define BM_AXBS_PRSn_M1 (0x00000070U) /*!< Bit mask for AXBS_PRSn_M1. */
224 #define BS_AXBS_PRSn_M1 (3U) /*!< Bit field size in bits for AXBS_PRSn_M1. */
226 /*! @brief Read current value of the AXBS_PRSn_M1 field. */
227 #define BR_AXBS_PRSn_M1(x, n) (HW_AXBS_PRSn(x, n).B.M1)
229 /*! @brief Format value for bitfield AXBS_PRSn_M1. */
230 #define BF_AXBS_PRSn_M1(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_PRSn_M1) & BM_AXBS_PRSn_M1)
232 /*! @brief Set the M1 field to a new value. */
233 #define BW_AXBS_PRSn_M1(x, n, v) (HW_AXBS_PRSn_WR(x, n, (HW_AXBS_PRSn_RD(x, n) & ~BM_AXBS_PRSn_M1) | BF_AXBS_PRSn_M1(v)))
237 * @name Register AXBS_PRSn, field M2[10:8] (RW)
240 * - 000 - This master has level 1, or highest, priority when accessing the
242 * - 001 - This master has level 2 priority when accessing the slave port.
243 * - 010 - This master has level 3 priority when accessing the slave port.
244 * - 011 - This master has level 4 priority when accessing the slave port.
245 * - 100 - This master has level 5 priority when accessing the slave port.
246 * - 101 - This master has level 6 priority when accessing the slave port.
247 * - 110 - This master has level 7 priority when accessing the slave port.
248 * - 111 - This master has level 8, or lowest, priority when accessing the slave
252 #define BP_AXBS_PRSn_M2 (8U) /*!< Bit position for AXBS_PRSn_M2. */
253 #define BM_AXBS_PRSn_M2 (0x00000700U) /*!< Bit mask for AXBS_PRSn_M2. */
254 #define BS_AXBS_PRSn_M2 (3U) /*!< Bit field size in bits for AXBS_PRSn_M2. */
256 /*! @brief Read current value of the AXBS_PRSn_M2 field. */
257 #define BR_AXBS_PRSn_M2(x, n) (HW_AXBS_PRSn(x, n).B.M2)
259 /*! @brief Format value for bitfield AXBS_PRSn_M2. */
260 #define BF_AXBS_PRSn_M2(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_PRSn_M2) & BM_AXBS_PRSn_M2)
262 /*! @brief Set the M2 field to a new value. */
263 #define BW_AXBS_PRSn_M2(x, n, v) (HW_AXBS_PRSn_WR(x, n, (HW_AXBS_PRSn_RD(x, n) & ~BM_AXBS_PRSn_M2) | BF_AXBS_PRSn_M2(v)))
267 * @name Register AXBS_PRSn, field M3[14:12] (RW)
270 * - 000 - This master has level 1, or highest, priority when accessing the
272 * - 001 - This master has level 2 priority when accessing the slave port.
273 * - 010 - This master has level 3 priority when accessing the slave port.
274 * - 011 - This master has level 4 priority when accessing the slave port.
275 * - 100 - This master has level 5 priority when accessing the slave port.
276 * - 101 - This master has level 6 priority when accessing the slave port.
277 * - 110 - This master has level 7 priority when accessing the slave port.
278 * - 111 - This master has level 8, or lowest, priority when accessing the slave
282 #define BP_AXBS_PRSn_M3 (12U) /*!< Bit position for AXBS_PRSn_M3. */
283 #define BM_AXBS_PRSn_M3 (0x00007000U) /*!< Bit mask for AXBS_PRSn_M3. */
284 #define BS_AXBS_PRSn_M3 (3U) /*!< Bit field size in bits for AXBS_PRSn_M3. */
286 /*! @brief Read current value of the AXBS_PRSn_M3 field. */
287 #define BR_AXBS_PRSn_M3(x, n) (HW_AXBS_PRSn(x, n).B.M3)
289 /*! @brief Format value for bitfield AXBS_PRSn_M3. */
290 #define BF_AXBS_PRSn_M3(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_PRSn_M3) & BM_AXBS_PRSn_M3)
292 /*! @brief Set the M3 field to a new value. */
293 #define BW_AXBS_PRSn_M3(x, n, v) (HW_AXBS_PRSn_WR(x, n, (HW_AXBS_PRSn_RD(x, n) & ~BM_AXBS_PRSn_M3) | BF_AXBS_PRSn_M3(v)))
297 * @name Register AXBS_PRSn, field M4[18:16] (RW)
300 * - 000 - This master has level 1, or highest, priority when accessing the
302 * - 001 - This master has level 2 priority when accessing the slave port.
303 * - 010 - This master has level 3 priority when accessing the slave port.
304 * - 011 - This master has level 4 priority when accessing the slave port.
305 * - 100 - This master has level 5 priority when accessing the slave port.
306 * - 101 - This master has level 6 priority when accessing the slave port.
307 * - 110 - This master has level 7 priority when accessing the slave port.
308 * - 111 - This master has level 8, or lowest, priority when accessing the slave
312 #define BP_AXBS_PRSn_M4 (16U) /*!< Bit position for AXBS_PRSn_M4. */
313 #define BM_AXBS_PRSn_M4 (0x00070000U) /*!< Bit mask for AXBS_PRSn_M4. */
314 #define BS_AXBS_PRSn_M4 (3U) /*!< Bit field size in bits for AXBS_PRSn_M4. */
316 /*! @brief Read current value of the AXBS_PRSn_M4 field. */
317 #define BR_AXBS_PRSn_M4(x, n) (HW_AXBS_PRSn(x, n).B.M4)
319 /*! @brief Format value for bitfield AXBS_PRSn_M4. */
320 #define BF_AXBS_PRSn_M4(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_PRSn_M4) & BM_AXBS_PRSn_M4)
322 /*! @brief Set the M4 field to a new value. */
323 #define BW_AXBS_PRSn_M4(x, n, v) (HW_AXBS_PRSn_WR(x, n, (HW_AXBS_PRSn_RD(x, n) & ~BM_AXBS_PRSn_M4) | BF_AXBS_PRSn_M4(v)))
327 * @name Register AXBS_PRSn, field M5[22:20] (RW)
330 * - 000 - This master has level 1, or highest, priority when accessing the
332 * - 001 - This master has level 2 priority when accessing the slave port.
333 * - 010 - This master has level 3 priority when accessing the slave port.
334 * - 011 - This master has level 4 priority when accessing the slave port.
335 * - 100 - This master has level 5 priority when accessing the slave port.
336 * - 101 - This master has level 6 priority when accessing the slave port.
337 * - 110 - This master has level 7 priority when accessing the slave port.
338 * - 111 - This master has level 8, or lowest, priority when accessing the slave
342 #define BP_AXBS_PRSn_M5 (20U) /*!< Bit position for AXBS_PRSn_M5. */
343 #define BM_AXBS_PRSn_M5 (0x00700000U) /*!< Bit mask for AXBS_PRSn_M5. */
344 #define BS_AXBS_PRSn_M5 (3U) /*!< Bit field size in bits for AXBS_PRSn_M5. */
346 /*! @brief Read current value of the AXBS_PRSn_M5 field. */
347 #define BR_AXBS_PRSn_M5(x, n) (HW_AXBS_PRSn(x, n).B.M5)
349 /*! @brief Format value for bitfield AXBS_PRSn_M5. */
350 #define BF_AXBS_PRSn_M5(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_PRSn_M5) & BM_AXBS_PRSn_M5)
352 /*! @brief Set the M5 field to a new value. */
353 #define BW_AXBS_PRSn_M5(x, n, v) (HW_AXBS_PRSn_WR(x, n, (HW_AXBS_PRSn_RD(x, n) & ~BM_AXBS_PRSn_M5) | BF_AXBS_PRSn_M5(v)))
355 /*******************************************************************************
356 * HW_AXBS_CRSn - Control Register
357 ******************************************************************************/
360 * @brief HW_AXBS_CRSn - Control Register (RW)
362 * Reset value: 0x00000000U
364 * These registers control several features of each slave port and must be
365 * accessed using 32-bit accesses. After CRSn[RO] is set, the PRSn can only be read;
366 * attempts to write to it have no effect and result in an error response.
368 typedef union _hw_axbs_crsn
371 struct _hw_axbs_crsn_bitfields
373 uint32_t PARK
: 3; /*!< [2:0] Park */
374 uint32_t RESERVED0
: 1; /*!< [3] */
375 uint32_t PCTL
: 2; /*!< [5:4] Parking Control */
376 uint32_t RESERVED1
: 2; /*!< [7:6] */
377 uint32_t ARB
: 2; /*!< [9:8] Arbitration Mode */
378 uint32_t RESERVED2
: 20; /*!< [29:10] */
379 uint32_t HLP
: 1; /*!< [30] Halt Low Priority */
380 uint32_t RO
: 1; /*!< [31] Read Only */
385 * @name Constants and macros for entire AXBS_CRSn register
388 #define HW_AXBS_CRSn_COUNT (5U)
390 #define HW_AXBS_CRSn_ADDR(x, n) ((x) + 0x10U + (0x100U * (n)))
392 #define HW_AXBS_CRSn(x, n) (*(__IO hw_axbs_crsn_t *) HW_AXBS_CRSn_ADDR(x, n))
393 #define HW_AXBS_CRSn_RD(x, n) (HW_AXBS_CRSn(x, n).U)
394 #define HW_AXBS_CRSn_WR(x, n, v) (HW_AXBS_CRSn(x, n).U = (v))
395 #define HW_AXBS_CRSn_SET(x, n, v) (HW_AXBS_CRSn_WR(x, n, HW_AXBS_CRSn_RD(x, n) | (v)))
396 #define HW_AXBS_CRSn_CLR(x, n, v) (HW_AXBS_CRSn_WR(x, n, HW_AXBS_CRSn_RD(x, n) & ~(v)))
397 #define HW_AXBS_CRSn_TOG(x, n, v) (HW_AXBS_CRSn_WR(x, n, HW_AXBS_CRSn_RD(x, n) ^ (v)))
401 * Constants & macros for individual AXBS_CRSn bitfields
405 * @name Register AXBS_CRSn, field PARK[2:0] (RW)
407 * Determines which master port the current slave port parks on when no masters
408 * are actively making requests and the PCTL bits are cleared. Select only master
409 * ports that are present on the chip. Otherwise, undefined behavior might occur.
412 * - 000 - Park on master port M0
413 * - 001 - Park on master port M1
414 * - 010 - Park on master port M2
415 * - 011 - Park on master port M3
416 * - 100 - Park on master port M4
417 * - 101 - Park on master port M5
418 * - 110 - Park on master port M6
419 * - 111 - Park on master port M7
422 #define BP_AXBS_CRSn_PARK (0U) /*!< Bit position for AXBS_CRSn_PARK. */
423 #define BM_AXBS_CRSn_PARK (0x00000007U) /*!< Bit mask for AXBS_CRSn_PARK. */
424 #define BS_AXBS_CRSn_PARK (3U) /*!< Bit field size in bits for AXBS_CRSn_PARK. */
426 /*! @brief Read current value of the AXBS_CRSn_PARK field. */
427 #define BR_AXBS_CRSn_PARK(x, n) (HW_AXBS_CRSn(x, n).B.PARK)
429 /*! @brief Format value for bitfield AXBS_CRSn_PARK. */
430 #define BF_AXBS_CRSn_PARK(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_CRSn_PARK) & BM_AXBS_CRSn_PARK)
432 /*! @brief Set the PARK field to a new value. */
433 #define BW_AXBS_CRSn_PARK(x, n, v) (HW_AXBS_CRSn_WR(x, n, (HW_AXBS_CRSn_RD(x, n) & ~BM_AXBS_CRSn_PARK) | BF_AXBS_CRSn_PARK(v)))
437 * @name Register AXBS_CRSn, field PCTL[5:4] (RW)
439 * Determines the slave port's parking control. The low-power park feature
440 * results in an overall power savings if the slave port is not saturated. However,
441 * this forces an extra latency clock when any master tries to access the slave
442 * port while not in use because it is not parked on any master.
445 * - 00 - When no master makes a request, the arbiter parks the slave port on
446 * the master port defined by the PARK field
447 * - 01 - When no master makes a request, the arbiter parks the slave port on
448 * the last master to be in control of the slave port
449 * - 10 - When no master makes a request, the slave port is not parked on a
450 * master and the arbiter drives all outputs to a constant safe state
454 #define BP_AXBS_CRSn_PCTL (4U) /*!< Bit position for AXBS_CRSn_PCTL. */
455 #define BM_AXBS_CRSn_PCTL (0x00000030U) /*!< Bit mask for AXBS_CRSn_PCTL. */
456 #define BS_AXBS_CRSn_PCTL (2U) /*!< Bit field size in bits for AXBS_CRSn_PCTL. */
458 /*! @brief Read current value of the AXBS_CRSn_PCTL field. */
459 #define BR_AXBS_CRSn_PCTL(x, n) (HW_AXBS_CRSn(x, n).B.PCTL)
461 /*! @brief Format value for bitfield AXBS_CRSn_PCTL. */
462 #define BF_AXBS_CRSn_PCTL(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_CRSn_PCTL) & BM_AXBS_CRSn_PCTL)
464 /*! @brief Set the PCTL field to a new value. */
465 #define BW_AXBS_CRSn_PCTL(x, n, v) (HW_AXBS_CRSn_WR(x, n, (HW_AXBS_CRSn_RD(x, n) & ~BM_AXBS_CRSn_PCTL) | BF_AXBS_CRSn_PCTL(v)))
469 * @name Register AXBS_CRSn, field ARB[9:8] (RW)
471 * Selects the arbitration policy for the slave port.
474 * - 00 - Fixed priority
475 * - 01 - Round-robin, or rotating, priority
480 #define BP_AXBS_CRSn_ARB (8U) /*!< Bit position for AXBS_CRSn_ARB. */
481 #define BM_AXBS_CRSn_ARB (0x00000300U) /*!< Bit mask for AXBS_CRSn_ARB. */
482 #define BS_AXBS_CRSn_ARB (2U) /*!< Bit field size in bits for AXBS_CRSn_ARB. */
484 /*! @brief Read current value of the AXBS_CRSn_ARB field. */
485 #define BR_AXBS_CRSn_ARB(x, n) (HW_AXBS_CRSn(x, n).B.ARB)
487 /*! @brief Format value for bitfield AXBS_CRSn_ARB. */
488 #define BF_AXBS_CRSn_ARB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_CRSn_ARB) & BM_AXBS_CRSn_ARB)
490 /*! @brief Set the ARB field to a new value. */
491 #define BW_AXBS_CRSn_ARB(x, n, v) (HW_AXBS_CRSn_WR(x, n, (HW_AXBS_CRSn_RD(x, n) & ~BM_AXBS_CRSn_ARB) | BF_AXBS_CRSn_ARB(v)))
495 * @name Register AXBS_CRSn, field HLP[30] (RW)
497 * Sets the initial arbitration priority for low power mode requests . Setting
498 * this bit will not affect the request for low power mode from attaining highest
499 * priority once it has control of the slave ports.
502 * - 0 - The low power mode request has the highest priority for arbitration on
504 * - 1 - The low power mode request has the lowest initial priority for
505 * arbitration on this slave port
508 #define BP_AXBS_CRSn_HLP (30U) /*!< Bit position for AXBS_CRSn_HLP. */
509 #define BM_AXBS_CRSn_HLP (0x40000000U) /*!< Bit mask for AXBS_CRSn_HLP. */
510 #define BS_AXBS_CRSn_HLP (1U) /*!< Bit field size in bits for AXBS_CRSn_HLP. */
512 /*! @brief Read current value of the AXBS_CRSn_HLP field. */
513 #define BR_AXBS_CRSn_HLP(x, n) (BITBAND_ACCESS32(HW_AXBS_CRSn_ADDR(x, n), BP_AXBS_CRSn_HLP))
515 /*! @brief Format value for bitfield AXBS_CRSn_HLP. */
516 #define BF_AXBS_CRSn_HLP(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_CRSn_HLP) & BM_AXBS_CRSn_HLP)
518 /*! @brief Set the HLP field to a new value. */
519 #define BW_AXBS_CRSn_HLP(x, n, v) (BITBAND_ACCESS32(HW_AXBS_CRSn_ADDR(x, n), BP_AXBS_CRSn_HLP) = (v))
523 * @name Register AXBS_CRSn, field RO[31] (RW)
525 * Forces the slave port's CSRn and PRSn registers to be read-only. After set,
526 * only a hardware reset clears it.
529 * - 0 - The slave port's registers are writeable
530 * - 1 - The slave port's registers are read-only and cannot be written.
531 * Attempted writes have no effect on the registers and result in a bus error
535 #define BP_AXBS_CRSn_RO (31U) /*!< Bit position for AXBS_CRSn_RO. */
536 #define BM_AXBS_CRSn_RO (0x80000000U) /*!< Bit mask for AXBS_CRSn_RO. */
537 #define BS_AXBS_CRSn_RO (1U) /*!< Bit field size in bits for AXBS_CRSn_RO. */
539 /*! @brief Read current value of the AXBS_CRSn_RO field. */
540 #define BR_AXBS_CRSn_RO(x, n) (BITBAND_ACCESS32(HW_AXBS_CRSn_ADDR(x, n), BP_AXBS_CRSn_RO))
542 /*! @brief Format value for bitfield AXBS_CRSn_RO. */
543 #define BF_AXBS_CRSn_RO(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_CRSn_RO) & BM_AXBS_CRSn_RO)
545 /*! @brief Set the RO field to a new value. */
546 #define BW_AXBS_CRSn_RO(x, n, v) (BITBAND_ACCESS32(HW_AXBS_CRSn_ADDR(x, n), BP_AXBS_CRSn_RO) = (v))
549 /*******************************************************************************
550 * HW_AXBS_MGPCR0 - Master General Purpose Control Register
551 ******************************************************************************/
554 * @brief HW_AXBS_MGPCR0 - Master General Purpose Control Register (RW)
556 * Reset value: 0x00000000U
558 * The MGPCR controls only whether the master's undefined length burst accesses
559 * are allowed to complete uninterrupted or whether they can be broken by
560 * requests from higher priority masters. The MGPCR can be accessed only in Supervisor
561 * mode with 32-bit accesses.
563 typedef union _hw_axbs_mgpcr0
566 struct _hw_axbs_mgpcr0_bitfields
568 uint32_t AULB
: 3; /*!< [2:0] Arbitrates On Undefined Length Bursts */
569 uint32_t RESERVED0
: 29; /*!< [31:3] */
574 * @name Constants and macros for entire AXBS_MGPCR0 register
577 #define HW_AXBS_MGPCR0_ADDR(x) ((x) + 0x800U)
579 #define HW_AXBS_MGPCR0(x) (*(__IO hw_axbs_mgpcr0_t *) HW_AXBS_MGPCR0_ADDR(x))
580 #define HW_AXBS_MGPCR0_RD(x) (HW_AXBS_MGPCR0(x).U)
581 #define HW_AXBS_MGPCR0_WR(x, v) (HW_AXBS_MGPCR0(x).U = (v))
582 #define HW_AXBS_MGPCR0_SET(x, v) (HW_AXBS_MGPCR0_WR(x, HW_AXBS_MGPCR0_RD(x) | (v)))
583 #define HW_AXBS_MGPCR0_CLR(x, v) (HW_AXBS_MGPCR0_WR(x, HW_AXBS_MGPCR0_RD(x) & ~(v)))
584 #define HW_AXBS_MGPCR0_TOG(x, v) (HW_AXBS_MGPCR0_WR(x, HW_AXBS_MGPCR0_RD(x) ^ (v)))
588 * Constants & macros for individual AXBS_MGPCR0 bitfields
592 * @name Register AXBS_MGPCR0, field AULB[2:0] (RW)
594 * Determines whether, and when, the crossbar switch arbitrates away the slave
595 * port the master owns when the master is performing undefined length burst
599 * - 000 - No arbitration is allowed during an undefined length burst
600 * - 001 - Arbitration is allowed at any time during an undefined length burst
601 * - 010 - Arbitration is allowed after four beats of an undefined length burst
602 * - 011 - Arbitration is allowed after eight beats of an undefined length burst
603 * - 100 - Arbitration is allowed after 16 beats of an undefined length burst
609 #define BP_AXBS_MGPCR0_AULB (0U) /*!< Bit position for AXBS_MGPCR0_AULB. */
610 #define BM_AXBS_MGPCR0_AULB (0x00000007U) /*!< Bit mask for AXBS_MGPCR0_AULB. */
611 #define BS_AXBS_MGPCR0_AULB (3U) /*!< Bit field size in bits for AXBS_MGPCR0_AULB. */
613 /*! @brief Read current value of the AXBS_MGPCR0_AULB field. */
614 #define BR_AXBS_MGPCR0_AULB(x) (HW_AXBS_MGPCR0(x).B.AULB)
616 /*! @brief Format value for bitfield AXBS_MGPCR0_AULB. */
617 #define BF_AXBS_MGPCR0_AULB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_MGPCR0_AULB) & BM_AXBS_MGPCR0_AULB)
619 /*! @brief Set the AULB field to a new value. */
620 #define BW_AXBS_MGPCR0_AULB(x, v) (HW_AXBS_MGPCR0_WR(x, (HW_AXBS_MGPCR0_RD(x) & ~BM_AXBS_MGPCR0_AULB) | BF_AXBS_MGPCR0_AULB(v)))
623 /*******************************************************************************
624 * HW_AXBS_MGPCR1 - Master General Purpose Control Register
625 ******************************************************************************/
628 * @brief HW_AXBS_MGPCR1 - Master General Purpose Control Register (RW)
630 * Reset value: 0x00000000U
632 * The MGPCR controls only whether the master's undefined length burst accesses
633 * are allowed to complete uninterrupted or whether they can be broken by
634 * requests from higher priority masters. The MGPCR can be accessed only in Supervisor
635 * mode with 32-bit accesses.
637 typedef union _hw_axbs_mgpcr1
640 struct _hw_axbs_mgpcr1_bitfields
642 uint32_t AULB
: 3; /*!< [2:0] Arbitrates On Undefined Length Bursts */
643 uint32_t RESERVED0
: 29; /*!< [31:3] */
648 * @name Constants and macros for entire AXBS_MGPCR1 register
651 #define HW_AXBS_MGPCR1_ADDR(x) ((x) + 0x900U)
653 #define HW_AXBS_MGPCR1(x) (*(__IO hw_axbs_mgpcr1_t *) HW_AXBS_MGPCR1_ADDR(x))
654 #define HW_AXBS_MGPCR1_RD(x) (HW_AXBS_MGPCR1(x).U)
655 #define HW_AXBS_MGPCR1_WR(x, v) (HW_AXBS_MGPCR1(x).U = (v))
656 #define HW_AXBS_MGPCR1_SET(x, v) (HW_AXBS_MGPCR1_WR(x, HW_AXBS_MGPCR1_RD(x) | (v)))
657 #define HW_AXBS_MGPCR1_CLR(x, v) (HW_AXBS_MGPCR1_WR(x, HW_AXBS_MGPCR1_RD(x) & ~(v)))
658 #define HW_AXBS_MGPCR1_TOG(x, v) (HW_AXBS_MGPCR1_WR(x, HW_AXBS_MGPCR1_RD(x) ^ (v)))
662 * Constants & macros for individual AXBS_MGPCR1 bitfields
666 * @name Register AXBS_MGPCR1, field AULB[2:0] (RW)
668 * Determines whether, and when, the crossbar switch arbitrates away the slave
669 * port the master owns when the master is performing undefined length burst
673 * - 000 - No arbitration is allowed during an undefined length burst
674 * - 001 - Arbitration is allowed at any time during an undefined length burst
675 * - 010 - Arbitration is allowed after four beats of an undefined length burst
676 * - 011 - Arbitration is allowed after eight beats of an undefined length burst
677 * - 100 - Arbitration is allowed after 16 beats of an undefined length burst
683 #define BP_AXBS_MGPCR1_AULB (0U) /*!< Bit position for AXBS_MGPCR1_AULB. */
684 #define BM_AXBS_MGPCR1_AULB (0x00000007U) /*!< Bit mask for AXBS_MGPCR1_AULB. */
685 #define BS_AXBS_MGPCR1_AULB (3U) /*!< Bit field size in bits for AXBS_MGPCR1_AULB. */
687 /*! @brief Read current value of the AXBS_MGPCR1_AULB field. */
688 #define BR_AXBS_MGPCR1_AULB(x) (HW_AXBS_MGPCR1(x).B.AULB)
690 /*! @brief Format value for bitfield AXBS_MGPCR1_AULB. */
691 #define BF_AXBS_MGPCR1_AULB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_MGPCR1_AULB) & BM_AXBS_MGPCR1_AULB)
693 /*! @brief Set the AULB field to a new value. */
694 #define BW_AXBS_MGPCR1_AULB(x, v) (HW_AXBS_MGPCR1_WR(x, (HW_AXBS_MGPCR1_RD(x) & ~BM_AXBS_MGPCR1_AULB) | BF_AXBS_MGPCR1_AULB(v)))
697 /*******************************************************************************
698 * HW_AXBS_MGPCR2 - Master General Purpose Control Register
699 ******************************************************************************/
702 * @brief HW_AXBS_MGPCR2 - Master General Purpose Control Register (RW)
704 * Reset value: 0x00000000U
706 * The MGPCR controls only whether the master's undefined length burst accesses
707 * are allowed to complete uninterrupted or whether they can be broken by
708 * requests from higher priority masters. The MGPCR can be accessed only in Supervisor
709 * mode with 32-bit accesses.
711 typedef union _hw_axbs_mgpcr2
714 struct _hw_axbs_mgpcr2_bitfields
716 uint32_t AULB
: 3; /*!< [2:0] Arbitrates On Undefined Length Bursts */
717 uint32_t RESERVED0
: 29; /*!< [31:3] */
722 * @name Constants and macros for entire AXBS_MGPCR2 register
725 #define HW_AXBS_MGPCR2_ADDR(x) ((x) + 0xA00U)
727 #define HW_AXBS_MGPCR2(x) (*(__IO hw_axbs_mgpcr2_t *) HW_AXBS_MGPCR2_ADDR(x))
728 #define HW_AXBS_MGPCR2_RD(x) (HW_AXBS_MGPCR2(x).U)
729 #define HW_AXBS_MGPCR2_WR(x, v) (HW_AXBS_MGPCR2(x).U = (v))
730 #define HW_AXBS_MGPCR2_SET(x, v) (HW_AXBS_MGPCR2_WR(x, HW_AXBS_MGPCR2_RD(x) | (v)))
731 #define HW_AXBS_MGPCR2_CLR(x, v) (HW_AXBS_MGPCR2_WR(x, HW_AXBS_MGPCR2_RD(x) & ~(v)))
732 #define HW_AXBS_MGPCR2_TOG(x, v) (HW_AXBS_MGPCR2_WR(x, HW_AXBS_MGPCR2_RD(x) ^ (v)))
736 * Constants & macros for individual AXBS_MGPCR2 bitfields
740 * @name Register AXBS_MGPCR2, field AULB[2:0] (RW)
742 * Determines whether, and when, the crossbar switch arbitrates away the slave
743 * port the master owns when the master is performing undefined length burst
747 * - 000 - No arbitration is allowed during an undefined length burst
748 * - 001 - Arbitration is allowed at any time during an undefined length burst
749 * - 010 - Arbitration is allowed after four beats of an undefined length burst
750 * - 011 - Arbitration is allowed after eight beats of an undefined length burst
751 * - 100 - Arbitration is allowed after 16 beats of an undefined length burst
757 #define BP_AXBS_MGPCR2_AULB (0U) /*!< Bit position for AXBS_MGPCR2_AULB. */
758 #define BM_AXBS_MGPCR2_AULB (0x00000007U) /*!< Bit mask for AXBS_MGPCR2_AULB. */
759 #define BS_AXBS_MGPCR2_AULB (3U) /*!< Bit field size in bits for AXBS_MGPCR2_AULB. */
761 /*! @brief Read current value of the AXBS_MGPCR2_AULB field. */
762 #define BR_AXBS_MGPCR2_AULB(x) (HW_AXBS_MGPCR2(x).B.AULB)
764 /*! @brief Format value for bitfield AXBS_MGPCR2_AULB. */
765 #define BF_AXBS_MGPCR2_AULB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_MGPCR2_AULB) & BM_AXBS_MGPCR2_AULB)
767 /*! @brief Set the AULB field to a new value. */
768 #define BW_AXBS_MGPCR2_AULB(x, v) (HW_AXBS_MGPCR2_WR(x, (HW_AXBS_MGPCR2_RD(x) & ~BM_AXBS_MGPCR2_AULB) | BF_AXBS_MGPCR2_AULB(v)))
771 /*******************************************************************************
772 * HW_AXBS_MGPCR3 - Master General Purpose Control Register
773 ******************************************************************************/
776 * @brief HW_AXBS_MGPCR3 - Master General Purpose Control Register (RW)
778 * Reset value: 0x00000000U
780 * The MGPCR controls only whether the master's undefined length burst accesses
781 * are allowed to complete uninterrupted or whether they can be broken by
782 * requests from higher priority masters. The MGPCR can be accessed only in Supervisor
783 * mode with 32-bit accesses.
785 typedef union _hw_axbs_mgpcr3
788 struct _hw_axbs_mgpcr3_bitfields
790 uint32_t AULB
: 3; /*!< [2:0] Arbitrates On Undefined Length Bursts */
791 uint32_t RESERVED0
: 29; /*!< [31:3] */
796 * @name Constants and macros for entire AXBS_MGPCR3 register
799 #define HW_AXBS_MGPCR3_ADDR(x) ((x) + 0xB00U)
801 #define HW_AXBS_MGPCR3(x) (*(__IO hw_axbs_mgpcr3_t *) HW_AXBS_MGPCR3_ADDR(x))
802 #define HW_AXBS_MGPCR3_RD(x) (HW_AXBS_MGPCR3(x).U)
803 #define HW_AXBS_MGPCR3_WR(x, v) (HW_AXBS_MGPCR3(x).U = (v))
804 #define HW_AXBS_MGPCR3_SET(x, v) (HW_AXBS_MGPCR3_WR(x, HW_AXBS_MGPCR3_RD(x) | (v)))
805 #define HW_AXBS_MGPCR3_CLR(x, v) (HW_AXBS_MGPCR3_WR(x, HW_AXBS_MGPCR3_RD(x) & ~(v)))
806 #define HW_AXBS_MGPCR3_TOG(x, v) (HW_AXBS_MGPCR3_WR(x, HW_AXBS_MGPCR3_RD(x) ^ (v)))
810 * Constants & macros for individual AXBS_MGPCR3 bitfields
814 * @name Register AXBS_MGPCR3, field AULB[2:0] (RW)
816 * Determines whether, and when, the crossbar switch arbitrates away the slave
817 * port the master owns when the master is performing undefined length burst
821 * - 000 - No arbitration is allowed during an undefined length burst
822 * - 001 - Arbitration is allowed at any time during an undefined length burst
823 * - 010 - Arbitration is allowed after four beats of an undefined length burst
824 * - 011 - Arbitration is allowed after eight beats of an undefined length burst
825 * - 100 - Arbitration is allowed after 16 beats of an undefined length burst
831 #define BP_AXBS_MGPCR3_AULB (0U) /*!< Bit position for AXBS_MGPCR3_AULB. */
832 #define BM_AXBS_MGPCR3_AULB (0x00000007U) /*!< Bit mask for AXBS_MGPCR3_AULB. */
833 #define BS_AXBS_MGPCR3_AULB (3U) /*!< Bit field size in bits for AXBS_MGPCR3_AULB. */
835 /*! @brief Read current value of the AXBS_MGPCR3_AULB field. */
836 #define BR_AXBS_MGPCR3_AULB(x) (HW_AXBS_MGPCR3(x).B.AULB)
838 /*! @brief Format value for bitfield AXBS_MGPCR3_AULB. */
839 #define BF_AXBS_MGPCR3_AULB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_MGPCR3_AULB) & BM_AXBS_MGPCR3_AULB)
841 /*! @brief Set the AULB field to a new value. */
842 #define BW_AXBS_MGPCR3_AULB(x, v) (HW_AXBS_MGPCR3_WR(x, (HW_AXBS_MGPCR3_RD(x) & ~BM_AXBS_MGPCR3_AULB) | BF_AXBS_MGPCR3_AULB(v)))
845 /*******************************************************************************
846 * HW_AXBS_MGPCR4 - Master General Purpose Control Register
847 ******************************************************************************/
850 * @brief HW_AXBS_MGPCR4 - Master General Purpose Control Register (RW)
852 * Reset value: 0x00000000U
854 * The MGPCR controls only whether the master's undefined length burst accesses
855 * are allowed to complete uninterrupted or whether they can be broken by
856 * requests from higher priority masters. The MGPCR can be accessed only in Supervisor
857 * mode with 32-bit accesses.
859 typedef union _hw_axbs_mgpcr4
862 struct _hw_axbs_mgpcr4_bitfields
864 uint32_t AULB
: 3; /*!< [2:0] Arbitrates On Undefined Length Bursts */
865 uint32_t RESERVED0
: 29; /*!< [31:3] */
870 * @name Constants and macros for entire AXBS_MGPCR4 register
873 #define HW_AXBS_MGPCR4_ADDR(x) ((x) + 0xC00U)
875 #define HW_AXBS_MGPCR4(x) (*(__IO hw_axbs_mgpcr4_t *) HW_AXBS_MGPCR4_ADDR(x))
876 #define HW_AXBS_MGPCR4_RD(x) (HW_AXBS_MGPCR4(x).U)
877 #define HW_AXBS_MGPCR4_WR(x, v) (HW_AXBS_MGPCR4(x).U = (v))
878 #define HW_AXBS_MGPCR4_SET(x, v) (HW_AXBS_MGPCR4_WR(x, HW_AXBS_MGPCR4_RD(x) | (v)))
879 #define HW_AXBS_MGPCR4_CLR(x, v) (HW_AXBS_MGPCR4_WR(x, HW_AXBS_MGPCR4_RD(x) & ~(v)))
880 #define HW_AXBS_MGPCR4_TOG(x, v) (HW_AXBS_MGPCR4_WR(x, HW_AXBS_MGPCR4_RD(x) ^ (v)))
884 * Constants & macros for individual AXBS_MGPCR4 bitfields
888 * @name Register AXBS_MGPCR4, field AULB[2:0] (RW)
890 * Determines whether, and when, the crossbar switch arbitrates away the slave
891 * port the master owns when the master is performing undefined length burst
895 * - 000 - No arbitration is allowed during an undefined length burst
896 * - 001 - Arbitration is allowed at any time during an undefined length burst
897 * - 010 - Arbitration is allowed after four beats of an undefined length burst
898 * - 011 - Arbitration is allowed after eight beats of an undefined length burst
899 * - 100 - Arbitration is allowed after 16 beats of an undefined length burst
905 #define BP_AXBS_MGPCR4_AULB (0U) /*!< Bit position for AXBS_MGPCR4_AULB. */
906 #define BM_AXBS_MGPCR4_AULB (0x00000007U) /*!< Bit mask for AXBS_MGPCR4_AULB. */
907 #define BS_AXBS_MGPCR4_AULB (3U) /*!< Bit field size in bits for AXBS_MGPCR4_AULB. */
909 /*! @brief Read current value of the AXBS_MGPCR4_AULB field. */
910 #define BR_AXBS_MGPCR4_AULB(x) (HW_AXBS_MGPCR4(x).B.AULB)
912 /*! @brief Format value for bitfield AXBS_MGPCR4_AULB. */
913 #define BF_AXBS_MGPCR4_AULB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_MGPCR4_AULB) & BM_AXBS_MGPCR4_AULB)
915 /*! @brief Set the AULB field to a new value. */
916 #define BW_AXBS_MGPCR4_AULB(x, v) (HW_AXBS_MGPCR4_WR(x, (HW_AXBS_MGPCR4_RD(x) & ~BM_AXBS_MGPCR4_AULB) | BF_AXBS_MGPCR4_AULB(v)))
919 /*******************************************************************************
920 * HW_AXBS_MGPCR5 - Master General Purpose Control Register
921 ******************************************************************************/
924 * @brief HW_AXBS_MGPCR5 - Master General Purpose Control Register (RW)
926 * Reset value: 0x00000000U
928 * The MGPCR controls only whether the master's undefined length burst accesses
929 * are allowed to complete uninterrupted or whether they can be broken by
930 * requests from higher priority masters. The MGPCR can be accessed only in Supervisor
931 * mode with 32-bit accesses.
933 typedef union _hw_axbs_mgpcr5
936 struct _hw_axbs_mgpcr5_bitfields
938 uint32_t AULB
: 3; /*!< [2:0] Arbitrates On Undefined Length Bursts */
939 uint32_t RESERVED0
: 29; /*!< [31:3] */
944 * @name Constants and macros for entire AXBS_MGPCR5 register
947 #define HW_AXBS_MGPCR5_ADDR(x) ((x) + 0xD00U)
949 #define HW_AXBS_MGPCR5(x) (*(__IO hw_axbs_mgpcr5_t *) HW_AXBS_MGPCR5_ADDR(x))
950 #define HW_AXBS_MGPCR5_RD(x) (HW_AXBS_MGPCR5(x).U)
951 #define HW_AXBS_MGPCR5_WR(x, v) (HW_AXBS_MGPCR5(x).U = (v))
952 #define HW_AXBS_MGPCR5_SET(x, v) (HW_AXBS_MGPCR5_WR(x, HW_AXBS_MGPCR5_RD(x) | (v)))
953 #define HW_AXBS_MGPCR5_CLR(x, v) (HW_AXBS_MGPCR5_WR(x, HW_AXBS_MGPCR5_RD(x) & ~(v)))
954 #define HW_AXBS_MGPCR5_TOG(x, v) (HW_AXBS_MGPCR5_WR(x, HW_AXBS_MGPCR5_RD(x) ^ (v)))
958 * Constants & macros for individual AXBS_MGPCR5 bitfields
962 * @name Register AXBS_MGPCR5, field AULB[2:0] (RW)
964 * Determines whether, and when, the crossbar switch arbitrates away the slave
965 * port the master owns when the master is performing undefined length burst
969 * - 000 - No arbitration is allowed during an undefined length burst
970 * - 001 - Arbitration is allowed at any time during an undefined length burst
971 * - 010 - Arbitration is allowed after four beats of an undefined length burst
972 * - 011 - Arbitration is allowed after eight beats of an undefined length burst
973 * - 100 - Arbitration is allowed after 16 beats of an undefined length burst
979 #define BP_AXBS_MGPCR5_AULB (0U) /*!< Bit position for AXBS_MGPCR5_AULB. */
980 #define BM_AXBS_MGPCR5_AULB (0x00000007U) /*!< Bit mask for AXBS_MGPCR5_AULB. */
981 #define BS_AXBS_MGPCR5_AULB (3U) /*!< Bit field size in bits for AXBS_MGPCR5_AULB. */
983 /*! @brief Read current value of the AXBS_MGPCR5_AULB field. */
984 #define BR_AXBS_MGPCR5_AULB(x) (HW_AXBS_MGPCR5(x).B.AULB)
986 /*! @brief Format value for bitfield AXBS_MGPCR5_AULB. */
987 #define BF_AXBS_MGPCR5_AULB(v) ((uint32_t)((uint32_t)(v) << BP_AXBS_MGPCR5_AULB) & BM_AXBS_MGPCR5_AULB)
989 /*! @brief Set the AULB field to a new value. */
990 #define BW_AXBS_MGPCR5_AULB(x, v) (HW_AXBS_MGPCR5_WR(x, (HW_AXBS_MGPCR5_RD(x) & ~BM_AXBS_MGPCR5_AULB) | BF_AXBS_MGPCR5_AULB(v)))
993 /*******************************************************************************
994 * hw_axbs_t - module struct
995 ******************************************************************************/
997 * @brief All AXBS module registers.
1000 typedef struct _hw_axbs
1003 __IO hw_axbs_prsn_t PRSn
; /*!< [0x0] Priority Registers Slave */
1004 uint8_t _reserved0
[12];
1005 __IO hw_axbs_crsn_t CRSn
; /*!< [0x10] Control Register */
1006 uint8_t _reserved1
[236];
1008 uint8_t _reserved0
[768];
1009 __IO hw_axbs_mgpcr0_t MGPCR0
; /*!< [0x800] Master General Purpose Control Register */
1010 uint8_t _reserved1
[252];
1011 __IO hw_axbs_mgpcr1_t MGPCR1
; /*!< [0x900] Master General Purpose Control Register */
1012 uint8_t _reserved2
[252];
1013 __IO hw_axbs_mgpcr2_t MGPCR2
; /*!< [0xA00] Master General Purpose Control Register */
1014 uint8_t _reserved3
[252];
1015 __IO hw_axbs_mgpcr3_t MGPCR3
; /*!< [0xB00] Master General Purpose Control Register */
1016 uint8_t _reserved4
[252];
1017 __IO hw_axbs_mgpcr4_t MGPCR4
; /*!< [0xC00] Master General Purpose Control Register */
1018 uint8_t _reserved5
[252];
1019 __IO hw_axbs_mgpcr5_t MGPCR5
; /*!< [0xD00] Master General Purpose Control Register */
1023 /*! @brief Macro to access all AXBS registers. */
1024 /*! @param x AXBS module instance base address. */
1025 /*! @return Reference (not a pointer) to the registers struct. To get a pointer to the struct,
1026 * use the '&' operator, like <code>&HW_AXBS(AXBS_BASE)</code>. */
1027 #define HW_AXBS(x) (*(hw_axbs_t *)(x))
1029 #endif /* __HW_AXBS_REGISTERS_H__ */