Files
6CAR/devices/E3106/include/dma_mux.h
2026-04-18 09:16:58 +08:00

193 lines
10 KiB
C

/**
* @brief Unique ID of the peripheral for DMA in SF domain .
*
* For peripheral transactions,DMA channel should set corresponding
* mux id to select peripheral.
*/
typedef enum {
SDRV_DMA_MUX_ID_CANFD16,
SDRV_DMA_MUX_ID_CANFD21,
SDRV_DMA_MUX_ID_CANFD3,
SDRV_DMA_MUX_ID_CANFD4,
SDRV_DMA_MUX_ID_CANFD5,
SDRV_DMA_MUX_ID_CANFD6,
SDRV_DMA_MUX_ID_CANFD7,
SDRV_DMA_MUX_ID_CANFD23,
SDRV_DMA_MUX_ID_ENET1_REQ_0,
SDRV_DMA_MUX_ID_ENET1_REQ_1,
SDRV_DMA_MUX_ID_ENET1_REQ_2,
SDRV_DMA_MUX_ID_ENET1_REQ_3,
SDRV_DMA_MUX_ID_I2C1,
SDRV_DMA_MUX_ID_I2C2,
SDRV_DMA_MUX_ID_I2C3,
SDRV_DMA_MUX_ID_I2C4,
SDRV_DMA_MUX_ID_I2C5,
SDRV_DMA_MUX_ID_I2C6,
SDRV_DMA_MUX_ID_XSPI1_A_RD,
SDRV_DMA_MUX_ID_XSPI1_A_WR,
SDRV_DMA_MUX_ID_XSPI1_B_RD,
SDRV_DMA_MUX_ID_XSPI1_B_WR,
SDRV_DMA_MUX_ID_SPI1_RX,
SDRV_DMA_MUX_ID_SPI1_TX,
SDRV_DMA_MUX_ID_SPI2_RX,
SDRV_DMA_MUX_ID_SPI2_TX,
SDRV_DMA_MUX_ID_SPI3_RX,
SDRV_DMA_MUX_ID_SPI3_TX,
SDRV_DMA_MUX_ID_SPI4_RX,
SDRV_DMA_MUX_ID_SPI4_TX,
SDRV_DMA_MUX_ID_SPI5_RX,
SDRV_DMA_MUX_ID_SPI5_TX,
SDRV_DMA_MUX_ID_SPI6_RX,
SDRV_DMA_MUX_ID_SPI6_TX,
SDRV_DMA_MUX_ID_EPWM1_A,
SDRV_DMA_MUX_ID_EPWM1_B,
SDRV_DMA_MUX_ID_EPWM1_C,
SDRV_DMA_MUX_ID_EPWM1_D,
SDRV_DMA_MUX_ID_EPWM1_OVF,
SDRV_DMA_MUX_ID_EPWM2_A,
SDRV_DMA_MUX_ID_EPWM2_B,
SDRV_DMA_MUX_ID_EPWM2_C,
SDRV_DMA_MUX_ID_EPWM2_D,
SDRV_DMA_MUX_ID_EPWM2_OVF,
SDRV_DMA_MUX_ID_ETMR1_A,
SDRV_DMA_MUX_ID_ETMR1_B,
SDRV_DMA_MUX_ID_ETMR1_C,
SDRV_DMA_MUX_ID_ETMR1_D,
SDRV_DMA_MUX_ID_ETMR1_OVF,
SDRV_DMA_MUX_ID_ETMR2_A,
SDRV_DMA_MUX_ID_ETMR2_B,
SDRV_DMA_MUX_ID_ETMR2_C,
SDRV_DMA_MUX_ID_ETMR2_D,
SDRV_DMA_MUX_ID_ETMR2_OVF,
SDRV_DMA_MUX_ID_XTRG_0,
SDRV_DMA_MUX_ID_XTRG_1,
SDRV_DMA_MUX_ID_UART1_TX,
SDRV_DMA_MUX_ID_UART1_RX,
SDRV_DMA_MUX_ID_UART2_TX,
SDRV_DMA_MUX_ID_UART2_RX,
SDRV_DMA_MUX_ID_UART3_TX,
SDRV_DMA_MUX_ID_UART3_RX,
SDRV_DMA_MUX_ID_UART4_TX,
SDRV_DMA_MUX_ID_UART4_RX,
SDRV_DMA_MUX_ID_UART5_TX,
SDRV_DMA_MUX_ID_UART5_RX,
SDRV_DMA_MUX_ID_UART6_TX,
SDRV_DMA_MUX_ID_UART6_RX,
SDRV_DMA_MUX_ID_UART7_TX,
SDRV_DMA_MUX_ID_UART7_RX,
SDRV_DMA_MUX_ID_UART8_TX,
SDRV_DMA_MUX_ID_UART8_RX,
SDRV_DMA_MUX_ID_UART9_TX,
SDRV_DMA_MUX_ID_UART9_RX,
SDRV_DMA_MUX_ID_UART10_TX,
SDRV_DMA_MUX_ID_UART10_RX,
SDRV_DMA_MUX_ID_UART11_TX,
SDRV_DMA_MUX_ID_UART11_RX,
SDRV_DMA_MUX_ID_UART12_TX,
SDRV_DMA_MUX_ID_UART12_RX,
SDRV_DMA_MUX_ID_ADC1_0,
SDRV_DMA_MUX_ID_ADC1_1,
SDRV_DMA_MUX_ID_ADC2_0,
SDRV_DMA_MUX_ID_ADC2_1,
SDRV_DMA_MUX_ID_ADC3_0,
SDRV_DMA_MUX_ID_ADC3_1,
SDRV_DMA_MUX_ID_SACI2_TX,
SDRV_DMA_MUX_ID_SACI2_RX,
SDRV_DMA_MUX_ID_SACI2_PDM,
SDRV_DMA_MUX_ID_ISTC,
} sdrv_dma_sf_mux_id_e;
#define DMA_SF_PERIPHERALS_MUX_MAP \
{SDRV_DMA_MUX_ID_CANFD16, APB_CANFD16_BASE, 0x80, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_CANFD21, APB_CANFD21_BASE, 0x80, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_CANFD3, APB_CANFD3_BASE, 0x80, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_CANFD4, APB_CANFD4_BASE, 0x80, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_CANFD5, APB_CANFD5_BASE, 0x80, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_CANFD6, APB_CANFD6_BASE, 0x80, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_CANFD7, APB_CANFD7_BASE, 0x80, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_CANFD23, APB_CANFD23_BASE, 0x80, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_I2C3, APB_I2C3_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_I2C4, APB_I2C4_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_I2C5, APB_I2C5_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_I2C6, APB_I2C6_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_I2C3, APB_I2C3_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_I2C4, APB_I2C4_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_I2C5, APB_I2C5_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_I2C6, APB_I2C6_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_XSPI1_A_RD, APB_XSPI1PORTA_BASE, 0x2000, \
SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_XSPI1_A_WR, APB_XSPI1PORTA_BASE, 0x280, \
SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_XSPI1_B_RD, APB_XSPI1PORTB_BASE, 0x2000, \
SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_XSPI1_B_WR, APB_XSPI1PORTB_BASE, 0x280, \
SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_SPI1_RX, APB_SPI1_BASE, 0x3000, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_SPI1_TX, APB_SPI1_BASE, 0x2000, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_SPI2_RX, APB_SPI2_BASE, 0x3000, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_SPI2_TX, APB_SPI2_BASE, 0x2000, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_SPI3_RX, APB_SPI3_BASE, 0x3000, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_SPI3_TX, APB_SPI3_BASE, 0x2000, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_SPI4_RX, APB_SPI4_BASE, 0x3000, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_SPI4_TX, APB_SPI4_BASE, 0x2000, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_SPI5_RX, APB_SPI5_BASE, 0x3000, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_SPI5_TX, APB_SPI5_BASE, 0x2000, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_SPI6_RX, APB_SPI6_BASE, 0x3000, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_SPI6_TX, APB_SPI6_BASE, 0x2000, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_EPWM1_A, APB_EPWM1_BASE, 0xc0, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_EPWM1_B, APB_EPWM1_BASE, 0xc4, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_EPWM1_C, APB_EPWM1_BASE, 0xc8, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_EPWM1_D, APB_EPWM1_BASE, 0xcc, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_EPWM1_OVF, APB_EPWM1_BASE, 0x104, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_EPWM2_A, APB_EPWM2_BASE, 0xc0, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_EPWM2_B, APB_EPWM2_BASE, 0xc4, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_EPWM2_C, APB_EPWM2_BASE, 0xc8, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_EPWM2_D, APB_EPWM2_BASE, 0xcc, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_EPWM2_OVF, APB_EPWM2_BASE, 0x104, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ETMR1_A, APB_ETMR1_BASE, 0xc0, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ETMR1_B, APB_ETMR1_BASE, 0xc4, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ETMR1_C, APB_ETMR1_BASE, 0xc8, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ETMR1_D, APB_ETMR1_BASE, 0xcc, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ETMR1_OVF, APB_ETMR1_BASE, 0x104, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ETMR2_A, APB_ETMR2_BASE, 0xc0, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ETMR2_B, APB_ETMR2_BASE, 0xc4, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ETMR2_C, APB_ETMR2_BASE, 0xc8, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ETMR2_D, APB_ETMR2_BASE, 0xcc, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ETMR2_OVF, APB_ETMR2_BASE, 0x104, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_UART1_TX, APB_UART1_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_UART1_RX, APB_UART1_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_UART2_TX, APB_UART2_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_UART2_RX, APB_UART2_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_UART3_TX, APB_UART3_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_UART3_RX, APB_UART3_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_UART4_TX, APB_UART4_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_UART4_RX, APB_UART4_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_UART5_TX, APB_UART5_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_UART5_RX, APB_UART5_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_UART6_TX, APB_UART6_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_UART6_RX, APB_UART6_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_UART7_TX, APB_UART7_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_UART7_RX, APB_UART7_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_UART8_TX, APB_UART8_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_UART8_RX, APB_UART8_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_UART9_TX, APB_UART9_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_UART9_RX, APB_UART9_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_UART10_TX, APB_UART10_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_UART10_RX, APB_UART10_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_UART11_TX, APB_UART11_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_UART11_RX, APB_UART11_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_UART12_TX, APB_UART12_BASE, 0x200, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_UART12_RX, APB_UART12_BASE, 0x300, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_ADC1_0, APB_ADC1_BASE, 0x3C0, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ADC1_1, APB_ADC1_BASE, 0x3C0, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ADC2_0, APB_ADC2_BASE, 0x3C0, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ADC2_1, APB_ADC2_BASE, 0x3C0, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ADC3_0, APB_ADC3_BASE, 0x3C0, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_ADC3_1, APB_ADC3_BASE, 0x3C0, SDRV_DMA_MUX_BOTH}, \
{SDRV_DMA_MUX_ID_SACI2_TX, APB_SACI2_BASE, 0x2000, SDRV_DMA_MUX_WR}, \
{SDRV_DMA_MUX_ID_SACI2_RX, APB_SACI2_BASE, 0x4000, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_SACI2_PDM, APB_SACI2_BASE, 0x6000, SDRV_DMA_MUX_RD}, \
{SDRV_DMA_MUX_ID_ISTC, APB_ISTC_BASE, 0xffff, SDRV_DMA_MUX_BOTH},
#define SDRV_DMA_SF_MAX_CHANNEL (16) /* SF DMA channel number */