S32 SDK
dmamux_hal.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 - 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 #ifndef DMAMUX_HAL_H
19 #define DMAMUX_HAL_H
20 
21 #include <stdint.h>
22 #include <stdbool.h>
23 #include "device_registers.h"
24 
30 /*******************************************************************************
31  * API
32  ******************************************************************************/
33 
34 #if defined(__cplusplus)
35 extern "C" {
36 #endif
37 
50 void DMAMUX_HAL_Init(DMAMUX_Type * base);
51 
63 static inline void DMAMUX_HAL_SetChannelCmd(DMAMUX_Type * base, uint32_t channel, bool enable)
64 {
65 #ifdef DEV_ERROR_DETECT
67 #endif
68  uint32_t regIndex = FEATURE_DMAMUX_CHN_REG_INDEX(channel);
69  uint8_t regValTemp = base->CHCFG[regIndex];
70  regValTemp &= (uint8_t)~(DMAMUX_CHCFG_ENBL_MASK);
71  regValTemp |= (uint8_t)DMAMUX_CHCFG_ENBL(enable ? 1U : 0U);
72  base->CHCFG[regIndex] = regValTemp;
73 }
74 
75 #if (FEATURE_DMAMUX_HAS_TRIG == 1)
76 
84 static inline void DMAMUX_HAL_SetPeriodTriggerCmd(DMAMUX_Type * base, uint32_t channel, bool enable)
85 {
86 #ifdef DEV_ERROR_DETECT
88 #endif
89  uint32_t regIndex = FEATURE_DMAMUX_CHN_REG_INDEX(channel);
90  uint8_t regValTemp = base->CHCFG[regIndex];
91  regValTemp &= (uint8_t)~(DMAMUX_CHCFG_TRIG_MASK);
92  regValTemp |= (uint8_t)DMAMUX_CHCFG_TRIG(enable ? 1U : 0U);
93  base->CHCFG[regIndex] = regValTemp;
94 }
95 #endif
96 
108 static inline void DMAMUX_HAL_SetChannelSource(DMAMUX_Type * base, uint32_t channel, uint8_t source)
109 {
110 #ifdef DEV_ERROR_DETECT
112 #endif
113  uint32_t regIndex = FEATURE_DMAMUX_CHN_REG_INDEX(channel);
114  uint8_t regValTemp;
115  regValTemp = base->CHCFG[regIndex];
116  regValTemp &= (uint8_t)~(DMAMUX_CHCFG_SOURCE_MASK);
117  regValTemp |= (uint8_t)DMAMUX_CHCFG_SOURCE(source);
118  base->CHCFG[regIndex] = regValTemp;
119 }
120 
121 /* @} */
122 
123 #if defined(__cplusplus)
124 }
125 #endif
126 
129 #endif /* DMAMUX_HAL_H */
130 /*******************************************************************************
131  * EOF
132  ******************************************************************************/
133 
void DMAMUX_HAL_Init(DMAMUX_Type *base)
Initializes the DMAMUX module to the reset state.
Definition: dmamux_hal.c:42
#define DMAMUX_CHCFG_SOURCE(x)
Definition: S32K144.h:3141
#define DMAMUX_CHCFG_ENBL_MASK
Definition: S32K144.h:3146
#define DMAMUX_CHCFG_SOURCE_MASK
Definition: S32K144.h:3138
#define DMAMUX_CHCFG_ENBL(x)
Definition: S32K144.h:3149
static void DMAMUX_HAL_SetChannelCmd(DMAMUX_Type *base, uint32_t channel, bool enable)
Enables/Disables the DMAMUX channel.
Definition: dmamux_hal.h:63
#define DEV_ASSERT(x)
Definition: devassert.h:78
#define DMAMUX_CHCFG_TRIG(x)
Definition: S32K144.h:3145
#define FEATURE_DMAMUX_MODULE_CHANNELS
__IO uint8_t CHCFG[DMAMUX_CHCFG_COUNT]
Definition: S32K144.h:3111
#define DMAMUX_CHCFG_TRIG_MASK
Definition: S32K144.h:3142
static void DMAMUX_HAL_SetChannelSource(DMAMUX_Type *base, uint32_t channel, uint8_t source)
Configures the DMA request for the DMAMUX channel.
Definition: dmamux_hal.h:108
#define FEATURE_DMAMUX_CHN_REG_INDEX(x)
static void DMAMUX_HAL_SetPeriodTriggerCmd(DMAMUX_Type *base, uint32_t channel, bool enable)
Enables/Disables the period trigger.
Definition: dmamux_hal.h:84