Skip to content

Commit 953cbd3

Browse files
committed
hal_nxp: Replace the dmamux driver with an older version
The latest version of the dmamux driver causes build issues on the s32 platform, using an older version for now, and have contacted the SDK driver owner to resolve the issue. Signed-off-by: Zhaoxiang Jin <[email protected]>
1 parent 11da162 commit 953cbd3

File tree

3 files changed

+14
-79
lines changed

3 files changed

+14
-79
lines changed

mcux/mcux-sdk-ng/drivers/dmamux/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# SPDX-License-Identifier: BSD-3-Clause
44

55
if(CONFIG_MCUX_COMPONENT_driver.dmamux)
6-
mcux_component_version(2.1.2)
6+
mcux_component_version(2.1.0)
77

88
mcux_add_source(SOURCES fsl_dmamux.h fsl_dmamux.c)
99

mcux/mcux-sdk-ng/drivers/dmamux/fsl_dmamux.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,31 @@
2121
* Prototypes
2222
******************************************************************************/
2323

24+
#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
2425
/*!
2526
* @brief Get instance number for DMAMUX.
2627
*
2728
* @param base DMAMUX peripheral base address.
2829
*/
2930
static uint32_t DMAMUX_GetInstance(DMAMUX_Type *base);
31+
#endif
3032

3133
/*******************************************************************************
3234
* Variables
3335
******************************************************************************/
3436

37+
#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
3538
/*! @brief Array to map DMAMUX instance number to base pointer. */
3639
static DMAMUX_Type *const s_dmamuxBases[] = DMAMUX_BASE_PTRS;
3740

38-
#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
3941
/*! @brief Array to map DMAMUX instance number to clock name. */
4042
static const clock_ip_name_t s_dmamuxClockName[] = DMAMUX_CLOCKS;
4143
#endif /* FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL */
4244

4345
/*******************************************************************************
4446
* Code
4547
******************************************************************************/
48+
#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
4649
static uint32_t DMAMUX_GetInstance(DMAMUX_Type *base)
4750
{
4851
uint32_t instance;
@@ -60,6 +63,7 @@ static uint32_t DMAMUX_GetInstance(DMAMUX_Type *base)
6063

6164
return instance;
6265
}
66+
#endif
6367

6468
/*!
6569
* brief Initializes the DMAMUX peripheral.

mcux/mcux-sdk-ng/drivers/dmamux/fsl_dmamux.h

Lines changed: 8 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,10 @@
2222

2323
/*! @name Driver version */
2424
/*! @{ */
25-
/*! @brief DMAMUX driver version 2.1.1. */
26-
#define FSL_DMAMUX_DRIVER_VERSION (MAKE_VERSION(2, 1, 2))
25+
/*! @brief DMAMUX driver version 2.1.0. */
26+
#define FSL_DMAMUX_DRIVER_VERSION (MAKE_VERSION(2, 1, 0))
2727
/*! @} */
2828

29-
#if (defined(FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT) && FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT)
30-
/*!@brief Macro used for dmamux channel endian convert. */
31-
#define DMAMUX_CHANNEL_ENDIAN_CONVERTn(channel) (channel ^ 3U)
32-
#endif
33-
34-
#if (defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && \
35-
(FSL_FEATURE_EDMA_MODULE_CHANNEL != FSL_FEATURE_DMAMUX_MODULE_CHANNEL))
36-
/*!@brief Macro used for dmamux channel number canculate. */
37-
#define FSL_DMAMUX_CHANNEL_NUM(channel) ((channel) % FSL_FEATURE_DMAMUX_MODULE_CHANNEL)
38-
#endif
3929
/*******************************************************************************
4030
* API
4131
******************************************************************************/
@@ -84,16 +74,7 @@ void DMAMUX_Deinit(DMAMUX_Type *base);
8474
*/
8575
static inline void DMAMUX_EnableChannel(DMAMUX_Type *base, uint32_t channel)
8676
{
87-
#if (defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && \
88-
(FSL_FEATURE_EDMA_MODULE_CHANNEL != FSL_FEATURE_DMAMUX_MODULE_CHANNEL))
89-
channel = FSL_DMAMUX_CHANNEL_NUM(channel);
90-
#endif
91-
92-
assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
93-
94-
#if (defined(FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT) && FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT)
95-
channel = DMAMUX_CHANNEL_ENDIAN_CONVERTn(channel);
96-
#endif
77+
assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
9778

