S32 SDK
eim_driver.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016, Freescale Semiconductor, Inc.
3  * Copyright 2016 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 "eim_hal.h"
27 
38 /*******************************************************************************
39  * Variables
40  ******************************************************************************/
41 
42 /* Table of base addresses for EIM instances */
43 extern EIM_Type * const g_eimBase[EIM_INSTANCE_COUNT];
44 
45 /*******************************************************************************
46  * Definitions
47  ******************************************************************************/
48 
55 typedef struct
56 {
57  uint8_t channel;
58  uint8_t checkBitMask;
60  uint32_t dataMask;
62  bool enable;
65 
66 /*******************************************************************************
67  * API
68  ******************************************************************************/
74 #if defined(__cplusplus)
75 extern "C" {
76 #endif
77 
109 void EIM_DRV_Init(uint32_t instance,
110  uint8_t channelCnt,
111  const eim_user_channel_config_t *channelConfigArr);
112 
121 void EIM_DRV_Deinit(uint32_t instance);
122 
144 void EIM_DRV_ConfigChannel(uint32_t instance,
145  const eim_user_channel_config_t *userChannelConfig);
146 
156 void EIM_DRV_GetChannelConfig(uint32_t instance,
157  uint8_t channel,
158  eim_user_channel_config_t *channelConfig);
159 
160 /* @} */
161 
162 #if defined(__cplusplus)
163 }
164 #endif
165 
168 #endif /* EIM_DRIVER_H */
169 /*******************************************************************************
170  * EOF
171  ******************************************************************************/
void EIM_DRV_ConfigChannel(uint32_t instance, const eim_user_channel_config_t *userChannelConfig)
Initializes the EIM channel.
Definition: eim_driver.c:126
void EIM_DRV_Deinit(uint32_t instance)
De-initializes the EIM module.
Definition: eim_driver.c:101
EIM_Type *const g_eimBase[EIM_INSTANCE_COUNT]
Table of base addresses for EIM instances.
Definition: eim_driver.c:48
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:66
EIM channel configuration structure.
Definition: eim_driver.h:55
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:155
#define EIM_INSTANCE_COUNT
Definition: S32K144.h:3187