erm_driver.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016, Freescale Semiconductor, Inc.
3  * Copyright 2016-2017 NXP
4  * All rights reserved.
5  *
6  * THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR
7  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
8  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
9  * IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
10  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
11  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
12  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
13  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
14  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
15  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
16  * THE POSSIBILITY OF SUCH DAMAGE.
17  */
18 
19 #ifndef ERM_DRIVER_H
20 #define ERM_DRIVER_H
21 
24 #include "device_registers.h"
25 #include "status.h"
26 
35 /*******************************************************************************
36  * Variables
37  ******************************************************************************/
38 /*******************************************************************************
39  * Definitions
40  ******************************************************************************/
45 typedef enum
46 {
51 
56 typedef struct
57 {
61 
66 typedef struct
67 {
68  uint8_t channel;
71 
72 /*******************************************************************************
73  * API
74  ******************************************************************************/
80 #if defined(__cplusplus)
81 extern "C" {
82 #endif
83 
94 void ERM_DRV_Init(uint32_t instance,
95  uint8_t channelCnt,
96  const erm_user_config_t * userConfigArr);
97 
105 void ERM_DRV_Deinit(uint32_t instance);
106 
116 void ERM_DRV_SetInterruptConfig(uint32_t instance,
117  uint8_t channel,
118  erm_interrupt_config_t interruptCfg);
119 
130 void ERM_DRV_GetInterruptConfig(uint32_t instance,
131  uint8_t channel,
132  erm_interrupt_config_t * const interruptPtr);
133 
144 void ERM_DRV_ClearEvent(uint32_t instance,
145  uint8_t channel,
146  erm_ecc_event_t eccEvent);
147 
158 erm_ecc_event_t ERM_DRV_GetErrorDetail(uint32_t instance,
159  uint8_t channel,
160  uint32_t * addressPtr);
161 
164 #if defined(__cplusplus)
165 }
166 #endif
167 
170 #endif /* ERM_DRIVER_H */
171 /*******************************************************************************
172  * EOF
173  ******************************************************************************/
erm_ecc_event_t ERM_DRV_GetErrorDetail(uint32_t instance, uint8_t channel, uint32_t *addressPtr)
Gets the address of the last ECC event in Memory n and ECC event.
Definition: erm_driver.c:177
ERM interrupt notification configuration structure Implements : erm_interrupt_config_t_Class.
Definition: erm_driver.h:56
void ERM_DRV_GetInterruptConfig(uint32_t instance, uint8_t channel, erm_interrupt_config_t *const interruptPtr)
Gets interrupt notification.
Definition: erm_driver.c:123
ERM user configuration structure Implements : erm_user_config_t_Class.
Definition: erm_driver.h:66
void ERM_DRV_ClearEvent(uint32_t instance, uint8_t channel, erm_ecc_event_t eccEvent)
Clears error event and the corresponding interrupt notification.
Definition: erm_driver.c:145
void ERM_DRV_Init(uint32_t instance, uint8_t channelCnt, const erm_user_config_t *userConfigArr)
Initializes the ERM module.
Definition: erm_driver.c:57
const erm_interrupt_config_t * interruptCfg
Definition: erm_driver.h:69
void ERM_DRV_SetInterruptConfig(uint32_t instance, uint8_t channel, erm_interrupt_config_t interruptCfg)
Sets interrupt notification.
Definition: erm_driver.c:102
void ERM_DRV_Deinit(uint32_t instance)
Sets the default configuration.
Definition: erm_driver.c:85
erm_ecc_event_t
ERM types of ECC events Implements : erm_ecc_event_t_Class.
Definition: erm_driver.h:45