9879
base->CHCFG[channel] |= DMAMUX_CHCFG_ENBL_MASK;
9980
}
@@ -109,17 +90,7 @@ assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
10990
*/
11091
static inline void DMAMUX_DisableChannel(DMAMUX_Type *base, uint32_t channel)
11192
{
112-
113-
#if (defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && \
114-
(FSL_FEATURE_EDMA_MODULE_CHANNEL != FSL_FEATURE_DMAMUX_MODULE_CHANNEL))
115-
channel = FSL_DMAMUX_CHANNEL_NUM(channel);
116-
#endif
117-
118-
assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
119-
120-
#if (defined(FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT) && FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT)
121-
channel = DMAMUX_CHANNEL_ENDIAN_CONVERTn(channel);
122-
#endif
93+
assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
12394

12495
#if defined FSL_FEATURE_DMAMUX_CHCFG_REGISTER_WIDTH && (FSL_FEATURE_DMAMUX_CHCFG_REGISTER_WIDTH == 32U)
12596
base->CHCFG[channel] &= ~DMAMUX_CHCFG_ENBL_MASK;
@@ -138,17 +109,7 @@ assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
138109
*/
139110
static inline void DMAMUX_SetSource(DMAMUX_Type *base, uint32_t channel, int32_t source)
140111
{
141-
142-
#if (defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && \
143-
(FSL_FEATURE_EDMA_MODULE_CHANNEL != FSL_FEATURE_DMAMUX_MODULE_CHANNEL))
144-
channel = FSL_DMAMUX_CHANNEL_NUM(channel);
145-
#endif
146-
147-
assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
148-
149-
#if (defined(FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT) && FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT)
150-
channel = DMAMUX_CHANNEL_ENDIAN_CONVERTn(channel);
151-
#endif
112+
assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
152113

153114
#if defined FSL_FEATURE_DMAMUX_CHCFG_REGISTER_WIDTH && (FSL_FEATURE_DMAMUX_CHCFG_REGISTER_WIDTH == 32U)
154115
base->CHCFG[channel] = ((base->CHCFG[channel] & ~DMAMUX_CHCFG_SOURCE_MASK) | DMAMUX_CHCFG_SOURCE(source));
@@ -168,17 +129,7 @@ assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
168129
*/
169130
static inline void DMAMUX_EnablePeriodTrigger(DMAMUX_Type *base, uint32_t channel)
170131
{
171-
172-
#if (defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && \
173-
(FSL_FEATURE_EDMA_MODULE_CHANNEL != FSL_FEATURE_DMAMUX_MODULE_CHANNEL))
174-
channel = FSL_DMAMUX_CHANNEL_NUM(channel);
175-
#endif
176-
177-
assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
178-
179-
#if (defined(FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT) && FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT)
180-
channel = DMAMUX_CHANNEL_ENDIAN_CONVERTn(channel);
181-
#endif
132+
assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
182133

183134
base->CHCFG[channel] |= DMAMUX_CHCFG_TRIG_MASK;
184135
}
@@ -193,17 +144,7 @@ assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
193144
*/
194145
static inline void DMAMUX_DisablePeriodTrigger(DMAMUX_Type *base, uint32_t channel)
195146
{
196-
197-
#if (defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && \
198-
(FSL_FEATURE_EDMA_MODULE_CHANNEL != FSL_FEATURE_DMAMUX_MODULE_CHANNEL))
199-
channel = FSL_DMAMUX_CHANNEL_NUM(channel);
200-
#endif
201-
202-
assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
203-
204-
#if (defined(FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT) && FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT)
205-
channel = DMAMUX_CHANNEL_ENDIAN_CONVERTn(channel);
206-
#endif
147+
assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
207148

208149
#if defined FSL_FEATURE_DMAMUX_CHCFG_REGISTER_WIDTH && (FSL_FEATURE_DMAMUX_CHCFG_REGISTER_WIDTH == 32U)
209150
base->CHCFG[channel] &= ~DMAMUX_CHCFG_TRIG_MASK;
@@ -225,17 +166,7 @@ assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
225166
*/
226167
static inline void DMAMUX_EnableAlwaysOn(DMAMUX_Type *base, uint32_t channel, bool enable)
227168
{
228-
229-
#if (defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && \
230-
(FSL_FEATURE_EDMA_MODULE_CHANNEL != FSL_FEATURE_DMAMUX_MODULE_CHANNEL))
231-
channel = FSL_DMAMUX_CHANNEL_NUM(channel);
232-
#endif
233-
234-
assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
235-
236-
#if (defined(FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT) && FSL_FEATURE_DMAMUX_CHANNEL_NEEDS_ENDIAN_CONVERT)
237-
channel = DMAMUX_CHANNEL_ENDIAN_CONVERTn(channel);
238-
#endif
169+
assert(channel < (uint32_t)FSL_FEATURE_DMAMUX_MODULE_CHANNEL);
239170

240171
if (enable)
241172
{

0 commit comments

Comments
 (0)