MCUX CLNS
MCUX Crypto Library Normal Secure
 
Loading...
Searching...
No Matches
mcuxClOsccaSafo_SfrAccess.h
Go to the documentation of this file.
1/*--------------------------------------------------------------------------*/
2/* Copyright 2023 NXP */
3/* */
4/* NXP Proprietary. This software is owned or controlled by NXP and may */
5/* only be used strictly in accordance with the applicable license terms. */
6/* By expressly accepting such terms or by downloading, installing, */
7/* activating and/or otherwise using the software, you are agreeing that */
8/* you have read, and that you agree to comply with and are bound by, such */
9/* license terms. If you do not agree to be bound by the applicable */
10/* license terms, then you may not retain, install, activate or otherwise */
11/* use the software. */
12/*--------------------------------------------------------------------------*/
13
19#ifndef MCUXCLOSCCASAFO_SFRACCESS_H_
20#define MCUXCLOSCCASAFO_SFRACCESS_H_
21
22#include <mcuxClConfig.h> // Exported features flags header
23#include <platform_specific_headers.h>
24
25
27#define MCUXCLOSCCASAFO_PASTE(a,b) a ## b
28#define MCUXCLOSCCASAFO_CONCAT(a,b) MCUXCLOSCCASAFO_PASTE(a,b)
29#define MCUXCLOSCCASAFO_SFR_FIELD(prefix,sfr,field) MCUXCLOSCCASAFO_CONCAT(prefix, sfr ## _ ## field)
30
31
33#define MCUXCLOSCCASAFO_SFR_FIELD_MASK(sfr, field) MCUXCLOSCCASAFO_CONCAT(MCUXCLOSCCASAFO_SFR_FIELD(SAFO_SFR_PREFIX,sfr,field), _MASK)
34#define MCUXCLOSCCASAFO_SFR_FIELD_SHIFT(sfr, field) MCUXCLOSCCASAFO_CONCAT(MCUXCLOSCCASAFO_SFR_FIELD(SAFO_SFR_PREFIX,sfr,field), _SHIFT)
35#define MCUXCLOSCCASAFO_SFR_FIELD_FORMAT(sfr, field, val) (MCUXCLOSCCASAFO_SFR_FIELD(SAFO_SFR_PREFIX,sfr,field) (val))
36
37/**********************************************************/
38/* Helper macros for SAFO SFR access */
39/**********************************************************/
40
42#define MCUXCLOSCCASAFO_SFR_READ(sfr) \
43 MCUX_CSSL_ANALYSIS_START_SUPPRESS_TYPECAST_INTEGER_TO_POINTER("SAFO base and SFR addresses will always be 32-bit aligned.") \
44 (SAFO_SFR_BASE->SAFO_SFR_NAME(sfr)) \
45 MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_TYPECAST_INTEGER_TO_POINTER()
46
48#define MCUXCLOSCCASAFO_SFR_WRITE(sfr, value) \
49 MCUX_CSSL_ANALYSIS_START_SUPPRESS_TYPECAST_INTEGER_TO_POINTER("SAFO base and SFR addresses will always be 32-bit aligned.") \
50 do{ SAFO_SFR_BASE->SAFO_SFR_NAME(sfr) = (value); } while(false) \
51 MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_TYPECAST_INTEGER_TO_POINTER()
52
54#define MCUXCLOSCCASAFO_SFR_BITREAD(sfr, bit) \
55 MCUX_CSSL_ANALYSIS_START_SUPPRESS_TYPECAST_INTEGER_TO_POINTER("SAFO base and SFR addresses will always be 32-bit aligned.") \
56 ((SAFO_SFR_BASE->SAFO_SFR_NAME(sfr) & MCUXCLOSCCASAFO_SFR_FIELD_MASK(sfr, bit)) >> MCUXCLOSCCASAFO_SFR_FIELD_SHIFT(sfr, bit)) \
57 MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_TYPECAST_INTEGER_TO_POINTER()
58
60#define MCUXCLOSCCASAFO_SFR_BITSET(sfr, bit) \
61 MCUX_CSSL_ANALYSIS_START_SUPPRESS_TYPECAST_INTEGER_TO_POINTER("SAFO base and SFR addresses will always be 32-bit aligned.") \
62 do{ SAFO_SFR_BASE->SAFO_SFR_NAME(sfr) |= MCUXCLOSCCASAFO_SFR_FIELD_MASK(sfr, bit); } while(false) \
63 MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_TYPECAST_INTEGER_TO_POINTER()
64
66#define MCUXCLOSCCASAFO_SFR_BITCLEAR(sfr, bit) \
67 MCUX_CSSL_ANALYSIS_START_SUPPRESS_TYPECAST_INTEGER_TO_POINTER("SAFO base and SFR addresses will always be 32-bit aligned.") \
68 do{ SAFO_SFR_BASE->SAFO_SFR_NAME(sfr) &= (~ (uint32_t) MCUXCLOSCCASAFO_SFR_FIELD_MASK(sfr, bit)); } while(false) \
69 MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_TYPECAST_INTEGER_TO_POINTER()
70
72#define MCUXCLOSCCASAFO_SFR_BITVALSET(sfr, bit, val) \
73 MCUX_CSSL_ANALYSIS_START_SUPPRESS_TYPECAST_INTEGER_TO_POINTER("SAFO base and SFR addresses will always be 32-bit aligned.") \
74 do{ uint32_t temp = SAFO_SFR_BASE->SAFO_SFR_NAME(sfr) & (~ (uint32_t) MCUXCLOSCCASAFO_SFR_FIELD_MASK(sfr, bit)); \
75 SAFO_SFR_BASE->SAFO_SFR_NAME(sfr) = ((val) << MCUXCLOSCCASAFO_SFR_FIELD_SHIFT(sfr, bit)) & MCUXCLOSCCASAFO_SFR_FIELD_MASK(sfr, bit); \
76 MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_TYPECAST_INTEGER_TO_POINTER() \
77 } while(false)
78
79/**** ------------------------------ ****/
80
81#endif /* MCUXCLOSCCASAFO_SFRACCESS_H_ */