From e3937e99fcc4020e466551611765838ab270179a Mon Sep 17 00:00:00 2001 From: Zhaoxiang Jin Date: Tue, 26 Mar 2024 08:45:39 +0800 Subject: [PATCH] boards: frdm_mcxn947: Add support for dac Add support for dac Signed-off-by: Zhaoxiang Jin --- boards/nxp/frdm_mcxn947/board.c | 16 ++++++++++++++++ boards/nxp/frdm_mcxn947/doc/index.rst | 2 ++ .../nxp/frdm_mcxn947/frdm_mcxn947-pinctrl.dtsi | 8 ++++++++ boards/nxp/frdm_mcxn947/frdm_mcxn947.dtsi | 5 +++++ .../frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.dts | 4 ++++ .../frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.yaml | 1 + 6 files changed, 36 insertions(+) diff --git a/boards/nxp/frdm_mcxn947/board.c b/boards/nxp/frdm_mcxn947/board.c index ca9405803e9..6f55c216d85 100644 --- a/boards/nxp/frdm_mcxn947/board.c +++ b/boards/nxp/frdm_mcxn947/board.c @@ -132,6 +132,22 @@ static int frdm_mcxn947_init(void) CLOCK_EnableClock(kCLOCK_Gpio5); #endif +#if DT_NODE_HAS_STATUS(DT_NODELABEL(dac0), okay) + SPC_EnableActiveModeAnalogModules(SPC0, kSPC_controlDac0); + CLOCK_SetClkDiv(kCLOCK_DivDac0Clk, 1u); + CLOCK_AttachClk(kFRO_HF_to_DAC0); + + CLOCK_EnableClock(kCLOCK_Dac0); +#endif + +#if DT_NODE_HAS_STATUS(DT_NODELABEL(dac1), okay) + SPC_EnableActiveModeAnalogModules(SPC0, kSPC_controlDac1); + CLOCK_SetClkDiv(kCLOCK_DivDac1Clk, 1u); + CLOCK_AttachClk(kFRO_HF_to_DAC1); + + CLOCK_EnableClock(kCLOCK_Dac1); +#endif + /* Set SystemCoreClock variable. */ SystemCoreClock = CLOCK_INIT_CORE_CLOCK; diff --git a/boards/nxp/frdm_mcxn947/doc/index.rst b/boards/nxp/frdm_mcxn947/doc/index.rst index 06356a4f24e..a11686cd61d 100644 --- a/boards/nxp/frdm_mcxn947/doc/index.rst +++ b/boards/nxp/frdm_mcxn947/doc/index.rst @@ -69,6 +69,8 @@ The FRDM-MCXN947 board configuration supports the following hardware features: +-----------+------------+-------------------------------------+ | FLEXSPI | on-chip | flash programming | +-----------+------------+-------------------------------------+ +| DAC | on-chip | dac | ++-----------+------------+-------------------------------------+ Targets available ================== diff --git a/boards/nxp/frdm_mcxn947/frdm_mcxn947-pinctrl.dtsi b/boards/nxp/frdm_mcxn947/frdm_mcxn947-pinctrl.dtsi index 55b8bfef585..4caf1845392 100644 --- a/boards/nxp/frdm_mcxn947/frdm_mcxn947-pinctrl.dtsi +++ b/boards/nxp/frdm_mcxn947/frdm_mcxn947-pinctrl.dtsi @@ -49,4 +49,12 @@ bias-pull-up; }; }; + + pinmux_dac0: pinmux_dac0 { + group0 { + pinmux = ; + drive-strength = "low"; + slew-rate = "fast"; + }; + }; }; diff --git a/boards/nxp/frdm_mcxn947/frdm_mcxn947.dtsi b/boards/nxp/frdm_mcxn947/frdm_mcxn947.dtsi index 326da06db0a..16dcd41276d 100644 --- a/boards/nxp/frdm_mcxn947/frdm_mcxn947.dtsi +++ b/boards/nxp/frdm_mcxn947/frdm_mcxn947.dtsi @@ -131,3 +131,8 @@ }; }; }; + +&dac0 { + pinctrl-0 = <&pinmux_dac0>; + pinctrl-names = "default"; +}; diff --git a/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.dts b/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.dts index 271fe4ba475..cdb52c62f5c 100644 --- a/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.dts +++ b/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.dts @@ -92,3 +92,7 @@ &w25q64jvssiq { status = "okay"; }; + +&dac0 { + 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 372b46ec98b..2222a8c275b 100644 --- a/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.yaml +++ b/boards/nxp/frdm_mcxn947/frdm_mcxn947_mcxn947_cpu0.yaml @@ -18,4 +18,5 @@ supported: - dma - gpio - spi + - dac vendor: nxp