1 /* 2 * Copyright 2021 NXP 3 * All rights reserved. 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 */ 7 #ifndef _FSL_CACHE_H_ 8 #define _FSL_CACHE_H_ 9 10 #include "fsl_common.h" 11 12 /*! 13 * @addtogroup cache_lpcac 14 * @{ 15 */ 16 17 /******************************************************************************* 18 * Definitions 19 ******************************************************************************/ 20 21 /*! @name Driver version */ 22 /*@{*/ 23 /*! @brief cache driver version */ 24 #define FSL_CACHE_DRIVER_VERSION (MAKE_VERSION(2, 0, 0)) 25 /*@}*/ 26 /******************************************************************************* 27 * API 28 ******************************************************************************/ 29 30 #if defined(__cplusplus) 31 extern "C" { 32 #endif 33 34 /*! 35 * @name cache control for the L1 low power cache controller 36 *@{ 37 */ 38 39 /*! 40 * @brief Enables the processor code bus cache. 41 * 42 */ L1CACHE_EnableCodeCache(void)43static inline void L1CACHE_EnableCodeCache(void) 44 { 45 SYSCON->LPCAC_CTRL &= ~SYSCON_LPCAC_CTRL_DIS_LPCAC_MASK; 46 } 47 48 /*! 49 * @brief Disables the processor code bus cache. 50 * 51 */ L1CACHE_DisableCodeCache(void)52static inline void L1CACHE_DisableCodeCache(void) 53 { 54 SYSCON->LPCAC_CTRL |= SYSCON_LPCAC_CTRL_DIS_LPCAC_MASK; 55 } 56 57 /*! 58 * @brief Clears cache. 59 * 60 */ L1CACHE_InvalidateCodeCache(void)61static inline void L1CACHE_InvalidateCodeCache(void) 62 { 63 SYSCON->LPCAC_CTRL &= ~SYSCON_LPCAC_CTRL_CLR_LPCAC_MASK; 64 } 65 66 /*! 67 * @brief Enables allocation. 68 * 69 */ L1CACHE_EnableAllocation(void)70static inline void L1CACHE_EnableAllocation(void) 71 { 72 SYSCON->LPCAC_CTRL &= ~SYSCON_LPCAC_CTRL_FRC_NO_ALLOC_MASK; 73 } 74 75 /*! 76 * @brief Disables allocation. 77 * 78 */ L1CACHE_DisableAllocation(void)79static inline void L1CACHE_DisableAllocation(void) 80 { 81 SYSCON->LPCAC_CTRL |= SYSCON_LPCAC_CTRL_FRC_NO_ALLOC_MASK; 82 } 83 84 /*! 85 * @brief Enables parity. 86 * 87 */ L1CACHE_EnableParity(void)88static inline void L1CACHE_EnableParity(void) 89 { 90 SYSCON->LPCAC_CTRL |= SYSCON_LPCAC_CTRL_PARITY_MISS_EN_MASK; 91 } 92 93 /*! 94 * @brief Disable parity. 95 * 96 */ L1CACHE_DisableParity(void)97static inline void L1CACHE_DisableParity(void) 98 { 99 SYSCON->LPCAC_CTRL &= ~SYSCON_LPCAC_CTRL_PARITY_MISS_EN_MASK; 100 } 101 102 /*@}*/ 103 104 #if defined(__cplusplus) 105 } 106 #endif 107 108 /*! @}*/ 109 110 #endif /* _FSL_CACHE_H_*/ 111