C/C++ API Reference
Loading...
Searching...
No Matches
pw_clock_tree_mcuxpresso

Oveview

NXP MCUXpresso SDK implementation for pw_clock_tree. Main docs: https://pigweed.dev/pw_clock_tree_mcuxpresso.

Classes

class  pw::clock_tree::ClockMcuxpressoFro
 Class implementing an FRO clock source. More...
 
class  pw::clock_tree::ClockMcuxpressoLpOsc
 Class implementing the low power oscillator clock source. More...
 
class  pw::clock_tree::ClockMcuxpressoMclk< ElementType >
 
class  pw::clock_tree::ClockMcuxpressoClkIn< ElementType >
 
class  pw::clock_tree::ClockMcuxpressoFrg< ElementType >
 
class  pw::clock_tree::ClockMcuxpressoSelector< ElementType >
 
class  pw::clock_tree::ClockMcuxpressoDivider< ElementType >
 
class  pw::clock_tree::ClockMcuxpressoAudioPll< ElementType >
 
class  pw::clock_tree::ClockMcuxpressoSysPll< ElementType >
 
class  pw::clock_tree::ClockMcuxpressoRtc< ElementType >
 
class  pw::clock_tree::ClockMcuxpressoClockIp< ElementType >
 

Typedefs

using pw::clock_tree::ClockMcuxpressoMclkBlocking = ClockMcuxpressoMclk< ElementBlocking >
 
using pw::clock_tree::ClockMcuxpressoMclkNonBlocking = ClockMcuxpressoMclk< ElementNonBlockingCannotFail >
 
using pw::clock_tree::ClockMcuxpressoClkInBlocking = ClockMcuxpressoClkIn< ElementBlocking >
 
using pw::clock_tree::ClockMcuxpressoClkInNonBlocking = ClockMcuxpressoClkIn< ElementNonBlockingCannotFail >
 
using pw::clock_tree::ClockMcuxpressoFrgBlocking = ClockMcuxpressoFrg< ElementBlocking >
 Alias for a blocking FRG clock tree element.
 
using pw::clock_tree::ClockMcuxpressoFrgNonBlocking = ClockMcuxpressoFrg< ElementNonBlockingCannotFail >
 Alias for a non-blocking FRG clock tree element where updates cannot fail.
 
using pw::clock_tree::ClockMcuxpressoSelectorBlocking = ClockMcuxpressoSelector< ElementBlocking >
 Alias for a blocking clock selector clock tree element.
 
using pw::clock_tree::ClockMcuxpressoSelectorNonBlocking = ClockMcuxpressoSelector< ElementNonBlockingCannotFail >
 
using pw::clock_tree::ClockMcuxpressoDividerBlocking = ClockMcuxpressoDivider< ElementBlocking >
 Alias for a blocking clock divider clock tree element.
 
using pw::clock_tree::ClockMcuxpressoDividerNonBlocking = ClockMcuxpressoDivider< ElementNonBlockingCannotFail >
 
using pw::clock_tree::ClockMcuxpressoAudioPllBlocking = ClockMcuxpressoAudioPll< ElementBlocking >
 Alias for a blocking audio PLL clock tree element.
 
using pw::clock_tree::ClockMcuxpressoAudioPllNonBlocking = ClockMcuxpressoAudioPll< ElementNonBlockingCannotFail >
 
using pw::clock_tree::ClockMcuxpressoSysPllBlocking = ClockMcuxpressoSysPll< ElementBlocking >
 Alias for a blocking sys PLL clock tree element.
 
using pw::clock_tree::ClockMcuxpressoSysPllNonBlocking = ClockMcuxpressoSysPll< ElementNonBlockingCannotFail >
 
using pw::clock_tree::ClockMcuxpressoRtcBlocking = ClockMcuxpressoRtc< ElementBlocking >
 
