1 /*
2  * Copyright 2023 NXP
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_INCLUDE_DRIVERS_DMA_DMA_MCUX_LPC_H_
8 #define ZEPHYR_INCLUDE_DRIVERS_DMA_DMA_MCUX_LPC_H_
9 
10 /*
11  * LPC DMA engine channel hardware trigger attributes.
12  * These attributes can be set to the "dma_slot" field
13  * in a dma_config structure to configure a channel for
14  * hardware triggering.
15  */
16 
17 /* Peripheral request enable. When set, the peripheral
18  * request line associated with this channel is used to pace DMA transfers.
19  */
20 #define LPC_DMA_PERIPH_REQ_EN BIT(0)
21 
22 /* Hardware trigger enable. When set, the hardware trigger connected to this
23  * channel via INPUTMUX can be used to trigger a transfer
24  */
25 #define LPC_DMA_HWTRIG_EN BIT(1)
26 
27 /* HW trigger polarity. When this bit is set, the trigger will be active
28  * high or rising edge triggered, based on TRIG_TYPE selection
29  */
30 #define LPC_DMA_TRIGPOL_HIGH_RISING BIT(2)
31 
32 /* HW trigger type. When this bit is set, the trigger will be level triggered.
33  * When it is cleared, the hardware trigger will be edge triggered.
34  */
35 #define LPC_DMA_TRIGTYPE_LEVEL BIT(3)
36 
37 /* HW trigger burst mode. When set, the hardware trigger will cause a burst
38  * transfer to occur, the length of which is determined by BURST_POWER.
39  * When cleared, a single transfer (of the width selected by XFERCFG register)
40  * will occur.
41  */
42 #define LPC_DMA_TRIGBURST BIT(4)
43 
44 /* HW trigger burst power. Note that due to the size limit of the dma_slot
45  * field, the maximum transfer burst possible is 128. The hardware supports
46  * up to 1024 transfers in BURSTPOWER. The value set here will result in
47  * 2^BURSTPOWER transfers occurring. So for BURSTPOWER=3, 8 transfers would
48  * occur.
49  */
50 #define LPC_DMA_BURSTPOWER(pwr) (((pwr) & 0x7) << 5)
51 
52 
53 /* Used by driver to extract burstpower setting */
54 #define LPC_DMA_GET_BURSTPOWER(slot) (((slot) & 0xE0) >> 5)
55 
56 #endif /* ZEPHYR_INCLUDE_DRIVERS_DMA_DMA_MCUX_LPC_H_ */
57