Zephyr API Documentation 4.0.0-rc2
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
dma_mcux_lpc.h
Go to the documentation of this file.
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_ */