using pw::clock_tree::ClockMcuxpressoRtcNonBlocking = ClockMcuxpressoRtc< ElementNonBlockingCannotFail >
 
using pw::clock_tree::ClockMcuxpressoClockIpBlocking = ClockMcuxpressoClockIp< ElementBlocking >
 
using pw::clock_tree::ClockMcuxpressoClockIpNonBlocking = ClockMcuxpressoClockIp< ElementNonBlockingCannotFail >
 

Functions

constexpr pw::clock_tree::ClockMcuxpressoFro::ClockMcuxpressoFro (clock_fro_output_en_t fro_output)
 Constructor specifying the FRO divider output to manage.
 
Status pw::clock_tree::ClockMcuxpressoFro::DoEnable () final
 Enable this FRO divider.
 
Status pw::clock_tree::ClockMcuxpressoFro::DoDisable () final
 Disable this FRO divider.
 
Status pw::clock_tree::ClockMcuxpressoLpOsc::DoEnable () final
 Enable low power oscillator.
 
Status pw::clock_tree::ClockMcuxpressoLpOsc::DoDisable () final
 Disable low power oscillator.
 
constexpr pw::clock_tree::ClockMcuxpressoMclk< ElementType >::ClockMcuxpressoMclk (ElementType &source, uint32_t frequency)
 
Status pw::clock_tree::ClockMcuxpressoMclk< ElementType >::DoEnable () final
 Set MCLK IN clock frequency.
 
Status pw::clock_tree::ClockMcuxpressoMclk< ElementType >::DoDisable () final
 Set MCLK IN clock frequency to 0 Hz.
 
constexpr pw::clock_tree::ClockMcuxpressoClkIn< ElementType >::ClockMcuxpressoClkIn (ElementType &source, uint32_t frequency)
 
Status pw::clock_tree::ClockMcuxpressoClkIn< ElementType >::DoEnable () final
 Set CLK IN clock frequency.
 
Status pw::clock_tree::ClockMcuxpressoClkIn< ElementType >::DoDisable () final
 Set CLK IN clock frequency to 0 Hz.
 
constexpr pw::clock_tree::ClockMcuxpressoFrg< ElementType >::ClockMcuxpressoFrg (ElementType &source, const clock_frg_clk_config_t &config)
 Constructor specifying the source clock and FRG configuration.
 
Status pw::clock_tree::ClockMcuxpressoFrg< ElementType >::DoEnable () final
 Enable FRG configuration.
 
Status pw::clock_tree::ClockMcuxpressoFrg< ElementType >::DoDisable () final
 Disable FRG configuration.
 
constexpr pw::clock_tree::ClockMcuxpressoSelector< ElementType >::ClockMcuxpressoSelector (ElementType &source, clock_attach_id_t selector_enable, clock_attach_id_t selector_disable)
 
Status pw::clock_tree::ClockMcuxpressoSelector< ElementType >::DoEnable () final
 Enable selector.
 
Status pw::clock_tree::ClockMcuxpressoSelector< ElementType >::DoDisable () final
 Disable selector.
 
constexpr pw::clock_tree::ClockMcuxpressoDivider< ElementType >::ClockMcuxpressoDivider (ElementType &source, clock_div_name_t divider_name, uint32_t divider)
 
Status pw::clock_tree::ClockMcuxpressoDivider< ElementType >::DoEnable () final
 Set the divider configuration.
 
constexpr pw::clock_tree::ClockMcuxpressoAudioPll< ElementType >::ClockMcuxpressoAudioPll (ElementType &source, const clock_audio_pll_config_t &config, uint8_t audio_pfd_divider)
 Constructor specifying the configuration for the enabled Audio PLL.
 
constexpr pw::clock_tree::ClockMcuxpressoAudioPll< ElementType >::ClockMcuxpressoAudioPll (ElementType &source, audio_pll_src_t bypass_source)
 Constructor to place the Audio PLL into bypass mode.
 
