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 Confidential. 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 license */
10/* terms, then you may not retain, install, activate or otherwise use the */
11/* 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) (SAFO_SFR_BASE->SAFO_SFR_NAME(sfr))
43
45#define MCUXCLOSCCASAFO_SFR_WRITE(sfr, value) \
46 do{ SAFO_SFR_BASE->SAFO_SFR_NAME(sfr) = (value); } while(false)
47
49#define MCUXCLOSCCASAFO_SFR_BITREAD(sfr, bit) \
50 ((SAFO_SFR_BASE->SAFO_SFR_NAME(sfr) & MCUXCLOSCCASAFO_SFR_FIELD_MASK(sfr, bit)) >> MCUXCLOSCCASAFO_SFR_FIELD_SHIFT(sfr, bit))
51
53#define MCUXCLOSCCASAFO_SFR_BITSET(sfr, bit) \
54 do{ SAFO_SFR_BASE->SAFO_SFR_NAME(sfr) |= MCUXCLOSCCASAFO_SFR_FIELD_MASK(sfr, bit); } while(false)
55
57#define MCUXCLOSCCASAFO_SFR_BITCLEAR(sfr, bit) \
58 do{ SAFO_SFR_BASE->SAFO_SFR_NAME(sfr) &= (~ (uint32_t) MCUXCLOSCCASAFO_SFR_FIELD_MASK(sfr, bit)); } while(false)
59
61#define MCUXCLOSCCASAFO_SFR_BITVALSET(sfr, bit, val) \
62 do{ uint32_t temp = SAFO_SFR_BASE->SAFO_SFR_NAME(sfr) & (~ (uint32_t) MCUXCLOSCCASAFO_SFR_FIELD_MASK(sfr, bit)); \
63 SAFO_SFR_BASE->SAFO_SFR_NAME(sfr) = ((val) << MCUXCLOSCCASAFO_SFR_FIELD_SHIFT(sfr, bit)) & MCUXCLOSCCASAFO_SFR_FIELD_MASK(sfr, bit); \
64 } while(false)
65
66/**** ------------------------------ ****/
67
68#endif /* MCUXCLOSCCASAFO_SFRACCESS_H_ */