MCXN947 HPDAC backport

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

MCXN947 HPDAC backport

299件の閲覧回数
wesOS
Contributor II

I am backporting the Zephyr nxp_hpdac driver to Zephyr 4.3 for an MCXN947-based board.

The upstream driver does not use a device init callback. However, on Zephyr 4.3 the HPDAC does not work correctly unless I explicitly initialize the DAC2 clock, SPC analog modules and reset before using the peripheral.

I added an nxp_hpdac_init() function which performs the following steps:

CLOCK_SetClkDiv(kCLOCK_DivDac2Clk, 1U)
CLOCK_AttachClk(kFRO_HF_to_DAC2)
CLOCK_EnableClock(kCLOCK_Dac2)

SPC_EnableActiveModeAnalogModules(SPC0, kSPC_controlDac2)
SPC_EnableLowPowerModeAnalogModules(SPC0, kSPC_controlDac2)

RESET_PeripheralReset(kDAC2_RST_SHIFT_RSTn)

DAC14_DoSoftwareReset()
DAC14_DoFIFOReset()

SPC_EnableActiveModeAnalogModules(SPC0, kSPC_controlVref)

These initialization steps were based on the MCXN947 reference manual and implemented using the corresponding MCUX SDK APIs.

The init function is registered as the device init callback through DEVICE_DT_INST_DEFINE(). With these changes, the HPDAC works correctly.

I also checked the Zephyr MCUX SYSCON clock-control driver and the mcux_lpc_syscon_clock.h bindings, but I could not find an HPDAC/DAC2 clock identifier or clock-control implementation for this peripheral, so I am currently using the MCUX SDK clock, SPC and reset APIs directly.

My questions are:

1. Is this the correct approach when backporting the MCXN947 HPDAC driver?

2. In newer Zephyr versions, are these resources initialized somewhere else, or does the upstream nxp_hpdac driver assume that they have already been configured?

3. Is the HPDAC device init callback the correct place for this MCXN947-specific initialization, or should these steps be handled elsewhere in Zephyr?

I have attached the complete backported driver for reference.

ラベル(3)
タグ(4)
0 件の賞賛
返信
3 返答(返信)

257件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

Hi  @wesOS 

1. Is this the correct approach when backporting the MCXN947 HPDAC driver?

Yes, this is a reasonable and practical approach for the backport. If the required DAC2 clock, SPC analog modules, VREF, and reset resources are not initialized elsewhere in the Zephyr 4.3 environment, performing the initialization in the driver is necessary to ensure correct HPDAC operation.

2. In newer Zephyr versions, are these resources initialized somewhere else, or does the upstream nxp_hpdac driver assume that they have already been configured?

HPDAC support has already been added upstream:

https://github.com/zephyrproject-rtos/zephyr/pull/104642

However, I performed a quick verification using the current upstream implementation and observed that the DAC2 clock does not appear to be configured. For example, CLOCK_GetDacClkFreq(2) reports 0 Hz in my test environment, while the equivalent MCUX SDK example reports 48 MHz after the DAC clock is configured.

Based on this observation, it appears that the current driver may be assuming that certain device resources have already been configured. Could you please double-check the clock configuration path on your side as well?

I will also report this to our Zephyr team for further investigation and work with them to address the issue if a missing clock initialization bug is confirmed.

3. Is the HPDAC device init callback the correct place for this MCXN947-specific initialization, or should these steps be handled elsewhere in Zephyr?

For a backport, placing this logic in the HPDAC device initialization callback is a practical and acceptable solution.

That said, the MCXN947-specific DAC2 clock, SPC, VREF, and reset configuration should ideally be clearly isolated as SoC-specific functionality rather than embedded as generic HPDAC behavior. In the longer term, these resources would preferably be managed through Zephyr infrastructure such as clock, reset, or power-management frameworks where applicable.

BR

Harry

0 件の賞賛
返信

175件の閲覧回数
wesOS
Contributor II

Thanks, I double-checked the DAC2 clock path on my MCXN947 setup.

Before the HPDAC driver configures the clock: <inf> dac_nxp_hpdac: DAC2 clock before config: 0 Hz

After:

CLOCK_SetClkDiv(kCLOCK_DivDac2Clk, 1U);
CLOCK_AttachClk(kFRO_HF_to_DAC2);
CLOCK_EnableClock(kCLOCK_Dac2);

