S32 SDK
eim_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 
23 #ifndef EIM_DRIVER_H
24 #define EIM_DRIVER_H
25 
26 #include <stddef.h>
27 #include "device_registers.h"
28 
29 
40 /*******************************************************************************
41  * Variables
42  ******************************************************************************/
43 
44 /*******************************************************************************
45  * Definitions
46  ******************************************************************************/
48 #define EIM_CHECKBITMASK_DEFAULT (0x01U)
49 
50 #define EIM_DATAMASK_DEFAULT (0x00U)
51 
58 typedef struct
59 {
60  uint8_t channel;
61  uint8_t checkBitMask;
63  uint32_t dataMask;
65  bool enable;
68 
69 /*******************************************************************************
70  * API
71  ******************************************************************************/
77 #if defined(__cplusplus)
78 extern "C"
79 {
80 #endif
81 
113 void EIM_DRV_Init(uint32_t instance,
114  uint8_t channelCnt,
115  const eim_user_channel_config_t *channelConfigArr);
116 
125 void EIM_DRV_Deinit(uint32_t instance);
126 
148 void EIM_DRV_ConfigChannel(uint32_t instance,
149  const eim_user_channel_config_t *userChannelConfig);
150 
160 void EIM_DRV_GetChannelConfig(uint32_t instance,
161  uint8_t channel,
162  eim_user_channel_config_t *channelConfig);
163 
172 void EIM_DRV_GetDefaultConfig(uint8_t channel,
173  eim_user_channel_config_t *channelConfig);
174 
175 /* @} */
176 
177 #if defined(__cplusplus)
178 }
179 #endif
180 
183 #endif /* EIM_DRIVER_H */
184 /*******************************************************************************
185  * EOF
186  ******************************************************************************/
void EIM_DRV_ConfigChannel(uint32_t instance, const eim_user_channel_config_t *userChannelConfig)
Configures the EIM channel.
Definition: eim_driver.c:118
void EIM_DRV_Deinit(uint32_t instance)
De-initializes the EIM module.
Definition: eim_driver.c:95
void EIM_DRV_Init(uint32_t instance, uint8_t channelCnt, const eim_user_channel_config_t *channelConfigArr)
Initializes the EIM module.
Definition: eim_driver.c:65
EIM channel configuration structure.
Definition: eim_driver.h:58
void EIM_DRV_GetChannelConfig(uint32_t instance, uint8_t channel, eim_user_channel_config_t *channelConfig)
Gets the EIM channel configuration.
Definition: eim_driver.c:144
void EIM_DRV_GetDefaultConfig(uint8_t channel, eim_user_channel_config_t *channelConfig)
Gets the EIM channel configuration default.
Definition: eim_driver.c:171