From f4bad0a49c89e3ecdd17864be2c334d2c7a2ddad Mon Sep 17 00:00:00 2001 From: Mahesh Mahadevan Date: Wed, 20 Mar 2024 22:16:46 -0500 Subject: [PATCH] boards: frdm_mcxn947: Add support for SPI and DMA Add support for SPI and DMA Signed-off-by: Mahesh Mahadevan --- boards/nxp/frdm_mcxn947/board.c | 5 +++++ boards/nxp/frdm_mcxn947/doc/index.rst | 4 ++++ boards/nxp/frdm_mcxn947/frdm_mcxn947-pinctrl.dtsi | 12 ++++++++++++ boards/nxp/frdm_mcxn947/frdm_mcxn947.dtsi | 5 +++++ .../nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.dts | 12 ++++++++++++ .../nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.yaml | 2 ++ 6 files changed, 40 insertions(+) diff --git a/boards/nxp/frdm_mcxn947/board.c b/boards/nxp/frdm_mcxn947/board.c index f43964fee6e..ca9405803e9 100644 --- a/boards/nxp/frdm_mcxn947/board.c +++ b/boards/nxp/frdm_mcxn947/board.c @@ -94,6 +94,11 @@ static int frdm_mcxn947_init(void) /* Set AHBCLKDIV divider to value 1 */ CLOCK_SetClkDiv(kCLOCK_DivAhbClk, 1U); +#if DT_NODE_HAS_STATUS(DT_NODELABEL(flexcomm1), okay) + CLOCK_SetClkDiv(kCLOCK_DivFlexcom1Clk, 1u); + CLOCK_AttachClk(kFRO12M_to_FLEXCOMM1); +#endif + #if DT_NODE_HAS_STATUS(DT_NODELABEL(flexcomm4), okay) CLOCK_SetClkDiv(kCLOCK_DivFlexcom4Clk, 1u); CLOCK_AttachClk(kFRO12M_to_FLEXCOMM4); diff --git a/boards/nxp/frdm_mcxn947/doc/index.rst b/boards/nxp/frdm_mcxn947/doc/index.rst index 21b24ea188d..06356a4f24e 100644 --- a/boards/nxp/frdm_mcxn947/doc/index.rst +++ b/boards/nxp/frdm_mcxn947/doc/index.rst @@ -59,6 +59,10 @@ The FRDM-MCXN947 board configuration supports the following hardware features: | UART | on-chip | serial port-polling; | | | | serial port-interrupt | +-----------+------------+-------------------------------------+ +| SPI | on-chip | spi | ++-----------+------------+-------------------------------------+ +| DMA | on-chip | dma | ++-----------+------------+-------------------------------------+ | CLOCK | on-chip | clock_control | +-----------+------------+-------------------------------------+ | FLASH | on-chip | soc flash | diff --git a/boards/nxp/frdm_mcxn947/frdm_mcxn947-pinctrl.dtsi b/boards/nxp/frdm_mcxn947/frdm_mcxn947-pinctrl.dtsi index 20da3d13273..55b8bfef585 100644 --- a/boards/nxp/frdm_mcxn947/frdm_mcxn947-pinctrl.dtsi +++ b/boards/nxp/frdm_mcxn947/frdm_mcxn947-pinctrl.dtsi @@ -7,6 +7,18 @@ #include &pinctrl { + pinmux_flexcomm1_lpspi: pinmux_flexcomm1_lpspi { + group0 { + pinmux = , + , + , + ; + slew-rate = "fast"; + drive-strength = "low"; + input-enable; + }; + }; + pinmux_flexcomm4_lpuart: pinmux_flexcomm4_lpuart { group0 { pinmux = , diff --git a/boards/nxp/frdm_mcxn947/frdm_mcxn947.dtsi b/boards/nxp/frdm_mcxn947/frdm_mcxn947.dtsi index b0b6304c1f6..326da06db0a 100644 --- a/boards/nxp/frdm_mcxn947/frdm_mcxn947.dtsi +++ b/boards/nxp/frdm_mcxn947/frdm_mcxn947.dtsi @@ -49,6 +49,11 @@ }; }; +&flexcomm1_lpspi1 { + pinctrl-0 = <&pinmux_flexcomm1_lpspi>; + pinctrl-names = "default"; +}; + &flexcomm4_lpuart4 { current-speed = <115200>; pinctrl-0 = <&pinmux_flexcomm4_lpuart>; diff --git a/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.dts b/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.dts index a22a3623c4b..271fe4ba475 100644 --- a/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.dts +++ b/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.dts @@ -65,6 +65,18 @@ status = "okay"; }; +&edma0 { + status = "okay"; +}; + +&flexcomm1 { + status = "okay"; +}; + +&flexcomm1_lpspi1 { + status = "okay"; +}; + &flexcomm4 { status = "okay"; }; diff --git a/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.yaml b/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.yaml index 31825f6b518..372b46ec98b 100644 --- a/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.yaml +++ b/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.yaml @@ -15,5 +15,7 @@ toolchain: - gnuarmemb - xtools supported: + - dma - gpio + - spi vendor: nxp