I get: <inf> dac_nxp_hpdac: DAC2 clock after config: 48000000 Hz

So I am seeing the same behavior on my side: the DAC2 clock is not configured before the HPDAC driver initialization.

Your explanation about keeping the MCXN947-specific resource handling isolated also makes sense.

What I am mainly trying to understand now is how you expect that initialization to be divided in the eventual upstream solution.

For example, do you expect the DAC2 clock configuration, SPC/VREF setup and reset handling to each move into their corresponding Zephyr/SoC infrastructure, with `dac_nxp_hpdac.c` only keeping the generic HPDAC initialization?

I am mainly asking so I can understand the intended ownership of each initialization step and keep the backport reasonably aligned with that direction.

Thank you.

 

BR 


Ouassim

 

0 件の賞賛
返信

142件の閲覧回数
Harry_Zhang
NXP Employee
NXP Employee

Hi @wesOS 

Thanks for confirming your results. The fact that both of us observe DAC2 clock before config: 0 Hz and 48000000 Hz after the clock configuration strongly suggests that the DAC2 clock is not initialized before the HPDAC driver runs.

I have already reported the bug fix to our internal Zephyr team.

After looking further into the FRDM-MCXN947 implementation, I found that the existing DAC clock initialization is currently handled at the board level rather than in the DAC drivers themselves.

zephyr/boards/nxp/frdm_mcxn947/board.c

the function:

void board_early_init_hook(void)

performs the clock and SPC initialization for both DAC0 and DAC1:

#if DT_NODE_HAS_STATUS_OKAY(DT_NODELABEL(dac0))
        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_OKAY(DT_NODELABEL(dac1))
        SPC_EnableActiveModeAnalogModules(SPC0, kSPC_controlDac1);
        CLOCK_SetClkDiv(kCLOCK_DivDac1Clk, 1u);
        CLOCK_AttachClk(kFRO_HF_to_DAC1);

        CLOCK_EnableClock(kCLOCK_Dac1);
#endif

Based on the current implementation, my expectation would be to keep the solution consistent with the existing board design. In other words, the DAC2 clock initialization could be added to board_early_init_hook() alongside the existing DAC0/DAC1 initialization rather than placing board-specific clock setup into the generic HPDAC driver.

BR