Status pw::clock_tree::ClockMcuxpressoAudioPll< ElementType >::DoEnable () override
 
Status pw::clock_tree::ClockMcuxpressoAudioPll< ElementType >::DoDisable () override
 Disables the audio PLL logic.
 
constexpr pw::clock_tree::ClockMcuxpressoSysPll< ElementType >::ClockMcuxpressoSysPll (ElementType &source, const clock_sys_pll_config_t &config, uint8_t sys_pfd0_divider, uint8_t sys_pfd1_divider, uint8_t sys_pfd2_divider, uint8_t sys_pfd3_divider)
 Constructor specifying the configuration for the enabled Sys PLL.
 
constexpr pw::clock_tree::ClockMcuxpressoSysPll< ElementType >::ClockMcuxpressoSysPll (ElementType &source, sys_pll_src_t bypass_source)
 Constructor to place the Sys PLL into bypass mode.
 
Status pw::clock_tree::ClockMcuxpressoSysPll< ElementType >::DoEnable () override
 
Status pw::clock_tree::ClockMcuxpressoSysPll< ElementType >::DoDisable () override
 Disables the Sys PLL logic.
 
constexpr pw::clock_tree::ClockMcuxpressoRtc< ElementType >::ClockMcuxpressoRtc (ElementType &source)
 
Status pw::clock_tree::ClockMcuxpressoRtc< ElementType >::DoEnable () final
 Enable 32 kHz RTC oscillator.
 
Status pw::clock_tree::ClockMcuxpressoRtc< ElementType >::DoDisable () final
 Disable 32 kHz RTS oscillator.
 
constexpr pw::clock_tree::ClockMcuxpressoClockIp< ElementType >::ClockMcuxpressoClockIp (ElementType &source, clock_ip_name_t clock)
 
Status pw::clock_tree::ClockMcuxpressoClockIp< ElementType >::DoEnable () final
 Enable the clock.
 
Status pw::clock_tree::ClockMcuxpressoClockIp< ElementType >::DoDisable () final
 Disable the clock.
 

Typedef Documentation

◆ ClockMcuxpressoAudioPllNonBlocking

Alias for a non-blocking audio PLL clock tree element where updates cannot fail.

◆ ClockMcuxpressoClkInBlocking

Alias for a blocking CLK IN pin clock tree element. This class should be used if the CLK IN pin clock source depends on another blocking clock tree element to enable the CLK IN pin clock source.

◆ ClockMcuxpressoClkInNonBlocking

Alias for a non-blocking CLK IN pin clock tree element where updates cannot fail.

◆ ClockMcuxpressoClockIpBlocking

Alias for a blocking ClockIp clock tree element. This class should be used if the ClockIp clock source depends on another blocking clock tree element to enable the ClockIp clock source.

◆ ClockMcuxpressoClockIpNonBlocking

Alias for a non-blocking ClockIp clock tree element where updates cannot fail.

◆ ClockMcuxpressoDividerNonBlocking

Alias for a non-blocking clock divider clock tree element where updates cannot fail.

◆ ClockMcuxpressoMclkBlocking

Alias for a blocking MCLK IN clock tree element. This class should be used if the MCLK IN clock source depends on another blocking clock tree element to enable the MCLK IN clock source.

◆ ClockMcuxpressoMclkNonBlocking

Alias for a non-blocking MCLK IN clock tree element where updates cannot fail.

◆ ClockMcuxpressoRtcBlocking

Alias for a blocking Rtc clock tree element. This class should be used if the Rtc clock source depends on another blocking clock tree element to enable the Rtc clock source.

◆ ClockMcuxpressoRtcNonBlocking

Alias for a non-blocking Rtc clock tree element where updates cannot fail.

◆ ClockMcuxpressoSelectorNonBlocking

Alias for a non-blocking clock selector clock tree element where updates cannot fail.

◆ ClockMcuxpressoSysPllNonBlocking

