RTEMS 6.3
Loading...
Searching...
No Matches
errata_SSWF021_45.c File Reference

This source file contains errata SSWF021#45 workaround implementation. More...

Macros

#define SYS_CLKSRC_PLL1   0x00000002U
#define SYS_CLKSRC_PLL2   0x00000040U
#define SYS_CLKCNTRL_PENA   0x00000100U
#define ESM_SR1_PLL1SLIP   0x400U
#define ESM_SR4_PLL2SLIP   0x400U
#define PLL1   0x08
#define PLL2   0x80
#define dcc1CNT1_CLKSRC_PLL1   0x0000A000U
#define dcc1CNT1_CLKSRC_PLL2   0x0000A001U

Functions

uint32_t _errata_SSWF021_45_both_plls (uint32_t count)
 This handles the errata for PLL1 and PLL2. This function is called in device startup.
uint32_t _errata_SSWF021_45_pll1 (uint32_t count)
 This handles the errata for PLL1. This function is called in device startup.
uint32_t _errata_SSWF021_45_pll2 (uint32_t count)
 This handles the errata for PLL2. This function is called in device startup.

Detailed Description

This source file contains errata SSWF021#45 workaround implementation.

Function Documentation

◆ _errata_SSWF021_45_both_plls()

uint32_t _errata_SSWF021_45_both_plls ( uint32_t count)

This handles the errata for PLL1 and PLL2. This function is called in device startup.

Parameters
[in]count: Number of retries until both PLLs are locked successfully Minimum value recommended is 5
Returns
0 = Success (the PLL or both PLLs have successfully locked and then been disabled) 1 = PLL1 failed to successfully lock in "count" tries 2 = PLL2 failed to successfully lock in "count" tries 3 = Neither PLL1 nor PLL2 successfully locked in "count" tries 4 = The workaround function was not able to disable at least one of the PLLs. The most likely reason is that a PLL is already being used as a clock source. This can be caused by the workaround function being called from the wrong place in the code.

◆ _errata_SSWF021_45_pll1()

uint32_t _errata_SSWF021_45_pll1 ( uint32_t count)

This handles the errata for PLL1. This function is called in device startup.

Parameters
[in]count: Number of retries until both PLL1 is locked successfully Minimum value recommended is 5
Returns
0 = Success (the PLL or both PLLs have successfully locked and then been disabled) 1 = PLL1 failed to successfully lock in "count" tries 2 = PLL2 failed to successfully lock in "count" tries 3 = Neither PLL1 nor PLL2 successfully locked in "count" tries 4 = The workaround function was not able to disable at least one of the PLLs. The most likely reason is that a PLL is already being used as a clock source. This can be caused by the workaround function being called from the wrong place in the code.

◆ _errata_SSWF021_45_pll2()

uint32_t _errata_SSWF021_45_pll2 ( uint32_t count)

This handles the errata for PLL2. This function is called in device startup.

Parameters
[in]count: Number of retries until PLL2 is locked successfully Minimum value recommended is 5
Returns
0 = Success (the PLL or both PLLs have successfully locked and then been disabled) 1 = PLL1 failed to successfully lock in "count" tries 2 = PLL2 failed to successfully lock in "count" tries 3 = Neither PLL1 nor PLL2 successfully locked in "count" tries 4 = The workaround function was not able to disable at least one of the PLLs. The most likely reason is that a PLL is already being used as a clock source. This can be caused by the workaround function being called from the wrong place in the code.