Hello Xiangjun,
I am using the input pin to trigger the transfer. The ADC we are using is AD7770ACPZ

The 4 yellow signals at the bottom are part of the SPI interface (I can share the specific pins if needed, but they are configured correctly for SPI). The other 4 signals are:
- FAST_ADC_DRDY_0 - this is the signal that goes to an input pin and is used to generate the interrupt.
- FAST_ADC_SYNC - this (with the reset) is an effect reset and sync to the chip. it is used during startup. it is a LPC54608 GPIO output
- FAST_ADC_CLOCK - this is the sampling clock for the chip. it comes from the LPC54608's CLOCKOUT that is generated from the audioPLL. its running at 5.12MHz
- RESET_ADS124S08 - GPIO output that works with the sync to reset the adc chip.
The hardware triggering off the pin interrupt is configured as such:
INPUTMUX_AttachSignal( INPUTMUX, kPINT_PinInt0, kINPUTMUX_GpioPort0Pin1ToPintsel);
INPUTMUX_AttachSignal( INPUTMUX, DMA_FC5_RX_CHANNEL, kINPUTMUX_PinInt0ToDma);
INPUTMUX_AttachSignal( INPUTMUX, DMA_FC5_TX_CHANNEL, kINPUTMUX_PinInt0ToDma);
PINT_PinInterruptConfig( PINT, kPINT_PinInt0, kPINT_PinIntEnableFallEdge, NULL );
You see it is used to trigger both tx and rx. Tx is only triggered to generate the spi clock. The priorities are then set:
DMA_SetChannelPriority( DMA0, DMA_FC5_TX_CHANNEL, kDMA_ChannelPriority1 );
DMA_SetChannelPriority( DMA0, DMA_FC5_RX_CHANNEL, kDMA_ChannelPriority0 );
The channel configuration registers are set to use a hardware trigger:
trigger.burst = kDMA_EdgeBurstTransfer32;
trigger.type = kDMA_FallingEdgeTrigger;
trigger.wrap = kDMA_NoWrap;
DMA_SetChannelConfig( DMA0, DMA_FC5_RX_CHANNEL, &trigger, true );
DMA_SetChannelConfig( DMA0, DMA_FC5_TX_CHANNEL, &trigger, true );