From 0441484940516b8a0027f5c9b4be11efb8bd4d67 Mon Sep 17 00:00:00 2001 From: Laurentiu Mihalcea Date: Thu, 23 Nov 2023 15:21:28 +0200 Subject: [PATCH] boards: mimx93_evk_a55: Enable SAI, EDMA and HOST DMA drivers This commit introduces the necessary changes to the overlay and configuration files required for enabling the Zephyr native SAI, EDMA and HOST DMA drivers on i.MX93. Signed-off-by: Laurentiu Mihalcea --- app/boards/imx93_evk_mimx9352_a55.conf | 12 +++++++++ app/boards/imx93_evk_mimx9352_a55.overlay | 30 ++++++++++++++--------- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/app/boards/imx93_evk_mimx9352_a55.conf b/app/boards/imx93_evk_mimx9352_a55.conf index a3c9ce153f62..03c54e3e353c 100644 --- a/app/boards/imx93_evk_mimx9352_a55.conf +++ b/app/boards/imx93_evk_mimx9352_a55.conf @@ -14,3 +14,15 @@ CONFIG_DCACHE_LINE_SIZE=64 CONFIG_IMX93_A55=y CONFIG_TRACE=n + +# DAI-related configurations +CONFIG_SAI_HAS_MCLK_CONFIG_OPTION=y +CONFIG_SAI_IMX93_ERRATA_051421=y + +# DMA-related configurations +CONFIG_DMA=y +CONFIG_DMA_NXP_EDMA_ENABLE_HALFMAJOR_IRQ=y + +# needed because EDMA uses same interrupt for multiple +# channels. +CONFIG_SHARED_INTERRUPTS=y diff --git a/app/boards/imx93_evk_mimx9352_a55.overlay b/app/boards/imx93_evk_mimx9352_a55.overlay index df46ffd8b080..64cdfc32ec8e 100644 --- a/app/boards/imx93_evk_mimx9352_a55.overlay +++ b/app/boards/imx93_evk_mimx9352_a55.overlay @@ -24,18 +24,6 @@ reg = <0x42430000 DT_SIZE_K(64)>; }; - sai3: memory@42660000 { - reg = <0x42660000 DT_SIZE_K(64)>; - }; - - edma2_ch0: memory@42010000 { - reg = <0x42010000 DT_SIZE_K(32)>; - }; - - edma2_ch1: memory@42018000 { - reg = <0x42018000 DT_SIZE_K(32)>; - }; - outbox: memory@ce100000 { reg = <0xce100000 DT_SIZE_K(4)>; }; @@ -58,4 +46,22 @@ host_ram: memory@80000000 { reg = <0x80000000 DT_SIZE_M(1024)>; }; + + host_dma: dma { + compatible = "nxp,sof-host-dma"; + dma-channels = <32>; + #dma-cells = <0>; + }; +}; + +&sai3 { + tx-fifo-watermark = <2>; + rx-fifo-watermark = <96>; + fifo-depth = <96>; + rx-sync-mode = <1>; + status = "okay"; +}; + +&edma4 { + status = "okay"; };