diff --git a/arch/arm/src/sama5/Kconfig b/arch/arm/src/sama5/Kconfig index 7c0ced909be..3643a64a0c3 100644 --- a/arch/arm/src/sama5/Kconfig +++ b/arch/arm/src/sama5/Kconfig @@ -483,14 +483,14 @@ config SAMA5_SSC0 bool "Synchronous Serial Controller 0 (SSC0)" default n select I2S - depends on SAMA5_DMAC0 + depends on SAMA5_DMAC0 || SAMA5_XDMAC0 || SAMA5_XDMAC1 select AUDIO config SAMA5_SSC1 bool "Synchronous Serial Controller 1 (SSC1)" default n select I2S - depends on SAMA5_DMAC1 + depends on SAMA5_DMAC1 || SAMA5_XDMAC0 || SAMA5_XDMAC1 select AUDIO config SAMA5_CAN0 diff --git a/arch/arm/src/sama5/sam_ssc.c b/arch/arm/src/sama5/sam_ssc.c index 4750ecf18be..65cca17fd34 100644 --- a/arch/arm/src/sama5/sam_ssc.c +++ b/arch/arm/src/sama5/sam_ssc.c @@ -87,12 +87,28 @@ # define SAMA5_SSC_MAXINFLIGHT 16 #endif -#if defined(CONFIG_SAMA5_SSC0) && !defined(CONFIG_SAMA5_DMAC0) -# error CONFIG_SAMA5_DMAC0 required by SSC0 +#if defined(CONFIG_SAMA5_SSC0) +# if defined(CONFIG_SAMA5_HAVE_XDMA) +# if !defined(CONFIG_SAMA5_XDMAC0) && !defined(CONFIG_SAMA5_XDMAC1) +# error CONFIG_SAMA5_XDMAC1 (or XDMAC0) required by SSC0 +# endif +# else +# if !defined(CONFIG_SAMA5_DMAC0) +# error CONFIG_SAMA5_DMAC0 required by SSC0 +# endif +# endif #endif -#if defined(CONFIG_SAMA5_SSC1) && !defined(CONFIG_SAMA5_DMAC1) -# error CONFIG_SAMA5_DMAC1 required by SSC1 +#if defined(CONFIG_SAMA5_SSC1) +# if defined(CONFIG_SAMA5_HAVE_XDMA) +# if !defined(CONFIG_SAMA5_XDMAC0) && !defined(CONFIG_SAMA5_XDMAC1) +# error CONFIG_SAMA5_XDMAC1 (or XDMAC0) required by SSC1 +# endif +# else +# if !defined(CONFIG_SAMA5_DMAC1) +# error CONFIG_SAMA5_DMAC0 required by SSC1 +# endif +# endif #endif #ifndef CONFIG_SAMA5_SSC0_DATALEN