Harry

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2412797%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EMCXN947%20HPDAC%E3%83%90%E3%83%83%E3%82%AF%E3%83%9D%E3%83%BC%E3%83%88%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2412797%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EZephyr%E3%81%AEnxp_hpdac%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%82%92MCXN947%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E3%83%9C%E3%83%BC%E3%83%89%E7%94%A8%E3%81%ABZephyr%204.3%E3%81%AB%E3%83%90%E3%83%83%E3%82%AF%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%83%E3%83%97%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%AF%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9init%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E3%81%97%E3%81%8B%E3%81%97%E3%80%81Zephyr%204.3%E3%81%A7%E3%81%AF%E3%80%81%E3%83%9A%E3%83%AA%E3%83%95%E3%82%A7%E3%83%A9%E3%83%AB%E3%82%92%E4%BD%BF%E3%81%86%E5%89%8D%E3%81%ABDAC2%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%80%81SPC%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E6%98%8E%E7%A4%BA%E7%9A%84%E3%81%AB%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%97%E3%80%81%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8HPDAC%E3%81%8C%E6%AD%A3%E3%81%97%E3%81%8F%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%E4%BB%A5%E4%B8%8B%E3%81%AE%E6%89%8B%E9%A0%86%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8Bnxp_hpdac_init()%E9%96%A2%E6%95%B0%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3ECLOCK_SetClkDiv(kCLOCK_DivDac2Clk%2C%201U)%3CBR%20%2F%3E%20CLOCK_AttachClk(kFRO_HF_to_DAC2)%3CBR%20%2F%3E%20CLOCK_EnableClock(kCLOCK_Dac2)%3C%2FP%3E%3CP%3ESPC_EnableActiveModeAnalogModules(SPC0%2C%20kSPC_controlDac2)%3CBR%20%2F%3E%20SPC_EnableLowPowerModeAnalogModules(SPC0%2C%20kSPC_controlDac2)%3C%2FP%3E%3CP%3ERESET_PeripheralReset(kDAC2_RST_SHIFT_RSTn)%3C%2FP%3E%3CP%3EDAC14_DoSoftwareReset()%3CBR%20%2F%3E%20DAC14_DoFIFOReset()%3C%2FP%3E%3CP%3ESPC_EnableActiveModeAnalogModules(SPC0%2C%20kSPC_controlVref)%3C%2FP%3E%3CP%3E%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%E6%89%8B%E9%A0%86%E3%81%AF%E3%80%81MCXN947%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%84%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8BMCUX%20SDK%20API%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E5%AE%9F%E8%A3%85%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%E5%88%9D%E6%9C%9F%E5%8C%96%E9%96%A2%E6%95%B0%E3%81%AF%E3%80%81DEVICE_DT_INST_DEFINE()%20%E3%82%92%E4%BB%8B%E3%81%97%E3%81%A6%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E5%88%9D%E6%9C%9F%E5%8C%96%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E3%81%A8%E3%81%97%E3%81%A6%E7%99%BB%E9%8C%B2%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E5%A4%89%E6%9B%B4%E3%81%AB%E3%82%88%E3%82%8A%E3%80%81HPDAC%E3%81%AF%E6%AD%A3%E5%B8%B8%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%BE%E3%81%9F%E3%80%81Zephyr%20MCUX%E3%81%AESYSCON%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%A8mcux_lpc_syscon_clock.h%E3%82%82%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%83%90%E3%82%A4%E3%83%B3%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%AF%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%81%93%E3%81%AE%E3%83%9A%E3%83%AA%E3%83%95%E3%82%A7%E3%83%A9%E3%83%AB%E3%81%AEHPDAC%2FDAC2%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E8%AD%98%E5%88%A5%E5%AD%90%E3%82%84%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E5%88%B6%E5%BE%A1%E5%AE%9F%E8%A3%85%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%89%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F%E3%81%9F%E3%82%81%E3%80%81%E7%8F%BE%E5%9C%A8%E3%81%AFMCUX%20SDK%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%80%81SPC%E3%80%81%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88API%E3%82%92%E7%9B%B4%E6%8E%A5%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E7%A7%81%E3%81%AE%E8%B3%AA%E5%95%8F%E3%81%AF%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%81%A8%E3%81%8A%E3%82%8A%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E1.%20MCXN947%20HPDAC%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%82%92%E3%83%90%E3%83%83%E3%82%AF%E3%83%9D%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E9%9A%9B%E3%80%81%E3%81%93%E3%81%AE%E6%96%B9%E6%B3%95%E3%81%AF%E6%AD%A3%E3%81%97%E3%81%84%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F%3C%2FP%3E%3CP%3E2.%20%E6%96%B0%E3%81%97%E3%81%84Zephyr%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%A7%E3%81%AF%E3%80%81%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AF%E5%88%A5%E3%81%AE%E5%A0%B4%E6%89%80%E3%81%A7%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B%E3%80%81%E3%81%9D%E3%82%8C%E3%81%A8%E3%82%82%E4%B8%8A%E6%B5%81nxp_hpdac%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%AF%E3%81%99%E3%81%A7%E3%81%AB%E8%A8%AD%E5%AE%9A%E6%B8%88%E3%81%BF%E3%81%A0%E3%81%A8%E6%83%B3%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B%3F%3C%2FP%3E%3CP%3E3.%20HPDAC%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AEinit%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E3%81%8C%E3%81%93%E3%81%AEMCXN947%E5%9B%BA%E6%9C%89%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%AE%E6%AD%A3%E3%81%97%E3%81%84%E5%A0%B4%E6%89%80%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F%E3%81%9D%E3%82%8C%E3%81%A8%E3%82%82%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%AFZephyr%E3%81%AE%E4%BB%96%E3%81%AE%E9%83%A8%E5%88%86%E3%81%A7%E5%87%A6%E7%90%86%E3%81%99%E3%81%B9%E3%81%8D%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E5%8F%82%E8%80%83%E3%81%BE%E3%81%A7%E3%81%AB%E5%AE%8C%E5%85%A8%E3%81%AA%E3%83%90%E3%83%83%E3%82%AF%E3%83%9D%E3%83%BC%E3%83%88%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%82%92%E6%B7%BB%E4%BB%98%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2412797%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3E%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0(ADC%7CCMP%7CDAC%7C%E3%82%AA%E3%83%9A%E3%82%A2%E3%83%B3%E3%83%97)%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%7C%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EMCX%20N%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2413286%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%20MCXN947%20HPDAC%20backport%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2413286%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F259637%22%20target%3D%22_blank%22%3E%40wesOS%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E1.%20MCXN947%20HPDAC%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%82%92%E3%83%90%E3%83%83%E3%82%AF%E3%83%9D%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E9%9A%9B%E3%80%81%E3%81%93%E3%81%AE%E6%96%B9%E6%B3%95%E3%81%AF%E6%AD%A3%E3%81%97%E3%81%84%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F%3C%2FP%3E%0A%3CP%3E%E3%81%AF%E3%81%84%E3%80%81%E3%81%93%E3%82%8C%E3%81%AF%E3%83%90%E3%83%83%E3%82%AF%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E8%A1%8C%E3%81%86%E4%B8%8A%E3%81%A7%E5%90%88%E7%90%86%E7%9A%84%E3%81%8B%E3%81%A4%E7%8F%BE%E5%AE%9F%E7%9A%84%E3%81%AA%E3%82%A2%E3%83%97%E3%83%AD%E3%83%BC%E3%83%81%E3%81%A7%E3%81%99%E3%80%82%E5%BF%85%E8%A6%81%E3%81%AADAC2%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%80%81SPC%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%80%81VREF%E3%80%81%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%8CZephyr%204.3%E7%92%B0%E5%A2%83%E3%81%AE%E4%BB%96%E3%81%AE%E5%A0%B4%E6%89%80%E3%81%A7%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%80%81%E6%AD%A3%E3%81%97%E3%81%84HPDAC%E5%8B%95%E4%BD%9C%E3%82%92%E7%A2%BA%E4%BF%9D%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%A7%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E2.%20%E6%96%B0%E3%81%97%E3%81%84Zephyr%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%A7%E3%81%AF%E3%80%81%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AF%E5%88%A5%E3%81%AE%E5%A0%B4%E6%89%80%E3%81%A7%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B%E3%80%81%E3%81%9D%E3%82%8C%E3%81%A8%E3%82%82%E4%B8%8A%E6%B5%81nxp_hpdac%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%AF%E3%81%99%E3%81%A7%E3%81%AB%E8%A8%AD%E5%AE%9A%E6%B8%88%E3%81%BF%E3%81%A0%E3%81%A8%E6%83%B3%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B%3F%3C%2FP%3E%0A%3CP%3EHPDAC%20%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AF%E3%81%99%E3%81%A7%E3%81%AB%E4%B8%8A%E6%B5%81%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%3A%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fpull%2F104642%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fpull%2F104642%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E3%81%97%E3%81%8B%E3%81%97%E3%80%81%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E5%AE%9F%E8%A3%85%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E7%B0%A1%E5%8D%98%E3%81%AA%E6%A4%9C%E8%A8%BC%E3%82%92%E8%A1%8C%E3%81%A3%E3%81%9F%E3%81%A8%E3%81%93%E3%82%8D%E3%80%81DAC2%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8%E3%81%8C%E7%A2%BA%E8%AA%8D%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E4%BE%8B%E3%81%88%E3%81%B0%E3%80%81CLOCK_GetDacClkFreq(2)%E3%81%AF%E7%A7%81%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88%E7%92%B0%E5%A2%83%E3%81%A70Hz%E3%82%92%E5%A0%B1%E5%91%8A%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E5%90%8C%E7%AD%89%E3%81%AEMCUX%20SDK%E4%BE%8B%E3%81%A7%E3%81%AFDAC%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E8%A8%AD%E5%AE%9A%E5%BE%8C%E3%81%AF48MHz%E3%81%A8%E5%A0%B1%E5%91%8A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%81%93%E3%81%AE%E8%A6%B3%E5%AF%9F%E3%81%8B%E3%82%89%E3%80%81%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%81%AF%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%8C%E3%81%99%E3%81%A7%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%A8%E4%BB%AE%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%82%88%E3%81%86%E3%81%A7%E3%81%99%E3%80%82%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E5%81%B4%E3%81%AE%E6%99%82%E8%A8%88%E8%A8%AD%E5%AE%9A%E7%B5%8C%E8%B7%AF%E3%82%82%E3%82%82%E3%81%86%E4%B8%80%E5%BA%A6%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%A6%E3%82%82%E3%82%89%E3%81%88%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%0A%3CP%3E%E3%81%BE%E3%81%9F%E3%80%81%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%AE%E3%83%90%E3%82%B0%E3%81%8C%E7%A2%BA%E8%AA%8D%E3%81%95%E3%82%8C%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81Zephyr%E3%83%81%E3%83%BC%E3%83%A0%E3%81%AB%E3%82%82%E5%A0%B1%E5%91%8A%E3%81%97%E3%80%81%E3%81%95%E3%82%89%E3%81%AA%E3%82%8B%E8%AA%BF%E6%9F%BB%E3%82%92%E4%BE%9D%E9%A0%BC%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E3.%20HPDAC%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AEinit%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E3%81%8C%E3%81%93%E3%81%AEMCXN947%E5%9B%BA%E6%9C%89%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%AE%E6%AD%A3%E3%81%97%E3%81%84%E5%A0%B4%E6%89%80%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F%E3%81%9D%E3%82%8C%E3%81%A8%E3%82%82%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%AFZephyr%E3%81%AE%E4%BB%96%E3%81%AE%E9%83%A8%E5%88%86%E3%81%A7%E5%87%A6%E7%90%86%E3%81%99%E3%81%B9%E3%81%8D%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F%3C%2FP%3E%0A%3CP%3E%E3%83%90%E3%83%83%E3%82%AF%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%81%E3%81%93%E3%81%AE%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E3%82%92HPDAC%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E3%80%81%E5%AE%9F%E7%94%A8%E7%9A%84%E3%81%8B%E3%81%A4%E8%A8%B1%E5%AE%B9%E3%81%A7%E3%81%8D%E3%82%8B%E8%A7%A3%E6%B1%BA%E7%AD%96%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%81%A8%E3%81%AF%E3%81%84%E3%81%88%E3%80%81MCXN947%E5%9B%BA%E6%9C%89%E3%81%AEDAC2%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%80%81SPC%E3%80%81VREF%E3%80%81%E3%81%8A%E3%82%88%E3%81%B3%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%AF%E3%80%81%E6%B1%8E%E7%94%A8%E7%9A%84%E3%81%AAHPDAC%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A8%E3%81%97%E3%81%A6%E7%B5%84%E3%81%BF%E8%BE%BC%E3%81%BE%E3%82%8C%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E3%80%81SoC%E5%9B%BA%E6%9C%89%E3%81%AE%E6%A9%9F%E8%83%BD%E3%81%A8%E3%81%97%E3%81%A6%E6%98%8E%E7%A2%BA%E3%81%AB%E5%88%86%E9%9B%A2%E3%81%95%E3%82%8C%E3%82%8B%E3%81%B9%E3%81%8D%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%E9%95%B7%E6%9C%9F%E7%9A%84%E3%81%AB%E3%81%AF%E3%80%81%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AF%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%80%81%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%80%81%E3%83%91%E3%83%AF%E3%83%BC%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AA%E3%81%A9%E3%80%81Zephyr%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E3%82%B9%E3%83%88%E3%83%A9%E3%82%AF%E3%83%81%E3%83%A3%E3%82%92%E9%80%9A%E3%81%98%E3%81%A6%E7%AE%A1%E7%90%86%E3%81%95%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E6%9C%9B%E3%81%BE%E3%81%97%E3%81%84%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3E%E3%83%8F%E3%83%AA%E3%83%BC%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2414079%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%20MCXN947%20HPDAC%20backport%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2414079%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82MCXN947%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%A7DAC2%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%83%91%E3%82%B9%E3%82%92%E5%86%8D%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3EHPDAC%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%8C%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%3A%3CINF%3E%20dac_nxp_hpdac%3A%20DAC2%20%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%81%AE%E8%A8%AD%E5%AE%9A%E5%89%8D%3A%200%20Hz%3C%2FINF%3E%3C%2FP%3E%3CP%3E%E5%BE%8C%EF%BC%9A%3CBR%20%2F%3E%3CBR%20%2F%3E%20CLOCK_SetClkDiv(kCLOCK_DivDac2Clk%2C%201U)%3B%3CBR%20%2F%3E%20CLOCK_AttachClk(kFRO_HF_to_DAC2)%3B%3CBR%20%2F%3E%20CLOCK_EnableClock(kCLOCK_Dac2)%3B%3C%2FP%3E%3CP%3E%E6%AC%A1%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%9A%3CINF%3E%20dac_nxp_hpdac%3A%20%E8%A8%AD%E5%AE%9A%E5%BE%8C%E3%81%AEDAC2%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%EF%BC%9A48000000%20Hz%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FINF%3E%3C%2FP%3E%3CP%3E%E7%A7%81%E3%82%82%E5%90%8C%E3%81%98%E6%8C%99%E5%8B%95%E3%82%92%E7%9B%AE%E3%81%AB%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%3AHPDAC%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%E5%89%8D%E3%81%ABDAC2%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3EMCXN947%E5%9B%BA%E6%9C%89%E3%81%AE%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E5%87%A6%E7%90%86%E3%82%92%E5%88%86%E9%9B%A2%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8F%E3%81%A8%E3%81%84%E3%81%86%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E8%AA%AC%E6%98%8E%E3%82%82%E7%90%86%E3%81%AB%E3%81%8B%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E7%A7%81%E3%81%8C%E4%BB%8A%E4%B8%BB%E3%81%AB%E7%90%86%E8%A7%A3%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%AF%E3%80%81%E6%9C%80%E7%B5%82%E7%9A%84%E3%81%AA%E4%B8%8A%E6%B5%81%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E3%81%8A%E3%81%84%E3%81%A6%E3%80%81%E3%81%9D%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%E5%87%A6%E7%90%86%E3%81%8C%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E5%88%86%E5%89%B2%E3%81%95%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E6%9C%9F%E5%BE%85%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%8B%E3%81%A8%E3%81%84%E3%81%86%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E4%BE%8B%E3%81%88%E3%81%B0%E3%80%81DAC2%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E6%A7%8B%E6%88%90%E3%80%81SPC%2FVREF%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%80%81%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E5%87%A6%E7%90%86%E3%81%8C%E3%81%9D%E3%82%8C%E3%81%9E%E3%82%8C%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8BZephyr%2FSoC%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E3%82%B9%E3%83%88%E3%83%A9%E3%82%AF%E3%83%81%E3%83%A3%E3%81%AB%E7%A7%BB%E8%A1%8C%E3%81%97%E3%80%81%E3%80%8Cdac_nxp_hpdac.c%E3%80%8D%E3%81%A8%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%82%8B%E4%BA%88%E5%AE%9A%E3%81%A7%E3%81%99%E3%81%8B%3F%E6%B1%8E%E7%94%A8%E7%9A%84%E3%81%AAHPDAC%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%AE%E3%81%BF%E3%82%92%E4%BF%9D%E6%8C%81%E3%81%99%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%3C%2FP%3E%3CP%3E%E4%B8%BB%E3%81%AB%E5%90%84%E5%88%9D%E6%9C%9F%E5%8C%96%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%AE%E6%84%8F%E5%9B%B3%E3%81%95%E3%82%8C%E3%81%9F%E6%89%80%E6%9C%89%E6%A8%A9%E3%82%92%E7%90%86%E8%A7%A3%E3%81%97%E3%80%81%E3%83%90%E3%83%83%E3%82%AF%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E3%81%9D%E3%81%AE%E6%96%B9%E5%90%91%E3%81%AB%E5%90%88%E7%90%86%E7%9A%84%E3%81%AB%E6%95%B4%E5%90%88%E3%81%95%E3%81%9B%E3%81%9F%E3%81%84%E3%81%9F%E3%82%81%E3%81%A7%E3%81%99%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EBR%3C%2FP%3E%3CP%3E%3CBR%20%2F%3E%E3%82%A6%E3%82%A2%E3%82%B7%E3%83%A0%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2414161%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%20MCXN947%20HPDAC%20backport%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2414161%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F259637%22%20target%3D%22_blank%22%3E%40wesOS%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E7%B5%90%E6%9E%9C%E3%81%AE%E7%A2%BA%E8%AA%8D%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E8%A8%AD%E5%AE%9A%E5%89%8D%E3%81%ABDAC2%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C0%20Hz%E3%80%8148000000%20Hz%E3%81%8C%E8%A8%AD%E5%AE%9A%E5%BE%8C%E3%81%AB%E8%B5%B7%E3%81%8D%E3%81%A6%E3%81%84%E3%82%8B%E3%81%A8%E3%81%84%E3%81%86%E4%BA%8B%E5%AE%9F%E3%81%AF%E3%80%81HPDAC%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%8C%E5%8B%95%E4%BD%9C%E3%81%99%E3%82%8B%E5%89%8D%E3%81%ABDAC2%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8%E3%82%92%E5%BC%B7%E3%81%8F%E7%A4%BA%E5%94%86%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%81%99%E3%81%A7%E3%81%AB%E5%86%85%E9%83%A8%E3%81%AEZephyr%E3%83%81%E3%83%BC%E3%83%A0%E3%81%AB%E3%83%90%E3%82%B0%E4%BF%AE%E6%AD%A3%E3%82%92%E5%A0%B1%E5%91%8A%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%0A%3CP%3EFRDM-MCXN947%E5%AE%9F%E8%A3%85%E3%82%92%E3%81%95%E3%82%89%E3%81%AB%E8%AA%BF%E3%81%B9%E3%81%9F%E3%81%A8%E3%81%93%E3%82%8D%E3%80%81%E6%97%A2%E5%AD%98%E3%81%AEDAC%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%AF%E7%8F%BE%E5%9C%A8%E3%80%81DAC%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E8%87%AA%E4%BD%93%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E5%9F%BA%E6%9D%BF%E3%83%AC%E3%83%99%E3%83%AB%E3%81%A7%E5%87%A6%E7%90%86%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%82%8F%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3Ezephyr%2Fboards%2Fnxp%2Ffrdm_mcxn947%2Fboard.c%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%E6%A9%9F%E8%83%BD%3A%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3Evoid%20board_early_init_hook(void)%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EDAC0%E3%81%A8DAC1%E3%81%AE%E4%B8%A1%E6%96%B9%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%80%81%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%81%A8SPC%E3%81%AE%E5%88%9D%E6%9C%9F%E5%8C%96%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3E%23if%20DT_NODE_HAS_STATUS_OKAY(DT_NODELABEL(dac0))%0A%20%20%20%20%20%20%20%20SPC_EnableActiveModeAnalogModules(SPC0%2C%20kSPC_controlDac0)%3B%0A%20%20%20%20%20%20%20%20CLOCK_SetClkDiv(kCLOCK_DivDac0Clk%2C%201u)%3B%0A%20%20%20%20%20%20%20%20CLOCK_AttachClk(kFRO_HF_to_DAC0)%3B%0A%0A%20%20%20%20%20%20%20%20CLOCK_EnableClock(kCLOCK_Dac0)%3B%0A%23endif%0A%0A%23if%20DT_NODE_HAS_STATUS_OKAY(DT_NODELABEL(dac1))%0A%20%20%20%20%20%20%20%20SPC_EnableActiveModeAnalogModules(SPC0%2C%20kSPC_controlDac1)%3B%0A%20%20%20%20%20%20%20%20CLOCK_SetClkDiv(kCLOCK_DivDac1Clk%2C%201u)%3B%0A%20%20%20%20%20%20%20%20CLOCK_AttachClk(kFRO_HF_to_DAC1)%3B%0A%0A%20%20%20%20%20%20%20%20CLOCK_EnableClock(kCLOCK_Dac1)%3B%0A%23endif%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%E7%8F%BE%E5%9C%A8%E3%81%AE%E5%AE%9F%E8%A3%85%E3%81%8B%E3%82%89%E8%80%83%E3%81%88%E3%82%8B%E3%81%A8%E3%80%81%E6%97%A2%E5%AD%98%E3%81%AE%E5%9F%BA%E6%9D%BF%E8%A8%AD%E8%A8%88%E3%81%A8%E4%B8%80%E8%B2%AB%E6%80%A7%E3%82%92%E4%BF%9D%E3%81%A4%E3%81%93%E3%81%A8%E3%81%8C%E6%9C%9F%E5%BE%85%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E8%A8%80%E3%81%84%E6%8F%9B%E3%81%88%E3%82%8C%E3%81%B0%E3%80%81DAC2%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%AF%E6%97%A2%E5%AD%98%E3%81%AEDAC0%2FDAC1%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%AB%E5%8A%A0%E3%81%88%E3%81%A6board_early_init_hook()%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%A7%E3%81%8D%E3%80%81%E5%9F%BA%E6%9D%BF%E5%9B%BA%E6%9C%89%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%82%92%E6%B1%8E%E7%94%A8HPDAC%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%81%AB%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E3%80%81%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3E%E3%83%8F%E3%83%AA%E3%83%BC%3C%2FP%3E%3C%2FLINGO-BODY%3E