Alias for a non-blocking sys PLL clock tree element where updates cannot fail.

Function Documentation

◆ ClockMcuxpressoClkIn()

template<typename ElementType >
constexpr pw::clock_tree::ClockMcuxpressoClkIn< ElementType >::ClockMcuxpressoClkIn ( ElementType &  source,
uint32_t  frequency 
)
inlineconstexpr

Constructor specifying the CLK IN pin clock frequency in Hz and the dependent clock tree element to enable the CLK IN pin clock source.

◆ ClockMcuxpressoClockIp()

template<typename ElementType >
constexpr pw::clock_tree::ClockMcuxpressoClockIp< ElementType >::ClockMcuxpressoClockIp ( ElementType &  source,
clock_ip_name_t  clock 
)
inlineconstexpr

Constructor specifying the dependent clock tree element to enable the clock_ip_name_t clock source.

◆ ClockMcuxpressoDivider()

template<typename ElementType >
constexpr pw::clock_tree::ClockMcuxpressoDivider< ElementType >::ClockMcuxpressoDivider ( ElementType &  source,
clock_div_name_t  divider_name,
uint32_t  divider 
)
inlineconstexpr

Constructor specifying the source clock, the name of the divder and the divider setting.

◆ ClockMcuxpressoMclk()

template<typename ElementType >
constexpr pw::clock_tree::ClockMcuxpressoMclk< ElementType >::ClockMcuxpressoMclk ( ElementType &  source,
uint32_t  frequency 
)
inlineconstexpr

Constructor specifying the MCLK IN clock frequency in Hz and the dependent clock tree element to enable the MCLK clock source.

◆ ClockMcuxpressoRtc()

template<typename ElementType >
constexpr pw::clock_tree::ClockMcuxpressoRtc< ElementType >::ClockMcuxpressoRtc ( ElementType &  source)
inlineconstexpr

Constructor specifying the dependent clock tree element to enable the Rtc clock source.

◆ ClockMcuxpressoSelector()

template<typename ElementType >
constexpr pw::clock_tree::ClockMcuxpressoSelector< ElementType >::ClockMcuxpressoSelector ( ElementType &  source,
clock_attach_id_t  selector_enable,
clock_attach_id_t  selector_disable 
)
inlineconstexpr

Constructor specifying the source clock and the selector value when the selector should get enabled, and the selector value when the selector should get disabled to save power.

◆ DoDisable() [1/2]

Status pw::clock_tree::ClockMcuxpressoFro::DoDisable ( )
inlinefinalprivatevirtual

Disable this FRO divider.

Reimplemented from pw::clock_tree::Element.

◆ DoDisable() [2/2]

Status pw::clock_tree::ClockMcuxpressoLpOsc::DoDisable ( )
inlinefinalprivatevirtual

Disable low power oscillator.

Reimplemented from pw::clock_tree::Element.

◆ DoEnable() [1/4]

Status pw::clock_tree::ClockMcuxpressoFro::DoEnable ( )
inlinefinalprivatevirtual

Enable this FRO divider.

Implements pw::clock_tree::Element.

◆ DoEnable() [2/4]

Status pw::clock_tree::ClockMcuxpressoLpOsc::DoEnable ( )
inlinefinalprivatevirtual

Enable low power oscillator.

Implements pw::clock_tree::Element.

◆ DoEnable() [3/4]

template<typename ElementType >
Status pw::clock_tree::ClockMcuxpressoAudioPll< ElementType >::DoEnable ( )
inlineoverrideprivate

Configures and enables the audio PLL if config_ is set, otherwise places the audio PLL in bypass mode.

◆ DoEnable() [4/4]

template<typename ElementType >
Status pw::clock_tree::ClockMcuxpressoSysPll< ElementType >::DoEnable ( )
inlineoverrideprivate

Configures and enables the audio PLL if config_ is set, otherwise places the sys PLL in bypass mode.