RTEMS 6.1-rc4
Loading...
Searching...
No Matches
Macros | Functions
errata_SSWF021_45.c File Reference

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

#include <bsp/ti_herc/errata_SSWF021_45.h>
#include <bsp/tms570.h>

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.